From b05930ca654e08621a7cdb3be0df7f923d34c575 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Sat, 4 Mar 2017 00:55:34 +0100 Subject: [PATCH] Add awards mod back --- mods/HUD/awards/LICENSE.txt | 502 ++++++++++ mods/HUD/awards/api.lua | 521 ++++++++++ mods/HUD/awards/api_helpers.lua | 58 ++ mods/HUD/awards/chat_commands.lua | 73 ++ mods/HUD/awards/depends.txt | 13 + mods/HUD/awards/description.txt | 1 + mods/HUD/awards/init.lua | 936 ++++++++++++++++++ mods/HUD/awards/locale/de.txt | 198 ++++ mods/HUD/awards/locale/template.txt | 196 ++++ mods/HUD/awards/mod.conf | 7 + mods/HUD/awards/readme.md | 162 +++ mods/HUD/awards/screenshot.png | Bin 0 -> 63807 bytes mods/HUD/awards/sfinv.lua | 30 + mods/HUD/awards/sounds/awards_got_generic.ogg | Bin 0 -> 76652 bytes .../HUD/awards/textures/awards_bg_default.png | Bin 0 -> 31407 bytes mods/HUD/awards/textures/awards_bg_mining.png | Bin 0 -> 21274 bytes .../awards/textures/awards_firefighter.png | Bin 0 -> 486 bytes mods/HUD/awards/textures/awards_house.png | Bin 0 -> 591 bytes mods/HUD/awards/textures/awards_level1.png | Bin 0 -> 195 bytes mods/HUD/awards/textures/awards_level2.png | Bin 0 -> 194 bytes mods/HUD/awards/textures/awards_level3.png | Bin 0 -> 193 bytes mods/HUD/awards/textures/awards_level4.png | Bin 0 -> 175 bytes mods/HUD/awards/textures/awards_level5.png | Bin 0 -> 177 bytes mods/HUD/awards/textures/awards_level6.png | Bin 0 -> 191 bytes mods/HUD/awards/textures/awards_level7.png | Bin 0 -> 178 bytes mods/HUD/awards/textures/awards_mese.png | Bin 0 -> 564 bytes mods/HUD/awards/textures/awards_miniminer.png | Bin 0 -> 455 bytes .../awards/textures/awards_novicebuilder.png | Bin 0 -> 374 bytes .../awards/textures/awards_progress_gray.png | Bin 0 -> 146 bytes .../awards/textures/awards_progress_green.png | Bin 0 -> 177 bytes mods/HUD/awards/textures/awards_template.png | Bin 0 -> 322 bytes mods/HUD/awards/textures/awards_ui_bags.png | Bin 0 -> 612 bytes mods/HUD/awards/textures/awards_ui_icon.png | Bin 0 -> 3514 bytes mods/HUD/awards/textures/awards_unknown.png | Bin 0 -> 322 bytes mods/HUD/awards/triggers.lua | 416 ++++++++ mods/HUD/awards/unified_inventory.lua | 18 + 36 files changed, 3131 insertions(+) create mode 100644 mods/HUD/awards/LICENSE.txt create mode 100644 mods/HUD/awards/api.lua create mode 100644 mods/HUD/awards/api_helpers.lua create mode 100644 mods/HUD/awards/chat_commands.lua create mode 100644 mods/HUD/awards/depends.txt create mode 100644 mods/HUD/awards/description.txt create mode 100644 mods/HUD/awards/init.lua create mode 100644 mods/HUD/awards/locale/de.txt create mode 100644 mods/HUD/awards/locale/template.txt create mode 100644 mods/HUD/awards/mod.conf create mode 100644 mods/HUD/awards/readme.md create mode 100644 mods/HUD/awards/screenshot.png create mode 100644 mods/HUD/awards/sfinv.lua create mode 100644 mods/HUD/awards/sounds/awards_got_generic.ogg create mode 100644 mods/HUD/awards/textures/awards_bg_default.png create mode 100644 mods/HUD/awards/textures/awards_bg_mining.png create mode 100644 mods/HUD/awards/textures/awards_firefighter.png create mode 100644 mods/HUD/awards/textures/awards_house.png create mode 100644 mods/HUD/awards/textures/awards_level1.png create mode 100644 mods/HUD/awards/textures/awards_level2.png create mode 100644 mods/HUD/awards/textures/awards_level3.png create mode 100644 mods/HUD/awards/textures/awards_level4.png create mode 100644 mods/HUD/awards/textures/awards_level5.png create mode 100644 mods/HUD/awards/textures/awards_level6.png create mode 100644 mods/HUD/awards/textures/awards_level7.png create mode 100644 mods/HUD/awards/textures/awards_mese.png create mode 100644 mods/HUD/awards/textures/awards_miniminer.png create mode 100644 mods/HUD/awards/textures/awards_novicebuilder.png create mode 100644 mods/HUD/awards/textures/awards_progress_gray.png create mode 100644 mods/HUD/awards/textures/awards_progress_green.png create mode 100644 mods/HUD/awards/textures/awards_template.png create mode 100644 mods/HUD/awards/textures/awards_ui_bags.png create mode 100644 mods/HUD/awards/textures/awards_ui_icon.png create mode 100644 mods/HUD/awards/textures/awards_unknown.png create mode 100644 mods/HUD/awards/triggers.lua create mode 100644 mods/HUD/awards/unified_inventory.lua diff --git a/mods/HUD/awards/LICENSE.txt b/mods/HUD/awards/LICENSE.txt new file mode 100644 index 0000000000..4362b49151 --- /dev/null +++ b/mods/HUD/awards/LICENSE.txt @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +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 this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +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 +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "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 +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY 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 +LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey 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 library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/mods/HUD/awards/api.lua b/mods/HUD/awards/api.lua new file mode 100644 index 0000000000..f53ee0d74a --- /dev/null +++ b/mods/HUD/awards/api.lua @@ -0,0 +1,521 @@ +-- AWARDS +-- +-- Copyright (C) 2013-2015 rubenwardy +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU Lesser General Public License as published by +-- the Free Software Foundation; either version 2.1 of the License, or +-- (at your option) any later version. +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Lesser General Public License for more details. +-- You should have received a copy of the GNU Lesser General Public License along +-- with this program; if not, write to the Free Software Foundation, Inc., +-- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +-- + +-- The global award namespace +awards = { + show_mode = "hud" +} +dofile(minetest.get_modpath("awards").."/api_helpers.lua") + +-- Table Save Load Functions +function awards.save() + local file = io.open(minetest.get_worldpath().."/awards.txt", "w") + if file then + file:write(minetest.serialize(awards.players)) + file:close() + end +end + +local S = function(s) return s end +function awards.set_intllib(locale) + S = locale +end + +function awards.init() + awards.players = awards.load() + awards.def = {} + awards.trigger_types = {} + awards.on = {} + awards.on_unlock = {} +end + +function awards.load() + local file = io.open(minetest.get_worldpath().."/awards.txt", "r") + if file then + local table = minetest.deserialize(file:read("*all")) + if type(table) == "table" then + return table + end + end + return {} +end + +function awards.register_trigger(name, func) + awards.trigger_types[name] = func + awards.on[name] = {} + awards['register_on_'..name] = function(func) + table.insert(awards.on[name], func) + end +end + +function awards.run_trigger_callbacks(player, data, trigger, table_func) + for i = 1, #awards.on[trigger] do + local res = nil + local entry = awards.on[trigger][i] + if type(entry) == "function" then + res = entry(player, data) + elseif type(entry) == "table" and entry.award then + res = table_func(entry) + end + + if res then + awards.unlock(player:get_player_name(), res) + end + end +end + +function awards.increment_item_counter(data, field, itemname, count) + local name_split = string.split(itemname, ":") + if #name_split ~= 2 then + return false + end + local mod = name_split[1] + local item = name_split[2] + + if data and field and mod and item then + awards.assertPlayer(data) + awards.tbv(data, field) + awards.tbv(data[field], mod) + awards.tbv(data[field][mod], item, 0) + + data[field][mod][item] = data[field][mod][item] + (count or 1) + return true + else + return false + end +end + +function awards.get_item_count(data, field, itemname) + local name_split = string.split(itemname, ":") + if #name_split ~= 2 then + return false + end + local mod = name_split[1] + local item = name_split[2] + + if data and field and mod and item then + awards.assertPlayer(data) + awards.tbv(data, field) + awards.tbv(data[field], mod) + awards.tbv(data[field][mod], item, 0) + return data[field][mod][item] + end +end + +function awards.get_total_item_count(data, field) + local i = 0 + if data and field then + awards.assertPlayer(data) + awards.tbv(data, field) + for mod,_ in pairs(data[field]) do + awards.tbv(data[field], mod) + for item,_ in pairs(data[field][mod]) do + awards.tbv(data[field][mod], item, 0) + i = i + data[field][mod][item] + end + end + end + return i +end + +function awards.register_on_unlock(func) + table.insert(awards.on_unlock, func) +end + +-- API Functions +function awards._additional_triggers(name, def) + -- Depreciated! +end + +function awards.register_achievement(name, def) + def.name = name + + -- Add Triggers + if def.trigger and def.trigger.type then + local func = awards.trigger_types[def.trigger.type] + + if func then + func(def) + else + awards._additional_triggers(name, def) + end + end + + -- Add Award + awards.def[name] = def + + local tdef = awards.def[name] + if def.description == nil and tdef.getDefaultDescription then + def.description = tdef:getDefaultDescription() + end +end + +function awards.enable(name) + local data = awards.player(name) + if data then + data.disabled = nil + end +end + +function awards.disable(name) + local data = awards.player(name) + if data then + data.disabled = true + end +end + +function awards.clear_player(name) + awards.players[name] = {} +end + +-- This function is called whenever a target condition is met. +-- It checks if a player already has that achievement, and if they do not, +-- it gives it to them +---------------------------------------------- +--awards.unlock(name, award) +-- name - the name of the player +-- award - the name of the award to give +function awards.unlock(name, award) + -- Access Player Data + local data = awards.players[name] + local awdef = awards.def[award] + + -- Perform checks + if not data then + return + end + if not awdef then + return + end + if data.disabled then + return + end + awards.tbv(data,"unlocked") + + -- Don't give the achievement if it has already been given + if data.unlocked[award] and data.unlocked[award] == award then + return + end + + -- Unlock Award + minetest.log("action", name.." has unlocked award "..name) + data.unlocked[award] = award + awards.save() + + -- Give Prizes + if awdef and awdef.prizes then + for i = 1, #awdef.prizes do + local itemstack = ItemStack(awdef.prizes[i]) + if not itemstack:is_empty() then + local receiverref = minetest.get_player_by_name(name) + if receiverref then + receiverref:get_inventory():add_item("main", itemstack) + end + end + end + end + + -- Run callbacks + if awdef.on_unlock and awdef.on_unlock(name, awdef) then + return + end + for _, callback in pairs(awards.on_unlock) do + if callback(name, awdef) then + return + end + end + + -- Get Notification Settings + local title = awdef.title or award + local desc = awdef.description or "" + local background = awdef.background or "awards_bg_default.png" + local icon = awdef.icon or "awards_unknown.png" + local sound = awdef.sound + if sound == nil then + -- Explicit check for nil because sound could be `false` to disable it + sound = {name="awards_got_generic", gain=0.25} + end + local custom_announce = awdef.custom_announce + if not custom_announce then + if awdef.secret then + custom_announce = S("Secret Achievement Unlocked:") + else + custom_announce = S("Achievement Unlocked:") + end + end + + -- Do Notification + if sound then + -- Enforce sound delay to prevent sound spamming + local lastsound = awards.players[name].lastsound + if lastsound == nil or os.difftime(os.time(), lastsound) >= 1 then + minetest.sound_play(sound, {to_player=name}) + awards.players[name].lastsound = os.time() + end + end + + if awards.show_mode == "formspec" then + -- use a formspec to send it + minetest.show_formspec(name, "achievements:unlocked", "size[4,2]".. + "image_button_exit[0,0;4,2;"..background..";close1; ]".. + "image_button_exit[0.2,0.8;1,1;"..icon..";close2; ]".. + "label[1.1,1;"..title.."]".. + "label[0.3,0.1;"..custom_announce.."]") + elseif awards.show_mode == "chat" then + local chat_announce + if awdef.secret == true then + chat_announce = S("Secret Achievement Unlocked: %s") + else + chat_announce = S("Achievement Unlocked: %s") + end + -- use the chat console to send it + minetest.chat_send_player(name, string.format(chat_announce, title)) + if desc~="" then + minetest.chat_send_player(name, desc) + end + else + local player = minetest.get_player_by_name(name) + local one = player:hud_add({ + hud_elem_type = "image", + name = "award_bg", + scale = {x = 1, y = 1}, + text = background, + position = {x = 0.5, y = 0}, + offset = {x = 0, y = 138}, + alignment = {x = 0, y = -1} + }) + local hud_announce + if awdef.secret == true then + hud_announce = S("Secret Achievement Unlocked!") + else + hud_announce = S("Achievement Unlocked!") + end + local two = player:hud_add({ + hud_elem_type = "text", + name = "award_au", + number = 0xFFFFFF, + scale = {x = 100, y = 20}, + text = hud_announce, + position = {x = 0.5, y = 0}, + offset = {x = 0, y = 40}, + alignment = {x = 0, y = -1} + }) + local three = player:hud_add({ + hud_elem_type = "text", + name = "award_title", + number = 0xFFFFFF, + scale = {x = 100, y = 20}, + text = title, + position = {x = 0.5, y = 0}, + offset = {x = 30, y = 100}, + alignment = {x = 0, y = -1} + }) + local four = player:hud_add({ + hud_elem_type = "image", + name = "award_icon", + scale = {x = 4, y = 4}, + text = icon, + position = {x = 0.5, y = 0}, + offset = {x = -81.5, y = 126}, + alignment = {x = 0, y = -1} + }) + minetest.after(3, function() + player:hud_remove(one) + player:hud_remove(two) + player:hud_remove(three) + player:hud_remove(four) + end) + end +end + +-- Backwards compatibility +awards.give_achievement = awards.unlock + +--[[minetest.register_chatcommand("gawd", { + params = "award name", + description = "gawd: give award to self", + func = function(name, param) + awards.unlock(name,param) + end +})]]-- + +function awards.getFormspec(name, to, sid) + local formspec = "" + local listofawards = awards._order_awards(name) + local playerdata = awards.players[name] + + if #listofawards == 0 then + formspec = formspec .. "label[3.9,1.5;"..minetest.formspec_escape(S("Error: No awards available.")).."]" + formspec = formspec .. "button_exit[4.2,2.3;3,1;close;"..minetest.formspec_escape(S("OK")).."]" + return formspec + end + + -- Sidebar + if sid then + local item = listofawards[sid+0] + local def = awards.def[item.name] + + if def and def.secret and not item.got then + formspec = formspec .. "label[1,2.75;"..minetest.formspec_escape(S("(Secret Award)")).."]".. + "image[1,0;3,3;awards_unknown.png]" + if def and def.description then + formspec = formspec .. "textarea[0.25,3.25;4.8,1.7;;"..minetest.formspec_escape(S("Unlock this award to find out what it is."))..";]" + end + else + local title = item.name + if def and def.title then + title = def.title + end + local status = "%s" + if item.got then + status = S("%s (got)") + end + formspec = formspec .. "label[1,2.75;" .. + string.format(status, minetest.formspec_escape(title)) .. + "]" + if def and def.icon then + formspec = formspec .. "image[1,0;3,3;" .. def.icon .. "]" + end + local barwidth = 4.6 + local perc = nil + local label = nil + if def.getProgress and playerdata then + local res = def:getProgress(playerdata) + perc = res.perc + label = res.label + end + if perc then + if perc > 1 then + perc = 1 + end + formspec = formspec .. "background[0,4.80;" .. barwidth ..",0.25;awards_progress_gray.png;false]" + formspec = formspec .. "background[0,4.80;" .. (barwidth * perc) ..",0.25;awards_progress_green.png;false]" + if label then + formspec = formspec .. "label[1.75,4.63;" .. minetest.formspec_escape(label) .. "]" + end + end + if def and def.description then + formspec = formspec .. "textarea[0.25,3.25;4.8,1.7;;"..minetest.formspec_escape(def.description)..";]" + end + end + end + + -- Create list box + formspec = formspec .. "textlist[4.75,0;6,5;awards;" + local first = true + for _,award in pairs(listofawards) do + local def = awards.def[award.name] + if def then + if not first then + formspec = formspec .. "," + end + first = false + + if def.secret and not award.got then + formspec = formspec .. "#707070"..minetest.formspec_escape(S("(Secret Award)")) + else + local title = award.name + if def and def.title then + title = def.title + end + if award.got then + formspec = formspec .. minetest.formspec_escape(title) + else + formspec = formspec .. "#ACACAC".. minetest.formspec_escape(title) + end + end + end + end + return formspec .. ";"..sid.."]" +end + +function awards.show_to(name, to, sid, text) + if name == "" or name == nil then + name = to + end + if name == to and awards.player(to).disabled then + minetest.chat_send_player(S("You've disabled awards. Type /awards enable to reenable.")) + return + end + if text then + local listofawards = awards._order_awards(name) + if #listofawards == 0 then + minetest.chat_send_player(to, S("Error: No awards available.")) + return + elseif not awards.players[name] or not awards.players[name].unlocked then + minetest.chat_send_player(to, S("You have not unlocked any awards.")) + return + end + minetest.chat_send_player(to, string.format(S("%s’s awards:"), name)) + + for _, str in pairs(awards.players[name].unlocked) do + local def = awards.def[str] + if def then + if def.title then + if def.description then + minetest.chat_send_player(to, string.format(S("%s: %s"), def.title, def.description)) + else + minetest.chat_send_player(to, def.title) + end + else + minetest.chat_send_player(to, str) + end + end + end + else + if sid == nil or sid < 1 then + sid = 1 + end + local deco = "" + if minetest.global_exists("default") then + deco = default.gui_bg .. default.gui_bg_img + end + -- Show formspec to user + minetest.show_formspec(to,"awards:awards", + "size[11,5]" .. deco .. + awards.getFormspec(name, to, sid)) + end +end +awards.showto = awards.show_to + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "awards:awards" then + return false + end + if fields.quit then + return true + end + local name = player:get_player_name() + if fields.awards then + local event = minetest.explode_textlist_event(fields.awards) + if event.type == "CHG" then + awards.show_to(name, name, event.index, false) + end + end + + return true +end) + +awards.init() + +minetest.register_on_newplayer(function(player) + local playern = player:get_player_name() + awards.assertPlayer(playern) +end) + +minetest.register_on_shutdown(function() + awards.save() +end) diff --git a/mods/HUD/awards/api_helpers.lua b/mods/HUD/awards/api_helpers.lua new file mode 100644 index 0000000000..cd499ab423 --- /dev/null +++ b/mods/HUD/awards/api_helpers.lua @@ -0,0 +1,58 @@ +function awards.tbv(tb,value,default) + if not default then + default = {} + end + if not tb or type(tb) ~= "table" then + if not value then + value = "[NULL]" + end + minetest.log("error", "awards.tbv - table "..dump(value).." is null, or not a table! Dump: "..dump(tb)) + return + end + if not value then + error("[ERROR] awards.tbv was not used correctly!\n".. + "Value: '"..dump(value).."'\n".. + "Dump:"..dump(tb)) + return + end + if not tb[value] then + tb[value] = default + end +end + +function awards.assertPlayer(playern) + awards.tbv(awards.players, playern) + awards.tbv(awards.players[playern], "name", playern) + awards.tbv(awards.players[playern], "unlocked") + awards.tbv(awards.players[playern], "place") + awards.tbv(awards.players[playern], "count") + awards.tbv(awards.players[playern], "craft") + awards.tbv(awards.players[playern], "eat") + awards.tbv(awards.players[playern], "deaths", 0) + awards.tbv(awards.players[playern], "joins", 0) + awards.tbv(awards.players[playern], "chats", 0) +end + +function awards.player(name) + return awards.players[name] +end + +function awards._order_awards(name) + local done = {} + local retval = {} + local player = awards.player(name) + if player and player.unlocked then + for _,got in pairs(player.unlocked) do + if awards.def[got] then + done[got] = true + table.insert(retval,{name=got,got=true}) + end + end + end + for _,def in pairs(awards.def) do + if not done[def.name] then + table.insert(retval,{name=def.name,got=false}) + end + end + return retval +end diff --git a/mods/HUD/awards/chat_commands.lua b/mods/HUD/awards/chat_commands.lua new file mode 100644 index 0000000000..c386c19cb5 --- /dev/null +++ b/mods/HUD/awards/chat_commands.lua @@ -0,0 +1,73 @@ +-- AWARDS +-- +-- Copyright (C) 2013-2015 rubenwardy +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU Lesser General Public License as published by +-- the Free Software Foundation; either version 2.1 of the License, or +-- (at your option) any later version. +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Lesser General Public License for more details. +-- You should have received a copy of the GNU Lesser General Public License along +-- with this program; if not, write to the Free Software Foundation, Inc., +-- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +-- + +local S +if minetest.get_modpath("intllib") then + S = intllib.Getter() +else + S = function ( s ) return s end +end + +minetest.register_chatcommand("awards", { + params = S("[c|clear|disable|enable]"), + description = S("Show, clear, disable or enable your achievements"), + func = function(name, param) + if param == "clear" then + awards.clear_player(name) + minetest.chat_send_player(name, + S("All your awards and statistics have been cleared. You can now start again.")) + elseif param == "disable" then + awards.disable(name) + minetest.chat_send_player(name, S("You have disabled your achievements.")) + elseif param == "enable" then + awards.enable(name) + minetest.chat_send_player(name, S("You have enabled your achievements.")) + elseif param == "c" then + awards.show_to(name, name, nil, true) + else + awards.show_to(name, name, nil, false) + end + end +}) + +minetest.register_chatcommand("awd", { + params = S(""), + description = S("Show details of an achievement"), + func = function(name, param) + local def = awards.def[param] + if def then + minetest.chat_send_player(name, string.format(S("%s: %s"), def.title, def.description)) + else + minetest.chat_send_player(name, S("Achievement not found.")) + end + end +}) + +minetest.register_chatcommand("awpl", { + privs = { + server = true + }, + params = S(""), + description = S("Get the achievements statistics for the given player or yourself"), + func = function(name, param) + if not param or param == "" then + param = name + end + minetest.chat_send_player(name, param) + local player = awards.player(param) + minetest.chat_send_player(name, dump(player)) + end +}) diff --git a/mods/HUD/awards/depends.txt b/mods/HUD/awards/depends.txt new file mode 100644 index 0000000000..c0de3afd3f --- /dev/null +++ b/mods/HUD/awards/depends.txt @@ -0,0 +1,13 @@ +intllib? +sfinv? +unified_inventory? +default? +stairs? +farming? +dye? +beds? +wool? +vessels? +moreblocks? +fire? +flowers? diff --git a/mods/HUD/awards/description.txt b/mods/HUD/awards/description.txt new file mode 100644 index 0000000000..f2b9944c7e --- /dev/null +++ b/mods/HUD/awards/description.txt @@ -0,0 +1 @@ +Adds achievements to Minetest, and an API to register new ones. diff --git a/mods/HUD/awards/init.lua b/mods/HUD/awards/init.lua new file mode 100644 index 0000000000..e841603d4e --- /dev/null +++ b/mods/HUD/awards/init.lua @@ -0,0 +1,936 @@ +-- AWARDS +-- +-- Copyright (C) 2013-2015 rubenwardy +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU Lesser General Public License as published by +-- the Free Software Foundation; either version 2.1 of the License, or +-- (at your option) any later version. +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Lesser General Public License for more details. +-- You should have received a copy of the GNU Lesser General Public License along +-- with this program; if not, write to the Free Software Foundation, Inc., +-- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +-- + + +local S +if minetest.get_modpath("intllib") then + S = intllib.Getter() +else + S = function ( s ) return s end +end + +dofile(minetest.get_modpath("awards").."/api.lua") +dofile(minetest.get_modpath("awards").."/chat_commands.lua") +dofile(minetest.get_modpath("awards").."/sfinv.lua") +dofile(minetest.get_modpath("awards").."/unified_inventory.lua") +dofile(minetest.get_modpath("awards").."/triggers.lua") +awards.set_intllib(S) + +-- Saint-Maclou +if minetest.get_modpath("moreblocks") then + awards.register_achievement("award_saint_maclou",{ + title = S("Saint-Maclou"), + description = S("Place 20 coal checkers."), + icon = "awards_novicebuilder.png", + trigger = { + type = "place", + node = "moreblocks:coal_checker", + target = 20 + } + }) + + -- Castorama + awards.register_achievement("award_castorama",{ + title = S("Castorama"), + description = S("Place 20 iron checkers."), + icon = "awards_novicebuilder.png", + trigger = { + type = "place", + node = "moreblocks:iron_checker", + target = 20 + } + }) + + -- Sam the Trapper + awards.register_achievement("award_sam_the_trapper",{ + title = S("Sam the Trapper"), + description = S("Place 2 trap stones."), + icon = "awards_novicebuilder.png", + trigger = { + type = "place", + node = "moreblocks:trap_stone", + target = 2 + } + }) +end + +-- This award can't be part of Unified Inventory, it would make a circular dependency +if minetest.get_modpath("unified_inventory") then + if minetest.get_all_craft_recipes("unified_inventory:bag_large") ~= nil then + awards.register_achievement("awards_ui_bags", { + title = S("Backpacker"), + description = S("Craft 4 large bags."), + icon = "awards_ui_bags.png", + trigger = { + type = "craft", + item = "unified_inventory:bag_large", + target = 4 + } + }) + end +end + +if minetest.get_modpath("fire") then + awards.register_achievement("awards_pyro", { + title = S("Pyromaniac"), + description = S("Craft 8 times flint and steel."), + icon = "fire_flint_steel.png", + trigger = { + type = "craft", + item = "fire:flint_and_steel", + target = 8 + } + }) + if minetest.setting_getbool("disable_fire") ~= true then + awards.register_achievement("awards_firefighter", { + title = S("Firefighter"), + description = S("Put out 1000 fires."), + icon = "awards_firefighter.png", + trigger = { + type = "dig", + node = "fire:basic_flame", + target = 1000 + } + }) + end +end + +if minetest.get_modpath("default") then + -- Light it up + awards.register_achievement("award_lightitup",{ + title = S("Light It Up"), + description = S("Place 100 torches."), + icon = "awards_novicebuilder.png^awards_level1.png", + trigger = { + type = "place", + node = "default:torch", + target = 100 + } + }) + + -- Light ALL the things! + awards.register_achievement("award_well_lit",{ + title = S("Well Lit"), + description = S("Place 1,000 torches."), + icon = "awards_novicebuilder.png^awards_level2.png", + trigger = { + type = "place", + node = "default:torch", + target = 1000 + } + }) + + awards.register_achievement("award_meselamp",{ + title = S("Really Well Lit"), + description = S("Craft 10 mese lamps."), + icon = "default_meselamp.png", + trigger = { + type = "craft", + item = "default:meselamp", + target = 10 + } + }) + + awards.register_achievement("awards_stonebrick", { + title = S("Outpost"), + description = S("Craft 200 stone bricks."), + icon = "default_stone_brick.png^awards_level1.png", + trigger = { + type = "craft", + item = "default:stonebrick", + target = 200 + } + }) + + awards.register_achievement("awards_stonebrick2", { + title = S("Watchtower"), + description = S("Craft 800 stone bricks."), + icon = "default_stone_brick.png^awards_level2.png", + trigger = { + type = "craft", + item = "default:stonebrick", + target = 800 + } + }) + + awards.register_achievement("awards_stonebrick3", { + title = S("Fortress"), + description = S("Craft 3,200 stone bricks."), + icon = "default_stone_brick.png^awards_level3.png", + trigger = { + type = "craft", + item = "default:stonebrick", + target = 3200 + } + }) + + awards.register_achievement("awards_desert_stonebrick", { + title = S("Desert Dweller"), + description = S("Craft 400 desert stone bricks."), + icon = "default_desert_stone_brick.png", + trigger = { + type = "craft", + item = "default:desert_stonebrick", + target = 400 + } + }) + + awards.register_achievement("awards_desertstonebrick", { + title = S("Pharaoh"), + description = S("Craft 100 sandstone bricks."), + icon = "default_sandstone_brick.png", + trigger = { + type = "craft", + item = "default:sandstonebrick", + target = 100 + } + }) + + awards.register_achievement("awards_bookshelf", { + title = S("Little Library"), + description = S("Craft 7 bookshelves."), + icon = "default_bookshelf.png", + trigger = { + type = "craft", + item = "default:bookshelf", + target = 7 + } + }) + + awards.register_achievement("awards_obsidian", { + title = S("Lava and Water"), + description = S("Mine your first obsidian."), + icon = "default_obsidian.png^awards_level1.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:obsidian", + target = 1 + } + }) + + -- Obsessed with Obsidian + awards.register_achievement("award_obsessed_with_obsidian",{ + title = S("Obsessed with Obsidian"), + description = S("Mine 50 obsidian."), + icon = "default_obsidian.png^awards_level2.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:obsidian", + target = 50 + } + }) + + -- Proof that player has found lava + awards.register_achievement("award_lavaminer",{ + title = S("Lava Miner"), + description = S("Mine any block while being very close to lava."), + background = "awards_bg_mining.png", + icon = "default_lava.png", + }) + awards.register_on_dig(function(player,data) + local pos = player:getpos() + if pos and (minetest.find_node_near(pos, 1, "default:lava_source") ~= nil or + minetest.find_node_near(pos, 1, "default:lava_flowing") ~= nil) then + return "award_lavaminer" + end + return nil + end) + + -- On the way + awards.register_achievement("award_on_the_way", { + title = S("On The Way"), + description = S("Place 100 rails."), + icon = "default_rail.png", + trigger = { + type = "place", + node = "default:rail", + target = 100 + } + }) + + awards.register_achievement("award_lumberjack_firstday", { + title = S("First Day in the Woods"), + description = S("Dig 6 tree blocks."), + icon = "default_tree.png^awards_level1.png", + trigger = { + type = "dig", + node = "default:tree", + target = 6 + } + }) + + -- Lumberjack + awards.register_achievement("award_lumberjack", { + title = S("Lumberjack"), + description = S("Dig 36 tree blocks."), + icon = "default_tree.png^awards_level2.png", + trigger = { + type = "dig", + node = "default:tree", + target = 36 + } + }) + + -- Semi-pro Lumberjack + awards.register_achievement("award_lumberjack_semipro", { + title = S("Semi-pro Lumberjack"), + description = S("Dig 216 tree blocks."), + icon = "default_tree.png^awards_level3.png", + trigger = { + type = "dig", + node = "default:tree", + target = 216 + } + }) + + -- Professional Lumberjack + awards.register_achievement("award_lumberjack_professional", { + title = S("Professional Lumberjack"), + description = S("Dig 1,296 tree blocks."), + icon = "default_tree.png^awards_level4.png", + trigger = { + type = "dig", + node = "default:tree", + target = 1296 + } + }) + + -- Junglebaby + awards.register_achievement("award_junglebaby", { + title = S("Junglebaby"), + description = S("Dig 100 jungle tree blocks."), + icon = "default_jungletree.png^awards_level1.png", + trigger = { + type = "dig", + node = "default:jungletree", + target = 100 + } + }) + + -- Jungleman + awards.register_achievement("award_jungleman", { + title = S("Jungleman"), + description = S("Dig 1,000 jungle tree blocks."), + icon = "default_jungletree.png^awards_level2.png", + trigger = { + type = "dig", + node = "default:jungletree", + target = 1000 + } + }) + + -- Found some Mese! + awards.register_achievement("award_mesefind", { + title = S("First Mese Find"), + description = S("Mine your first mese ore."), + icon = "default_stone.png^default_mineral_mese.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:stone_with_mese", + target = 1 + } + }) + + -- Mese Block + awards.register_achievement("award_meseblock", { + secret = true, + title = S("Mese Mastery"), + description = S("Mine a mese block."), + icon = "default_mese_block.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:mese", + target = 1 + } + }) + + -- You're a copper + awards.register_achievement("award_youre_a_copper", { + title = S("You’re a copper"), + description = S("Dig 1,000 copper ores."), + icon = "default_stone.png^default_mineral_copper.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:stone_with_copper", + target = 1000 + } + }) + + -- Found a Nyan cat! + awards.register_achievement("award_nyanfind", { + secret = true, + title = S("A Cat in a Pop-Tart?!"), + description = S("Mine a nyan cat."), + icon = "nyancat_front.png", + trigger = { + type = "dig", + node = "default:nyancat", + target = 1 + } + }) + + -- Mini Miner + awards.register_achievement("award_mine2", { + title = S("Mini Miner"), + description = S("Dig 100 stone blocks."), + icon = "awards_miniminer.png^awards_level1.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:stone", + target = 100 + } + }) + + -- Hardened Miner + awards.register_achievement("award_mine3", { + title = S("Hardened Miner"), + description = S("Dig 1,000 stone blocks."), + icon = "awards_miniminer.png^awards_level2.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:stone", + target = 1000 + } + }) + + -- Master Miner + awards.register_achievement("award_mine4", { + title = S("Master Miner"), + description = S("Dig 10,000 stone blocks."), + icon = "awards_miniminer.png^awards_level3.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:stone", + target = 10000 + } + }) + + -- Marchand de sable + awards.register_achievement("award_marchand_de_sable", { + title = S("Marchand De Sable"), + description = S("Dig 1,000 sand."), + icon = "default_sand.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:sand", + target = 1000 + } + }) + + awards.register_achievement("awards_crafter_of_sticks", { + title = S("Crafter of Sticks"), + description = S("Craft 100 sticks."), + icon = "default_stick.png", + trigger = { + type = "craft", + item = "default:stick", + target = 100 + } + }) + + awards.register_achievement("awards_junglegrass", { + title = S("Jungle Discoverer"), + description = S("Mine your first jungle grass."), + icon = "default_junglegrass.png", + trigger = { + type = "dig", + node = "default:junglegrass", + target = 1 + } + }) + + awards.register_achievement("awards_grass", { + title = S("Grasslands Discoverer"), + description = S("Mine some grass."), + icon = "default_grass_3.png", + trigger = { + type = "dig", + node = "default:grass_1", + target = 1 + } + }) + + awards.register_achievement("awards_dry_grass", { + title = S("Savannah Discoverer"), + description = S("Mine some dry grass."), + icon = "default_dry_grass_3.png", + trigger = { + type = "dig", + node = "default:dry_grass_3", + target = 1 + } + }) + + awards.register_achievement("awards_cactus", { + title = S("Desert Discoverer"), + description = S("Mine your first cactus."), + icon = "default_cactus_side.png", + trigger = { + type = "dig", + node = "default:cactus", + target = 1 + } + }) + + awards.register_achievement("awards_dry_shrub", { + title = S("Far Lands"), + description = S("Mine your first dry shrub."), + icon = "default_dry_shrub.png", + trigger = { + type = "dig", + node = "default:dry_shrub", + target = 1 + } + }) + + awards.register_achievement("awards_ice", { + title = S("Glacier Discoverer"), + description = S("Mine your first ice."), + icon = "default_ice.png", + trigger = { + type = "dig", + node = "default:ice", + target = 1 + } + }) + + -- Proof that player visited snowy lands + awards.register_achievement("awards_snowblock", { + title = S("Very Simple Snow Man"), + description = S("Place two snow blocks."), + icon = "default_snow.png", + trigger = { + type = "place", + node = "default:snowblock", + target = 2 + } + }) + + awards.register_achievement("awards_gold_ore", { + title = S("First Gold Find"), + description = S("Mine your first gold ore."), + icon = "default_stone.png^default_mineral_gold.png^awards_level1.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:stone_with_gold", + target = 1 + } + }) + + awards.register_achievement("awards_gold_rush", { + title = S("Gold Rush"), + description = S("Mine 45 gold ores."), + icon = "default_stone.png^default_mineral_gold.png^awards_level2.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:stone_with_gold", + target = 45 + } + }) + + awards.register_achievement("awards_diamond_ore", { + title = S("Wow, I am Diamonds!"), + description = S("Mine your first diamond ore."), + icon = "default_stone.png^default_mineral_diamond.png^awards_level1.png", + trigger = { + type = "dig", + node = "default:stone_with_diamond", + target = 1 + } + }) + + awards.register_achievement("awards_diamond_rush", { + title = S("Girl's Best Friend"), + description = S("Mine 18 diamond ores."), + icon = "default_stone.png^default_mineral_diamond.png^awards_level2.png", + background = "awards_bg_mining.png", + trigger = { + type = "dig", + node = "default:stone_with_diamond", + target = 18 + } + }) + + awards.register_achievement("awards_diamondblock", { + title = S("Hardest Block on Earth"), + description = S("Craft a diamond block."), + icon = "default_diamond_block.png", + trigger = { + type = "craft", + item = "default:diamondblock", + target = 1 + } + }) + + awards.register_achievement("awards_mossycobble", { + title = S("In the Dungeon"), + description = S("Mine a mossy cobblestone."), + icon = "default_mossycobble.png", + trigger = { + type = "dig", + node = "default:mossycobble", + target = 1 + } + }) + + awards.register_achievement("award_furnace", { + title = S("Smelter"), + description = S("Craft 10 furnaces."), + icon = "default_furnace_front.png", + trigger = { + type = "craft", + item= "default:furnace", + target = 10 + } + }) + + awards.register_achievement("award_chest", { + title = S("Treasurer"), + description = S("Craft 15 chests."), + icon = "default_chest_front.png", + trigger = { + type = "craft", + item= "default:chest", + target = 15 + } + }) + + awards.register_achievement("award_chest2", { + title = S("Bankier"), + description = S("Craft 30 locked chests."), + icon = "default_chest_lock.png", + trigger = { + type = "craft", + item= "default:chest_locked", + target = 30 + } + }) + + awards.register_achievement("award_brick", { + title = S("Bricker"), + description = S("Craft 200 brick blocks."), + icon = "default_brick.png", + trigger = { + type = "craft", + item= "default:brick", + target = 200 + } + }) + + awards.register_achievement("award_obsidianbrick", { + title = S("House of Obsidian"), + description = S("Craft 100 obsidian bricks."), + icon = "default_obsidian_brick.png", + trigger = { + type = "craft", + item= "default:obsidianbrick", + target = 100 + } + }) + + awards.register_achievement("award_placestone", { + title = S("Build a Cave"), + description = S("Place 100 stone."), + icon = "default_stone.png", + trigger = { + type = "place", + node = "default:stone", + target = 100 + } + }) + + awards.register_achievement("award_woodladder", { + title = S("Long Ladder"), + description = S("Place 400 wooden ladders."), + icon = "default_ladder_wood.png", + trigger = { + type = "place", + node = "default:ladder_wood", + target = 400 + } + }) + + awards.register_achievement("award_steelladder", { + title = S("Industrial Age"), + description = S("Place 40 steel ladders."), + icon = "default_ladder_steel.png", + trigger = { + type = "place", + node = "default:ladder_steel", + target = 40 + } + }) + + awards.register_achievement("award_apples", { + title = S("Yummy!"), + description = S("Eat 80 apples."), + icon = "default_apple.png", + trigger = { + type = "eat", + item = "default:apple", + target = 80 + } + }) +end + +if minetest.get_modpath("vessels") then + awards.register_achievement("award_vessels_shelf", { + title = S("Glasser"), + icon = "vessels_shelf.png", + description = S("Craft 14 vessels shelves."), + trigger = { + type = "craft", + item= "vessels:shelf", + target = 14 + } + }) +end + +if minetest.get_modpath("farming") then + awards.register_achievement("awards_farmer", { + title = S("Farming Skills Aquired"), + description = S("Harvest a fully grown wheat plant."), + icon = "farming_wheat_8.png^awards_level1.png", + trigger = { + type = "dig", + node = "farming:wheat_8", + target = 1 + } + }) + awards.register_achievement("awards_farmer2", { + title = S("Field Worker"), + description = S("Harvest 25 fully grown wheat plants."), + icon = "farming_wheat_8.png^awards_level2.png", + trigger = { + type = "dig", + node = "farming:wheat_8", + target = 25 + } + }) + + awards.register_achievement("awards_farmer3", { + title = S("Aspiring Farmer"), + description = S("Harvest 125 fully grown wheat plants."), + icon = "farming_wheat_8.png^awards_level3.png", + trigger = { + type = "dig", + node = "farming:wheat_8", + target = 125 + } + }) + + awards.register_achievement("awards_farmer4", { + title = S("Wheat Magnate"), + description = S("Harvest 625 fully grown wheat plants."), + icon = "farming_wheat_8.png^awards_level4.png", + trigger = { + type = "dig", + node = "farming:wheat_8", + target = 625 + } + }) + + awards.register_achievement("award_bread", { + title = S("Baker"), + description = S("Eat 10 loaves of bread."), + icon = "farming_bread.png", + trigger = { + type = "eat", + item = "farming:bread", + target = 10 + } + }) + +end + +if minetest.get_modpath("wool") and minetest.get_modpath("farming") then + awards.register_achievement("awards_wool", { + title = S("Wool Over Your Eyes"), + description = S("Craft 250 white wool."), + icon = "wool_white.png", + trigger = { + type = "craft", + item = "wool:white", + target = 250 + } + }) +end + +if minetest.get_modpath("beds") then + awards.register_achievement("award_bed", { + title = S("Hotelier"), + description = S("Craft 15 fancy beds."), + icon = "beds_bed_fancy.png", + trigger = { + type = "craft", + item= "beds:fancy_bed_bottom", + target = 15 + } + }) +end + +if minetest.get_modpath("stairs") then + awards.register_achievement("award_stairs_goldblock", { + title = S("Filthy Rich"), + description = S("Craft 24 gold block stairs."), + icon = "default_gold_block.png", + trigger = { + type = "craft", + item= "stairs:stair_goldblock", + target = 24 + } + }) +end + +if minetest.get_modpath("dye") then + awards.register_achievement("awards_dye_red", { + title = S("Roses Are Red"), + description = S("Craft 400 red dyes."), + icon = "dye_red.png", + trigger = { + type = "craft", + item = "dye:red", + target = 400 + } + }) + + awards.register_achievement("awards_dye_yellow", { + title = S("Dandelions are Yellow"), + description = S("Craft 400 yellow dyes."), + icon = "dye_yellow.png", + trigger = { + type = "craft", + item = "dye:yellow", + target = 400 + } + }) + + awards.register_achievement("awards_dye_blue", { + title = S("Geraniums are Blue"), + description = S("Craft 400 blue dyes."), + icon = "dye_blue.png", + trigger = { + type = "craft", + item= "dye:blue", + target = 400 + } + }) + + awards.register_achievement("awards_dye_white", { + title = S("White Color Stock"), + description = S("Craft 100 white dyes."), + icon = "dye_white.png", + trigger = { + type = "craft", + item= "dye:white", + target = 100 + } + }) +end + +if minetest.get_modpath("flowers") then + awards.register_achievement("awards_brown_mushroom1", { + title = S("Tasty Mushrooms"), + description = S("Eat 3 brown mushrooms."), + icon = "flowers_mushroom_brown.png^awards_level1.png", + trigger = { + type = "eat", + item= "flowers:mushroom_brown", + target = 3, + } + }) + awards.register_achievement("awards_brown_mushroom2", { + title = S("Mushroom Lover"), + description = S("Eat 33 brown mushrooms."), + icon = "flowers_mushroom_brown.png^awards_level2.png", + trigger = { + type = "eat", + item= "flowers:mushroom_brown", + target = 33, + } + }) + awards.register_achievement("awards_brown_mushroom3", { + title = S("Underground Mushroom Farmer"), + description = S("Eat 333 brown mushrooms."), + icon = "flowers_mushroom_brown.png^awards_level3.png", + trigger = { + type = "eat", + item= "flowers:mushroom_brown", + target = 333, + } + }) +end + +-- This ensures the following code is executed after all items have been registered +minetest.after(0, function() + -- Check whether there is at least one node which can be built by the player + local building_is_possible = false + for _, def in pairs(minetest.registered_nodes) do + if (def.description and def.pointable ~= false and not def.groups.not_in_creative_inventory) then + building_is_possible = true + break + end + end + + -- The following awards require at least one node which can be built + if not building_is_possible then + return + end + + awards.register_achievement("awards_builder1", { + title = S("Builder"), + icon = "awards_house.png^awards_level1.png", + trigger = { + type = "place", + target = 1000, + }, + }) + awards.register_achievement("awards_builder2", { + title = S("Constructor"), + icon = "awards_house.png^awards_level2.png", + trigger = { + type = "place", + target = 5000, + }, + }) + awards.register_achievement("awards_builder3", { + title = S("Architect"), + icon = "awards_house.png^awards_level3.png", + trigger = { + type = "place", + target = 10000, + }, + }) + awards.register_achievement("awards_builder4", { + title = S("Master Architect"), + icon = "awards_house.png^awards_level4.png", + trigger = { + type = "place", + target = 25000, + }, + }) +end) diff --git a/mods/HUD/awards/locale/de.txt b/mods/HUD/awards/locale/de.txt new file mode 100644 index 0000000000..6564eff6be --- /dev/null +++ b/mods/HUD/awards/locale/de.txt @@ -0,0 +1,198 @@ +A Cat in a Pop-Tart?! = Eine Katze im Pop-Tart?! +Aspiring Farmer = Aufstrebender Bauer +Backpacker = Rucksacktourist +Bankier = Bankier +Bricker = Ziegler +Build a Cave = Höhlenbauer +Castorama = Gießmeister +Craft 10 furnaces. = Fertigen Sie 10 Öfen. +Craft 10 mese lamps. = Fertigen Sie 10 Meselampen. +Craft 100 obsidian bricks. = Fertigen Sie 100 Obsidianziegel. +Craft 100 sandstone bricks. = Fertigen Sie 100 Sandsteinziegel. +Craft 100 sticks. = Fertigen Sie 100 Stöcke. +Craft 100 white dyes. = Fertigen Sie 100 weiße Farbstoffe. +Craft 14 vessels shelves. = Fertigen Sie 14 Gefäßregale. +Craft 15 chests. = Fertigen Sie 15 Truhen. +Craft 15 fancy beds. = Fertigen Sie 15 schicke Betten. +Craft 200 brick blocks. = Fertigen Sie 200 Ziegelblöcke. +Craft 200 stone bricks. = Fertigen Sie 200 Steinziegel. +Craft 24 gold block stairs. = Fertigen Sie 24 Goldblockstufen. +Craft 250 white wool. = Fertigen Sie 250 weiße Wolle. +Craft 3,200 stone bricks. = Fertigen Sie 3200 Steinziegel. +Craft 30 locked chests. = Fertigen Sie 30 abgeschlossene Truhen. +Craft 4 large bags. = Fertigen Sie 4 große Taschen. +Craft 400 blue dyes. = Fertigen Sie 400 blaue Farbstoffe. +Craft 400 desert stone bricks. = Fertigen Sie 400 Wüstensteinziegel. +Craft 400 red dyes. = Fertigen Sie 400 rote Farbstoffe. +Craft 400 yellow dyes. = Fertigen Sie 400 gelbe Farbstoffe. +Craft 7 bookshelves. = Fertigen Sie 7 Bücherregale. +Craft 8 times flint and steel. = Fertigen Sie 8 mal einen Feuerstein und Stahl an. +Craft 800 stone bricks. = Fertigen Sie 800 Steinziegel an. +Craft a diamond block. = Fertigen Sie einen Diamantblock an. +Crafter of Sticks = Stockmacher +Dandelions are Yellow = Löwenzahn ist gelb +Desert Discoverer = Wüstenerkunder +Desert Dweller = Wüstenbewohner +Dig 1,000 copper ores. = Bauen Sie 1000 Kupfererze ab. +Dig 1,000 jungle tree blocks. = Bauen Sie 1000 Dschungelbaumblöcke ab. +Dig 1,000 sand. = Bauen Sie 1000 Sand ab. +Dig 1,000 stone blocks. = Bauen Sie 1000 Steine ab. +Dig 1,296 tree blocks. = Bauen Sie 1296 Baumblöcke ab. +Dig 10,000 stone blocks. = Bauen Sie 10000 Steine ab. +Dig 100 jungle tree blocks. = Bauen Sie 100 Dschungelbaumblöcke ab. +Dig 100 stone blocks. = Bauen Sie 100 Steinblöcke ab. +Dig 216 tree blocks. = Bauen Sie 216 Baumblöcke ab. +Dig 36 tree blocks. = Bauen Sie 36 Baumblöcke ab. +Dig 6 tree blocks. = Bauen Sie 6 Baumblöcke ab. +Far Lands = Ferne Lande +Farming Skills Aquired = Landwirtschaft erlernt +Field Worker = Feldarbeiter +Filthy Rich = Stinkreich +Firefighter = Feuerwehr +First Day in the Woods = Erster Tag im Wald +First Gold Find = Erster Goldfund +First Mese Find = Erster Mesefund +Fortress = Burg +Geraniums are Blue = Geranien sind blau +Girl's Best Friend = Bester Freund der Mädchen +Glacier Discoverer = Gletschererkunder +Glasser = Glasmacher +Gold Rush = Goldrausch +Grasslands Discoverer = Prärieerkunder +Hardened Miner = Abhehärteter Bergarbeiter +Hardest Block on Earth = Härtester Block der Welt +Harvest 125 fully grown wheat plants. = Ernten Sie 125 voll ausgewachsene Getreidepflanzen. +Harvest 25 fully grown wheat plants. = Ernten Sie 25 voll ausgewachsene Getreidepflanzen. +Harvest 625 fully grown wheat plants. = Ernten Sie 625 voll ausgewachsene Getreidepflanzen. +Harvest a fully grown wheat plant. = Ernten Sie eine voll ausgewachsene Getreidepflanze. +Hotelier = Hotelier +House of Obsidian = Haus aus Obsidian +In the Dungeon = Im Verlies +Industrial Age = Industriezeitalter +Jungle Discoverer = Dschungelerkunder +Junglebaby = Dschungelbaby +Jungleman = Dschungelmann +Lava Miner = Lavagräber +Lava and Water = Lava und Wasser +Light It Up = Licht an! +Little Library = Kleine Bücherei +Long Ladder = Lange Leiter +Lumberjack = Holzfäller +Marchand De Sable = +Master Miner = Profibergarbeiter +Mese Mastery = Mesemeister +Mine 18 diamond ores. = Bauen Sie 18 Diamanterze ab. +Mine 45 gold ores. = Bauen Sie 18 Diamanterze ab. +Mine 50 obsidian. = Bauen Sie 50 Obsidian ab. +Mine a mese block. = Bauen Sie einen Meseblock ab. +Mine a mossy cobblestone. = Bauen Sie ein bemoostes Kopfsteinpflaster ab. +Mine a nyan cat. = Bauen Sie eine Nyan Cat ab. +Mine any block while being very close to lava. = Bauen Sie einen beliebigen Block ab, während Sie sehr nahe an der Lava stehen. +Mine some dry grass. = Bauen Sie etwas trockenes Gras ab. +Mine some grass. = Bauen Sie etwas Gras ab. +Mine your first cactus. = Bauen Sie Ihren ersten Kaktus ab. +Mine your first diamond ore. = Bauen Sie Ihr erstes Diamanterz ab. +Mine your first dry shrub. = Bauen Sie Ihren ersten vertrockneten Strauch ab. +Mine your first gold ore. = Bauen Sie Ihr erstes Golderz ab. +Mine your first ice. = Bauen Sie Ihr erstes Eis ab. +Mine your first jungle grass. = Bauen Sie Ihr erstes Dschungelgras ab. +Mine your first mese ore. = Bauen Sie Ihr erstes Meseerz ab. +Mine your first obsidian. = Bauen Sie Ihr erstes Obsidian ab. +Mini Miner = Berganfänger +Obsessed with Obsidian = Von Obsidian besessen +On The Way = Auf dem Weg +Outpost = Außenposten +Pharaoh = Pharao +Place 1,000 torches. = Platzieren Sie 1000 Fackeln. +Place 100 rails. = Platzieren Sie 100 Gleise. +Place 100 stone. = Platzieren Sie 100 Steine. +Place 100 torches. = Platzieren Sie 100 Fackeln. +Place 2 trap stones. = Platzieren Sie 2 Fallensteine. +Place 20 coal checkers. = Platzieren Sie 20 Kohlenschachbrettmuster. +Place 20 iron checkers. = Platzieren Sie 20 Eisenschachbrettmuster. +Place 40 steel ladders. = Platzieren Sie 40 Stahlleitern. +Place 400 wooden ladders. = Platzieren Sie 400 Holzleitern. +Place two snow blocks. = Platzieren Sie zwei Schneeblöcke. +Professional Lumberjack = Profiholzfäller +Put out 1000 fires. = Löschen Sie 1000 Flammen. +Pyromaniac = Pyromane +Really Well Lit = Sehr gute Beleuchtung +Roses Are Red = Rosen sind rot +Saint-Maclou = Saint-Maclou +Sam the Trapper = Sam der Fallensteller +Savannah Discoverer = Savannenerkunder +Semi-pro Lumberjack = Fortgeschrittener Holzfäller +Smelter = Schmelzer +Treasurer = Schatzmeister +Very Simple Snow Man = Sehr simpler Schneemann +Watchtower = Wachturm +Well Lit = Gut ausgeleuchtet +Wheat Magnate = Getreidemagnat +White Color Stock = Weißer Farbstoffvorrat +Wool Over Your Eyes = Wollige Augen +Wow, I am Diamonds! = Wow, ich bin Diamanten! +You’re a copper = Du Kupfer! +%s: %s = %s: %s +%s (got) = %s (erhalten) +%s’s awards: = %ss Auszeichnungen: +(Secret Award) = (Geheime Auszeichnung) +Achievement Unlocked! = Auszeichnung erhalten! +Achievement Unlocked: = Auszeichnung erhalten: +Achievement Unlocked: %s = Auszeichnung erhalten: %s +Secret Achievement Unlocked! = Geheime Auszeichnung erhalten! +Secret Achievement Unlocked: = Geheime Auszeichnung erhalten: +Secret Achievement Unlocked: %s = Geheime Auszeichnung erhalten: %s +Unlock this award to find out what it is. = Verdienen Sie sich diese Auszeichnung, um herauszufinden, was sie ist. +You have not unlocked any awards. = Sie haben noch keine Auszeichnungen. +You've disabled awards. Type /awards enable to reenable. = Sie haben die Auszeichnungen deaktiviert. Geben Sie »/awards enable« ein, um sie wieder zu aktivieren. + = + = +Achievement not found. = Auszeichnung nicht gefunden. +All your awards and statistics have been cleared. You can now start again. = All Ihre Auszeichnugen und Statistiken wurden zurückgesetzt. Sie können nun von vorne anfangen. +Get the achievements statistics for the given player or yourself = Die Statistik der Auszeichnungen eines Spielers zeigen +List awards in chat (deprecated) = Auszeichnungen im Chat anzeigen (veraltet) +Show, clear, disable or enable your achievements = Zeigen, löschen, deaktivieren oder aktivieren Sie Ihre Auszeichnungen +You have disabled your achievements. = Sie haben Ihre Auszeichnungen deaktiviert. +You have enabled your achievements. = Sie haben Ihre Auszeichnungen aktiviert. +[c|clear|disable|enable] = [c|clear|disable|enable] +Awards = Auszeichnungen +%d/%d crafted = %d/%d gefertigt +%d/%d deaths = %d/%d Tode +%d/%d dug = %d/%d abgebaut +%d/%d game joins = %d/%d Spielen beigetreten +%d/%d lines of chat = %d/%d Chatzeilen +%d/%d placed = %d/%d platziert +Die %d times. = Sterben Sie %d mal. +Die. = Sterben Sie. +Craft: %d×%s = Fertigen Sie an: %d×%s +Craft: %s = Fertigen Sie an: %s +Mine a block: %s = Bauen Sie einen Block ab: %s +Mine blocks: %d×%s = Bauen Sie Blöcke ab: %d×%s +Place a block: %s = Platzieren Sie einen Block: %s +Place blocks: %d×%s = Platzieren Sie Blöcke: %d×%s +Join the game. = Treten Sie dem Spiel bei. +Join the game %d times. = Treten Sie dem Spiel %d mal bei. +Show details of an achievement = Details einer Auszeichnung anzeigen +OK = OK +Error: No awards available. = Fehler: Keine Auszeichnungen vorhanden. +Eat: %d×%s = Essen Sie: %d×%s +Eat: %s = Essen Sie: %s +%d/%d eaten = %d/%d gegessen +Yummy! = Lecker! +Baker = Bäcker +Eat 10 loaves of bread. = Essen Sie 10 Brote. +Eat 80 apples. = Essen Sie 80 Äpfel. +Tasty Mushrooms = Leckere Pilze +Mushroom Lover = Pilzfreund +Underground Mushroom Farmer = Unterirdischer Pilzbauer +Eat 3 brown mushrooms. = Essen Sie 3 braune Pilze. +Eat 33 brown mushrooms. = Essen Sie 33 braune Pilze. +Eat 333 brown mushrooms. = Essen Sie 333 braune Pilze. +Builder = Bauarbeiter +Constructor = Konstrukteur +Architect = Architekt +Master Architect = Meisterarchitekt +Place %d block(s). = Platzieren Sie %d Blöcke. +Dig %d block(s). = Bauen Sie %d Blöcke ab. +Eat %d item(s). = Essen Sie %d Dinge. +Craft %d item(s). = Fertigen Sie %d Gegenstände. diff --git a/mods/HUD/awards/locale/template.txt b/mods/HUD/awards/locale/template.txt new file mode 100644 index 0000000000..454f153a65 --- /dev/null +++ b/mods/HUD/awards/locale/template.txt @@ -0,0 +1,196 @@ +%d/%d chat messages = +%d/%d crafted = +%d/%d deaths = +%d/%d dug = +%d/%d game joins = +%d/%d placed = +%s (got) = +%s: %s = +%s’s awards: = +(Secret Award) = + = + = +A Cat in a Pop-Tart?! = +Achievement Unlocked! = +Achievement Unlocked: = +Achievement Unlocked: %s = +Achievement not found. = +All your awards and statistics have been cleared. You can now start again. = +Aspiring Farmer = +Awards = +Backpacker = +Bankier = +Bricker = +Build a Cave = +Castorama = +Craft 10 furnaces. = +Craft 10 mese lamps. = +Craft 100 obsidian bricks. = +Craft 100 sandstone bricks. = +Craft 100 sticks. = +Craft 100 white dyes. = +Craft 14 vessels shelves. = +Craft 15 chests. = +Craft 15 fancy beds. = +Craft 200 brick blocks. = +Craft 200 stone bricks. = +Craft 24 gold block stairs. = +Craft 250 white wool. = +Craft 3,200 stone bricks. = +Craft 30 locked chests. = +Craft 4 large bags. = +Craft 400 blue dyes. = +Craft 400 desert stone bricks. = +Craft 400 red dyes. = +Craft 400 yellow dyes. = +Craft 7 bookshelves. = +Craft 8 times flint and steel. = +Craft 800 stone bricks. = +Craft a diamond block. = +Craft: %d×%s = +Craft: %s = +Crafter of Sticks = +Dandelions are Yellow = +Desert Discoverer = +Desert Dweller = +Die %d times. = +Die. = +Dig 1,000 copper ores. = +Dig 1,000 jungle tree blocks. = +Dig 1,000 sand. = +Dig 1,000 stone blocks. = +Dig 1,296 tree blocks. = +Dig 10,000 stone blocks. = +Dig 100 jungle tree blocks. = +Dig 100 stone blocks. = +Dig 216 tree blocks. = +Dig 36 tree blocks. = +Dig 6 tree blocks. = +Far Lands = +Farming Skills Aquired = +Field Worker = +Filthy Rich = +Firefighter = +First Day in the Woods = +First Gold Find = +First Mese Find = +Fortress = +Geraniums are Blue = +Get the achievements statistics for the given player or yourself = +Girl's Best Friend = +Glacier Discoverer = +Glasser = +Gold Rush = +Grasslands Discoverer = +Hardened Miner = +Hardest Block on Earth = +Harvest 125 fully grown wheat plants. = +Harvest 25 fully grown wheat plants. = +Harvest 625 fully grown wheat plants. = +Harvest a fully grown wheat plant. = +Hotelier = +House of Obsidian = +In the Dungeon = +Industrial Age = +Join the game %d times. = +Join the game. = +Jungle Discoverer = +Junglebaby = +Jungleman = +Lava Miner = +Lava and Water = +Light It Up = +List awards in chat (deprecated) = +Little Library = +Long Ladder = +Lumberjack = +Marchand De Sable = +Master Miner = +Mese Mastery = +Mine 18 diamond ores. = +Mine 45 gold ores. = +Mine 50 obsidian. = +Mine a block: %s = +Mine a mese block. = +Mine a mossy cobblestone. = +Mine a nyan cat. = +Mine any block while being very close to lava. = +Mine blocks: %d×%s = +Mine some dry grass. = +Mine some grass. = +Mine your first cactus. = +Mine your first diamond ore. = +Mine your first dry shrub. = +Mine your first gold ore. = +Mine your first ice. = +Mine your first jungle grass. = +Mine your first mese ore. = +Mine your first obsidian. = +Mini Miner = +Obsessed with Obsidian = +On The Way = +Outpost = +Pharaoh = +Place 1,000 torches. = +Place 100 rails. = +Place 100 stone. = +Place 100 torches. = +Place 2 trap stones. = +Place 20 coal checkers. = +Place 20 iron checkers. = +Place 40 steel ladders. = +Place 400 wooden ladders. = +Place a block: %s = +Place blocks: %d×%s = +Place two snow blocks. = +Professional Lumberjack = +Put out 1000 fires. = +Pyromaniac = +Really Well Lit = +Roses Are Red = +Saint-Maclou = +Sam the Trapper = +Savannah Discoverer = +Secret Achievement Unlocked! = +Secret Achievement Unlocked: = +Secret Achievement Unlocked: %s = +Semi-pro Lumberjack = +Show details of an achievement = +Show, clear, disable or enable your achievements = +Smelter = +Treasurer = +Unlock this award to find out what it is. = +Very Simple Snow Man = +Watchtower = +Well Lit = +Wheat Magnate = +White Color Stock = +Wool Over Your Eyes = +Wow, I am Diamonds! = +Write %d chat messages. = +Write something in chat. = +You have disabled your achievements. = +You have enabled your achievements. = +You have not unlocked any awards. = +You've disabled awards. Type /awards enable to reenable. = +You’re a copper = +[c|clear|disable|enable] = +OK = +Error: No awards available. = +Eat: %d×%s = +Eat: %s = +%d/%d eaten = +Place %d block(s). = +Dig %d block(s). = +Eat %d item(s). = +Craft %d item(s). = +Yummy! = +Baker = +Eat 10 loaves of bread. = +Eat 80 apples. = +Tasty Mushrooms = +Mushroom Lover = +Underground Mushroom Farmer = +Eat 3 brown mushrooms. = +Eat 33 brown mushrooms. = +Eat 333 brown mushrooms. = diff --git a/mods/HUD/awards/mod.conf b/mods/HUD/awards/mod.conf new file mode 100644 index 0000000000..24042f2678 --- /dev/null +++ b/mods/HUD/awards/mod.conf @@ -0,0 +1,7 @@ +name = awards +title = Achievements +author = rubenwardy +description = Adds achievements to Minetest, and an API to register new ones. +license = LGPL 2.1 or later +forum = https://forum.minetest.net/viewtopic.php?t=4870 +version = 2.3.0 diff --git a/mods/HUD/awards/readme.md b/mods/HUD/awards/readme.md new file mode 100644 index 0000000000..83235130ab --- /dev/null +++ b/mods/HUD/awards/readme.md @@ -0,0 +1,162 @@ +# Awards + +by Andrew "Rubenwardy" Ward, LGPL 2.1 or later. + +This mod adds achievements to Minetest. + +Majority of awards are back ported from Calinou's +old fork in Carbone, under same license. + + +# Basic API + +* awards.register_achievement(name, def) + * name + * desciption + * sound [optional] - set a custom sound (SimpleSoundSpec) or `false` to play no sound. + If not specified, a default sound is played + * image [optional] - texture name, eg: award_one.png + * background [optional] - texture name, eg: award_one.png + * trigger [optional] [table] + * type - "dig", "place", "craft", "death", "chat", "join" or "eat" + * dig type: Dig a node. + * node: the dug node type. If nil, all dug nodes are counted + * place type: Place a node. + * node: the placed node type. If nil, all placed nodes are counted + * eat type: Eat an item. + * item: the eaten item type. If nil, all eaten items are counted + * craft type: Craft something. + * item: the crafted item type. If nil, all crafted items are counted + * death type: Die. + * chat type: Write a chat message. + * join type: Join the server. + * (for all types) target - how many times to dig/place/craft/etc. + * See Triggers + * secret [optional] - if true, then player needs to unlock to find out what it is. + * on_unlock [optional] - func(name, def) + * name is player name + * return true to cancel register_on_unlock callbacks and HUD +* awards.register_trigger(name, func(awardname, def)) + * Note: awards.on[name] is automatically created for triggers +* awards.run_trigger_callbacks(player, data, trigger, table_func(entry)) + * Goes through and checks all triggers registered to a trigger type, + unlocking the award if conditions are met. + * data is the player's award data, ie: awards.players[player_name] + * trigger is the name of the trigger type. Ie: awards.on[trigger] + * table_func is called if the trigger is a table - simply return an + award name to unlock it + * See triggers.lua for examples +* awards.increment_item_counter(data, field, itemname) + * add to an item's statistic count + * for example, (data, "place", "default:stone") will add 1 to the number of + times default:stone has been placed. + * data is the player's award data, ie: awards.players[player_name] + * returns true on success, false on failure (eg: cannot get modname and item from itemname) +* awards.register_on_unlock(func(name, def)) + * name is the player name + * def is the award def. + * return true to cancel HUD +* awards.unlock(name, award) + * gives an award to a player + * name is the player name + +# Included in the Mod + +The API, above, allows you to register awards +and triggers (things that look for events and unlock awards, they need +to be registered in order to get details from award_def.trigger). + +However, all awards and triggers are separate from the API. +They can be found in init.lua and triggers.lua + +## Triggers + +Callbacks (register a function to be run) + +### dig + + trigger = { + type = "dig", + node = "default:dirt", + target = 50 + } + +### place + + trigger = { + type = "place", + node = "default:dirt", + target = 50 + } + +### death + + trigger = { + type = "death", + target = 5 + } + +### chat + + trigger = { + type = "chat", + target = 100 + } + +### join + + trigger = { + type = "join", + target = 100 + } + +### eat + + trigger = { + type = "eat", + item = "default:apple", + target = 100 + } + +## Callbacks relating to triggers + +* awards.register_on_dig(func(player, data)) + * data is player data (see below) + * return award name or null +* awards.register_on_place(func(player, data)) + * data is player data (see below) + * return award name or null +* awards.register_on_eat(func(player, data)) + * data is player data (see below) + * return award name or null +* awards.register_on_death(func(player, data)) + * data is player data (see below) + * return award name or null +* awards.register_on_chat(func(player, data)) + * data is player data (see below) + * return award name or null +* awards.register_on_join(func(player, data) + * data is player data (see below) + * return award name or null + + +# Player Data + +A list of data referenced/hashed by the player's name. +* player name + * name [string] + * count [table] - dig counter + * modname [table] + * itemname [int] + * place [table] - place counter + * modname [table] + * itemname [int] + * craft [table] - craft counter + * modname [table] + * itemname [int] + * eat [table] - eat counter + * modname [table] + * itemname [int] + * deaths + * chats + * joins diff --git a/mods/HUD/awards/screenshot.png b/mods/HUD/awards/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..ab9e19e5672d4c1a2380cec52c6a1002f648987c GIT binary patch literal 63807 zcmeEtg;O2R*6rXD2oT&gXmGdS65JtpaDqGJpaB9QH~~U%cL*Nb-6gm~(1W|b;dk$? zy7krfs@@;)l1dSVIXykyd#}CL+RaxLB^h*7B2)kX(BH{QssRA34gkPJBg2AM9<;xX zf?p6#LOs_+M8F&%N^_`*=(kcQxE+HS+!yEws zPyp{F#WXzUp-WyVIDhJSkGH)>3io#Bj0r*%6UOzqe;cn4YbsDlVsfcwtHN+&;x;p4 z!N*bjB-m(Ki_ggTEUhvn8PQYxRhwNDhX#$vX9;(TJ{w9=<#F{s?J8<=GMtTb^v< z{vT`dDhOPoAoxshjVQ(F!8MY_Lx2ydRR$E?oT2QbX%+=$M~Z8{+!- z?s=@)>@x?Zz~k~OecEJAWJ<|}_`=Zz9p_S}IYZ7==i$G0tZ)9gUvMnpq}H6vz8o29 z@O>_<@SoAVhsUpLHq)Qy7izG;v-Pk42@5>^`&nyr&yzM$9u@g#hyUxD%FmnKMV9LK z&#PSS+{ZnKLxs%t{}^KY=3hfZjkMO-XdPsVU3YA#Z*tz^5;*Sh-LxT7)-H{XkTp|x zDC<5i)g{I7eXT{hlN+gwJbc4C53ja~_`8uBFz(0stYT?z4R{)JF~bWk&bw_$!Z>buy78 zUW3eai{L~vhXRnuu8p29i~z@{hpQF$1-s4=3?%<#hnD)B95e9J)v^eu(=w!aK-qu^6+w;-4chD|uWq5z4vfu0AShL_9fz`DTa^KAunLLH0i7Ly{ zx)oo@$$EFs54QeybgAdXMh``PPmjbrw$V#;?t_=)4kyLc$icG#p*!H`5dC>qyg5Zg zp1}1$6Y)4)|;XmmfADL2xI9T*rmTxx7R9bn2F@@TzVVo=W`@mO?9 z_qj}h3RVcN(LMo=ResOm&|6eo3

s`rqE(9&=J{p_b^zlWsRVZS?4eY#Txj+(w13 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 Z378FywAxTB3;}#eMnX}%R@6A;{{VSZ`Go)g literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/sfinv.lua b/mods/HUD/awards/sfinv.lua new file mode 100644 index 0000000000..de85998c39 --- /dev/null +++ b/mods/HUD/awards/sfinv.lua @@ -0,0 +1,30 @@ +if minetest.get_modpath("sfinv") then + local S + if minetest.get_modpath("intllib") then + S = intllib.Getter() + else + S = function ( s ) return s end + end + + sfinv.register_page("awards:awards", { + title = S("Awards"), + on_enter = function(self, player, context) + context.awards_idx = 1 + end, + get = function(self, player, context) + local name = player:get_player_name() + return sfinv.make_formspec(player, context, + awards.getFormspec(name, name, context.awards_idx or 1), + false, "size[11,5]") + end, + on_player_receive_fields = function(self, player, context, fields) + if fields.awards then + local event = minetest.explode_textlist_event(fields.awards) + if event.type == "CHG" then + context.awards_idx = event.index + sfinv.set_player_inventory_formspec(player, context) + end + end + end + }) +end diff --git a/mods/HUD/awards/sounds/awards_got_generic.ogg b/mods/HUD/awards/sounds/awards_got_generic.ogg new file mode 100644 index 0000000000000000000000000000000000000000..3ae982b3a8859006d4e76463cdef7fe8c527344c GIT binary patch literal 76652 zcmce-byOTp*Du;cNN^1Sf+iujyAufR?hxGFodkCXE`i|gI%pCsxI^&Z?mo!eo;=U{ zecw5Et#j7>=hmvJsof>r`?vS5+EvvpZ)TM(0&%rCqGGyKUqp_+0fC&H} z-%_K;n@UpWCuCE3q$EhdbKOi~DG6cS_(qY;J^x9_*otHbh--r(y1` zjDHiPzkHB^&mxRSV2mmJ9Nv8>bwP?F*wsI5kpcc7n}B#6u4FatKsC|O*jxEiIz=4z zF;-D!6`Diu;Y5xw=y$UkG5B@h^`z&9<<6qXv5P)xQ zxRchXb6ykXta9f(4h$}P1Q^31Aw&A|n)*wwWPzz=g++RUd1-^qKn>kM4eH-200LMA z9==(m75u-Vsb-SN|2+zs|DpkeKrDM5h^=A!ed(2ckX@4JG;sM|O25{uw9P84wCMBLC;`>94+k zjF5jdO|tZV&Khg*7Z!i8Tm0+bn|Mg1NASbjo^&%0K=6s}{w28N)xgSHKowbLmzPBwa9fW1Mj~gap6#zpIZB zC^v)O_&r}gllep=8sd@{kjIla$Dqf5WBx^*M-mk+CRH4uphQ5K@BH~M=VSm7i1}BG z|C9Vx<$ts|?@KsMKUM7@%K#lbDeD~O*{kZr6hUPMwU~|_)Z(c6%}l2XZV9XW`e`lN z`~)Q_>imB!3KS}taqN3Ug1<%*oZ{F|T?ksm{}kNu+Yv0{vHuZAPKXq-DZn_!La)rq zud1S|?rNi%>@wdNr2E@tdB$gXCQAQh@c*t@|7AGgjUz)j>ecl4UXmnZ*iIp3(FSGl6!NPc;%`Q@EQl37?>twnFX>sZT_Q7~nwnFhq&pL|=b2O740aV(P~xZxlHhzhDl_I1mQ#u? zs%nx}fjl+!VFDy~|B@vrsxMTPT~iD8SY&7NODa%iU&u}+{!2Djpr|8)PyaXg7p2t< zvgsyUG&4-O=r&cDm;8rRPXtK-@JDzC_yaioLLh_){!{=E0V=SG2T3nz8fSc<=B90W zyzQ$2;WW@pdlx>+1_EfFwiWgoKJx*{MBtzGXo3dOH@FfANdW%c4)E$jXCKDcWaHN* zz7%+5Zh`QX&`82nkPmD=p`w~(tO@p;W1d!0(p&|<4B8zyW0|KFgym4B6_hkHu*sf% zP{fs0R@Hs^Z_VB28dN^{zn5lQ;Eu%q62NhphzlI^@ZVDssNxyqBE2N>|BpiXGlw#F zrx+khQB$ymzo({1crGkaoR=UeL0>=3LPZS@SQPnnYFhnydDBW(sR@%>R^etr<2W!5mjMW3!OmX=&6om+MFxcM zb8(G^B_)el#HhE(62`SmVwHy9Q{~s2Qs-v`d{MF*Qj+4Pq{yF6qb3MYkdi8APh>&N zPDs$Q8VQIBUd1Ug_kR`fku zD1eZ;Jpk}l8Mp+-=Tv_O#q|jA0DxE}5I}q*8R~qvYgUi|$2~<^3d9}6vk=6cc{Ag$ z1hlOUV~XF@m$dQPYdO<9D@jQf*W>3Vybc7P zv%DVvE6D8^uo=i+WPaYHRwOgWmN6Yz*)XyioRqD~L6*yhxVLnys2lLDY=*fDy{wt1 zHLSoXJ4-vF91a7MhdtmgRpk(zm{iwew#E;Iof&Z;|~gYGLYpI6wc^Q#*ftwpIU7FRgXqB%Oz=ive^h@9;2nS@w(#Eq_>JJ? zKX?0^1Cu}nu+#q(P*DV8!*2wy_qX7m8~uF@@aEZ|JVCqk2j0-ocge9<@I4a8WswmI z3NCvBjDzEmNEv9%Amm_zru3g&dA%6*KiB>i6#rM1zvTb_i8LI7|8W2RF^BN`=__>q zF&r^$B{KpwLWeaZ{MWI66~+Pqv~Eyg@SQQGKnp`A2PH2jOjF*CXA~F<>IxNHB_o*K z(cx&1D_Jx5Xz;r4WqJdd>knW z5Iw^|@aJ7dkv|Elc#nn^b58@VQW!m$i>k*rh_o#4)-Woso(3)9XCj_qI0&~Bz1VXj zC$K*as|pC7LF5=DQOhz4tP;W4gKuC}#@+*t9^LqF0;}p92(5vq6*O6M+9<6rqIgX^>_QvA+-vGC{VNBE=%umC`p<`8#p2JL!Y z{clUU7fR^huFhA`3G*{%AQ|2>1))dia!o5?oO~;Yl-sz8 zJm6v$49@{~(6`|54>dR4-1Ox!!%L}sCX{p@N=rI_v zm~mKNu;XzOa6vas2wbhf>j(jl9)Sh}1~~ob(LZZ-A=JN@0Qg!RUK;wx${geA)g3p2)LJ{i0K^y@eXAU7*VT`p&TVoq~`t;YyFx?>enl?ug__#;?n= zr-}F8yN%lyW{frrwOICn?GF^H3ADG<84ofnnNfc0^ewRJlMd~z8PdI9SP^bsNh@KM6?VcH(6gD0E5QuMagxXE zFbyX^!&jw*h=4*FxvOL}d2$8ic)$c{?TGkhiyuzLQswQ{h#Hs2&s)`dul3Q+;72>H z!~^LwC@bMH^Xir=)embAnobwFuZ1$1^yiPqGHeu ztNhVMNiU;pe{EU(RxaMPs5NZ#Czq#c173S5TXn4Zk>CzAmBHKd=~Z^(89!q~(@Ie& zEf2jpPektvbD??mahdBi3!UY2j zPr1j=e=?znX#xj+(D2>HT78|b$!EkpoqqdQu$xu8efjzJ_NdI>`@@U*+q=E?@r%BL z-qXv|AMd6XenSzw35EHRNCco`wlan-SM`gnEl|Unhlx1Y#=!3V)vTo<0`R&brO#nB zN&ZUrmxHQ6!#t(jQ>=QriY76I=*odgq?ODx$llTN5eYzk_occdmWgMGWt}$5a6GUw_AVNA$l{u zimf0wH)4jtFq!2}&*OI^IP!3O?0Y5N&>n5!d9%gbbYtJVcMCf$yY4;R?_17-ts8Zg zpYEjlJq-Nt;`3>_t6A`kLNZ&6l~~TK`$1aK!E_%&@!-BUZ71la+K~bXK?sy?2@d;< zl*io|;Pe?*g$<`SnrzrFSf|1Bw*+ za{(8v8dvBdh0e*8)r;M$-Bsm5VoS#}y?k_+3YR8}P@IIUIH$YezKNOEAG)8*-nuKi z7_uE(q4Gl{_Uq>nv_nVdFSvNUj(Rm5|HNU*L=EdXUwbG5{!Z){QG8bHX^D_P+oOS= zqs=?(y0QJL&g5>)3y&_>1eY#LcG=RHsm7_^E49+8-T7WiVv{|uuEr_LV3&)I@lsLK z8C%^YrKKc6n}+(mS!>GI72Q>hZnZMp8yUS+%9~M&c$b#|AX^R_YNC-{c~ATmJI2pT zP^sDs!GO2ZsOo!#UIy;11kSjJTQbZAMeO`p9-~O|b-k&Tv>Azva-3Fg7gU7UJefr= z)hgzMi}MK}v&x5sFRn8gtFznH^}Y+Ca_h(Y%;ji~n~9Cf>*nGuQhDeYDdc_z$L-+3 zA=9vdbdAdu`Epv;YrpEE>pJ~{r(M_fxBi2?V`J2mk2W6xvx2hqQ|mL?y4jfLRUYa9 z;J&;saGR{VXilCXU3%HJw5(_3OVB@9GD_i$o;CLQ5@;yV3Et&ag{pX zCz%UOqh(M3l%*zubIohcy{uk!{ljJ>0kzO+W!$hx9?QYPD70H6EH6@N0(!C97$j!P zX4+C3tC=ur!sQ3+c|T+CrxVw{j{vgQIw^8%K~6hj+&8Py-lBKK3o7jLpST23kH7AC zRpLrF2HwB=13fH-Ew?^Z2M8F>CUZ5iH@fx~9a1hNck}4~6dt=F=c6_bD3l1a^0!Al z7ovfclh#@pk?#g6tt>3yJ?1u5^b`jREqfMkM?$ws5Pwxy#jD9*%Y!KdW?`soP;~u9P zTwaO*D3K2>yQp3kE=IFkomqDDyBT}+d^z}Jsg5Z-5W{fc=V#k1uX%}5l1Z+-JdMDn zBj?OdZXSc`>TayI<6R0XBrNWp{{2br4O)vzmUpt5FoM0*TF;UGywVU9%Z5Y-uZVu+eS<(Z+6 zm3iy3NNLuiDA#%$mN`iOJT<~uS%|ZdG8C#hdk=l!o#`wI##E_B&Z^+0GY+miznSbp+C0!{Pu2!{H!N-OGm`H-n92}eHk2{V|@dCRW9loIMwSL zc933f7wiQk?NPB+B#c~Vcpbk}CNGglLt&yM#O=|myta)Ce7|1%cC!?PwPqDi(b)gT zJ*@Rjp)N);<#fu@c{8k6)Tc{Zo?yRj_qdy+l~$n3y}kGLou{N7yn|ZIG;uSZg$B-rxDDF&iTBiCNj`e--h&dk{D5|m41qHB&v+rE3lNO z(YcCn{*B1q_hP7$sHI&>zC=ig&@XORb}DjOM@#)xWwd9)_6oVi)a%!LBwyH?J%@RN z4i5YpPH78d_9+Uc?q8NhETpT-56;zCx*8QPt>>i6C8acG-{|8gre+=T3RX84mK6_i zSfb6`@s*WT)AgsYjEky8*v#bL)#6D`)UfWw@@y>nT{NIl&3LxXjiNDWWA57##ASGYwawHRYT3Wbrzpw1#% zdIfELas7UYl2|=Sx+v#_uGH|P0ZWIKspua25lv(jmEB%#B$~3WgJS2@i!w{rs^a22 z0?IMz`J#C_xL5+GWh2ZElmsU0c@Vr<9>#yCkj|$#4Kft4_333XY zv@n#hIt3->9OR*eC}D_$i3E zb7;$kVITO3cun(_zGl(vO7G3G^A>~!E?221$~GmU;TUKc`$XNn++H>76OUJ~Xwy1z zC{-4Oo(iV#OBH_!vIz<3o0=nVobJCOGHuMR^j~NRi#lCSbueW=4$9k>;ZpQ2-w@!1 zQQmOlS(ejGSf@&Jwx&-S=X>y!)*HC2yPn^KRlWGVH$C7{l#I_7Q`esvXI8WBz487y z?(-8}#x35Mc`07OcoQ$?wo(!AmPIEu2&H_1RTWAQuRZ3tOOa9KUbq&9RO~z7dxdpR z`D&iqFS7TgtVnDM`z?}oZuqTq?+$FTTU&IW_15319h>QRzglm09`|LAeMhMx*Ltrk zzHsL8)^>CU#v@xDC$N?Ge&5&8q4F3Y>xwf`wARi z%;cX{(~MBtyk{C8uQ)R>sn6jJo-WG~9vCaaDto7?ZB^Q`sVCLEY3GonCstS_H&Rf( z@iA5PIG{x{Oi%>>^n z5#F09rh&p^bGbV7`_$PBsYL}Z%|QifwcaAqh?X3dB@HwGNvcxDpo;$RRjm>No+V~u zb`_Zbvm1Qr>N~ox5n4;5HG?H_LB+H#ISzD5oF%#ghPYPh%hNTd-bS4+9%EC~I^d87 z03W_+@>MFjv7>G@Dx-$@?WhJTA#0%Qhj)DEf=xCM(~G!DZvKUys7%Y(B|$=pJvG3cFaIzGPKcUoJj= zPdX%jn^lv-w)k>_?a*mtn%0)l*R@^goIM<(OP_xhz393Gdos`P0eOp~BiaEv89Li$ zHh?1a;DFJ!BO&_KW2S>!axp76`AWM>(jeEr7C*z(NzEj`gK_yit|uF2+ZlYOmx;=_W; zY(Kn-BTY3e;-K%heu)J{k}=`W@(r^*TZx*l%jx(L=JiUT|M0Ux^QP5GTQW=e7Gcjv zmR~g2q8%t_-xl27u;P??%!J=w-v~1n%RVJNYmBg-8e!%2?VCm{d9HQMD9Y7V*p{Px zx~-v_#5G%+?c&%ts?U;6wKa0?r8^U8p??rZ#jsFU=-v``Ije5GgvTJ0x}|R{O2JUd z`D69K)4wfGR6U<_C%K5SbuM70>t=k>s->}-yT)}zoWceM^bS)Gj0w=y#(L5%q4t%B+2%&(vj^V4 zdtcyL7CgZBz8-`BRHbjjap5~%4Df^po`}K|Zh@Dm3B?jA^#B2r>mp;7r`B^k|06_9 zBPZXkNc@(7)|X@qkz?YeSsd7z#-lKFz+QPs{{?4Px}V*XnwUFdj9teZ=zXj=I@5%8uEJeD*T|2){#YZZ$g-~4Xd!^ll zW#t<#sN|U%C%p?M=8!^Q#f^?Ey=fiGST*A^R;@_)&<2mD+Cxan4FTi4S2&H_puvHf zO|eP_9^}5Y?c{vgbhE!qX(s+eqhb2V*ax%} z==AJzFSh1yBPNu+O6&6tT6hshGaCh~hGK&hf>r!cO$Hu6wir4rBbmBBI>A+vhN)ZB zpDxVzEz`NUwRP2EB>DD@W295lCRHRy!?NdCp}U0|Xo(C=UIvz9(T6ishsl#E<3EI_ zyDbl_>2i76_`WjheNg#|)+oNwfS)5nuK6lP9E*aYVE%almffZa-oP4n1Y}bP_fzd6 znW>)b#ztyuwV1ZYZ`@$QQkfAeQHI@&+F;lDABQGWlc%(8JCi*17Gu*)sAoe>Fc*B6 z+=6`4N-=_iFB%li=Rwus(GIipQ3*4;QB{V6BVxu_Yx&c0hSnO06X9upwO|_Bgh<6t z)5K^YbRaz8T5(#^78LZv=?$OPaV}9LN&en3%Y=)PQt{~1#Vu&n)lIhuAXMhPpVUcL z^)OVZ;v!yT%h-(bF@2eHv9PQzZ;RNQt>KHM$r9H>2t*yDzpB%2G(XjCJjf%9gQr1x zomHDtYsk!S8UL1Cm4H>_nz69{&UL3W>S{+tI?d73$Yu~|H9I~_B@OPw8G{LiUE8*w z_QM=*OHr1wY#xlXwZA+7=y%c4a>nwr)EQFg#$~6PL7i*w>sfr3;!_TE6cf2Gy#!UA zPhVPy`WvB&Cf_n|>~LSntJmr2TiP*BeVgvwc%`b2yezZp79DeZeLxnHpmN80(PmPW zkeD_>#PEeU_s9p0a1mooV{Y7Z-~TAvDdI&iQ;ZjJ()Zoespakh3qLmR-ZEn01D~zN zsSh(HY2OoTPR~TzUv8|Wm#+$q3{G7_;uYb;R5#&Qgx)#cbG_{QkVT?`FBHc(wTQ6HaKN7~WQvU7uQqWvGo~MHoT6mm z5=z0oXFQAQ)nZw_cbUk|thQXYV(adV^(|>aQ{Do_t)liW(Jn3Vr$Wpt(>84 zS&QfwdM{NH@Lq|9HIpo~d>fJh@xX--rnK^HbJd)B(Ca=LCV zPQ*rh+XZOKMt-ufW98$UgpGCZ_wzGdcQ~Z3%rwoBh<#r< z#kib3px$G(0Fq9>S)e$Uls8vev^QRU8Pct6U8AZ`^LVUHR+E`{O&Y|JewQ?7A z$4Tb+U3ugA2EJFN*v8eApc#|c%6{@|Tk>9?Wt4iz?27O03X1hpZSp*QLX^Y%vWorF zm-|bzAsB>gqi+NtLLo!BY{m|SL;_{6Q=?mBcZbyq-uAZ`b7Sy@opF9bv3ppHe060w zv1oK_oZaS8tPNFma8Nl4xHc^8coRZd&R-Gb!j{k2V^+t)9N0{^gzWt>2vZy9qezFt z&5za(u`#Y8lSN5mKZl?l$?^II7Y04-cdFAeVb&A*G3!-r76OT^qRQ{3&tQsl+p z!gv>(Lj}I>^!;$UUjX~_g`~};LsDidj-mp6(Lj9W*3n69k(Q#+2hk5vXRmyqN4;M; z#)>nHR4Ilt$}lQf2-RD7P86w1FO_v7vK{xXdNcJ~xMEmeWmI!?Z7{(|^nIVzT~nU} zFCI@fXO+vv?M6PwwzmUJOx6=O5E3y&g;B8+<_8q+?(AN^6f)l5elZ9zr5_>yzPCI zb%&B~3s0PiVLL8zer?Ozmb(4H?+45q5&PHfc|TLFB&ZT|h*Z#r*#z|EkCxq=@dl`U zDiG>AFc-p9WOmk=-bTT#Z}mKcQ3nir1zK+-wQe0yJ&m8oY$#Cn;#PdQ)<#;Z0K~z`Q1C|{J=liP1wkl z`r>RYmf}@=pdvqe#>AlpsU9_dKIJa>j!pBIAmO1Tl{Jd;GP<6Um1gPPvYJ~RJ5LI< zy-n|;4!i>d6#v)ZB+3YRC}S#`kED|VGubKUBQFj;%P6~>3Ps}{x?WAx7@mmi;Rnrn z5ZAwA4ub7^7aH?$H27uurMnN=G?=?^j|sd*x6n$W;%3JkQuoRl**8Z)#37%cc_92E z5^87}?jl$#h1Kl3p{m~V0yREvVq=wl1bbjrtGYj-G14EAI1^ckzuq8Gb&VbFPy&FP z8d2q=9m~$wyWH`t8sA&~s6y*ZIz`)V{rTtH&M@ z(rzI5_B@%^GuUqFi1qtUGH>MDTbg3CT0#e2GsZq~&e?rVza`}-U&g~Q?}#{-zB;rB zOb_@IXR=u3{M^?TAFp3p=x&Z|IgHt9ffcvbE=(*`yE4I^6bh1l=x#SiXS)-&q$g+) zEe@^cHN9lFN!P=_xggapEre#quv->yS~T_ZITyKh?Dcj$RIgb(&~ z^@GS;C=n*%`_^rhPjpP_p>0 zC@wLIi?oJumeElcHCTkIc3aEu#Lsp@CJ)tYBN;c+W?hc4X(J)f=Rw90vdZytq?cGL zxOyG7kG`?t?OT@XK^#Bz1D4r%ed&&)R^5niXD7yX=Es5FTRb`{KOHb$;1$V#U+HFE zGx2rn048SUQwHsP?k+N9@#^#70q(s?2CtL7A*;?wQu2X7$A$D_^1*V(%}%#fGvh2N z);m$W+KbYUr&Gz!EjL@!;qU8)(+A?W&@zRaU7l1s%^N-(d}-sxPvoaHazp4)R^hq9 zBs_jE+B0-0)25O*=A6ExneU|uY1pL zdAmAw!&To+X!L}Zg~w(Y5W^E6jv*V*as8f&&Ij?4rek`Qg(lcPDkimtsD&wGy>5 zYuTglGv`9t(Zh1O6hgEoj`it71YL6UMYsq<3G{QVVzSM((vK)Bi#FQX9fttqR+W#+#zW7_v!v%lgrlC>u#gb6KTGa-;)Q{% zWqc}^8OLE?^{)3BEq}+S-CD)0%$=_!jeJ|h0=>@8Rly>i7jXj0nP-gc6|)*OX-$0m zx+hLW!L|#v-5T5_p@NLoYd^2@0ttwAM-K$tyh|ULomr8>oFa9+R}Nw{Q)lObFCb9E z&SUz1^$P_~hTsx9-IjttZzBS!9%#QOEdm#|9~|Zx;md-k%OO z_B@S7zf_9&Vs*Co6H4{B?STj3<>|*NL|aM-_WI`i-M&m5RCP5>N4j?crA|lSv-`0iOawpB`{9<|n`qy?^1Vw-RBvO$A=l=QKAcY5 zqSPgddJ-M#={5S=(F{MH+TQkn^}>;t0cf!EGcCM!pAf#mG2=yFvm+)}vkFe1NMiYB z%?_XXdC!0^qzfopS~zcaHw<;y`-pzhTyGYvcZ*thteebIy-WNI`y6_M= zAy8>B>p7nnnrS?)kx(I%)X)nV zR?bn8z2u^N6VUUSJAbhV8U)Ma!e%x5nOzdNaaGdqx$?Sla@ot8~_m90Q%uM#WiRnf}T2^FtI}a$>WwpHF?O zz;ZLk*;l7R4yl0^hzVoqUPp?2(#5o3-w$XkgG0lIiZA)h(s*~4_doXEY3A3DA4dLK zCt^)jV2-1q{?nf{US*tsf0VhEDpFwfi^)r~#Im@jQEo6q+fW88LZgQzzfO;O+|@Bt zU3pg*ty|X8g(3CD+nUKqk*`Zs#a3$$R4@Z1^q@?3kF-N0m#*do_TKK45CdIyeRcKC zs#k`g3Orh>+dNniyzi1&f|c40Mv~*Z#&b$vw<*b!6CO4*i5{02hQ(8jsSotCsFsb@ zZ-}oPmEZDHP*C*D;prw0!}sj_%lMWWwo@!!rmenmzeyXbDK%l7rQPc68Zi7}+NmaT zdaQ*EKk@^B)b+=jXTOA>eBd{S*d7$uUdD2#ofuEw+Z9%VZ}Cm@?A>9+&ocGo`(0N| zv_uG=abcPPC$Z`r{-_s~Hla()_S~$jw}ww1F&M<|1##-y`cSu|z5@8n4jJ829m<_> zY(_PXQAgZS59slNHg=EdM0M(@TTrn0^}VV;z33eBa7uU9ckUrrq#ihq#7r;w#mEn7 zc?r=Czq4>9mSJGfF|)PBOFYyGunvhgeQu>Q*Qgw-MA>%UO3@pGdigrjXOLB^1|_-O z;P)LY@Y&Eg8mD>&?DWS)F_!Io#&t|GkLr!0uT>IjdAB7#%wZ;PVGyeO^h);3iT9?* zHBz`SYi^;NX%XhIFyrdE-ibJ_y4O*j#MRVYjUs;jb0lwMfZl?~(+rj&pWXKpMv0to z;dbb9q27H~ezPUMYJ71^jC-Tlf~C0HwEB2QM0`1pgc(NPy_9MDWfL_ez^Aiq`NOA0 zlDqbIsa>kGSF(32H>LaE+hIyqQ#(bYUQRLy-Y!c!&&x_-es(J-Bi^T8Fen-aV*;H# z%gjo>Q4W`45vt6HjD6LsaRk&0Rtx9+0B2qQJ=A+U!SRc$mid7l!IQ;SO6eP)d|3zc zX+}L=nxz}N-&{u=ij`r~HZk{*zyL@f-kLNG@8>A%RyFR^o{g$PYPZGulU7X~mm1JT z6)GeSKyT(SlU!KVJCbbLRdh4j(BfP+@>^_q*i+{zRBVpgh%Ixi*)^J>$Xsl>YP@qR z?UUczvN;pne;9cLhYN+uamRf=yO<+esy@q(-FOVw&wRcA2u$~c;V3j zAzHqgxu|Q=ThNW+bg3Lrut{Fr8to`i=QwP3K47&;a$B~ky_jaiU1<|&zA$L>87%ZW zud(ckSNZYoV*H(jy6q};Oq0y)r`{8vmNtg7yLLM9q%wvMCr zFB-QeReUxgt(s|M2N;_7Y8j5Ez%86l?u0D`Xe|^D5Fee(D}6+^%kx)bWdki`LvMWS ztDf5bsB&=qsNlJ|p{}1fM|5wz6k%gCXhl8isIPg|3XPaC!wCe!-r-%XIoXB@I!x`o(>kn$0R zo@K(^_%>5+5cI!u3(kM2eeZz&%1=9-Apm=`y+>8D(#yB2!l~{1&gSX)Qc8lXfu1P% zfx{tRDH}fLi`1T8;>`D^l(qWG>M|1-t~rOsBhD-)$svK&Ki%?FClX^niU+D`$pU!M!w z7fzTD7_-!1Pd=M67#)b%o}@W1A3m0xweRWZEsj=p=X>Wxd|Td`v?}(M$$rBxW~r7| zjE&?dWIf;MJqwI2K*cgK31U94RpZQ8MnqJYgA2$kQ6bS$teugXq&-0=TIiue*$Rq_ z@wSfAD@2gBgtP1dIQuN%*A_W>WuucZ^Qqmrx zXD;-7I!WCw2f`EnssQabdCi3QL2*yrMmIVlPMmT}lFi+X`g-ACGUv%v7E1(o?cY09bT zw3jrL*?0TSM8&7(fp6@p|E!?K{SAMOizfcmF}s+`LN5N412;>1^=vDChy^A1>4l#O zwCvHNLbgQ57gFvs+Wq~X$0`HMeCEhp-K#gB^bU@$y?gdf+BfCX+CZ?16%73RG5s)& z^(LI#Ri6De3hBzy$UFS=#~N-LenJmk=^8;h2A?B{NfiJp4>d{*aqSl!F`6gvGCNDRI<6C_b1@1ANIYTt4~WZha3Z!2vKR5_(LN}W@}8q z&rjyWe2a$%U>vziJ`bZ7CrZ7!EvB*ZT>UP;Jq^wa8zHZZdul$VEm5QdH!K>7@0Rmb ziiZ^Hcpb2pw}H<;E`2ZCC&BR?+(>nkC%QN^L0$8%^WNp2xqr8Psoqwgk%1vCOQiF4 zLnbYKHs=F*wf&4@R+AZ>oXi?IPR3+HAfkeN#nc?Os@iL5(`MRvUIK}^borVrDFXjr zm_YI8?YWM_jq_q|v9z9*{q^htkyiV2$x&V6^KOGe;v)=%j0SqL{#CR@P8*wmR)tjtbS$WH*_D)|j7{GH7to=Wltg z8EEvs3Pzh%gMYx~A8BDB_?%mn^f^wU87WK8d2Jzw5(mNBrl8k!=35|6GK~=vqC&#S zNvh7!99tnp>WitvtkuwwTC=}6v|Y>76~Qocy#8QTxx8xbDt3u;#MAAVs_JsPEC4*i(ZJ0$RnFp1RPXXPCSPz0n}d=l3AaiyvK$_Zol*$Rb{ zyO!eXhmViH;r(e;v*kQ2ygE5ltp8k&4=WkHMv{Zlad8bx-qw^2{1UGuoROy^Jmq{- zbCmSE^${n(6XVc@a`d{?{_7i(o!NZf@3T{agG??fedB6cJ2QlCO?OS($}juhwp$_o zmbpTbO*R@`?MvUoUlSa(H!k*C*)7w`-5aoQI9R*Xb%{X(kkkq8g`R7N@pjHbTkA@< zdg9e zKri)RIa}J zChH@H%U2xUNU#q2cWQ2V`;1xeVjqoriW<<3 z8$Lz|kV&knnGOs^_jz<^wXIUOCo}fK8W)nzD3{cgC-{@dZ_|SP8b;gBA3R~u5red~ zi9@G8h)>t=z4`Pm!E?jiyDNdOUv^G)+NR~LpxWIGy6Jv3fr*0i5H8cg3x4m$_NuL- zC4%&KjgE_Dy=O;mvlZ=g9htKa$;7zbJ^m>rOM2 zYuq@uO=veBnm1>VU(k{rwZf02Edz({GK1InCM462tyyoxiMk7D%kxB&hHUDgQv*Kc zt93ax5nC?Gq-#*`MZJM-M}5iwf*jRl_DlD9K0SwO?@MW>Teb#Ozcd7rnObYK<5=vX zQLD4!PyWWF?@+{6FAz&|}JI&u&lX;_~qLtIR@;%3MB z+|w1d6cLvSWGp(WJ{?oYrsLEA)j+_D`u*!TSHK^`&015mkLR$kWfq+WP2t=4!|NLT z%lj4k&RIR`_oP;xcg33ucXQH3453yT0x!PB?Ro-$GRw0yjlun(Cl8p@{mVHg8(p747!yxCV4|C?63Lw;$75xxB^BhQPcs!u@u5T)YG( z!sK{|1w$nLX&dM=wUr+%L&M--qpMskPqE;VBVx1{?Q|`3mc-I zvc|8WDjo|JUcLMQ*gIpflRz#vea`zYtn5$?UOM#~m~$ z8g6hS@>}r^O8W{hGj&(N0>qf>d0Rc9+a3oW)=p-1;)iG?pN%BQSLil9^A~hbka=a} z6cLvzOnofv&RWTgD1$;;v9&bU>nhD{NUv1jUBG!YnjbIYI^8RmhV)zNc2S)sol*ky0O6Ib|GpJ-$H43r&sXzw)WP+w4jxNvFWyW zPn|<`69dTE0djaLlM#EWRdIXm$`;L*q0eBxtgh9r571ECdWO}X*KuK|-+-nAq|;f+awEf5dz zGxwEbQrivWX;DwkWqz}8aR|dkgGLYz=mENg?Jm0wV%ud!Ltgy{{3yz>wCzTOvGv*T#R}3xO|__XBpn{CzJ(555zk3QyGGi783Qn#c1V-{)^z zVdZADEYreTh)7$|76cVM!x#Fqtsd1+Y8xM^+hxwSi9UjUJ4I#`eYAb=2YOV7Bme{& zRBgxayMAQ_&|(9BNPs`rA&kUhsZY~RFVaHnXc2y4krwBC`|NqBf3f+H^3!1&@DR|E z_^`Sr-B{6U&F+s5{1K0$8A5z}iH3@WCDbAxmpOyM(V}@a^R%Y%_fB)$4AusZbKds$$> zOF{}cF!HHNZRFHY3!`s_pt|AfH#u4PHdb~6B`(Zwu)t*jS?cnQcB)gR$(~e;oazkC zN<)KoimeYg`6UI5X;`|J2I*dE>5yD%L0EEO;lc0k|ICYX?W>u& zcFx>$pHH0tJ8Pn&Xd9V&!EBasc(+!??6{t?i5$YkQjOer{txEaiTYtXuB3VTS;Mrdpj{J}9M55#xtzB&K zg1>f6p&D&}*Sg1==v{Y5j6DVnXKNM_eS!ThGD4e?rD%0t<;^fjp{ei=)#&qFxXI}s zeUVXn*O_?1g`Bp1VfN$1Kgae??0G1p;YD?PBEg3@7afMAYpZ-7ADOv~2IZ5p%2VCF z{CyN=rM+}@<8t3$2W`b1Egz+~x@iK!OZH!B+GMRnohym}pvn@tBMjI_7;3Vb22J$T z^v7#T^J4zTsZvJ<<7ra5?<^sPsYJbFC4-(Eg~*c+lZ*8#Vsy@9Pu5Ig3@Zxl8f4X| zH@{_HWsWaRX##z<`=5pFH7geQ_?WUH<`!XRwa18%P=w^3EBekK%#G=j%-vhByXWW+>zs5buIWPn_wM#R~Yt!fK0 zg|69#wZQ^IAHW^y>DADgapWklpWe%tW!XG;!HMr`G?a3pp9S45vQ?OlPHz0(JS4Nn{(HLQ zm7(txZO-smd1yurThDGLbzFFdNbH+y?&G=&u*s(_>I`WK6eQplz6t0&=a{STx_tgx)L)PBu zXa~>0-gfbaBlo2xCelptd?tl&f;rR!ly{+u1Uz|O7WG4`cW}?$-T}~~ z45nT_2UWPI{q%W$4#Uz=YYPs}NQ9IBS3)M*$!ZODgWxExG?SFrpvM!VJ$@0^Y52$s zc2}>dF}`H1H{k?6o=-)&*8n#DNH=l0K#t8zG3TCy<_pd{N3`nz*M@Oi>E{FL$Xr&n z7ap&g7AztC1Uvv&K;W9365vPqY%RSS`BV0W@&2%?O^JZ}ncR%erjOYpA7k%&O`9K# zHA$K>ol`{Kz1PiJ^^V>Z`IDqGVvwap5b{)IY&+!1{p^r%vfP5!;>?jiZmdKM$CG$V z@%YnQkDqN==CpM@uW;L6iykL8ry~$ignL#MI7p$@ZDQ>mEq1iZ;#nwL&^Sy5ltadN zfg{TtrV`iU*&6;LZFdW^#yG8tmMDeVwe`@keYRF*la|&o0;fX932O{7f(1f;lf;38o&N1$>_jr%{n)gE*7jr12z2_J(TZwZ0ej}EOVy6*yyDEe z&-EdFGU11T~ko-xOW>!h_B7eL%nDA9PEQMv9@#X9JKdm zL;h`3zPk$o?e{%I8bqslIe*!9XOu8#)OzCpG^MlF*;`K zFV&W+m(}g6>D-WUaBV{?mCMlE%3m+Kbe1*b?DzvBk=_baFHo1DPs|eeklA3wxz12_aGE;m-khf=q7HYFS$X?~M_$ApFX3>X+8cfit@`%b1hd*47v5eO>#0M|n7C2c-5TiP90(rS<;lQqya2 zZHd`?StRe$u0R0VyU(I~K7g1M?eh(qj9)5g_TCI1p52g-9&2cUoqR!BU_oNPu3D#m zfHNFNx-+zWu6R&;v2UsW3s!@(EvG6{do>sk5CHo>s;?aTgY25ohv&XjWwV9vRO?W1 z&?>uMmYJXJ9n?i#y)bRnx|ZMT7|O%)W;$3ripFNCgXxh$%E$s)$ef9aShZs2g{qp) zAcelwJ9=l}Q0Jo($HUCYw&NIlOPAoVtG3TwKhw6Yuz86xreJA*4X6hbw6 zPJOC(8&$(LWw~>zCm@f(zCBLYV8$(O`1W=xY%%AJY9%l=79XAxEz+Feon+;Kw`JPW zW3gvk+*kb~bUn+tK<1#4u>FmwggiU5hFyOh#XvZ$F-)IPqgASb* z#C8p%*8BYefI4{8)hfznH&GnO$$F0?EI6*W1lMeylc4?-QjwYLegh-Q_XE_r4JM?A5Urxzt^(2M|^V^wE{OL`BCU4!NL%4=9G1dq9T! z9gg(Ly=bErPv66!6?NoM2^eDp^`6|9V_~P_zV|bGDouVMc7UHZhv_ z#|T)G8Ed`0AqjCm*ok~|Aw1JwlI;9t$6qT~B>R$`eRu}+8X5)P7YCoqm#+zLa_Q9` zBbwFrhFjf6_gR~W!_~Ne9G*Xbde&tSw_hl;rMu_DO*;b3SV_bmGgH$VOWW$ z>~6?NzsGksFBbhoY2DkC!Wm!XNt;|x-J_WW$KY@K-l-N=o4E>#Rz|0WAxD;4LG4A< zcT*l3Gz*;GK7Hmh`P!kkPbO7wtyPE4EQvgbsAD^_;&gY9nEzfbx8Kzdc&!;ISvl05 z-0V9wJ2d*B&kxquxp&uzWU7X28`V)&5_J$WecaoCI+D*YVvlEX63Uv!qzN0lMkqWEOxQ!6^t4BkxpR}S(tmX z3PpU?c}}04BQg%obGB{>?l!LtoM-pTu-P28x6PrxZCx4#vs8hHJZ~%n+tX>!myG8P zNP)eN=g1ld${gc{cMleylj=H)eBJVxirLAzo&Ggg_DlF8wTSHtO?=tO$JPRpRNPvB$P+5!SIPKTA3l_9 zL*JZ=%gK!95}HnX-~j%PoB-#^quZ>Al^OOODW%ptnIDy41ngh~x)=g<$(6*H7e@|I zRg)|}pMy4s?uz0tb->7RbC!G91MIBVep>l7T)6cK;IHi!z_L)r4czolWuBf$&wvB? zlr$TQKh%1uK6y;z1Vn!Ux9}9)x!stHHn*p&7w(i6;}Je9!A|Hg4p^~yKNSVP7B>YH zJL0~36n;Zu@1T|0|NSYTH7YZ6vj#MjW4Skv;TBDn+yO#Hl@zp5#8X(4Z5wESrVB9) z+@o816VlRInU9aD6eDp7w7f}QoNjYVVaV4(4nod`J0t2W3FFH`)Lv3TZa#bXo8;Jt z;uLeE@Z}+Sj7ofpH3WqtZhebU+Fhq_iJwGx&k4~=L`?2n-$E6R_t)_cq?ku+5Jdc} zc6_9;d>wO$7m>QEE1maVs6=aVu ztwm%#au^=E# zdRE-uTjNYvIgaVaK$j~*K1&I5+9Ah_g2+|g2yE+LeGv|tf@vEdjn87+oeJb$y|54h z<+5?jlh_`xU$#f!qmDOBa_ZXsOXn^i=cRYw* z6{;})1n!Q%N?Clid_vwRTHWo1$CbN|*C!ezMMa_b6s&T?UvkbTL~@t zdkl^{XARw>M>r}6H%F+*xda9TS#E4p~V+amaQEE%~b%R<=NtC%>oORH?*!i*brQhhwjptxI@ zv~5r(&pqM;rLsKlMP^(oe1z}bLpEX>np!3jMW6~#ZXI-8iGz0*vKf^W}kyN)KS`w8%={$yvMMUgO( zJP^f!B!tIeWC>Qj`{PN|`72Z%VAWfNJ3GSx)vf7|!A!$T=-AsfTgBN1fn!mK*d(QY z>Y&@mPj|ByZj=ME`O89q=%qE) zG#b`8ZuYDo!|;OWB#!uCuteO|G_av|3H}k2AzMu)H-DPZ^duVtNhxY1lrvGyxyXCSbvBc`l6OQ zWRYnxjMcDxQoycB0k8xF&UyGRiVNjvMrKWEeU=DeQ4pve5q`Kzc~CP1LS@eGSNDer zu;p}H-RZO*v`fO09Kk+@@m}l;R@~$->k98M9Sr2a%4}>ER^FN8*Jk5o8I<@txRWeu z+$bcUAGgT=ysDJh^!Xy#K8GO8f!>T76jIX?#X_Nu})EHc7Q1k*(GFj$~+vj+J_aiz;dyFZP*{~29 zsa%0wW#fIM)65tbQs4>5Ox~sg>-Ig>vrJRH^aC@a|T7D zLLzsfJ!*qCjmS=C3s9%pIGzVj`>-^WjGcWs5huQJPb#5(751JKFGx2kb5 znk^!%6u}|xFDvF-7nie9THY6zv}Z9_4YQVB*CaCTx-C8LVZvreZAh{{jH4LKc3?L1 z#q1IJK;dQ1P$d;o`^f*m^>1eE&)p8|a(&F3!)Cdc ztP|mS!AuseWLwQ9zK?blwP!OLh#cg=(qSLLoNeUoSt;iaqBF)1TO*;bWOY?KdGS=R z!{iAZ;23_WF$J|Q%p{D3Mz@ZpqBY;$V0ZG zkId@|;J6kIZ_FRwleK1F`;X%^$G&EabH_K5uS-h!$5M@M%dG7Y_X>OVY`y--ao~vP(8~WH4OHb{)+W-r$ z@6H88P)zoyWjrsKxbGH>#0DPlqH0BOYDBD$D(Cz~i)splkatZui&ml!552gG9_vs5E~d+a?Dn zMlDxDyS#}>p-W@=A(5FC_SWcSv0M8?Fa!}uA8>&$EK&!uemm!;IMQ-6d9vZ@|EA~J z3*67xVf%&#HU}sul`yV1VBq_{tEQPOtL?Gn_sY$9?FMUypc9BmDB2fdO9CSps|=uK zjoL|w4p)(;lKgbul`D|(i#L4{$Q^s6k?r{$)0O{2Co484;KdITT6gTsOz6+fwve!wPHnhYuXg%LF27oy17`yE9-i0072)?IrX>SHD^Bd0Yho@H!Fo?ldBJy`DKLJC)V1y6Ckl&mq+R$Rn`SvA1wFoO0gckUOqn^YYuO zj&!W&T)T0|lE!n%;q-Y}Snl-zb(-C(g6>Y455ngipaerpSc;DlZ(!MX`uK_7pW!wX z6G)d+&1I7?o0!*VnLAEk@0V}Z=XR12cnd(NjpNqDAcPHx9 z2or5(>eIGsd4TL6H=vF65CheywI$@7)Mi~HK`-`@6&~oUC}j(k(5Ju~K}e2LyRnbY z<$-A8u-Ibj$C@LOpxdiX8c<4ggC>-I3o??EQN1=LG-k>e75U*l8Tu>>g>a zXymJj&3Yr;YVlJcZyf5bay;_!S;4s~bcYhmq6)nS{oVTevBi}s%4Yk=AC2)#qaGTXboV>@_pB@%?5evqnrFM1(+&X9pPhX1*Rl`_CwvI#v5=YU%-4F zRT<7@9g^5UyQMtTW$gXro-$E25?C>IPjU+DLtp*f|9b=ra<8Fal9nSms=ak}PSx+* zu=Re*CmZ#%ZwUo*B8B zSoU+9@|UwLv*Bd~9ALTm^osF;kqb}-4^4b}EEmWo(;}HH8JE;+;HK5CSTn(=B5E|t zL!E4ReTu!mm5#0or8RT3t$1MKh9>werF`Uzr!7A{3M0)S+G3-$iaK*l7Jmd|JC~Qz zV&JBgY+!i&aysA%iBqSKwdocTBn}ICl4|}nL=(`Jc@_p1R#coF#abJQUfpXVxha1jHgxJNt%GqHdDmg|H9OmH$*GC!{7v%QIjykeR3AdtmZ zd6ku(7~W9f(vHx`BB;fhLGwASFuRj_u$P%!83dD!EKHZ;sY~8^|I!rSoAu}`efNya zoT`MZVVnd=@abDL2U~pynG`=eh@LgTjk$D;Dd*a^DMUg_vo|%Mv9XRVAt6!qAR)}= zWvOA-L1Da(zr1+O)cEWksq1@eGWlh);rX-ky|KxX!U71Htg4XpbM17q7)wP%oqo&9 zLjPYH+0K@DVTdHlh*&SHGFG>tsW=KwTgK#%KxktMXYdD@7`1D^n}J*EW6hUKe4tkR zY2m!&4iQQ*yAfltf(PYa;7=u=BjX0Ay0tjAsV>D|UKW=1jZYg%()4v(3np+SVkk8A zK1@Os*)oqZ;l{(dVP~?>Dl6ClU1^?Z+O#YTFiUgj3+h=X(yDchDypN%cu5DfEOtvJ z5a#wQj#ZGnlF#NrwkRSSC$Z(vk-qe~(suBh6{YceD+H(1^YWoV8}+_rpgm65BI)c9 zpR?Px%1Y7dPTAM_&!OtHwaGS4Dee1-oAz#N8N{9EfBPe!2X^o}WQ*aP_q1&sa_^Ih z8ZYZvE&Nfy1O1sizXxUx%)Y6#p8g%$c)4G(1ci+M+-qJdioNHGhkavE<#y)Qt#&EY z@S-hj-}^QZ;~A7o_HYS`$BMTJGXqZqE&O|xP%CC&Q*nJ>Rw`6-O<#z${$`?-aLH$ zT=Gv*2_7rDibT}N)VdZq_*{e)CyyoZ@3g@3r~I_GaI(6BG0(=Tx)qFLn9+rP!!76{w{Y zYPQ5YDh73Q|4Nnl^27m~?90SdyQqG%ocPk{_{Qs6XQn|ZYPQwTk}Sxz9+o{Qk0p#H ziItMMeZNB~wj3HU2g5pHg)g7#5sE}**K>%f?`5$<*~^BFqw8<|v#e8>J?1tGQPnTt zhqNKw%In7l9mEpouFUbzL0%(S`Gel}u%4Psb!Ocd)raL)+vW6$$IF^Hd8G!)Ufuk% z-%XC;i)ebBPD_`TI94vR2R|=QRMa8G`raxxMlS%qeo+Y2i-?+dZ(9PT2i6TpObR{}=GY1^9Gd4CWhjt*CiBAisTY z$S)U2RgAt8r9Zu$sj5Y4#EEvepJUEH0{p$d5d{rU|4I7;-C z>2tFp`UhL~+5WHru(8a|Pd&L(VVlXxG+XaRH+vT&P{+*2x-=rbZqW@ot>-t$rFj7F z>C}retk^#HXH(%DDIoKiE3zhzvk<1|yzO2Be-9NO5c7GVxK&JukbvZJ#U>?=HCf|N6u+fynST+Hz zX(v_3@;b}|YYJ2z6g#HFTxGHbUJ%$Sle4tgb8{_#Ut(KWIoQ-=C@i^T@Vy#kUXhlPREHp?rHI^}G<(`7F%%x1|Q0>G>B%ht&&mm{k|0k9tTir!&!C< zSJb;vIc6N+7Qk$1>b-I~cv)?a-nPjrtQ-04ryf%JsoC$aYY$A%_P{^glo_3x%!VH( z#m~4zju0;EAK^9r>TMe}PY?1xI?UcHPNzyjrX5a{4I~$KqeQO09Z0%L^CI;dZ;Vt6 zX2B(8Wi{4)o+cqC4HSuDw=I-w77p1Toz~2BlUtLb-Vw~Mt)?RLbyDD+UPmtO5Tf;rN%D@{gY4WA*a?4~|j&2g1nx8;0@rK7uQ z^=VggzL5zDm}dBspK(|JGYRQ-K8V9@9uGf=q95ShqX67TmXOd3H3$E{XSz~!foF(| zbI%{BucTwE!vp9OX)<*wWg3jRn}tp65{tP3^rkk3{Hx1?PZl!ru#=|y)6>Rt>Hw$2 z3eLA^o|~=Xnu%j{jT-YxV-Q;n1D|Cwndzb;~; z=FEr+voE1Schtzhn#z-9u|T=f{OC#C&=*60CSDLNUMt_Jm4hCy_s?MPJ}v5D`+*^J&{CAyV=`u)#P`|=6JZ#91<9V)(Eprg zZuT+q)SPP6r1TS{rYH?3|9T*cG+QEWut00cd?ri}CG*zKa%^xgLfz$5REitJPi?8pE5N zLo#5ezNz1-OZ@CX`=+LxHt%!zx2wqcZbGLGS}-W*GgZrMiTr7`e_m%}|CMiQ>{!Oc zQ0z8dKc%)Pd<(b>H=f_1aEJbZeen3x|5*o>^(=G=n;K5l#9eV%N37U|bBI5xMbJNg*`o+h?S1P4)6!%+}6obbv6|5!0Cn3pDnwYEylw@<(0wu-m=T z)+wpK zis&~JYo{JTjwKp-xNkb#?9S`T3xfqJSk->Dub6tmltMKt1ghq0==CI+pK3qS>s@8t z^u>8Q<C9eai?wRo{;{X1H~Rnucd@1{(%aD#Tqr*;AbGFcx= z;BNCS!S(4-R6Su`=3ly0KqdyxhNs^!>Uu&KG*2W-BkL`g@KU=|1v#~76Wv)M<>Uea zgi3{N2NmV0=AZxMa$3mIdC(8fHw;rU_G=h8n>^ z-o^zA*kn%X<4{3J2&8$rN=i)MdEc^#=$OjpsKWJ%5Q|s1M0Rwd?O~GgNoT;-qRplR zx)6NzdfbkWS$QcWX~LhLXWc({{9B5+3D`&6$83`H7LwKLLKHo(Dao%I{#zg2pQ-(5 z|CO_nM0++twQzs}nu)-m_7+ZT~;y6obBi(*(*rM~ql5_1$qw0|wmm*0O5dJa& z`0;(mScT}7kkylkB5;9{G;2Z1LzKXhuH@x*C0$}Z?#i|8nbhzA=2b725p$V9X(1iv zSJqEXG6AzOZnK*)@X}mnd&=Qxp$VCb6Z|Q*AAofG(80me{lBp*8*|bgI(qQK@G=nR z^lr^rl#rk)mV!0rB_3=&yvH#=EDs#NAsS2}-KBlu?e|Pv!%%}0{Ee*sXmVI(JIR_z zmOY?$MmC4U$4U3El$wgf7afA3A({cE^Y^iwYf0Wo6c$=kaq2R81)i#+NHZ#^XO*L- z4U#ZE$!uueTN~4SP^1;AJ;XZ2{?(mds3YcsUCu_w{$w*Fe!nX<2bK?vdqR8TOfN$8Z!sw^Lz`pf`{4t&mp9>2pIp;wJvc9y+%l7>1QFp4u(Q{as6C7_HOMgH)Bc zV5(}Zuno0X_DY3%+BDUw<0xI9YJYd|m!kNav=iIrt^hpeEBkJh^3PF9Ty!Nir}gyo z+((KsHW%i&@9eP~u~C!99`jrKuO*#_3>$9l{2S*>9}3j)7SoiyIurRC)&!n=I&W5I>NV|Pi_ zZ!cdni`!bw*}p)g8DE4^Vcq}Nle7W=54;ctfTYzi7FBOA#z**H1g`D9XU~H>fOade z2>aj~C!q5z=zCZFE-(LLEP`1cTm{6`7acR6uz%ILcJ$DzFaCxF^>TUkJL+)w`d)^e zDVgOCCp$j^++I1_9LyrJ@-v2Lqkj^8+D3%cBccG5ghIyX0#GNin5xd?ijwa?TvT# zElHgWagQ`DA&%shVDpLRaGjx_Ox>}O9?S|Fb^?CM7PGrZ*~xr`4A&L+_tB%ABmqaY zmhnd$<&n+ydBJq&YDPyq&)7N?dq%T(x~mQ34u-H$DC6u!WBTd$7mVHMPB^vJ+Ab9{ z+-SpwNDgQ&wESZ`ahOR~2m!E5Nts?k+W_IDlEas19~0d^v%xX@!`+Z=x&bClm15k> z#B3;GM55aAX@!s7Ec$`}PL;mRJhitEGmEiycD_G(TJ10gu6Q1fT2MXB;_i2a z`H~n)gf`7t+7Gl^^0Ya5=v1+&N*&iL2S%))^xPxwc%471X11ZfCEv$9UKPBJEQ%Y7 z*37&X?@?!F81{{pP42!b@==V#b`&ok&9tP?UzMoqyKiY=?(GQLd?%HNd7nx&(0zAm zc60EkWHVBpFygJWHpzNI_67qfCnK1@^FRc#E0uE}zZQBMwCY(d{pNBnOWV{4sZ($0 zRc_<>2PJ?VbM$sO2lC)KGtE!b0k@ver6~az$;6#BAuZEPigo%btvR zua@aT*op?)Cq9lD5I~jL>CqiQZ5rJ_W7Rr>JMvrXU}l9K;!&nDuVLs!q!x=)`YUGP z5_g89RA+6hnNtA^$YE(nN$U6&-ha2+Dq)LC*cW^W5FaRRzg`>Pd+rl~(-Do_CnfZ? z8`M)&aH}v_Uk<2xAb4bOg{2L z47U_1v1!80-FUX%?U1p$B}>LRaoKiQmEl7i^nKZL6w9MAn3lQIbg;1pFWc&zCm__% zF)*L&Ctm0!*L$<{1Sp?(5RkO$I};l7=i9{mHjKe z+LR)313WDiiqrn9LK*Ng(b!`VX2q~+^x{p=sh0@nG0hFA#h9YC3G)|etXZSM9z1z$ zZKHg|$*@f$ZqCy{6ou9c;SR_O)19xK9oXYG?3eeS&)VrZI`v!@i95Slc90RKriPx> z+#M^fxuqyfuNxUuZQi->?l1cFtgp|VK*&KRL>J)mtX?M`y_q)Z0XV#|Qt`T!HC4|e z_%Ol$a&Aj^pvu8(u|t88w{kAI{$~4cqIU$M0UQ8s(X}Gug;j_kYCEjrCXXP=PD4>F zKI3pMBKSy2MVN2r<5!izFaDV7t-oh*HCF;Zdn~th?`w4a`wt9amGS|+ZExt*iA2eo z=!X`s=u%GaH|hx?ydLI%1C28iaFDi}lj!=YbHi3Bm}ll=T-Gi(;G4Zln*qbdl0`(P z9jJ~q$b9kyg-#-MX`Q$eudLVVxE+deX%n-5GTsnb;j~meeE=jnWlm2VfA@2dvvSR@ zi>QU@u2#4avSqR}f*-uEhmHNQqvYMsr;(df!=7r5j2K~mk4JX=$YHT@ci?Mc*)=cb z5l8kK`pfs=HlSkTK+Ew~q?5(8?xL5523Ky*=IsGT|8?P}RwOfxY(>$!0m_A>(3fm^JSt8qo?u|EiOWsLrOhU4(Bm?v zUO)BMiqCMq9`d{?`Ck5H)H-=3e6PnNUAtX0)$zO+ZC-?UuWtdgOKcix9w)9i0=l|8s!o;JF^mi8FRy>0&ZjLlbN zx&QYFu{m67t?lMYq_FJ*{!vU2*Ft~p=azQs(r*pmSe z^iPP>z0eLqj&cUS!;d!K$Gz^jzkb6?Eqpk>oEDm7v*o3=V3|MA*mHGv$r&Ks%UKwC z)2wS*DvF+9@Vc|f@#4QXpen?t_f9RgROe&EPaR5%Y1xvK;RSpOn|=KxLv+~i?PPMkRuK=sWX*RFZd(eXKZ7X# zxPB29VI24p>J!gn{vVXl^^bLaIQ~Hy|F)A|^;rylQ&!sA{tv`B{5RPD8*I<|dY@*U zb39uSA$h!@G2hWuNA<_A6R&bwbT-vn8Es}`7hov${ND3b^TqbdY@bbed_( z@wB}yJLtD9&C$^U0e!4b`0Z0kJRQ$BQBW->LYE$11a1bF_hPWP7u!2(INwh#!~#^N=1JrAg`2W}X_q z0(Rfm-t}ZwKVX!s)au?cbBpSd9Du_iT>DSe-fz9Xb44)q#FlUd+nV^;9HT#T&=2q`}WwZf|D`eQ&eYt?va=Hpa7)`^LyZs+Uceuq21d+Yc@h-~(}KP?%x z>^S9h! z!i$;TzK?>5-rTm5JPBRNL4;AG-2+9@hHC-0r0uY)^`eR|mCig`=hsmes+%7m75A=o zE3X0!-yFzyZ1cOKB}ezHoBh}%tU;747YtkhQ8msDIIwbLH)#{|;pEKY*#Y$t3>XC>t^9vdEvQa);n zQK!d*Y#mVemXB+>al#dyT2!*+g3{O2(RlLWDL4toi`~jQ)AAeRmHP=}!yT=Xf~NL%wO(!ayf%$;o2h%HJOY@M$^B z`A~iT*y*12ban(1*WpDOC7?-Z|FFx%19^6`D0KJcyabBr}LHbJa5G#kM$Buhf9;2VGVi2-pr~GvuP57 z&*p|Z?C^2D#C*ICtM}aR>DD)nk*)xOpULw+KK}KY;J%c2??KLK%)0i|3yCqx3c`=- zpIr^SJqO_I{DSIgf&_12r9fd+qb?=Ymn9}^mCV(>_Z*v!3}fX@E8M2qadgxhgXk&e1QU*`2P5VFbLYEFiF)9_IR}wI< z$YB1b$R0!N3aH}-yBhkA?>jS;{PL)J|7F}2btGk=G|s_QW`V8nXewk2y(@7cCq;&E z@^H9W&|Q7}(fby;-)%GIp+B4e>1p`+Z2~%VZR0IM!wscl)wCTHuF&7wIWC>NJRk&R zJ8+yma*jq{6=J{5FFY&V_I@5{1A^)wC_ppKQ&G%0CkKdf@r z!LapUt=Fw!`&=&AdL{v7zh zO{%dUj!s~^u(!;% zC`U|CINLboF>VvCN zP3U;l{1TK`ztt+^hDw6@PnhE>`8~*2*+T1{TJUOTZtP(jtmd$I?@0RDBH0GSvx*1h zZ|z4cD=s$V#TCC$?GbSR*fnWg@BY3OcI3P~b3LrM|qjrGf_z9j#nJRJ=V$g08X zO80~5KrJFuUZb~B);imCrfy}J#f$pVFPZL?rQg0~XKhhP(a)-IO_T>dy?q6Iy|zt6 z2(K;C^h&wbd-Hl{d2ZWGg8yjl(lxrg;NotXun+Me$<3$1&1pWmQ6Y2x43u(rH)tT= zuH&ZwI`9YDUAlc#2Me%5{5pgw6Mro~=M6FRUvan6*%DJdTeuPkP+2-m8Cw(N$LYMG z-K*0Nxbs&GJF96u$~ZrzoMUD07;$}_8l#AVtnA!QuUqYl=;!yB7%|u1`@$CV;)lC! zk*U0sl54KG&l6AIc&PykAri>5Q3di*`^pryKqOYDH}!Z!$Q zS&0~pJhxPUdPq5|zsV$2iBuHoiw<9i`l;Vn+g`{lP<6wh7%@Y!2~-%n3SVAcpHGhM zy;#&SFKj1udip3N7c6r*g=&yiRLJ^7`RJ2CehRCCwp9w5vD-FR`)x_0eW~dZ=9nH! z2@ejCY{mVJN>JJtVBuSpWTx2nxIj1i7hf?kjei`b;#I5^>VDmoVak-XIezyjQj9J` zs*(jn&r&N~0%t_&eHI@i`1HdGw8RyAWS8;SS}4+Bf2{#}E4kJaYG!+7BLm;~PaGP! z|D(Me(fjMc{Ps5T^Pk#eyL{j0FTV5YXhIvzf9n*$2G|G}5I+K-LH)mZJf7ATH-j;! z>kgp=njF?qrr2dI_8Tr$oNHeq0sFV8zx!-2vaB{(4!aDhM*TnXeSp%CzEWhM= zx#4xw#}$qGzfE^PNN{$*3Q>9hGCD!d8A>Tg4t5Quyl-fWf_;N`K?<_$czJewB2&Jn zHiIKaWQ=We_BJ6Fbo`xY==(t_Y?9>pSFGHDsOi*>7jRD zcwI)66!T4l>8e|_`ZcLsOODi^(;n*q<}&2cMC)@(E3(C`#-1_iPG1+iFS2v6$NT~I z7QbU36}PeOp~w&4K0R$5#gvkzi^#PfRt?D0mWI6Fw?0-a3R>LS@wSdrVNQL^+c_k4 zK1UnB<0dcAJomo94LT4P@S|{T>JdWtTAA9NnhJ#1 zak7VfQuxj0<&aQCDUl#3j784Y+&rP~la(0Iqwp$KdQZflTD^C1q}SEzQ0mrj&ejp zy`lvC*{Q8?b9KDk`5nLn`1bekp*PYm$NUsMEf zRNiN-anQL{IZ~dP>N=b z+#$rY<=_CZx`03<#s`HM@RLJd{BWeorFkW_fA}`CH1H?xu#?I~u#PHODc<|r;kEPw z9)-Ga-!H0KxDr3XVrnKw61n*X=|$ zJ4_~3-V@fthbhZ_Qrj=+sjWUvrP*pOv-hyK83^Qy5BihXkbz)y1mIpHeE<_|zPJ8W z!6Z24y8Y%HW*S_MJJX_=0QK`3p z|0RC$?y?qfMb48q8TmJF#M<`4UP%vH;VoxbiwdEAw6}7%_HoX%r9|Y%I z`j=?9I0Bq!f44i23WOBJh0JD7SyBC^M?=C%{Axl`9 zmkBLO&7sCMVLuqL0_rdG|1A7t@Q^e4n^-tiy%!tMWuE3E%LSqAWG zJtvLNnmdel)_v#&R*<CuRI^}C9Vsm`%_8P$2KOQ<7DupcY<_dy<@RGLY4J9kb4Zhd@9BGl zj`81SN|-0K{aSQlpp=+dcG+t3uklYlu=x)0_b8g!Ju z6+H#lbKf^WWCgG`L3o=zkh8fWCk_VX8|cLnRFGo#5%hSSWg5Cyr!p9mKoI%|gMDc~ zzd$0dWAt@KYGXNx0jgBDE;^sNT*QG|9lS>CZoQ)>-Hz^N%LC;Y`_R8H>cdQ|>{>ES zxfW~T?^qsstR$(Or#fLW0cK`l1!;kzo&m#U)_ubmg!q4 z6MuX5=?R0Vd+_JVikm{Wp~q7Du9Y+q>HyDy#l`rHQ#&-Bd$Xpd&6X#w$<`gh)=$QL zKc;kUso3T?>rbTGr-0DfFQtkU$LP??%oJqgi=aK#ZEI(^*f={I$%Y%%d*#e1%>9-Zb#^`cHk(yoNU z5g!*<{7`A}{Lwi?8cvI;l<>Pn{_AlwPZkTu(+Peu)74XO%CDLtw<8j|fzVpN#1ZR; zd6Ay7@~^xAU=;=lU+M9;=fHf7Pvs@O3r}b>(sIx^vaXWnvBV0^${On~<+jRmLC@<8 z!ebeGM&3hC!XhB8etyd?H5B$(a@#tIR((+sWlV%mFp2vhAs)8M$U$IWH@}r>mAl9f zuZY|k)vw&A3FA@W89tui8>d=X2;q!dX)AoOUS8_+fX_QzPPLK!4=&cLqM4|1JekBf9)HQq2iOb07+{1|qH1k;WiC~6( zosd`zN&8{N3RQ8)yl(BGa0;Ur&(4HWp_|5_Q(?N)o1v`mqTt7jhs?KY{uE#`PLEkr z3009zB4NWkeX=&n%~b|2(Qn=VA2yWdE&)EfReN$mLJYVESG(UV-|Yu>{f06}&_F&K z)XItQ89v*ax!!#0OL53n+eDQV4Igh)v!=#Vr^g|-Uz!$>=M4L9zy}YZt8=C9s*?d}Su$nm_o02uuMs3z1W1Uah*Wt695+57}0hm@H)i_M+r2?`8( z6KW_-(R^oINZui&Sxf<&Vx=$orMFwyM{$Z*hR@(#sJsmGo-IGQD5Wtk85Q-ZCN2jr zB>6;IzkuCNe2at3Ko_>o>hN;QFF9g1OEUROs|&3uIGX#SPMfSIH(pDhKoZosk~~3f+;^_80CS0fmnI~`7&cuf6+;ZKnHM)fG~ut1 zkX4smfRE*j5IVRPYojm*to+5P$G2pKIL0-=X+QfVi|3_P;m2}VvR7c2;1m zoi!f1>&eM6a&zl6Q@3x9vj>MMF9+ZF-rc=pxx%W`?7Wg%^x1R&q5qB2zWmlGBSz-5 zqQ5=i6aSFuc@jDGiw5n!d-a(pXdG1Klrd)is1u=CI9&6+-E?(m!rjV`c37A7Ue0VJ zPU<(hCv%&ZQSK0$@Tg*sXLOEH1w(|y^1TQ?goUZ3GqjQC653h5M|mkKE*sn3Y6ky4 zOSi)i38DGky}dX8rK7xuHO36I*7!5A$AHEW1oJr-cgI5d)4$Y?U$V%FtnlRW@8sjYA7_zaiPfFrtz~njqe9jM zjBmcLI@-R2t*+DOn$NbW?!~)8i+&uFtw~x7T;=!v`%>`&f4zW^+OLLyDDE5|pW>dr zW?h}A*3Kp;D_uY?%QvQZNIC?h=he*uKzELKPO7Pog1ln&_}X~bAElWd*0oGhY$T_0 z#Q6GGO5wAZ;)m{K2LeUEs}=9=b)4FhOZCL)R)kNv2?ns2(+qO`esE<|q@MFCXZlYk z{U&I}qw(I>R(U<}oLsjti7@{=xy*Hji`)3I|UIt5R`=536hUbGL=Y zZO@|SpD2t^>{3UY=XEubY@1K`O_{Gp;!1#vo4x%i3V_t#<;F=EaQM_^o_b&vv7u4% z<=-a|2-k!rA1L511#)!1Yv=4v!VD^W9+G)ZkmIWT^EZX-et9UnNupb`BxS~*{0se> z_7g`N8sz2fv5z6;Pfh!EfY8OQ_d~~P0Dab9=;G?*_1{3fa`pb$4a(-49cqaIzO1^f z2bF^-nL8rTCE3Gq^6xmLkm6zc120FNO6>d`*or3*LNYg^+%)h zk-@sb9i9yrXPRv;+7Fsh_5Kgnb2=Si>pqHX{{AmE(75^_E3s9d9?iNe;xDjb}O@e!i zt7XPmNrz-KFfWp0bA!@l&P6`+By_!CC+V8O0*D}UbWySd*JRb_C@VQ6w;X6$Zr@%I z^8x;7b}M_Fz!z7UYrI8_Qhv}Q%$yGGpGnBfx}ARSQa|As@)sjtUxUaHdSl!E`WU6X zGDq^G_>2VFQiQ^JHv$r818l!8jtzaeu0e19%U*?%X<{`o-&`t`<3B9!65#;aMZx8s5|y(7g$^ z--hPd{{2ygz}TAEB3b83RU74b=`NaO7XMzzqe?XQCa>E;tO^;mc(k4mI`$^UjhvJg zPxAQQb@Cl+tyt;e?;r3s2miqkbM$w?(UCx{4BRLR2GE!!Ojd6H zv|(asL9zF`UFm5|*^=pC^Q0fkJf87JBwT(^E4)s+=Y27@*8%}%oW<9i_he-4 zSwMvQj0$-GfV#P|3eLe2Do*j9>=GZ+6h<=e)V@37F{-cb-sn`P-|)S5btG+atBWfT z>ds@d0qbsF5zHsyyB;q#a?fR`lNqpe@to{Hna#qGf1E(%q$WEf*Ljuqp={c z-9p&x&yp1(PIJZG{4}Zh#ba9KR&bL~=b+XH2LopiEc;qlw9+bm$G1iqV&dND-CWJ- zf=@6=x6&q%om=n-PZJ$V-E4GG+bjX{4vl!zB*yI`FHX#5g>sU$9LS!6>oD08!s|)m zG{Kq%a&vTsS#>ZriGiW3t=vrTbHGx^l6sB_ipVNDAn1wq)#ro*sL%cgTzv+(bzbdm z`ZPNACLFFL7L--XFWy~9z*33vZ#SSshRO~&VpIhJd$pOuK@ z6gjWIsDX)`@P~Ge7l1&2e#2q2{p({Mnss1C!P1RUXF zLYByoO)Nd|NJQ{GTKyTd=*6f#c-DYWDDs@A#@NojcJrgqJm;^&4k*VyeU<61udb5~ zrBH*rvES=~-8#>r>JQJ&AJ*5FgnD&RUu%iN3XG1O13!NzAOG8T$xjlLs34GcWuOh} z_53=cw`)u4sHx^}6gV2}yC$Y7QLAiCWKpeG^9uQm3Eu|jH_o57RD#2<#8hjQ+lTJ+ z;d?`tY8=LckhO}hE8fF`Arf!#{%X?nRjyWc5rq-t%D7}5rc1yFA>cg@SQIx^H1sI- zHLfZK9R#MD9LdLD-PB$zpC`JGd*#))+BWM|fTS+=VuAwQOjw5bKeiCWMXc^u3}i%G z;*q*zk57In+Z9wJh-xfhZhK4bE`FZhVDs&07p;ile&{TOO*N-79(}X6F&W6Ib*XWgO(R^7&xL?Zd+{vXS6j zl@c!~YYAx(7&&W%r=hXgNua}-0dn$0W^A^Q{>7U!zz|C@_ZM9%q4!ic8w@)dMaBtA zhYd1WYHTT;;wWVdLN3G}14@@vW_(&R9A1mv3N3D*Ub}1-^pmt2Xs+C}jKv|B2j)s4 zjrx(jp)I&E(Rc*^$3FS-Uq%1NK6&%>xMA07@*kAr@DIT8__rARTWn2rv>Zs4<9+Ni z4QDSOGU63kXG_r0=QjM&owv1^kZrgqfF%@w2pq`{_?7vj3102)>iW@Lowd;YpT|iT zyYVfOLKN%Q>;c7>LCoiXpBE3?;(Y#pQHs5bP?G(CCul)iBiFlq52d?^J6}qBUVxk4 z&#snVeDCIu<_cd1Rg`+&Z)_j>*+G6uS>9g;B8wA@%BP>>#>iGz`#xNO4@)Nk{UuXb zhH>AhD?p+|;|`;jgcNS35(&aXl`9>$)%-Cuow7YhHPN19lD^T@C^qMUH_x|jMc_i!7UkVLm+6WMz2&^x!oM_bOtp(Wrs_T*$u8_4Eh@2hbpE1q z;pXAR;^e*2R36be8Uuf)mR?frW*zjILw)&Bmc9$6dvU&3RHpvUXFOa3QH}0Ub~HKW zWInm<2u@Gkb)ryq#mrsB4Wrv`BNjTP=3r)7NsrlG( zer8w;r1ClT6~01#UI%VkH2%1If(}@JHS;A=gb4E zH@KgQxls6{&8Ya!>0Mok@8PybJ4J4YsQ9hViG41so{z2f$>(~}IUfJ`8kN)bB6A=3 zcwP3PH2ub&uxgJuWc@LEjGf%1dL`oCBVv^hlb69rp%X3A=(jFyf*7ui;(7k@qr z6wWZ~G;Vb`Ezkx5<^9_N#ux=`#{O&veAl|gIr<$U5zlSFGaXsqLWoV<-;E0Jf}<#_ zJ$UeaG`&SW7Ppie7Lu*?i1Pu0o*45002EA0ZUQ)1rhwbfJ0or{4t09VTgk;Q{rf8q zF+6wxK}c?-)qU+9nXPDiuyVCQStNDC&fHUyNT?#-J0>rs_UanU7pZw4XT8jLcD8?K zdb-Z&CYtqOFjxx3;+NvR1`K<2>>M}th&Roji!QC+y_6Tl1uM#Ozi}63mL-RL)*#!vsYLs+)oK<*N8Z_CfSyFBGcSz90|aR(HGO4Gxf@E;b9V%eR&xR{MQOdEg&a-~jo-D%LyTkJOPrnYkeW?js<_K{bts}>OF)HbqbTbvchB!u?5y$;HTB6 z)Ryl|&NI(5E(=gTjZqkTpBj-Yex0A$A2|3igQcRuzMrWawaZMbo@v;)Gklao^5nbP ze1IDHQ&>;!(YHjy55xdqUp0BNX*_`B8{oE061o06ByS?#2aBS+F^78}^a)2}NTA5_ zKVGRq{Q_6rWn@_Hc^`KfH4&H=!q#}+?1tMzjgRimlDU~6`&rSm$s(Ook%}UDR3uA% zBbDko&^Fb<7FwKa-ZC-6;z~d7eq%`zXw1g8ldkIMpS2*w@LTD0Gk;lt;&lUavHq7N zbc&S3@L{A3>@J*L9n7|}KYt+lo$+&{VP%RQ-B@+`-^u&U6539EH~Pe;Y+=hkn}Ifa zw*p-wr-|p~SR2daC)egM+-vGk$B#$SPThM=woV@qpLsIZlm~|b*gFG+2gueb_Y&^1 zW_p}Z}YQ#Wy=b$6>amBXN`xXGHIV{I^KTn0zkct#@BSm)TXA)2OY=y)YFb*J#n zb1ya8Z5*tNGs3YuAz8Qy#iF;+*Kz{Mr%Z!E8ScwfNyB)9v5Q5i_s~Pe)63F0;gTP6mJI zx>M{yEDr2bSwgY#PFqHzU*Ir?z(uTv;_=4EdbvRmY@~6TfM^=Kgcv(iEa*Fl?)IqH zy54l5n^uiPH^*a$abALyTXW?I{P~iv#{w>w$STImX%riOhP4TTE01pOr9nPKW?`3X zwK*j;{W2T=k`mb0Os4LQN#smeK14?8<>?s_oGpafRWD($&ZbM9!2AWRoJcXCm!|F7 z?SH`WQ_I*qeva*enq9O11S*#vwn7cTALD{MPLCTYPQgr)FJA*Y1IYsMf6?B>o#H$C zMF>={u#!!H$f;xfngcGp#PwXMAytvd;iV~{N#80C2OmfP*ARtb_eg& z>SZ3hhDcdeCGR<4PkQ!pTyLH~@T`YlyhQdFXJYy10~SoTi(B?IF0?Z0tEr)V|5WH- zSif(=g6q_K5L{%`4NXI2!#8AJ+)mRYXFoj5pU{BFzR!JjESz6b_I*T<7<5PK@ z$!q5=;e(ag4suV@%R6&na-D8uT!E>Oc6P(ZpA{@=WUDnKagd>NI)*$&IY^{t6mOI< zI5`>FRdq3J%Jva56?{^%S6J0(QPEC~j&Ejsxr8+J=(IhefgumJuQf~)Iu6x~6Qu1Y z@_5VawUiN%NkfQ08v=eHQrqJ+Y(pMH!Ez1uCY>oK(~)WKz?9%o!XF#zaETf-$+j|> zB-lPbFRyfxj+LG2sk{?_iDYvIayjsn40Bz7n!RM^7&;ukY_(*%_QMx{oa6gq5Zl=F zA1D;mOMHbEyd#v*p*d3Shxsa5?{fYVN_$MJH0m2YhicR!IaENW4w4Me0KR`uLMl{b zs+%zCgUO=YwO}&R(>Z-G{w(Ntru_6#KM5k@a?*{)umGEv4v1c7bzrtt%jd|llkc03 zVJO2n{+*irrB3#iU(6H>yzrwR`~j|FyMvAw7RI_qLhKFq3@qENyoT7UifPT03u6IF+k?cxY?B-WgJ(a^OIbZy`^B|_<2dVSPxqEY z6Ixs3mfB-n9v;hFHTZ>s=73!MALBlZkYnl+zP>)ICmA{@+ z7em)X{U-*mlk)SFFbx**J(Dc{tJ)o5 z5nkTb(i)vT)YRxM2S;Dd>(4j5DX>?=T<+hnVx8tS;TGk4`N^nVs{}(Q$VvQET>k1>8-60L zgI{vr<*2n=ORP5@-9A%O>UJm=cWfS$DQfsa)DlL*{6umUTl^H99SK>-lNn5N zAyFXe#O79ZH7L%NBE04yOmYKg){UsdEi9ijAAkuq3r{;N+yPS>8A zZb0)DlKRQ=7Ep2JJ81SJ&CnhnTZ%!)_N5$-WR6K~Pj`<`i%p%zW)Kc-5$!JDfl;92 z_wtvjc-k%^+mFk$&%(UYH++N=4W(?4$w%bCS5@Rdp+6-q_Wm2ki?L_(>^&aY!oI;8Qmr}k2!U#C8sQgHW)TK`f1Gz{?$X|* z>l8-i$2|+Xw8ufrGGVCbXiO|ot;1X#lbMIylnGoY501&TDnfUn4LK4 zjgC>lXzVnHe0UX)72S=6aK|f5nd^!_h=~3y9HNYD-}Um+M!Qe+lP31ax7@sDj_WOy z)B**LI=oA<^M{_&QXM}fMt&wgy^G0xG$Ehjn*y(gjeHR!b)IN=A@_7QxW#sscEL7X z>G=JF&rN-_ZzZpuxazVXYwcVrcPV0NPM`Jn=Nep_t5%9rQm&#-mpb!GTtg75&VQpz z^Q-v|+43{JKaSe_RUQ}2N{OB?s=SoUe0uw$qfPvqh;W)=iC=!3q8(9>`V0QxHh4Ha z1q8VuC+dR))z5p2p(9s4_C$-szCV(ofrKbQn^BeD2{b8xhmO2L#KJ7bW2C^>e>Tz= zIc)E}fy*Nv^BdVFpF=Dou}Z&xsjuy=rx3U5zT^_Kb)G4Y07-O^rLTL{>hwH}>z3*% z_6sx#4W28FU4tttZDTMG@Ey|Dr^h%l!Zv`_x#wGEtV11)rr(+Iu9`C6mqx7h6#SZ` z59_|lqBMzlZhv&V0;G;VmiE-0(?a3Vol-?wyWAQHqXeJ?9tqS0FrI)hir}ZNxA6%l zG1<6|wTN{u+TOe&6Ndl}K3W!>mPF$=AChM@9KC_oChHEb;M7AMtGwZ38?c z*Vbkr=_k?chY5Ne=8g{pXA~zhv9$@V(w3jtRE?SHYX+{=$}w2Ztv>d>Bl)5KaN&}| z*RG~W#5$orML&4{hOFn#Bkix%Wv^#}{Ztm|COa6@ zR&K$(;HyBloVGxRA?q4yq-a{n2@51C5cxjSJa>4v#qFR@Y+Mo|=;C#IEK03P<94u% z=yg?9@gmS?xH;FZFfMU=KXvE#Ax_sm@bGTw<}_+i&MyUa7D_J|S5Ljq9G?1Bn963o zu_Hwl;Y%$qTy^FOkM2gGZ#s5xi$F?TUc^U&{-R1pMe`UlF8q%lQ$Oc6$FlxKntq$~(%mS5m~1GWE%b5n$@;dRVxVSHMh7 z9j>o)E;h+Aa}k)su}t5Q8%+f@$~pv+POUrbxX%mWA94Y3H8#gI`H zhx@o*t+aw9UYtGp+$MBCdj;j)AgDF)wDqTA<_3JcQQ2;UR;vy6p>vP|3KXBIr++TT zZEdZdPFBR5MQi`OZ6;1gWMfmGCklDrp*h7=-t3ZBx%MJ<@O);tF)qLosS}%X~%h(9FI2h3-^jqbiz{B zeMhxxH?k?gRxq*boT07gLDcJM^|3;-d3(qK9dLFBL{c3#=8}gkGw@CPjuW(EDz22% zZMxy}wW1F)m6~RWTcJ85AgyY3;F8DJ%jx;@&D3zBTtp_ERn$6ZYs!$JNoznOJ`~Sp zCf85+pyRp5qp}3?K}Mt&@Amew4Y9@{)d&vEHcQanGs$`#C@e!~k+1*R$dvBKLPt|m z` zL|<~0Z4w7I$%#}xC-~LBoqlaGU)N@D`Gv}Wz2@L+*F$YqiehS?1XfV>#AlURk{ZA zy6(@vNv?nikyPL9o!`w>XTet zLp({@@x0NO)mef2p)L=6{&E*zE3>8>OF|PiyqbU^Hn65m$f(}qNd8I7 zX#b?!z)pzy1QU~0t6AaI*(?g1cZi(;=%wb+lhym1wGTq>9Q6iByU}5x3f74p_SMsf z&0buL1%u;-fTujn<$&71mxVXMW<~1MSs=*8LxKpJ;{@EqA~m(Ub^GUG9~t?2Md*S` z0s~k&uwctLD1u>08D`1Q&Hy@Yrx+;$k$FG*)~a<)%71hZ5hj-zGCRgzeQJa-`Xmg1ttsT>-8xt8B7qeU)>niv~ z02%rM!sr+&#W!-@jj)QqkhwQSS>e%wuedgn$3%we)Bv-lKlfAB=gB0rzf`6;Ujc;FMskUOj9fvQQ53f`lGBE+lkHw~?}F{Vn{y zTX#YLi7AoQK5)pd(ajs=Y2yO}jzpxE+lZXUZ+6X6A>M1B$KzBr>(j4J5-+uXD!#dl zVmnzDST2;5cl&nZEq-^@Mqze0>)u`4zd0yHIVn{^S{Od_d4mheYFz15qqQPas;we|9=$JCDj!JtAoqz$FB^##0(ZcWT6PW3q|f9bI2gdIkCp0g-xipD zRdf&uoErq1!-FI4Y^qj4_Qw%2lk*Qc4GXqEvceQ~UgiLq%Un`;e>&eNl9*OVd(nQa zC`e=4Ac~J=-Hw3_wU+GTQ)qc<)SL5S)wchSFxbE+ZyTJ-QetFTBHcT?KJqAt!AioT z3ifu+2$B+!nYwM|-mS)4Of;(p3?ta}lcPNA+Pv4JN{MWHEJLd%PF(_OJZ#Yd6$8zR z(FInEqq+i?Z5LW^xCgd74xiOSDL1or!I6C-k}|+9H9w1r@{R7w;P*1$QW{KG;&� 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%0As|fp?s@>ao0q9$NyRdoS6w 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 literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_bg_mining.png b/mods/HUD/awards/textures/awards_bg_mining.png new file mode 100644 index 0000000000000000000000000000000000000000..a6987794f0826404922e91cc9169e819969a4447 GIT binary patch literal 21274 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 literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_level1.png b/mods/HUD/awards/textures/awards_level1.png new file mode 100644 index 0000000000000000000000000000000000000000..8f628f3386cf0e01df5cf772be34d4f5f565f142 GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgfl4lZ^^e$H(Qmw-afo-U3d7N?UF zBv=nK7#PX??$^vZ>e0l=0|dnrcsvuAY!`3a!!7ak%a?zPr7K=uQeDKGkd%;+u%qIm g60?zSxHtntR)@&@&x^k^1C3+wboFyt=akR{0C(OvaR2}S literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_level2.png b/mods/HUD/awards/textures/awards_level2.png new file mode 100644 index 0000000000000000000000000000000000000000..9f9564facde18e565f69ab985db231c79a58d3f5 GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgfl4lZ^^iLTV8qCg=hPZ!4!i_^&o z60CQL70(Y)*K0-AbW|YuPgfl4lZ^^c@ai~Z9pMMPZ!4!i_^&o z60CX=pvhep@D(H9InbE4L<$5 d8qVo4Ff5&?z?;$`z8Yv4gQu&X%Q~loCID;tG=2a8 literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_level4.png b/mods/HUD/awards/textures/awards_level4.png new file mode 100644 index 0000000000000000000000000000000000000000..68e393f045a6405de145f1d883fe8dc699a4aea5 GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgfl4lZ^^bsOdm4WN*|r;B5V#p&b( z3D(052CrVe{OkVA*ucObW>-mP2J;LFAlT+?nxpRccm;RcRBndGcWTd?3YrapS{XcD L{an^LB{Ts5MKmwG literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_level5.png b/mods/HUD/awards/textures/awards_level5.png new file mode 100644 index 0000000000000000000000000000000000000000..d0a05bcc9aee4a0f0ba6082b282a437cc14ad7e1 GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgfl4lZ^^lO20cegg^_db&7 PYG&|s^>bP0l+XkKz|}CI literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_level6.png b/mods/HUD/awards/textures/awards_level6.png new file mode 100644 index 0000000000000000000000000000000000000000..5c6482fdf9aa0d5a2da6885a5cff308d4108db8d GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgfl4lZ^^wt}n~Wk4Z&PZ!4!i_^&o z5}z6Z{r%tD8_jQQYQL70(Y)*K0-AbW|YuPgfl4lZ^E%lqOjAoGnpT^vI!PA4ZU z5HNW4^5tLmXT}Bw1~I!zIy0DONC1JJ?2dyCKK;8AuCOlFlVA{MVAvGo`1q*&5s)nm Mp00i_>zopr04!HA%K!iX literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_mese.png b/mods/HUD/awards/textures/awards_mese.png new file mode 100644 index 0000000000000000000000000000000000000000..3fc800ec3055f5ff9f7a1fe8fbcf8821bcc09107 GIT binary patch literal 564 zcmV-40?Yl0P)1z&mS8tXX(;uRq9FJX)-rhzQA$gyk*Wospb(py8q<_OpCqHG zPodSK6$KL&|D*)6?(X*%6gx*iXy));Yd+r$lSWXZ=fYzFN!%!$FR+cVj#oDG} z{f-7;Yum6^)y`vM3<9t(UP+2U!d%I+e;}wVyBFIX!}+r*(Q>)$07w996VybSoSK?+ z9=CQ4)2HBQnCCZYCOb<2&-1YsdY=W#AGtI7iX;Jn;N@!pz`b?t0z^^7Xat@I!So~# zTX_c|JfsId1|y;<2j1F#nu~a|k|K8Yp401%h$0C>qai{T6F;!i>S5! z@3s97nu&P7ZnEOPqTVpe&=6ZRHyXC&`rkx0000dNTcAS_K{^%OI!HhV6T}W(yE+uHG~f^_WD}f< zTNdro!4#eS3&lc6z(Ju7axO`m7NiF*7tVd}b3X358DPd5mIrVyyrqJYQNVX5sb@w{ zCmVNkhs_1ivddywi2`70om7#4yTc|WqoDK(AW>ewABh8RUM>@0OY7h}lSEeec%;#2 zL|LmV!S41ZuHRDUjnZ{`31Sk-^;@`pi|$>YAdJ)!SiD!+w5|gLVT4sHviI|WS+y~% zHbEFI^eR6Ou+C2j!iWRykV?+R9q0;bVyBl7Pbml^%&JW#S5v?5;8^!o57PYL$g}ProiY7_Cr@Af3UWb8DsR*i`_f4i6Jfl|0&CPf x+7It43-M=w*?2tW?SA_2pJ?>-KfpTQ`4^IxiicdvO9cP`002ovPDHLkV1gJLxC8(I literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_novicebuilder.png b/mods/HUD/awards/textures/awards_novicebuilder.png new file mode 100644 index 0000000000000000000000000000000000000000..f24d843ca45900fa57080e854df0b65a0a702e9e GIT binary patch literal 374 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP)lLUjh*kX>pQU(S_W=|K#5R22vDG3Qb&O0zBBqk&z zOh^e(UGd@4)b4_9^ZM+Vf#7g)+if176J2S#bJ{L9-2R?#cxPWdx3g{+W9G+53*L&~ z?@XD^w)XJw@ci%m$Yj>=kTr*4{`M8GnNnt_EXgyTvHJe81sfUFau_wvo<8v5i?Leo zb%vDLiL*plBqY|P3bq}1GBLJWi0#Cz`E_XtH$I9i(uicfs_H*)<)On3t&NS1jt4q= zfmGwem)sqTcA85_$oaePSfe<<(a~&j<3VRBrT?s}{{6Jf2y*+ryWQl-w>0jKinp9C z&z8@Zl#tj_*ur>bCJztC*%LV_m221z#xI NgQu&X%Q~loCIDVZk#zt7 literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_progress_gray.png b/mods/HUD/awards/textures/awards_progress_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..a5fc6cb35bdfcdc2ccc407f3ecfe6a9b8da20651 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{F!2~2D{x&@TQk(@Ik;M!Q+`=Ht$S`Y;1W=H@ z#M9T6{Q(D~Fst_5@4c&lLXst}5hc#~xw)x%B@E6*sfi`2DGKG8B^e6tp1uL$jeO!j kMLeD^jv*Y^lM@#30C^4!jA`P@8-OeZPgg&ebxsLQ0Hi@7ssI20 literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_progress_green.png b/mods/HUD/awards/textures/awards_progress_green.png new file mode 100644 index 0000000000000000000000000000000000000000..54b4e5d5a49d267f8dc5987bde274c351303bc81 GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{F!2~2D{x&@TQk(@Ik;M!Q+`=Ht$S`Y;1W=H@ z#M9T6{Q(D~khT0D7miS%kYtH#M2T~LZf zk+!FcV+hA}-;)~!85DR9JIrlQxx(Wv<2>8x===qJGt{eEl&hXb#@!b*KlF2*t=zHa S!fHTW3=E#GelF{r5}E++QZUZ| literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_template.png b/mods/HUD/awards/textures/awards_template.png new file mode 100644 index 0000000000000000000000000000000000000000..b2904548033fb064e051011d057dc569dde3315c GIT binary patch literal 322 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 literal 0 HcmV?d00001 diff --git a/mods/HUD/awards/textures/awards_unknown.png b/mods/HUD/awards/textures/awards_unknown.png new file mode 100644 index 0000000000000000000000000000000000000000..b2904548033fb064e051011d057dc569dde3315c GIT binary patch literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP)lLP~|O3=G4(LkZ|o-U3d7N?I+R$SL&AmaL-r-`LI ziJL=(uaTuWnN>r?+fmWMBy$)4w8L@+=|@`T+t;69H%f}TG-t{8rM8v6`I9cNmrhrC zKBwXI9WI9Fcle)Is`&;VGC1qX1v{cnEDd9pYboO@t?yinzQvC75LyQa;F5+0LSJVQcT4WG?&jGX4N zC{t?9*8HCf8=qHtB+XiO_s entry.target-1 then + return entry.award + end + elseif awards.get_total_item_count(data, "count") > entry.target-1 then + return entry.award + end + end + end) +end) + +minetest.register_on_placenode(function(pos, node, digger) + if not digger or not pos or not node or not digger:get_player_name() or digger:get_player_name()=="" then + return + end + local data = awards.players[digger:get_player_name()] + if not awards.increment_item_counter(data, "place", node.name) then + return + end + + awards.run_trigger_callbacks(digger, data, "place", function(entry) + if entry.target then + if entry.node then + local tnodedug = string.split(entry.node, ":") + local tmod = tnodedug[1] + local titem = tnodedug[2] + if not tmod or not titem or not data.place[tmod] or not data.place[tmod][titem] then + -- table running failed! + elseif data.place[tmod][titem] > entry.target-1 then + return entry.award + end + elseif awards.get_total_item_count(data, "place") > entry.target-1 then + return entry.award + end + end + end) +end) + +minetest.register_on_item_eat(function(hp_change, replace_with_item, itemstack, user, pointed_thing) + if not user or not itemstack or not user:get_player_name() or user:get_player_name()=="" then + return + end + local data = awards.players[user:get_player_name()] + if not awards.increment_item_counter(data, "eat", itemstack:get_name()) then + return + end + awards.run_trigger_callbacks(user, data, "eat", function(entry) + if entry.target then + if entry.item then + local titemstring = string.split(entry.item, ":") + local tmod = titemstring[1] + local titem = titemstring[2] + if not tmod or not titem or not data.eat[tmod] or not data.eat[tmod][titem] then + -- table running failed! + elseif data.eat[tmod][titem] > entry.target-1 then + return entry.award + end + elseif awards.get_total_item_count(data, "eat") > entry.target-1 then + return entry.award + end + end + end) +end) + +minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv) + if not player or not itemstack then + return + end + + local data = awards.players[player:get_player_name()] + if not awards.increment_item_counter(data, "craft", itemstack:get_name(), itemstack:get_count()) then + return + end + + awards.run_trigger_callbacks(player, data, "craft", function(entry) + if entry.target then + if entry.item then + local titemcrafted = string.split(entry.item, ":") + local tmod = titemcrafted[1] + local titem = titemcrafted[2] + if not tmod or not titem or not data.craft[tmod] or not data.craft[tmod][titem] then + -- table running failed! + elseif data.craft[tmod][titem] > entry.target-1 then + return entry.award + end + elseif awards.get_total_item_count(data, "craft") > entry.target-1 then + return entry.award + end + end + end) +end) + +minetest.register_on_dieplayer(function(player) + -- Run checks + local name = player:get_player_name() + if not player or not name or name=="" then + return + end + + -- Get player + awards.assertPlayer(name) + local data = awards.players[name] + + -- Increment counter + data.deaths = data.deaths + 1 + + awards.run_trigger_callbacks(player, data, "death", function(entry) + if entry.target and entry.award and data.deaths and + data.deaths >= entry.target then + return entry.award + end + end) +end) + +minetest.register_on_joinplayer(function(player) + -- Run checks + local name = player:get_player_name() + if not player or not name or name=="" then + return + end + + -- Get player + awards.assertPlayer(name) + local data = awards.players[name] + + -- Increment counter + data.joins = data.joins + 1 + + awards.run_trigger_callbacks(player, data, "join", function(entry) + if entry.target and entry.award and data.joins and + data.joins >= entry.target then + return entry.award + end + end) +end) + +minetest.register_on_chat_message(function(name, message) + -- Run checks + local idx = string.find(message,"/") + if not name or (idx ~= nil and idx <= 1) then + return + end + + -- Get player + awards.assertPlayer(name) + local data = awards.players[name] + local player = minetest.get_player_by_name(name) + + -- Increment counter + data.chats = data.chats + 1 + + awards.run_trigger_callbacks(player, data, "chat", function(entry) + if entry.target and entry.award and data.chats and + data.chats >= entry.target then + return entry.award + end + end) +end) diff --git a/mods/HUD/awards/unified_inventory.lua b/mods/HUD/awards/unified_inventory.lua new file mode 100644 index 0000000000..a4bb02dc3e --- /dev/null +++ b/mods/HUD/awards/unified_inventory.lua @@ -0,0 +1,18 @@ +if minetest.get_modpath("unified_inventory") ~= nil then + local S + if minetest.get_modpath("intllib") then + S = intllib.Getter() + else + S = function ( s ) return s end + end + + unified_inventory.register_button("awards", { + type = "image", + image = "awards_ui_icon.png", + tooltip = S("Awards"), + action = function(player) + local name = player:get_player_name() + awards.show_to(name, name, nil, false) + end, + }) +end