From cb0a809b16baaf8e6cb95cb3a12082749a413787 Mon Sep 17 00:00:00 2001
From: qier222
Date: Sun, 5 Mar 2023 19:03:52 +0800
Subject: [PATCH] feat: updates
---
LICENSE | 674 +++++++++++++++++-
README.md | 74 ++
package.json | 1 -
packages/desktop/.electron-builder.config.js | 12 +-
packages/desktop/build/icons/1024x1024.png | Bin 535997 -> 14136 bytes
packages/desktop/build/icons/128x128.png | Bin 6564 -> 14136 bytes
packages/desktop/build/icons/16x16.png | Bin 474 -> 14136 bytes
packages/desktop/build/icons/24x24.png | Bin 750 -> 14136 bytes
packages/desktop/build/icons/256x256.png | Bin 22892 -> 14136 bytes
packages/desktop/build/icons/32x32.png | Bin 965 -> 14136 bytes
packages/desktop/build/icons/48x48.png | Bin 1631 -> 14136 bytes
packages/desktop/build/icons/512x512.png | Bin 107173 -> 14136 bytes
packages/desktop/build/icons/64x64.png | Bin 2282 -> 14136 bytes
packages/desktop/build/icons/icon.icns | Bin 809011 -> 375301 bytes
packages/desktop/build/icons/icon.ico | Bin 361102 -> 40611 bytes
packages/desktop/build/icons/icon.png | Bin 282449 -> 14136 bytes
.../main/appServer/routes/r3play/audio.ts | 4 +-
packages/desktop/main/cache.ts | 287 ++++----
packages/desktop/main/db.ts | 243 +++++++
packages/desktop/main/index.ts | 2 -
packages/desktop/main/ipcMain.ts | 4 +-
packages/desktop/main/prisma.ts | 102 ---
packages/desktop/migrations/init.sql | 65 +-
packages/desktop/package.json | 18 +-
packages/desktop/prisma/schema.prisma | 86 ---
packages/desktop/scripts/build.main.ts | 1 +
packages/desktop/scripts/build.sqlite3.ts | 163 +++++
packages/desktop/scripts/copySQLite3.js | 63 ++
pnpm-lock.yaml | 200 ++++--
29 files changed, 1550 insertions(+), 449 deletions(-)
create mode 100644 README.md
create mode 100644 packages/desktop/main/db.ts
delete mode 100644 packages/desktop/main/prisma.ts
delete mode 100644 packages/desktop/prisma/schema.prisma
create mode 100644 packages/desktop/scripts/build.sqlite3.ts
create mode 100644 packages/desktop/scripts/copySQLite3.js
diff --git a/LICENSE b/LICENSE
index b6a55a6..162676c 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,21 +1,661 @@
-MIT License
+ GNU AFFERO GENERAL PUBLIC LICENSE
+ Version 3, 19 November 2007
-Copyright (c) 2022 qier222
+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.
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
+ Preamble
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
+The GNU Affero General Public License is a free, copyleft license for
+software and other kinds of works, specifically designed to ensure
+cooperation with the community in the case of network server software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+our General Public Licenses are 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.
+
+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.
+
+Developers that use our General Public Licenses protect your rights
+with two steps: (1) assert copyright on the software, and (2) offer
+you this License which gives you legal permission to copy, distribute
+and/or modify the software.
+
+A secondary benefit of defending all users' freedom is that
+improvements made in alternate versions of the program, if they
+receive widespread use, become available for other developers to
+incorporate. Many developers of free software are heartened and
+encouraged by the resulting cooperation. However, in the case of
+software used on network servers, this result may fail to come about.
+The GNU General Public License permits making a modified version and
+letting the public access it on a server without ever releasing its
+source code to the public.
+
+The GNU Affero General Public License is designed specifically to
+ensure that, in such cases, the modified source code becomes available
+to the community. It requires the operator of a network server to
+provide the source code of the modified version running there to the
+users of that server. Therefore, public use of a modified version, on
+a publicly accessible server, gives the public access to the source
+code of the modified version.
+
+An older license, called the Affero General Public License and
+published by Affero, was designed to accomplish similar goals. This is
+a different license, not a version of the Affero GPL, but Affero has
+released a new version of the Affero GPL which permits relicensing under
+this license.
+
+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 Affero 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. Remote Network Interaction; Use with the GNU General Public License.
+
+Notwithstanding any other provision of this License, if you modify the
+Program, your modified version must prominently offer all users
+interacting with it remotely through a computer network (if your version
+supports such interaction) an opportunity to receive the Corresponding
+Source of your version by providing access to the Corresponding Source
+from a network server at no charge, through some standard or customary
+means of facilitating copying of software. This Corresponding Source
+shall include the Corresponding Source for any work covered by version 3
+of the GNU General Public License that is incorporated pursuant to the
+following paragraph.
+
+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 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 work with which it is combined will remain governed by version
+3 of the GNU General Public License.
+
+14. Revised Versions of this License.
+
+The Free Software Foundation may publish revised and/or new versions of
+the GNU Affero 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 Affero 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 Affero 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 Affero 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 Affero General Public License as published
+ by the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+If your software can interact with users remotely through a computer
+network, you should also make sure that it provides a way for users to
+get its source. For example, if your program is a web application, its
+interface could display a "Source" link that leads users to an archive
+of the code. There are many ways you could offer source, and different
+solutions will be better for different programs; see section 13 for the
+specific requirements.
+
+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 AGPL, see
+.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..4b1c9ab
--- /dev/null
+++ b/README.md
@@ -0,0 +1,74 @@
+
+
+
+
R3PLAY
+
+
+ 高颜值的第三方网易云播放器(原YesPlayMusic)
+
+ 🌎 访问DEMO |
+ 📦️ 下载安装包 |
+ 💬 加入交流群
+
+
+
+
+
+
+
+## 关于 Alpha 版本
+
+目前 R3PLAY 处于 Alpha 阶段,仍在开发中,功能尚未完善。建议每次更新时,先卸载旧版本的 R3PLAY,再重新安装。如遇到问题,欢迎加入[Telegram 交流群](https://t.me/yesplaymusic)反馈。
+
+## ✨ 特性
+
+- ✅ 使用 React + Electron 开发
+- 🔴 网易云账号登录(扫码/手机/邮箱登录)
+- 📺 支持 MV 播放
+- 🚫🤝 无任何社交功能
+- 🛠 更多特性开发中
+
+## 📦️ 安装
+
+访问本项目的 [Releases](https://github.com/qier222/YesPlayMusic/releases)
+页面下载安装包。
+
+
+
+## 📜 开源许可
+
+API 源代码来自 [Binaryify/NeteaseCloudMusicApi](https://github.com/Binaryify/NeteaseCloudMusicApi)
+
+本项目仅供个人学习研究之目的,不得用于任何商业或非法活动。
+
+基于 [AGPL license](https://opensource.org/licenses/AGPL) 许可进行开源。
+
+任何基于此项目开发的项目都必须遵守开源协议,在项目 README/应用内的关于页面和介绍网站中明确说明基于此项目开发,并附上此项目 GitHub 页面的链接。
+
+
+
+
+
+
+
+
+[album-screenshot]: images/album.png
+[artist-screenshot]: images/artist.png
+[explore-screenshot]: images/explore.png
+[home-screenshot]: images/home.png
+[home-2-screenshot]: images/home-2.png
+[lyrics-screenshot]: images/lyrics.png
+[library-screenshot]: images/library.png
+[library-dark-screenshot]: images/library-dark.png
+[search-screenshot]: images/search.png
diff --git a/package.json b/package.json
index aa649e4..bee70ab 100644
--- a/package.json
+++ b/package.json
@@ -13,7 +13,6 @@
},
"packageManager": "pnpm@7.20.0",
"scripts": {
- "postinstall": "turbo run post-install --parallel --no-cache",
"install": "turbo run post-install --parallel --no-cache",
"build": "cross-env-shell IS_ELECTRON=yes turbo run build",
"build:web": "turbo run build:web",
diff --git a/packages/desktop/.electron-builder.config.js b/packages/desktop/.electron-builder.config.js
index 26e6169..78f5f40 100644
--- a/packages/desktop/.electron-builder.config.js
+++ b/packages/desktop/.electron-builder.config.js
@@ -19,6 +19,7 @@ module.exports = {
buildDependenciesFromSource: false,
electronVersion,
forceCodeSigning: false,
+ afterPack: './scripts/copySQLite3.js',
publish: [
{
provider: 'github',
@@ -118,17 +119,6 @@ module.exports = {
'!**/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json,pnpm-lock.yaml}',
'!**/*.{map,debug.min.js}',
- // copy prisma
- {
- from: './prisma',
- to: 'main/prisma',
- },
- {
- from: './prisma',
- to: 'main',
- filter: '*.prisma' // only copy prisma schema
- },
-
{
from: './dist',
to: './main',
diff --git a/packages/desktop/build/icons/1024x1024.png b/packages/desktop/build/icons/1024x1024.png
index 9fc1c628fc2ad728018f8ddd6242b6952aaab0f1..f7c002cd7fd64946724ce2d66a2351a97eef96b4 100644
GIT binary patch
literal 14136
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
Gq5lH`7_Jxq
literal 535997
zcmeFac~q2V-Zlt`QmAa95kc0_$k&gpC<+u>4F~}eWh;1G5_loFgot4)jZ%|p!B!~+
zfkNI28c+lTs$5zVTb9!_5D_fO1=B)0f(-&y7)@-U>?D*THP`RKKHoQI=AZe_%sbzl
z(@orJxu5&~E!TDZ?yZl-Mn_o8cbsozWMuK)yYIvq8JXg*rbfJZ_#@YO*&!p|^26`F
zv!2Z{{_*Pt*V3PCOZwX?>+csIjJ9rGJmn)>d@^M5;esN!Rfl%Z^PIP7VZqm`_JPWE
zyPw@uO5gS$j7olf```cjw*~%ff&U8&wD0y=y@wsn%M|?n@soAWU(cCv&3W#sAK1Ub
zSodK6%%^R}!&AFQ-%eg2>ow85_lg>NK9^^z@(gxcAv#vr
zY9FJ!W~BcB-wGC(o8pbXQER)6bxDc%(~M!;tlbQT8)0pW+^Xi{Tj*O-UgGH6F~+*T
z%~hev^+z@waYW}@=*#hWt@iff`LYJ1gLpxeZ0lxi-?BI7MwnZ$TkuS)(ZQS(7|ZT<
z>#yy2-2@;baF&$g^EHZgA3{d390k{G<3t!Q7ldXMV%bmrxk^CWX%iM;2*
z9R_1l$zz?x)Vyh!s#)^*Ew|h#>PvYu*Kf^VnpN?Mnixf_zL3TlV=OX9PcXPvd$Qhq
zvSZ0yl@+USqPM(R#X}R*wSs1{8a@I`*`w2Dc1$wQnkREDEDTQ6C_6o9%#z*$R8%+p9?w=S(qUJ4l
z8@6hoF$k;Yp--D(TwP6w*2;8iwQhZ$peyW*$;H??6tG{yPZ*4=0{>KY9vZf>M?@#F
zidJQ8z*<30e6@()rpVO2FEvZ1X8-@uua3+8-poz!4)2c4j?4Jv{nY#RZNrHjAI&r<
z+vW`CRpmYJ2r?Ny_`HArwN8(Y`SKFvRa~{`hlxjq4~nPSw4UuWb;oVqvu|wz?b9fp|=!_;RCmnk=nc
zn7*mVp+YYTm)R!Y>4X8m0;IngZDr3d?j@RCtEK}Z%F!)r!Dza^k76wyd
zB_p1xolBjEr1O0P%YGSsFK~gZVYW$h<2UHd0rbLxi=^53_Qsgk2@pAYMTmA8H=?9X
z3W>E_vLZIXM6;QOEt)oY^D`fRUYzN^Jssn|`bAJ8VtmO&Nyq+2UXRvISRC~_*o(f3`h2eH5`pj);BXKDB*soici^|=ga|@r47IRU_vlbFKB-;gW*q}43C^1iKBBIe
zFSjBnv9{+BD#irhLEes+BF8vH27a3$r&};?_h4A8cl5n81X%Pf^8bhM3*cadh;0?>
z-GYnf%PEWk$v_t=VCHe%0pKJMMt=yH&iyUg0ki<^k>)gfLLc6ZGRdL{?bl}6rSK9$
z=nNtQnRjr$+~1CIeUp;ckoadXYz|2qEUhw(!5o13y*Z{xd(nkheF!Y(R@J5Tf3)S1
z{iEc(s)NaWRi{oFs*wnHKy+1k2Hv#kv?+jRvTtNP_5L6|=OVd&Gtmz)(
zFG(!nA?I(-3IukwWNr9{V4t3TBMh!|dIO!i$vHgwjI4pr1k4U@Z_WhlLJz>GU`u>>
z^4AeZ)b^uqM|2&+aEW>l3r==v_{Bs>&AefC@)uI=C~+#~pZ=hw6~iV0ppXcu98kk`
zP3l9ShwM_<1+pNo;1!cKx<`u;EC>}YG>Dz4S!6YQ26CY!S|NIZ0HY{dgv{UuL!S|J
z33~v52-LHkhbRrn%ZN;b4amSNfFc#)=mMTVjPi(y2uEQZ1LFy^VOt0_@n+<$Xk^pm*?l<^AeDbXSS=-1
zM=ySc59SJUKl*596EgQtPuESvAP9oy7>rb&9rIxXk3fY64*gB=*-%Sg0PDrrb(;Ep
z@fi#hd{-B03F%1wf*qV)z-*fp)6lb!#qCCLrPYM@)85;+tKMGyBDCKhSw5VX
zd%o=gD^PGWxS5jI2@DSI;;`yyp8lz1_=WNE`7u6KOc_3sI3!i0w
z8KV8x-5(+fy}2NmLYxvkU+yY{+(C%W(S&s!awN6TdY;m?g;V>Gv=LxjKmzPm49x06
zY(onYXA_3%UQu?h6QF3@23GHM>gY3|7|~5LYPQXQYF2?~cmtpTIuO86y3ib;V{il%R0Ccf
zLJ|QBsN_bY_y9Uay+V#6%|Atil6;+q0!hwkag4!(L?hH4n(10{trK+NQM|!Yo*-?7
zn!~Flb5(`-EVQ0L(R#EH%5COdko+YoCwxizB>;Eca1-8S0;m4`GC9xi$C>N5r*n6F
zq(H&vF!lIpCcMBYK2i(B{C!kU65Ekr1w4G%wFFkB0;L#X3dzm&A48b^4}3nR5b&Wv
zF9M)B9wQ-(k0W2{rxWYC&-l`7Y;DkBdF|7SLwv--wl$bCJ*SBAI|hE8(D;
z6SV;2mK%^m#3UZjoSP9Qo*Wg>K#@mMGb;k#J{k&8TtqcBz-=@AjWV_uCWF!NZ%X9N
ztwLlW^%fa|>IuwCqTpZuRm}HA7i(e30y7%PY*9lWujT?(`~3tNJV^-?AOP_DLr@W@
zewK?jQQ7P4^5268f{X)!L+~p61?NMRf<9y$o#al)7=>W;J+};CX(AbsbP-_>h&h(x
zjc_KIlI8zBH)Z5*F)WxE?oU3c-yi+a%<1!O#zDpg`-v*Xia?k68njL13>hY2F+PNz
z+#^G77C|hQIjgHdzNlEh34n6W^O$|%*pEht2pQdmQ1a(kgDd7Yf@Ps~KrEtoDi)Cd
z$bAukG{_(S@I0gW3wRXCNCKUJ59pDQh!Uz87!o0soYes=rRWMdi~~(FI|OG8mzT&n
z{D8G*J5CNkJVWTCvfz3&rGRzqfm+n%Vjw9Jm1crCn0dP#nhWxn^4p2hnB)K_1~7ls
zg$`sgefWf>6(+>W(M@PFRH&MI-T7H|07P*T0cZgi3VJ@nFj2sAy+?pkx&iacoXC8Z
z`e3SQNhZv)Dkzh{A4MFADUx;+z~H6XWaB6VR8EsYBu@}4LLdn^6GQ?}&AHPUYeOvMLqb(NGW-$c8d@U()^BGk12n8>bBEe(B%!?o-j
zE@g|5>uW6S(mbFvbtFkL@!Q3mcrx?oAyl4@4cR7|(7fQWl|`MkqeR$s**O=cBGY&D
zaiVaDaY-9nzf;{ag2*rc|v<7;{M0C+44ncYSXf-f{RTLc`;0u6o
z%lf*jLv}h!=U*!oVwQ!-$Dan(s-$S2To0X6bf0gma}Pe7eX@H*m`!2-SAOdzNxh%X
zY%enHtgdA{I>?{HCenmR?ZkU|!5+1`zw+VLqT@irOWDnHw`Sv^k$H)Z(gY9xSzQvd
zjgb|jy_F&6w}eml|;~V(qo0e9{$8dR3VMU
zR{In^Wa~?X5P|UlEL1lfWQFvtKOqG5bdM;|q50RcPZF(@BAPER?;crXk1^vd&@jKx
z=u|;3Vrl6cx=4uhtmVvu0h6_0vTK|ZT9iehU7U)ha?wDg)lHC0nq(_kLG{EH^VQt{FK~h=q&d(
z%vF_px2N<0eA=0@b;ESk)=7ArT?&Ox
z3BU^an#oo7`AA*yQ0&Dn^22o&gSl|n+9AVB*go`Jj@mqd=zg3xp)7fN9C
zYm(r=bH!#SYNM7@1a%=h!EPmrqR!>@C)yEpJ19|I7(1z&Vwipkq>lEd5S!?fB6e)s
z5l6&7LJ&b(Eh;Ru!@K&;BmnpXlm$qcu{F_Va2M(Pdo|9`dv-R~E;T%&(X)T~k
zEIftWBRJ!8KBbPDZezUKJnyNZ(lud_{a5HEqBB^3Y;yqcXBLMsr|sqq;}L8^no8=S
zp~?GBX%bmNS1Mt2TBN5p+-4mg5ET
z%>sV8jE_7rz$b!&VF6Cz;X55$l=KBm*pvb&fUNLerx2Ld3ZvOc5jl8pq&AjXCTy`C
ze(PgRy`QcI#qd^o3ED!2kk7tQd2+)WMzBLq@nBMUoJ^1B+!(-E`UXNauO^%ZI@-&z
zey4O=T7SY7w)X;MBxolH5l?X`Ve6I)Ml)4yMC?y;&Y_qCcZ49H5GeQ$^ypCw^yP90
zt5EME=oNs|gM_T7!jpig2=W~)9$YWtS~fa(QhhAbe2pl6i5R|uAx;67v93djxG6f)
z^9?It2A>`by+)$Ou1ZOfiRVcjT{W90PYv*qSn)l{yJwPrdR%qjSjDyGkySTOsdgdSo`x;0s}%HEjy{lwFlQyjHS(RT
z$59tqIPe0$ZwjA!lYJ0?gcFD+U|XlDYCqBux@58*al9K101xU*?d1^=F_%U;E2ATI
zr4g>)zjL_&t#mJAFj02=^dZQYt?0SN|f^Q6p1u{8NR
zupAW6f2lKy>|SjAAL8O|#6>s@fM8$O4giHE^#Hn7Wzlgpzb2f8aKbW2a+%fS*98brBJ}uxqG>ba0LhK9HONL_1ajBM&Wig!=FpL}
zTs9$}x~oS&V*__pLS$*bk
zQ4366gfK{D@LL5y0s7(ozkp;3bV=upri(yK6f@)+!fIE7ZZW5arhWC+t|Uc)>u}V4
zRc;=@7-L!!?cvSIH=rG%Abr1fv>I@QF3=A|Z(D@6teeDd25<>+AfVtO%E2rZqKh=o
z>>HT+8>12Pi9m>jfsN3@K6v1NmC=*7oj3gQ=i%4?=zU7^(LWdrA-`~7-i-Z3%$wRB
zKm#=_ia&L7LpYQi^^@2N5)uLsl9AN)!SDw{(>rO$3p@=#7
z@h2*|1~fsuU=+YmQyv%+3Vj#21v-aziJ)8p1QtP)5GX|^V#J)xDJqBF!pkrb<^pJC
zP&kRw>94A&o!c0PH)@J{$*E`Z*{r>2bm$k&|8xPrsW_w2y;)_@DyAZLg4tnBbhdhw
zeAdzxRzJIl`o=h%JE$x}_9QwUOgu-5$*WLxY&rkZVJiNo)wFJasE2`o
zVfLUeJZgw+X$~p#nYj#)+g?
zrN@+`l}%4P!M;sNR3)l3*N}2;~Tn=^|LSFRRj}B!zKE6(kn@g$s3xre92=-2Ksr(sfgKPV0AMN`W)TOE5zsstv3tRLbs}`Cn2P%CjD8(u@SBW6
z(H`kpMT&)RiW4aa!KT>`*M(q40*itaOee#`(`U!FGy}Xrp~_`9fCX)!zQ-m3*q~Jj
zdBMGakwG$nQm>W9^mXro)A67zW`;RkVs%}0dyxM03>c8nz8g<;X|rp
z7Dh=1Eam3o&z8nesQ989F6spR&=MH+1Htn~vO?q1G!8fpJwX7lkfWWLaDsH?;sk=`~p-(!$K6{
z7;Kt^6ubT%a3GZ!h*s1?V9ePNpjDcK7#<3ZKGc+cmiHmpA9Ax;-%;h-Mm%73`WQW?2bPZH9D3>Z9)VFWQh(62B
z$sq>A&SFl$(FoN^LXBu=?h6yVJ6{?;Zu*<=xkDp>Xi$tCM
zY>A3kpzRS5d$kaX_!FKY@ei#Baob}v0l=PmtjDZg2`yKVg+e7EoZ^$Hjy|jp2=eYZ){k^Y;_x${zH=rb`X!Tzg-2D{Vq;7OI>R;He2cd)+
zE`RtO)yT>2W3?hjagATJNA0|=*%X>!XAblpUYy#l%m(TqjwmMGXyUf7xo3GtLE!*D
z`zmcV+d2ACR~Xfa_*r4clwy;TS&8e
zrI<^ZoxtP1TS$aT$zuEH2CIV$kD(SM9h%4l)?&s1DTuld=$U;LZxUKp@|lKGFRr%F
zvm-6DktS^rI5+MT1byxp;Yrn)2;pxm!W``Sq6#2&GiLyrgYOJJp*?!+|KQ0m3z?UlJ^64+05=26=}~;Q8KlCgvsK2ZiM{*6&rlUe
z;_(0MfcjG9fmfYYLDRc`Y6AAydI5V5Z^|{EKL0WX-NMlLPvY-fDvlNf({RBX
zL>-v@PIp>C>lfGpGlw`NFSt{MsW!-)H>>XisRT=y^7@7AW8_0DcPX2RmOWe%g@X7o
z1qKB+U5}Nvbf+_$1ek_Z=F~w_T3R4F(10t^<6*}L?Hb)Xq#%)U;piK<_7M2>KAvca
zUY26=ss_ajQ0Ov+<(nWvT-;a!5KQ7G5sBYO>vN%tts`cHbVdjB5ucoC5f9jb_%Ve#
zW~^b2=R)e^spj`FAj+Fl;elrnKlR-ac9H>JBk<&
zZ8D#Kq~J&&)DykjBDX3Tu$*>OT8+mf?e6P0KC=v<9RDTo!*d|L*Z%8Jz=b#xnJEz_8>b2V{2
zitI9>P;X-@Flk-MNFlevEV32@*Ap1a+VPcXmOua}WC!CB(`V!r9G-6KgyL|nDk?ZQ
z1ItmmkgzUgrIFM;%TXMY;lm8^(I=@u7>|`+4UnvM9_nxrU*3s4?o=-J&a)fC9=QOd
zOpCe32yo>uEdgFAj358RLe@>(!#kZ&ejWULEg+Y2(Cab!Yve^B$t9M`v|5zQNr}
zr#`m(y|B6y!m*{bH98Moj%iK`Yl*}vbbPcDxzxluh2Kf(a{}b@ksmB@!8kha_yCWO
zsfV>MEeouP1Fq0ARNbhY
zP);CJPR$X$L0@dX@vwHQ6;YM|mk_7VV*@Z@$Ss4E+Ecc1(ai<0xNL)G3}O-RLQ1k1
zFUD{n$pV})o4x@XLqoM6BcUJ%pwz%frg2Jag=yyIN`U0}A|6P8*i#{i`ET$(@*7_A
z0#-^LGikDP>ga|pgby@IdBGO?I5KtAN=20}mpL0KkAFu$jfr
z#Mp-^2VI*1TXs6?xrcIdqD#b>m%?y3Zlt*Ze%!#eQH~9CbBGRD!}*tHKMk`cfKF4aMZAL;^S87cc5kAjlDwnM
zq8x&cE#)>@CV*)#JGpw~NNen#sn0t{P@&*kO-^T&;@y?u9qVBXEf6Cc`!VnX+@}qC
zL;Tjb7DXi4)&W7*(z8IC8DMP5FqnsRi|Gpw&M?shAjiVeHGtI5kjGAGOpNBp7iyj+
ztITzM*iHcC*Gm9a$iqq_2YHD?!Ro+9>olLMRSWP>CrgGRWuB_q$0QoxrVI~gmD#6R
z4vYAe@NA`#{`1b&zL`b$kq_9C;}p#>(MQyW)Q2`;L627dmq@oT_VV}YPIxifVLpHH
z$i#B5j`fsrb2P^Wc*y)fYzkIjS}WU8+-q(v3ysnqYmJR}IOvq2^H3-Ndi#wpq|jG!(4{hS{CJty)NX=NP?x5h|1P&Sd>#g
zekt40*h~%z?0gR(1M7=p0qWd#yRnH4+8Q77_)dhrW~sMRo3{7B&sV!sX1YN06L9Yj
z$%d--nV&8jl2MNyn>q;8fBU?_a?15!yQ$`wnx}Fd{~Fu6!lJrT`q=Pp0x@h42oH1hSnVOXN-*-kk;NB6o|&s(2VFjNibo5_z*0{7x0f`QOPnQ53rY=Q!_6|
zlcf+~^4`M@vs=S&Wtm{C;+mQo5swF0cJK-wQX#WpWNbUDKH-n36`5dMa6B^K33ycm
zz>69Zp#tehxd=S<0F3gG8aA?^+lL@f3co1mR49+*sm7L8X?e#BzJT*U`FVLDW94yx
zoys(xHdd95e|cCafDUU{LOnZPM6J_2IEq_sK!xInnXxTU9}
zRhxwpzH=+^9hS4OmU*G?xhKtlSN6W(!FUIU29b#qb{IO?`N}thQxq7RUCWMhFeV@w
zQka@nBH3DH&!M)QEL#Fdi2?H$i#?={k0u_ijMl~mU=PD+u&F
z$wtHyMQA~RI>pm%qMYOW&Sb++$uF96Uo{z)5YA&QH20(a
zFTd1EVG-T68iKzNfL8-xM^m)G(>g1Pp|zEe_6)v^ogdhf1Mx#O2gxyfjFnJe5v45A
zA0AM7(WDC`2ki|ZGzK(hW9@CYmZ}xWGKzR&6J)Uk<~ccihAF*jVvS?7^npIaP1?*-
z5vFTvQ1k%NL2!=NGvN}851(aCzS1*u?YV)PS_
zgrEb#RY7MSWEq$_5Oy=C*%eIV&{iXkXsodJm1JxYN)xPnl0U%JwLiZaHVo}jm>zgV
z6Whs#QTz6(kc?Pyg%1;CiT%}#JZotNoVeBMjN!VL^&R{;}hW-IzW34($dbZ
z;e^mZ+?&ExLVUS>xE4tp7XbBu_(Gt&d9#+@4^0uX-U6Z6y>=eIHOtZ1!8cqxx;#UN
zb+Yw$Mj+>;1?odkEA#jeInq?9tXLF+IseqQOG~jDXEESDSgb!`36Y+t%XGL(E6KxOd=ou+G{zd1KmL6Mq=g9h<0MAOy
z(rbPvB`u(R#6o=*78D>o`H)q{V6!~zTx`v`tQT9|8Dpi@vu~-Ui`6#B=I$y}-&=gm(5zS(Wy*qYk7P*m!*6$?wgKwQIC`HLQzX2$N
z4gxxY{xASVJcbpl=XG&C*rI=lMFmeP4P{ZXY_@ho#zUT=bwXasE1Hwkl$_&)9P%0>
zg6dfx3#2f#swn~y(y?yT17#~##IhkdG1c*zakK}vvG#?}@VHtN-@3sb$J7AJM^2MW
z6fV)*0Lp|*u%d_fAk~{$7Z*^3T9H(3Zhk?*#;)mKf(-iJ+)Fba$lhaI_HHA%{`1Ss
zWtJ^-dHhv&me9eBhie&TrHEIFn;>YA#h{x|l3lWjcTTDA<($iTTs$r7RAT%5uJBIoFaLUS2|;P
zDiv`!C=eBHAwyv2mBmkP2rH@pN{nSu*PK|O#6u^DKWywhiQkR{~hA=Foh*6ss$Tz?YHVWARn0u9
znt6>Bzh(I8xnbrx75FoUslX4ae%h{_F`l{%jNXZ^K*mA5nE>!*{vw6N*hEMMMyysv
z!R+C8MljZ!d-$5)VV2Uwi8;elEe9@ky2te8XM-L(s#91eLd~yS3P}i*BL$7u
z^B!z~S}H?8NioZ5ip`9grTzdpOx`J-bm7?34QqQ1WA?ACQ;~i3gg?PDGj_xadDySXPSuzGYQ#cNgBFPa2nku6HKicZYJm{2^G
zRdgOwhe7LFijf!oP^V>?0Y$AnDSgfF1AV}6^2zJA$ltN0O#pHSId*75drd?Z38C6h
zir~Q&kiG#LKt(6N6@J4QL}f@s;U27h>L;Bn#l6Q!Ul(|ph;EH6eUzoLy_Vv{cAIB?
zyx7i6W`!ySA;EvBSy~mFz1SC2*xU0NL{p3TxwxJ?DM({uFi1q&ds^Nk=>2FeB4q&M$(_MIrT>i3y$O#fCSYtfI9PbDBUM
zssgFlH<$g=I}ms#;l1pf`gy9LL+UPLG>zS8$JHZqd8pYil>s4Sq{sPCr|_XYiXEtvI3IzX%&o0u
z6%V17Q9%e_86I?Q-w|d1v*2>V-@?EAZ>bBNnHSbh1I7Qzu;HIMx)sP41poFTvzvn)uaxms^uTH=G`5*t-GZAm<^wS5bE$*5N?zv|jugfBabgJztWqxIv
zYNPMr>eZSHZIgS%3*Eitacvw(h?t3`mkyzOh*b9SBh;#bSP`(;&2bl>y!
z=eH+B*L}4-GezZ*TO-Q1)~P)9?hCouh)(?9>)H2wLw}>;AH#-MxzC@^{Nwq|q2vR4
z!=Y*2t@bPFhIxiLGs~|Rm)*Sg<(*&7pDs>s+w$yi_0{_idX)Rtt_zT--<36q(d(N%
zTS8~vxmI>l79@P8@nQyB7wV6td3pCo2P*gJ{P0SuSI`IAKizTA#XZxk(y)yIKYa4S
zN5ihuNAJWqi_zl7YxhrG#R!Yb%G10s)`kJRR2KhWd}lPi7*zMw9smBybp4$E=p<&a
z66ST@i$3W0gyIn*v|m!a-3&cC@BSlSywG`2a(Up%cjKS+M=xHx?)2%(w1%tH)5p~^jow*t^{$_H
zX!NzR=j=XN{4@UP)2-~f(*c9{3Ll=l&J2pq(@W?;(l{GEI33RnO5*Q4_&g}~nFd|Q
zxF4)fMIVCv=@AWRfALzh^q}7He+l!tJ{Ye^Kk(|A|Kr^0ErzE+iVKGC%adp3zLp~%
z?Emzvz1#5Bv-b5a)vHU2PZyV`eV^0QtNrH77Z$!+sxH)S#BPfsVR5+ZyLSE_pkW$^)G&4o&}e}A#<
zcxlA&6w~n4@{6Li(b2w#1&Hf~r=7imo__cF+&Z3;nqP^MHPVZqwqmcLi%hlNj$5
zWF1m5^TH>4bX!Z@H7p}X7)E@5yLNlSSe@hAB;6kI-cN2Rk%S&WPZx5X;pxvg>fX~<
zq&b(g9&v|D*b9}FX)fZu`K@fIYKuNvd)OUO3P%Om>%J9QxHpIp#B8*So@vlUT^l=$
zR{Y!4%1;(ts4Omvw{R~J=y;*2H+xFfHfk@3H7vzsNVIQ>#4f*hb;(^>Ir1JR(5I;e
z5xatKxAOv^cJTHYKznLX)Xc%_a>vX)2@a|{MY{KhxVBt40_j@5!aboa=LEI0lhX^
z)oA$N1`Qv)c9k_%*NSxC!-8yd(s|$<(!6qdr*3gbv=$C%5M8fSHwtvM2#0rWZUKzd
zi$dC-F4W)B*o=SkzE)Fekf8sAFtpq@25K+L+wMpa4GsTD9Gec8V$scjHRBd-j`Cd_J
z4IEW%K{jpz=uXqkRxElCilJh_$_FDDAM>Y!f%~exwlgN{5&}Ej>*$|Kxmj5`{c*H*?|7-}B~b_nI$X=k3dHEOOUyZ#pU8#2`>2RJqKO6gAOz<(4CA}ycX15sdmt9
za?z&&a;&dgkHad-fT%Ab4y?GHFr@PWW3JZJIfn4W3pki!FR;-E)-;ILzEG8H4sg#D
zYnEq*B3JWQYSMY9-8JdR{2v|-vxc898(v;E4AV0IgkkcQx8e4T+Pi&v_2AE$lZG3H
zyCv7Hp*LVYr~?Ubg(;CV=*)DrlKyNU=AWXpWwRhOZWD4cVn~FZ0vPXF>uT>!`WzOl
zjpl_8PknRGA>`)9KxL&Mzx9qsgYHC=H9*cL#D((*l#BDQ1HgN4zBN!WdgwZmQZIxV
z5_rJJ{r%C16oS!3I#9uuA96HaaP9oi#f0}D_$0W8Ty|RRsw&ZKy4mAVa?ej5GmGJ0
zMDPGjx0IFE`9S|rRY}OrTh@>@?hAiE77?1tbN1Gs6X_P~{7N90hC<-42p)8lh4}FF
zJKDXHRF!i48;1}eYJhkF;!6`j(M-@WylLHO@C;ZeK~+2EnS5!iv`Udb{ofX*;47s!
zW%1%3uYTEOooYXm>lUQm;_Ou-2pMDpPeq^=#JM|=eR+c@gfML(hU4rVigpgK{AZD?
z#cB7wt(r1*&vwxrSeI4F(wU@Y+UYD>Pf^VrZXr;#(!~@OMuZ>V+IN3U4~-`mK?$M>aJc5v&b_
zozdXl{44h-i>J!~**
zpVswiE<;2Im8IwY`B|ooZjbXI$^`jvI(X4h_c^d_ucRT}c^F*U2(G?UoBn%=wNin!PK5PuFEtw`u{nO=tmV
zU6~Fx$#49$QeyY-ZvQ`M?JtY(e{Fa|VKR*vd7V1}AXqpH1mFGKH1)jH6@<4u`N+M=
zKc}A-Yd*PpX|=|R4IKOyBCQPQD+WJo)b0edZRcI6B&C{=8m(QIj(09XW>=4CNU${GKY
zS1*lSJkr-NbWlAN=-I
z#9hC^wV^Y?+N%`Qfe`6<6M2)A-+Dxle?{GcNNoLd9FXJJFS`jD>$o<0W^3w@s8Lxd
z)_i$?@;wB+ITW8*iQvu`ti2mO>;|&GQrxr>v7gp3RtBOA0JMO87wP;^Rj>Q~p@6})
zch`PgQGE5z&6`qN0KNC%TIm0v@~Yhx>Wz2(ynfVRAV2QSUs+OI_P?BYegq~WY-Ke7Bn7@4tQ7z7<6*LD@zpe!J&o5;a|`kt11{{7_(0YY>N8+Q|5Bzm^&x>zA
z_||WjeX)38{Nli5&q`D#+J)6)o-ij$^}*}siAgHcU;jLqDSj}%zhC0(J=l6%xsOFx
zoaN~#?|CUVe`yQ|Ky|}}=dfRwv_sYy(K>!;JDX^TZD`>u?|+(wRk
z(@6aaT2<1BVunrHY~gmK;Y%OUJf7srf$la0xZ)5SqwMfql8
zz5F>|Rox&h$sOUA;p*V}<#WCD&WE>GE{_jtX@Z
zSX^hX*f&rw%Aao81OvDSInoO{GZ0#1RNX*NQ1yU02r?D$<2A@0*n*jmfgV?=lpgDG
zn|&DWce^Uo{*YgT^*Wyt$+i2FJ(Twc{&asbqER`%yn*ITz5@8U8~(JZ?ZM~q&omdR
zucErYX$?`d>QD5H{f&C+z(Ja}K`n6UtL0Un#OrNCT|#F}`lAQgyRx7rbt9^n2=0ZM
z4nKKsqZ0E@UhKLQsH0DyYB8GU-0Y2h4m#s-U2r{`5+glc|51fHb&yROFTD)BJQZ>C
zK~KrPwKFQe{#GrfutJHteKb{#7zCz&B))qwtD{>CZH}CwXWT{bp#zu#O6Q@rfsxA6
zncQudE=)c8x~PjRHoj@TjxAjS=`%r1Szmj_xW?w7&UNZ+xi3lNw^4ORi-$fTVc}kE(JV^t^KkTz(tsaMNPs7Z3A#8?LDv?_v(anw*7*
zTuqflaXCzm*a5$Q4`hhbb)*{HOY}@`jqWdMFM3v+x^{I*qaNRaBK{%g!8pFTFkp}c
zv{$NcFx;7+8%uCuPPByGmw9H5Txyc
zdK8+dB<}mkGaH}e-15jwj}LHP=-%+b&V;ssCl|+T5V!$@A#L*^oA4A#oO1JnZ%afl?xPF$Ewf)u~wr<(?+-Ut*;g=fE
z-kK|Ri~se49mYb>ym_j_8D<~I=B{~S#dqT$yJUN`SyiDQy72O1_8&c)rXpuda5vEq
zw!R1FNtXJ1VbzD}&z)(=ec2E+^CHOb!Z1GA)c*C?O_{lep2qa&&eeR5m8Yg0R$zkN
zHw>01L&CI0g1&rdWLQ|&M*LdmJA_5uyD$E;!miBG+AY3kjBm*-qpbj8T6@j6v6I*b
zx7;NSmplGJty-ReMV35U*HNMQnrN)rjS91sC%X&A_}KPhysRxtf#sr11`Ee0S*(G3
zWHMOlu(vBOu;G1-6%lhD??y$z{xktIbPkKK)^7J=g{v&ATIxh+8uEf4i`6lT#Nx4c
zEwZ+;OXa0j#@Mc>`F7&nbSw(}dl3H>o}dLXkyFHrWGa(h$4FlN>@Uk4o;h?rXjATZ
zCT^HIS~0D_)fzaCgSF7E<`8<-vhCS&tY;huai6*pxj-vk1%SxB!{O
z)>pReJdRwPnvZ2Fp3JI9fX(uZw_O_ZSiBaS&L3Xn7uUWJ{I0kb;Yw%Lr$f*S9HYmL
zQFL>njE)13ggq0)NU?Q5FQhkdVbxf+lLaHE57JHy++Wk+r`wIw#I(MQpNAS;ccxx<
z4Q=B1L5Q{xBb-@ehr5J&N^roE?wmkUCdXzwMPT%L?g}tk(A3wAhS6N0mcICxBars%PFMsJln)oFM%*ks5%
zgaDdzKIrsgeX3i=WNp6pw!XY(bConlK{p;SWmpYgo{?RczyKyTb}cbO;$tn>!mgx`
zbx|IdaBG93e={-JhQlKA$ga9=7Z)EqS&$to#9^`6?Zsof2|$dg9^og7OW4IO^1T;bJo@
zaAcT+d2BdN_B_0ZfBU3KzUAFm-mwcymP<2?aYf9($M9e4hspexk5Pl=zOo%|du^s_
z%50DSso`l%p5*flT`E=~FwyMivQ~T}>OcdoDL`1_SO#}tg{00;S4+9Ou`AoDNJ5v1
zr&8?tq;=x7^&M=p2VA(CXrj9Cw;*f?$BwCX+=4NCnuu~0p
zek)Fi^TmqOTn1s^HV$y#!M5%~WPNH;=SIRH{}$Y|V&@Gwqy0cgLfXLPErmE+lR%9F?HQFxiAqRAT0_;iGZ+MexXY4%i3Qsm%O(3JS@zW
zmf1w+?u&CZFJHLMOh^q7K<$UXU+Y-IYeBC;2@}lGM6AM&%P<@j#|2F|iiEF@-MF(0
zI2p$wDa+s{lgqp-*p^C1H$fey+gJwS(~c{l?5>g5Z~_5wkKnYKTw+PDWN-4
zgiE?{{{+2B=i=)GwF^cVNE3{1Vz|OOb~2bU2nocds0)xDU3e!?S5C2rg$x#?7AG
z@j5!(!n?r%b?$mVZ5lZcXAv-1kY^CK+N_HGaoIRP-hV0z6HmPUqq2t`VG^
zaiz?lpo0mLaiRzt|
z9>;iF6|KiArVr3vZgkWNyN+=`L0G!tqC&y%y*kF98RRC6a}h{eoai^!prvT?qisGG
zAS@}af#ltY3Xh7?BA0zkR$-TAn5SzTou*lH=JBpD&-lqd){GY2&UR8JvTXerA7LJv
zmj|sITBK}dTUjtn@OI=%{3@lf(qg-(bxA?NE={!$cCFfFVpt}lg#{Zu@12bk!)xjr
z3V|cct^#R+`ulQNiOoHjEwXEg-uh9NGS)$iG{A;*T!{MC$5ZEPM&l-B(t(xA#6Ijr
z!ig*RmAZx_4=`>kj%2YWIGPM|05C1EWi>dot8UailXWq{QL6a(7JTY>Ft!WF3wxw+
zDB}Wh|3KISu2kfB>~V@2y_PT_PrY%aXFRfxlzk!iueTJsyV
zHQOA;ipVr(dshYi4<+)Z&@*#r2*ATxpH)mrzP;REw6Sg!a?IDoF4=T1lui63L=d2NJEQ;u|H+BXVvaJwxmQcl|5nVW)AsoAEwCrI1Wd_}~5-Tjq)L})~W{y$~
zAHm+|f<0#*8(wkCjYpuP3P?=-;b}>~Ax{6cOBy!(@y>~aV&&pf1sivwe>d1jrhJ22
zNA+kCibL$$!wCWaoo&erfi^UlqV7(?h7Q~munkNj94q?b3&VW$MsC6m@oX9#*~?
zn_JDVoIr>yUbbxZ*n|Jg>>D_~7q+wOMu{WKFiV5O>$Yix?+0KbaDh~gt(&H!C{4lu
zS8DYbAC(*S2pSjRkX?K>=n~gj;bfC&F*dy|1GJSF6ifX6#d>rJ=48TMv1z*wQW5YUpyNNsr5SGJ)ZQ7RVqzW7h!_P*k=;Ah;%
zGs7@uF-w4f_5_3r`du&N8qauVM0alV^k23VS8QR=^AR)>nFh%&bm)EYrxU%~m?Wkz
z-y70>>4B=L(%`huj9}r
zA0$&`XBhTMf}_43snN+2fP%|i?ChW^tT7KEL`+y*si}GEXh5-tZ~a#_+e}U4a4=(o
zOBz)afau_02|TT|K!g_fE0wH|{NY7Y%{aD!-&e7^*i$E82riv$4zTdX>nHP!mQgOk
z!#>K%^}*pg1-YopqxrbT8PEfr+JoyK}bmpw?VzVULZp*v4!oEmVhQSTMGjm|>6Gr3Fil
zMud6#;}8{&JGhPWi$O#M1vb|2(qR~}LW!_TVq8p&Cy|Ed{NN}|pw!3pu%fGP$ttkj
zKhh(b(>*#EAnoc{$4Kp4*iFu*z%rYiC*p1YUrn){3NUY4^nF3Pm
z%5W4!smK9-;&5@3;T5;hiB`&Ac|hr3hk^?dzHWGm8>h`=5!jE61HGPZ*2p|4u#pA&
z-@3`o-_;gDD&0RTqGQz;om^1c0ac~yH9+U}8A=Q6JMAMTfZ*5|cI1nK0@|^T&9EP8
z*T9A=4Sd=F!avXyJ0NesR9H=4u{bQ|=Ev5{V7W+PKLpq8wG~D$t$_b073+)>7w(dtl
zfgk7+1_YL){p%){@;v!{c&?e%?Ouh6g>yB!f56dRZr4%}4tpKNwLa0)AvDpajm3d;
z0mN&OzZ{}$EK4Zlz6Q;??Cy(SWtohIN>Cq&F-HL2M~sDc6eM2}DNeF|&>22t!mhd+
z@b)TH6g9e|O4CZ5SztwbpeArYZxu$5YNZYLWXGM#V~4g**7#Te^fq>Nsz=7h)6Q>oG
zi;b5Z_*z}PElwCe2KfTKO=QPQxD7n*-0I8?L|gX6v%%ii=2IT=LTH!e;psW(9SwZG
ze7_w|FyUYn3ZI&JYoY}Vrlr=W=d9sIh4axxWgt?jOj>{k*k_I-fdvKja+{+SwoUm3
z^RMB++2@Y6^UmQA7QEnueZ{z#jjn0ftW(f&4PUoFTS)wEj(z#|cD`=hbrcl^Rmzk3
z_P*Cf;wI(Lhnp?SH`Kp%<*RLuOFKr2fNkLMnvf_Aylxa1TppFG`N-9mK|g+7efQZ9
z+qR6X`ZjuClqvno9ND|Sw)}_b)w#PWoId^HlOtWD!716MVKV-T+P6NP*Y0oFKVGqW
z-|0PbQhyf%xTr>|0-%{Kp`Oq=K6VH;!8Y_uUV8$Uy+KWHqGM6eQ}gAa79UqO&)TBd
zktyD=0@ul(>bC5H?hb-)Rf_FF3~i((l_r~X++v_M;VX~H~9qMj6d>%
z?tZwaIX`QPHZQ6b)+j8znY3WsFEoHk*Y%Al6jSHA+2goTrw5MT9EnQ?TE85H5W_RL
z=P*gAiJIB&U3^HDaBVCKLxwSvU#NcT-E^p=g89BKtI|3P)%ZS6>oCum?vWyarU=)V
zRl~1|b|^>B`XyS}MR=Cu>N4Nxv^?ag;G$+Ei%wHB;1mFkhqaZLiv{e0OFldxLf=LB
z;UZdctIHd=iZt&+4O4!KG!Y>B0SP9UvTRo!KK@3u#V&XKkH5>C%
zcn0?zs-A)qnXxsvLhuW9Q|9p0&(D?&xBdQ=eeO?Na({BwKWT8CI)eK!V_*OArB(3Q
zSrJaH$Z`2Ht~p>(u3JH8eM#3_fKqXH0V;t!0ci#4t!fd<0KgkeW-P`5wMdUlIIYiV
zh;_l0Z7AkPCU9wmQ}|9NOFOxGSujdlnwVIkfBVr&T^66kMW)!UpJEEA!~He;E%Brd
z^DA`pw;N4U!$t@Y9EZUFCyEoQu23{YX9T2lrC=+U?Viw!)i?(f4cs2WIV9OebhH~6
zW^|1d+TZ6Z5^<2l6W90nSxONos!-@Fx`W5p1tjB>CeXOM;h{LNfs?<8NyIA-;Rd_l
zyvcpl61wq3>MzGVjd7U*PC~1G^5=P+-P)
z74@0z{RYq!G*Y0nqKsv1Lce8N%z%I>gG5L$pg?K#Xp0kZhy+2SsEmz@iXh^uHVOs^
z3Y3y|4AC1E4Kq1L5^NRph(ckY#a0L!1%dn7WuNosUH4t<-gWO;>ztF=u_%7OXW09@
zzx#RiP``AU29XG^(w$qOS&Rt!xA!d3Od5yqF?!r;qco?i(9LZ}Vl|XU$VgU1YrH)u
z3I>PP?jij#
zS(CJzNDd{JSZQ7O)jKG4NR@M84?AeDKA|C^kv0t#R)8YzY
zpfitV&uZr|nB3P?s$p1?OcmSe?|kn)V-Eb*wCP`aM@@eB98b?Zk`Jd;CH;ld8Y;8#
zfB1c(e-p3gVj6bub4PkcKfWI4aUtd$z?W8kh2kG>;8D=_y#a&6z8Sf0PTMj4)_0)F
zyP+Pjx(neZ_7v=i{bKBBq&7T8%@X69wa+;}ZLD@yfRqnFMbd&U-&d^QijdWtwZ4F1a_1O>6C>HbV3{J+*UDWQo$I)z=|hX6x3y_QIMQgGu;(
zGpV6+PEUsL{DKD>Hf;|l9-+Fp;_8a~85Jbgvy95Z*pj!E(HeF9dp#~>{HNM}?A)@S
zLl&|C|MriFp+_x)kA_~PB|T3Y`eC-upUa;#&i?qRI~N2_gWvUiETv*Kj&M6k)VE(F
z4?|T*-;Oz_PfxWi4675#ukg~&ax_N0wbS&e^)7DOA6DmTstYOLsSo4!WHIMRJ?q9E
zB!%lkw19YGmgITyn8YlX_#D<0#xH)dhCL$lLX=>Gt@x8NKJ|OCp&ng8W7{#BFpj
zidHks{>?O3B}GWWbu3eHcS&4v4;MJ?bA;w}pBzOZAmny4N2&&Gp3*a&6*SbGM&zM)
zBDL!QyqQNiN7AQPI7bNn1sP=du5M8exlRmuypzUTr&|=#cH|vL02^E5^-VW7MgU~3
z6gyCJW=l1O41a1AP2cRnXouBSaD+wDEQo|F>!SD|a+s}Ue)nr6OB%gs&HqX^N9Qqm
zjne1Mdy_rmW8#)?KNQq{gsjxSDle@&0+4nHY|BW~N@6qsU?&AA!S`?WJ@(8;sBMS*;5jM};Z3%bZCU?|WQVu~h2TIdUOLqHQ582+Qxu89_tbYZ(eFQc`Pe
z6rA&XI6ZJ(aT*}t0m47~UE2pW<+{{{PBZsLgT02UlzRI+#t++o2OHPRaEEVNeFb!g|6xs?SEScM73O(As$d>})N{n?8
zS;N+lPYP?yf4j$zVyM&>^5%Ne4=eIy4e09v^8I=xz5YH`ZYbFi5ZQYFNKaUuowj?)
zb^FT{%b*+vLRt^Ow!OzGB6k`di;QDEN4HIWTjp8f>HAUpk+0q%eQ+kOhjzBI@GI8H
zRMIYctk#v-b0%~ZKCwA8+>-=;jH4V$kP)9&fdM9cT1w1{_^5c8(LAL(&4hz|5{+f)
zq#m3xW*D0a5562E*|;Z{q2r<5RIiHXGB%ZxAou=`a}ctp;^>1^8*N1(72!zEudl55
zu${^_>b5H-o=7ldnMrI`Q@9caaOFNmSPQc1W7XA5m&rUs*C&5b|KUuAr%%WIQ|H-B
zi4zzUuj^h%!%-`YXBn@2JJJQmg~wb;E=0B0HC0|L>5vr#?f(
zrVZ`Q8|+GGE6#H)KR!ruE~JjLERV&ZiH$K4R<
zV04;}y=?2~Z%)OA9Sm@cnLBSD>Dipbrd4C-_6N<3bPhM;1ShS2HAQ38YPyoNbIv*u
zyY8(CSza}(eH{<`sOs;vzb(VrR$ou%_R@9UyjWc~9=vcMsA?Xj1*en(hey8xG)pY|V(;75VU4*p)iz_8H~``
zSKiE>)`Eg+j2k{24`G9SB>z-blA+xXciDOT^l7RU4YO5yQ^;u=c&eUwkW-%^hAp@E
zp)oKhx(qB>Kyj3USlfw<)oGyr3iaOtF4=@HzzKW(y?35NCZ#es^6@rakxNC@nXt%N?N9cR!cM+9`R$(5c*|zs
zmvU|#KJYQ8A&b^1Efv~&KkjBi$DJ3CU>p?7caj@uWwIjv$yX0JUU*xZyuZR`9G`i{
zA9;tDiTc(05B@Jj+AOM0z6PrT7=HK=o_SYi?`;e{Z&^Rq=wLm?mn=~=M)ri))>0$J
za*cP%*v)O49zP8Ao0sbXleqviM*1ckFaQK)H@J?`PoP%LG>APBL>i@&R06W4cm<>I
z=OWFW^+>MZZi|n1GmoPWo~#r9%YZtZER4zuW$^m2^<$YywZe4`97>A&c*gIefE@s$
z=4HY+_Ds{~#RA=5)SJO_;D_g76$Pz_>+es%ndq6GHZn_iz>9ni5lSeT!fWGkgYqAw
z!rwxiox~F|&W$IG5aaBWG(`EC=)}G=<8jjt>^~xnA~ZyI+a>
zb(HE)xz&D=Vdp77AgvzIrsr541M}F!zEt18FJ8_&YVWX6s=Ka62B3%d>f8y&>ZnZ5
zJ#h@YIK1vC_p6lTi><4mSi&%lx{z?gC33CJ3+Otgg2NyVYN>sV>`+IAs-9W1s_x^0
zwSiM5FGm{6KjiaV&uP;PP)b=zm`IRsqOYL@&EM+%Xomr4Q>Es2-*lI(i>s~Jm9|GL
z344`VemVrurv1u=dh20%+{c=10T>)>Y
zhO~yhn81&u8d;P+HZE=*2fgAyycfd3;LGHCD*S~k(lX%#_2R@j!gE6JKgmk77NWu1k=t5Tgg%uL9I(I%@FuQdSavDLNPQIlNu$$n
z>}4On>IoERNlxXt?N6TEqi7BXFckAdZC@A}s_LAhs-!p)?Hpb#oUmkjv+2v@VmiwQ
z#dOxrPAa?9-I({yKaw;_7L{|k@WFOq8|o%-)D?@F!)7SIp=dlNV6>L2$Y^RREmkiE
z85VQ&P+uR!X%#0N;dN}r=)kJJD~JMR_G{LxktoYa=hd6TDHLPTm|rbxXb*A66jS!=t5$rM<>N!YiEozLGR%pvUi3l%@K$SZZ0w=g&IfF*
z4%mLY{ZR9hu3$6DH2A3{4FjsbCU{cjDjvWF+_nHi=|Y;|Gkf;K*u1#D8k%dCo2aE_q}Gwu^ri
zA4b{HfXJ6aUH9Mq+t=w^zHFM_HtH{7k;iUIK%U=Q_A-o4n02#3^?!
ziMUbfl{KAS+q^qerD2;pgKL_K6!SV)Zdp>h&~@yVlH3OK?=zKTh+SEob63-sy!gUX
z9?($c-I4A%c8fV&PkUO{R>0jnpOO8UuzdJ;oFFDZdqEh;Am>5l4$68
zo$2+RkvZ1$JiS6lNSvPQ?QuMpA`F@zGaEOVCN%iXKicy%xjw;`r9WTmy`1&!;>o>p
zJPT~LIXLLoK1^+#a#7c7bTRHB4=9LAXt0?+xp&=++YHV#AuZGK)=!FFhk2b>7aX)!deud(IGP*23*4?~Lve5THC-yjRM)_iH8
zVtVfQV)vC=<;LEs&Q#@&vd$C-*5vYqM;#^%ZbtcE7M~2N>0GiZCrHMgkm`_->iA=(
zHD5Q2TK~OzB|nJhEwa27>UlB$K-A(b>k){#>ggwgT9$NpM43A{l>ThuAEI!W-e5jY
zrpgieFFY#_lVc`jL6-uZ1K5Qz(4
zhjlK|HpcYbqsRw)*Sl^%mwEQ*ZrbQ*1ePY;%!fV{g&VCcl<3|NFgW1HapHMeR_W
zN-B!>48vnzEVg)fh46Kkvm)L6AmOJR?0aXF=>dX01+0EoeLYrwtoU
z23d~qblA}A>&k$6bROryd(Q#>zrn#|xEZ?sjB0
zmNoozMLm78enZ1gCKqMEsdLrZ`cAK|j&$WbPk-{Y3RB0E{-SumZkh6pK~7>yPovB?
zEax93f6rvox`W+&h0xGWGVlN$V^Fy`M$ybXu084OSEWwL}LtM
zQO|yn)^@k|axQCU{e8nvewGM7Q(j4aOK;WcoFJA5;8__My+t)5s_~lO82YF1zm1#^
zUm9px8m8-gH{r5;BP7pi%ayFgE4hg#J!OUN#clk8Q=`+98)cbjp<-ih!w*vijL~Ts
zk+$)tD{Ke*doe%lOpp&^ApcpYkW~N;dv6+ERr<5v?cPtPh6t)o*M!s@Y|L@|qEP|5
zj0Nus6dMt-cJ?&)l1EgyuJ^&&s|(t@I)W{?6-4zNJj1@SBZ$Z)kBcgnh^v^^3-6-@6-oA8bID`Cd5;hPDC^%U}Lb{_^oaXLNl8NRyj1a5HHjqHJI~LT@PvTjO>l-YPnC
z6{L2&y>|T#KiAt^$g*?kHCsAgQE}4oHX6F+N<&%M_ROfVrw)Ce<)Hqb^OmU{iqh1l
zm-{R_(xRfwAEu!B4NafqME%(3Ht_GA!@U52KtA%b$*Mg)N=mHg+6OPT?qWFefV8eh>xnYX3Fig
z4;#x8BNvjn!^=zzscHpIWu0qzL=ivE{k-9avc)7hnkCE_d*jMvekCFG@Z!lNAr>sp
ziAqSjbo-NqK1&W`#*}?V50^|onP}3tbm8sqw=7{PH$hCV1afc5BgxWa
zc!~tyj-1cSwm-cJzEn)Ty|(en$-zU7=Gd3TWlzl>E=g!Qb#)xebW(Z4-SnZ!4fOVQ
z^NlH5$J?w|qowJ?QzQ%ao&7qZ=>|E6fr^3T!)Vr0R&J_1qLUx5bm%?(^?|6U^)vFU
zc6>g0#KTj;ElY}RMnrwOu;bPz3tI{vmkAoI%sEq-ns|BYe9O|7uMJn>Q4hb>MW15T5{l4U<
z4@id0E$g&1=%Uw2W%C0RJLVXyV`Hx4mL+%Rb=tv0fQ&O3t3V#Jpk`rS!xRV6Ma*lU
z!fPtZI{#>duWLs~@KIS964>Ddr(>{dK=9)6ttDLeLZ_s4wD0pJpp+KhY@0QUGvfNqMsF|
zXu-qucUR^Fm5WMY@e{-fd5V>vi80=AvL2f9bsEyT9y45Sv{btWIs@3UJpaD1qaYOm
z&^`hfi)y^m5VH{`$LJnJVU^0ZmvvrUjTvQZ!V>#lKfa-1%7Bt=a171{^5pKqYSJ9P
z_!chbuu@ykvi^)&<1sg2Fzj3u1A!|3gfi>^WIAmc%w;hV?xNJERR_-mAC0(-^fFIx
z&x?FB6Mp$sn9zuJ$lwisgxqubg(lR@A7I0e!HRkV1p0lY@;h8hjYtYXBH`mP~I
z)gnjZZVx&P=JCgjyxdDAy)z?nGlL+9S27cWqcMOW%C+3_8*&|~R?!7VQErLZvVMk7
zK1*ER6xz9DI%ChlpcWj60!+=J9g3-HhhDSs#b8iqXL+81Qu;yFUTdWb7D#d=3W49tbm
z6hd5ununNrLG>pKrG;JhHsr`eAY%W0mbK5}_TVqv|0O+-7;29gY)^VTJIQ+R=e)tc
zzO0E#YH7Mrc499L1bHJa&z&1aN%z3v|%>CURPnS|XtgFM02R2xCL@u1Kz@mvgY${^!rG~<$B@VA_
zkTqXk=(IzOjnzisrMGTO!FEsQy(5nI8hQ0?kNPp>c5_j5+0)acgO*0{bHH~>!cQ2=
zhdEE}CXc|#DJn2B8yX&q$=tHG(H#K8E+sC-WcJ>=fgL-!1|suxH702(S)sQvPcZq_
zfS}ko&kC_w52NNgmFaF=$-H!h2M#1JF5CV&_CT!3VKm-LYAGZtZd`eV;7j@PQ;hmW
z@hwm*M$>2#)re*M@nn$G$-;$f1w=)ADGsGid_bl@najQJ@=Fo9i^V(8HdX*pzv0@>?MoKl=+YH+g0Ih#K&O*I
zKH`brkeutIq!{B2VdR6#VU$L4Ca~@E23&GHuoE5$p-5>UZpi028vcPth3EEP0QZa2
z?&fBmDRkEgoaWr^HF^lztal69(58ZIN>nx5x-;u
zH5FRiyKbYVFCnC5sn%QkPJl7U2_E?qD+Z4j_TUL;7N2>py4a@l=f~&=|Acxjh2ckI
z8+s>(L}>aPz%B13IB}O7LUm%8yj?Nvodpnln6|-jDsoS_Jhh`ljCjwKv%xI;#ZHfe
zRPY~KP%{fBp)>se$hwk(6dXJR`iPg0|A2uF^PCQdCgwG6nt#+17br}4h62XedtXZB
zX8wo<=>}&HJ>NU@+)zQc)91J1q5A_zeFlPWJsZNA;MMFO|5^xV#p1!FI``rgDQ{dk
z1}>l;$#W~Fj)fdrc39s~060RedY1yVurjABA$#Fb|3Q6;1&W9Ha8#2UCKusRQ&tX?
z;i>#!Af^rG%_u)FLGgMkgkach%te83QwL)0!@X-8O)B8r;F!WoNbdK2!+R^rCYN%q
z0NrCspxv3TZ8*8v$cFN5{sl%B3KfF27Wv?701L-A0(y#vCi5&FE&2TIfa$Mq2nu#7{yyB5Sa(`b2{cShZc
zF@VdTN>6`H`3cJrUIq+y=n{v*?4eDAg_s_W
zntBWGWAF=@8yMRRd^z9%xRs`2$On?WmnK}!6jFC4m~~tNXC4^Y)yq6vqTpknpH%iO
zMU-Ss1+JrS<6^T8coG-$#Uz};3j7%2vli9-ma{1ZRJ`nDeHld`rcds=^$Bph;pFlh
zO3Rc+`1-6hui#kg2AF&a&;Wipo|HA
zVAi)!i^_`-#s_P|J8ud?pb#AF@m-`dEUI
z6gk)lJ^G?CCy^sW2%RJEM3tbHLXuB-P6ux`oGf&AKm*~R1|qU0zYVGgLgsa2z{z3*TjlEw?!gxUK9c
zU{bX_2*goryHsJ-{6P3qP!cMj)&_xW0!eoTI3cX!HbdH1!}$bNfe$$?0VeX>IN0Kx
zbl~;g1``LCxT9kwo_ml2S~M45azn2X@cdxI1sEbnO9~Ls7yhn~y2w(%(J1J^hJapd
zl^`jy?lskPY2eulilpa51BS{8-y#H$IKLZeC>t0k8`}ExF>m4|g27SU9TF&q
zs2pXi)H-&^fegUr7l?I0KrFYxXXm#AVw}wNEuSi9R=74mu`5SmoOp=YXabQ9RwS|L
z+aaH=>(-Vw9m@JR?(5g%YnPnP`u^aEZT_S0?eVnwi~UIRFTYo%{;$pNe0C~s_M;OI
zyUzUL^B=#3EdBiHueIC>85*Qia7DI9f|}|NS4e65NCwEDEh6AR=@BbH<~LqepXRC^R6d-Gic_LdWc{(0tZ!G
zVAsy{&Q7PL0rmU&r9H{}>!mAC$sJD`Y!KeGCtgoYe;y>q>UuZ2R%rL#jIRhZR=OL<
zj+9~AXf&VYQi}gI+7)eVQCVb&OOp*E8;$6xLoXM7EAc~tjF5cvVYM@fAc^E7
zc~t?)LPYpUm{(y>QTF5g#JmsVXC8YN=?_bXKAn`(FWE!Fu(3pNF49jp|Nq7UZ>DCp
zt?G%76mPwsG-N2{`b)9X4dN(&8Yt*mPjx%)4+h1G#Qf3daXGL81h
z&f%WjA)l#Tqz4RL0a-gDOEwdT@0X!)`-Y$r|D)O5&VI4`1k+;#@*SGX=-();_OG&Y
z)4FR%&*pu1xX@nnQKYj~p-kouFYC##&fo>k^ro4$$MygrMMOZ*O6LR#4lC3zlq4aY
z&VF3-JSZd7?rup*_pTtK?uY=%zf0Q|QKsZYa;fYQx0>5Kv#j(x1eT^rG{;PW
zj|eV1ZxCh);zF{C)vGW^b7>yRKWeVK>t@nT=cas3)AJ)S81|E5_oZK0KbDv1s3cFM
zMKbNqF1%@}rW23}%ONVH=GT)K>DSY;A-S>EE6rU!!N#R%RF)k0{(N9jxA!i<0|dnV7E
zcoU5s1Zl{dmUe@L!@Z-FO(HQz{@FuFlMP6^cs*a6Q|ARV#hk01IjQHzrM!e}Eh6=Z
zm&<25(@OSGg`b5XD3E1f17r7Hqq7cOt{&TyeY7a|iy+_6Ks}n1<Q6Jc
zpPqwO6jr0D?rWAu(rYig`v|>NrlD8+4;`X&3)jXVbA~9aRbYE1vQDK00;_p67^0ci
zV?je2bX-UGklpp+?dv{XuwVg^P#LyKDc}_M)(CesE%IdhhPy2;$$h@f7L0JJ3e1qV
z5Ii9LnIh(r^9|U=mUREygg|FkK|a)%H#ZaJCfR_5Ao5m%4vVDUQrd1?ZfOf?l4({M
z3hWRy-n_23I@LCffm#9ywD;lbYrq&1lQf=ph@hLNnHO7F9g)xKTu=76KK7eaG#flm
zmu28g?c!ZfO;%=LcPN-mCsc$_Y*=
z5H|ZThEzhjdP45j1!6!6kRhHDkQXUTzC$i4WeIGE;v(Z>?=U*Q-L3ltV_Cef!ki#&
z!U*-?jw!1RgDAP6(;o&r448ot1h%DLlg)W)a7L~g=!5w+!qOW0MDTYP8XoZ@vHUcS
zSWLAFi*>DU*ccH?Zor}*Ptr<=A*aERiG6@~>?>_Ba$zv2*5M2L_mUGtILvB^MWX|=
zU;$k_#{eLb!979cWCpRhu>YE;5&Dp3bCPLpMaLWhMC>fnVw5<0{yh6!ks
zCLqdMB(@&Dfi0JgAWFeK`FjZZDuMol*6_iF{2s0Cy~>%Bq^q3F)I@MiN3#*(48lr=
z)m9Z`Z;~)Zy_99THfNRqKMJr?}6>PU4-w*wU;>NaV5
zY>v?^%D@ijtCV|AdLUsx?cCgyZr|)ntKXGI5J_vW2z)3D1v>DMIo%p?foHz6X1Q}9
zAtlvdPf;~c#%E;x@Hy{A`AQgzD9`_l@c)@L>~8;ort&LjB9mSJ(kZcT{J>}=fr^s{
zT8@`1^b#+A)kI@6=DL>1%f+;sT&$Fn$~)?tc#&nOu%P|
zBhrYajv0&nr43+~9X)jTiT5Z;Y%nqCWA**R@qc)XWhML%^EF%a51b{1A){X6tRf9$
zffqg)R_mpZR2CC4dUxn&w-2iDn1?{tKqXs1<-GV1o3OFi%;f#MF|njFi;aGRhnv%o
z&T|jHBfdt7!5NZ%O>mS8zgj>nghY_9Lyt(J@Y6_{!P9vSz%l$}0-(m!!7$&?>;clA
z5SD>;cKV{VG=g5+gfmzRd#)AytFb^TuyV}%;jXY&J5ssB>?UF$+NjcVP6waP+3hYy
zSSSND1Le=30%s3}@rW(-#3lIX6$C&%!s|k@pKpuu*hjx{&{B+HhTuE0Zk
zu>;`Wu#&E@f~0Q0l^t|-^8>QiT|U%3;t^DwbslS5UopXelnN!
zfJ8xd+TUZ|{16m(Ey-X_AxPB_5b?ZmW@Ex>r?j43OQ)kfxy_cQhg5e-u``;2&W-aFB5Q
zTt>Sk!hT4ay
zRuj9=<`eCG{rPD1d0j3I4kfNJ$Qya(d+<}!`8-AbCjMmxYa`u8=dnpAG!n!aav>d`
z{EHy=nf*qr5F|Q(GLxRaKmyGOFq~r`y>?6u`Gxwj{-h*v5W!R#igX$b#^aUq9enV|
zGJ=Ve;*>0+wvS8nMX_`)MXJ;jU%ZcavoI*s5}tw}@GBo7_M&{%P;!6g@-Q|SA9#`+
z72xG7vDQjAbXYp4%1q3KFk2DNYj6;v$*D0mPUF>5caUL7&ejR
zVrm{RaGn>+4p9rH+Fhu*J7Pdt3N!>DfWI4@_+arJUO@|v4oU8EzJOmsYG^l=BjmY!
zfWDOIy3Nqcad`MIMzg`0^{B1><72r93cKSiz5-yBW(#WJh44thH8#*6<+f%|Q<*Hg
z?ao=qA={QYDBm3s0a-H!Ay9?K074%A%`2JY6o2^;24SG
z5Y#|Ah!*qpbGlrz-Z&z{-y+=wXYl%U>XX$Yd$NsksDu|L$~D$a+;1R%IgbT5%l8?O
zy(Ffj+fJuLGm$CuTnq;Yz+w{5E@CC3$|CgGq26*9#NXv;3*lh{!~qi@b-yk7X;Tc!
zX83w=dnLY_K|%pd0=mVkyn}PhC^Y~fkDM@+At^m9ihoAS2f-Pf
z%qj3Ab)tbNCDXB!MPd0xyZE3bUw+6z+ChHD&Ty;+w9pm!RCaVp?sbw;pv&Mxj(nY^
zSB~bF_#S1j|6N$>KPZr6U}X1fiVXTDzA=?!#v
zvsq=iL9@|n>ND$(TXx$vHaK>aXr56b*{0!cz5_pvZcsKC#!lU+b~)?5Dx##z+VoM%
zMy^8~ImPhsT&&>=U?>mTD7;n^Oi1`;UyHDo~>fWTw{JN`KzXM#ijqMFr=GoRD_kfUKu
zx-QMLUGa8g(c!(D>=au12<{LEXt(uKYT-TMK
zPc;+w8JczLP2bE;psp(1VQm=IBOZsfMw7`kj-X+pIK}}
zSp2qzH@P>297O_(Pb->p>K#oV4WChCc$>S{nkVp1kvKJLhM<`g$R`BkDx1xDqWpSJ
zJ%TCQfY8`zFYQwPJ_?rK7iD&EQKStJVvz1os>qmz}q+O>gZ
ziTrvrtI_C)+BotQ%`5H
z^$%{C}t!(!EjE_qvjAaQ!-+nzj@=CPeVk7f_O`SMoY
zVDR(qwwiLJ_$zuFqJ`#XQ#Za+eUpNL_gS^n%<1y?z)0p4na7-2S{Fd!nXl}~43TQY
zjiEg=+kiwEwn>Kq?XAC*V%2Q&$lNeRq}Hb6mdJ(WS;dTgv$LrUrxdb#e1t9={!uhX
zYnnt3%r|sd%;16lGo=5WRoXVb^z>Elm%j{jwrnf!nw=E)_oULnn^DiE_a7QKl(4S(
z6Q|szMB5tTTX%3j3L5k;$@8tbn;-Sec&RqwWW+7S*8HfAC)>^vL)aLz!=e9P*W<|}
zj(4Rjt+}h}y5$qgGuEC-(i?t0rGE(_G{sT$*W@Zaij0TcXII8;?Ba_gMer#xA!lYU
zsYx`hP!kWV*w|%3Ov2T~tBJ--$8PM(Uta!+Qx~r`JA2j9)a%F0i&ruU23cKx^6I6P
z5oaRKSccs0N`1GBC<*TC307iMck`D!b%|v;dv&p@^t9zO^Zq3SrYkqfyNJj+x!fst
zz+uNytz7ckZFA@klxIXe+iUo_41RqxaowwPtYsuqxQ_SssK|8Si}zkliA6E%x;1;r
z{K%ZBXP0G21QVQSnynha*EV$B>`G;b-YI2GCQECYPPyMYMO@`0o3f_gx;}mO=`*rz
z64vdYjRT<~gxxZ#Cc6z?sR_moTT{!L%(u;bb|rDCQy0H}CDX8SH7r-^nQ{W!PAhis
zrIX8tYI(-VtAqPqtt^9owUC6i8e)B8n-wd0t4vg;EVJ=Wap*T2ahx|21ICc9PU&~+
zH`}(9uVu3DCwa9?!<4P6E)TC~uX}AIENI~SDg9q2uoK?IsCj9lhALIzS431sy%D
zn7Xk+IYS^@CEpkhG|h~})|xta@w=V348)=Y3*^TT48JLWCa{i4aqqY#=ERQan4iUF
zIP!XTND_~1_N#&AgMD;l
zU|~%r4j7bz!$Fa*%rzHtn(_=o?m2#2=3y}!UDk{bycJ?$7#G%j*i