From c7c99cfd4e94316a14c4d1e1d4a6868df1d07040 Mon Sep 17 00:00:00 2001 From: leonard Date: Fri, 1 Dec 2023 12:36:55 +0100 Subject: [PATCH] =?UTF-8?q?premier=20lifting=20pour=20int=C3=A9gration=20a?= =?UTF-8?q?=20yunohost?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LICENSE | 676 +++++++++++++++++++++++++++++++++++- conf/nginx.conf | 4 + doc/ADMIN.md | 4 +- doc/ADMIN_fr.md | 4 +- doc/DESCRIPTION.md | 2 +- doc/POST_INSTALL.md | 9 +- doc/screenshots/example.jpg | Bin 35451 -> 0 bytes doc/screenshots/example.png | Bin 0 -> 43549 bytes manifest.toml | 5 +- 9 files changed, 687 insertions(+), 17 deletions(-) delete mode 100644 doc/screenshots/example.jpg create mode 100644 doc/screenshots/example.png diff --git a/LICENSE b/LICENSE index 2026412..e600086 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,674 @@ -File containing the license of your package. + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 -More information here: -https://choosealicense.com/ + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/conf/nginx.conf b/conf/nginx.conf index 6ce787a..28a396a 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -1,3 +1,7 @@ +# Redirect root path to the generated Swagger documentation page +location = __PATH__/ { + rewrite __PATH__/ __PATH__/docs; +} location __PATH__/ { # https://github.com/benoitc/gunicorn/blob/master/examples/nginx.conf diff --git a/doc/ADMIN.md b/doc/ADMIN.md index c9b5225..2591dab 100644 --- a/doc/ADMIN.md +++ b/doc/ADMIN.md @@ -1,3 +1,3 @@ -This is a dummy admin doc for this app +To customize the FastAPI app, you have to put your code in `__DATA_DIR__` -The app install dir is `__INSTALL_DIR__` +Your code must have a __init__.py file and the FastAPI object must be named 'app' diff --git a/doc/ADMIN_fr.md b/doc/ADMIN_fr.md index a138028..5bb7bba 100644 --- a/doc/ADMIN_fr.md +++ b/doc/ADMIN_fr.md @@ -1,3 +1,3 @@ -Ceci est une fausse doc d'admin pour cette app +Pour personnaliser l'application FastAPI, il faut mettre votre code dans `__DATA_DIR__` -Le dossier d'install de l'app est `__INSTALL_DIR__` +Votre code doit contenir un fichier __init__.py et l'objet FastAPI doit s'appeler 'app' \ No newline at end of file diff --git a/doc/DESCRIPTION.md b/doc/DESCRIPTION.md index 3f2e57a..0f9a62c 100644 --- a/doc/DESCRIPTION.md +++ b/doc/DESCRIPTION.md @@ -1 +1 @@ -This is a dummy description of this app features +This Application install a FastAPI application "Hello Word" ready to be customized by your own code \ No newline at end of file diff --git a/doc/POST_INSTALL.md b/doc/POST_INSTALL.md index f367b62..c7cf9f8 100644 --- a/doc/POST_INSTALL.md +++ b/doc/POST_INSTALL.md @@ -1,7 +1,4 @@ -This is a dummy disclaimer to display after the install +Congrats, the application is installed. +You can now put your FastAPI application's code in the folder `__DATA_DIR__` -The app url is `__DOMAIN____PATH__` - -The app install dir is `__INSTALL_DIR__` - -The app id is `__ID__` +Your application must contain a __init__.py file and the FastAPI object must be named 'app' \ No newline at end of file diff --git a/doc/screenshots/example.jpg b/doc/screenshots/example.jpg deleted file mode 100644 index a1efa1a36d593384df59dc13db03fa83b0436d69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35451 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 UE-)&$xd9C0IsX9d#{5|Pe`qLcKmY&$ diff --git a/doc/screenshots/example.png b/doc/screenshots/example.png new file mode 100644 index 0000000000000000000000000000000000000000..13ee27c4eac21bb54e85c10324e5ae70bba3bfea GIT binary patch literal 43549 zcmd>mbx@pNvnB+03+@iVA-GG>-~oaMcXubayK91m;I1@xV!suzmVT|w`%vl zTYI;5r)FwiIrARrKHbmLr_Y2dDM+Cp5+FiAK%mG-OQ=9VznZx> z3))Fc<`ewO%NyP}?ByKa`NL;tRXbB>Hv>l#2s2wd8xtlcBS#YxTPJfn=VK_4&`Tk@ z|0pExXky@OVP{MB$->42!qvoxmG3v6 z3DHmPSqDpQX~~<}&!^W;BNrV*tWd}RZVb`4(9ojYA=K5~A!D=S59!9-wh2pV2R&u| zG`2sL^Lr$s+4g=`!&Q%EQpi@0-?MVC`i$^`kI^LPp^%~AlvXPD2V90d27LT-%}}3C z)A?8U;X7F+5~yVU<6Y3n=vapo_veJlhYMds?)6SW2ZYw^VbWXJ(ZA&jSp8F8OH&6! z*1aCm(<6VQ{?`MkWMm8=m|hQM5uwaq4^>p~{*OPJUaA#h*Zy<8r{Fmbv&rV3OHxvj zvbKg>ot&kTrxrnQ@U64;N{A4kW$e4pzBq}K{OwyDJKqq_&BR%)`kEkjN2?rdW|xpf9- zS0Oe=*g$D;f=-r&jKDU(#g>yAdqT5rZzT-?uq4GUQkuN;9Wm#K%8N2&R~?t`;!;vS zr8(Dl4ocV7h@ah_fGOBs>PaVN{_bKcoKb9orPSME;^X0cc?MWs3PL;nT>}IkJH7v- zs>D8_&oS?9mwOkF#ob(CqPU?=hT zx=Vc@Aqq9FNuVk>`}B*;Y+6{qUV zqHzKI+F=esB~4|CkZ(gb1PbVQU>R?{<#u;$&rkAsXvu$X#~Z>GpN*C*x}dI~_hpG? z?(UQm#`*9`5jffc1xX&nIhm-aU`o!L4v?{atbBwXRX#goF7Q#$`q@&S)O}{2G8Tga zGs8x43{6oR!d_3&0KQI5ae@S7=8Cvnnp&#X_RoS__4UpWtpqey&$KetObtIsO(8e0e|$U0Lfr{5%ymlibEzuS%= zj#Z~vmsb5a+`fM+0R~I&upaaj=_69LFlbyBFAN0upFAVavf)J%zm$BC>Yl6LGQ}${HqgXuP64%@Wl)_2l2h0{T$c* z+WPW-LUEUxMWkxVX{*9$=)@w3Wp58OCQp@FiPnbBTKz1XU?0G za{G`O{oPF+F=#LybfKTFK^*uEx3`|4i?(nIL-8Puk_mvu#J&)R)AgfLduUJon$=Fb z+jl>lE-iW#_p1pdDFrv0NneA9R$ei@TY zUkPuUn_z!mm89^jj-*JWx}cz_rmNWXjdTi)8&An2!zE zQ1nG*cQQ|Ly|LogIX~LRZ&YWR+f+?5)m(B7>RGj%w$pC(`a+V~-trR<9ld|&gD*5$ zCTe$T00`Tk_aaFd_tJc6^eFIV;%TwE$9d0Fm2U9A>i7kMkG(CNadkEF;M(^~Mw(OBgn(NIuwTT~c_(R|HuE)5~ zPh218&a$Z;K(*rOeJE{J*>_jMaFu0G3s`+&6ROZ!Y!^?h zc}Ve{uB$_9IT1-JSyxv+NVTAY2mFpb#0F~eULl?HqGHark94XQ3)SVdpClsCSD!2duzX-vu-3UP`Gq5{flm zjAe~)QEf42`p(XG7JP6*oA@&zGO{5XTL4kS^ycP`O-{D2$oq8Ktr>-b8dc7>h$&3^ z!}ClFb9%}jOg>OAFqHm~myj78qN(&Cx0!b^H+k(NEaFn0ZqJ;(CK5kbS|d}{!R9J- zO9G`{SVynUDcSsKfKbP00cQh4MSzCT22Yb^nOb;Ur~`)M?(rlAb<5FFeBo196R1te80p8bBdx9O!E z>!vb34?1nr2Dk;srvx@Xq}T>cY_VCyCijJ-sN(V86WpPER8-N04DJLQy0^dAo1Oo) zP&(f?KaQ?N45S_1!4E~_of5?}hZAUC3uf^QF3u!P+(4%-4M*uNS zcQ6`HQcf{BJ@nXA_(3an;&$)Hl|Q!PA4_l$l7vb!9pgp_@ zCzabe6@uW0UkEpDbl!*KN~JWeh}Fjw2g^KE3JVE%f2{#-pHPQ=4Y4hdy|*5XQt!Np z&+WqACaK>_VAMjB<>*pfBxYf8p9YLDGv*9SJbYX95JkL~z{aG2jnQ^kmHW>cp9et8 zSNwV_W}d_s=s0nG9=kQVB{<4)W$v&`B8B ziL4&#*1}?PhS~UVYlYSIYVPBrI$*^NEw8+9@IcJhv^4f<1p<=3gt#C4a_ae{SK4sx z``6p1P`SZ4;}sXxBt%?Dmib2)#3v_v;$fY}-CZU&-5)JqJZ(1DE!76ybqn~eWR`^! zAK9Ftg1QD|qI4%kq)BXs!{V1@Q1Xz49wi)U6$}?_af6c-iNTX+qFGauTy$`lEGBZh zz%d(0-9c*u^sde~vz#Y3!~HB+ z^&;dv_PyAd4u1i^-0l^+%StaC%haQvp_K@wq})5AA1UX~-Q{U{&05a^)2(uL=5}+) zn7m1N$Tn~;0S$G#h?%Z%M>?86Y>sLQHOQCnhnk|64gOFIZ5VK z8=XoYeQM5NxYywTZrpsyk`NbCRPD(n0;AoR&PMal?^$y`y}G_*qKg{);+ z!@{)5?0XMeUX^h|#^lsky=)H0u%i$XH4zqGJZ@wUeLv#G2{1(b_@W7TjX~Rr``+6m zkQduC7TL!F^VF{>03v3WWHi3RSLdFT5>Kd&aQIr&!YpQAIL--V59;>xrI*?Os_TWK>o|^S zzOd(}PT?D6=l&07%8NhEK{ItjykF0~goj>;G>@1XapuVJBP)}W0?)k3KixirXgTcn z{%%9bqHz3+*UWWW(P>)=v=9zW9hp)?FA&4k3SDJD(Y`FmWcW#a3NrzCJk=rk?t@^c zy$SfS@{^#BrD^PTd9+t!6TAwa(^lVAYaL_%mtXjSbPwBB*2_lN?vD?rZPj;efk;4M zARvbx)SNtcbibiQp)T)XL0upISjQ6n*8UC#N=AJ<_9a>X>1`^u^Ab7OUpM266DqHO zxmgSu-M;p{S$8A*qq;^5Y{VkR@09D)KRDsm*v}D6+b+uPUcLLdZ`kFEkYJ>(&RwN~ zx0cCWOOI;f>M?)Ov9$qR<9i6t0x+cr|dGwf`y9F ziiUHLGA2A7woY&auKftFn`lQO8hbdN2eS!xs(sR6lrwUjQG{E4@R(vn%=H(4hOuer z^!=RLPj9rRXV9q3FDQtbZ)w?3T!!AYuy~8JHBs$Dcz3ba07ii$%r_Z9(3!sWm`+kO zINdV)tSS^*(oQ%En^e$ZOee$4rC4{F)w8Z?5(Vy0bWJEYfl#U_=a<{_l@ajs zY!VfFf$@Cq&5@$MiHsUn;C418_1eK46Gb0!A7`qY(OGV)QtisB_}WxqS(g65z-=ww z{e^zN`BJQ$ZF4xGRGq=G?O3Q>Uy96nx+cKQK~&3bglIVdKxkQDzql)IalhzPwroW2 zZut1N2k6J?qbMt<0)QM_jLGtyy7WG;!7_IUdanCd^bFBSc=#no#+jA;M=ET)X}XZv zvnPDQ_jBJv!S^Y$v8AA1znQ0y)|@OUnX>Bhpvkh_VJx?&IJGI^^$I6#PIPEe*j1Wk zBJSAvkOA4U-{Hr8nP!A-l^Np_zw}Tlu&AR*uZ324EXXuNwY1UE!wceavgHg)r=5@H zvwdlEhr+%CEV3Owc_zPtaXwh$d`Rc4U={)J&>>1er6`T=NK+IcGszG_wpLtjx)>D% z{M;3|^`?VmdC3T?<1y_0b`s%pB<+Yt?u;HWSX*_)>}bHzvJ)zF%pfm{9!;=6X|<7! z@t%yNJRXyQmfcm<`q&5aYn3nIzPdGkABOlq5pX!^ke1`!HJR8NSu}_51D-H1(ssh46EuEmWz7Z(r6N(r4ucH@qym?Cvg)OJqXlrp`GYx#hIJ8p+B5+pMZJ!5)Qo z+e7DPi7mX}{!~fT&PFJbT4gY(r+o~m+>$++8W1u*QI+7~q>jnoRif$`u`^#BR^j8y z`?)p&wP$|(@ggB7Ymq`_i zjy&*gtWi~H*9)eXoU@eXWO9M$bnKBgj@S_s*zAGBqrd&ho#pb>oO z-09{5Dd7yp@c>a=)O;y*h)-O2KlMPa+JbaJ3qtTFQ7+zzu;zZ2K@6M01I7|y4KX@OX2G)@v z3kW$KJE*p>ezW6xc5gMToEkB>^fYa|d&A+{`sB{8NGci22tT;8nXB4Zdrh$EpY>Io zrx|0FL!@AeO!C4v>RR~6N`43r!*bfM4lBN~?b(OJ*SP;(6ptijAKenrp1xD>j%j`H z3e~rBmP;s0Fc8g+7pI`kv}=@+M)C7>Qv-oltZZ9R6ldh%=ZUnzz_)xl_V{Lv)<0$> zxx|622@P2Krt(njmrs^-=@(oR41`UzeFmdpSbeq!N}@<1D90lJr>)xUj+2`fnW$_h zY##-I#Y|e+SN264Ge$CsPERy)`0TqXWkY|(B5l)dv2q9b%wF&t{u3;;MV;`v)x*Ko z`rJ&wMif@XS}*rip~nT8>pc?p>2y=`B-gBOzHo8wWZx#3KcZl2wEaTC;>(i+f?e#r z|6U-T{GW;vP^Vueh`7j8|IB&l%1X~BZ39{UcOvevgc%>Im8apQMGs$XR8v7as$+>B z?{!BYPac|X1iQsY1)>7uiKi}Q@5f@$+Nz&$AgaZED^KFG##31D(IYPKF1Y<-e>~t} z=o3XdkXE)Vr_1Wx2*p|jFOJ{dJb%IN;4M8#U!NZRfuND}+(u)13jo1J?p4`K;saQ% zWzRP#nMSVa<OnFs)D>DaqP{h2b;*5wDrZkI)jx|jKJ!GKOgyi5WO7aaTUU5uq9OQ{ zdpl!of3KoQwZO7TqkjdPL5>e z*#XiN>RF&6mVP>M+&pitmm-*IR&N-~E|tU8CTh#muX5! zP`rPN?%6GPBERhne8^addV5J(U+_WYrsD%sQxk8OoTa-kQ{X}-q(RoTY0}wmxO(d_ zm^#bU&SA6nMj~8PvJIz)ev@q9xEXZ_i`)1LmQIInul(QF2z#=~Z6}@fx|M3`!3=Ae zo^EoS^8(0b9gfd0v&P|sJ}ZN#-p$tw2k6(uDAj(? zItG1`Z7q%Dp;YvIO;)d*8(*p8nB|M8O%1{Im|9~&dIvL1zU49qP4tYM>m_89s$ z*oZWQ2B34Ur*b1!4@R#}Vgzc z%%L=WaR-oqB(`Lj1jWV9OcZ(j)DYd0gH>Egy9fXA@W>aDb39Vti=4b+4&HoS#5rZ@ ze%b8=tZ~i8iWo%H_jc=r5^wfO_cZkgikac*tm7q1>AJYo*{D;xv1tp(7~eE^H|tCZ z8lNTb8S)?7WOv?{yFQ>gEtrj#|IESWgkx*|YapV=EZK zZ5av8DS^k9$D3JXyL|+*DHPzyj;Gyr@;N46J=9ZF)$MHE+|?O<=g%st=^~e zoZ#zSESE%-UFFs>RwIXjcoe~#0Qanx0Ax$?J_F%%k}fYRA2CS%a^~&+RIZc3J388n z{`Hjh^!JqtRe}u3d9lxo7)nWmg@&qG*`Pvc&l8z2Qs@G7O#UPkx>uX-W6CM$uh8Z0 z=JG3i`@lRDV@0LiuBe;$cuoDm%pk}-FGlLQA^1$!t|Y9QH|Poyy=Sh8_^d_3zbJS# zzKjlrcg}k|!#l>#9IMMTUB^X%MkAP8SD{xI%mThOj=mAvwmFc4l9n;)D)|t_gZ)mf)ctpG`9t#u zD_d|xoHlkb735()f6q#dpn`(>#c0aFU$muT=~$6AtKR7q?hO0(;D%_L_J@4*c!OpT zof5DmLB^zY1#3m6e}uSc`0EF^h~+yFf;6Puj!O*}-v1>IaV9-(W)1ex*j0AGvq5E+&~ z9aL*^?b@Sbku?&+I$P1l$}b=GKf)gAJP}rIcBgY%%Zm(8%jW3dvH#E}D3RbTRD>-x zO+LNbf_5NNCo~$XA(-aOn~`=Ad_SmINQT(8?_uM6cvPBs&3jDJ;n}0O)U#0|sQ4>n zO3hm-gACT#RH9$zt2BDt_`67QdNqMdJz{L~Pu7bgiE?j3Tow5zm)`wV2vkm9jm4Iq zA!n|`J9o-K*(zCsm&9^6ohw{%saS=Y1_S^kR}gKzIF6utiv9Tl+s}y!JReslNz;iw zm{CZ<`;GC-sd61JKWWRj-ct6r@>yyrlQDYz?j`R4~L()QNtJ|$tbMMoK zi)xv^6A#6;H${auwjVo9epo%N7a%BbyzL&ItziyM4DrScY22B}T40d%*y(q9uw(qD z)@p4_nk+u}MXFg;ou;#vp=ljVZ5<`G%l$2mknhkP|8@!KM%jiJ4bbvcSUsemKx%hf zC{>$}bO)ajS-23NV`a8$23Nu&Cr1pF_kNuF=nUuTW!QFIDSC#k8Kmtp2TN{Sr5;>1 zryg#jRi-~d(JOmiS&o$Jz6mREI^6LlaW4%bH0>g%j8+ZBIo)iCe#H9v3g~<&;5(}j zydY@suGb{Du9&v?vk7n&Qby*6m`ZCsyq%}p>mzyI7!nRNxfmvq>ZZtLN(w0C856Gf z3XMe1V2@UQpC*-Yq&v6GY)mIiH9PMM*1TU1Q~nE?^NY&;QL#4a2iH5meFL+6D)@q| z+0(hvy%r)b>k~Y4&2V!Jf0Kt$MJL|ukOhm<(tKyI&x)&HAw)&47b`+q*e?!UOz z6q`!66`H*9a7SJ#+}joT0y&blq8P+2D8D1Lds*8|?3*l;{#rOhP9GR&YYeoNQ~sQs z=8TL0=8NNn^tFpa#+)luqybEM5-tq8JAjmt&Z~e`Iy2hd@Kt+YIB|6$I7*(7qWMIw z?n01rQt#6bE~Z=c&OIERFJ7lQeAL$xbI~Ff4AuL^4HC*&&xGj`y1~+T8XUB?<&V&o zOgbAtB2{u7n96GX&6cCHlEHTU5K?&=C1#Cqy>xRd0Ia~Cc{pnH254YA<@!az z_k}eZ^`Xs=#g)~}55{F(8QixMr3$!prDo;4X& zO=of3G}dgF@VA~hyjjfNec~)k-vX=^K&OO@&ayP8SnG_yM-Lp(1)ozzOF9+-0e5wV z6iqOCLE=me_L67)_JLeQkxPYD?km8c$4525>VPj-0OYKo0TP%cur@gC;W75Rs5W7_YrLg`k8#H9nFHh+j!hvS5PP07>m2yI6wdvn&Mrv+zxp^K3(!G zd;V^0Lx83q<~gddJCDq~Pu$K4e|56XpI;Dhg=TwFI-4izk)(1eFl($3O}A9&%bob( zkEMoe0(QE00~8&uTG1`($2k*si9&;?(8HbuzkU*v1}44DYlZzKDkmAk7X!C7vRW?u znB3PAcL7<R{j0m+0&sgyoEnrXK#wCEic^@y>n8qOB?pUb8mK&2-aoedTV#BsU+f4$qf>_VE;o2CNG& ziqi=u_^1pa!S67#lOy2t{ASr_mpTHxCvMP|K0h3S+nN?0e%xvwiX1 zY~c-iW4Wmna=;>y<3z?C&TH#r?#DME`1Pc;UUpcxfuvd&WaK z^aJxz;&6$V<5$*QTOtGLj2A+MiGaiSxohR=33)8$K@$`%5pZ|sX*!hk0UbI7Y*{xs`N{UNM;==AS5$iKkIKsDrqHH8Vk-dW zywn%dZAjX<$m%`aE-f$rc+-j%*&XA^`8r$)yWccKjt?N2h<{2@7#!Qb4h6@-w|_Ft z69_v0*O}`#A7Mr>6a9K`xAljAMEZ8A?jNZB%~Y3~P=^0zH01MJJIm`5>SLwgS?%$= z#Rr0C&#|c}0w3aMPICP2t~3`gH;>iDRMz=ru_lgU$J@ViHA`$ zVK>xmXY%{X2I=z+A2}pFeQrtj(qDm>ICVko+(fvg1K9#0XD(?HEtkF4^hna1BI>mp zssVhWTDDGnm&609755aK^967CwXD2PD=a1@TOGTf`GXTQ^o$119P^kw9Y!v>?I)_# z3m`64pH9YHmYO!7o;T!du875E6d$2dpPbp%$VCLP{GPBSABiYzn1453>&qX1i$c@8 z6DA?$&kWulC{Y|PHd-Oq@m-?M8e@aZQs4n<1YabHcvL z!%z(BoxfPe8)w1l;F})K?A>#R)Qvsv9sMe3j-OKXWli{IH#XN;VJWB4uW#ZS*mKuW zK{P`XJ#gvdzJ=>{Ufc|~B1G9|^C7l^sSgq2jpKrIp&Qut;z&ipv??3_`Z37Q>$kjV zIf}(ZBWW-0RJHe=+{1wvXtmn~;aiH^^Mm%0mkp#97Spcq4Hc|23)O6082vd{BK$br z-eNN9Ej_eI+;Y~4VCz_`na2F)huHoT{NLTU`o<@}+Xb#>jl8nG4yt?c1l(C!fH!N( zKR*5u<#_RM{C})*{;J!xk`a9JRv17a>oe#AEp;{zkC&{dD|o00)(`5fg$jEGy6l^= z8l0+K2nw|fLX=#zo}xZ&2jEEj+&)>bdq88c)#+tm0rsY?!zH?+7Zwot;e*=p@mBz+ zEN!H6-=9-FC;k<*K!n)z*qzFl%6T=6Q5l0Jn8`dx22M<0PI@(-uA z?KU5;SGH5MZ6SZpTUEli27wzF9g&QBqE=t-31(2gF3a2{@#H}|8+Lkq)QuNgIlmug zgy_(kj`9og%E=hXD|ZQ6WyXbDnAIYHbCt2qFW+5hwC}As93r_m&KZy+v?|eTPN+X^ zcNY5SGR>^t6X6cO%0=_Awx4wwxdcx2ZHi#JC{kQ$C>Yl4KP&bf!hMdHA9Ow3b=C13 z0iG~wkrrvigusz{qyJt<_uK}*wC?sM>($~D_hBG^6XzPv>K>PN13Ea8K%(nE2nhRq zp|HZ-btZCvNkwC(sXfpo@wLaaS|<-*!n7cZ!iqc=NSWQ-?$p~ujem2OEf}@j+?pHn z)`cRHuDtRN5@h)ZYgEi)c$;zgl3O1qGlU?wO)6u2FV_3rR9#%N&eI>XNBPwwU8Vi#NQ z@()#5Db|t|I3IFFD7L<&@KqZ{wV*w9pgcbj5Do|#k8MHIy1|D@x?OmoT3MASsOaS| zq6yuQ-QM0pJe;M11O}#FJ~@*mpq#RFK;~kf!gbb zog1&IV z*~yBj3f*<)DIE=)=d)@4WR-&1krX1*`>y5E2(mvGcw%zBoyf}_7aX75Kt0Xfy?b0i ztsL&J(SXTM@syln4Q?wYwr!N+unk|#E(i`C$%SvW;5~7Rsx|`~JzQM-EV!eJdV%U3 zQVUMEhcg^`bP6tvvaXry%^Oz>%_Vk{6A`k!F$_RYF50(d80E_yXCDSX*Ht92n)m#+ zdkTAQzC~8pOB0=2yG|D}Ln(|;$#NdSZMx|actcTl==UygzE}n5iNH||=vaiit}4A;N0co{u*6V=JkEGtG3mmA7_BfFdaQxmKmWKJQCz#4=n- z@p8`~%Zh89+lO7pVKAPTyvnPoNT4G27o_`($NuxCum~EsQBibsXvoXU%g|a9pO=M_ z8NY|6KWXp@7jv$okk07P5)>E;LM6fmc#ba+17ECEd2fHed3!k&zB4XSaZiy7lP&C3 z_ClQ*bqEHsvWU1*LXmFE*~3jUD_fV`Jy;>Ds}=IOY%g_%kc*<*x9`+S%iMlC_)7n0 zY)ZldPRJ71S&>W1%M07uvTo0D&-P}yJ=~`6VMqDCk-x=MGD z)L?w7ifBSl4j{x9wO5v^SJy5tZJ6TIvZ=Q%t)Kr{E?heOuCUKOG61W)Ur8yBiOee~ z-hTb|5hDQd4OJW#eD3vra%#Vm+sgg2Q@pUy_3-uTFXsD+{hR!qSqD2rB&7a<0Y~gt zHuXu)M%7=TP~~OUT9xCb>`O9;jD-b#$)^GM^5J(YEz}GQkq-~vXXoerBO|VasIQ&E zDRuP^Ii_$HAfY9RO_ZjRE>zh~%e8z#kz$NEl$4Z#QBlb2uhF$ngD*9}PFK1zqk$`Y zr>B#8x1_0R+QF|Pwk)SwX&L@8SfA;%X82q!STo?@bH|&>$1N+a` zKP|lfj|yXCa+r<8fN9Hfax6CC=|48u9h;TB)caHwEWAdkiUeMne z_W$h={ue7$m+J-eKyWu@^Hv?4hcNI+qz)Tbz#9#>A#(bHquO%bJcpPkps`oc>?lDk ziAp7i9Nnt(L+s*k?7{)Gu8>a8iIrcEE@`DOxpUi&F9}IiXfDC4Ea#~Y-b3EqtFZ5a zbZ+;b&o(pcr4&tCgG-A~&VDQ2a@8M+6p-uQUl$nJR*7%F1|DRpT48qVVeEtivnt>9 zY?Dd)0w~UmASLz_QmfaCG;~)7=-VD9MTF$a_|X?qJJ!9%+1x@E{%*_lUt$uWH9Oy& zDJ%nnMY%$C9E9C2E$T9};a?5DENID^e^q5V>66Z*PN=%g9^pR`4;0|aRf{QVKI~KK zb9Bb986zP3|P@Xa87He}^UAY6*O$+{oe1N-cwb?rEIuQY?~9+wUiVPCDDx^{y# zzM$6?^q0vW%5Sl;4}asU9eE**mY5iMoXof4y)WEoWnz^Dt=7)u7%X~`vj3ius<|9| z)057-rtJHi8vjujunNE$#AWk&peTy<%l!^^**weiYcDx;nkyPS4UY7<5AVI{-H1kF ziPITQXr9nycjLb5S?-NwI5%;NUR!o_ywwxgGVz^N*1MnT$qfv6@EO8XAumYr>F9iR z&!zNr<9W$qXnN}Rp%3>PS@AtZ&ySdi#wh8P;a={z^^zJ48R{z*g_iFAv2q%!Gup}! zN<8}2RUWBN3pZ}PyB4401jE+Ll!8Hw>?7-A;mpm&fgrClQt3Ar$at2AzNTwW+VRB5J z*6C4AaJT9R+jw#zl%rB88g1kjF1HNjYux5>?Ansa5>K-&mkXhpcwX2dikN-UqGz=E zJXOo;#D@&~aqLtzzQia#CZ4r6U!v0vDm^V_uH4D9{*P(d8>52x$wIJi8f;kNhQl_; zzB!PTd_zqqT#S=32$Xzpv*Bp7dN7%mI3M7m6bQ7g?hcaz{S;sl-d$!It>o6VhS zjJgded%z+4OAP^!&O-q%Uzn0|eSC~CtXR9-n9M~j&AwLvSAh5vGk5SX3ggae4$2cN zxqjyT<*YIL2Wc1AU(&3*D`;na*y~PlqJe^bBHON){e$pi^+~68-a{A1DaLlqw4wAW z{n4n&WhGU4f59x*r|cUYTeHZ~U9{2oH+xekUqo-ezCGV&CX-o5X#h))j&F zZjo&>BgV5;rwf2Ld|};TwpDffq5{=EMz7#}o_Epvd^n1jzd`GzjoTyH`24O1sL|jP zfOUI(`;#DQVf$cZ%@^Gnc_yNM8*XE#vDlVsvuw;F5Py;%awd2S7aHy@kt?!r*)jaXU^;tv?6Oa4s+4!%3=_+5kgis|cJ?l;3*Eb@ zUlA^Y)tyt`7vpqAhi;5EPO6OAH}9^O`2*}4t2}x8Y!otkFqTx;;6MB-$W^C=wL-sHWS1>)Z? zI>mSI4}7@!b=`EG?}Ceo{8HD+8#mqSj=Ov4YGn2fp3K%1{Ww2#TzyaI+{G(qqy%zw z6@lFkw#^sRw%`Fu7RvU$z=GJM?xAx8~H|Yg0rCmyBV0%w~@;}L8R9{0erml z>g9~o*uxYIDS1@Y>HR(PYgrp`lM;N?mbJXN|}fk zy773)^>AuCF@bpQw794`ZeEgR6~s6Ep17KSA)?RoI0yz#q<{_J=Y{<^Z>r(R_KU0( z22d#!$gDlI3W?&S*Yh|-GMwYl?zSF89-ffQ$ih5FCWHlTylIS8er3!tdwh^PUaV#s z+#C`V&RIssOpR?L5AZ%YBO%IEn9)6{ zWMJ4=%|Ebzd}P~86A}fzWFeS=v?=is7S(X{2ZHzGp=<&#%B<6~ZI-LAUyQ{KocVNu`&;&dAGf;uW+PY2KQVvZiMsJ zN|V9*LiP+^f|tS}K>qk$q#5+B$wIZ>z#X5F^ou1goNK}6WH!Xslfir2ys5-MkEh4} zAw2@xQauhnlKDi)?Tfs@d0c$e#}bstO1hmD;q+U2sFReb+GJAA$Oj5!0_>^1+b>k{sdVjd^C$K< zhMsL>b{UHJ7iMFNp7$5%)@yX15JgLdcMq^TnP9XGKzgp<5XJVUH!yzbiV~ne~ar>X0hA}WP}4ne3L@0hij(MDgE58MStCJRqeW1V&z(VVTYm2Pn+{%Hyg zv?LhW!xmG=W7KkfD)@!m8dlH3dWqXj;1Km2Ctz@#?KGkhEe~A0uA0cSCigV?=htciIOs@ldD{+pkBWDd@cYo_YGJ?g_5iOIk1=b>7bX=KG4xz4XJ;KLmx+ z8Q!+_Z_Yq#bq(j}CxYDX8IUbH*p1Pzy`egU<(i2qt%tivf&FQI(iIoGEoPC|l7F02 zV`#6$v9mJ9x%t`wSNY`nbxXLNa(n@{4S*)6pyi=@#+M~tr0BnDXBllXA7CUWl%qXC zc_bv@_WDE1L;|!?+t%vC|M|-6U8=ADCgL>zJ0f0TvZgQC4fe_%F;SH7v?6%*4XwHS zwt(~_U9>OLL-h`?fZ|g4RLhac-uRT_|Q~B{c zb6(x=+gw;}kwX1pi6yRdjErl+Gs_zr>zexjuc1MQn~Yt0>PK zdlmRp5oYJhMsDZ7h!rQ!NQLvy8&H}a+4;^Rdu@L=b-XRz_UYkpTkh43eZM)jAM>!+ra7vQ*c9cyd9L2#pk3Hb58s) z3>n`>v!TwDfC!afz*XJBhyF%%uN4j^U1IM&Ii>MZb#|kB$O^FE$&Mxe$32+0rN05p z5hf8XnJ*EkHSrh(<#Cry|52Z4yxBse$?{$0!wMF%j~_v#9EW+;b$pi3ZZlD{6fC;g zKo#f=oJ#Yuf7cRI^K#dI17F8+HU7OmZY9=v?@1Sw;@O=>xAA*(uyS!7jao482MUb5 zF*=tFQi)2+%=3Y;-61(*(QG;@+}QuY-dhI66>Z^y0fGgB26u-*aJR-K5J*CB3l72E zC3tWrI6*^j2@ahE*G7UnG%gJ^F5T1jCfs{p)lALQ)P41)Ud_*>4(Ie)d+mMJ`o3?i zwF$%p^st+4*FNtrl}{&ZUfnLOGk)_Z^qIQf$G|(Nykure@H;iL3yBLw1HX%({5U1Y z2P5z;Xp*LC=Mk?_oV>Nmx?^)oVEN0Y4}alI4*|_jW4ke+nrO708}9@pJmzcDH&g|4 zWOyIz<1mFeg`R+AFt~tJykCEPu%hR=p?vE9oRa*~rXQuAmXURTh@xrX{dVl=itbSN z8W%6mcsSBM4sA7axGLv%^mtx9f74UnXQ+6b@4F3~cv+#URlZlu^V?P6=#QSRx0NV1 zXFo&^Qt=7O0v~NJy7Bl5jWCEnP^jBB>0sgw0+-q2!Ac(lyN>SIX};f}UatI3MPo`P z^V>f3OSOI#|6GmDKp^K5kgI4HZ^R$-sLYYnV?m;Qd52~3)LcEY)bjYWBXGS@tiA=J z&N5*>zU@b*@qUu5N#T@-+umoECXLW}e zjh!hM-)Tsd$yr`tuLz(u2&ojFlC{ja9`Cb&$eBvlF_by*ol1y64qrNJ8uKa0zU*JF#UJ{=obZhwHOrnWBmJg)>)z^71 zL-Dnztv}!d74EqkmJKb0ikSWQj;&1HRn2)%=Z>N@>KFfJa(?WRMZzY75O2U%wi?T4 z96Z$I-3R{CH1)$oso8H7-?-O3onl=O{j}D`d16 zYydpG5nENQ=}V!@%yjel=&tLAA~ydU_hP3uVmm9>u^vz7fse1neX-Tyn zVKvrt(S(y^e)mM}%`lO-DU2GF?V^v@hy5M#)Spsyfv?Mz<>^D2*p>JJp#-#nb8pkO z`AeLCdJ@J6ILLJE2kXsy-z>uH|%OMi#Q$INWSt>&X%Q+$4q}=;jMr|PU0_Q zS!7~HUYpINlFXss8k3LsMi@U&*a>Tf~hhvHam85EoNe{K%}=nSu= zCb7h6{?sxONw-P=0XFfr5G@y1XIM@qiYe*{YekKcFg9H+7FRG%G{Cff2+>#yZt4R` zt<5P!HQyq6+hm01zMs=ils>W*B}TpRJ;ZT6)aSe`tCoai*`J}0#NH>o>zeCi=2o)g z&>gtpXh@zw6v`2>#vE{Ask{3$YVWO%Xvk)91-w$_h4EliWzH?Ff`bXZd-UGh%h~8= zmt_G1c+;BOEtIT*Du9TAKjGpEyKRS<5^rP9Gb-cl6FHPtcbw*ZaFC)8y10`L^K};c zSR$!^-19c$>zNfC;}uR%X|}CS!R&GNy~)BrPx9Y8`xyOV`GC^zd4u^M^J+`vJ$>A> zd-H+7L2Z?d(9mw}QLBj^=ixY6oz_f&XJZu>5_QNJ+5rPt)vrqYN~5iZx^|ZR2)H`9 za|nWd6G)Q6I9Hr&~nSuz2s_M&uSVM zuSwQ(oWs!o6{GDHE;TcY=S6Nu*14p2Os{+?m2XKO>!SW1(D}9KT`b_e{%5NfOwMXc_q8@3Z1i8;- zOHE>o9kW)oIy1q&4sZf)x?jGXi`{V>CR*gqH=N@N*y=o!tf#tM^2N96E<6~&WIhsU zJJbra_#1$0zQPMPN%f#b5HyU*%F|VbD$2^3K<`rOKuMEHrY3FRsf2@d!gHoKby0HS zYM)=?6X3}e$eGT`@wrA?c4Gv+8=!xwRbA;9qk|-ZdQH@LsDx)+o8UzsYE4y#weMFw z)Xgqdnu?`+cKX8LbPOA(;|M9h-3vzCNd5QIRCLySlbX;LZy@90A()YoAy@c@KC$jw zt8G;fC&>VPTGsa|68r%NDTh=NjJ|$W>%ohol5CF?HgSL(@=4mg@cHWp9;qk?R7I8V zX+=iWyqYL&P*b@55FuyPM*o}8XsGA=zs;aNh)Y>{>vq|1wfsFI-evvv3X=S)`zpTq z_IU9x!20dg2fq<}cpMVm>4^dBtKVlk-!-%@_s+DA+Rq9M%82^ z`8TL6GJI`u=#|yD`t{{QzQcG({f~H^C_jXj76X|+5yOJQ{(-IW(5Aza(&aOniD&=j z5>!Q+$B>9YMNvd5G5Pp`y=^NW=aUr`RH}sZQYh}&>mgCaDu^_?V}f1=! zk@ov2UECFCzJC|;?IFoy>EadbhF3_U*j?x2EqA^Q583%4bug_CT=QhM7qQqwX0Fdu z_2A!~6CTpADap;m7I8^M`owc%B1bOm%14Ggk}S!}1fL!cn7f4FJuKk2j_2Xq*8DFy zw9+!zqsKIH#whx>5lLr*1rmcLn8*3eF*5$L~qtX1+LCz;QAoYJ(GfX`QFV^|ZV!=XSLPGR>Gzicmv!r0Ggy#Qk= z<^i8=SlF9>{(ilnA8iJ+qIp*#6@}l9^oy+1!qdMtoR3Yd{8)l;gemN?&2P>BlItQ+ zffh@HN{Rd?{@3y$Ea86QBrgf4sQfQeh(ba#rQvZ^Y=4P`2HS5HRN7)vjw7p|=pZBC zcHh`GO+4No)wOe z%Z>kYxW2TP!tgj*enCwMPZE!M|ZNEZ~vw+Hq+I)x5Cs`U7xZ-JI%9F;CAj2#I7O4Oz#+l z+@5WKlesqYk_TPfn~#~Q#EJnO>SRBHpn+ZXAl2Ct=)^|A_`+jcAF1Hc23 zRJ%cZ9(gYMxW*1MX)zQY(2m;)*BSo!68puQ8qsW}5h_RJ}2T7H1*$A_v!|Nuh2+Gb( zf!YiHuLtG{=A*Zuli_{=Fy&NQX9T3yH9+RgsYq9D9=30eO5T0FP%F;>*aY4O?;Q@g zp%N+4W+89v9F-JrSu@JeMfy5^*nH+YcttvGvlMGi8^nbaAq8;{tfDNr^UD( zP*$X!lixa{$sVF%VSxcOjfDch8Od0$7*YsDD7Kefk~F=(}A#lE%H2Yi?$Of#GuvTS;A){`QKW!?g)I(|woO+xa%Is1- z{GNbtbEMiW0BREaz@&JTB*x@N_^10|dl%pJ`iPd*-WeUe&MCRq-Iz_1gBIv1z*;(X zV_=Re{Ep}3JpLw=CBTDR{ZaP?xDR*f=k5!7ss7AeM`&JYIP@sgQHLB<^!0k#ZQq~R zie@IR{n2zxYX~AJR_`-Xd~*s@+ImJg*n%jPKLdty*EV2E1UO5i)6C`X(b%T657}GY zXN=np;mX;Ftg69$92TBxT~+7YBe-$?gr-h|mv-?XA{%|ab#qGs^w-b8=u)OjEejsw z66nY2zPIDqZ;Aa+#4ndFw5hGf(iYTg+6e>Q{xlMKcl++YiMj}V3HwjfMY+ct&0NTC zNRkSwRCSZaR-b0yD&)o(p>TLvV)iC#T}0!`(mP6NjoNLNAulMXLSj(Xu|HS{HvIk4 zzdwmP+2@7cIBQFSu9@*ROq ztXo;;X2c#czAk}iC(MN6nTB(&*}7;x_or+Iu3zx!Ra4ZbI6DTsT=3!1 z8uiNpu4MI5+eb&f%K6zZUAW_WwcAj!7rdy1G;+C|757Ov+Dg?7w)gT#Lo|`a(K{i% zQ<(tm4exe42mm2dbO;`~dxHLWKQ3aSklFG)tdj7T%=%l*LRcYcgDdtw7 zaAY4$BI?9dO9n_D#h^714)3F(?Do~zs&D6~1zy9l-PYu@8;zys8oD%9 zsbQ?RPj5mUlig=G@|P*`k-arPYq>lDE#Emxa_RPf_c=E(UY2F`*8$ zC%_6}rt}$2HE?&KsB64D`x8S<<$sggaqG33l}B;A7a!Ex2v_dZc^6^rfhM?Sxq-ofMX=;Jj{o(Np})zL{-Vo;F)87STV!^~=tg4*t-!5Fz1TI4Lgv!7Ia@!GY>#X#FlyqCW!%1FP-}kB0yr;I-AW7ReF3&) z2dXW)8M^K^3z3SjD3jVK#oNNWH6wn0zI6nTCiWmG`3!R_R6OPkfTJXvV7*>^J0*#Ump3%R=VN|@j$47vxu8twh`08J71&1R0Tdr4o zcQdn)3rOQChPGe-ii2Oad`Hz5Y{k9cs~Z~E@+}MO%o+veBcEP}TTY*m0o{n`=!z#hEiLOfqzJ(Y>FLr&IduYGuCFt|#V(jZ zNdiovkHP%*3LX8W!+8RsfV&Skij>nCqlT?xEwcK&?7Lp&l4QNn8Vm@b7^A3#gO|R} z9aHsFc)|c7V0A0*K--<^-1G3Se6mH7`3sgc&O79f61_N z8mcw23)JNkcrzL6vG+At!DRsS6eGRb97E&|M%x^Kco z*R|8Tj@;+88>-QB&m7uTiEk*L4%p8Urc z!EE7tbgrc{PGf_Kun;8r*d1p}u8Zd}$iCwnW4+k$1}rP;nM_fnv0^cFqUD|$zN9gy z^gEV6ZF#0#Qsu2_4^PNE#vgT9dnbMG?#C=}vrD0GMNm2IH`6Xg_DOxRira5X>;6HJ zP<{W=@@SL$#sciJ4q5_L+& z7jyqrj+I9YL8nU*GnLHh#e)~#k?x{7Ay|m8%STB$pZI`Rq&TfBJ1J)qyem%`JXAs5jzb zt*FV0+xmb~GQbx!BS+>SaSg3T#c(3S6g&gBAEe^Yi9+#TYh?-3>#Z0pP^4~{7h4S$#?Hw3xqgQR-t1|@D?>G+n2IIue*-72{j-gCBG-kUbA^}K(Gg$r3F#Q$oyuxX-6naN62By~WOx&|j_ zv^foUX*hZ?kbJdXf9Y*=)ux)q9SQf{#5mepar1v>aN84&4Hs8la8>)F!lcPRQGt7j zEs=}5f#%#t6LC78jC;J|PXjKcnrxsK&r}Rhdvt=`3cGLDy`2PI4R`miv z)AkpBW$isJW>>1^l!;*C&^MBqts#dNuJ6XZZVJG!-BLVlyS0sE}7Uc%%(GZ|X9c zS!xvMS)2*y^O5)WIfIN|a9us^ALfXj{bVtu^ZiXtOyizh>90pg8l)$Sr5v2VOp^}+ z(B6*T$!gW&3Dm}{tovYPKYnkvPs1{LM+>P&+pu6)+;UmG5}kHywtWBzM*8XK>YHH@ z;IoGB_xJV6B1x|bM>~W+RI?VP9ghf=HgFIPF>z$@#PJw&GBFNhPT3AP z%x0Ik7f5A$7aFbI7jHt|3+DJz_GdO3n-3?|5$f}v6B$uAH4aW<);;-}TpQW~eK{2W zx@iH^&G3R3ezo$LI4u;9S*OG4IgLNRfAUJ;pR8>@zosVAvo~flhsSJ^I?sf}5b0II zE1Q!i4pg0yxjCmhjf%`KP8qu2(nUuR`n7#c!7ZuU+(VzF_j_|Ln?*%P%jZb#_G^2 z-gVQ$aZH%y<@CpGr^z7yNQ*;|jTOz0&*%WNEvzQzwXZk)&qIl#iR(YSct!~q8x?Py z7*T(onh7Pwy>npvr0~MJMG@t6eT8>7+VmG~UdM$)C#+IM)i;bTFJ-L4k*3w&K0c8) zVllh!mQm1XJ~wkD+7s|gA4?+vAukmE@v>L^#@BKasdoCTbBjK%qR9c8a8qfcA@qv` zi{yCyg*H#EHyv5+*4fQD)0v&l4}5@VYI-j`f{W!o-WKE=rtlOR$)(>tF@;G#ayxl) z_B=1@`ODMI9}CyOcr6rX;%fFmsBvKAO56}VtwJfy(vSE{KxXd9vgK?x+ue4nE!m8y z`Ia`ck=x;$-EAbTjGED?hn-DrS%v?tlU`}L_f1B;@QwENNrbUvA27Eg3=5*C#+xSF zvE}R9ok8M)F-OV2%Hrn-?=lFmK|05(D{H%4zRMpka%VvOz3W2+G$^?fJS5js*yG2ytMaIz zCr3xaWMvDj4;HFY3g}(E1X?Z+vvDX(t0kxIYY`|~&+n5TRf)w|g|~OjmO(QBG`#!# zCeZgY(5yx)HfuU(e>A zQGU7J_2l*1*rDcMy#h!Moa_fwxb~A7`1X^f#wCoeM;HV^aD~LZU>QWcgH{lY>MfWC z`|=vc=)z)3Fml}e1|MY`OiJ)jy(0~n)4H})@FH$Cc!lOCYHI8oH|#)4Kh-c4i)v^f z1@>4R4dC?mmgOG~q(L9+7k9-3O=js^wxj_@+nK83qN321c8z#IUX4vn>kSdy!Qc0t zhZ;Lk-tb2H(vKQzz>)v^M~5DB@dS+=2$B5E-8x$uB~%RNF$a6sIoek6cKLcTzGc6I z(H_*1ev8(ys0@&r{lr*$3g!wJ3bfjG`u!^2`J8TdNyXp~>G6GNsycMhA52hJUq3KB z%t#(f@F_*JMKAM(C(0krCbfFLLZ06DY%TYT|F@G!(h+?DrqgAP65tstZt8(bmlpcu zs1rw{e9( zspDZ9_SiRzf`+4e!T^4#vJus#KsDTvAQ5HHSq9``4oM-&Qsv#g7HdA;CDZQ=GP6?; zxErI&UM@hJajnk$MFGNIhjJ(1^->9+f}tXv8T&nd1ZMAC5%+Zu{zc=o_0-dKYZ}r@ z7&&&_4{d3j`WEY1vHUtgy&O$Ie=H=N#pU*x(AMp5O<*P>!PH?5-1dIyh#&fac`d`G7G(!1>kaiV5$A6Fw zH~7vP@KtFct`DNcK=i6hv2S?b(dG@qq#jv}co_n!z78U_n)=1b(IW(Nre~^z{~|-G z5K6e+S=#TN6poZ%nru+r_{ldBf;w>_%;hYyR)UA8crege*k83MJ0bX_f^q9&_WTfT z?DF67T?m9l_HEfSglg`A`!MHoe$$QdK$En6dbBf3+f!SqVy*uyDKSx+pM1%j$n76& z1Nj%ie{d>E2o~#kY5}?IAM+?Dc}NpAeTY*i>^7}^xxpt@(TXBF7e28GP%IojHzDVK zV7T7C_#R*ZRhYqET$INs|Bl?c*!#0({ej*nny(ZWbfhd2(yAmHBSNpf>iD-pkBh={ z{UxOS1^a_oR(U?NKQ8yLTnS-*-v1;O9^T~txn}bw@Zv~pw5oL!ezm{oTY8z4VLsst zi7g>`T=exf5pmCjt0Ag|yQjP64~xM4z1B1fX}1@EpTWWO_(;-G4N@4p8E4BwjC>hJ zkdE!kK2;@L8zIcKb3bt}@n0R6exU7aS1XuT9>@>TL-g&-fA{Zs`ya#i2>#ttRLcWWC82x%utk^A zqN1McPL>BRE@pQHF#n@>RBjIiMV5|EOA6Bc?L;ZG&Ow|x>QK9@&&t?8a( zN5B4_9LkQ4OG9l`&T>#piO{iHioXvz8$H(|JHbSKU~n0!;{NA3g51IH!{p(h|b8!E|3qaow;d%q{+7MQouscRoP4l{s5Je@3Xp>BT< z0a1mB6P>(*^yI{y!DJ3;#x~vfmfgSU7`keg>L*8-6lm+Xt?be?DU4P zfL@`%VO>RcMM0uM&h_5-&b+nj+s6whAJW9(k3qu*!}EvV8^Xz+U66LqUbg4qc3R_Y$7$nyM*6TwrkMjBS zXI9I}U2c)5R@dkpF7((qz23%G;OWSV1{O1OqO?iJ?iK@&sh${)W!JrpcU(SEig`Xc z#T1?sV`#f`Ezh2LmTo6_y57fbk1Y+*|8)qQ!p6olo5>QS<6l@@uXS|1GTG<%e?K0R zrj|#2gG>l%cH$5lh<^`ejC%SY#2dtFT{O8P2SeZD9Xqaby)qyiF>hF z-Y{*IuLhU8ofn@lbMltjxGAWC5j0a%i5N)VbWSF?ntl5WPG_|0zEqYseH9VfmLQN^X&9ItISS* zwN|NZ`iH*aH_rjFIJRWN>|MQ%6$8z6HIy_q?a~^vhg#<7rmA6Sis}3bjL|=}?-`o> z-{ZCXuHBh|4@hv?mF`VNc%26GEb=q9f_^EJ6LvIj<#i5&XYG#QkUpKcH1o^4mq})l z-RX{`i1`e8rvUXzmfYFVY!QkUj~|cdJ*+U?FQg)I@2vGwXXbU=UtWzMTg211CkE+jwWc zAg^T1izu4M$(L;Tv>k9G`wdNdtixB`2bXkk){`iC&D!qoA%s3Fkek|X@7$BcrWu!$ zl`U{hQ78&M+O%=(a4Sm5UE*u?NLEw0$^9*;%!?U1!q4wfNhVnDfBv?Sra?)`RfBIW zpc*wLEtOzbPsktiH6fp3v)B+GCqFmIm!rzu27A*p1h^sw8oXW*Xx&)#cXx9e?N+0? zmv->EWDbxpV>qYS;xp^ItMZrYr}AQI3Roi#-~9X#GVQrFACtXbY<9MKhv6TEyo2+> zQ!sI|GJ!vcHs>yiPW2n9)M#9o-*$ByrcGh70H!pKx3?j*AbHAeWgKaf%&|5gv_DZn z^YI*b6Y;YT``qD|YRksX%};S6^BHbKfj_gj2zZC+x^(lM!~b6W&fCaPyUA6k)iYW; zVdS`0R#Z_v)P2}*C%wI)H8bsk_(N0m`nlE0dlkg69~v;X-2v?c3T~p!&9WH4mZXygh<=Q!A|5|@85WFmuk!U*S5q(=-B>rrP+Lg&F|^y++Qy*MZ*|` z*MHl89&)AFI$e~8pn~IDvM4ZOt$&c>ffN+L{FN-@R*9)CTFy;>M0gj43u#$Dj(Q z^IY-we8Mi?fY8rvWF8;y4bNo<9)Xh$|Ehl&ckRJSy0w#3524imUQuzkn)!yd)u^Pd z`$M2Q%FFUhD(@dA(EKZ|N0?woDRwY!^w_Y0?u_vRZdfue%>-nN9L5$5mv_ya3(x zX$st3sQ}E@Iw|_^gfr{w&M`Z$V|VRdJ~mgor(C%O3!8Rl!0Q*TP7VZr zSqD~K-^?^u+^$i8llN)XsvH45apqFXsK%=RM{4&N;}S-(Ex^dZ2vumJOnArb687kV z{{0tQ)tsxO+v{{+t1(jQn|q}m^sD(C?a2io+23`H%XFUKB@Sm4%be?QC*z}Oi-)&E zbQ^ma-17LtBx@fjy%lg2q#!`Io2d((i>AQ*NbAa&+y|!8yz<*ps`H2Cd9Qy0oOCC1 z)qPvz9;p6vj1)Ch*0-bF=%9jQTXOZ=1jflCnCB!nNW^)o(-`pwL2y=@Or76EX9}#W z>|ZLk-|My2O?I~ekLy{|CWvJkR*L;jLl_43^h7F~h44RI9I^R7n}JWdW5@Q|EMAdM z242!r=*ebkiI3)y82%{jRkw73_vrw?g@CKPhjo2lprAoo4CshHva>vB0Y+4o-z&Rf zJT{Nd9Nft!jLj>=_FH+eD9R*FI#8lGz8hN~lEk*?q~fTTgfw0dfbJGps?`AM@mv2k zZVqvM5XVO-k|de{*CPR60(`b7IDoSaoB#g!gX3cwYlg5 z(qX>J`V)!fFvW=A;ISWpBG)D0>9n@qJ~Kd+x-)! z6bXK83p?#XQE+l2&RgvGTpDo6TFtTaQllZVlaOX+qh@DedrGNw22w&+-3vJdjxZ5 zq|W#=D{f3(r?_e%A&XDK<0yORmXT%ljA4?-{!VO&l=E(Z%T;(p73A zh~uKIkvBvplUkXh2?Mz3>G-dO9iGcl>-MfUGJeNeet+)XMVgCdV#ef}_T3|Hg_X1q zY?6UDUF&@!o@S3d(EozAi8f^VM(;xtr`7Z{5y#4fjRXAmvnO%2w}N(tKWUDxkwA`z zJKt)fG^@q?;qQp43w9XK_epA;rqt-kyuq79N#h2J{^ts5!?WF|L}J%>hcuQ~&N*~J z39VtkRbN2H&$z4QoIZ+gI%06LX-!V^k(GNap?LP$KuTp7cF^4wdIQUZ64pjHp}Sos zTroff)ARnm1s!$7WJ61fL$}=+-A!Rv3N6iwihGOkXE+PQLRS`LAVKzypK9;^AI}hv zGyA$8mbauRE4%F;`HbpXRpM;S(fjbbcFV_`8) z$Gh3L8CYaA@d@`hHil1Bp|`Cl27r-qGPAj6Y}is?0<_C_e?p1m4t-qobeGF-{n zM$<(I7^W<8gyPs3cy)P!VdjU(TNUkzYYdatU;RQh?dkBoc-@I$E2ICS3^zIvIoc76 zF+$yaEH&GhVFkG*j<2#V4)|%DVJMLitrE}l5vMHUnv~0apO%rc zb{2STd-yRg{x$!F?4rl=d$h~`!#fwIEFEYct*K&)u=~l4{!UYb-A+q-J)nN62xc%NO4dBk@-448CxbX_d z5_W`H5_iWfJ9!}ygJXIR59ji~cMY_TfLPh ze=1=AjArd^zy`%iQDm!XK3e(MNx9TNf&aO(8c?+ z$R`D2#5~oa5xF+6em8oIB`TE`!C&7z^Jv^?(yX=|={4kU?7=M5eWr6&n?IcBkRO#G9e5sq$H^88ycG&rwNTE3ckpHPu^=Fn`EeP)bnn zP^LknaYhoSWWI`rEUz+5}O9d z9q%U72sjrt4lIg$jAwo}>-bnv$GA%amvj4iP$APa1N$>?WW3+k;HWB%u?8OrpuZOi zme66)u)-ie27PM6&4}`I5O*lFYqE$cuh`! zjMh?0bNWZ5)cY+%Raa_q=1a6h36wM2WY)Rg^u*<0vPz_>EDvUG?niny>hbMHv6Jdi zqV%4Ayo_C&${X=^g`MZ#M5AGUu{fd3^>$|v+t0GuS4ygI+`)g0I~( zWyX^QlhFOQ05jdK*R2=IlhKxs6d)QUG^qe2ytjd&mxQ)~f!Tct1E0$!d*!=C`&^%a zf$r{?i>@?32A+PwB`B68DR~|uiD+L=CWVeSJ(EN#5ckIW4Z+iW zojN}vT{Fdr7ZRb?l0;oMNqIyJbIoCzLuvJFjs*8mv1;Yn*D9vJNfovgK0%Cr7JScQ zqXq=E)2f}fS{y`TzduWHnGo}+br|3!u!#`kv3YhzCJ(>kpg++Qe4#(MXMY`YrGD)ba3~+S8LhJi|t-fbuFnb zD3~YY%FBpvC{K6Pw(UZf-_D}<9_sC8L%y*r6#B7JQ~Xwj2{1goRke@xY1&~E=Br&p zo7fdXfF27nmHs+I9&112LkMijym?{ z#=xD#xT9cwq!!8KFnZDdwpxc85Nm;ol!&NqT)N?QTkkP&9(dde^wvbKQ_Sw#S)6NM z#+#_I7F211SdI=}jPhV_CTA=HZFyam!~?E#X!u;M?(jCmABkE+guxUMB#mRgvkwfo z-pbjWEawY$G>5ha-J|T76IH_?P1olI^P`D`5qR;QlqH>otfghSy;ZT3SXh^F{TME+ z9K(;+@dPKlRt-{>=$PbvMcHb!s##)JtE(^F7$IN*MmB`5Ab%gz}fk*{=5YE?TFaAJJP0sI|FZ|AhzH{hPZLiny z*ZFvCv`2Y}F6-19Kcbq};&HV>&oB#jp0uzqXO6bkKNnRWUHaK;`-DxmIko2%ez?CE zL0(SU+_g6D0A6s=`}dxs`&qs7fGR5s2PDGL{ax%oWngZ4?IFlJd@2b%sX#calnkz= zP3tPG(M!a=pQ`t(BuxBvq0%lgLMkOnS)-L&Cf$6yqV)53J~dLgvgTtghYlZprVKj7 zJ``K=cVLO=*Nrde=WwZG$oZ)?+hEL^Y4_p44`W@DVBdIscTf)j+xGsrgtn*~|IGj8 zMt~LAn;yuYyhWJZL!TNAQ})F0E4zc8fuN+Ad!bh< z3oPJQ3=+f>g*x)rz;#6D}3_vC9DmKe8b zBfT{F(4e~s4&JZD#cVi=k-)ASLGq+A-s&W-k%e2Igee6>(j=o91zx36D^QG3wJe_U zIEmq(Jt#~jm3J~h#%n>}Q!T0PUY8-jF8Bzq`-a=%blKr(t0b*zbluGdn_R}mGPK4U z)iwPcjb|T^Ij@sWpedI2SmI(&J6Uu~5nSgqx$X1)hfQf*Cv5%9R+-(PgJs!W^P)T5UyHZ$;`?H-LiRSV!e3}m=hZ32I@}Sq6IgFjBy3|=>p|*X`UIVQ~ zL6tAvB(fbD3w@|am#MR4B|;OFBs(H5=-`jrl+>qq4xAV4n@*3raCuz7h{kpBNzB;Q z$ZlRGb-=qP)Dx}#0t-pSDJ7b1g(q4PgmWBA>ITFM=8x_%Uqf8eG`V zD7u;_ROv&1S7r3v6tXdAs_7Ml#Kqy6=8!xecWyp{3k&RPzfP9SP9%&{ikC9oCfKqA zT(~+}BY7j@r2#Dut%wBlDa{v*kxA(^4Aze^%E}y=lyRO;RW=~$iYUU)DZs_a6qx;F z5}}~>>i3R#G)0qq`JO z>HJZz>5DuNWDP7+x0+_vpjXy5gukzZZ}M$4CfwOH;2 z8iJ2N^~Gk-=W&}|ZA4H9$UOui+swZGa>)mNZ1tS-4o`;G9y#x3xl(mh_)Jjo@EH|K_Tn*F5VtaKi~4h#$8y0z zH5OR5f_-c>l2JzEl^llc!7su#c5)WZ@9maH(+n-Jchb}p&(S;@h$q^((M*Encwbs- zS#7(_HYR_|^k4-<=@p=+Jgc&V#-X)d4zXm~nfJx%B}tEedBT#2@yWt6nHVW)(aLRKdV;)FUEG&y8qdI0E9@BB{JS$kdgkuS_rr zF;%22BY5U+HkhC(-t33P_3lT_uY_6VJwF& z$EIuEfwIFRxrqT#82I9O?!B$(y=xsQZ*iyt%i+)HKg;PjQkL(CUW=rfJL?bWc``xD zZ$Zy=Tco`!TeUGA|H@297iWAr$8J_f{p31tYXkCJaYKCmfQ6uOChUw3y8jt5_ z&tQAJ>9<8la?}(UMC(Z}v~=2(EmV`DNlbVcF}LmX%IT` ziE=6?CMdX;X2ZDi%$bu65LDNWZJJ0*=529C6Uat$y9kIGoA zWsOhygH}iHKA*8S6sQ|5IG$u}KJ@Jsqc3)`l|v|PISYz!X|35g8hPuH@8d8F@HD3d ztYSu|`Ag2k&k(j(==Abud+A+Ao31+VS`v!)DF%kc=0gFoNw6+f2cv-kR4ko#H->?` zUtNoDR0@mKjZMXf>)x*+r*SMO(X-?wi&WCv|Dbiamvg*n)Px@JiG78PC&&9aurlyo z`qBS7c70iv)sZSdC8BzlwbovG@Zt$Zoj0ho*A<~frZCd$kp=2^MXSv3P77s`;ypVD z6XsD2rkvtD&ok`et0x~g%8m6vbSFo*>S$Nbm0wpT#Q{ z7ET?swWgJ=YKt2CGqs?a~o1|22Ft`$@{AWbzgb70GF=0b+RJ9(DTVblfOIu$Q zI#hkAobeZD6pcn)Fb^7_6ib{6q$kO3m>QK#%tg7L$-@?3viJjb7RPjW{Bg&mq7>nB zv3&J8ljsa%8D>nLH#g5eRnxdhMyeK%zED~{Xy*{DsA-+ z{Xy6C-$z{kMH?&sFCYfG)jW~VUosLjG&K>%_o;ib{ar&ht;inJqSDfTm}NHr^cCkH zmHn=+^=l8M=Q(mGUfEk)mIR-=*_I$=L{d#nO?gKIf33Y+;r@+pmhX8`BlIuzoAh@3 zomCA2;(ky)iTeJR1xB9`K0uqQrzfiBiRlwDIQUWw0b&1nozfht2gVViB zP(XAWwXSS7e{aC4gF{B9_i$e`xSCIAfs(-d>FVNTTnVFBG*V3 zOXx@Xl$=|9htCFeE0U8@w@$O+$DAhOYNXLrTcb)!;<=2(zU7*6y#ogO9Qchj#V$xM zIzT3`$7}ude@(yQsIn`WDf;s44JiDY{e3@UxJ6FPuOyC}Ypg{+_V}z$fsE)VTn&9c zbU=%}q$_$XSj_m~6|C&`*B_PSF8ApABl6&E9#yi`uHd=Y&{wI$x)a0ApXPGDSob~O z;+%a&fH4ul<844EefuHz_IzV_sX5iq{S|*xFD9=GTNUYWv#0UErp9f8d(mt5mW=d3 zX9(Rt(9$aJI7QeoC6>@M{?@taS=fy8+LvjJece;AqnF43QQC6{HSu)|f`HNylnwzT z0!lZbh9F3lB1mu2I|2y_y$Dj2-ircC5v7U((xrETgx&(7geFMu@PWSHyf^daoB7_n z{paj0bN1}LvwP}2=O=gN=n#5pP(>i%c#<^ge!Scp{$`7??DQJlnk#JAcGnDLiZuYGQgiZA+~Vr^ZzqOKNzE?@ z&&8O!Ix7+K$0<8WrR2Eb(#`2jTgXV%^#I@KS4@uK?@nIz3$b>1k%bwr38uiduqqpM zI|x?KSv^`>TIRXt#tN%Ftr`6W*u@r?>}~0eC;2Z*lvmPttL-0N><5ev_;)>P*m~bw zRTsqZhwARMT~lHVSA1%)n!e~RoQCCNaR zIc->s+(mcwqjK1DqC#uD5k+Y&W|w?ku7~Bc<=eJprV$Nhm-b+K=bocc?I1SYqfY3I zRrhvog4pjCbJC1ED9iEo*vP4C?xezY#ieb((mxbCDEK zclZNFGiX@xI#1PMe3iWfuRq%?% zS&9uAD*hgjYh0`tHC?1)~Bk*G&pcJ>P^g6Rn7Vbwijhj7Fh~eiPg#jG_X9prqs+C_{&N(iNOx?&kx$dw0 z+2%an$9BWVxccqI(dO3AIAY($=G%fp^ zJr3{l@21Rp#>`PUvV6+fW5OJA@9lX=o&J^s@`O;3a8OfpzfB-_`fU8fZ(Lttx0Cxy z7xDzu-c%I&jHIa5>$P$$x-(u}YrnC~&idd3YBng*iU>+v!K7FA{&VJtXS|XEVDT(; z;Nv|OC9Qf3ZX@(@EV|}RdnE$<)8d$nMc!TkkIR0%I(>KzImnzJXQV5O@N^ya`S!o< zv8M_9s$5P5b1P;7xbbcUL*a4;uQ@@;c97Oh%&C`Z`CihisjVsX)$P~SrwNwdeKi?n z$ND2Lyy8yyBu{!QIS<&HewO=lHlFoKEIHc+pZd0&LEdKM)4|Uk%DwCpN#4l-R(&nu z<|-@-KREqm2N5eu>exu{nm4LZ?=&;Tp#y@(vdw+x`OcPYe*ERU@MkkN8q<;#D{^VV z4XGqll@F}p--H-4Kk=w3a>j}CXxfA>L7Dz%)5Jn`+x#9SvUhQ&*v4 zYFz{e#0t?pUbv$(P|A_AIxig>JklM|Q$2QNIR#I-a$d>Tmp+lFdV0uf#6I+KQr;A+ z%I-TVl^~$qMET1HyB31+76_`Qr-Kj zBUc%$M^_&X)p@N0qCA{wDOpjeTM6{WnjObc54i%%yhI8|Ku-nXH?{MhWWOj1HBk#w z&6W#a(iU>!Naz>OifHLkb~5SDzg2U1!jEb1HS5Ju?o2HEyU5H817#QINe@>@`+Pc* zxmG=$5%F^gq+L@L2`i2I9qn9Ht@Q3I_aH}K8pxC+pO5GB`olJbFZI}+62~xC^HR{v z;V)m-l1PF9t*ei!jeF$jkLxLW)()G586YGTk-?MiHndsaYa+2q(DQ;I-_wMgqp_sC zg{-%nfAipYD~hd2W&@(|6M#>T2h9ppD!;n-U#qmeZ|SBzN+0T`&5(S9YOoGV-4K8= z8yi9_Q}L6{!&~J##X_fn>2~WXH-o2WUZW4{sNWal#*)+?Ftt#R^v$PWj)X*z?c#7c zmTzp1Bn?OpMyB+dktj{gXWtJfnn)%DMn4VFq5n-!+X z{RS!?i`kI5M0r3wIwMFL`PJ&k7txAdepoZ=FYBvoPk9rK$6=Lpz@t*q-Oc`;;`8;bXkJI8_7<3$xtJRmaK~p;DK2hs%R8h z1~bHz&80qevA;@GoMhnc&)&U523zjEts z!TpjLhW`?OJ62h!pmIeQ&$yFidbB6wzm@t%U@AAV#R)muBC~`O;elll*HPz5ea--R zm9*_I0kbcF2keq#O=!%y1bURscGOKYY^n%P;!$(5LV7|Ou+7263BtavS`G`KtNDP3 zcSA;5UiR6DcJBlOknF=VV^6*+Q|a{h-q?!9#&??#5YwwY8ac^i~V;8U9dBCi#8Rgy00wOLmoYrB9}!2Dh?{WLBMCo0Lt^x6;4x?8OhOH zgn$T&d*iq@#wdk@aS%I6LI|{uQ{7OZeP)f(DmIRFz&rI=auxj5d>*lCgbk5}3bO)> zu?ui$Sd{Y+kifmx+9SGMsVBdPsyP(Ixc_!riF;awfW#sZ(ZjCPZtozD{VY0KK~0%Z zbUIB2xu~t*Y+aqSQ)~ZJr~$nnW;%V4xfu?t{(D+TJsl~Jr7PE`l#0r zO$1WZEiTJ^e8s51V77vaxrsq7-mxs?b{NsHS4JA_R&VyLm$UEN^g41onf6AG*V4P0 z^2CLz*!0SXX}Y*LtlZ2)uL#+Zf4b>nVDS8Mp0Ehy|-!DAMy$ zzlXQl@v<6qr=m&HA_H zvLI@6+&)K}mrlCWCSCe1!{ay=h5U}Q)Spwp6Tj_}QS`P+R(y4w_BOoP-Bn_Q%0K2f zUffjvC^um=Nz%10m9?cifwiY?z1E!HS2RARaMXDt(YAx6Spmea-}_Uv>tkM9cohP2 z`sHgbg#H0KkZ^*L@zBuqt=xt zCdlEfdV*&@7;^*4u^M-2py(dB)B2Py1s$-GQ{-H1J15ZCub0Kot)=(aQdj|c0%>v& zc^$`j&)-I}Homy`q7Pi{qYj<`6+Kr)0|tkb7|u?XXq<|HPQ?pNrDxKVH1F33OI=4j z2q^rxy-j<=W@-c3q`n4KPQ$!@%Peir&R9gyM$bvuQ?H@QtFfVDP+3`*CV`dI>i=#+C0G>WL%C1!ncb}6@RA6(!%{@CK1jS zK3@FN>XAehw-+m6_nQq#$z_T7(X=77c~sGD+G=`1Q_uFc4sn&aP6#KoHn z{v+h{pNCN)A`;asR2uyhsdudgb7xN829ngzAW5@o;AC`O_V6L6=YAgC^N>>m{xv^~ zU?z)t0o=$Wq*a_ir7M!#&iT#YiF6iLBxMg`$0dIpyY_w05>2n0EceX=$OIbE_C5c2 zbXcoG@iQ{5Yq?OS$=cHUGA>oR<_ogZ ze##*4ID&=-#$%adM~lNp9>UV39YKzaI}C!~fd=@5)%DBTL#-39V4sZZ!XG}gU$AB~ zkzicdwQUzM+>5eWV(Agwt>WcQ*nxmD z9os*C`8B*(R|o0tW89f`tBW%zeZ*Zp3QFf}5U_FiW}($FGs<*F+8N+$a` z8;ch1Xl#5qUtp>DV=x*t5Fm+x75pj`v4x#iCulebk&}~O+A))p=lu<{TK`9wkh+*J zupG&e^nC{}*195O7@z(z>8z|LrlcUX zMkTd$PbnCh04%jna}-3beqBfgZ_;0q2qB~gpV}JeD+jCQkaSp;*)xGZIxQR_9GJXY zIa2P+LU~%Aeu0^pUIURU;L}5X8^l@g-ZkaC6(PCYY)rHfSUA6ANC!x-l#@)PPGbnV z{u<`gA%$9P6ls*$KA882=&P;TTA5#}GMmJ^yadVd8EM{bkKX#V7-pxjU%5DLTpxqd z)7HSh9Q={hd-_fMY8qbu@CR_VqBI`)RU^=BERg8xhW*vw4(LsM#y)%9uJ}2 zAE-q#@CW8nWnUr0QvyH;uP*A%0!I(}Eqdu5I7pSzq*Ac5(ga4b4A90pue^&4ZgG0LW`lN}m zaotM2t>$0i10lf_fWIpT`A>J?AF}`L7W!WUQE`YRzkEP(MZ5B2b@`G<&tLuvk}q_Y literal 0 HcmV?d00001 diff --git a/manifest.toml b/manifest.toml index d8034b8..9f1ecb3 100644 --- a/manifest.toml +++ b/manifest.toml @@ -12,14 +12,13 @@ version = "1.0~ynh1" maintainers = ["leonarf"] [upstream] -license = "AGPL-3.0-or-later" +license = "GPL-3.0-or-later" code = "https://github.com/leonarf/FastAPI_ynh" [integration] yunohost = ">= 11.2.5" -# FIXME: can be replaced by a list of supported archs using the dpkg --print-architecture nomenclature (amd64/i386/armhf/arm64), for example: ["amd64", "i386"] architectures = "all" -multi_instance = false +multi_instance = true ldap = "not_relevant" sso = "not_relevant" disk = "50M"