[
  {
    "path": "LICENSE",
    "content": "GNU GENERAL PUBLIC LICENSE\n                      Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The GNU General Public License is a free, copyleft license for\nsoftware and other kinds of works.\n\n  The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works. By contrast,\nthe GNU General Public License is intended to guarantee your freedom to\nshare and change all versions of a program to make sure it remains free\nsoftware for all its users. We, the Free Software Foundation, use the\nGNU General Public License for most of our software; it applies also to\nany other work released this way by its authors. You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice. Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n  To protect your rights, we need to prevent others from denying you\nthese rights or asking you to surrender the rights. Therefore, you have\ncertain responsibilities if you distribute copies of the software, or if\nyou modify it: responsibilities to respect the freedom of others.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must pass on to the recipients the same\nfreedoms that you received. You must make sure that they, too, receive\nor can get the source code. And you must show them these terms so they\nknow their rights.\n\n  Developers that use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the software, and (2) offer you this License\ngiving you legal permission to copy, distribute and/or modify it.\n\n  For the developers' and authors' protection, the GPL clearly explains\nthat there is no warranty for this free software. For both users' and\nauthors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to\nauthors of previous versions.\n\n  Some devices are designed to deny users access to install or run\nmodified versions of the software inside them, although the manufacturer\ncan do so. This is fundamentally incompatible with the aim of\nprotecting users' freedom to change the software. The systematic\npattern of such abuse occurs in the area of products for individuals to\nuse, which is precisely where it is most unacceptable. Therefore, we\nhave designed this version of the GPL to prohibit the practice for those\nproducts. If such problems arise substantially in other domains, we\nstand ready to extend this provision to those domains in future versions\nof the GPL, as needed to protect the freedom of users.\n\n  Finally, every program is threatened constantly by software patents.\nStates should not allow patents to restrict development and use of\nsoftware on general-purpose computers, but in those that do, we wish to\navoid the special danger that patents applied to a free program could\nmake it effectively proprietary. To prevent this, the GPL assures that\npatents cannot be used to render the program non-free.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                       TERMS AND CONDITIONS\n\n  0. Definitions.\n\n  \"This License\" refers to version 3 of the GNU General Public License.\n\n  \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n  \"The Program\" refers to any copyrightable work licensed under this\nLicense.  Each licensee is addressed as \"you\".  \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n  To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy.  The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n  A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n  To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy.  Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n  To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies.  Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n  An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License.  If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n  1. Source Code.\n\n  The \"source code\" for a work means the preferred form of the work\nfor making modifications to it.  \"Object code\" means any non-source\nform of a work.\n\n  A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n  The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form.  A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n  The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities.  However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work.  For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n  The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n  The Corresponding Source for a work in source code form is that\nsame work.\n\n  2. Basic Permissions.\n\n  All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met.  This License explicitly affirms your unlimited\npermission to run the unmodified Program.  The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work.  This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n  You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force.  You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright.  Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n  Conveying under any other circumstances is permitted solely under\nthe conditions stated below.  Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n  No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n  When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n  4. Conveying Verbatim Copies.\n\n  You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n  You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n  5. Conveying Modified Source Versions.\n\n  You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n    a) The work must carry prominent notices stating that you modified\n    it, and giving a relevant date.\n\n    b) The work must carry prominent notices stating that it is\n    released under this License and any conditions added under section\n    7.  This requirement modifies the requirement in section 4 to\n    \"keep intact all notices\".\n\n    c) You must license the entire work, as a whole, under this\n    License to anyone who comes into possession of a copy.  This\n    License will therefore apply, along with any applicable section 7\n    additional terms, to the whole of the work, and all its parts,\n    regardless of how they are packaged.  This License gives no\n    permission to license the work in any other way, but it does not\n    invalidate such permission if you have separately received it.\n\n    d) If the work has interactive user interfaces, each must display\n    Appropriate Legal Notices; however, if the Program has interactive\n    interfaces that do not display Appropriate Legal Notices, your\n    work need not make them do so.\n\n  A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit.  Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n  6. Conveying Non-Source Forms.\n\n  You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n    a) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by the\n    Corresponding Source fixed on a durable physical medium\n    customarily used for software interchange.\n\n    b) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by a\n    written offer, valid for at least three years and valid for as\n    long as you offer spare parts or customer support for that product\n    model, to give anyone who possesses the object code either (1) a\n    copy of the Corresponding Source for all the software in the\n    product that is covered by this License, on a durable physical\n    medium customarily used for software interchange, for a price no\n    more than your reasonable cost of physically performing this\n    conveying of source, or (2) access to copy the\n    Corresponding Source from a network server at no charge.\n\n    c) Convey individual copies of the object code with a copy of the\n    written offer to provide the Corresponding Source.  This\n    alternative is allowed only occasionally and noncommercially, and\n    only if you received the object code with such an offer, in accord\n    with subsection 6b.\n\n    d) Convey the object code by offering access from a designated\n    place (gratis or for a charge), and offer equivalent access to the\n    Corresponding Source in the same way through the same place at no\n    further charge.  You need not require recipients to copy the\n    Corresponding Source along with the object code.  If the place to\n    copy the object code is a network server, the Corresponding Source\n    may be on a different server (operated by you or a third party)\n    that supports equivalent copying facilities, provided you maintain\n    clear directions next to the object code saying where to find the\n    Corresponding Source.  Regardless of what server hosts the\n    Corresponding Source, you remain obligated to ensure that it is\n    available for as long as needed to satisfy these requirements.\n\n    e) Convey the object code using peer-to-peer transmission, provided\n    you inform other peers where the object code and Corresponding\n    Source of the work are being offered to the general public at no\n    charge under subsection 6d.\n\n  A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n  A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling.  In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage.  For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product.  A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n  \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source.  The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n  If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information.  But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n  The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed.  Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n  Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n  7. Additional Terms.\n\n  \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law.  If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n  When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit.  (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.)  You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n  Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n    a) Disclaiming warranty or limiting liability differently from the\n    terms of sections 15 and 16 of this License; or\n\n    b) Requiring preservation of specified reasonable legal notices or\n    author attributions in that material or in the Appropriate Legal\n    Notices displayed by works containing it; or\n\n    c) Prohibiting misrepresentation of the origin of that material, or\n    requiring that modified versions of such material be marked in\n    reasonable ways as different from the original version; or\n\n    d) Limiting the use for publicity purposes of names of licensors or\n    authors of the material; or\n\n    e) Declining to grant rights under trademark law for use of some\n    trade names, trademarks, or service marks; or\n\n    f) Requiring indemnification of licensors and authors of that\n    material by anyone who conveys the material (or modified versions of\n    it) with contractual assumptions of liability to the recipient, for\n    any liability that these contractual assumptions directly impose on\n    those licensors and authors.\n\n  All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10.  If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term.  If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n  If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n  Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n  8. Termination.\n\n  You may not propagate or modify a covered work except as expressly\nprovided under this License.  Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n  However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n  Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n  Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n  9. Acceptance Not Required for Having Copies.\n\n  You are not required to accept this License in order to receive or\nrun a copy of the Program.  Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance.  However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work.  These actions infringe copyright if you do\nnot accept this License.  Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n  10. Automatic Licensing of Downstream Recipients.\n\n  Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License.  You are not responsible\nfor enforcing compliance by third parties with this License.\n\n  An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations.  If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n  You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License.  For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n  11. Patents.\n\n  A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based.  The\nwork thus licensed is called the contributor's \"contributor version\".\n\n  A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version.  For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n  Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n  In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement).  To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n  If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients.  \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n  If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n  A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License.  You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n  Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n  12. No Surrender of Others' Freedom.\n\n  If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all.  For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n  13. Use with the GNU Affero General Public License.\n\n  Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU Affero General Public License into a single\ncombined work, and to convey the resulting work.  The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the special requirements of the GNU Affero General Public License,\nsection 13, concerning interaction through a network will apply to the\ncombination as such.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n  Each version is given a distinguishing version number.  If the\nProgram specifies that a certain numbered version of the GNU General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation.  If the Program does not specify a version number of the\nGNU General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n  If the Program specifies that a proxy can decide which future\nversions of the GNU General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n  Later license versions may give you additional or different\npermissions.  However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n  15. Disclaimer of Warranty.\n\n  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. Limitation of Liability.\n\n  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n  17. Interpretation of Sections 15 and 16.\n\n  If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program.  If not, see <https://www.gnu.org/licenses/>.\n\nAlso add information on how to contact you by electronic and paper mail.\n\n  If the program does terminal interaction, make it output a short\nnotice like this when it starts in an interactive mode:\n\n    <program>  Copyright (C) <year>  <name of author>\n    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, your program's commands\nmight be different; for a GUI interface, you would use an \"about box\".\n\n  You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU GPL, see\n<https://www.gnu.org/licenses/>.\n\n  The GNU General Public License does not permit incorporating your program\ninto proprietary programs.  If your program is a subroutine library, you\nmay consider it more useful to permit linking proprietary applications with\nthe library.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.  But first, please read\n<https://www.gnu.org/licenses/why-not-lgpl.html>.\n"
  },
  {
    "path": "README.md",
    "content": "![PS4 Wee Tools](assets/splash.png)\n\n# PS4 Wee Tools\n\nPS4 wee tools is free open source app, that helps to work with PS4 sflash(NOR) / syscon dumps.\n\nWritten in Python to keep it simple.\n\nWas tested with Python 3.8\n\nThere is also **[PS4 WeeTools PRO](https://ko-fi.com/andymandev)** with some extra functions _(only for donators/contributors)_\n\n**Dependencies**\n\nIf you want to run python script directly you need these libs\n\n(It can be easily installed with help of pip)\n\n`pip install pycryptodome` since v0.7\n\n`pip install pyserial` since v0.8.5\n\nTeensy Loader Application - can be found **[here](https://www.pjrc.com/teensy/loader.html)**\n\n**Documentation**\n\nVisit our [WIKI](https://github.com/andy-man/ps4-wee-tools/wiki)\n\n## Features\n\n**NOR tool**\n* PS4 Nor dump info\n  * MD5, SKU, Region, SN / Mobo SN, Southbridge, Board ID\n  * Torus (WiFi), MAC, HDD, FW (current, minimal), FW2 ver probability\n* Flags toggle:\n  * boot mode, safe boot, update mode, arcade mode, kiosk mode (idu)\n  * registry recovery, manu, button swap, memory budget, slow hdd mode\n* System flags cleaning\n* Memory clock editing (GDDR5)\n* SAMU boot flag edit\n* Downgrade by slot switch (FW revert)\n* Legitimate CoreOS Patch\n* Southbridge patcher\n* Torus (WiFi+BT) patcher\n* Additional tools\n  * Extract NOR's partitions\n  * Build dump from extracted files\n  * View / Recover NVS areas (1C9, 1CA)\n  * View / Recover HDD EAP keys\n  * Get HDD EAP keys [keys.bin]\n  * EMC CFW for Aeolia\n  * Base validation and entropy stats\n  * Recovery corrupted partition\n\n**Syscon tool**\n* Syscon check\n* Debug flag toggle\n* Patchable status check\n* SNVS blocks viewer (records and flatdata)\n* Manual SNVS patch\n* Auto SNVS patch (3 modes)\n* SNVS rebuilding\n* Boot mode selection\n\n**Common**\n* File browser\n* Batch file rename (extract dump info to filename)\n* Terminal (UART) with highlighting\n* SPIway flasher\n* Syscon r/w tool by Abkarino & EgyCnq\n* Syscon reader by DarkNESmonk\n* Multy files compare\n* Pack / Unpack 2BLS files\n* Language selection\n\nDon't use if you don't understand what is it for!\n\n## Credits\n\n[Abkarino](https://github.com/AbkarinoMHM), \n[zecoxao](https://github.com/zecoxao), \n[EgyCnq](https://github.com/egycnq), \n[Al-Azif](https://github.com/Al-Azif), \n[Judges](https://github.com/hjudges), \n[pearlxcore](https://github.com/pearlxcore), \n[fail0verflow](https://github.com/fail0verflow), \n[MSX-Celulares](https://github.com/MSXCelulares), \nDarkNESmonk, \nBwE\n\nAnd of course [PSDevWiki](https://www.psdevwiki.com/ps4/)\n\n## Donate\n\n* **[Ko-fi/Paypal](https://ko-fi.com/andymandev)**\n* **[Patreon](https://patreon.com/andy_man)**\n* **[Boosty](https://boosty.to/andy_man/donate)**\n* **[YandexMoney](https://yoomoney.ru/to/410011555252085)**\n* **Bitcoin**: 39VaMnFqCQo751mvDc3M7ADVty71q2tWDm \n* **TronLink**: TSYe254HXFapEwAAbZFkTHGewezZmnCKnU\n\n## Links\n\n* [X/Twitter](https://twitter.com/AndyManDev)\n\n## Changelog\n\n### v1.0.4\n* 13.04 support\n* Syscon Flasher 2.05\n* boot modes bug-fix\n\n### v1.0.3\n* 13.00, 13.02 support\n\n### v1.0.2\n* 12.50, 12.52 support\n* Polish language\n\n### v1.0.1\n* [fix] Syscon SNVS lib (active volume)\n* 11.52 support\n* Portuguese language\n\n### v1.0.0\n* [fix] FW detection\n* [fix] syscon patch\n* Syscon Flasher 2.02\n* 11.50 support\n* Spanish Language\n* Russian Language\n* Some code from PRO\n\n### v0.9.9\n* VS bug fix\n* MBR magic check - fixed\n* Warning for manual patch\n* 11.02 support\n\n### v0.9.8\n* NVS areas recovery\n* More info for validation\n\n### v0.9.7\n* Lang optimization\n* Flag: resolution\n* UART bugfix\n* Assets update\n* Root path bugfix (for exe)\n\n### v0.9.5\n* Quick/Expert mode for partition recovery\n* Southbridge patcher\n* Torus (WiFi+BT) patcher\n* Util lib update\n\n### v0.9.4\n* Partition analyze and recovery\n* Flags: active slot\n* Code optimization\n\n### v0.9.3\n* SCFlasher: Safe syscon erase\n* NOR: quick legitimate patch (drag&drop 2 dumps on run.bat)\n* SC: \"full\" clean\n* SC: autopatch now works with any* syscon\n* SC: Method B bugfix\n* SC: manual patch now works with flatdata\n* SC: shows line counter\n* utils bugfix\n\n### v0.9.0\n* Syscon Flasher\n* Legitimate CoreOS Patch\n* Terminal: title shows rx/tx bytes, show hidden bytes (switch), log to file\n* Syscon tool: Added FW md5 check, patchable status bugfix\n* Batch rename (extract dump info to filename)\n* Code optimization\n* Some bugfixes\n\n### v0.8.9\n* SPIway bug fix\n* Mobo detecting update\n* Quick slot switch (jump to spiway)\n\n### v0.8.8\n* SPIway flasher\n* Flags toggler update (uart second offset)\n* Minor bug fixes\n\n### v0.8.7\n* New md5 hashes (11.00)\n* Board_id info\n\n### v0.8.6\n* EMC cmd mode\n\n### v0.8.5\n* UART terminal with syntax highlighting\n* Integrated syscon reader (Arduino Nano V3)\n* Preps for integrated flasher (SPIway & syscon)\n* Accurate syscon patch and check\n* Syscon boot mode selection\n* Syscon flatdata viewer\n* FW 10.70 md5\n* bug fixes\n\n### v0.8\n* SNVS rebuilding (Syscon)\n* Manual syscon patch allows to remove entire block\n* Tips for syscon patching\n* Extra syscon patch (stuck on FW update)\n* NVStorage class improvements\n\n### v0.7.9\n* EAP key recovery\n* Some optimization\n\n### v0.7.8\n* Added 6 patterns to slot switcher\n* EMC CFW patcher for Aeolia\n* UI bugs fixed\n\n### v0.7.7\n* SLB2 pack / unpack\n* File selection screen upgrade\n* Preparations for EMC cfw (Aeolia)\n\n### v0.7.6\n* FW2 version assumption\n* Validation screen update\n\n### v0.7.5\n* Base validation (header, mbrs, emc, eap, wifi)\n* Southbridge and torus Info\n* Code refactoring\n* Minor bugs fix\n\n### v0.7\n* Extract NOR's partitions\n* Build dump from extracted files\n* Get HDD EAP keys [keys.bin]\n* File selection screen fix\n\n### v0.6\n* Now with color highlighting\n* Dialog improvements\n\n### v0.5\n* New screen \"Flags toggle\"\n* boot mode, safe boot, update mode, arcade mode, kiosk mode (idu)\n* registry recovery, manu, button swap, memory budget, slow hdd mode\n* Syscon auto SNVS patch (4 modes)\n* New FW detection (experemental)\n* Region info\n* Minor improvements\n\n### v0.4\n* Syscon patchable check\n* Manual patch bug fix\n* Minor errors fix\n\n### v0.3\n* NOR Entropy stats\n* Syscon manual patch\n* Minor errors fix\n\n### v0.2\n* Syscon DEBUG toggle\n* Syscon NVStorage class\n* Syscon show active slot\n\n### v0.1\n* Files compare\n* UART, Memtest toggle\n* Sys flags clean\n* Edit mem clock and SAMU\n* Downgrade switch patterns\n* Syscon base check\n"
  },
  {
    "path": "assets/hw/mobo_pinout/uart_v0.1_teensy2.0.hex",
    "content": ":10000000E2C0000009C1000007C1000005C10000F6\n:1000100003C1000001C10000FFC00000FDC00000DE\n:10002000FBC00000F9C0000008C6000083C6000045\n:10003000F3C00000F1C00000EFC00000EDC0000000\n:10004000EBC00000E9C00000E7C00000E5C0000010\n:10005000E3C00000E1C00000DFC000004DC50000AB\n:10006000DBC00000B4C20000DDC200000CC3000011\n:10007000D3C00000D1C00000CFC00000CDC0000040\n:10008000CBC00000C9C00000C7C00000C5C0000050\n:10009000C3C00000C1C000000129022904290829A9\n:1000A0001029202940298029012C022C0126022612\n:1000B000042608261026202640268026402C802C48\n:1000C0000123022304230823102320234023802319\n:1000D0000120022004200820102020204020802021\n:1000E000102C202C012F022F042F082F102F202F2F\n:1000F000402F802F00010000A501120002000062C5\n:100100000143000300005E010401030904440118D7\n:10011000020309042C0116030309041E010C0C033D\n:100120003100320033003400350000001603550062\n:100130005300420020005300650072006900610016\n:100140006C00000018035400650065006E00730029\n:1001500079006400750069006E006F000000040300\n:10016000090409024300020100C032090400000131\n:1001700002020100052400100105240100010424ED\n:100180000206052406000107058203080040090451\n:100190000100020A000000070503024000000705F5\n:1001A00084024000001201000202000020C01683F9\n:1001B000047202010203010001C1020180360181C3\n:1001C00036006103A10A11241FBECFEFD0E2DEBFCB\n:1001D000CDBF11E0A0E0B1E0E2ECF5E100E00BBF43\n:1001E00002C007900D92A033B107D9F722E0A0E337\n:1001F000B1E001C01D92A031B207E1F710E0C3EEFB\n:10020000D0E004C02197FE010E94D60AC13ED1076A\n:10021000C9F7F7D20C94DF0AF3CE569A5E985C9A2F\n:10022000549A409100015091010160910201709136\n:10023000030186E092E00E949A092091000130912A\n:1002400001014091020150910301CA01B901969543\n:1002500087957795679560587B47814E9F4F0E94A1\n:10026000B40AB9014FEF85E891E078C10F931F936D\n:10027000CF93DF9386E092E0E2D6EC0118161906E0\n:1002800084F585E891E0E4D01816190654F5AE011E\n:10029000C135D10514F040E550E0841795070CF402\n:1002A000AC0161E371E086E092E00E94EB09AC01F1\n:1002B00061E371E085E891E015D25E9A0FB6F8949B\n:1002C0008091FB019091FC01A091FD01B091FE0194\n:1002D0000FBE8093810190938201A0938301B0931C\n:1002E000840185E891E0A4D0EC01181619067CF58C\n:1002F00086E092E00CD7181619064CF5AE01C13510\n:10030000D10514F040E550E0841795070CF4AC01DA\n:1003100061E371E085E891E049D2AC0161E371E00D\n:1003200086E092E007D75E9A0FB6F8948091FB01C1\n:100330009091FC01A091FD01B091FE010FBE809350\n:10034000810190938201A0938301B093840186E0A0\n:1003500092E00E949D0A882351F090913001911102\n:1003600006C05C98E8EEF3E03197F1F75C9A809371\n:1003700030010FB6F8948091FB019091FC01A0919F\n:10038000FD01B091FE010FBE4091810150918201AB\n:100390006091830170918401841B950BA60BB70BB0\n:1003A0000497A105B10508F05E9886E092E00E94EE\n:1003B0008D0A0091000110910101209102013091FC\n:1003C0000301601771078207930769F186E092E0E5\n:1003D0000E948D0A9B01AC01209300013093010122\n:1003E0004093020150930301211581EE3807410526\n:1003F000510551F44FEF62E270E085E891E0DF9142\n:10040000CF911F910F91AAC0CA01B9019695879506\n:100410007795679560587B47814E9F4F0E94B40A3D\n:10042000B9014FEFEACFDF91CF911F910F9108955E\n:100430005091B9014091B801852F90E0242F30E010\n:10044000541718F0821B930B0895805C9F4FFACFCE\n:1004500050918F0140918E01252F30E0842F90E044\n:10046000821B930B541710F08796089501970895F7\n:100470008091B901E091B8018E1751F0EF5FE0343F\n:1004800008F0E0E0F0E0E654FE4F808190E008954F\n:100490008FEF9FEF08959091B9018091B80198175F\n:1004A00079F09091B8019F5F903408F090E0E92FC7\n:1004B000F0E0E654FE4F80819093B80190E00895FB\n:1004C0008FEF9FEF089580918D018111FCCF0895EA\n:1004D0002091C90023FD06C021E0FC01228390E0A9\n:1004E00080E00895809104018F3F41F080918D015B\n:1004F000811104C0E0910401F0E0DFD190918F01FF\n:1005000080918E01981304C08091C80085FD19C0A8\n:1005100080918F018F5F8832F8F490918E01981747\n:10052000E1F3E82FF0E0E057FE4F608391E0909315\n:100530008D0180938F018091C90080628093C900F2\n:1005400008C08FB7F8946093CE0091E090938D012E\n:100550008FBF81E090E0089580E0DFCF1F93CF93BD\n:10056000DF93EB01142F409304014F3F29F0842FB8\n:1005700093D1E12FF0E0A7D1C0FF24C0C13080E1CA\n:10058000D80700F582E08093C8002197D093CD0072\n:10059000C093CC008091C90083FD10C01092B901B6\n:1005A0001092B80110928F0110928E0110928D015D\n:1005B00086E08093CA0088ED8093C900DF91CF91D7\n:1005C0001F9108951092C800D695C795DECF1F924F\n:1005D0000F920FB60F9211240BB60F922F938F9399\n:1005E0009F93EF93FF939091CE008091B9018F5F1D\n:1005F000803408F080E02091B801281739F0E82F06\n:10060000F0E0E654FE4F90838093B901FF91EF91A3\n:100610009F918F912F910F900BBE0F900FBE0F9057\n:100620001F9018951F920F920FB60F9211240BB6C0\n:100630000F928F939F93EF93FF9390918F018091EF\n:100640008E01981310C08091C9008F7D8093C900DE\n:10065000FF91EF919F918F910F900BBE0F900FBE66\n:100660000F901F90189580918E018F5F883208F04F\n:1006700080E0E82FF0E0E057FE4F90819093CE00AD\n:1006800080938E01E5CF1F920F920FB60F92112427\n:100690000BB60F928F93EF93FF9310928D01809181\n:1006A00004018F3F21F0E0910401F0E00CD1FF91B3\n:1006B000EF918F910F900BBE0F900FBE0F901F9078\n:1006C0001895E5E8F1E0128288EE93E0A0E0B0E052\n:1006D00083839483A583B683178280E191E091831D\n:1006E00080830895CF92DF92EF92FF920F931F9332\n:1006F000CF93DF936C01EB017B01E40EF51E10E05C\n:1007000000E0CE15DF0561F06991D601ED91FC9115\n:100710000190F081E02DC6010995080F191FF1CF56\n:10072000C801DF91CF911F910F91FF90EF90DF9063\n:10073000CF900895CF92DF92EF92FF92CF93DF9305\n:10074000EC010FB6F894C090FB01D090FC01E09052\n:10075000FD01F090FE010FBEE881F9810284F3856E\n:10076000E02DCE01099597FF1AC00FB6F89480913D\n:10077000FB019091FC01A091FD01B091FE010FBE23\n:100780008C199D09AE09BF094B815C816D817E8109\n:1007900084179507A607B707F8F28FEF9FEFDF9151\n:1007A000CF91FF90EF90DF90CF900895AF92BF92DE\n:1007B000CF92DF92EF92FF920F931F93CF93DF932D\n:1007C0005C017B018B01040F151FEB016E01CE183C\n:1007D000DF08C017D10739F0C501ACDF97FF0FC0A4\n:1007E00081E0F5018783C601DF91CF911F910F91C1\n:1007F000FF90EF90DF90CF90BF90AF9008958993D6\n:10080000E5CF24D00ADD32DDFECF1DBA109268009C\n:100810001CBC10BE1FBA10927A0010926E0010928B\n:100820006F0010927000109271001092C900109227\n:10083000BC0011B814B817B81AB81DB810BA12B85D\n:1008400015B818B81BB81EB811BA0895F894E1E6A7\n:10085000F0E020E82083108283E084BD85BDEEE6D1\n:10086000F0E080818160808391E09093800082E05D\n:10087000809381009093B0008093B100909390009A\n:100880008093910086E880937A0020937B001092F9\n:100890007E00B1D1789408958E3270F4E8E9F0E0EA\n:1008A000880FE80FF11D2591E491F0E09FB7F894CF\n:1008B0008181822B81839FBF0895EE3250F4EE0F29\n:1008C000E659FB4F0994EE3220F4EE0FEA53FB4F4A\n:1008D00009940895589AB6C0599AD0C05A9A089562\n:1008E0005B9A08955C9A08955D9A08955E9A0895BA\n:1008F0005F9A0895709A0895719A0895409A08959C\n:10090000419A0895429A0895439A0895449AC8C016\n:10091000459AC0C0469AB8C0479A0895769A0895F5\n:10092000779A0895289A0895299A08952A9A0895F9\n:100930002B9A08952C9A9CC02D9A88C02E9A8CC010\n:100940002F9A90C0109A0895119A0895129A0895B6\n:10095000139A0895149A0895159A0895169A089569\n:10096000179A0895749A0895759A0895889A089523\n:10097000899A08958A9A08958B9A08958C9A089571\n:100980008D9A08958E9A08958F9A089558985AC00E\n:10099000599874C05A9808955B9808955C98089582\n:1009A0005D9808955E9808955F98089570980895E9\n:1009B000719808954098089541980895429808952F\n:1009C0004398089544986CC0459864C046985CC0AC\n:1009D00047980895769808957798089528980895E7\n:1009E000299808952A9808952B9808952C9840C026\n:1009F0002D982CC02E9830C02F9834C01098089590\n:100A000011980895129808951398089514980895C8\n:100A1000159808951698089517980895749808954C\n:100A20007598089588980895899808958A980895E2\n:100A30008B9808958C9808958D9808958E980895B0\n:100A40008F980895E4B5EF7DE4BD0895E0918000AE\n:100A5000EF77E09380000895E0918000EF7DE093D0\n:100A600080000895E0918000E77FE0938000089582\n:100A7000E091B000EF77E093B0000895E091B0000E\n:100A8000EF7DE093B0000895E0919000EF77E09360\n:100A900090000895E0919000EF7DE093900008951C\n:100AA000E0919000E77FE09390000895F89484B778\n:100AB000877F84BF80916000806180936000109286\n:100AC000600080E29EE40197F1F781E08093E0000E\n:100AD00080E28093D80080E69AEE0197F1F795DEE8\n:100AE0000C9400FEFFCFF89490DE80E69AEE01971A\n:100AF000F1F70C940000FFCF8F938FB78F93809105\n:100B0000FA018D5F8D37D0F48093FA018091FB015B\n:100B10008F5F8093FB01D8F08091FC018F4F809311\n:100B2000FC01A8F08091FD018F4F8093FD0178F0CA\n:100B30008091FE018F4F8093FE0109C08D578093F5\n:100B4000FA018091FB018E5F8093FB0128F7809171\n:100B5000FF018C5F8093FF0158F0809100028F4F5E\n:100B60008093000228F0809101028F4F8093010250\n:100B70008F918FBF8F911895CF92DF92EF92FF9256\n:100B80006B017C0119D09B01C114D104E104F10473\n:100B900029F4FF90EF90DF90CF9008950DD0621B65\n:100BA000730B683E734080F381E0C81AD108E108F6\n:100BB000F10828513C4FE8CF0FB6F89466B515B24E\n:100BC0007091FF0180910002909101020FBE10FE12\n:100BD00005C06F3F19F07C5F8F4F9F4F1124002499\n:100BE000660F001C660F001C702908958091E800B4\n:100BF00080FFFCCF08958091D80087FF02C085FF59\n:100C00001BC081E88093D70080EA8093D80086E1FA\n:100C100089BD09B400FEFDCF80E98093D800109211\n:100C2000E000109212021092110210921002109223\n:100C3000E1008DE08093E20008951F920F920FB6BD\n:100C40000F9211240BB60F922F933F934F935F9304\n:100C50006F937F938F939F93AF93BF93EF93FF9384\n:100C60009091E1001092E10093FF11C01092E90011\n:100C700081E08093EB001092EC0082E28093ED0023\n:100C800088E08093F000109212021092100292FFFE\n:100C90001DC0809112028823C9F08091050288232B\n:100CA00059F0815080930502811106C084E0809341\n:100CB000E9008AE38093E80080910402882331F000\n:100CC000815080930402811101C0F0DE90FF0CC0BE\n:100CD00080E18093E2001092120281E08093110281\n:100CE00080EA8093D80019BC80911102882379F0A2\n:100CF00094FF0DC086E189BD09B400FEFDCF80E9F7\n:100D00008093D8008DE08093E20010921102FF9151\n:100D1000EF91BF91AF919F918F917F916F915F9173\n:100D20004F913F912F910F900BBE0F900FBE0F90E0\n:100D30001F9018951F920F920FB60F9211240BB6A9\n:100D40000F92EF92FF920F931F932F933F934F9326\n:100D50005F936F937F938F939F93AF93BF93CF9343\n:100D6000DF93EF93FF931092E9008091E80083FFF7\n:100D700020C0D091F100C091F100E090F100F0901E\n:100D8000F1000091F1001091F1002091F1003091FB\n:100D9000F10082EF8093E800C63009F05BC0E4EF19\n:100DA000F0E085919591E816F90639F03596C15035\n:100DB000C1F781E28093EB002BC0859195910817D4\n:100DC000190711F03396F3CF4591559184912F3F38\n:100DD000310519F010F02FEF30E0821708F4282FBA\n:100DE0003EEF8091E800982F9570D9F382FD10C0F6\n:100DF000822F213208F080E2982F911124C0922F87\n:100E0000981B892F3093E80091111BC02032C8F441\n:100E1000FF91EF91DF91CF91BF91AF919F918F9112\n:100E20007F916F915F914F913F912F911F910F9102\n:100E3000FF90EF900F900BBE0F900FBE0F901F9082\n:100E40001895282FCECFFA0145914093F100AF01BC\n:100E50009150D3CFC53049F48EEF8093E800C6DEC1\n:100E60008E2D80688093E300D3CFC93021F5D11156\n:100E7000A0CFE092120210921002109205028EEFA3\n:100E80008093E80081E0E7EBF1E08093E900959141\n:100E90009093EB00992331F095919093EC0095910C\n:100EA0009093ED008F5F853081F78EE18093EA00AB\n:100EB0001092EA00ADCFC83061F4D03809F079CF94\n:100EC00095DE809112028093F1008EEF8093E8000E\n:100ED0009FCFC13279F4D13A09F06BCF87DEE5E0DC\n:100EE000F1E080818093F100319681E0EC30F807E9\n:100EF000C1F7EBCFC03209F047C0D13209F059CF6A\n:100F00008091E80082FFFCCFE5E0F1E08091F10004\n:100F10008083319691E0EC30F907C1F78BEF809335\n:100F2000E8008EEF8093E8003091050140910601C2\n:100F3000809107012091080190E0B0E0A0E0DC0181\n:100F400099278827942B832BB22B86389105A105EE\n:100F5000B10521F48FE0809304025ACF86399105C0\n:100F6000A105B10509F054CF84E08093E9009FEF1B\n:100F70008091EE00837009F4B6DD9093E8008091D3\n:100F8000E80082FDFCCFF4CFC23239F4D13209F04F\n:100F900010CFE09210022ADE98CFC33221F4D13272\n:100FA00009F007CFF8CFC11111C020DED23849F4C3\n:100FB0000093E900C091EB00C5FBCC27C0F910926B\n:100FC000E900C093F1001092F1007FCF8C2F8D7F4C\n:100FD000813009F0EECED23009F0EBCEEF2809F0E7\n:100FE000E8CE0F778FEF800F863008F0E2CE8EEFDD\n:100FF0008093E8000093E900C33009F4DACE89E178\n:101000008093EB0081E090E001C0880F0A95EAF739\n:101010004DCFCF93DF931F92CDB7DEB76983DC014D\n:10102000ED91FC910280F381E02D41E050E0BE01A2\n:101030006F5F7F4F09950F90DF91CF910895FC016D\n:101040008FB7F8949091120291110CC090E08FBF6D\n:101050002085318537FD03C09F3F09F09F5F892FB1\n:1010600090E0089593E09093E9009091F20091113F\n:10107000EECF2091E80022FFE9CF25FDE7CF2BE658\n:101080002093E800E4CFCF93DF93EC018885998526\n:1010900097FF09C0E881F9810284F385E02DCE0134\n:1010A00009959987888788859985DF91CF910895DB\n:1010B000FC012085318537FD07C04FEF5FEF518779\n:1010C0004087C901992708959FB7F894809112022B\n:1010D000811104C09FBF8FEF9FEF089583E080933D\n:1010E000E9002BE68091E80085FD05C082FFF2CF84\n:1010F0002093E800F7CF8091F1002091E80025FDD2\n:1011000003C02BE62093E8009FBF90E008958091F4\n:101110001202882361F08FB7F89494E09093E9006D\n:101120009091F2008FBF80E4891B90E0089590E0D9\n:1011300080E00895BF92CF92DF92EF92FF920F93DB\n:101140001F93CF93DF937C0180911202811110C015\n:1011500081E0F701828310E000E0C801DF91CF91C8\n:101160001F910F91FF90EF90DF90CF90BF90089567\n:101170002FB7F89484E08093E900809103028823DC\n:1011800041F08091E80085FD02C02FBFE1CF1092B1\n:10119000030210E000E084E0D82E90E4C92EA1EF15\n:1011A000B0E03AE3B32E33E04115510509F4C0C075\n:1011B0008091E400815F9091E80095FD16C02FBFFB\n:1011C0009091E400891306C081E080930302F70147\n:1011D0008283C3CF90911202911102C081E0F7CFB8\n:1011E0002FB7F894D092E900E6CF8091F2009C2DC1\n:1011F000981B9417150611F008F0942FE92FF0E0D2\n:101200004E1B5F0B0E0F1F1FEB01E0E4E91BE034E8\n:1012100028F4EE0FFF27E15FF64F099480C0999103\n:101220009C9399919C9399919C9399919C9399915A\n:101230009C9399919C9399919C9399919C9399914A\n:101240009C9399919C9399919C9399919C9399913A\n:101250009C9399919C9399919C9399919C9399912A\n:101260009C9399919C9399919C9399919C9399911A\n:101270009C9399919C9399919C9399919C9399910A\n:101280009C9399919C9399919C9399919C939991FA\n:101290009C9399919C9399919C9399919C939991EA\n:1012A0009C9399919C9399919C9399919C939991DA\n:1012B0009C9399919C9399919C9399919C939991CA\n:1012C0009C9399919C9399919C9399919C939991BA\n:1012D0009C9399919C9399919C9399919C939991AA\n:1012E0009C9399919C9399919C9399919C9399919A\n:1012F0009C9399919C9399919C9399919C9399918A\n:101300009C9399919C9399919C9399919C93999179\n:101310009C9399919C9399919C9399919C93BE01D4\n:101320008091E80085FFB092E800309305023CCF41\n:101330002FBF13CF2FEF3FEFFC01318720875BDCFE\n:101340000FB6F8948091FB019091FC01A091FD01F2\n:10135000B091FE010FBE9C0180911202882329F0FA\n:1013600068EC70E080E090E007CC80911102882367\n:1013700001F10FB6F8944091FB015091FC0160918E\n:10138000FD017091FE010FBE80911102882389F04A\n:101390000FB6F8948091FB019091FC01A091FD01A2\n:1013A000B091FE010FBE841B950B8B3F910560F33E\n:1013B00008950FB6F8948091FB019091FC01A091E3\n:1013C000FD01B091FE010FBE821B930B853C99403D\n:1013D00008F4C2CF08958F929F92AF92BF92CF929E\n:1013E000DF92EF92FF920F931F93CF93DF93EC0165\n:1013F0000FB6F894C090FB01D090FC01E090FD0185\n:10140000F090FE010FBE4115510529F1888599859F\n:1014100097FD11C0FB0180838FEF9FEF998788872D\n:10142000415051096F5F7F4F91E04115510521F403\n:1014300041E050E010C090E080E0FA01492F582FC1\n:1014400013E00BE68FB7F89490911202911111C03E\n:101450008FBF81E08F83CA01DF91CF911F910F91E0\n:10146000FF90EF90DF90CF90BF90AF909F908F90C4\n:1014700008951093E9009091E80092FFE9CF209140\n:10148000F2002E171F0611F008F02E2F362FDB0169\n:101490009A2F931B921720F49091F1009D93F8CF0F\n:1014A00030E0620F731F9091E80095FF0093E80011\n:1014B0008FBF420F531FE21BF30B69F20FB6F89474\n:1014C0008091FB019091FC01A091FD01B091FE0182\n:1014D0000FBE8C199D09AE09BF098B809C80AD8021\n:1014E000BE8088159905AA05BB0508F4ABCFB1CF1E\n:1014F0008FB7F89490911202992361F090910502B0\n:10150000992341F094E09093E9009AE39093E800E6\n:10151000109205028FBF0895EBCFE5E0F1E0308136\n:1015200041816281238170E090E080E0CB017727E8\n:101530006627742B632B922B089580911002817083\n:101540000895E6E0F2E011861086128288EE93E0BC\n:10155000A0E0B0E083839483A583B683178282E200\n:1015600091E0918380830895A1E21A2EAA1BBB1BF0\n:10157000FD010DC0AA1FBB1FEE1FFF1FA217B3075F\n:10158000E407F50720F0A21BB30BE40BF50B661F75\n:10159000771F881F991F1A9469F760957095809539\n:1015A00090959B01AC01BD01CF010895EE0FFF1F87\n:1015B0000024001C0BBE0790F691E02D0994F894CE\n:0215C000FFCF5B\n:1015C20000C20100FF00E10000000008000000006E\n:1015D200680272032802630218024B0238020000FA\n:1015E200000009089A0887088C0A1F08580843084F\n:00000001FF\n"
  },
  {
    "path": "assets/hw/spiway/spiway_v0.60_teensy2.0.hex",
    "content": ":1000000098C00000B3C00000B1C00000AFC0000045\n:10001000ADC00000ABC00000A9C00000A7C0000038\n:10002000A5C00000A3C00000CEC2000006C30000AF\n:100030009DC000009BC0000099C0000097C0000058\n:1000400095C0000093C0000091C000008FC0000068\n:100050008DC000008BC0000089C0000087C0000078\n:1000600085C0000083C0000081C000007FC0000088\n:100070007DC000007BC0000079C0000077C0000098\n:1000800075C0000073C0000071C000006FC00000A8\n:100090006DC000006BC000000001000015011200DF\n:1000A000020000D2004300030000CE000401030957\n:1000B00004CA002002030904C6004A03030904C25B\n:1000C000000C0C030D014A03190120036301040312\n:1000D000090409024300020100C0FA0904000001FA\n:1000E000020201000524001001052401010104247D\n:1000F00002060524060001070582031000400904DA\n:100100000100020A00000007050302400000070585\n:1001100084024000001201000202000010C0167AA2\n:10012000040001010203010001C1120180360181B6\n:10013000360011241FBECFEFD0E2DEBFCDBF11E0ED\n:10014000A0E0B1E0EAEAFFE000E00BBF02C00790E8\n:100150000D92A438B107D9F721E1A4E8B1E001C0BC\n:100160001D92A239B207E1F79CD61DC749CF8091F5\n:10017000E80080FFFCCF089581E88093D70080EAF3\n:100180008093D80086E189BD09B400FEFDCF80E9E7\n:100190008093D8001092E00010928F1110928C1171\n:1001A0008CE08093E200789408959FB7F894809152\n:1001B0008F11811104C09FBF8FEF9FEF089583E0DF\n:1001C0008093E9002BE68091E80085FD05C082FF61\n:1001D000F2CF2093E800F7CF8091F1002091E80062\n:1001E00025FD03C02BE62093E8009FBF90E0089513\n:1001F00080918F11882371F08FB7F89493E09093DA\n:10020000E9009BE62091E80025FF03C09093E800F9\n:10021000F9CF8FBF089590918F11911102C08FEF88\n:1002200008959FB7F89424E02093E90020918D1160\n:10023000222341F02091E80025FD02C09FBFEFCFAF\n:1002400010928D112091E400205F34E04091E8008D\n:1002500045FD12C09FBF9091E400921304C081E05D\n:1002600080938D11DCCF90918F119923C1F29FB7AC\n:10027000F8943093E900EACF8093F1008091E80090\n:1002800085FD03C08AE38093E80085E080938E11AA\n:100290009FBF80E00895DC0180918F11882371F069\n:1002A0008FB7F89494E09093E90090918D11992381\n:1002B00049F09091E80095FD03C08FBF8FEF08953E\n:1002C00010928D1134E040E45AE325E06115710588\n:1002D00009F477C19091E400905FE091E800E5FDBA\n:1002E00012C08FBF8091E400891304C081E0809325\n:1002F0008D11E4CF80918F11882301F38FB7F8948B\n:100300003093E900EACF9091F200E42FE91B9E2F91\n:10031000E617170611F008F0962FE92FF0E06E1B94\n:100320007F0B913408F040C1E956FE4F33C6D80226\n:10033000D402D002CC02C802C402C002BC02B8027D\n:10034000B402B002AC02A802A402A0029C0298026D\n:10035000940290028C028802840280027C0278025D\n:10036000740270026C026802640260025C0258024D\n:10037000540250024C024802440240023C0238023D\n:10038000340230022C022802240220021C0218022D\n:10039000140210020C02080204020002FC01F8011F\n:1003A000F401F001EC01E801E401E001DC01D80115\n:1003B0009C919093F10011969C919093F10011966D\n:1003C0009C919093F10011969C919093F10011965D\n:1003D0009C919093F10011969C919093F10011964D\n:1003E0009C919093F10011969C919093F10011963D\n:1003F0009C919093F10011969C919093F10011962D\n:100400009C919093F10011969C919093F10011961C\n:100410009C919093F10011969C919093F10011960C\n:100420009C919093F10011969C919093F1001196FC\n:100430009C919093F10011969C919093F1001196EC\n:100440009C919093F10011969C919093F1001196DC\n:100450009C919093F10011969C919093F1001196CC\n:100460009C919093F10011969C919093F1001196BC\n:100470009C919093F10011969C919093F1001196AC\n:100480009C919093F10011969C919093F10011969C\n:100490009C919093F10011969C919093F10011968C\n:1004A0009C919093F10011969C919093F10011967C\n:1004B0009C919093F10011969C919093F10011966C\n:1004C0009C919093F10011969C919093F10011965C\n:1004D0009C919093F10011969C919093F10011964C\n:1004E0009C919093F10011969C919093F10011963C\n:1004F0009C919093F10011969C919093F10011962C\n:100500009C919093F10011969C919093F10011961B\n:100510009C919093F10011969C919093F10011960B\n:100520009C919093F10011969C919093F1001196FB\n:100530009C919093F10011969C919093F1001196EB\n:100540009C919093F10011969C919093F1001196DB\n:100550009C919093F10011969C919093F1001196CB\n:100560009C919093F10011969C919093F1001196BB\n:100570009C919093F10011969C919093F1001196AB\n:100580009C919093F10011969C919093F10011969B\n:100590009C919093F10011969C919093F10011968B\n:1005A0009C919093F10011969C919093F10011967B\n:1005B0009091E80095FF5093E80020938E118FBF33\n:1005C00085CE80E008951F920F920FB60F921124EE\n:1005D0008F939F938091E1001092E10083FF11C0FF\n:1005E0001092E90091E09093EB001092EC0092E100\n:1005F0009093ED0098E09093F00010928F1110927C\n:100600008C1182FF13C080918F11882379F0809123\n:100610008E11882359F0815080938E11811106C06C\n:1006200084E08093E9008AE38093E8009F918F91B2\n:100630000F900FBE0F901F9018951F920F920FB63C\n:100640000F9211240BB60F92EF92FF920F931F930C\n:100650002F933F934F935F936F937F938F939F93CA\n:10066000AF93BF93CF93DF93EF93FF931092E90083\n:100670008091E80083FF56C0D091F100C091F10055\n:100680008091F100E090F100FE2CE82E8091F100C5\n:100690000091F100102F082F8091F1009091F1004E\n:1006A00022EF2093E800C63009F066C028E930E068\n:1006B000F90145915491E416F50669F5F901329670\n:1006C000459154910417150731F5F9013496459178\n:1006D0005491F9013696E4918F3F910519F010F08D\n:1006E0008FEF90E0E81708F48E2F3EEF9091E8002E\n:1006F000292F2570D9F392FD26C0982F813108F05B\n:1007000090E1FA01292F222399F064916093F1007E\n:1007100021503196F8CF295F3F4F40E0223C34070B\n:1007200009F0C6CF81E28093EB000DC0892FDECFA8\n:10073000490F511DE82FE91B9E2F3093E800E1116E\n:10074000F5CF803198F7FF91EF91DF91CF91BF9175\n:10075000AF919F918F917F916F915F914F913F9159\n:100760002F911F910F91FF90EF900F900BBE0F9064\n:100770000FBE0F901F901895C53049F48EEF8093EF\n:10078000E800F5DC8E2D80688093E300DCCFC93073\n:1007900069F5D111C7CFE0928F1110928C11109290\n:1007A0008E118EEF8093E80021E087E291E02093A4\n:1007B000E900AC014F5F5F4FFC0134913093EB00D7\n:1007C000332391F0FA0144914093EC003196E49187\n:1007D0000396E093ED002F5F253049F78EE180937B\n:1007E000EA001092EA00AFCFCA01F5CFC83061F439\n:1007F000D03809F097CFBBDC80918F118093F10046\n:100800008EEF8093E8009FCFC13279F4D13A09F09E\n:1008100089CFADDCE6E0F1E08DE091E0219120931D\n:10082000F1008E179F07D1F7EBCFC032A9F4D13278\n:1008300009F078CF8091E80082FFFCCFE6E0F1E09C\n:100840008DE091E02091F10021938E179F07D1F761\n:100850008BEF8093E800D4CFC23239F4D13209F063\n:1008600061CFE0928C1183DCCBCFC11111C07FDC52\n:10087000D23849F40093E900C091EB00C5FBCC27C6\n:10088000C0F91092E900C093F1001092F100B8CFC6\n:100890008C2F8D7F813009F045CFD23009F042CFC7\n:1008A000EF2809F03FCF0F778FEF800F843008F0EB\n:1008B00039CF8EEF8093E8000093E900C33009F44C\n:1008C00031CF89E18093EB0081E090E001C0880F97\n:1008D0000A95EAF784CF84B1806784B92E9A2C9860\n:1008E0002D9A089511B814B817B81AB81DB810BACF\n:1008F00012B815B818B81BB81EB811BA08952898C0\n:100900008FE98EBD0DB407FEFDCF1EBC0DB407FEF2\n:10091000FDCF8EB5809386011EBC0DB407FEFDCFC2\n:100920008EB5809385011EBC0DB407FEFDCF8EB53C\n:1009300080938401289A81E008950F931F93CF93A9\n:10094000DF9380918B11882359F0809101018430CD\n:1009500039F4289887EB8EBD0DB407FEFDCF289A99\n:10096000DFB7F894289880918B11811105C0809190\n:100970000101833009F04FC083E08EBD0DB407FE46\n:10098000FDCF80910101843031F4809187018EBDCB\n:100990000DB407FEFDCF809188018EBD0DB407FE1A\n:1009A000FDCF809189018EBD0DB407FEFDCF8091F2\n:1009B0008A018EBD0DB407FEFDCFC0E0809102011B\n:1009C00090910301A0910401B09105014C2F50E0DA\n:1009D00070E060E08C019D01ECE03695279517955D\n:1009E0000795EA95D1F74017510762077307C8F4D6\n:1009F000EBE8F1E01EBC0DB407FEFDCF8EB5819390\n:100A000081E1EB38F807B1F760E070E18BE891E045\n:100A100042DCCF5FD3CF83E18EBD0DB407FEFDCFA7\n:100A2000B0CFBC017F70EBE8F1E09F012B58314063\n:100A30002617370738F41EBC0DB407FEFDCF2EB5C0\n:100A40002193F3CF289A8BE891E025DCDFBF81E08A\n:100A5000DF91CF911F910F910895289885E08EBD69\n:100A60000DB407FEFDCF1EBC0DB407FEFDCF8EB545\n:100A7000289A089528988BE28EBD0DB407FEFDCF0D\n:100A80001EBC0DB407FEFDCF8EB5289A0895CF92F7\n:100A9000DF92EF92FF920F931F93CF93DF9380919A\n:100AA0008B11882359F080910101843039F4289802\n:100AB00087EB8EBD0DB407FEFDCF289A2C9AC1E0BE\n:100AC000D0E086E0F82E92E0E92E22E1D22E35E049\n:100AD000C32E2898FEBC0DB407FEFDCF289ABDDFBB\n:100AE00081FFF7CF289880918B11811105C08091EB\n:100AF0000101833009F058C0EEBC0DB407FEFDCFF4\n:100B000080910101843031F4809187018EBD0DB454\n:100B100007FEFDCF809188018EBD0DB407FEFDCF8D\n:100B2000809189018D2B8EBD0DB407FEFDCF809184\n:100B30008A018EBD0DB407FEFDCF00E011E035DB6C\n:100B40008F3F9807B1F18EBD0DB407FEFDCF015068\n:100B50001109A9F7289A2898CEBC0DB407FEFDCF3D\n:100B60001EBC0DB407FEFDCF0EB400FCF9CF289AD1\n:100B7000CF3F79F080918601823C39F480918501E4\n:100B8000883119F477DF85FDC0E0DF5FD03109F0EF\n:100B9000A0CF2C988C2FDF91CF911F910F91FF90B8\n:100BA000EF90DF90CF900895DEBC0DB407FEFDCF2F\n:100BB000A7CFCFEFCFCFCF932C9AC6E02898CEBD4A\n:100BC0000DB407FEFDCF289A48DF81FFF7CF2898A4\n:100BD00080E68EBD0DB407FEFDCF289A289885E0EB\n:100BE0008EBD0DB407FEFDCF1EBC0DB407FEFDCFBC\n:100BF0000EB400FCF9CF289A2C982FDF8C7B81F45F\n:100C000080918601823C71F480918501883151F494\n:100C100031DF982F907C81E009F080E0CF9108953A\n:100C20008FEFFCCF81E0FACFCF9380918B11882397\n:100C300059F080910101843039F4289887EB8EBDFA\n:100C40000DB407FEFDCF289A2C9AC6E02898CEBD99\n:100C50000DB407FEFDCF289A00DF81FFF7CF28985B\n:100C600080918B11811105C080910101833009F0C1\n:100C700044C088ED8EBD0DB407FEFDCF809101010B\n:100C8000843031F4809187018EBD0DB407FEFDCF15\n:100C9000809188018EBD0DB407FEFDCF8091890142\n:100CA0008EBD0DB407FEFDCF80918A018EBD0DB4BF\n:100CB00007FEFDCF289A289885E08EBD0DB407FE6B\n:100CC000FDCF1EBC0DB407FEFDCF0EB400FCF9CF66\n:100CD000289A2C98C2DE8C7BB1F480918601823CEC\n:100CE000A1F480918501883181F4C4DE982F907C35\n:100CF00081E009F080E0CF9108958CED8EBD0DB4B8\n:100D000007FEFDCFBBCF8FEFF6CF81E0F4CF0F937F\n:100D10001F93CF93DF93C7E8D1E00BE811E045DAEA\n:100D20008F3F980759F089930C171D07C1F78BE483\n:100D300072DADF91CF911F910F91FFCD82E5DF91A4\n:100D4000CF911F910F9167CA0F931F93CF93DF939A\n:100D5000C7E8D1E00BE811E028DA8F3F980779F077\n:100D600089930C171D07C1F792DE181634F48BE433\n:100D7000DF91CF911F910F914ECA882311F082E528\n:100D8000F7CF86E5F5CF17DF181614F48BE443CAC6\n:100D9000882311F080E5FBCF86E5F9CF0F931F93F1\n:100DA000CF93DF93C7E8D1E00BE811E0FED98F3F86\n:100DB000980799F089930C171D07C1F735DF1816AE\n:100DC00034F48BE4DF91CF911F910F9124CA8823D3\n:100DD00011F080E5F7CF86E5F5CF82E5F3CF8FDD23\n:100DE000882349F08091860116DA8091850113DA13\n:100DF0008091840110CA80E00EDA80E00CDA80E095\n:100E0000F9CFF89481E08093E00080E28093D800ED\n:100E100029EC30E0F90110828FE996E8A1E0B0E01A\n:100E20000197A109B109000001F0D1F7C8950000B0\n:100E30001DBA109268001CBC10BE1FBA10927A0036\n:100E400010926E0010926F0010927000109271005C\n:100E500010821092BC0011B814B817B81AB81DB897\n:100E600010BA12B815B818B81BB81EB811BA0C943D\n:100E700000FE0895CF93DF9300D0CDB7DEB7209169\n:100E80009011309191112115310511F422E931E1D0\n:100E9000CE010196821B930B0F900F90DF91CF91A3\n:100EA000089580E88093610091E09093610091E85B\n:100EB00095BF85BF17DD1CBC209A289A80E18CBDA8\n:100EC00084B1866084B923982B9A8DB581608DBDDD\n:100ED00080E58CBD00DD50D980918F118823E1F32E\n:100EE0008FE794E8AEE1B0E00197A109B1090000F5\n:100EF00001F0D1F7C8950000C1E0D4E013E00FEF96\n:100F000077D980918F118823D9F34FD98F3F9807D4\n:100F1000C1F380319105A8F78057984FFC013AC082\n:100F2000A007A307AC0781078107AE07B107B40785\n:100F3000B607B807BA07BC07BE07C107C407C7078B\n:100F400080E069D9DECF96DFF82EE92E8CE363D9F5\n:100F50008E2D61D98F2DF5CF54DFD3CF10920001A4\n:100F6000D0CF00930001CDCF3ADFCBCFD0DEC9CFB9\n:100F7000EBDEC7CF13DFC5CF06DFC3CF1093010170\n:100F8000C0CFD0930101BDCFC0938B11BACF1092C7\n:100F90008B11B7CFEE0FFF1F0024001C0BBE079074\n:0A0FA000F691E02D0994F894FFCFBC\n:100FAA00FF040000010000E10000000008310032E7\n:100FBA000033003400350000005300500049005748\n:100FCA0000610079002000500053003400200053D3\n:100FDA000046006C00610073006800200046006C47\n:100FEA00006100730068006500720020005500531C\n:100FFA000042002000530065007200690061006C25\n:10100A000000006A00750064006700650073002F25\n:10101A0000410062006B006100720069006E006F9F\n:04102A0000000000C2\n:00000001FF\n"
  },
  {
    "path": "assets/hw/syscon_flasher/syscon_flasher_v2.05_teensy++2.0.hex",
    "content": ":10000000E2C000000AC1000008C1000006C10000F3\n:1000100004C1000002C1000000C10000FEC00000D9\n:10002000FCC00000FAC000000C9426120C94A3122D\n:10003000F4C00000F2C00000F0C00000EEC00000FC\n:10004000ECC00000EAC00000E8C00000E6C000000C\n:10005000E4C00000E2C00000E0C000000C94851184\n:10006000DCC000000C94890D0C94B40D0C94E50DCB\n:10007000D4C00000D2C00000D0C00000CEC000003C\n:10008000CCC00000CAC00000C8C00000C6C000004C\n:10009000C4C00000C2C000000129022904290829A7\n:1000A0001029202940298029012C022C0126022612\n:1000B000042608261026202640268026402C802C48\n:1000C0000123022304230823102320234023802319\n:1000D0000120022004200820102020204020802021\n:1000E000102C202C012F022F042F082F102F202F2F\n:1000F000402F802F00010000A501120002000062C5\n:100100000143000300005E010401030904440118D7\n:10011000020309042C0116030309041E010C0C033D\n:100120003100320033003400350000001603550062\n:100130005300420020005300650072006900610016\n:100140006C00000018035400650065006E00730029\n:1001500079006400750069006E006F000000040300\n:10016000090409024300020100C032090400000131\n:1001700002020100052400100105240100010424ED\n:100180000206052406000107058203080040090451\n:100190000100020A000000070503024000000705F5\n:1001A00084024000001201000202000020C01683F9\n:1001B000047202010203010001C1020180360181C3\n:1001C0003600030E8B1611241FBECFEFD0E2DEBF28\n:1001D000CDBF12E0A0E0B1E0E8E4FFE200E00BBF39\n:1001E00002C007900D92AC38B107D9F723E0ACE814\n:1001F000B2E001C01D92A332B207E1F710E0C3EEF6\n:10020000D0E004C02197FE010E94DC16C13ED10758\n:10021000C9F70E94E00E0C94A217F2CECF93DF93A1\n:100220001F92CDB7DEB76983DC01ED91FC910280AE\n:10023000F381E02D41E050E0BE016F5F7F4F0995F3\n:100240000F90DF91CF910895813029F4109293029D\n:1002500080919302089590919302823021F49195B8\n:1002600090939302F5CF833099F79150F9CF0F9384\n:100270001F93CF93DF9300D000D0CDB7DEB781E0DE\n:1002800090E00E94E50E8C010E94850FCE01019640\n:10029000801B910B0F900F900F900F90DF91CF91DB\n:1002A0001F910F9108954FEF61E170E084E992E0B2\n:1002B0000E94450D44E650E060E070E084E992E081\n:1002C0000E94780E40E052EC61E070E087E193E03C\n:1002D0000E948D15569A559A549A539A52985A9844\n:1002E0005D985B985A985C9A87E193E00E9480162B\n:1002F0008823D1F35E9A089590919302980F90937A\n:100300009302682F84E992E00E94FF0C80E991E05B\n:100310000197F1F70895682F87E193E07FDF80E987\n:1003200091E00197F1F787E193E00E94121418160B\n:1003300019062CF487E193E00E944B14F4CF5E98E9\n:1003400008958F929F92AF92BF92CF92DF92EF92D9\n:10035000FF920F931F93CF93DF934A015B015E9A45\n:10036000EC01C12CD12C760100E911E0C814D904AC\n:10037000EA04FB0491F0699184E992E00E94FF0C89\n:10038000C8010197F1F784E992E00E94E20C8FEF37\n:10039000C81AD80AE80AF80AE9CF80E991E001977B\n:1003A000F1F75E98DF91CF911F910F91FF90EF9041\n:1003B000DF90CF90BF90AF909F908F9008955E9AFE\n:1003C00045E050E060E070E08CED91E0BADF84E958\n:1003D00092E00E94E20C811180EE0895CF92DF92AC\n:1003E000EF92FF9245E050E060E070E082EE91E035\n:1003F000A8DF0FB6F894C0900C03D0900D03E090E6\n:100400000E03F0900F030FBE84E992E00E94AF0C40\n:1004100018161906B4F00FB6F89480910C03909159\n:100420000D03A0910E03B0910F030FBE8C199D090F\n:10043000AE09BF0981319742A105B10528F38FEEBE\n:1004400004C084E992E00E94E20CFF90EF90DF90FC\n:10045000CF9008955E9A45E050E060E070E088EE4D\n:1004600091E06FDF84E992E00E94E20C811142C0CA\n:1004700046E050E060E070E08EEE91E062DF84E9FB\n:1004800092E00E94E20C811135C046E050E060E04D\n:1004900070E085EF91E055DF84E992E00E94E20C84\n:1004A000811128C046E050E060E070E08CEF91E000\n:1004B00048DF84E992E00E94E20C81111BC047E012\n:1004C00050E060E070E083E092E03BDF84E992E09E\n:1004D0000E94E20C81110EC046E050E060E070E046\n:1004E00085E492E02EDF84E992E00E94E20C811123\n:1004F00001C074CF80EE08952F923F924F925F9289\n:100500006F927F928F929F92AF92BF92CF92DF9223\n:10051000EF92FF920F931F93CF93DF93CDB7DEB788\n:1005200062970FB6F894DEBF0FBECDBF0FB6F8943A\n:10053000C0900C03D0900D03E0900E03F0900F03D9\n:100540000FBE87E193E00E9412140497B4F40FB633\n:10055000F89480910C0390910D03A0910E03B0913B\n:100560000F030FBE8C199D09AE09BF098131974257\n:10057000A105B10530F38BEE59C08E010F5F1F4FFF\n:100580008EE0D8011D928A95E9F744E050E0B80169\n:1005900087E193E00E94DE15C9808C2D90E0982FB2\n:1005A0008827CA80C80ED92ED11CF12CE12C3AE044\n:1005B000CC0CDD1CEE1CFF1C3A95D1F78B81282F4B\n:1005C00030E0322F22278C81820F932F911D0196CC\n:1005D000B0E0A0E04C015D015AE0880C991CAA1C17\n:1005E000BB1C5A95D1F71E01B5E02B0E311CC81467\n:1005F000D904EA04FB0408F060C04D2C5E2C6F2C7B\n:100600007724C701AA27BB278F87988BA98BBA8B22\n:1006100046E050E060E070E08CE492E092DE84E935\n:1006200092E00E94E20C8823D1F084EE62960FB62D\n:10063000F894DEBF0FBECDBFDF91CF911F910F9118\n:10064000FF90EF90DF90CF90BF90AF909F908F90F2\n:100650007F906F905F904F903F902F900895D101C1\n:10066000EAE01D92EA95E9F785E0EBE0F2E0D801D7\n:1006700001900D928A95E1F74F82FF85F88785E01A\n:10068000E1E1F2E0DE01199601900D928A95E1F721\n:100690004DE050E060E070E0C80153DE84E992E094\n:1006A0000E94E20C8111C1CF99DE8111BFCF33DEF0\n:1006B00024E0D20EE11CF11C9ACF80E0B7CF2F923C\n:1006C0003F924F925F926F927F928F929F92AF92E2\n:1006D000BF92CF92DF92EF92FF920F931F93CF932F\n:1006E000DF93CDB7DEB762970FB6F894DEBF0FBECB\n:1006F000CDBF0FB6F894C0900C03D0900D03E090DE\n:100700000E03F0900F030FBE87E193E00E941214D6\n:100710000497B4F40FB6F89480910C0390910D03F4\n:10072000A0910E03B0910F030FBE8C199D09AE0965\n:10073000BF0981319742A105B10530F38BEE89C025\n:100740008E010F5F1F4F8EE0D8011D928A95E9F749\n:1007500044E050E0B80187E193E00E94DE15C980D3\n:100760008C2D90E0982F8827CA80C80ED92ED11CD6\n:10077000F12CE12C3AE0CC0CDD1CEE1CFF1C3A9570\n:10078000D1F78B81282F30E0322F22278C81820FE6\n:10079000932F911D0196B0E0A0E04C015D015AE05D\n:1007A000880C991CAA1CBB1C5A95D1F71E01B5E0F8\n:1007B0002B0E311CC814D904EA04FB0408F048C00D\n:1007C0004D2C5E2C6F2C7724C701AA27BB278F875F\n:1007D000988BA98BBA8B46E050E060E070E083E52F\n:1007E00092E0AFDD84E992E00E94E20C81114AC000\n:1007F000D101EAE01D92EA95E9F785E0EBE0F2E04D\n:10080000D80101900D928A95E1F74F82FF85F88714\n:1008100085E0E1E1F2E0DE01199601900D928A9502\n:10082000E1F74DE050E060E070E0C8018ADD84E966\n:1008300092E00E94E20C811127C0D0DD882311F0E4\n:100840008B3139F468DD24E0D20EE11CF11CB2CF0B\n:1008500080E062960FB6F894DEBF0FBECDBFDF9189\n:10086000CF911F910F91FF90EF90DF90CF90BF90AD\n:10087000AF909F908F907F906F905F904F903F9040\n:100880002F90089588EEE5CF84EEE3CF1F93CF93AA\n:10089000DF9300D01F92CDB7DEB746E050E060E0B6\n:1008A00070E08AE592E04DDD84E992E00E94E20C7E\n:1008B00081115BC083E0FE013196DF011D928A95B4\n:1008C000E9F74DE050E060E070E087E192E039DD6B\n:1008D00084E992E00E94E20C882349F014EE812F13\n:1008E0000F900F900F90DF91CF911F91089576DDBB\n:1008F000182F8111F4CF84E992E00E94E20C8983E1\n:1009000084E992E00E94E20C8A8346E050E060E0D5\n:1009100070E08AE592E015DD84E992E00E94E20C45\n:10092000811123C04DE050E060E070E085E292E08C\n:1009300008DD84E992E00E94E20C8111CFCF4EDD08\n:10094000182F8111CCCF84E992E00E94E20C8B83B6\n:10095000698187E193E062DC6A8187E193E05EDC94\n:100960006B8187E193E05ADCBACF18EEB8CF5F9283\n:100970006F927F928F929F92AF92BF92CF92DF92AF\n:10098000EF92FF920F931F93CF93DF9300D000D08D\n:100990001F92CDB7DEB725E0722E8E010F5F1F4F7D\n:1009A00030EA632E44E1542EF801872D11928A9586\n:1009B000E9F75E9A20E43FE140E050E060ED77E047\n:1009C00080E090E00E94C30E4B0128E030E040E060\n:1009D00050E061E070E080E090E00E94C30E6B01A7\n:1009E0005D98862D81500000E9F784E992E00E942D\n:1009F0007E0D65E070E080E090E00E94C5115D9A98\n:100A000065E070E080E090E00E94C5114FEF61E189\n:100A100070E084E992E00E94450D44E650E060E019\n:100A200070E084E992E00E94780E61E070E080E07E\n:100A300090E00E94C51185EC5FDC81E05DDC1092E6\n:100A4000930283E059DC8AE957DC80E055DC84E1DD\n:100A500053DC82E0F9DB50DC84E992E080D71816A1\n:100A6000190624F484E992E0ADD7F6CF83E044DCA4\n:100A700084E992E0A7D745E050E0B80184E992E02C\n:100A80000E947E0E8B81863009F453C08031C1F004\n:100A90008EEE32DC80E00F900F900F900F900F9051\n:100AA000DF91CF911F910F91FF90EF90DF90CF904A\n:100AB000BF90AF909F908F907F906F905F900895C0\n:100AC000C401029738F031F0880F991F880F991FE1\n:100AD0000197F1F75C98C601029738F031F0880F62\n:100AE000991F880F991F0197F1F75C9A84E992E0AA\n:100AF00036D71816190624F484E992E063D7F6CFA6\n:100B000098EEE92E93E0F92EE1E0EE1AF10809F4EF\n:100B10004BCF84E992E023D7181619062CF0852DC7\n:100B200081500000E9F7F0CF84E992E04BD78230A2\n:100B3000B1F765E070E080E090E00E94C51181E9C6\n:100B4000DBDB61E070E080E090E00E94C511109274\n:100B500093028AE3D1DB8EE4CFDB8FE6CDDB84E743\n:100B6000CBDB8AE3C9DB85E5C7DB83E7C5DB85E64D\n:100B7000C3DB84E6C1DB8AE3BFDB83E065DBBCDB90\n:100B800061E070E080E090E00E94C51183E9B4DB91\n:100B900061E070E080E090E00E94C51104E011E0A7\n:100BA00087ECE82E81E0F82EF80181918F01A4DB1B\n:100BB000E016F106C9F761E070E080E090E00E9485\n:100BC000C51183E999DB61E070E080E090E00E946C\n:100BD000C51107EC11E0F80181918F018DDBF1E087\n:100BE0000E3C1F07C1F761E070E080E090E00E94DA\n:100BF000C51164E984E992E002D765E070E080E025\n:100C000090E00E94C51184E992E0A9D61816190651\n:100C100024F484E992E0D6D6F6CF5E9881E03BCF0B\n:100C20008F929F92AF92BF92CF92DF92EF92FF92FC\n:100C30000F931F93CF93DF9300D000D01F92CDB7B7\n:100C4000DEB7C12CD12C760182E7982E90E8892E50\n:100C500020E9A22EBB24B3949982CA82DB82EC8263\n:100C60008D8245E050E060E070E0CE01019669DBE6\n:100C700000E810E084E992E072D6892B21F4C501E6\n:100C80000197F1F7F7CF84E992E09CD6682F87E1CE\n:100C900093E0C4DA0150110969F780E8C80ED11C4D\n:100CA000E11CF11CC114D10488E0E806F104A1F6AE\n:100CB00080E00F900F900F900F900F90DF91CF91E9\n:100CC0001F910F91FF90EF90DF90CF90BF90AF906A\n:100CD0009F908F9008952F923F924F925F926F92C4\n:100CE0007F928F929F92AF92BF92CF92DF92EF92BC\n:100CF000FF920F931F93CF93DF93CDB7DEB72E975D\n:100D00000FB6F894DEBF0FBECDBF0FB6F894C090FB\n:100D10000C03D0900D03E0900E03F0900F030FBE74\n:100D200087E193E00E9412140497B4F40FB6F8948C\n:100D300080910C0390910D03A0910E03B0910F03CD\n:100D40000FBE8C199D09AE09BF0981319742A105DB\n:100D5000B10530F38BEE80C08E010F5F1F4F8EE028\n:100D6000F80111928A95E9F744E050E0B80187E173\n:100D700093E00E94DE158980882D90E0982F8827C7\n:100D80008A80880E992E911CB12CA12C3AE0880CF7\n:100D9000991CAA1CBB1C3A95D1F74B80842D90E07E\n:100DA000982F88274C80480E592E511CFFEF4F1A60\n:100DB0005F0A712C612C5AE0440C551C661C771C90\n:100DC0005A95D1F71E0125E0220E311C60E9C62E8E\n:100DD000DD24D39484149504A604B70478F5F101B6\n:100DE0002AE011922A95E9F782E789838A829B8219\n:100DF000AC82E0E8ED8345E050E060E070E0C801DF\n:100E0000A0DA80E8E82EF12C84E992E0A8D5892BBD\n:100E100021F4C6010197F1F7F7CF84E992E0D2D52A\n:100E2000682F87E193E0FAD9F1E0EF1AF10861F752\n:100E300020E8820E911CA11CB11CCCCF87E193E06D\n:100E40000E941214181619062CF487E193E00E94F0\n:100E50004B14F4CF5E9880E02E960FB6F894DEBF68\n:100E60000FBECDBFDF91CF911F910F91FF90EF90FB\n:100E7000DF90CF90BF90AF909F908F907F906F90BA\n:100E80005F904F903F902F9008952F923F924F92F6\n:100E90005F926F927F928F929F92AF92BF92CF920A\n:100EA000DF92EF92FF920F931F93CF93DF93CDB713\n:100EB000DEB7CD50D4400FB6F894DEBF0FBECDBF25\n:100EC0008E010F5F1B4F8DE0D8011D928A95E9F7C7\n:100ED000FE0131967F0180E094E0DF01FC011D926C\n:100EE0003197E9F70FB6F89480900C0390900D03BA\n:100EF000A0900E03B0900F030FBE87E193E00E9415\n:100F000012140297B4F40FB6F89480910C039091E8\n:100F10000D03A0910E03B0910F030FBE881999091C\n:100F2000AA09BB0981319742A105B10530F38BEEC7\n:100F30007EC08DE0D8011D928A95E9F742E050E02D\n:100F4000B80187E193E00E94DE15F801308021802E\n:100F50005E9A0FB6F89440900C0350900D03609089\n:100F60000E0370900F030FBED12CC12C812C64E0B6\n:100F7000962EC114F4E0DF0678F50FB6F894809150\n:100F80000C0390910D03A0910E03B0910F030FBEBF\n:100F900084199509A609B70981329E44A105B105B6\n:100FA00008F064C187E193E00E9412145C0100978D\n:100FB00001F38C0D9D1D8130944018F05401AC1844\n:100FC000BD08B7016C0D7D1DA50187E193E00E946E\n:100FD000DE15CA0CDB1CCDCF45E050E060E070E0D0\n:100FE00083E392E0AED94E0181E0880E981E67013E\n:100FF00050E9A52EBB24B394D6016D916D0184E90F\n:1010000092E0FDD4C5010197F1F784E992E0DAD4CA\n:10101000C814D90489F784E992E0ECD4C50101979A\n:10102000F1F784E992E0CED48823D9F081EEC35F52\n:10103000DB4F0FB6F894DEBF0FBECDBFDF91CF916F\n:101040001F910F91FF90EF90DF90CF90BF90AF90E6\n:101050009F908F907F906F905F904F903F902F90D8\n:10106000089545E050E060E070E089E392E069D9DE\n:101070004701BEEF9B1A40E9A42EBB24B394F601AE\n:1010800061916F0184E992E0BAD4C5010197F1F74B\n:1010900084E992E097D4C814D90489F784E992E0EE\n:1010A000A9D4C5010197F1F784E992E08BD4882394\n:1010B00011F082EEBCCF46E050E060E070E081E6E7\n:1010C00092E03FD984E992E07DD4882311F086EE46\n:1010D000AECF432C512C542C4424420C511C712C67\n:1010E000612C3AE0440C551C661C771C3A95D1F7EC\n:1010F00083E0F8013496DF011D928A95E9F785E0D7\n:10110000EBE0F2E0D80101900D928A95E1F7F80149\n:101110005682678285E0EFE3F2E0D80118960190ED\n:101120000D928A95E1F74DE050E060E070E0C80173\n:1011300008D984E992E046D48111C9CF4FD98111F1\n:1011400076CF45E050E060E070E083E392E0F9D8CC\n:101150005E01FFEFAF1AFDEFBF0A47012DEF921AB4\n:1011600090E9C92EDD24D394D5016D915D0184E908\n:1011700092E045D4C6010197F1F784E992E022D4C8\n:101180008A149B0489F784E992E034D4C60101975C\n:10119000F1F784E992E016D4811148CF45E050E0A0\n:1011A00060E070E089E392E0CCD86E01BFEFCB1A2B\n:1011B000BCEFDB0A5701ECEFBE1A80E9E82EFF24F2\n:1011C000F394D6016D916D0184E992E018D4C701C2\n:1011D0000197F1F784E992E0F5D3AC14BD0489F7E7\n:1011E00084E992E007D4C7010197F1F784E992E01E\n:1011F000E9D381115ECF46E050E060E070E081E627\n:1012000092E09FD884E992E0DDD3811160CFB2E013\n:101210005B0E611C711CF801349683E0DF011D92A6\n:101220008A95E9F785E0EBE0F2E0D80101900D92B4\n:101230008A95E1F7F80156826782D801189685E011\n:10124000EFE3F2E001900D928A95E1F74DE050E076\n:1012500060E070E0C80175D884E992E0B3D38111F1\n:1012600036CFBCD88111E3CE5E98E1CE8CEEDFCED6\n:101270002F923F924F925F926F927F928F929F92A6\n:10128000AF92BF92CF92DF92EF92FF920F931F9394\n:10129000CF93DF93CDB7DEB7C551D4400FB6F894E6\n:1012A000DEBF0FBECDBF8E010F5F1B4F8DE0D8019B\n:1012B0001D928A95E9F7FE0131967F0180E094E066\n:1012C000DF01FC011D923197E9F70FB6F894809089\n:1012D0000C0390900D03A0900E03B0900F030FBE6F\n:1012E00087E193E00E9412140297B4F40FB6F894C9\n:1012F00080910C0390910D03A0910E03B0910F0308\n:101300000FBE88199909AA09BB0981319742A10525\n:10131000B10530F38BEEB4C08DE0D8011D928A95F3\n:10132000E9F742E050E0B80187E193E00E94DE1562\n:10133000F801908081805E9A0FB6F89420900C039B\n:1013400030900D0340900E0350900F030FBED12C30\n:10135000C12C612C64E0762EC114F4E0DF0678F530\n:101360000FB6F89480910C0390910D03A0910E0399\n:10137000B0910F030FBE82199309A409B5098132F8\n:101380009E44A105B10508F02FC287E193E00E94B9\n:1013900012145C01009701F38C0D9D1D8130944067\n:1013A00018F05301AC18BD08B7016C0D7D1DA501E7\n:1013B00087E193E00E94DE15CA0CDB1CCDCF46E02E\n:1013C00050E060E070E083E592E00E94A10184E9D2\n:1013D00092E0F8D281110AC2892D90E0982F8827D7\n:1013E000880E992E911CB12CA12C3AE0880C991CE6\n:1013F000AA1CBB1C3A95D1F7492C5A2C6B2C77248C\n:10140000C501AA27BB27C05FDB4F88839983AA83C6\n:10141000BB83C051D440180194E0290E311CD10186\n:10142000E3E01D92EA95E9F785E0EBE0F2E0D80110\n:1014300001900D928A95E1F7D80116964C92169775\n:10144000C05FDB4FE881C051D4401796EC93680130\n:10145000F8E0CF0ED11C85E0E1E1F2E0D601019089\n:101460000D928A95E1F74DE050E060E070E0C80130\n:101470000E94A10184E992E0A5D28823D9F084EEEC\n:10148000CB5EDB4F0FB6F894DEBF0FBECDBFDF9152\n:10149000CF911F910F91FF90EF90DF90CF90BF9071\n:1014A000AF909F908F907F906F905F904F903F9004\n:1014B0002F9008950E94EE01811139C045E050E05F\n:1014C00060E070E083E392E00E94A1019E012F5F43\n:1014D0003E4FC25FDB4F39832883CE50D440670133\n:1014E00090E9292E33243394D6016D916D0184E95E\n:1014F00092E085D2C1010197F1F784E992E062D2CE\n:10150000C25FDB4FE881F981CE50D440CE16DF06B2\n:1015100059F784E992E06ED2C1010197F1F784E9AD\n:1015200092E050D2882309F444C081EEA9CF8B31D8\n:1015300009F0A6CF46E050E060E070E08CE492E075\n:101540000E94A10184E992E03DD2811198CFD1019E\n:10155000E3E01D92EA95E9F785E0EBE0F2E0D801DF\n:1015600001900D928A95E1F7D80116964C92169744\n:10157000C05FDB4FE881C051D4401796EC9385E003\n:10158000E1E1F2E0D60101900D928A95E1F74DE09C\n:1015900050E060E070E0C8010E94A10184E992E09F\n:1015A00011D281116CCF0E94EE01882309F486CFFD\n:1015B00067CF45E050E060E070E089E392E00E9490\n:1015C000A10197013E5FCC5EDB4F39832883C45174\n:1015D000D44080E9282E33243394D6016D916D01D7\n:1015E00084E992E00CD2C1010197F1F784E992E01D\n:1015F000E9D1CC5EDB4FE881F981C451D440EC15D0\n:10160000FD0559F784E992E0F5D1C1010197F1F7A1\n:1016100084E992E0D7D1882311F082EE31CF46E001\n:1016200050E060E070E081E692E00E94A10184E970\n:1016300092E0C8D1882311F086EE22CFF8013496CB\n:1016400083E0DF011D928A95E9F785E0EBE0F2E0A7\n:10165000D80101900D928A95E1F7F8014682C05FAA\n:10166000DB4F2881C051D4402783D801189685E0EC\n:10167000EFE3F2E001900D928A95E1F74DE050E042\n:1016800060E070E0C8010E94A10184E992E09AD173\n:101690008111D2CF0E94EE018111F2CE45E050E0DF\n:1016A00060E070E083E392E00E94A1016E013FEFF1\n:1016B000C31A3DEFD30A37018DEF781A00E911E024\n:1016C000D6016D916D0184E992E099D1C80101972D\n:1016D000F1F784E992E076D16C147D0489F784E90E\n:1016E00092E088D1C8010197F1F784E992E06AD1CC\n:1016F00081111BCF45E050E060E070E089E392E0AB\n:101700000E94A1016E01BFEFCB1ABCEFDB0AECEF28\n:10171000FE1A00E911E0D6016D916D0184E992E0B5\n:101720006ED1C8010197F1F784E992E04BD1EC1436\n:10173000FD0489F784E992E05DD1C8010197F1F7D2\n:1017400084E992E03FD1811168CF46E050E060E04B\n:1017500070E081E692E00E94A10184E992E032D13A\n:1017600081116ACFB2E09B0EA11CB11CE1E0F4E054\n:10177000EC0FFD1F349683E0DF011D928A95E9F797\n:1017800085E0EBE0F2E0DE01AF5FBB4F01900D9230\n:101790008A95E1F7C95FDB4F9882C750D440C85F94\n:1017A000DB4FA882C850D440A1E0B4E0AC0FBD1F0D\n:1017B000189685E0EFE3F2E001900D928A95E1F74B\n:1017C0004DE050E060E070E0CE018F5F9B4F0E94E3\n:1017D000A10184E992E0F6D081112ECF0E94EE01A2\n:1017E00081114ECE5E984CCE8CEE4ACE88EE48CE1D\n:1017F000CF93DF935E9AC1EED1E087E193E00E9440\n:101800001214892B09F4A8C087E193E00E944B14BD\n:10181000809390028230A0F0803109F475C080324C\n:1018200009F449C0803809F48BC0803F09F44CC0EA\n:1018300090919102911104C080EE0E948B01DDCF46\n:10184000873009F45CC020F5823009F44FC0C0F441\n:101850008823A1F1813089F60E94370190938F028D\n:1018600080938E0265E087E193E00E940E01609113\n:101870008F0287E193E00E940E0160918E021FC0EB\n:101880008430C1F1A8F1863009F0B7CFFEDA34C058\n:101890008031D1F140F48830A1F18A3009F0ADCF28\n:1018A0000E94460429C0803809F44AC0803F61F094\n:1018B000803209F0A2CF0E94DF011EC062E087E102\n:1018C00093E00E940E0199CF0E94370190938F02FE\n:1018D00080938E0262E087E193E00E940E0165E052\n:1018E00087E193E00E940E0161E2BDCFF4D985CF7C\n:1018F00097D983CF0E947C02809392029ECFB8DC5E\n:10190000FBCF0E945F03F8CF109292028091910268\n:1019100081110DC02CD880939202882371F00E940F\n:101920002A0280939202811105C0D0939102809186\n:10193000920283CF10929102FACFC0939202F7CF16\n:101940005E9864EF71E080E090E01FD5E0918C023A\n:10195000F0918D02099551CFDF91CF91089550916B\n:10196000C8024091C702852F90E0242F30E0541721\n:1019700018F0821B930B0895805C9F4FFACF509113\n:101980009E0240919D02252F30E0842F90E0821B23\n:10199000930B541710F0879608950197089580913E\n:1019A000C802E091C7028E1751F0EF5FE03408F0F3\n:1019B000E0E0F0E0E753FD4F808190E008958FEF85\n:1019C0009FEF08959091C8028091C702981779F00F\n:1019D0009091C7029F5F903408F090E0E92FF0E00B\n:1019E000E753FD4F80819093C70290E008958FEFF9\n:1019F0009FEF089580919C028111FCCF0895209162\n:101A0000C90023FD06C021E0FC01228390E080E0B4\n:101A100008958091CE018F3F41F080919C02811109\n:101A200004C0E091CE01F0E051D390919E028091EC\n:101A30009D02981304C08091C80085FD19C0809153\n:101A40009E028F5F8832F8F490919D029817E1F31F\n:101A5000E82FF0E0E156FD4F608391E090939C0207\n:101A600080939E028091C90080628093C90008C063\n:101A70008FB7F8946093CE0091E090939C028FBF53\n:101A800081E090E0089580E0DFCF1F93CF93DF9354\n:101A9000EB01142F4093CE014F3F29F0842F05D343\n:101AA000E12FF0E019D3C0FF24C0C13080E1D80796\n:101AB00000F582E08093C8002197D093CD00C093B9\n:101AC000CC008091C90083FD10C01092C802109212\n:101AD000C70210929E0210929D0210929C0286E014\n:101AE0008093CA0088ED8093C900DF91CF911F9148\n:101AF00008951092C800D695C795DECF80919C02BC\n:101B00008111FCCF1092C9001092C8021092C70236\n:101B100008951F920F920FB60F9211240BB60F92D9\n:101B20002F938F939F93EF93FF939091CE0080918B\n:101B3000C8028F5F803408F080E02091C702281728\n:101B400039F0E82FF0E0E753FD4F90838093C8020F\n:101B5000FF91EF919F918F912F910F900BBE0F905E\n:101B60000FBE0F901F9018951F920F920FB60F92F5\n:101B700011240BB60F928F939F93EF93FF93909145\n:101B80009E0280919D02981310C08091C9008F7DA4\n:101B90008093C900FF91EF919F918F910F900BBEA1\n:101BA0000F900FBE0F901F90189580919D028F5F30\n:101BB000883208F080E0E82FF0E0E156FD4F908198\n:101BC0009093CE0080939D02E5CF1F920F920FB6A7\n:101BD0000F9211240BB60F928F93EF93FF931092F5\n:101BE0009C028091CE018F3F21F0E091CE01F0E088\n:101BF00073D2FF91EF918F910F900BBE0F900FBE9C\n:101C00000F901F901895E4E9F2E0128288EE93E0BD\n:101C1000A0E0B0E083839483A583B68317828CE62B\n:101C200092E0918380830895CF92DF92EF92FF92AA\n:101C30000F931F93CF93DF936C01EB017B01E40EB5\n:101C4000F51E10E000E0CE15DF0561F06991D601C8\n:101C5000ED91FC910190F081E02DC6010995080FEE\n:101C6000191FF1CFC801DF91CF911F910F91FF9004\n:101C7000EF90DF90CF900895CF92DF92EF92FF9296\n:101C8000CF93DF93EC010FB6F894C0900C03D09083\n:101C90000D03E0900E03F0900F030FBEE881F98171\n:101CA0000284F385E02DCE01099597FF1AC00FB687\n:101CB000F89480910C0390910D03A0910E03B091C4\n:101CC0000F030FBE8C199D09AE09BF094B815C81C2\n:101CD0006D817E8184179507A607B707F8F28FEF0D\n:101CE0009FEFDF91CF91FF90EF90DF90CF9008951D\n:101CF000FC0143835483658376830895AF92BF923A\n:101D0000CF92DF92EF92FF920F931F93CF93DF93C7\n:101D10005C017B018B01040F151FEB016E01CE18D6\n:101D2000DF08C017D10739F0C501A6DF97FF0FC044\n:101D300081E0F5018783C601DF91CF911F910F915B\n:101D4000FF90EF90DF90CF90BF90AF900895899370\n:101D5000E5CFCF92DF92EF92FF926B017C01C1142D\n:101D6000D104E104F10441F00E944717A701960154\n:101D70000E94C0166B017C01C701B601FF90EF9075\n:101D8000DF90CF900895CF92DF92EF92FF926B0198\n:101D90007C01C216D306E406F5065CF4CA01B9015B\n:101DA0006C197D098E099F09D4DFC60ED71EE81E67\n:101DB000F91EC701B601FF90EF90DF90CF90089514\n:101DC0004ED10E94530114DDFECF0F931F93CF938A\n:101DD000DF938230910510F482E090E0E0912103DE\n:101DE000F091220330E020E070E060E0D0E0C0E05D\n:101DF000B0E0A0E0309799F42115310509F44AC00C\n:101E0000281B390B24303105D8F58A819B81611557\n:101E1000710589F1FB0193838283FE0111C040812A\n:101E200051810281138148175907E0F0481759077B\n:101E300099F4109761F012960C93129713961C93D5\n:101E40003296CF01DF91CF911F910F9108950093AA\n:101E5000210310932203F4CF2115310551F04217CD\n:101E6000530738F0A901DB019A01BD01DF01F80138\n:101E7000C1CFEF01F9CF9093220380932103CDCFFF\n:101E8000FE01E20FF31F81939193225031093983B0\n:101E90002883D7CF2091090330910A03232B41F4E3\n:101EA0002091D1013091D20130930A03209309038C\n:101EB0002091CF013091D0012115310541F42DB78A\n:101EC0003EB74091D3015091D401241B350BE091D2\n:101ED0000903F0910A03E217F307A0F42E1B3F0B4E\n:101EE0002817390778F0AC014E5F5F4F241735078C\n:101EF00048F04E0F5F1F50930A03409309038193EC\n:101F000091939FCFF0E0E0E09CCFCF93DF930097D9\n:101F1000E9F0FC01329713821282A0912103B09163\n:101F20002203ED0130E020E01097A1F420813181FF\n:101F3000820F931F2091090330910A032817390754\n:101F400009F061C0F0930A03E0930903DF91CF9198\n:101F50000895EA01CE17DF07E8F54A815B819E010B\n:101F600041155105B1F7E901FB83EA834991599184\n:101F7000C40FD51FEC17FD0761F480819181029693\n:101F8000840F951FE90199838883828193819B83C4\n:101F90008A83F0E0E0E012968D919C911397009770\n:101FA000B9F52D913C911197CD010296820F931FA7\n:101FB0002091090330910A032817390739F6309721\n:101FC00051F51092220310922103B0930A03A093BB\n:101FD0000903BCCFD383C28340815181840F951FF5\n:101FE000C817D90761F44E5F5F4F88819981480F08\n:101FF000591F518340838A819B819383828321155A\n:10200000310509F0B0CFF0932203E09321039ECF76\n:10201000FD01DC01C0CF13821282D7CF1DBA10920E\n:1020200068001CBC10BE1FBA10927A0010926E009D\n:1020300010926F0010927000109271001092C900FF\n:102040001092BC0011B814B817B81AB81DB810BA5D\n:1020500012B815B818B81BB81EB811BA0895F8947C\n:10206000E1E6F0E020E82083108283E084BD85BDB6\n:10207000EEE6F0E080818160808391E090938000C3\n:1020800082E0809381009093B0008093B1009093A0\n:1020900090008093910086E880937A0020937B00E3\n:1020A00010927E00B1D1789408958E3270F4E8E9F0\n:1020B000F0E0880FE80FF11D2591E491F0E09FB763\n:1020C000F8948181822B81839FBF0895EE3250F472\n:1020D000EE0FED58FF4E0994EE3220F4EE0FE1536F\n:1020E000FF4E09940895589AB6C0599AD0C05A9A8A\n:1020F00008955B9A08955C9A08955D9A08955E9A92\n:1021000008955F9A0895709A0895719A0895409A73\n:102110000895419A0895429A0895439A0895449AD9\n:10212000C8C0459AC0C0469AB8C0479A0895769AE2\n:102130000895779A0895289A0895299A08952A9AD1\n:1021400008952B9A08952C9A9CC02D9A88C02E9A97\n:102150008CC02F9A90C0109A0895119A0895129ADF\n:102160000895139A0895149A0895159A0895169A41\n:102170000895179A0895749A0895759A0895889AFB\n:102180000895899A08958A9A08958B9A08958C9A49\n:1021900008958D9A08958E9A08958F9A0895589863\n:1021A0005AC0599874C05A9808955B9808955C98DD\n:1021B00008955D9808955E9808955F9808957098C1\n:1021C0000895719808954098089541980895429807\n:1021D00008954398089544986CC0459864C0469803\n:1021E0005CC0479808957698089577980895289840\n:1021F0000895299808952A9808952B9808952C9861\n:1022000040C02D982CC02E9830C02F9834C0109804\n:1022100008951198089512980895139808951498A0\n:102220000895159808951698089517980895749824\n:1022300008957598089588980895899808958A98BA\n:1022400008958B9808958C9808958D9808958E9888\n:1022500008958F980895E4B5EF7DE4BD0895E09169\n:102260008000EF77E09380000895E0918000EF7D9B\n:10227000E09380000895E0918000E77FE093800084\n:102280000895E091B000EF77E093B0000895E091F9\n:10229000B000EF7DE093B0000895E0919000EF77FB\n:1022A000E09390000895E0919000EF7DE09390001E\n:1022B0000895E0919000E77FE09390000895F894EE\n:1022C00084B7877F84BF80916000806180936000C5\n:1022D0001092600080E29EE40197F1F781E0809324\n:1022E000E00080E28093D80080E69AEE0197F1F753\n:1022F00095DE0C9400FEFFCFF89490DE80E69AEE17\n:102300000197F1F70C940000FFCF8F938FB78F9355\n:1023100080910B038D5F8D37D0F480930B038091F8\n:102320000C038F5F80930C03D8F080910D038F4FC7\n:1023300080930D03A8F080910E038F4F80930E03BE\n:1023400078F080910F038F4F80930F0309C08D5752\n:1023500080930B0380910C038E5F80930C0328F70E\n:10236000809110038C5F8093100358F080911103CB\n:102370008F4F8093110328F0809112038F4F809329\n:1023800012038F918FBF8F911895CF92DF92EF92AA\n:10239000FF926B017C0119D09B01C114D104E104AF\n:1023A000F10429F4FF90EF90DF90CF9008950DD0C5\n:1023B000621B730B683E734080F381E0C81AD1083A\n:1023C000E108F10828513C4FE8CF0FB6F89466B504\n:1023D00015B27091100380911103909112030FBEFA\n:1023E00010FE05C06F3F19F07C5F8F4F9F4F112487\n:1023F0000024660F001C660F001C70290895809150\n:10240000E80080FFFCCF08958091D80087FF02C0CC\n:1024100085FF1BC081E88093D70080EA8093D800B5\n:1024200086E189BD09B400FEFDCF80E98093D80024\n:102430001092E000109225031092240310922303BF\n:102440001092E1008DE08093E20008951F920F92B8\n:102450000FB60F9211240BB60F922F933F934F9309\n:102460005F936F937F938F939F93AF93BF93EF93FC\n:10247000FF939091E1001092E10093FF11C0109240\n:10248000E90081E08093EB001092EC0082E28093FF\n:10249000ED0088E08093F000109225031092230352\n:1024A00092FF1DC0809125038823C9F080911603F7\n:1024B000882359F0815080931603811106C084E06F\n:1024C0008093E9008AE38093E800809115038823D4\n:1024D00031F0815080931503811101C0F0DE90FF2F\n:1024E0000CC080E18093E2001092250381E080938C\n:1024F000240380EA8093D80019BC809124038823A8\n:1025000079F094FF0DC086E189BD09B400FEFDCFCE\n:1025100080E98093D8008DE08093E200109224033C\n:10252000FF91EF91BF91AF919F918F917F916F91AB\n:102530005F914F913F912F910F900BBE0F900FBE67\n:102540000F901F9018951F920F920FB60F921124A3\n:102550000BB60F92EF92FF920F931F932F933F931F\n:102560004F935F936F937F938F939F93AF93BF939B\n:10257000CF93DF93EF93FF931092E9008091E800EF\n:1025800083FF20C0D091F100C091F100E090F100F4\n:10259000F090F1000091F1001091F1002091F10014\n:1025A0003091F10082EF8093E800C63009F05BC003\n:1025B000E4EFF0E085919591E816F90639F035964B\n:1025C000C150C1F781E28093EB002BC085919591BA\n:1025D0000817190711F03396F3CF4591559184915F\n:1025E0002F3F310519F010F02FEF30E0821708F47B\n:1025F000282F3EEF8091E800982F9570D9F382FD47\n:1026000010C0822F213208F080E2982F911124C04F\n:10261000922F981B892F3093E80091111BC0203214\n:10262000C8F4FF91EF91DF91CF91BF91AF919F914E\n:102630008F917F916F915F914F913F912F911F915A\n:102640000F91FF90EF900F900BBE0F900FBE0F9069\n:102650001F901895282FCECFFA0145914093F10095\n:10266000AF019150D3CFC53049F48EEF8093E8008D\n:10267000C6DE8E2D80688093E300D3CFC93021F56C\n:10268000D111A0CFE09225031092230310921603DC\n:102690008EEF8093E80081E0E7EBF1E08093E900C2\n:1026A00095919093EB00992331F095919093EC00E4\n:1026B00095919093ED008F5F853081F78EE1809347\n:1026C000EA001092EA00ADCFC83061F4D03809F0CA\n:1026D00079CF95DE809125038093F1008EEF809372\n:1026E000E8009FCFC13279F4D13A09F06BCF87DE91\n:1026F000E5EDF1E080818093F100319681E0EC3DE1\n:10270000F807C1F7EBCFC03209F047C0D13209F06A\n:1027100059CF8091E80082FFFCCFE5EDF1E0809198\n:10272000F1008083319691E0EC3DF907C1F78BEF22\n:102730008093E8008EEF8093E8003091D5014091BE\n:10274000D6018091D7012091D80190E0B0E0A0E0BF\n:10275000DC0199278827942B832BB22B863891058F\n:10276000A105B10521F48FE0809315035ACF863976\n:102770009105A105B10509F054CF84E08093E900EB\n:102780009FEF8091EE00837009F4B6DD9093E8002E\n:102790008091E80082FDFCCFF4CFC23239F4D1320F\n:1027A00009F010CFE09223032ADE98CFC33221F440\n:1027B000D13209F007CFF8CFC11111C020DED238D5\n:1027C00049F40093E900C091EB00C5FBCC27C0F9A8\n:1027D0001092E900C093F1001092F1007FCF8C2F8E\n:1027E0008D7F813009F0EECED23009F0EBCEEF28AC\n:1027F00009F0E8CE0F778FEF800F863008F0E2CE39\n:102800008EEF8093E8000093E900C33009F4DACE3C\n:1028100089E18093EB0081E090E001C0880F0A9588\n:10282000EAF74DCFFC018FB7F894909125039111F1\n:102830000CC090E08FBF2085318537FD03C09F3FDE\n:1028400009F09F5F892F90E0089593E09093E9004D\n:102850009091F2009111EECF2091E80022FFE9CF94\n:1028600025FDE7CF2BE62093E800E4CFCF93DF935D\n:10287000EC018885998597FF09C0E881F981028478\n:10288000F385E02DCE0109959987888788859985FC\n:10289000DF91CF910895FC012085318537FD07C078\n:1028A0004FEF5FEF51874087C901992708959FB780\n:1028B000F89480912503811104C09FBF8FEF9FEF93\n:1028C000089583E08093E9002BE68091E80085FD80\n:1028D00005C082FFF2CF2093E800F7CF8091F1008E\n:1028E0002091E80025FD03C02BE62093E8009FBF60\n:1028F00090E0089580912503882361F08FB7F894C4\n:1029000094E09093E9009091F2008FBF80E4891BDE\n:1029100090E0089590E080E00895BF92CF92DF921A\n:10292000EF92FF920F931F93CF93DF937C018091DF\n:102930002503811110C081E0F701828310E000E0DF\n:10294000C801DF91CF911F910F91FF90EF90DF9021\n:10295000CF90BF9008952FB7F89484E08093E9005A\n:1029600080911403882341F08091E80085FD02C026\n:102970002FBFE1CF1092140310E000E084E0D82EC6\n:1029800090E4C92EA1EFB0E03AE3B32E33E0411555\n:10299000510509F4C0C08091E400815F9091E80086\n:1029A00095FD16C02FBF9091E400891306C081E009\n:1029B00080931403F7018283C3CF90912503911173\n:1029C00002C081E0F7CF2FB7F894D092E900E6CFAC\n:1029D0008091F2009C2D981B9417150611F008F0B9\n:1029E000942FE92FF0E04E1B5F0B0E0F1F1FEB0122\n:1029F000E0E4E91BE03428F4EE0FFF27EE5FFA4E27\n:102A0000099480C099919C9399919C9399919C93DE\n:102A100099919C9399919C9399919C9399919C9352\n:102A200099919C9399919C9399919C9399919C9342\n:102A300099919C9399919C9399919C9399919C9332\n:102A400099919C9399919C9399919C9399919C9322\n:102A500099919C9399919C9399919C9399919C9312\n:102A600099919C9399919C9399919C9399919C9302\n:102A700099919C9399919C9399919C9399919C93F2\n:102A800099919C9399919C9399919C9399919C93E2\n:102A900099919C9399919C9399919C9399919C93D2\n:102AA00099919C9399919C9399919C9399919C93C2\n:102AB00099919C9399919C9399919C9399919C93B2\n:102AC00099919C9399919C9399919C9399919C93A2\n:102AD00099919C9399919C9399919C9399919C9392\n:102AE00099919C9399919C9399919C9399919C9382\n:102AF00099919C9399919C9399919C9399919C9372\n:102B000099919C93BE018091E80085FFB092E80006\n:102B1000309316033CCF2FBF13CF2FEF3FEFFC01B5\n:102B20003187208771DC0FB6F89480910C03909167\n:102B30000D03A0910E03B0910F030FBE9C01809175\n:102B40002503882329F068EC70E080E090E01DCC3C\n:102B500080912403882301F10FB6F89440910C036F\n:102B600050910D0360910E0370910F030FBE809181\n:102B70002403882389F00FB6F89480910C03909178\n:102B80000D03A0910E03B0910F030FBE841B950B94\n:102B90008B3F910560F308950FB6F89480910C0374\n:102BA00090910D03A0910E03B0910F030FBE821BF5\n:102BB000930B853C994008F4C2CF08958F929F9261\n:102BC000AF92BF92CF92DF92EF92FF920F931F933B\n:102BD000CF93DF93EC010FB6F894C0900C03D09024\n:102BE0000D03E0900E03F0900F030FBE4115510549\n:102BF00029F18885998597FD11C0FB0180838FEFAE\n:102C00009FEF99878887415051096F5F7F4F91E00F\n:102C10004115510521F441E050E010C090E080E002\n:102C2000FA01492F582F13E00BE68FB7F8949091D3\n:102C30002503911111C08FBF81E08F83CA01DF91FD\n:102C4000CF911F910F91FF90EF90DF90CF90BF90A9\n:102C5000AF909F908F9008951093E9009091E800B5\n:102C600092FFE9CF2091F2002E171F0611F008F015\n:102C70002E2F362FDB019A2F931B921720F4909161\n:102C8000F1009D93F8CF30E0620F731F9091E80040\n:102C900095FF0093E8008FBF420F531FE21BF30B19\n:102CA00069F20FB6F89480910C0390910D03A091F6\n:102CB0000E03B0910F030FBE8C199D09AE09BF0919\n:102CC0008B809C80AD80BE8088159905AA05BB05C8\n:102CD00008F4ABCFB1CF8FB7F89490912503992327\n:102CE00061F090911603992341F094E09093E900EC\n:102CF0009AE39093E800109216038FBF0895EBCFEC\n:102D000080912503882329F090912303937081E01B\n:102D100009F480E00895E7E1F3E01186108612825D\n:102D200088EE93E0A0E0B0E083839483A583B6832C\n:102D300017828EE792E0918380830895A1E21A2E94\n:102D4000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1F4F\n:102D5000A217B307E407F50720F0A21BB30BE40B9F\n:102D6000F50B661F771F881F991F1A9469F76095E6\n:102D70007095809590959B01AC01BD01CF010895A0\n:102D8000052E97FB16F400940FD057FD05D0D6DF23\n:102D900007FC02D046F408C0509540953095219527\n:102DA0003F4F4F4F5F4F0895909580957095619577\n:102DB0007F4F8F4F9F4F0895EE0FFF1F0024001C81\n:102DC0000BBE0790F691E02D099409D0A59F900DB8\n:102DD000B49F900DA49F800D911D11240895A29F72\n:102DE000B001B39FC001A39F700D811D1124911DDF\n:102DF000B29F700D811D1124911D08958F929F9295\n:102E0000AF92BF92CF92DF92EF92FF92CF93DF9378\n:102E1000EC01688179818A819B8161157105810549\n:102E2000910521F464E279ED8BE597E02DE133EF34\n:102E300041E050E0A5DF49015A019B01AC01A7EA3E\n:102E4000B1E4C3DF6B017C01ACEEB4EFA5019401EA\n:102E500075D0C60ED71EE81EF91EF7FE06C081E02B\n:102E6000C81AD108E10880E8F80AC882D982EA8243\n:102E7000FB82C701B6019F77DF91CF91FF90EF9062\n:102E8000DF90CF90BF90AF909F908F9008958F92DA\n:102E90009F92AF92BF92CF92DF92EF92FF9260919A\n:102EA000000170910101809102019091030161156F\n:102EB00071058105910521F464E279ED8BE597E0D8\n:102EC0002DE133EF41E050E05BDF49015A019B0106\n:102ED000AC01A7EAB1E479DF6B017C01ACEEB4EFA1\n:102EE000A50194012BD0C60ED71EE81EF91EF7FED1\n:102EF00006C081E0C81AD108E10880E8F80AC0924B\n:102F00000001D0920101E0920201F0920301C70199\n:102F1000B6019F77FF90EF90DF90CF90BF90AF907A\n:102F20009F908F90089560930001709301018093AA\n:102F30000201909303010895B7FF47CF46DF821B3C\n:082F4000930B0895F894FFCFF4\n:102F48000100000000FBC013BFE607C0BFEC07C0CC\n:102F5800BFEE07CFEB07ECF5EA07FCB2FF0E72FCF9\n:102F6800B2FF0E76FCB2FF0E77FCB2FF0E9EFDFCA0\n:102F7800B2FF0E73624C69DD6D4C77DD1D4C72DD5E\n:102F8800294C65DD324C75DD62FCA1FF0ED5EA07E0\n:102F9800DFC8AFE60712ECEB070FFCB2FF0E119B80\n:102FA800A793DFF6FE4C00EEE3FF118BFCA1FF0EAA\n:102FB800A793DFF6EED6FF61FFFCF8FF0E8F02083D\n:102FC8004C0FDD0B624CFFDF11FCC4080FEFF562FC\n:102FD8004CFFDF06FC04F00EEFF5C361CFC262FCC4\n:102FE800A1FF0EEEA7FFE5EA07EF03E5EA07FE02F9\n:102FF80000EF9A5100FCA1FF0ED7FFFFFFFFFFFF74\n:10300800FFFFFFFFFFFFFFE00704EC00FB0FFF00DF\n:10301800002603800000E1000000000875000000A1\n:103028000000650000000000690000000000770053\n:10303800FC0F01010077E2FE0F0100007703080F83\n:103048000100007704080F0200FC007700080F0851\n:10305800000000000004007700080F0803000000CB\n:1030680000FC0200007700080F08040000000000C0\n:103078000100007700FC0F00007700FD0F00000042\n:1030880000FC0002007701080F01010077E2FE0F43\n:1030980001030077E2FE0F01080077E2FE0F010945\n:1030A8000077E2FE0F01040000000000FF0C140E80\n:1030B800BF0CFA0CAF0CE20CCF0C000000000E01A4\n:0C30C8008D147A147F1612144B14361469\n:00000001FF\n"
  },
  {
    "path": "assets/hw/syscon_flasher/syscon_flasher_v2.05_teensy_3.0.hex",
    "content": ":1000000000200020F9000000492300000523000023\n:100010000523000005230000052300000523000040\n:1000200005230000052300000523000049230000EC\n:100030004923000005230000913E0000953E00008A\n:100040004923000049230000492300004923000000\n:1000500049230000492300004923000049230000F0\n:1000600049230000492300004923000049230000E0\n:1000700049230000492300004923000049230000D0\n:10008000D52D00004923000049230000492300002A\n:1000900049230000492300004923000049230000B0\n:1000A00049230000492300004923000049230000A0\n:1000B0004923000049230000492300004923000090\n:1000C0004923000049230000492300002D3100008E\n:1000D0004923000049230000492300004923000070\n:1000E0004923000049230000492300004923000060\n:1000F0004923000049230000554B4CF2205210B513\n:10010000DA814DF62812DA8100BF00BF02F020F933\n:10011000504B514A9A63514ADA63514A136913F4B6\n:10012000807303D153614FF4A85313614D4B9A78F8\n:10013000110703D59A7842F008029A704A4B4B484F\n:100140002A221A704A4BDA1C121AC11E22F003022C\n:10015000994288BF0022474902F000F8464B4748C1\n:10016000DA1C121AC11E22F00302994288BF002233\n:10017000002104F027FA42494248F82201F0EEFF3C\n:10018000414B424A802103F8011B9342FBD14FF0BF\n:10019000E0233C4AC3F8082D3D4B8A221A70A3F590\n:1001A000805324225A70A0221A709A799207FCD5A3\n:1001B0009A79D406FCD4374B9A7902F00C02082ABB\n:1001C000FAD103221A7140225A719A799006FCD50D\n:1001D000304A93795906FCD51E4B2F4959640221A8\n:1001E000996420211170917901F00C010C29FAD148\n:1001F0002A4A5A604FF0E023294A5A6100229A6144\n:1002000007221A61274AC3F8202D62B602F01AF9B4\n:10021000134B5B69DA0705D5234802F007F9234B36\n:10022000234ADA61234B1B785B0609D51F4C204B10\n:10023000E2699A4204D11C4802F0F8F80023E36115\n:1002400002F08CF804F028FA01F080FFFEE700BF0E\n:100250000020054000800440823F04000100002B84\n:1002600000D0034000D0074000E0074058E5FF1FE2\n:1002700048ECFF1F144E000058F1FF1F48ECFF1F11\n:100280000000000000E1FF1F00E400E02EE400E0B9\n:10029000005006400040064000000301C010050069\n:1002A000FF76010000002020E011896800E0034093\n:1002B000A5C3945A00F00740FFFFFFFFFFFFFFFFB9\n:1002C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E\n:1002D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E\n:1002E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E\n:1002F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E\n:10030000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD\n:10031000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED\n:10032000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD\n:10033000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD\n:10034000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD\n:10035000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD\n:10036000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D\n:10037000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D\n:10038000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D\n:10039000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D\n:1003A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D\n:1003B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D\n:1003C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D\n:1003D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D\n:1003E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D\n:1003F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D\n:10040000FFFFFFFFFFFFFFFFFFFFFFFFDEF9FFFF23\n:100410000548064B1B1AD90F01EBA301491002D066\n:10042000034B03B11847704748ECFF1F48ECFF1F10\n:100430000000000008B5054B1BB105490548AFF3A6\n:100440000080BDE80840FFF7E3BF00BF00000000E8\n:1004500048ECFF1F144E000070B51A4C0D2082B0FE\n:10046000012102F039F8261D65204FF4486501E0AE\n:1004700014F8010F02F054FB2B46013BFDD102F0B2\n:1004800019FCB442F4D1013DFDD10F4C00210D20E7\n:1004900002F022F823680093009E42F2107505E0F6\n:1004A00023680193019B9B1BAB4208D802F0EEFB33\n:1004B0000028F5DD02F0FEFBC0B202B070BDEF20F7\n:1004C00002B070BD804B000074ECFF1F70B50121BD\n:1004D0000D20644C02F000F80D20012101F0FCFF1A\n:1004E000261D69204FF4486501E014F8010F02F061\n:1004F00017FB2B46013BFDD102F0DCFBB442F4D1EB\n:10050000013DFDD100210D2001F0E6FF02F0D2FBFC\n:10051000C0B2002840F0A380534C0D20012101F00F\n:10052000DBFF661D77204FF4486501E014F8010FEA\n:1005300002F0F6FA2B46013BFDD102F0BBFBB442C0\n:10054000F4D1013DFDD100210D2001F0C5FF02F0E5\n:10055000B1FBC0B2002840F08280444C0D20012144\n:1005600001F0BAFF661D77204FF4486501E014F8EA\n:10057000010F02F0D5FA2B46013BFDD102F09AFBA8\n:10058000B442F4D1013DFDD100210D2001F0A4FFC2\n:1005900002F090FBC0B2002861D1354C0D20012142\n:1005A00001F09AFF661D77204FF4486501E014F8CA\n:1005B000010F02F0B5FA2B46013BFDD102F07AFBA8\n:1005C000B442F4D1013DFDD100210D2001F084FFA2\n:1005D00002F070FBC0B2002841D1264C0D20012151\n:1005E00001F07AFFA61D77204FF4486501E014F86A\n:1005F000010F02F095FA2B46013BFDD102F05AFBA8\n:10060000B442F4D1013DFDD100210D2001F064FF81\n:1006100002F050FBC0B210BB174C0D20012101F0BD\n:100620005BFF661D77204FF4486501E014F8010F69\n:1006300002F076FA2B46013BFDD102F03BFBA642CD\n:10064000F4D1013DFDD100210D2001F045FF02F064\n:1006500031FBC0B218B9BDE87040FFF7FDBEE02025\n:1006600070BD00BF884B0000904B0000984B00000D\n:10067000A04B0000A84B0000584B00002DE9F041B2\n:1006800082B0002701AE4FF448644FF072083A0A76\n:100690003B0C80250D2001218DF804508DF8008041\n:1006A0008DF801708DF802208DF803306D4601F051\n:1006B00013FF404601E015F8010F02F031FA23461E\n:1006C000013BFDD102F0F6FAB542F4D12346013BDD\n:1006D000FDD100210D2001F0FFFE802502E0234620\n:1006E000013BFDD102F0D2FA0028F8D002F0E2FA84\n:1006F000C0B203F0B1FA013DF4D18037B7F5002F55\n:10070000C3D1284602B0BDE8F08100BF2DE9F04317\n:100710004F4D89B02B680093009C42F2107605E0A3\n:100720000193019B1B1BB34200F28D8003F094F9EF\n:1007300003282B68F4DD00240393CDE90444039FD0\n:10074000444E0694ADF81C4006E02B680293029BD1\n:10075000B268DB1B934273D204ABC4F104011819D5\n:1007600003F090F90444032CEFD99DF812009DF892\n:1007700013309DF810109DF8112003EB002302EBBD\n:1007800001229BB292B201339A424FEA82274FEA8A\n:10079000832949D20DF115064FF000084FF4486443\n:1007A00072213A0A3B0C80258DF810100D20012192\n:1007B000CDF81480CDF818808DF81450ADF81C8059\n:1007C0008DF811708DF812208DF8133001F084FE31\n:1007D00004AD15F8010B02F0A3F92346013BFDD14E\n:1007E00002F068FAB542F4D12346013BFDD1002165\n:1007F0000D2001F071FE802502E02346013BFDD172\n:1008000002F044FA0028F8D002F054FAC0B203F023\n:1008100023FA013DF4D18037B945C1D803F01CF962\n:10082000002805DD03F0DCF803F016F90028F9DCF8\n:1008300000210D2001F050FE002009B0BDE8F0833A\n:100840000123337391E7EB2009B0BDE8F08300BFCB\n:1008500074ECFF1F50E6FF1F2DE9F04F624D89B089\n:100860002B680093009C42F2107605E00193019BF7\n:100870001B1BB34200F2AA8003F0EEF803282B689A\n:10088000F4DD00240393CDE90444039E574F0694FE\n:10089000ADF81C4007E02B680293029BBA689B1BD3\n:1008A000934280F09D8004ABC4F10401181903F059\n:1008B000E9F80444032CEED99DF812009DF813309A\n:1008C0009DF810109DF8112003EB002302EB01228C\n:1008D0009BB292B201339A424FEA82264FEA832AB0\n:1008E0006FD2434B434D03F108080D20012101F065\n:1008F000F3FD414FC6F3072BC6F3074977204FF4AA\n:10090000486401E017F8010F02F00AF92346013BA1\n:10091000FDD102F0CFF9AF42F4D1013CFDD100216D\n:100920000D2001F0D9FD02F0C5F910F0FF0352D1FE\n:100930002F4A059392E8030004908DF8141098E86C\n:100940000300ADF81C3006908DF81C100D2001211D\n:100950008DF816B08DF8179001F0BEFD04AC0DF1C6\n:100960001D0B4FF4486914F8010B02F0D9F84B46FF\n:10097000013BFDD102F09EF95C45F4D14B46013BB1\n:10098000FDD100210D2001F0A7FD02F093F9C0B2C6\n:1009900008BBFFF761FD0346A0B903F05DF9B9F1AB\n:1009A0000109FCD101E003F01BF803F055F8002821\n:1009B000F9DC00210D2006F5806601F08DFDB245C1\n:1009C00093D80023184609B0BDE8F08FEB231846F2\n:1009D00009B0BDE8F08FE423184609B0BDE8F08FF8\n:1009E00001233B7368E700BF74ECFF1F50E6FF1F55\n:1009F000B04B0000654B0000604B00002DE9F04F4C\n:100A0000634D89B02B680093009C42F2107605E09C\n:100A10000193019B1B1BB34200F2AB8003F01CF857\n:100A200003282B68F4DD00240393CDE90444039EDE\n:100A3000584F0694ADF81C4007E02B680293029BC8\n:100A4000BA689B1B934280F0988004ABC4F1040108\n:100A5000181903F017F80444032CEED99DF812007E\n:100A60009DF813309DF810109DF8112003EB002322\n:100A700002EB01229BB292B201339A424FEA8226E4\n:100A80004FEA832A71D2444B444D03F108080D20EC\n:100A9000012101F021FD424FC6F3072BC6F30749A0\n:100AA00077204FF4486401E017F8010F02F038F89E\n:100AB0002346013BFDD102F0FDF8AF42F4D1013CE9\n:100AC000FDD100210D2001F007FD02F0F3F810F038\n:100AD000FF0355D1304A059392E8030004908DF846\n:100AE000141098E80300ADF81C3006908DF81C1027\n:100AF0000D2001218DF816B08DF8179001F0ECFC57\n:100B000004AC0DF11D0B4FF4486914F8010B02F011\n:100B100007F84B46013BFDD102F0CCF8A345F4D1D8\n:100B2000B9F10109FCD100210D2001F0D5FC02F042\n:100B3000C1F8C0B240BBFFF78FFC08B11B2815D12C\n:100B400003F08AF84FF44863013BFDD101E002F065\n:100B500047FF02F081FF0028F9DC00210D2006F597\n:100B6000806601F0B9FCB24591D8002009B0BDE81B\n:100B7000F08FEB2009B0BDE8F08F01233B736DE7E8\n:100B8000E82009B0BDE8F08FE42009B0BDE8F08F9F\n:100B900074ECFF1F50E6FF1FB04B00006D4B0000D0\n:100BA000684B00002DE9F041584F0D2082B0012123\n:100BB00001F092FC7E1D3C4677204FF4486501E031\n:100BC00014F8010F01F0ACFF2B46013BFDD102F000\n:100BD00071F8B442F4D1013DFDD100210D2001F0A6\n:100BE0007BFC02F067F810F0FF0340F08980484C6E\n:100BF000ADF804300D2001218DF8063004F10C0809\n:100C000001F06AFC4FF44865772001E014F8010F09\n:100C100001F086FF2B46013BFDD102F04BF8444525\n:100C2000F4D1013DFDD100210D2001F055FC02F071\n:100C300041F8C0B200285ED1FFF70EFC0446002840\n:100C40005AD102F037F85FFA80F88DF8048002F08C\n:100C500031F80121C5B20D208DF805504FF44864DC\n:100C600001F03AFC772001E017F8010F01F058FF7E\n:100C70002346013BFDD102F01DF8B742F4D1013CFF\n:100C8000FDD100210D2001F027FC02F013F8C0B2C5\n:100C9000002835D11F4C0D20012101F01DFC04F16D\n:100CA0000C0777204FF4486601E014F8010F01F0BB\n:100CB00037FF3346013BFDD101F0FCFFA742F4D1E1\n:100CC000013EFDD100210D2001F006FC01F0F2FFF4\n:100CD000C0B280B9FFF7C0FB044668B901F0EAFF73\n:100CE0000646404602F0B8FF284602F0B5FFF0B2D3\n:100CF00002F0B2FF00E0E424204602B0BDE8F0813B\n:100D0000E824204602B0BDE8F08100BF704B00002F\n:100D1000C04B0000D04B00002DE9F04FA04CADF2CD\n:100D2000444D00214FF47F7211A8CDE90C110E91B2\n:100D30008DF83C10109103F045FC23680493049E49\n:100D400042F2107506E023680593059B9B1BAB429E\n:100D500000F2EE8102F080FE0128F4DD23680993A1\n:100D60000025CDE90C55099E8E4F0E958DF83C500F\n:100D700007E023680893089BBA689B1B934280F0A6\n:100D8000E3810CABC5F10201581902F07BFE05446A\n:100D9000012DEED99DF83030019301219DF83130BD\n:100DA00002930D2001F098FB23680693069FDFF85D\n:100DB000F481002544F620660EE023680793079B24\n:100DC000DB1BB34200F2BA8102F046FE1FFA80F943\n:100DD000B9F1000F40F0BB81B5F5806FEDD3724FD4\n:100DE0000D20012101F078FB3C1D3D4677204FF49A\n:100DF000486601E015F8010F01F092FE3346013B11\n:100E0000FDD101F057FFA542F4D1013EFDD10021F3\n:100E10000D2001F061FB0DF13F050DF23F194FF47C\n:100E2000486815F8010F01F07BFE4346013BFDD1F8\n:100E300001F040FF4D45F4D101F004FFB8F1010885\n:100E4000FCD101F037FFC0B2002840F0A981DFF8E3\n:100E50005CA10D20012101F03FFB0AF1040556467B\n:100E600077204FF4486801E016F8010F01F058FEB2\n:100E70004346013BFDD101F01DFFAE42F4D1B8F174\n:100E80000108FCD100210D2001F026FB0DF23F26C8\n:100E90004FF4486819F8010F01F042FE4346013B48\n:100EA000FDD101F007FFB145F4D101F0CBFEB8F15F\n:100EB0000108FCD101F0FEFEC0B2002840F07D81A7\n:100EC000DFF8EC90CDF80C900D20012101F004FB2F\n:100ED00009F1050877204FF4486601E019F8010F81\n:100EE00001F01EFE3346013BFDD101F0E3FEC1459A\n:100EF000F4D1013EFDD100210D2001F0EDFA01F009\n:100F0000D9FE10F0FF0040F05181019A029B8DF84C\n:100F1000350003EB02239BB29A008DF836209A0924\n:100F20009B0201930CAB02939B46224B8DF837201A\n:100F300093E8030040330C908DF8341093E80300DD\n:100F40000E908DF83C100D2001210DF13D094FF45C\n:100F5000486601F0C1FA1BF8010B01F0E1FD3346D0\n:100F6000013BFDD101F0A6FECB45F4D1013EFDD100\n:100F700000210D2001F0B0FA01F09CFEC0B2002863\n:100F800040F01481FFF768FA0646002840F0D1804F\n:100F90000D20012101F0A0FA4FF4486677200DE002\n:100FA00074ECFF1F50E6FF1FE04B0000E84B000011\n:100FB000784B0000B04B000017F8010F01F0B0FDB6\n:100FC0003346013BFDD101F075FEA742F4D1013E4D\n:100FD000FDD100210D2001F07FFA0DF23F270DF227\n:100FE0003F364FF4486417F8010F01F099FD23468E\n:100FF000013BFDD101F05EFEB742F4D101F022FECB\n:10100000013CFDD101F056FEC0B2002840F0C8807E\n:101010000D20012101F060FA4FF44864772001E0CF\n:101020001AF8010F01F07CFD2346013BFDD101F0D0\n:1010300041FEAA45F4D1013CFDD100210D2001F073\n:101040004BFA0DF23F440DF23F364FF4486516F867\n:10105000010F01F065FD2B46013BFDD101F02AFE99\n:10106000A642F4D101F0EEFD013DFDD101F022FEDA\n:10107000C0B2002840F0A1800D20012101F02CFA1F\n:101080004FF44864039D772001E015F8010F01F04B\n:1010900047FD2346013BFDD101F00CFE4545F4D14F\n:1010A000013CFDD100210D2001F016FA01F002FEF5\n:1010B00010F0FF007AD1424A8DF8350092E8030023\n:1010C0004032019B8DF834100C9092E8030003F538\n:1010D00000731A0A0E908DF83C101B0C01210D2094\n:1010E0008DF836208DF8373001F0F6F9029D4FF477\n:1010F000486415F8010B01F013FD2346013BFDD1B7\n:1011000001F0D8FD4D45F4D1013CFDD100210D2069\n:1011100001F0E2F901F0CEFDC0B2002846D1FFF7A0\n:101120009BF9064628B901460D2001F0D5F900E0EB\n:10113000EB2630460DF2444DBDE8F08FEC263046EC\n:101140000DF2444DBDE8F08F01233B7322E615FA02\n:1011500080F0B0F5806F1CDC1FFA80FB23680B93D6\n:10116000DDF82CA0002608E023680A930A9BD8F833\n:101170000820A3EB0A0393421AD2A81910ABA9EBDB\n:101180000601184402F07EFC0644B145ECD85D46E9\n:1011900010E6C5F580691FFA89F94FF4806BDDE729\n:1011A000E12630460DF2444DBDE8F08FE626C0E75B\n:1011B000012388F80C305D46FCE5E226B9E700BF64\n:1011C000B04B00002DE9F04F994DADF24C4D002190\n:1011D0004FF47F7213A8CDE90E1110918DF84410D1\n:1011E000129103F0EFF92B680693069E42F21074F9\n:1011F00006E02B680793079B9B1BA34200F2B68275\n:1012000002F02AFC0128F4DD2B680B930024CDE9C1\n:101210000E440B9E874F10948DF8444007E02B68D6\n:101220000A930A9BBA689B1B934280F0AD820EAB77\n:10123000C4F10201181902F025FC0444012CEED976\n:101240009DF83830009301210D209DF83990DFF88A\n:10125000E48101F041F92B680893089F002444F6CB\n:1012600020660EE02B680993099BDB1BB34200F25A\n:10127000848202F0F1FB1FFA80FABAF1000F40F00D\n:101280008682B4F5806FEDD36B4C0D20012101F007\n:1012900023F9661D77204FF4486501E014F8010F2B\n:1012A00001F03EFC2B46013BFDD101F003FDB442B1\n:1012B000F4D1013DFDD100210D2001F00DF901F027\n:1012C000F9FC10F0FF0040F08C825C4D8DF83D0081\n:1012D00095E80300009B0E9005F1080709EB032930\n:1012E0008DF83C1097E803001FFA89F3C3F38712C7\n:1012F0009E009B02F6B2019310900EAB8DF8441045\n:101300000D2001218DF83E6000928DF83F20029360\n:101310000DF145049A464FF4486801F0DDF81AF8DB\n:10132000010B01F0FDFB4346013BFDD101F0C2FC86\n:10133000A245F4D1B8F10108FCD100210D2001F043\n:10134000CBF801F0B7FCC0B2002840F05282FFF7A2\n:1013500083F8824600285DD01B2840F00982DFF820\n:10136000E0B00D20012101F0B7F80BF1050A77205C\n:101370004FF4486801E01BF8010F01F0D1FB434630\n:10138000013BFDD101F096FCD345F4D1B8F1010841\n:10139000FCD100210D2001F09FF801F08BFC10F032\n:1013A000FF0040F026828DF83D0095E803000E9086\n:1013B0008DF83C1097E80300009B10908DF84410C6\n:1013C0000D2001218DF83E608DF83F300DF1380A77\n:1013D0004FF4486801F080F81AF8010B01F0A0FB07\n:1013E0004346013BFDD101F065FCA245F4D1B8F1C3\n:1013F0000108FCD100210D2001F06EF801F05AFC2B\n:10140000C0B2002840F0F581FFF726F88246002898\n:1014100040F0AE810B4B03931F460D20012101F0DC\n:101420005BF83B469A46043777204FF448680DE056\n:1014300074ECFF1F50E6FF1F684B0000B04B00002C\n:10144000604B0000E04B00001AF8010F01F068FB50\n:101450004346013BFDD101F02DFCBA45F4D1B8F172\n:101460000108FCD100210D2001F036F80DF1470BE9\n:101470000DF247184FF4486A1BF8010F01F050FBBA\n:101480005346013BFDD101F015FCC345F4D101F0F9\n:10149000D9FBBAF1010AFCD101F00CFCC0B2002862\n:1014A00040F0AA81DFF814B2CDF810B00D20012170\n:1014B00001F012F80BF1040977204FF4486A01E0BB\n:1014C0001BF8010F01F02CFB5346013BFDD101F04D\n:1014D000F1FBCB45F4D1BAF1010AFCD100210D207A\n:1014E00000F0FAFF0DF2472B4FF4486A18F8010F8D\n:1014F00001F016FB5346013BFDD101F0DBFBD84563\n:10150000F4D101F09FFBBAF1010AFCD101F0D2FB4A\n:10151000C0B2002840F07681DFF8A481CDF81480B5\n:101520000D20012100F0D8FF08F1050B77204FF4C2\n:10153000486A01E018F8010F01F0F2FA5346013B46\n:10154000FDD101F0B7FBC345F4D1BAF1010AFCD1DA\n:1015500000210D2000F0C0FF01F0ACFB10F0FF00F7\n:1015600040F04D818DF83D0095E80300DFF854B15F\n:101570000E908DF83C109BE80300009B10908DF8B6\n:1015800044100D2001218DF83E608DF83F300DF1A3\n:10159000380A4FF4486600F09FFF1AF8010B01F07B\n:1015A000BFFA3346013BFDD101F084FBA245F4D1E3\n:1015B000013EFDD100210D2000F08EFF01F07AFBED\n:1015C000C0B2002840F01B81FEF746FF824600288B\n:1015D00040F0CE800D20012100F07EFF4FF44866E0\n:1015E000DDF80CA0772001E01AF8010F01F098FA5D\n:1015F0003346013BFDD101F05DFBBA45F4D1013E1C\n:10160000FDD100210D2000F067FF0DF2472A0DF2F9\n:1016100047374FF448661AF8010F01F081FA334654\n:10162000013BFDD101F046FBBA45F4D101F00AFBC4\n:10163000013EFDD101F03EFBC0B2002840F0DC804D\n:101640000D20012100F048FF4FF44866049F7720E9\n:1016500001E017F8010F01F063FA3346013BFDD1B9\n:1016600001F028FB4F45F4D1013EFDD100210D20B2\n:1016700000F032FF0DF247460DF2473A4FF448674B\n:101680001AF8010F01F04CFA3B46013BFDD101F085\n:1016900011FBB245F4D101F0D5FA013FFDD101F0C3\n:1016A00009FBC0B2002840F0AD800D20012100F000\n:1016B00013FF4FF44866059F772007E0E84B0000D2\n:1016C000784B0000F04B000017F8010F01F028FAEA\n:1016D0003346013BFDD101F0EDFA4745F4D1013E1F\n:1016E000FDD100210D2000F0F7FE01F0E3FA10F02B\n:1016F000FF0040F084808DF83D0095E80300019BD9\n:101700008DF83C100E909BE8030003F500731A0A55\n:1017100010908DF844101B0C01210D208DF83E20F7\n:101720008DF83F3000F0D8FE029E4FF4486516F861\n:10173000010B01F0F5F92B46013BFDD101F0BAFA9E\n:10174000A642F4D1013DFDD100210D2000F0C4FEE0\n:1017500001F0B0FAC0B2002851D1FEF77DFE8246FA\n:1017600030B901460D2000F0B7FE01E04FF0EB0A62\n:1017700050460DF24C4DBDE8F08F4FF0EC0A50464C\n:101780000DF24C4DBDE8F08F01233B7358E514FA80\n:1017900080F0B0F5806F1CDC83B201932B680D9351\n:1017A0000D9E4FF0000B07E02A680C920C9AD8F8B7\n:1017B0000810921B8A4217D204EB0B0012ABAAEB63\n:1017C0000B01184402F05EF98344DA45ECD8019C21\n:1017D00045E5C4F5806A4FF480631FFA8AFA0193E5\n:1017E000DCE74FF0E80AC3E70123019C88F80C30DE\n:1017F00035E54FF0E40ABBE74FF0E10AB8E74FF0F8\n:10180000E60AB5E74FF0E20AB2E700BF2DE9F04380\n:10181000574F584D83B04FF0000901210D20CDF8EE\n:1018200000908DF8049000F057FE4FF4FA514FF4F9\n:10183000FA6000F059FC08218046012000F054FCB9\n:1018400049460646052000F047FE4FF4A063013BE1\n:10185000FDD101F02FF8052000F0A0FE01210520A8\n:1018600000F03AFE052000F099FE4FF4E1313846D1\n:1018700000F086FB6423BB60012000F08FFE2B7814\n:10188000C5203B3B4FF448642B7001F049F92346D7\n:10189000013BFDD12B78012001332B7001F040F981\n:1018A0002346013BFDD10320287001F039F923467E\n:1018B000013BFDD12B789A20663B2B7001F030F96B\n:1018C0002346013BFDD1484601F02AF92346013B5E\n:1018D000FDD12B78142014332B7001F021F923460D\n:1018E000013BFDD12B785842C0B2C31A2B7001F0D6\n:1018F00017F9013CFDD101E001F0DCF901F0C6F976\n:101900000028F9DC2B78032003444FF448642B7043\n:1019100001F006F92346013BFDD101F0CBF9052288\n:101920006946384600F0C4FB9DF80230062B32D0E1\n:10193000102B40F0F8805FEA481802D0B8F1010897\n:10194000FCD10021042000F0C7FD760101D0013E4A\n:10195000FDD10121042000F0BFFD01E001F0AAF952\n:1019600001F094F90028F9DC40F2E734A02609E000\n:1019700024E6FF1F61ECFF1F3346013BFDD1013C14\n:101980003FF449AF01F082F90028F5DD01F092F94A\n:10199000C0B20228F0D1052000F000FE2B78912083\n:1019A0006F3B4FF448662B7001F0BAF83346013BA9\n:1019B000FDD13A24012000F0F1FD20462C7001F009\n:1019C000AFF83346013BFDD12B784E2003442B70FA\n:1019D00001F0A6F83346013BFDD12B786F2003447C\n:1019E0002B7001F09DF83346013BFDD12B7874201C\n:1019F00003442B7001F094F83346013BFDD12B7862\n:101A0000204623442B7001F08BF83346013BFDD177\n:101A10002B78552003442B7001F082F83346013BAC\n:101A2000FDD12B78732003442B7001F079F83346F5\n:101A3000013BFDD12B78652003442B7001F070F839\n:101A40003346013BFDD12B78642003442B7001F019\n:101A500067F83346013BFDD12B78204623442B7099\n:101A600001F05EF83346013BFDD128780138C0B261\n:101A700043002B7001F054F83346013BFDD10120A7\n:101A800000F08CFD2B7893206D3B2B7001F048F813\n:101A90003346013BFDD10120284C00F07FFD04F1CD\n:101AA000C3072B7814F8010F03442B7001F038F8AA\n:101AB0003346013BFDD1BC42F3D1012000F06EFD65\n:101AC0002B7893206D3B2B7001F02AF8013EFDD15D\n:101AD00001201B4C00F062FDE71D4FF448662B7897\n:101AE00014F8010F03442B7001F01AF83346013B40\n:101AF000FDD1A742F3D1012000F050FD942001F068\n:101B00000FF8052000F04AFD01E001F0D3F801F0E4\n:101B1000BDF80028F9DC0D20002100F0DDFC0120DB\n:101B200003B0BDE8F0832B78EE20123B2B7000F061\n:101B3000F7FF013CFDD10020F2E700BF5FE5FF1F8A\n:101B400057E5FF1F2DE9F043012183B00D2000F080\n:101B5000C3FCB74DB74EB84F01F07EFF002800F030\n:101B60009D8001F03DFFC0B20128287010D91028D7\n:101B700000F09780202853D0802800F04681F0287C\n:101B800000F030813B78002B00F05E812028E3D804\n:101B90002028E1D801A353F820F000BFDD1D00008C\n:101BA000B11D0000AB1D0000A51D00007B1D000045\n:101BB000591B0000511D0000271D0000FD1C0000E6\n:101BC000591B0000D31C0000591B0000591B0000CA\n:101BD000591B0000591B0000591B0000A31C0000EA\n:101BE000591B0000591B0000591B0000591B000025\n:101BF000591B0000591B0000591B0000591B000015\n:101C0000591B0000591B0000591B0000591B000004\n:101C1000591B0000591B0000591B0000211C00002B\n:101C200001210D20854C00F057FC0D20012100F012\n:101C300053FC04F1040975204FF4486801E014F8DE\n:101C4000010F00F06DFF4346013BFDD101F032F87A\n:101C50004C45F4D1B8F10108FCD100210D2000F071\n:101C60003BFC01F027F810F0FF0018BFE0203070B7\n:101C700001F0F2FF4FF44863013BFDD101E001F0B8\n:101C8000AFFE01F0E9FE0028F9DC00210D2000F094\n:101C900023FC01F0E1FE00287FF463AF03B0BDE850\n:101CA000F0833C7800203070002C00F0BA8001F006\n:101CB000D3FF4FF44863013BFDD101E001F090FEFA\n:101CC00001F0CAFE0028F9DC00210D2000F004FC20\n:101CD000DFE7FEF767FF307001F0BEFF4FF44863A7\n:101CE000013BFDD101E001F07BFE01F0B5FE0028D3\n:101CF000F9DC00210D2000F0EFFBCAE7FEF77EFEC5\n:101D0000307001F0A9FF4FF44863013BFDD101E0C1\n:101D100001F066FE01F0A0FE0028F9DC00210D2094\n:101D200000F0DAFBB5E7FFF74DFA307001F094FFF1\n:101D30004FF44863013BFDD101E001F051FE01F099\n:101D40008BFE0028F9DC00210D2000F0C5FBA0E788\n:101D5000FEF7E2FF307001F07FFF4FF44863013B74\n:101D6000FDD101E001F03CFE01F076FE0028F9DC37\n:101D700000210D2000F0B0FB8BE7FEF76DFD307009\n:101D800001F06AFF4FF44863013BFDD101E001F02F\n:101D900027FE01F061FE0028F9DC00210D2000F093\n:101DA0009BFB76E7FEF76AFCD6E6FEF7AFFCD3E6D0\n:101DB000012002F03BF9224C804602F03FF901ABD2\n:101DC000A3EB08032380052001F046FF2088000ACA\n:101DD00001F042FF207801F03FFFBDE6022001F054\n:101DE0003BFFB9E6012002F021F9154C804602F0D4\n:101DF00025F901ABA3EB08030220238001F02CFF9F\n:101E0000052001F029FF3020DEE700210D2000F041\n:101E100063FB4FF4FA7000F0C1FB0A4B1B68984754\n:101E20009AE6FFF7F3FC307008BBE12030703EE724\n:101E300060ECFF1F6CECFF1F64ECFF1FF84B000011\n:101E400062ECFF1F68ECFF1FE02001F005FF4FF47C\n:101E50004863013BFDD101E001F0C2FD01F0FCFD52\n:101E60000028F9DC00210D2000F036FB11E7FEF719\n:101E70002DFB307010B901233B7018E73C7016E75A\n:101E80002DE9F843314F324D324CDFF8CC903846D3\n:101E90004FF4E13100F074F86423BB602E682F4FDB\n:101EA00040F2EE2801F05AFF2378002B40D03B7817\n:101EB000DA073DD52B68D9F800209B1A0E2B37D9AD\n:101EC00001210D2000F02EFB0121052000F02AFB4E\n:101ED0000121042000F026FB0121084600F022FB2E\n:101EE0000021084600F01EFB0021052000F0F4FA56\n:101EF0000021012000F0F0FA0021084600F0ECFA81\n:101F00000121042000F0E8FA01F028FF2378002BDB\n:101F1000FAD03B78DB07F7D52B68D9F800209B1A5D\n:101F20000E2BF1D9BDE8F84301210D2000F0D4BA01\n:101F30002B6822789B1B2AB1B3F5FA6FC0D801F049\n:101F40000DFFAFE74345FAD9BAE700BF24E6FF1F0C\n:101F500074ECFF1FF8EDFF1F20EEFF1F1CEEFF1FAC\n:101F60000368C9B21B6818470368C9B21B681847E1\n:101F70000368C9B21B6818470368C9B21B681847D1\n:101F80004B0803F1376303F5D83310B50446B3FBB0\n:101F9000F1F000F0C5FB044B1B7803B110BD2046E7\n:101FA000BDE8104001F07EBF4DE6FF1F08B50846B2\n:101FB00000F0B6FD012008BD08B5084600F0B0FDF0\n:101FC000012008BD38B508460D4602F099FB0446CD\n:101FD0000146284600F0AEFD204638BD10B5084643\n:101FE0001446114600F0A6FD204610BD08461146D5\n:101FF00000F0CEBF0846114600F0AEBF00F0C6BEEE\n:1020000008B5084600F062FD003818BF012008BD81\n:1020100008B5084600F038FD003818BF012008BD9B\n:102020000846114600F0C8BC084600F003BD00BFDA\n:10203000084600F0A5BC00BF00F03CBC10B54B0842\n:1020400003F13763144603F5D833B3FBF1F000F026\n:1020500067FB2046BDE8104000F0CEBB00F070BE2C\n:1020600000F028BE00F012BE00F0ECBD00F0F6BD9E\n:1020700070B50E4D82B02B680093009E044608E0B8\n:1020800001F06CFE2B680193019BA2689B1B93429D\n:1020900007D2236820465B6998470028F0DB02B02E\n:1020A00070BD4FF0FF3002B070BD00BF74ECFF1F79\n:1020B000F8B50D4691B116469AB10746002404E0E2\n:1020C0000134A64205F8010B06D03846FFF7D0FFD1\n:1020D0000028F5DA01233B732046F8BD0C46204664\n:1020E000F8BD1446F8E700BF884200DB704770B4C3\n:1020F000114C2268091AEAB1104B114E114D83FBA5\n:10210000023C9444D317C3EB2C4306FB132244F246\n:10211000A71C05FB03F30CFB0233002B02DA03F1CF\n:102120000043013BB3FBF1F201FB12322360104488\n:1021300070BC7047044BF5E770ECFF1F5F0B4E83DC\n:102140001DF30100ECF4FFFF42CE0C1F08B5FFF7B2\n:1021500097FEFFF7F7FC01F001FEFAE701B441EA50\n:10216000000313F003036FD1403A41D351F8043B0D\n:1021700040F8043B51F8043B40F8043B51F8043B61\n:1021800040F8043B51F8043B40F8043B51F8043B51\n:1021900040F8043B51F8043B40F8043B51F8043B41\n:1021A00040F8043B51F8043B40F8043B51F8043B31\n:1021B00040F8043B51F8043B40F8043B51F8043B21\n:1021C00040F8043B51F8043B40F8043B51F8043B11\n:1021D00040F8043B51F8043B40F8043B51F8043B01\n:1021E00040F8043B51F8043B40F8043B403ABDD270\n:1021F000303211D351F8043B40F8043B51F8043B12\n:1022000040F8043B51F8043B40F8043B51F8043BD0\n:1022100040F8043B103AEDD20C3205D351F8043BA0\n:1022200040F8043B043AF9D204320AD0D2071CBF6A\n:1022300011F8013B00F8013B03D30B7803704B7896\n:10224000437001BC704700BF0C2A4AD310F003034F\n:1022500011D0C3F10403D21ADB071CBF11F8013BF4\n:1022600000F8013B07D311F8013B00F8013B11F8DE\n:10227000013B00F8013B11F003033FF475AF30B4AC\n:10228000043AC91AC3F1040C51F8044B022B19D0BB\n:10229000032B0BD0240A51F8043B1D0644EA050425\n:1022A00040F8044B1C46043AF4D216E0240E51F8D0\n:1022B000043B1D0244EA050440F8044B1C46043A62\n:1022C000F4D20AE0240C51F8043B1D0444EA05044E\n:1022D00040F8044B1C46043AF4D20432B1EB0C0132\n:1022E00030BC043AA0D3013A11F8013B00F8013B9D\n:1022F000F9D20B7803704B7843708B78837001BCF4\n:10230000704700BF08B50F4C636B58030DD4636B67\n:1023100059050FD4636B1A0511D4636BDB04F3D535\n:1023200000F012F8636B5803F1D500F0FFFE636B09\n:102330005905EFD500F04EFD636B1A05EDD500F0A1\n:1023400003F8EAE70080044008B5FFF7DBFF00BFB1\n:10235000014B10221A80704700200540704700BFD3\n:10236000094A08B50346106833B169460344A1F52C\n:1023700080618B4201D2136008BD02F087F90C2303\n:1023800003604FF0FF3008BD38E6FF1FEFF3138303\n:10239000CBB9EFF31080A0B9EFF3058343B94FF445\n:1023A0008070EFF311835BB1984228BF18467047E5\n:1023B0000F2BF6D9054AD05CEFF31183002BF3D134\n:1023C0007047184670474FF0FF307047F0E300E069\n:1023D00001F1FF3C70B56546002401E07046013410\n:1023E000B0FBF2FE02FB1E03092B03F130068ABF8D\n:1023F0003733F3B2DBB2904205F8013FEED2631CF3\n:102400000022CA54C8187CB162461CF8015F10F85B\n:1024100001ED8CF800E0A1EB0C030232013B521AF3\n:1024200023449A420570EFDB084670BD034B00223F\n:1024300010215A615A6018605961704700D00340FA\n:10244000704700BFF0B54FF0E0204FF480744FF4B8\n:102450000077C0F80441C0F804714FF48067C0F8F9\n:1024600004711A4B1A494FF40067C0F8047128220E\n:10247000092400264BF6FF754FF48057C0F804710D\n:1024800083B05E609D60DA605A61DA615A62DA6236\n:102490005A63DA635A641C604E608D60CA604A6198\n:1024A0000C6001F027FDFFF7CBFF0A4C2368009377\n:1024B000009B132BFAD901F0F3F923680193019BD8\n:1024C000B3F5967FF9D303B0F0BD00BF00800340A1\n:1024D0000090034074ECFF1F212816D810B4104B55\n:1024E00053F8302092F880422CB1012371B982F860\n:1024F000003110BC704703EBC0035B681A6849B138\n:1025000042F0030210BC1A607047704782F88030B6\n:1025100010BC704722F0020210BC1A60704700BF66\n:10252000684C0000212820D81B4A02EBC003012977\n:102530005B680FD004291DD052F83000002280F8CB\n:10254000802299B1022922D003290DD14FF4817242\n:102550001A60704752F830004FF4A27280F880126F\n:102560001A601A6822F020021A6070474FF48072D5\n:102570001A60704752F830104FF4A272012081F8AF\n:1025800080021A601A6842F020021A60704740F216\n:1025900003121A60704700BF684C00002DE9F84331\n:1025A000044672B6204F4FF0E02293693D68D2F89E\n:1025B000042D62B6520102D5322B88BF01350CB909\n:1025C000BDE8F883DFF86490DFF86480A9EB0303CB\n:1025D000A8FB03234FF47A7202FB05F505EB931574\n:1025E0004FF0E02672B6B1693A68D6F804CD62B60B\n:1025F000A9EB0103A8FB03031CF0806FC5EB931349\n:102600004FF47A7002D0322988BF013200FB0233C6\n:10261000B3F57A7F04D3013CD2D005F57A75E1E7B2\n:1026200001F09CFBDEE700BF74ECFF1FFF760100AA\n:10263000ABAAAAAA2DE9F84F314B1B6807460BB18C\n:1026400001221A70DFF8BC90DFF8BC8099F80040D6\n:10265000D8F800302D4D01349C422B782AD303F05A\n:10266000FF0A002B3ED15446294EDFF8A8B005E002\n:1026700033791B0623D42B78A3420AD1FFF786FEB9\n:102680004028F5DDFF28F6DD01F068FB2B78A3423A\n:10269000F4D03F2C29D9204B403C1B68FFB21F557A\n:1026A0001E4A1B4B01211170BC2289F800A0DA7070\n:1026B000BDE8F88F9C425FFA84FAD5D0E9E72B7821\n:1026C000D8F800105A1C8A42DBB203D23F2A10D835\n:1026D000D1B201E000210A461BF80230DBB2F371EF\n:1026E0002970C8E74FF0000A54460A4BFFB21F5545\n:1026F000D6E7D1B2084A3F3B1268D35CDBB2EEE7C3\n:10270000C8ECFF1F10EDFF1F48E6FF1F18EDFF1F6D\n:1027100000A00640D0ECFF1F14EDFF1FCCECFF1F04\n:10272000294A2A49536B70B443F48063284D53639C\n:1027300000232B70274E0B70274C284923703278CA\n:102740000B7027490B7092B3152A03D1254B40F229\n:1027500013329A61244B1B78012B30D0052B03D107\n:10276000204B4FF45172DA612028204B204C38BFA7\n:102770002020C0F3443C83F800C0C0F3471C00F0A5\n:102780001F0083F801C00422987202209A70D87446\n:1027900088205A754FF0E021187440223C20D870F0\n:1027A00022744FF4803370BCC1F800317047114B74\n:1027B00040F213321A640C4B1B78012BCED10D4B17\n:1027C0004FF451725A64CFE700800440C4ECFF1FFD\n:1027D000BCECFF1FC5ECFF1F10EDFF1F18EDFF1F26\n:1027E000CCECFF1F00C004404CE6FF1F00A00640D9\n:1027F00000E400E000A00440294B29499B7800F048\n:10280000030203F0EC031343420700F00F0248BF3A\n:1028100043F01003042A8B7003D18B7943F04003FB\n:102820008B711F4B5A79C30602F0EF021C4B48BF55\n:1028300042F010025A719A79810602F0EF0211D526\n:1028400042F0100281059A710FD59A78154942F02D\n:10285000A0029A700978144B03EBC10340F2463290\n:102860005B6814E09A71820505D4104B104A196810\n:10287000914211D070479A780A4942F0A0029A70AA\n:102880000978094B03EBC10340F247325B68074903\n:1028900007481A600860704700221A60704700BF3E\n:1028A00000A006404CE6FF1F684C0000C8ECFF1F6C\n:1028B000D400D442284B5B6B5B054CD510B5274C3C\n:1028C000237823B101F04AFA2378002BFAD1244A65\n:1028D000244B4FF0E0204FF480340021C0F88041B9\n:1028E000D1701B7863B3152B1BD01F4B1B7803F0E3\n:1028F0007F03012B1FD0052B0ED01C4B184A1C4CFC\n:102900001C48196892F804C0D27900232370037020\n:1029100009B101230B7010BD174B40F20312DA61AD\n:10292000EBE7154B40F203129A610F4B1B7803F053\n:102930007F03012BDFD1114B40F203125A64DCE715\n:102940000E4B40F203121A64074B1B7803F07F030F\n:10295000012BD0D1EFE7704700800440CCECFF1F83\n:1029600000A00640C5ECFF1F4CE6FF1F78ECFF1FE0\n:10297000BCECFF1FC4ECFF1F00C0044000A00440DB\n:102980000A4A38B50546137803F0FF04002BFAD144\n:1029900001212846FFF7C6FD21462846FFF79CFD8A\n:1029A000034A044B52F835201A6038BDCCECFF1FA7\n:1029B000684C0000C8ECFF1F09B140F08000194AC4\n:1029C0001378834217D010B4174C646B64050FD58D\n:1029D00003F07F03012B21D0052B14D0002900F038\n:1029E0007F0314BF60214421012B10D0052B03D09D\n:1029F000107010BC704770470C4B41F44071D961A6\n:102A0000107010BC7047094B0024DC61E6E7084BEE\n:102A100041F440715964107010BC7047044B00249D\n:102A20005C64DBE74CE6FF1F0080044000C004400C\n:102A300000A00440104A137883420AD00F49496B22\n:102A4000490505D5ABB1152B09D068B1152801D0C2\n:102A5000107070470A4B40F213319961F8E7084B48\n:102A6000002199610028F1D1064B40F2133119641D\n:102A7000EEE704490B64E8E7C5ECFF1F0080044063\n:102A800000C0044000A004400D4B5B6B13F4806356\n:102A900013D0212803D90B4B0020186070470A4B34\n:102AA00010B5084C53F8303023600121FFF73AFD90\n:102AB000236800221A70012010BD1846704700BF1D\n:102AC0000080044078ECFF1F684C0000104B5B6BEB\n:102AD00013F4806312D012280BD0142810D10D4BA0\n:102AE00040F202325A610C4A537B01200343537374\n:102AF00070470A4B40F20232DA60F4E7184670473A\n:102B0000054A537B03F0FE0300205373704700BF58\n:102B10000080044000C0044000A0064000A0044023\n:102B2000034B5B6B5B0501D5FFF784BD704700BFAE\n:102B3000008004402DE9F84F394B5B6B5A053CD5BA\n:102B4000384B1B680BB101221A704718B84231D2BA\n:102B5000354EDFF8D880364CDFF8D89000F1010A06\n:102B600013E003F0FF0B53B34FF0000B5D46324A06\n:102B70001AF8013C5355524630490123BA420B70B2\n:102B80000AF1010A86F800B014D23578D8F800307E\n:102B90000135AB422378E4D9AB425FFA85FB0FD015\n:102BA0003F2DE4D9264B1AF8012C1B68403D5A559D\n:102BB0005246E1E71F4BBC22DA70BDE8F88F5D4654\n:102BC0006FF0430389F8033006E099F804301B06E0\n:102BD0000BD42378AB42E3D1FFF7D8FB4028F4DDD8\n:102BE000FF28F6DD01F0BAF8F3E72378D8F80010F3\n:102BF0005A1C9142DBB203D93F2A0AD8D1B201E074\n:102C000000210A460C4B9B5CDBB289F8073021702F\n:102C1000DFE7D1B20A4A3F3B1268D35CDBB2F4E78C\n:102C200000800440C8ECFF1F10EDFF1F48E6FF1FA7\n:102C300018EDFF1F00A00640D0ECFF1FCCECFF1FDB\n:102C400014EDFF1F10B5044C237823B101F086F872\n:102C50002378002BFAD110BDCCECFF1F084A094B9A\n:102C600011781A789142C8B2D3B202D2013B181A35\n:102C70007047054A1268013A1344181A704700BF9A\n:102C800010EDFF1F18EDFF1F48E6FF1F064A074B18\n:102C900011781A789142D0B23CBF054A1268CBB283\n:102CA00038BF9B18181A7047BCECFF1FC4ECFF1FFD\n:102CB00044E6FF1F1B4B1C491A780B789A422ED012\n:102CC00010B55FFA82FE194AD8B21268431C9A42C4\n:102CD00019D93F2B1BD85FFA83FC1548C05CC0B2E2\n:102CE00081F800C01349096861B19E453CBF724438\n:102CF000D31A114A126828BFAEEB03039A4201D3DC\n:102D000000230B7010BD4FF0000C6346E5E70B4C41\n:102D10003F382468205C5FFA83FCC0B2E0E74FF0E4\n:102D2000FF307047BCECFF1FC4ECFF1F44E6FF1FE1\n:102D30007CECFF1F78ECFF1F40E6FF1FC0ECFF1F7D\n:102D40000D4A0E4B11781B789942DAB211D00C491A\n:102D50000968531C994207D93F2B06D9094B3F3AC2\n:102D60001B68985CC0B270470023074AD05CC0B2B1\n:102D700070474FF0FF307047BCECFF1FC4ECFF1FE3\n:102D800044E6FF1FC0ECFF1F7CECFF1F0C4B5B6B8E\n:102D90005B0514D50B4B0C48DA78402102F0CB02CE\n:102DA000DA705974DA78094942F03402DA70084A64\n:102DB00003781268DBB20B700AB1002313707047FE\n:102DC0000080044000A00640C4ECFF1FBCECFF1FC5\n:102DD00078ECFF1F2DE9F041504C237913F0300FB0\n:102DE00047D072B6A37D03F0FF01002B58D062B626\n:102DF000DFF82C814B4898F800304B4A057816686C\n:102E00004A4F5FFA83FC4A4BEDB2D3F800E008E08A\n:102E10001DB14FF0000C07F80C304A1E12F0FF01F4\n:102E200012D0E3790CF101029642DBB2F0D995425F\n:102E3000ACF13F00F1D03F2A6DD994464A1E12F002\n:102E4000FF010EF80030ECD15FFA8CF388F8003007\n:102E5000384B196869B1AC453CBF721B02EB0C03DF\n:102E6000354A126828BFACEB05039A429CBF012388\n:102E70000B702A48C3781E06DDB216D46A060DD53B\n:102E8000264B1B795B0609D52C4B2D491B6800226C\n:102E90000A7003B11A70214B3C22DA70BDE8F08150\n:102EA0004023E279637462B6E3E703791C06E5D553\n:102EB000244B254ADFF894E01C7816689EF8003011\n:102EC000234A244FD2F800C0E4B2DBB207E0037912\n:102ED0000023FA5CD2B2C271027D072A11D8A34244\n:102EE00003F101010ED08E42F1D93F290279A3F1FD\n:102EF0003F0301D80B46ECE71CF803200B46D2B287\n:102F0000E9E7DCB2054B8EF800401A79110644BFA0\n:102F10007C22DA70B2E794467DE700BF00A006404D\n:102F2000BCECFF1FC4ECFF1F44E6FF1F7CECFF1F3F\n:102F3000C0ECFF1F78ECFF1F3CE6FF1FC8ECFF1F33\n:102F4000CCECFF1F10EDFF1F48E6FF1F18EDFF1F21\n:102F500014EDFF1FD0ECFF1F094B10B4186060B1D7\n:102F600001F14004074B084801F11A021A60074BAF\n:102F70000460283110BC196070474024F2E700BF9C\n:102F8000C0ECFF1F40E6FF1F44E6FF1F3CE6FF1FAB\n:102F9000054B186018B1054B403119607047034B61\n:102FA00040211960704700BF14EDFF1F48E6FF1F66\n:102FB000704700BF431E032B17D872B60C4951F857\n:102FC000230080B110B40B4CB0F800C034F81320CB\n:102FD000A2EB0C02D0F804C041F823C024F813205F\n:102FE00062B610BC704762B670470020704700BFE1\n:102FF000ACEDFF1FFCEDFF1F013803280BD872B6A4\n:10300000074B53F8203043B100205B680130002BA0\n:10301000FBD162B67047002070471846F9E700BF41\n:10302000D4EDFF1F10B472B6194A1A4C042312F8DB\n:10303000011B090743F0010C05D554F8331061B1A9\n:1030400054F83C10B9B10433142BF0D162B6124BD2\n:1030500000221A7010BC00F09BBC0F4904EBC302A5\n:10306000083050600A780D4844F83300013A0A707D\n:1030700062B610BC7047084A094904EBCC0308301B\n:103080005860137844F83C10013B137062B6F0E7C7\n:10309000F84D000000E0FF1F04EEFF1F8800400015\n:1030A000C8004000421E032A0ED81C4B400140F0CD\n:1030B000100010B4034472B6194CA05C03281CD84D\n:1030C000DFE800F01315031870470520A05413F033\n:1030D000080F088814BFC8228822083142EA00423B\n:1030E00059601A6062B610BC70470320EEE70833DF\n:1030F0000220EBE708330420E8E70A4B53F82200EC\n:1031000038B1094B53F82200416043F8221062B6EF\n:10311000E9E743F82210044BF7E700BF00E0FF1F88\n:10312000F4EDFF1FD4EDFF1FE4EDFF1F2DE9F04F7D\n:10313000DFF8CCA2DFF8CCB285B03DE0B24D9E08FE\n:1031400005EBC607013A796813F00803D4B2A1F180\n:10315000080040F0B88055F836204FEA124C120CA7\n:1031600021F808CC00F0A78021F8063C41F8043C87\n:10317000A64B53F82420002A00F00182A44B53F8F8\n:103180002420506043F82400A24B33F814209444C8\n:1031900023F814C000F0DCFB002800F0E98117F0F0\n:1031A000080F9D4B00F1080018BF5B46786045F89A\n:1031B000363008238AF880309AF880305907DCB21C\n:1031C0001BD5964B1B78ABB195490A7802F0FF03EB\n:1031D0002AB1013BDBB20B70002B00F04683914912\n:1031E0000A7802F0FF032AB1013BDBB20B70002B1F\n:1031F00000F0EB8104238AF8803014F0080200F01C\n:10320000CC819AF89020D3B2120997D1DFF8F891C7\n:103210009B0809EBC30459F833006468C0F38300CA\n:1032200009287CD00FD80138012808D87E4A158893\n:1032300042F22100854200F0FB8149F833B00123BE\n:103240008AF89430B5E70D28F9D1D4E90007774D15\n:1032500049F833B0744E764CC9F8102083B240F26E\n:10326000816CC9F818202A6063454FF00102C6E955\n:103270000007227000F2FF80B3F5D06F80F0CB82A0\n:10328000B3F5817F00F0268240F2DE8040F2023208\n:1032900093427BD107F07F07042F00F20881020CD4\n:1032A00040F00581634911F8273043F0020301F82B\n:1032B0002730134670E017F0080F574B18BF5B46D6\n:1032C00045F8363075E700F063FB5B495B4A51F81F\n:1032D0002430002B00F05781586841F82400115D1C\n:1032E00003F108007860032905D8DFE801F0120F28\n:1032F0001502042111551A8817F0080F14BFC823AE\n:10330000882343EA024345F8363052E7022111553B\n:10331000F1E703211155EEE705211155EBE7434D88\n:103320002A683AB34649424C0F88464894F800E070\n:103330000678402F3B4628BF4023BEF1000F8EF099\n:10334000010E84F800E046F0020486F001060670E3\n:1033500009EBC400426014BFC820882040EA034043\n:103360001A44FB1A9BB249F834000B80002B00F082\n:1033700036812A602C4B1A88B2F5A06F7FF45FAFBC\n:103380009A788AF8982000225A7058E7B3F5A06F0F\n:1033900040F08D8000221346B6F806C029489445B7\n:1033A00028BF944667460278402F28BF402742F046\n:1033B000020E3E0409EBCE0846F0C806C8F80430F9\n:1033C00049F83E6000263B442670BCEB070782F0BC\n:1033D0000106067040F01181BCF13F0F4FF001056E\n:1033E00009D946F00206027009EBC6022570536047\n:1033F000882349F8363001238AF894301FE700BF4C\n:1034000000200740C800400000E0FF1FACEDFF1F98\n:10341000BCEDFF1FFCEDFF1F88004000F8EDFF1F13\n:10342000F9EDFF1F24EEFF1FCCEDFF1FA0EDFF1FE6\n:103430009DEDFF1FC0200740D4EDFF1FF4EDFF1FDF\n:103440009EEDFF1F9CEDFF1F802B00F08B81822BD8\n:103450002DD107F07F07042F29D8A74A0023138016\n:10346000A64B13F827309F0740F1FC81012313700E\n:10347000A14B022290E742F2210C6345BBD01DD93B\n:1034800042F2212293420DD1BFB2002F82D19C4B38\n:103490001A689C4B1A609C4BC0F3074000221870BE\n:1034A000134679E742F2213293423FF473AF0F2380\n:1034B0008AF8C03001238AF89430C0E6B3F5086F6B\n:1034C00000F04A81B3F5106FF1D1904BC0F3074083\n:1034D0000425187059F835301A0606D40135142D14\n:1034E0000CD059F835301A06F8D509EBC50301356B\n:1034F0005868083800F04CFA142DF2D1844A854BF4\n:103500000292854A0192854E854ADFF8188203941B\n:10351000009200251C4656F8047B2FB138467F6880\n:1035200000F036FA002FF9D1009BD8F8007043F86C\n:10353000045B46F8045C00932FB138467F6800F0C6\n:1035400027FA002FF9D1029B48F8045B43F8045B8B\n:103550000293019B23F8025B01932378023B032B28\n:1035600000F20981DFE813F03F0104013F0104018B\n:103570006D4A45F8360013780133137019E643F8A5\n:103580002400674BFEE5115D022926D07FF611AEBF\n:1035900003291DD1012313550BE6E0076ED4210644\n:1035A00021D4A20708D5614B93F888200221D2B21A\n:1035B00083F8882083F88010E30603D55B4B102244\n:1035C00083F8802005B0BDE8F08F00F0A3FB11E682\n:1035D00017F0080F14BF032302231355E9E53F2F0B\n:1035E00098BF0022C5E6514B80220D2183F8C01000\n:1035F00083F88020A207DFD5D5E746F002060270E7\n:10360000402F09EBC6003A4628BF40224360100411\n:10361000134440F088000121BA1A49F8360021709D\n:1036200055D02B60424B1A8001238AF8943006E66D\n:1036300092885AB93F4AE51D14F8011B02F8011F90\n:10364000AC42F9D13C4A1268862A3CD03B4C3C48FB\n:1036500025780278002D85F00105257042F00204DE\n:1036600082F00102027009EBC4024FF000005060CA\n:1036700014BFC822882249F83420DEE52B4B30489D\n:103680003049314C022583F8945002702F480C6069\n:103690002F4D48608C600D24CD60FF200A618A6147\n:1036A00083F8C04001219F2483F8880083F88000BC\n:1036B00083F8982083F88C0083F8844083F8941072\n:1036C00005B0BDE8F08F234A0F201070BEE73F2FF2\n:1036D000A7D890E607F07F07042F3FF6E8AE000C6E\n:1036E0007FF4E5AE054A12F8273023F0020302F812\n:1036F0002730002213464FE6A4EDFF1FC0200740ED\n:1037000074ECFF1F20EEFF1F1CEEFF1FF8EDFF1FE4\n:10371000E4EDFF1FF4EDFF1FFCEDFF1FACEDFF1FFD\n:10372000BCEDFF1FD4EDFF1F04EEFF1F002007407C\n:103730009EEDFF1F13EEFF1F14EEFF1F9DEDFF1FF9\n:103740009CEDFF1F00E0FF1F880040001CEDFF1FE5\n:103750005CEDFF1FF9EDFF1F484B49491B780B70CB\n:103760000B4619E6464A00231380454B022213E616\n:103770004FF001032370434BB34204F101047FF483\n:10378000CAAE414E039CDFF80481414F00233370E1\n:10379000042518F8013B3F4AAB541B0725D445F0DC\n:1037A000020145F0030204350023142D49F831309D\n:1037B00049F83230EDD1384F25783A7842F002009E\n:1037C00009EBC00C85F00106CCF80430002D4DD17A\n:1037D000882382F0010226703A7049F830300123C4\n:1037E0008AF894302BE52570C5E700F0B1F8002881\n:1037F00032D009EBC5030830586049F8357000F045\n:10380000A7F808B345F0010309EBC3020830506084\n:1038100049F833B0C3E7214A5368002B3FF447AE61\n:10382000000CBFB204E013690C32002B3FF43FAE32\n:1038300011888142F7D15188B942F4D1000A032896\n:103840000CBF1A781289A7E533780133337045F03D\n:10385000010349F83300A2E7337849F83500013312\n:103860003370CCE7064B022296E500BE2670C823D3\n:1038700082F001063E7049F83030BCE5F8EDFF1FDC\n:10388000A4EDFF1FBCEDFF1F04EEFF1FF84D00006D\n:1038900088004000C02007409CEDFF1FA44D0000A1\n:1038A00070B500F08BFB00231A4A194642F833101A\n:1038B00002EBC3000133142B4160F7D1164C174BB8\n:1038C000606B174D40F480206063C2F3072483F8D7\n:1038D0009C40144CFF204FF0010CC2F30746120E1F\n:1038E00083F8B0604FF0E02E83F8B42083F88000B6\n:1038F00083F88800187483F894C0217083F884C01A\n:10390000702385F8233008221023CEF80421237277\n:1039100070BD00BF00E0FF1F008004400020074092\n:1039200000E400E00021074000F0F6B800F07CB8A9\n:1039300000F056B800F090B800F0C0B900F09AB9A5\n:103940000846114600F004B9084600F085B900BFEA\n:1039500072B60D490B68B3FA83F00B2810DC4FF0F8\n:103960000042C24023EA02030B6062B6074A00EB42\n:10397000C000C10002EBC0000023535043607047F9\n:1039800062B60020704700BF60E6FF1FF8E1FF1F2E\n:103990000E4BC31AB3F5587F10D20D4A127872B984\n:1039A00072B60C4A0C49A2FB032308684FF0004290\n:1039B0001B0922FA03F303430B6062B67047074A00\n:1039C0001278002AECD0FFF72DBB00BFF8E1FF1FF3\n:1039D00004EEFF1F398EE33860E6FF1FF8EDFF1F8E\n:1039E00038B50F4C206878B143880288C11801337C\n:1039F0009A420D7A02D94380284638BDFFF7C8FFA6\n:103A000000232360284638BD064B1B782BB10320CA\n:103A1000FFF7D0FA20600028E6D14FF0FF35EBE742\n:103A200008EEFF1FF8EDFF1F10B5094C206818B114\n:103A300043881844007A10BD064B1B782BB1032035\n:103A4000FFF7B8FA20600028F2D14FF0FF3010BD28\n:103A500008EEFF1FF8EDFF1F084B094A1B6810B561\n:103A600094881BB11A885B88D31A1C440CB1204679\n:103A700010BD00F073F9204610BD00BF08EEFF1F17\n:103A8000FCEDFF1F2DE9F84F0D4600293ED04FF009\n:103A90000008DFF87C901F4E0746C24699F80030B8\n:103AA000E3B1346814B322886388A2EB030BAB45FF\n:103AB00028BFAB4604F1080138465A461944FEF7C0\n:103AC0004DFB638822885B449BB29A4263805F44CB\n:103AD000D844A5EB0B0511D9002DDFD14046BDE838\n:103AE000F88F0288002ADFD1FFF752FF0320FFF78B\n:103AF00061FA044630600028F3D1EFE72046FFF773\n:103B000047FFC6F800A0002DC8D1E7E70846E6E762\n:103B1000F8EDFF1F08EEFF1F0B4B1B789BB110B594\n:103B20000A4C206848B1FFF733FF002303202360CD\n:103B3000FFF740FA30B1FFF72BFF0320FFF73AFA07\n:103B40000028F8D110BD7047F8EDFF1F08EEFF1FE9\n:103B50002DE9F04FDFF8EC9083B0012289F80020C6\n:103B6000019179B3384FDFF8E480019D384EDFF8DA\n:103B7000E4A083463968A1B3B1F802E0CEF1400C6D\n:103B8000AC4528BFAC460EEB0C040022A4B2327048\n:103B9000A5EB0C054C8001F10802BCF1000F0AD026\n:103BA0000EF1FF3E7244DC441BF8014B02F8014F5A\n:103BB000DC45F9D14C883F2C0BD805228AF800202F\n:103BC000002DD7D10198002389F8003003B0BDE85B\n:103BD000F08F40220A800420FFF764FA00223A6046\n:103BE000EBE798F800202AB34AF2F92408E0013CF8\n:103BF00019D03278BAB900F0B1F898F80020CAB1FB\n:103C00000420FFF7F9F90728F1D84FF0010389F8EC\n:103C10000030FFF79DFE014638600028ACD1013C22\n:103C200089F80000E5D101234FF0FF30337003B075\n:103C3000BDE8F08F00234FF0FF3089F8003003B06B\n:103C4000BDE8F08F0DEEFF1F10EEFF1FF8EDFF1F18\n:103C50000CEEFF1F24EEFF1F00B583B003460121C9\n:103C60000DF107008DF80730FFF772FF03B05DF824\n:103C700004FB00BF38B50E4D0E4C2868012323709D\n:103C800028B140880023C0F14000237038BD0A4BA2\n:103C90001B7813B90020207038BD0420FFF7ACF961\n:103CA0000728F7D8FFF754FE28600028E9D1F1E78C\n:103CB00010EEFF1F0DEEFF1FF8EDFF1FF8B5114BC3\n:103CC0001B788BB1104E114D346801272F7064B1F1\n:103CD0000F4B00271F706388238021460420FFF7C5\n:103CE000E1F9376000232B70F8BDFFF731FE084B78\n:103CF000014620B104201C70FFF7D4F9F2E71F70D1\n:103D0000F0E700BFF8EDFF1F10EEFF1F0DEEFF1FE5\n:103D100024EEFF1F38B50E4B1B7853B90D4C2168AC\n:103D200041B103F0FF054B880B800420FFF7BAF97F\n:103D3000256038BDFFF70CFE014620B1BDE83840D4\n:103D40000420FFF7AFB9044B01221A7038BD00BF41\n:103D50000DEEFF1F10EEFF1F24EEFF1F2DE9F843AD\n:103D6000324E337863B1324F3A784AB90122D907DB\n:103D70003A7043D49A0726D400225B073A7001D4E4\n:103D8000BDE8F8832B4B1A68002AF9D0EFF30582BF\n:103D9000002AF5D1EFF3108572B6186800283AD0E2\n:103DA000254C2178002936D142691A6001232370FD\n:103DB000002A37D0916105B962B60025836845773E\n:103DC00098472570DCE7DFF8748098F80020002A17\n:103DD000D2D00025DFF868902B4659F8234023689D\n:103DE00020461B690135984708B12369984798F820\n:103DF0000020EBB29A42F0D83378BDE7FFF72CFEF3\n:103E000068B9104B1B780BB93378B3E7337803F0FC\n:103E1000FE033370AEE7002DB2D162B6B0E700F01A\n:103E2000CBF8EEE7084B1A60C5E700BF64E6FF1F5A\n:103E300025EEFF1F28EEFF1F34EEFF1F48EEFF1F89\n:103E40003CEEFF1FA04D000038EEFF1F70B5EFF3F2\n:103E5000108272B60C4C206880B10C4E002543696C\n:103E6000236073B19D6102B962B683684577984754\n:103E7000EFF3108272B620680028F0D102B962B662\n:103E800070BD3360EFE700BF30EEFF1F2CEEFF1F69\n:103E9000FFF7DCBF024A136801331360704700BFAD\n:103EA00074ECFF1F70B4104E104D3478D4B1621E04\n:103EB000D2B2291D2B4601EB820101E08B4205D0D5\n:103EC00053F8042B8242F9D170BC7047631CDBB2FB\n:103ED000074A3370137845F8240043F00203137047\n:103EE00070BC70470123F3E748EEFF1F3CEEFF1F55\n:103EF00064E6FF1F2A4B2B4A6020E121187059709D\n:103F00001378082B32D00A2B1AD00C2B264B0CBF5F\n:103F100035213D2112229960DA60244B1B78C3B110\n:103F2000214B01221A62224B1B78012B17D9042B3B\n:103F300022D81D4B84225A621E4B01221A707047F0\n:103F4000194B392113229960DA60184B1B78002B2A\n:103F5000E6D1154A1362164B1B78012BE7D8124B9A\n:103F600080225A62134B01221A7070470E4B0121B6\n:103F700013229960DA60D0E7082B06D80A4B852215\n:103F80005A620C4B01221A707047102B064B94BFDB\n:103F9000862287225A62074B01221A70704700BF9F\n:103FA0000040074065E6FF1F00B0034049EEFF1FD9\n:103FB00066E6FF1F4AEEFF1F704700BF10B584B0D2\n:103FC00072B6174A702441200F2180231470D071DB\n:103FD0009171137013781B06FCD5906862B6114B73\n:103FE000114C984238BF00EB800001A938BF400057\n:103FF0000A22FEF7EDF901A92046002311F8012B52\n:1040000001333AB10A2B20F8022FF7D1162323707F\n:1040100004B010BD5B00DBB2237004B010BD00BF64\n:104020000000024080969800F4E6FF1F024B014614\n:10403000186800F00BB800BF40ECFF1F024B0146B0\n:10404000186800F02BBC00BF40ECFF1F2DE9F04FBB\n:1040500001F10B06162E83B0044624D8102900F275\n:10406000BA8000F0A3FA102618220220B54F3A4475\n:10407000A2F1080153688B4200F0BA805A68D968EF\n:1040800022F003021A449D68E9608D60516841F096\n:1040900001012046516003F1080500F08DFA284621\n:1040A00003B0BDE8F08F36F0070600F19480B1420E\n:1040B00000F2918000F07AFAB6F5FC7FC0F09A81A8\n:1040C000730A00F08F80042B00F26F81B30903F1B3\n:1040D000390003F1380CC3009A4F3B44A3F10805A3\n:1040E0005B689D4206D10CE0002980F22781DB68E5\n:1040F0009D4206D05A6822F00302911B0F29F3DD7E\n:1041000060463D69DFF840C265457CD06A6822F0B0\n:104110000302931B0F2B00F37B81002BC7E904CC18\n:1041200080F26C81B2F5007F80F01A81D308796843\n:1041300001334FEA521E012202FA0EF20A4357F8E7\n:1041400033E0C5F808E007EBC3010839E9607A609D\n:1041500047F83350CEF80C5083100121994091421A\n:1041600057D8114206D120F003004900114200F156\n:104170000400FAD007EBC0094D468646D5F80C80FE\n:10418000454508D11DE1002B80F22481D8F80C8030\n:10419000454500F01681D8F8042022F00302931B55\n:1041A0000F2BF0DD2046D8E9025408EB060146F05B\n:1041B0000106C8F80460EC60A56043F00104C7E99B\n:1041C0000411C1E902CC4C6048F8023000F0F4F967\n:1041D00008F1080502E00C2323600025284603B0FF\n:1041E000BDE8F08F4FF4007340204FF03F0C73E7B1\n:1041F000D3689A4208BF02307FF440AF3D69DFF8D0\n:1042000048C1654582D17A68831001219940914265\n:10421000A7D9BD686B6823F003094E4503D8A9EB05\n:1042200006030F2B7ADCDFF824B1494BDBF80020C2\n:104230001B680132334405EB090A00F0338103F5B2\n:1042400080530F3323F47F6828F00F08414620463F\n:1042500000F00AFA411C024600F0F380824500F2A9\n:10426000EE803C4B196841441960084600F04E81CD\n:10427000DBF80010019301311BBFA2EB0A01091802\n:10428000CBF80020196012F0070B00F01781CBF17A\n:1042900008010A44CBF5805190440831A1EB080194\n:1042A000C1F30B0A51462046009200F0DDF9421C92\n:1042B000DDE9002300F04F81801A00EB0A0819683D\n:1042C000BA6048F001005144BD425060196000F0EE\n:1042D0002981B9F10F0F40F227816868A9F10C0C10\n:1042E0002CF0070C00F0010040EA0C0068604FF071\n:1042F000050E05EB0C00BCF10F0FC0E901EE00F25A\n:10430000328150681546144B1A688A4238BF1960CA\n:10431000124B1A688A4238BF196094E0AA1943F018\n:10432000010346F001066E602046BA60536000F05B\n:1043300043F90835284603B0BDE8F08FD9681A4420\n:10434000A1E600BF0CE7FF1F14E7FF1F14EBFF1FE0\n:104350007CEEFF1F4CEEFF1F74EEFF1F78EEFF1F79\n:10436000B2F5206F4FEA522363D3142B00F2B780CB\n:1043700003F15C01C9005B3307EB010E7958AEF124\n:10438000080E8E4500F091804B6823F003039342A2\n:1043900002D989688E45F7D1D1F80CE07A68C5E971\n:1043A000021ECEF80850CD60D6E6142B59D9542BF6\n:1043B00000F29D80330B03F16F0003F16E0CC3001C\n:1043C0008AE60EF1010E1EF0030F05F108057FF4D9\n:1043D000D5AE51E0424445465368D8F80C1043F03E\n:1043E0000103536055F8083F2046D9608B6000F008\n:1043F000E3F8F3E6F00806F1080237E62A4420461F\n:10440000536843F001035360083500F0D5F8E5E642\n:10441000A919204646F0010643F001046E60C7E981\n:104420000411C1E902CC4C60AB5000F0C5F808356E\n:10443000D4E6930903F13901C90038339CE7BD4242\n:104440005FD0BD68686820F003084645A8EB060306\n:1044500002D80F2B3FF762AF204600F0ADF80025E1\n:10446000BCE603F15C0003F15B0CC30034E659F8D1\n:1044700008394B4540F0968010F0030F00F1FF30F3\n:10448000F5D17B6823EA01037B60490099423FF63E\n:10449000C0AE19B9BDE649000EF1040E1942FAD0BA\n:1044A000704667E603F11008D0E69A104FF0010855\n:1044B0007B6808FA02F21A437A6070E702EB08019F\n:1044C0004942C1F30B0A51462046009200F0CCF855\n:1044D000431CDDE900237FF4EFAEDA46EFE6542B10\n:1044E00025D8130B03F16F01C9006E3344E7B3F510\n:1044F000AA7F25D8F30B03F1780003F1770CC300F2\n:10450000EAE5294B186840441860B1E6CAF30B0C81\n:10451000BCF1000F7FF4ACAEBD68C84448F00100A8\n:104520006860F0E61546EEE60123536094E7B3F5C4\n:10453000AA7F23D8D30B03F17801C90077331BE797\n:1045400040F25452934223D8B30C03F17D0003F19F\n:104550007C0CC300C0E5ABF1080BD844A8EB020803\n:104560004FF0000AABE605F108012046009300F089\n:1045700095F9BD68009B68681968C4E640F254511B\n:104580008B420BD8930C03F17D01C9007C33F3E619\n:104590004FF47E737F204FF07E0C9DE54FF47E71CB\n:1045A0007E23E9E67B6870E74CEEFF1F014800F0D0\n:1045B00097B800BFC0EFFF1F014800F093B800BFDD\n:1045C000C0EFFF1F830730B548D0541E002A3FD0EC\n:1045D000CAB2034601E0013C3AD303F8012B9D0720\n:1045E000F9D1032C2DD9CDB245EA05250F2C45EA8A\n:1045F000054536D9A4F1100222F00F0C03F1200E6C\n:10460000E6444FEA121C03F1100242E9045542E964\n:10461000025510327245F8D10CF1010214F00C0F62\n:1046200003EB021204F00F0C13D0ACF1040323F0DF\n:1046300003030433134442F8045B9342FBD10CF0B0\n:1046400003042CB1C9B21C4403F8011B9C42FBD1EA\n:1046500030BD64461346002CF4D1F9E703461446F6\n:10466000BFE71A46A446E0E738B5074D00220446E6\n:1046700008462A60FDF774FE431C00D038BD2B6845\n:10468000002BFBD0236038BDB8EFFF1F014B18682B\n:10469000704700BF40ECFF1F70B50D4E0D4D761BEF\n:1046A000B61006D0002455F8043B01349847A642C2\n:1046B000F9D1094E094D761B00F0A0FBB61006D0CB\n:1046C000002455F8043B01349847A642F9D170BD47\n:1046D000084E0000084E0000104E0000084E00007A\n:1046E000704700BF704700BFFFFFFFFFFFFFFFFFE6\n:1046F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA\n:1047000090F800F06DE9024520F007016FF0000C11\n:1047100010F0070491F820F040F049804FF00004B9\n:104720006FF00700D1E9002391F840F000F1080094\n:1047300082FA4CF2A4FA8CF283FA4CF3A2FA8CF3CC\n:104740004BBBD1E9022382FA4CF200F10800A4FA33\n:104750008CF283FA4CF3A2FA8CF3E3B9D1E9042387\n:1047600082FA4CF200F10800A4FA8CF283FA4CF3BE\n:10477000A2FA8CF37BB9D1E9062301F1200182FA78\n:104780004CF200F10800A4FA8CF283FA4CF3A2FA7E\n:104790008CF3002BC6D0002A04BF04301A4612BA8C\n:1047A000B2FA82F2FDE8024500EBD2007047D1E98F\n:1047B000002304F00305C4F100004FEAC50514F01E\n:1047C000040F91F840F00CFA05F562EA05021CBFEF\n:1047D00063EA050362464FF00004A9E7024B13B1F8\n:1047E000024800F005B8704700000000A94A000028\n:1047F000002301461A46184600F06AB9F8B5244F5E\n:104800000C460646FFF7D2FEBB685D68C4F57E61C4\n:104810000F3125F003054B1923F47F6323F00F03B9\n:10482000A3F58054B4F5805F07DB00213046FFF725\n:104830001BFFBB682B44984204D03046FFF7BCFEF8\n:104840000020F8BD61423046FFF70EFF01300DD069\n:10485000104ABB682D1B45F001055D6013683046AA\n:104860001B1B1360FFF7A8FE0120F8BD0021304696\n:10487000FFF7FAFEBA68831A0F2BDEDD43F001035F\n:104880005360054B03491B68C01A0860D5E700BF99\n:104890000CE7FF1F4CEEFF1F14EBFF1F002961D038\n:1048A000F8B50C460646FFF781FE54F8042C7B4F02\n:1048B000A4F1080522F0010105EB010CB868DCF851\n:1048C0000430604523F0030300F08B80D207CCF85E\n:1048D000043032D454F8082CAD1A1144AA6807F1F8\n:1048E000080082426AD00CEB0304D4F804E0EC68C0\n:1048F000D4601EF0010FA26000F0978041F0010328\n:104900006B60CCF80010B1F5007F35D27868CB0829\n:104910000122490901338A40024357F833107A6073\n:1049200007EBC302083AC5E9021247F83350CD60DD\n:104930003046BDE8F840FFF73FBE0CEB030252687B\n:10494000D00710D4194407F10800DCF8083083427E\n:1049500073D0DCF80C20DA60936041F001036B60E7\n:104960006950D0E7704741F00103B1F5007F44F88A\n:10497000043CCCF80010C9D3B1F5206F4FEA5123A5\n:1049800048D28B0903F1390003F13802C300F8184B\n:10499000FB580838984259D05A6822F003028A42DC\n:1049A00002D99B689842F7D1D868C5E90230856082\n:1049B000DD603046BDE8F840FFF7FEBD0CEB0302BA\n:1049C0005268D20763D40B44DCE90212CA609160DA\n:1049D00043F001026A603046EB50BDE8F840FFF753\n:1049E000EBBD0B44D10707D454F8082CAD1A13447F\n:1049F000D5E90212CA60916043F001026A60284A58\n:104A0000BD6012689A4293D8264B30461968FFF76A\n:104A1000F5FE8DE7142B0AD9542B1FD80B0B03F18D\n:104A20006F0003F16E02C300B1E719448DE703F193\n:104A30005C0003F15B02C300A9E741F00103C7E991\n:104A40000455C5E902006B60695071E779689210FE\n:104A5000012404FA02F20A437A60A6E7B3F5AA7FBA\n:104A600006D8CB0B03F1780003F17702C3008EE781\n:104A700040F25452934206D88B0C03F17D0003F1AF\n:104A80007C02C30083E74FF47E737E227FE741F010\n:104A900001036B60CCF800104AE700BF0CE7FF1F72\n:104AA00018EBFF1F7CEEFF1F38B5074D074C2C1B82\n:104AB000A41005D0013C55F8043D9847002CF9D1CD\n:104AC000BDE8384000F0A4B900000000000000007C\n:104AD0002DE9F047DFF874A00646DAF800009846A2\n:104AE0000F469146FFF7FCFD194B1C6824B365681F\n:104AF0001F2D24DC5EB96B1C0235DAF80000636000\n:104B000044F82570FFF7EEFD0020BDE8F08704EBC8\n:104B100085010123C1F88890D4F88821AB401A435D\n:104B2000022EC4F88821C1F80881E4D1D4F88C2180\n:104B30001A43C4F88C21DEE7064C1C60D7E7DAF88C\n:104B40000000FFF7CFFD4FF0FF30DEE744ECFF1F22\n:104B5000C4EFFF1FC8EFFF1F7701080F010100FF1F\n:104B600077E2FE0F010300FF77E2FE0F010800FF6E\n:104B700077E2FE0F010900FF77E2FE0F010400FF5C\n:104B80006500000000000000690000000000000057\n:104B90007700FC0F0101000077E2FE0F010000002A\n:104BA0007703080F010000007704080F0200FC00E3\n:104BB0007700080F0800000000000000040000005B\n:104BC0007700080F080300000000FC02000000004E\n:104BD0007700080F0804000000000001000000003A\n:104BE0007700FC0F000000007700FD0F00000000C0\n:104BF0000000FC0002000000750000000000FFFF44\n:104C00000000000000000000B91F0000DD1F0000D0\n:104C10006D20000069200000652000006120000078\n:104C20005D200000811F00003D20000039200000B1\n:104C30003120000029200000212000001120000068\n:104C400001200000FD1F0000F51F0000ED1F000007\n:104C5000611F0000691F0000711F0000791F000024\n:104C6000C51F0000AD1F00004008FE4340A00440E7\n:104C70004408FE4344A004400018FE4300C0044022\n:104C80003000FE43309004403400FE433490044032\n:104C90001C18FE431CC004401018FE4310C0044002\n:104CA0000818FE4308C004400C18FE430CC0044022\n:104CB0000C10FE430CB004401010FE4310B0044032\n:104CC0001810FE4318B004401C10FE431CB00440F2\n:104CD0001410FE4314B004400418FE4304C0044002\n:104CE0000010FE4300B004400008FE4300A0044052\n:104CF0000408FE4304A004400C08FE430CA004403A\n:104D00000808FE4308A004401418FE4314C00440E1\n:104D10001818FE4318C004400410FE4304B00440B9\n:104D20000810FE4308B004401400FE4314900440F1\n:104D30004C08FE434CA004400420FE4304D0044031\n:104D40002410FE4324B004402010FE4320B0044051\n:104D50002810FE4328B004402C10FE432CB0044021\n:104D60000020FE4300D004404808FE4348A0044011\n:104D70001000FE43109004400000000000000000FE\n:104D800049390000413900003D390000393900003F\n:104D900035390000313900002D3900002939000073\n:104DA00000FFFFFF00010000ACE6FF1F1200000043\n:104DB0000002000068E6FF1F43000000000300003F\n:104DC000C0E6FF1F0000000001030904C4E6FF1F46\n:104DD0000000000002030904DCE6FF1F00000000E1\n:104DE00003030904F4E6FF1F0000000000000000B8\n:104DF000000000000000000000151915F8B500BF04\n:104E0000F8BC08BC9E467047DD4700003504000032\n:044E1000F8B500BF32\n:104E1400E00704EC00FB0F0000FBC013BFE607C073\n:104E2400BFEC07C0BFEE07CFEB07ECF5EA07FCB217\n:104E3400FF0E72FCB2FF0E76FCB2FF0E77FCB2FFDF\n:104E44000E9EFDFCB2FF0E73624C69DD6D4C77DD86\n:104E54001D4C72DD294C65DD324C75DD62FCA1FF11\n:104E64000ED5EA07DFC8AFE60712ECEB070FFCB27A\n:104E7400FF0E119BA793DFF6FE4C00EEE3FF118BB0\n:104E8400FCA1FF0EA793DFF6EED6FF61FFFCF8FF4F\n:104E94000E8F02084C0FDD0B624CFFDF11FCC408BF\n:104EA4000FEFF5624CFFDF06FC04F00EEFF5C36173\n:104EB400CFC262FCA1FF0EEEA7FFE5EA07EF03E510\n:104EC400EA07FE0200EF9A5100FCA1FF0ED7FFFF94\n:104ED400FFFFFFFFFFFFFFFFFFFFFF00084C000085\n:104EE40000000000E803000000000000B12F0000F3\n:104EF40058F1FF1F280000001A00000040000000C5\n:104F04004000000001010000804D0000000000008E\n:104F1400E803000000000000FFFFFFFF010A040097\n:104F240009024300020100C0320904000001020228\n:104F340001000524001001052401010104240206D6\n:104F4400052406000107058203100040090401003E\n:104F5400020A00000007050302400000070584025E\n:104F6400400000001201100102000040C01683043A\n:104F7400740201020301000004030904180354002D\n:104F8400650065006E0073007900640075006900B7\n:104F94006E006F00160355005300420020005300BA\n:104FA40065007200690061006C0000000C030000E1\n:104FB40000000000000000000000000000000000ED\n:104FC4000000000000000000000000000CE7FF1FCC\n:104FD4000CE7FF1F14E7FF1F14E7FF1F1CE7FF1F69\n:104FE4001CE7FF1F24E7FF1F24E7FF1F2CE7FF1F19\n:104FF4002CE7FF1F34E7FF1F34E7FF1F3CE7FF1FC9\n:105004003CE7FF1F44E7FF1F44E7FF1F4CE7FF1F78\n:105014004CE7FF1F54E7FF1F54E7FF1F5CE7FF1F28\n:105024005CE7FF1F64E7FF1F64E7FF1F6CE7FF1FD8\n:105034006CE7FF1F74E7FF1F74E7FF1F7CE7FF1F88\n:105044007CE7FF1F84E7FF1F84E7FF1F8CE7FF1F38\n:105054008CE7FF1F94E7FF1F94E7FF1F9CE7FF1FE8\n:105064009CE7FF1FA4E7FF1FA4E7FF1FACE7FF1F98\n:10507400ACE7FF1FB4E7FF1FB4E7FF1FBCE7FF1F48\n:10508400BCE7FF1FC4E7FF1FC4E7FF1FCCE7FF1FF8\n:10509400CCE7FF1FD4E7FF1FD4E7FF1FDCE7FF1FA8\n:1050A400DCE7FF1FE4E7FF1FE4E7FF1FECE7FF1F58\n:1050B400ECE7FF1FF4E7FF1FF4E7FF1FFCE7FF1F08\n:1050C400FCE7FF1F04E8FF1F04E8FF1F0CE8FF1FB5\n:1050D4000CE8FF1F14E8FF1F14E8FF1F1CE8FF1F64\n:1050E4001CE8FF1F24E8FF1F24E8FF1F2CE8FF1F14\n:1050F4002CE8FF1F34E8FF1F34E8FF1F3CE8FF1FC4\n:105104003CE8FF1F44E8FF1F44E8FF1F4CE8FF1F73\n:105114004CE8FF1F54E8FF1F54E8FF1F5CE8FF1F23\n:105124005CE8FF1F64E8FF1F64E8FF1F6CE8FF1FD3\n:105134006CE8FF1F74E8FF1F74E8FF1F7CE8FF1F83\n:105144007CE8FF1F84E8FF1F84E8FF1F8CE8FF1F33\n:105154008CE8FF1F94E8FF1F94E8FF1F9CE8FF1FE3\n:105164009CE8FF1FA4E8FF1FA4E8FF1FACE8FF1F93\n:10517400ACE8FF1FB4E8FF1FB4E8FF1FBCE8FF1F43\n:10518400BCE8FF1FC4E8FF1FC4E8FF1FCCE8FF1FF3\n:10519400CCE8FF1FD4E8FF1FD4E8FF1FDCE8FF1FA3\n:1051A400DCE8FF1FE4E8FF1FE4E8FF1FECE8FF1F53\n:1051B400ECE8FF1FF4E8FF1FF4E8FF1FFCE8FF1F03\n:1051C400FCE8FF1F04E9FF1F04E9FF1F0CE9FF1FB0\n:1051D4000CE9FF1F14E9FF1F14E9FF1F1CE9FF1F5F\n:1051E4001CE9FF1F24E9FF1F24E9FF1F2CE9FF1F0F\n:1051F4002CE9FF1F34E9FF1F34E9FF1F3CE9FF1FBF\n:105204003CE9FF1F44E9FF1F44E9FF1F4CE9FF1F6E\n:105214004CE9FF1F54E9FF1F54E9FF1F5CE9FF1F1E\n:105224005CE9FF1F64E9FF1F64E9FF1F6CE9FF1FCE\n:105234006CE9FF1F74E9FF1F74E9FF1F7CE9FF1F7E\n:105244007CE9FF1F84E9FF1F84E9FF1F8CE9FF1F2E\n:105254008CE9FF1F94E9FF1F94E9FF1F9CE9FF1FDE\n:105264009CE9FF1FA4E9FF1FA4E9FF1FACE9FF1F8E\n:10527400ACE9FF1FB4E9FF1FB4E9FF1FBCE9FF1F3E\n:10528400BCE9FF1FC4E9FF1FC4E9FF1FCCE9FF1FEE\n:10529400CCE9FF1FD4E9FF1FD4E9FF1FDCE9FF1F9E\n:1052A400DCE9FF1FE4E9FF1FE4E9FF1FECE9FF1F4E\n:1052B400ECE9FF1FF4E9FF1FF4E9FF1FFCE9FF1FFE\n:1052C400FCE9FF1F04EAFF1F04EAFF1F0CEAFF1FAB\n:1052D4000CEAFF1F14EAFF1F14EAFF1F1CEAFF1F5A\n:1052E4001CEAFF1F24EAFF1F24EAFF1F2CEAFF1F0A\n:1052F4002CEAFF1F34EAFF1F34EAFF1F3CEAFF1FBA\n:105304003CEAFF1F44EAFF1F44EAFF1F4CEAFF1F69\n:105314004CEAFF1F54EAFF1F54EAFF1F5CEAFF1F19\n:105324005CEAFF1F64EAFF1F64EAFF1F6CEAFF1FC9\n:105334006CEAFF1F74EAFF1F74EAFF1F7CEAFF1F79\n:105344007CEAFF1F84EAFF1F84EAFF1F8CEAFF1F29\n:105354008CEAFF1F94EAFF1F94EAFF1F9CEAFF1FD9\n:105364009CEAFF1FA4EAFF1FA4EAFF1FACEAFF1F89\n:10537400ACEAFF1FB4EAFF1FB4EAFF1FBCEAFF1F39\n:10538400BCEAFF1FC4EAFF1FC4EAFF1FCCEAFF1FE9\n:10539400CCEAFF1FD4EAFF1FD4EAFF1FDCEAFF1F99\n:1053A400DCEAFF1FE4EAFF1FE4EAFF1FECEAFF1F49\n:1053B400ECEAFF1FF4EAFF1FF4EAFF1FFCEAFF1FF9\n:1053C400FCEAFF1F04EBFF1F04EBFF1FFFFFFFFFBF\n:1053D40000000200000000000000000080EEFF1F3B\n:1053E400E8EEFF1F50EFFF1F000000000000000068\n:1053F40000000000000000000000000000000000A9\n:105404000000000000000000000000000000000098\n:105414000000000000000000000000000000000088\n:105424000000000000000000000000000000000078\n:105434000000000000000000000000000000000068\n:105444000000000000000000000000000000000058\n:105454000000000000000000000000000000000048\n:105464000000000000000000000000000000000038\n:1054740001000000000000000E33CDAB34126DE6D5\n:10548400ECDE05000B00000000000000000000003E\n:105494000000000000000000000000000000000008\n:1054A40000000000000000000000000000000000F8\n:1054B40000000000000000000000000000000000E8\n:1054C40000000000000000000000000000000000D8\n:1054D40000000000000000000000000000000000C8\n:1054E40000000000000000000000000000000000B8\n:1054F400000000000000000020EBFF1FBCEFFF1FB6\n:00000001FF\n"
  },
  {
    "path": "assets/hw/syscon_flasher/syscon_flasher_v2.05_teensy_3.2.hex",
    "content": ":1000000000800020BD0100004923000005230000FE\n:100010000523000005230000052300000523000040\n:1000200005230000052300000523000049230000EC\n:100030004923000005230000A53E0000A93E000062\n:100040004923000049230000492300004923000000\n:1000500049230000492300004923000049230000F0\n:1000600049230000492300004923000049230000E0\n:1000700049230000492300004923000049230000D0\n:1000800049230000492300004923000049230000C0\n:1000900049230000492300004923000049230000B0\n:1000A00049230000492300004923000049230000A0\n:1000B0004923000049230000492300004923000090\n:1000C0004923000049230000492300004923000080\n:1000D0004923000049230000492300004923000070\n:1000E0004923000049230000492300004923000060\n:1000F00049230000E92D00004923000049230000A6\n:10010000492300004923000049230000492300003F\n:10011000492300004923000049230000492300002F\n:10012000492300004923000049230000492300001F\n:10013000492300004923000049230000492300000F\n:1001400049230000492300004923000049230000FF\n:1001500049230000492300004923000049230000EF\n:1001600049230000413100004923000049230000D9\n:1001700049230000492300004923000049230000CF\n:1001800049230000492300004923000049230000BF\n:1001900049230000492300004923000049230000AF\n:1001A000492300004923000049230000492300009F\n:1001B000492300004923000049230000574B4CF21B\n:1001C000205210B5DA814DF62812DA8100BF00BF47\n:1001D00002F0BEF8524B4FF010621A63514A9A6314\n:1001E000514ADA63514A136913F4807303D153619E\n:1001F0004FF4A85313614E4B9A78110703D59A78A0\n:1002000042F008029A704B4B4B482A221A704B4B13\n:10021000DA1C121AC11E22F00302994288BF002282\n:10022000474901F09BFF474B4748DA1C121AC11E91\n:1002300022F00302994288BF0022002104F0CEF987\n:10024000424943484FF4DE7201F088FF414B424A75\n:10025000802103F8011B9342FBD14FF0E0233C4A7D\n:10026000C3F8082D3D4B8A221A70A3F5805324222F\n:100270005A70A0221A709A799207FCD59A79D406FE\n:10028000FCD4374B9A7902F00C02082AFAD10322E7\n:100290001A7140225A719A799006FCD5304A9379A6\n:1002A0005906FCD51E4B2F4959640221996420211F\n:1002B0001170917901F00C010C29FAD12A4A5A6087\n:1002C0004FF0E023294A5A6100229A6107221A61FD\n:1002D000274AC3F8202D62B602F0B4F8134B5B69CD\n:1002E000DA0705D5234802F0A1F8234B234ADA6147\n:1002F000234B1B785B0609D51F4C204BE2699A42C1\n:1003000004D11C4802F092F80023E36102F026F8C1\n:1003100004F0CEF901F01AFFFEE700BF002005400F\n:1003200000800440823F04000100002B00D0034005\n:1003300000D0074000E007402087FF1F108EFF1FFE\n:10034000144E00002093FF1F108EFF1F00000000BE\n:100350000082FF1F00E400E05FE400E00050064080\n:100360000040064000000301C0100500FF760100B8\n:10037000000020209511896800E00340A5C3945A2D\n:1003800000F00740FFFFFFFFFFFFFFFFFFFFFFFF42\n:10039000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D\n:1003A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D\n:1003B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D\n:1003C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D\n:1003D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D\n:1003E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D\n:1003F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D\n:10040000FFFFFFFFFFFFFFFFFFFFFFFFDEF9FFFF23\n:100410000548064B1B1AD90F01EBA301491002D066\n:10042000034B03B118477047108EFF1F108EFF1F3C\n:100430000000000008B5054B1BB105490548AFF3A6\n:100440000080BDE80840FFF7E3BF00BF00000000E8\n:10045000108EFF1F144E000070B51A4C0D2082B094\n:10046000012102F041F8261D65204FF4486501E0A6\n:1004700014F8010F02F05EFB2B46013BFDD102F0A8\n:1004800023FCB442F4D1013DFDD10F4C00210D20DD\n:1004900002F02AF823680093009E42F2107505E0EE\n:1004A00023680193019B9B1BAB4208D802F0F8FB29\n:1004B0000028F5DD02F008FCC0B202B070BDEF20EC\n:1004C00002B070BD804B00003C8EFF1F70B5012153\n:1004D0000D20644C02F008F80D20012102F004F810\n:1004E000261D69204FF4486501E014F8010F02F061\n:1004F00021FB2B46013BFDD102F0E6FBB442F4D1D7\n:10050000013DFDD100210D2001F0EEFF02F0DCFBEA\n:10051000C0B2002840F0A380534C0D20012101F00F\n:10052000E3FF661D77204FF4486501E014F8010FE2\n:1005300002F000FB2B46013BFDD102F0C5FBB442AB\n:10054000F4D1013DFDD100210D2001F0CDFF02F0DD\n:10055000BBFBC0B2002840F08280444C0D2001213A\n:1005600001F0C2FF661D77204FF4486501E014F8E2\n:10057000010F02F0DFFA2B46013BFDD102F0A4FB94\n:10058000B442F4D1013DFDD100210D2001F0ACFFBA\n:1005900002F09AFBC0B2002861D1354C0D20012138\n:1005A00001F0A2FF661D77204FF4486501E014F8C2\n:1005B000010F02F0BFFA2B46013BFDD102F084FB94\n:1005C000B442F4D1013DFDD100210D2001F08CFF9A\n:1005D00002F07AFBC0B2002841D1264C0D20012147\n:1005E00001F082FFA61D77204FF4486501E014F862\n:1005F000010F02F09FFA2B46013BFDD102F064FB94\n:10060000B442F4D1013DFDD100210D2001F06CFF79\n:1006100002F05AFBC0B210BB174C0D20012101F0B3\n:1006200063FF661D77204FF4486501E014F8010F61\n:1006300002F080FA2B46013BFDD102F045FBA642B9\n:10064000F4D1013DFDD100210D2001F04DFF02F05C\n:100650003BFBC0B218B9BDE87040FFF7FDBEE0201B\n:1006600070BD00BF884B0000904B0000984B00000D\n:10067000A04B0000A84B0000584B00002DE9F041B2\n:1006800082B0002701AE4FF448644FF072083A0A76\n:100690003B0C80250D2001218DF804508DF8008041\n:1006A0008DF801708DF802208DF803306D4601F051\n:1006B0001BFF404601E015F8010F02F03BFA23460C\n:1006C000013BFDD102F000FBB542F4D12346013BD2\n:1006D000FDD100210D2001F007FF802502E0234617\n:1006E000013BFDD102F0DCFA0028F8D002F0ECFA70\n:1006F000C0B203F0BBFA013DF4D18037B7F5002F4B\n:10070000C3D1284602B0BDE8F08100BF2DE9F04317\n:100710004F4D89B02B680093009C42F2107605E0A3\n:100720000193019B1B1BB34200F28D8003F09EF9E5\n:1007300003282B68F4DD00240393CDE90444039FD0\n:10074000444E0694ADF81C4006E02B680293029BD1\n:10075000B268DB1B934273D204ABC4F104011819D5\n:1007600003F09AF90444032CEFD99DF812009DF888\n:1007700013309DF810109DF8112003EB002302EBBD\n:1007800001229BB292B201339A424FEA82274FEA8A\n:10079000832949D20DF115064FF000084FF4486443\n:1007A00072213A0A3B0C80258DF810100D20012192\n:1007B000CDF81480CDF818808DF81450ADF81C8059\n:1007C0008DF811708DF812208DF8133001F08CFE29\n:1007D00004AD15F8010B02F0ADF92346013BFDD144\n:1007E00002F072FAB542F4D12346013BFDD100215B\n:1007F0000D2001F079FE802502E02346013BFDD16A\n:1008000002F04EFA0028F8D002F05EFAC0B203F00F\n:100810002DFA013DF4D18037B945C1D803F026F94E\n:10082000002805DD03F0E6F803F020F90028F9DCE4\n:1008300000210D2001F058FE002009B0BDE8F08332\n:100840000123337391E7EB2009B0BDE8F08300BFCB\n:100850003C8EFF1F1888FF1F2DE9F04F624D89B0B5\n:100860002B680093009C42F2107605E00193019BF7\n:100870001B1BB34200F2AA8003F0F8F803282B6890\n:10088000F4DD00240393CDE90444039E574F0694FE\n:10089000ADF81C4007E02B680293029BBA689B1BD3\n:1008A000934280F09D8004ABC4F10401181903F059\n:1008B000F3F80444032CEED99DF812009DF8133090\n:1008C0009DF810109DF8112003EB002302EB01228C\n:1008D0009BB292B201339A424FEA82264FEA832AB0\n:1008E0006FD2434B434D03F108080D20012101F065\n:1008F000FBFD414FC6F3072BC6F3074977204FF4A2\n:10090000486401E017F8010F02F014F92346013B97\n:10091000FDD102F0D9F9AF42F4D1013CFDD1002163\n:100920000D2001F0E1FD02F0CFF910F0FF0352D1EC\n:100930002F4A059392E8030004908DF8141098E86C\n:100940000300ADF81C3006908DF81C100D2001211D\n:100950008DF816B08DF8179001F0C6FD04AC0DF1BE\n:100960001D0B4FF4486914F8010B02F0E3F84B46F5\n:10097000013BFDD102F0A8F95C45F4D14B46013BA7\n:10098000FDD100210D2001F0AFFD02F09DF9C0B2B4\n:1009900008BBFFF761FD0346A0B903F067F9B9F1A1\n:1009A0000109FCD101E003F025F803F05FF800280D\n:1009B000F9DC00210D2006F5806601F095FDB245B9\n:1009C00093D80023184609B0BDE8F08FEB231846F2\n:1009D00009B0BDE8F08FE423184609B0BDE8F08FF8\n:1009E00001233B7368E700BF3C8EFF1F1888FF1F81\n:1009F000B04B0000654B0000604B00002DE9F04F4C\n:100A0000634D89B02B680093009C42F2107605E09C\n:100A10000193019B1B1BB34200F2AB8003F026F84D\n:100A200003282B68F4DD00240393CDE90444039EDE\n:100A3000584F0694ADF81C4007E02B680293029BC8\n:100A4000BA689B1B934280F0988004ABC4F1040108\n:100A5000181903F021F80444032CEED99DF8120074\n:100A60009DF813309DF810109DF8112003EB002322\n:100A700002EB01229BB292B201339A424FEA8226E4\n:100A80004FEA832A71D2444B444D03F108080D20EC\n:100A9000012101F029FD424FC6F3072BC6F3074998\n:100AA00077204FF4486401E017F8010F02F042F894\n:100AB0002346013BFDD102F007F9AF42F4D1013CDE\n:100AC000FDD100210D2001F00FFD02F0FDF810F026\n:100AD000FF0355D1304A059392E8030004908DF846\n:100AE000141098E80300ADF81C3006908DF81C1027\n:100AF0000D2001218DF816B08DF8179001F0F4FC4F\n:100B000004AC0DF11D0B4FF4486914F8010B02F011\n:100B100011F84B46013BFDD102F0D6F8A345F4D1C4\n:100B2000B9F10109FCD100210D2001F0DDFC02F03A\n:100B3000CBF8C0B240BBFFF78FFC08B11B2815D122\n:100B400003F094F84FF44863013BFDD101E002F05B\n:100B500051FF02F08BFF0028F9DC00210D2006F583\n:100B6000806601F0C1FCB24591D8002009B0BDE813\n:100B7000F08FEB2009B0BDE8F08F01233B736DE7E8\n:100B8000E82009B0BDE8F08FE42009B0BDE8F08F9F\n:100B90003C8EFF1F1888FF1FB04B00006D4B0000FC\n:100BA000684B00002DE9F041584F0D2082B0012123\n:100BB00001F09AFC7E1D3C4677204FF4486501E029\n:100BC00014F8010F01F0B6FF2B46013BFDD102F0F6\n:100BD0007BF8B442F4D1013DFDD100210D2001F09C\n:100BE00083FC02F071F810F0FF0340F08980484C5C\n:100BF000ADF804300D2001218DF8063004F10C0809\n:100C000001F072FC4FF44865772001E014F8010F01\n:100C100001F090FF2B46013BFDD102F055F8444511\n:100C2000F4D1013DFDD100210D2001F05DFC02F069\n:100C30004BF8C0B200285ED1FFF70EFC0446002836\n:100C40005AD102F041F85FFA80F88DF8048002F082\n:100C50003BF80121C5B20D208DF805504FF44864D2\n:100C600001F042FC772001E017F8010F01F062FF6C\n:100C70002346013BFDD102F027F8B742F4D1013CF5\n:100C8000FDD100210D2001F02FFC02F01DF8C0B2B3\n:100C9000002835D11F4C0D20012101F025FC04F165\n:100CA0000C0777204FF4486601E014F8010F01F0BB\n:100CB00041FF3346013BFDD102F006F8A742F4D1D3\n:100CC000013EFDD100210D2001F00EFC01F0FCFFE2\n:100CD000C0B280B9FFF7C0FB044668B901F0F4FF69\n:100CE0000646404602F0C2FF284602F0BFFFF0B2BF\n:100CF00002F0BCFF00E0E424204602B0BDE8F08131\n:100D0000E824204602B0BDE8F08100BF704B00002F\n:100D1000C04B0000D04B00002DE9F04FA04CADF2CD\n:100D2000444D00214FF47F7211A8CDE90C110E91B2\n:100D30008DF83C10109103F051FC23680493049E3D\n:100D400042F2107506E023680593059B9B1BAB429E\n:100D500000F2EE8102F08AFE0128F4DD2368099397\n:100D60000025CDE90C55099E8E4F0E958DF83C500F\n:100D700007E023680893089BBA689B1B934280F0A6\n:100D8000E3810CABC5F10201581902F085FE054460\n:100D9000012DEED99DF83030019301219DF83130BD\n:100DA00002930D2001F0A0FB23680693069FDFF855\n:100DB000F481002544F620660EE023680793079B24\n:100DC000DB1BB34200F2BA8102F050FE1FFA80F939\n:100DD000B9F1000F40F0BB81B5F5806FEDD3724FD4\n:100DE0000D20012101F080FB3C1D3D4677204FF492\n:100DF000486601E015F8010F01F09CFE3346013B07\n:100E0000FDD101F061FFA542F4D1013EFDD10021E9\n:100E10000D2001F069FB0DF13F050DF23F194FF474\n:100E2000486815F8010F01F085FE4346013BFDD1EE\n:100E300001F04AFF4D45F4D101F00EFFB8F1010871\n:100E4000FCD101F041FFC0B2002840F0A981DFF8D9\n:100E50005CA10D20012101F047FB0AF10405564673\n:100E600077204FF4486801E016F8010F01F062FEA8\n:100E70004346013BFDD101F027FFAE42F4D1B8F16A\n:100E80000108FCD100210D2001F02EFB0DF23F26C0\n:100E90004FF4486819F8010F01F04CFE4346013B3E\n:100EA000FDD101F011FFB145F4D101F0D5FEB8F14B\n:100EB0000108FCD101F008FFC0B2002840F07D819C\n:100EC000DFF8EC90CDF80C900D20012101F00CFB27\n:100ED00009F1050877204FF4486601E019F8010F81\n:100EE00001F028FE3346013BFDD101F0EDFEC14586\n:100EF000F4D1013EFDD100210D2001F0F5FA01F001\n:100F0000E3FE10F0FF0040F05181019A029B8DF842\n:100F1000350003EB02239BB29A008DF836209A0924\n:100F20009B0201930CAB02939B46224B8DF837201A\n:100F300093E8030040330C908DF8341093E80300DD\n:100F40000E908DF83C100D2001210DF13D094FF45C\n:100F5000486601F0C9FA1BF8010B01F0EBFD3346BE\n:100F6000013BFDD101F0B0FECB45F4D1013EFDD1F6\n:100F700000210D2001F0B8FA01F0A6FEC0B2002851\n:100F800040F01481FFF768FA0646002840F0D1804F\n:100F90000D20012101F0A8FA4FF4486677200DE0FA\n:100FA0003C8EFF1F1888FF1FE04B0000E84B00003D\n:100FB000784B0000B04B000017F8010F01F0BAFDAC\n:100FC0003346013BFDD101F07FFEA742F4D1013E43\n:100FD000FDD100210D2001F087FA0DF23F270DF21F\n:100FE0003F364FF4486417F8010F01F0A3FD234684\n:100FF000013BFDD101F068FEB742F4D101F02CFEB7\n:10100000013CFDD101F060FEC0B2002840F0C88074\n:101010000D20012101F068FA4FF44864772001E0C7\n:101020001AF8010F01F086FD2346013BFDD101F0C6\n:101030004BFEAA45F4D1013CFDD100210D2001F069\n:1010400053FA0DF23F440DF23F364FF4486516F85F\n:10105000010F01F06FFD2B46013BFDD101F034FE85\n:10106000A642F4D101F0F8FD013DFDD101F02CFEC6\n:10107000C0B2002840F0A1800D20012101F034FA17\n:101080004FF44864039D772001E015F8010F01F04B\n:1010900051FD2346013BFDD101F016FE4545F4D13B\n:1010A000013CFDD100210D2001F01EFA01F00CFEE3\n:1010B00010F0FF007AD1424A8DF8350092E8030023\n:1010C0004032019B8DF834100C9092E8030003F538\n:1010D00000731A0A0E908DF83C101B0C01210D2094\n:1010E0008DF836208DF8373001F0FEF9029D4FF46F\n:1010F000486415F8010B01F01DFD2346013BFDD1AD\n:1011000001F0E2FD4D45F4D1013CFDD100210D205F\n:1011100001F0EAF901F0D8FDC0B2002846D1FFF78E\n:101120009BF9064628B901460D2001F0DDF900E0E3\n:10113000EB2630460DF2444DBDE8F08FEC263046EC\n:101140000DF2444DBDE8F08F01233B7322E615FA02\n:1011500080F0B0F5806F1CDC1FFA80FB23680B93D6\n:10116000DDF82CA0002608E023680A930A9BD8F833\n:101170000820A3EB0A0393421AD2A81910ABA9EBDB\n:101180000601184402F088FC0644B145ECD85D46DF\n:1011900010E6C5F580691FFA89F94FF4806BDDE729\n:1011A000E12630460DF2444DBDE8F08FE626C0E75B\n:1011B000012388F80C305D46FCE5E226B9E700BF64\n:1011C000B04B00002DE9F04F994DADF24C4D002190\n:1011D0004FF47F7213A8CDE90E1110918DF84410D1\n:1011E000129103F0FBF92B680693069E42F21074ED\n:1011F00006E02B680793079B9B1BA34200F2B68275\n:1012000002F034FC0128F4DD2B680B930024CDE9B7\n:101210000E440B9E874F10948DF8444007E02B68D6\n:101220000A930A9BBA689B1B934280F0AD820EAB77\n:10123000C4F10201181902F02FFC0444012CEED96C\n:101240009DF83830009301210D209DF83990DFF88A\n:10125000E48101F049F92B680893089F002444F6C3\n:1012600020660EE02B680993099BDB1BB34200F25A\n:10127000848202F0FBFB1FFA80FABAF1000F40F003\n:101280008682B4F5806FEDD36B4C0D20012101F007\n:101290002BF9661D77204FF4486501E014F8010F23\n:1012A00001F048FC2B46013BFDD101F00DFDB4429D\n:1012B000F4D1013DFDD100210D2001F015F901F01F\n:1012C00003FD10F0FF0040F08C825C4D8DF83D0076\n:1012D00095E80300009B0E9005F1080709EB032930\n:1012E0008DF83C1097E803001FFA89F3C3F38712C7\n:1012F0009E009B02F6B2019310900EAB8DF8441045\n:101300000D2001218DF83E6000928DF83F20029360\n:101310000DF145049A464FF4486801F0E5F81AF8D3\n:10132000010B01F007FC4346013BFDD101F0CCFC71\n:10133000A245F4D1B8F10108FCD100210D2001F043\n:10134000D3F801F0C1FCC0B2002840F05282FFF790\n:1013500083F8824600285DD01B2840F00982DFF820\n:10136000E0B00D20012101F0BFF80BF1050A772054\n:101370004FF4486801E01BF8010F01F0DBFB434626\n:10138000013BFDD101F0A0FCD345F4D1B8F1010837\n:10139000FCD100210D2001F0A7F801F095FC10F020\n:1013A000FF0040F026828DF83D0095E803000E9086\n:1013B0008DF83C1097E80300009B10908DF84410C6\n:1013C0000D2001218DF83E608DF83F300DF1380A77\n:1013D0004FF4486801F088F81AF8010B01F0AAFBF5\n:1013E0004346013BFDD101F06FFCA245F4D1B8F1B9\n:1013F0000108FCD100210D2001F076F801F064FC19\n:10140000C0B2002840F0F581FFF726F88246002898\n:1014100040F0AE810B4B03931F460D20012101F0DC\n:1014200063F83B469A46043777204FF448680DE04E\n:101430003C8EFF1F1888FF1F684B0000B04B000058\n:10144000604B0000E04B00001AF8010F01F072FB46\n:101450004346013BFDD101F037FCBA45F4D1B8F168\n:101460000108FCD100210D2001F03EF80DF1470BE1\n:101470000DF247184FF4486A1BF8010F01F05AFBB0\n:101480005346013BFDD101F01FFCC345F4D101F0EF\n:10149000E3FBBAF1010AFCD101F016FCC0B200284E\n:1014A00040F0AA81DFF814B2CDF810B00D20012170\n:1014B00001F01AF80BF1040977204FF4486A01E0B3\n:1014C0001BF8010F01F036FB5346013BFDD101F043\n:1014D000FBFBCB45F4D1BAF1010AFCD100210D2070\n:1014E00001F002F80DF2472B4FF4486A18F8010F8B\n:1014F00001F020FB5346013BFDD101F0E5FBD8454F\n:10150000F4D101F0A9FBBAF1010AFCD101F0DCFB36\n:10151000C0B2002840F07681DFF8A481CDF81480B5\n:101520000D20012100F0E0FF08F1050B77204FF4BA\n:10153000486A01E018F8010F01F0FCFA5346013B3C\n:10154000FDD101F0C1FBC345F4D1BAF1010AFCD1D0\n:1015500000210D2000F0C8FF01F0B6FB10F0FF00E5\n:1015600040F04D818DF83D0095E80300DFF854B15F\n:101570000E908DF83C109BE80300009B10908DF8B6\n:1015800044100D2001218DF83E608DF83F300DF1A3\n:10159000380A4FF4486600F0A7FF1AF8010B01F073\n:1015A000C9FA3346013BFDD101F08EFBA245F4D1CF\n:1015B000013EFDD100210D2000F096FF01F084FBDB\n:1015C000C0B2002840F01B81FEF746FF824600288B\n:1015D00040F0CE800D20012100F086FF4FF44866D8\n:1015E000DDF80CA0772001E01AF8010F01F0A2FA53\n:1015F0003346013BFDD101F067FBBA45F4D1013E12\n:10160000FDD100210D2000F06FFF0DF2472A0DF2F1\n:1016100047374FF448661AF8010F01F08BFA33464A\n:10162000013BFDD101F050FBBA45F4D101F014FBB0\n:10163000013EFDD101F048FBC0B2002840F0DC8043\n:101640000D20012100F050FF4FF44866049F7720E1\n:1016500001E017F8010F01F06DFA3346013BFDD1AF\n:1016600001F032FB4F45F4D1013EFDD100210D20A8\n:1016700000F03AFF0DF247460DF2473A4FF4486743\n:101680001AF8010F01F056FA3B46013BFDD101F07B\n:101690001BFBB245F4D101F0DFFA013FFDD101F0AF\n:1016A00013FBC0B2002840F0AD800D20012100F0F6\n:1016B0001BFF4FF44866059F772007E0E84B0000CA\n:1016C000784B0000F04B000017F8010F01F032FAE0\n:1016D0003346013BFDD101F0F7FA4745F4D1013E15\n:1016E000FDD100210D2000F0FFFE01F0EDFA10F019\n:1016F000FF0040F084808DF83D0095E80300019BD9\n:101700008DF83C100E909BE8030003F500731A0A55\n:1017100010908DF844101B0C01210D208DF83E20F7\n:101720008DF83F3000F0E0FE029E4FF4486516F859\n:10173000010B01F0FFF92B46013BFDD101F0C4FA8A\n:10174000A642F4D1013DFDD100210D2000F0CCFED8\n:1017500001F0BAFAC0B2002851D1FEF77DFE8246F0\n:1017600030B901460D2000F0BFFE01E04FF0EB0A5A\n:1017700050460DF24C4DBDE8F08F4FF0EC0A50464C\n:101780000DF24C4DBDE8F08F01233B7358E514FA80\n:1017900080F0B0F5806F1CDC83B201932B680D9351\n:1017A0000D9E4FF0000B07E02A680C920C9AD8F8B7\n:1017B0000810921B8A4217D204EB0B0012ABAAEB63\n:1017C0000B01184402F068F98344DA45ECD8019C17\n:1017D00045E5C4F5806A4FF480631FFA8AFA0193E5\n:1017E000DCE74FF0E80AC3E70123019C88F80C30DE\n:1017F00035E54FF0E40ABBE74FF0E10AB8E74FF0F8\n:10180000E60AB5E74FF0E20AB2E700BF2DE9F04380\n:10181000574F584D83B04FF0000901210D20CDF8EE\n:1018200000908DF8049000F05FFE4FF4FA514FF4F1\n:10183000FA6000F059FC08218046012000F054FCB9\n:1018400049460646052000F04FFE4FF4A063013BD9\n:10185000FDD101F039F8052000F0A8FE0121052096\n:1018600000F042FE052000F0A1FE4FF4E1313846C1\n:1018700000F086FB6423BB60012000F097FE2B780C\n:10188000C5203B3B4FF448642B7001F053F92346CD\n:10189000013BFDD12B78012001332B7001F04AF977\n:1018A0002346013BFDD10320287001F043F9234674\n:1018B000013BFDD12B789A20663B2B7001F03AF961\n:1018C0002346013BFDD1484601F034F92346013B54\n:1018D000FDD12B78142014332B7001F02BF9234603\n:1018E000013BFDD12B785842C0B2C31A2B7001F0D6\n:1018F00021F9013CFDD101E001F0E6F901F0D0F958\n:101900000028F9DC2B78032003444FF448642B7043\n:1019100001F010F92346013BFDD101F0D5F9052274\n:101920006946384600F0C4FB9DF80230062B32D0E1\n:10193000102B40F0F8805FEA481802D0B8F1010897\n:10194000FCD10021042000F0CFFD760101D0013E42\n:10195000FDD10121042000F0C7FD01E001F0B4F940\n:1019600001F09EF90028F9DC40F2E734A02609E0F6\n:10197000EC87FF1F298EFF1F3346013BFDD1013C41\n:101980003FF449AF01F08CF90028F5DD01F09CF936\n:10199000C0B20228F0D1052000F008FE2B7891207B\n:1019A0006F3B4FF448662B7001F0C4F83346013B9F\n:1019B000FDD13A24012000F0F9FD20462C7001F001\n:1019C000B9F83346013BFDD12B784E2003442B70F0\n:1019D00001F0B0F83346013BFDD12B786F20034472\n:1019E0002B7001F0A7F83346013BFDD12B78742012\n:1019F00003442B7001F09EF83346013BFDD12B7858\n:101A0000204623442B7001F095F83346013BFDD16D\n:101A10002B78552003442B7001F08CF83346013BA2\n:101A2000FDD12B78732003442B7001F083F83346EB\n:101A3000013BFDD12B78652003442B7001F07AF82F\n:101A40003346013BFDD12B78642003442B7001F019\n:101A500071F83346013BFDD12B78204623442B708F\n:101A600001F068F83346013BFDD128780138C0B257\n:101A700043002B7001F05EF83346013BFDD101209D\n:101A800000F094FD2B7893206D3B2B7001F052F801\n:101A90003346013BFDD10120284C00F087FD04F1C5\n:101AA000C3072B7814F8010F03442B7001F042F8A0\n:101AB0003346013BFDD1BC42F3D1012000F076FD5D\n:101AC0002B7893206D3B2B7001F034F8013EFDD153\n:101AD00001201B4C00F06AFDE71D4FF448662B788F\n:101AE00014F8010F03442B7001F024F83346013B36\n:101AF000FDD1A742F3D1012000F058FD942001F060\n:101B000019F8052000F052FD01E001F0DDF801F0C8\n:101B1000C7F80028F9DC0D20002100F0E5FC0120C9\n:101B200003B0BDE8F0832B78EE20123B2B7001F060\n:101B300001F8013CFDD10020F2E700BF2787FF1F1D\n:101B40001F87FF1F2DE9F043012183B00D2000F016\n:101B5000CBFCB74DB74EB84F01F088FF002800F01E\n:101B60009D8001F047FFC0B20128287010D91028CD\n:101B700000F09780202853D0802800F04681F0287C\n:101B800000F030813B78002B00F05E812028E3D804\n:101B90002028E1D801A353F820F000BFDD1D00008C\n:101BA000B11D0000AB1D0000A51D00007B1D000045\n:101BB000591B0000511D0000271D0000FD1C0000E6\n:101BC000591B0000D31C0000591B0000591B0000CA\n:101BD000591B0000591B0000591B0000A31C0000EA\n:101BE000591B0000591B0000591B0000591B000025\n:101BF000591B0000591B0000591B0000591B000015\n:101C0000591B0000591B0000591B0000591B000004\n:101C1000591B0000591B0000591B0000211C00002B\n:101C200001210D20854C00F05FFC0D20012100F00A\n:101C30005BFC04F1040975204FF4486801E014F8D6\n:101C4000010F00F077FF4346013BFDD101F03CF866\n:101C50004C45F4D1B8F10108FCD100210D2000F071\n:101C600043FC01F031F810F0FF0018BFE0203070A5\n:101C700001F0FCFF4FF44863013BFDD101E001F0AE\n:101C8000B9FE01F0F3FE0028F9DC00210D2000F080\n:101C90002BFC01F0EBFE00287FF463AF03B0BDE83E\n:101CA000F0833C7800203070002C00F0BA8001F006\n:101CB000DDFF4FF44863013BFDD101E001F09AFEE6\n:101CC00001F0D4FE0028F9DC00210D2000F00CFC0E\n:101CD000DFE7FEF767FF307001F0C8FF4FF448639D\n:101CE000013BFDD101E001F085FE01F0BFFE0028BF\n:101CF000F9DC00210D2000F0F7FBCAE7FEF77EFEBD\n:101D0000307001F0B3FF4FF44863013BFDD101E0B7\n:101D100001F070FE01F0AAFE0028F9DC00210D2080\n:101D200000F0E2FBB5E7FFF74DFA307001F09EFFDF\n:101D30004FF44863013BFDD101E001F05BFE01F08F\n:101D400095FE0028F9DC00210D2000F0CDFBA0E776\n:101D5000FEF7E2FF307001F089FF4FF44863013B6A\n:101D6000FDD101E001F046FE01F080FE0028F9DC23\n:101D700000210D2000F0B8FB8BE7FEF76DFD307001\n:101D800001F074FF4FF44863013BFDD101E001F025\n:101D900031FE01F06BFE0028F9DC00210D2000F07F\n:101DA000A3FB76E7FEF76AFCD6E6FEF7AFFCD3E6C8\n:101DB000012002F047F9224C804602F04BF901ABBA\n:101DC000A3EB08032380052001F050FF2088000AC0\n:101DD00001F04CFF207801F049FFBDE6022001F040\n:101DE00045FFB9E6012002F02DF9154C804602F0BE\n:101DF00031F901ABA3EB08030220238001F036FF89\n:101E0000052001F033FF3220DEE700210D2000F035\n:101E10006BFB4FF4FA7000F0C9FB0A4B1B68984744\n:101E20009AE6FFF7F3FC307008BBE12030703EE724\n:101E3000288EFF1F348EFF1F2C8EFF1FF84B0000D3\n:101E40002A8EFF1F308EFF1FE02001F00FFF4FF49E\n:101E50004863013BFDD101E001F0CCFD01F006FE3D\n:101E60000028F9DC00210D2000F03EFB11E7FEF711\n:101E70002DFB307010B901233B7018E73C7016E75A\n:101E80002DE9F843314F324D324CDFF8CC903846D3\n:101E90004FF4E13100F074F86423BB602E682F4FDB\n:101EA00040F2EE2801F064FF2378002B40D03B780D\n:101EB000DA073DD52B68D9F800209B1A0E2B37D9AD\n:101EC00001210D2000F036FB0121052000F032FB3E\n:101ED0000121042000F02EFB0121084600F02AFB1E\n:101EE0000021084600F026FB0021052000F0FCFA46\n:101EF0000021012000F0F8FA0021084600F0F4FA71\n:101F00000121042000F0F0FA01F032FF2378002BC9\n:101F1000FAD03B78DB07F7D52B68D9F800209B1A5D\n:101F20000E2BF1D9BDE8F84301210D2000F0DCBAF9\n:101F30002B6822789B1B2AB1B3F5FA6FC0D801F049\n:101F400017FFAFE74345FAD9BAE700BFEC87FF1F99\n:101F50003C8EFF1FC08FFF1FE88FFF1FE48FFF1F06\n:101F60000368C9B21B6818470368C9B21B681847E1\n:101F70000368C9B21B6818470368C9B21B681847D1\n:101F80004B0803F1376303F5D83310B50446B3FBB0\n:101F9000F1F000F0CDFB044B1B7803B110BD2046DF\n:101FA000BDE8104001F088BF1588FF1F08B508463E\n:101FB00000F0C0FD012008BD08B5084600F0BAFDDC\n:101FC000012008BD38B508460D4602F099FB0446CD\n:101FD0000146284600F0B8FD204638BD10B5084639\n:101FE0001446114600F0B0FD204610BD08461146CB\n:101FF00000F0D8BF0846114600F0B8BF00F0D0BED0\n:1020000008B5084600F06CFD003818BF012008BD77\n:1020100008B5084600F042FD003818BF012008BD91\n:102020000846114600F0D2BC084600F00DBD00BFC6\n:10203000084600F0AFBC00BF00F046BC10B54B082E\n:1020400003F13763144603F5D833B3FBF1F000F026\n:102050006FFB2046BDE8104000F0D8BB00F07ABE10\n:1020600000F032BE00F01CBE00F0F6BD00F000BE75\n:1020700070B50E4D82B02B680093009E044608E0B8\n:1020800001F076FE2B680193019BA2689B1B934293\n:1020900007D2236820465B6998470028F0DB02B02E\n:1020A00070BD4FF0FF3002B070BD00BF3C8EFF1F0F\n:1020B000F8B50D4691B116469AB10746002404E0E2\n:1020C0000134A64205F8010B06D03846FFF7D0FFD1\n:1020D0000028F5DA01233B732046F8BD0C46204664\n:1020E000F8BD1446F8E700BF884200DB704770B4C3\n:1020F000114C2268091AEAB1104B114E114D83FBA5\n:10210000023C9444D317C3EB2C4306FB132244F246\n:10211000A71C05FB03F30CFB0233002B02DA03F1CF\n:102120000043013BB3FBF1F201FB12322360104488\n:1021300070BC7047044BF5E7388EFF1F5F0B4E8372\n:102140001DF30100ECF4FFFF42CE0C1F08B5FFF7B2\n:1021500097FEFFF7F7FC01F00BFEFAE701B441EA46\n:10216000000313F003036FD1403A41D351F8043B0D\n:1021700040F8043B51F8043B40F8043B51F8043B61\n:1021800040F8043B51F8043B40F8043B51F8043B51\n:1021900040F8043B51F8043B40F8043B51F8043B41\n:1021A00040F8043B51F8043B40F8043B51F8043B31\n:1021B00040F8043B51F8043B40F8043B51F8043B21\n:1021C00040F8043B51F8043B40F8043B51F8043B11\n:1021D00040F8043B51F8043B40F8043B51F8043B01\n:1021E00040F8043B51F8043B40F8043B403ABDD270\n:1021F000303211D351F8043B40F8043B51F8043B12\n:1022000040F8043B51F8043B40F8043B51F8043BD0\n:1022100040F8043B103AEDD20C3205D351F8043BA0\n:1022200040F8043B043AF9D204320AD0D2071CBF6A\n:1022300011F8013B00F8013B03D30B7803704B7896\n:10224000437001BC704700BF0C2A4AD310F003034F\n:1022500011D0C3F10403D21ADB071CBF11F8013BF4\n:1022600000F8013B07D311F8013B00F8013B11F8DE\n:10227000013B00F8013B11F003033FF475AF30B4AC\n:10228000043AC91AC3F1040C51F8044B022B19D0BB\n:10229000032B0BD0240A51F8043B1D0644EA050425\n:1022A00040F8044B1C46043AF4D216E0240E51F8D0\n:1022B000043B1D0244EA050440F8044B1C46043A62\n:1022C000F4D20AE0240C51F8043B1D0444EA05044E\n:1022D00040F8044B1C46043AF4D20432B1EB0C0132\n:1022E00030BC043AA0D3013A11F8013B00F8013B9D\n:1022F000F9D20B7803704B7843708B78837001BCF4\n:10230000704700BF08B50F4C636B58030DD4636B67\n:1023100059050FD4636B1A0511D4636BDB04F3D535\n:1023200000F012F8636B5803F1D500F009FF636BFE\n:102330005905EFD500F058FD636B1A05EDD500F097\n:1023400003F8EAE70080044008B5FFF7DBFF00BFB1\n:10235000014B10221A80704700200540704700BFD3\n:10236000094A08B50346106833B169460344A1F52C\n:1023700080518B4201D2136008BD02F093F90C2307\n:1023800003604FF0FF3008BD0088FF1FEFF3138399\n:10239000CBB9EFF31080A0B9EFF3058343B94FF445\n:1023A0008070EFF311835BB1984228BF18467047E5\n:1023B0000F2BF6D9054AD05CEFF31183002BF3D134\n:1023C0007047184670474FF0FF307047F0E300E069\n:1023D00001F1FF3C70B56546002401E07046013410\n:1023E000B0FBF2FE02FB1E03092B03F130068ABF8D\n:1023F0003733F3B2DBB2904205F8013FEED2631CF3\n:102400000022CA54C8187CB162461CF8015F10F85B\n:1024100001ED8CF800E0A1EB0C030232013B521AF3\n:1024200023449A420570EFDB084670BD034B00223F\n:1024300010215A615A6018605961704700D00340FA\n:10244000704700BFF0B54FF0E0244FF400054FF0A7\n:10245000807CC4F80851C4F808C14FF0007CC4F86F\n:1024600008C11D4A1D481E494FF0806CC4F808C1C0\n:10247000282300274BF6FF7609254FF0006CC4F89F\n:1024800008C183B057609660D3605361D3615362D3\n:10249000D3625363D3635364156047608660C3603F\n:1024A000436105604F608E60CB604B610D6001F051\n:1024B0002BFDFFF7C5FF0B4C23680093009B132BEC\n:1024C000FAD901F0F7F923680193019BB3F5967FE0\n:1024D000F9D303B0F0BD00BF00800340009003407B\n:1024E00000800B403C8EFF1F212816D810B4104BE3\n:1024F00053F8302092F880422CB1012371B982F850\n:10250000003110BC704703EBC0035B681A6849B127\n:1025100042F0030210BC1A607047704782F88030A6\n:1025200010BC704722F0020210BC1A60704700BF56\n:10253000684C0000212820D81B4A02EBC003012967\n:102540005B680FD004291DD052F83000002280F8BB\n:10255000802299B1022922D003290DD14FF4817232\n:102560001A60704752F830004FF4A27280F880125F\n:102570001A601A6822F020021A6070474FF48072C5\n:102580001A60704752F830104FF4A272012081F89F\n:1025900080021A601A6842F020021A60704740F206\n:1025A00003121A60704700BF684C00002DE9F84321\n:1025B000044672B6204F4FF0E02293693D68D2F88E\n:1025C000042D62B6520102D5322B88BF01350CB9F9\n:1025D000BDE8F883DFF86490DFF86480A9EB0303BB\n:1025E000A8FB03234FF47A7202FB05F505EB931564\n:1025F0004FF0E02672B6B1693A68D6F804CD62B6FB\n:10260000A9EB0103A8FB03031CF0806FC5EB931338\n:102610004FF47A7002D0322988BF013200FB0233B6\n:10262000B3F57A7F04D3013CD2D005F57A75E1E7A2\n:1026300001F09EFBDEE700BF3C8EFF1FFF7601002E\n:10264000ABAAAAAA2DE9F84F314B1B6807460BB17C\n:1026500001221A70DFF8BC90DFF8BC8099F80040C6\n:10266000D8F800302D4D01349C422B782AD303F04A\n:10267000FF0A002B3ED15446294EDFF8A8B005E0F2\n:1026800033791B0623D42B78A3420AD1FFF77EFEB1\n:102690004028F5DDFF28F6DD01F06AFB2B78A34228\n:1026A000F4D03F2C29D9204B403C1B68FFB21F556A\n:1026B0001E4A1B4B01211170BC2289F800A0DA7060\n:1026C000BDE8F88F9C425FFA84FAD5D0E9E72B7811\n:1026D000D8F800105A1C8A42DBB203D23F2A10D825\n:1026E000D1B201E000210A461BF80230DBB2F371DF\n:1026F0002970C8E74FF0000A54460A4BFFB21F5535\n:10270000D6E7D1B2084A3F3B1268D35CDBB2EEE7B2\n:10271000908EFF1FD88EFF1F1088FF1FE08EFF1FB7\n:1027200000A00640988EFF1FDC8EFF1F948EFF1FB7\n:102730002A4A2B49536B70B443F48063294D536389\n:1027400000232B70284E0B70284C294923703278B7\n:102750000B7028490B709AB3152A03D1264B40F20F\n:1027600013329A61254B1B78012B31D0052B03D1F5\n:10277000214B4FF45172DA612028214B214C38BF94\n:102780002020C0F3443C83F800C0C0F3471C00F095\n:102790001F0083F801C00422987202209A70D87436\n:1027A00088205A754FF0E021187440223C20D870E0\n:1027B00084F82D204FF4005370BCC1F804317047E9\n:1027C000114B40F213321A640C4B1B78012BCDD104\n:1027D0000D4B4FF451725A64CEE700BF00800440A5\n:1027E0008C8EFF1F848EFF1F8D8EFF1FD88EFF1FC4\n:1027F000E08EFF1F948EFF1F00C004401488FF1F4F\n:1028000000A0064000E400E000A00440294B294954\n:102810009B7800F0030203F0EC031343420700F03F\n:102820000F0248BF43F01003042A8B7003D18B7949\n:1028300043F040038B711F4B5A79C30602F0EF023D\n:102840001C4B48BF42F010025A719A79810602F07F\n:10285000EF0211D542F0100281059A710FD59A78D6\n:10286000154942F0A0029A700978144B03EBC1039A\n:1028700040F246325B6814E09A71820505D4104B31\n:10288000104A1968914211D070479A780A4942F06B\n:10289000A0029A700978094B03EBC10340F247325A\n:1028A0005B68074907481A600860704700221A6091\n:1028B000704700BF00A006401488FF1F684C00004E\n:1028C000908EFF1FD400D442284B5B6B5B054CD528\n:1028D00010B5274C237823B101F04AFA2378002B56\n:1028E000FAD1244A244B4FF0E0204FF40054002149\n:1028F000C0F88441D1701B7863B3152B1BD01F4BDC\n:102900001B7803F07F03012B1FD0052B0ED01C4B2F\n:10291000184A1C4C1C48196892F804C0D27900234C\n:102920002370037009B101230B7010BD174B40F2E7\n:102930000312DA61EBE7154B40F203129A610F4B79\n:102940001B7803F07F03012BDFD1114B40F2031200\n:102950005A64DCE70E4B40F203121A64074B1B78F3\n:1029600003F07F03012BD0D1EFE7704700800440D4\n:10297000948EFF1F00A006408D8EFF1F1488FF1F3E\n:10298000408EFF1F848EFF1F8C8EFF1F00C00440EF\n:1029900000A004400A4A38B50546137803F0FF0446\n:1029A000002BFAD101212846FFF7C4FD2146284615\n:1029B000FFF79AFD034A044B52F835201A6038BDE0\n:1029C000948EFF1F684C0000908EFF1F09B140F0ED\n:1029D0008000194A1378834217D010B4174C646BE7\n:1029E00064050FD503F07F03012B21D0052B14D0F4\n:1029F000002900F07F0314BF60214421012B10D077\n:102A0000052B03D0107010BC704770470C4B41F47D\n:102A10004071D961107010BC7047094B0024DC6113\n:102A2000E6E7084B41F440715964107010BC7047E0\n:102A3000044B00245C64DBE71488FF1F0080044023\n:102A400000C0044000A00440104A137883420AD01A\n:102A50000F49496B490505D5ABB1152B09D068B1B4\n:102A6000152801D0107070470A4B40F2133199615C\n:102A7000F8E7084B002199610028F1D1064B40F29C\n:102A800013311964EEE704490B64E8E78D8EFF1FEC\n:102A90000080044000C0044000A004400D4B5B6B6C\n:102AA00013F4806313D0212803D90B4B0020186046\n:102AB00070470A4B10B5084C53F8303023600121A1\n:102AC000FFF738FD236800221A70012010BD184658\n:102AD000704700BF00800440408EFF1F684C00001C\n:102AE000104B5B6B13F4806312D012280BD01428A8\n:102AF00010D10D4B40F202325A610C4A537B012037\n:102B00000343537370470A4B40F20232DA60F4E732\n:102B100018467047054A537B03F0FE0300205373A9\n:102B2000704700BF0080044000C0044000A0064081\n:102B300000A00440034B5B6B5B0501D5FFF782BD32\n:102B4000704700BF008004402DE9F84F394B5B6BA4\n:102B50005A053CD5384B1B680BB101221A70471837\n:102B6000B84231D2354EDFF8D880364CDFF8D890F5\n:102B700000F1010A13E003F0FF0B53B34FF0000B19\n:102B80005D46324A1AF8013C5355524630490123FA\n:102B9000BA420B700AF1010A86F800B014D23578F7\n:102BA000D8F800300135AB422378E4D9AB425FFA64\n:102BB00085FB0FD03F2DE4D9264B1AF8012C1B685A\n:102BC000403D5A555246E1E71F4BBC22DA70BDE842\n:102BD000F88F5D466FF0430389F8033006E099F8FB\n:102BE00004301B060BD42378AB42E3D1FFF7CEFBB6\n:102BF0004028F4DDFF28F6DD01F0BAF8F3E723788A\n:102C0000D8F800105A1C9142DBB203D93F2A0AD8E7\n:102C1000D1B201E000210A460C4B9B5CDBB289F883\n:102C200007302170DFE7D1B20A4A3F3B1268D35C1C\n:102C3000DBB2F4E700800440908EFF1FD88EFF1FA8\n:102C40001088FF1FE08EFF1F00A00640988EFF1F18\n:102C5000948EFF1FDC8EFF1F10B5044C237823B128\n:102C600001F086F82378002BFAD110BD948EFF1F57\n:102C7000084A094B11781A789142C8B2D3B202D2ED\n:102C8000013B181A7047054A1268013A1344181A92\n:102C9000704700BFD88EFF1FE08EFF1F1088FF1FF8\n:102CA000064A074B11781A789142D0B23CBF054AC8\n:102CB0001268CBB238BF9B18181A7047848EFF1F5A\n:102CC0008C8EFF1F0C88FF1F1B4B1C491A780B783A\n:102CD0009A422ED010B55FFA82FE194AD8B2126815\n:102CE000431C9A4219D93F2B1BD85FFA83FC154825\n:102CF000C05CC0B281F800C01349096861B19E454B\n:102D00003CBF7244D31A114A126828BFAEEB0303CA\n:102D10009A4201D300230B7010BD4FF0000C6346A4\n:102D2000E5E70B4C3F382468205C5FFA83FCC0B2B7\n:102D3000E0E74FF0FF307047848EFF1F8C8EFF1F3F\n:102D40000C88FF1F448EFF1F408EFF1F0888FF1F47\n:102D5000888EFF1F0D4A0E4B11781B789942DAB20C\n:102D600011D00C490968531C994207D93F2B06D949\n:102D7000094B3F3A1B68985CC0B270470023074A72\n:102D8000D05CC0B270474FF0FF307047848EFF1F99\n:102D90008C8EFF1F0C88FF1F888EFF1F448EFF1F25\n:102DA0000C4B5B6B5B0514D50B4B0C48DA78402160\n:102DB00002F0CB02DA705974DA78094942F0340231\n:102DC000DA70084A03781268DBB20B700AB100238C\n:102DD000137070470080044000A006408C8EFF1FD7\n:102DE000848EFF1F408EFF1F2DE9F041504C237948\n:102DF00013F0300F47D072B6A37D03F0FF01002B14\n:102E000058D062B6DFF82C814B4898F800304B4A16\n:102E1000057816684A4F5FFA83FC4A4BEDB2D3F847\n:102E200000E008E01DB14FF0000C07F80C304A1E1E\n:102E300012F0FF0112D0E3790CF101029642DBB2ED\n:102E4000F0D99542ACF13F00F1D03F2A6DD99446BC\n:102E50004A1E12F0FF010EF80030ECD15FFA8CF33D\n:102E600088F80030384B196869B1AC453CBF721B1B\n:102E700002EB0C03354A126828BFACEB05039A42FB\n:102E80009CBF01230B702A48C3781E06DDB216D4FE\n:102E90006A060DD5264B1B795B0609D52C4B2D49AF\n:102EA0001B6800220A7003B11A70214B3C22DA70B1\n:102EB000BDE8F0814023E279637462B6E3E7037909\n:102EC0001C06E5D5244B254ADFF894E01C781668EB\n:102ED0009EF80030234A244FD2F800C0E4B2DBB29F\n:102EE00007E003790023FA5CD2B2C271027D072A9F\n:102EF00011D8A34203F101010ED08E42F1D93F292E\n:102F00000279A3F13F0301D80B46ECE71CF803203C\n:102F10000B46D2B2E9E7DCB2054B8EF800401A79D5\n:102F2000110644BF7C22DA70B2E794467DE700BF09\n:102F300000A00640848EFF1F8C8EFF1F0C88FF1F91\n:102F4000448EFF1F888EFF1F408EFF1F0488FF1FC7\n:102F5000908EFF1F948EFF1FD88EFF1F1088FF1FBB\n:102F6000E08EFF1FDC8EFF1F988EFF1F094B10B4F1\n:102F7000186060B101F14004074B084801F11A02E2\n:102F80001A60074B0460283110BC19607047402458\n:102F9000F2E700BF888EFF1F0888FF1F0C88FF1F05\n:102FA0000488FF1F054B186018B1054B40311960AC\n:102FB0007047034B40211960704700BFDC8EFF1F34\n:102FC0001088FF1F704700BF431E032B17D872B62F\n:102FD0000C4951F8230080B110B40B4CB0F800C07C\n:102FE00034F81320A2EB0C02D0F804C041F823C03F\n:102FF00024F8132062B610BC704762B670470020F8\n:10300000704700BF748FFF1FC48FFF1F0138032854\n:103010000BD872B6074B53F8203043B100205B68E1\n:103020000130002BFBD162B6704700207047184674\n:10303000F9E700BF9C8FFF1F10B472B6194A1A4CF3\n:10304000042312F8011B090743F0010C05D554F8BD\n:10305000331061B154F83C10B9B10433142BF0D1E2\n:1030600062B6124B00221A7010BC00F09BBC0F49D4\n:1030700004EBC302083050600A780D4844F833006E\n:10308000013A0A7062B610BC7047084A094904EB5D\n:10309000CC0308305860137844F83C10013B13709F\n:1030A00062B6F0E7F84D00000080FF1FCC8FFF1FD5\n:1030B00088004000C8004000421E032A0ED81C4B66\n:1030C000400140F0100010B4034472B6194CA05CEB\n:1030D00003281CD8DFE800F01315031870470520FB\n:1030E000A05413F0080F088814BFC82288220831A2\n:1030F00042EA004259601A6062B610BC7047032071\n:10310000EEE708330220EBE708330420E8E70A4B38\n:1031100053F8220038B1094B53F82200416043F8BC\n:10312000221062B6E9E743F82210044BF7E700BF2C\n:103130000080FF1FBC8FFF1F9C8FFF1FAC8FFF1FE6\n:103140002DE9F04FDFF8CCA2DFF8CCB285B03DE03E\n:10315000B24D9E0805EBC607013A796813F00803E3\n:10316000D4B2A1F1080040F0B88055F836204FEAFB\n:10317000124C120C21F808CC00F0A78021F8063C74\n:1031800041F8043CA64B53F82420002A00F00182A9\n:10319000A44B53F82420506043F82400A24B33F88A\n:1031A0001420944423F814C000F0DCFB002800F045\n:1031B000E98117F0080F9D4B00F1080018BF5B462E\n:1031C000786045F8363008238AF880309AF88030E5\n:1031D0005907DCB21BD5964B1B78ABB195490A78E1\n:1031E00002F0FF032AB1013BDBB20B70002B00F0B1\n:1031F000468391490A7802F0FF032AB1013BDBB212\n:103200000B70002B00F0EB8104238AF8803014F05F\n:10321000080200F0CC819AF89020D3B2120997D11D\n:10322000DFF8F8919B0809EBC30459F83300646890\n:10323000C0F3830009287CD00FD80138012808D8B2\n:103240007E4A158842F22100854200F0FB8149F850\n:1032500033B001238AF89430B5E70D28F9D1D4E9C9\n:103260000007774D49F833B0744E764CC9F81020FA\n:1032700083B240F2816CC9F818202A6063454FF090\n:103280000102C6E90007227000F2FF80B3F5D06F9B\n:1032900080F0CB82B3F5817F00F0268240F2DE80A1\n:1032A00040F2023293427BD107F07F07042F00F2F5\n:1032B0000881020C40F00581634911F8273043F082\n:1032C000020301F82730134670E017F0080F574B40\n:1032D00018BF5B4645F8363075E700F063FB5B4985\n:1032E0005B4A51F82430002B00F05781586841F8B0\n:1032F0002400115D03F108007860032905D8DFE898\n:1033000001F0120F1502042111551A8817F0080F49\n:1033100014BFC823882343EA024345F8363052E7F6\n:1033200002211155F1E703211155EEE70521115551\n:10333000EBE7434D2A683AB34649424C0F8846486A\n:1033400094F800E00678402F3B4628BF4023BEF1AA\n:10335000000F8EF0010E84F800E046F0020486F0C3\n:103360000106067009EBC400426014BFC820882023\n:1033700040EA03401A44FB1A9BB249F834000B8020\n:10338000002B00F036812A602C4B1A88B2F5A06F12\n:103390007FF45FAF9A788AF8982000225A7058E735\n:1033A000B3F5A06F40F08D8000221346B6F806C03A\n:1033B0002948944528BF944667460278402F28BF85\n:1033C000402742F0020E3E0409EBCE0846F0C80644\n:1033D000C8F8043049F83E6000263B442670BCEB38\n:1033E000070782F00106067040F01181BCF13F0F23\n:1033F0004FF0010509D946F00206027009EBC6023A\n:1034000025705360882349F8363001238AF89430B8\n:103410001FE700BF00200740C80040000080FF1FDA\n:10342000748FFF1F848FFF1FC48FFF1F8800400011\n:10343000C08FFF1FC18FFF1FEC8FFF1F948FFF1FD7\n:10344000688FFF1F658FFF1FC02007409C8FFF1FE5\n:10345000BC8FFF1F668FFF1F648FFF1F802B00F044\n:103460008B81822B2DD107F07F07042F29D8A74A03\n:1034700000231380A64B13F827309F0740F1FC81EF\n:1034800001231370A14B022290E742F2210C634505\n:10349000BBD01DD942F2212293420DD1BFB2002FE1\n:1034A00082D19C4B1A689C4B1A609C4BC0F307401E\n:1034B00000221870134679E742F2213293423FF41A\n:1034C00073AF0F238AF8C03001238AF89430C0E626\n:1034D000B3F5086F00F04A81B3F5106FF1D1904B4E\n:1034E000C0F307400425187059F835301A0606D481\n:1034F0000135142D0CD059F835301A06F8D509EBE2\n:10350000C50301355868083800F04CFA142DF2D183\n:10351000844A854B0292854A0192854E854ADFF89E\n:1035200018820394009200251C4656F8047B2FB1A4\n:1035300038467F6800F036FA002FF9D1009BD8F8A2\n:10354000007043F8045B46F8045C00932FB13846E2\n:103550007F6800F027FA002FF9D1029B48F8045B3E\n:1035600043F8045B0293019B23F8025B01932378E9\n:10357000023B032B00F20981DFE813F03F01040155\n:103580003F0104016D4A45F836001378013313708A\n:1035900019E643F82400674BFEE5115D022926D0A9\n:1035A0007FF611AE03291DD1012313550BE6E00769\n:1035B0006ED4210621D4A20708D5614B93F8882048\n:1035C0000221D2B283F8882083F88010E30603D565\n:1035D0005B4B102283F8802005B0BDE8F08F00F02F\n:1035E000A3FB11E617F0080F14BF032302231355A2\n:1035F000E9E53F2F98BF0022C5E6514B80220D21FF\n:1036000083F8C01083F88020A207DFD5D5E746F005\n:1036100002060270402F09EBC6003A4628BF40223E\n:1036200043601004134440F088000121BA1A49F89D\n:103630003600217055D02B60424B1A8001238AF846\n:10364000943006E692885AB93F4AE51D14F8011BEA\n:1036500002F8011FAC42F9D13C4A1268862A3CD0DC\n:103660003B4C3C4825780278002D85F001052570FB\n:1036700042F0020482F00102027009EBC4024FF032\n:103680000000506014BFC822882249F83420DEE5CB\n:103690002B4B30483049314C022583F8945002704E\n:1036A0002F480C602F4D48608C600D24CD60FF20AA\n:1036B0000A618A6183F8C04001219F2483F8880051\n:1036C00083F8800083F8982083F88C0083F8844086\n:1036D00083F8941005B0BDE8F08F234A0F201070D6\n:1036E000BEE73F2FA7D890E607F07F07042F3FF6ED\n:1036F000E8AE000C7FF4E5AE054A12F8273023F05F\n:10370000020302F82730002213464FE66C8FFF1F9A\n:10371000C02007403C8EFF1FE88FFF1FE48FFF1F74\n:10372000C08FFF1FAC8FFF1FBC8FFF1FC48FFF1FF9\n:10373000748FFF1F848FFF1F9C8FFF1FCC8FFF1F75\n:1037400000200740668FFF1FDB8FFF1FDC8FFF1FEE\n:10375000658FFF1F648FFF1F0080FF1F88004000E0\n:10376000E48EFF1F248FFF1FC18FFF1F484B494965\n:103770001B780B700B4619E6464A00231380454B15\n:10378000022213E64FF001032370434BB34204F1CE\n:1037900001047FF4CAAE414E039CDFF80481414F1F\n:1037A00000233370042518F8013B3F4AAB541B0734\n:1037B00025D445F0020145F0030204350023142D01\n:1037C00049F8313049F83230EDD1384F25783A7820\n:1037D00042F0020009EBC00C85F00106CCF8043081\n:1037E000002D4DD1882382F0010226703A7049F8ED\n:1037F000303001238AF894302BE52570C5E700F0BE\n:10380000B1F8002832D009EBC5030830586049F8F8\n:10381000357000F0A7F808B345F0010309EBC302C7\n:103820000830506049F833B0C3E7214A5368002B91\n:103830003FF447AE000CBFB204E013690C32002B1A\n:103840003FF43FAE11888142F7D15188B942F4D19B\n:10385000000A03280CBF1A781289A7E533780133D0\n:10386000337045F0010349F83300A2E7337849F893\n:10387000350001333370CCE7064B022296E500BEDB\n:103880002670C82382F001063E7049F83030BCE54E\n:10389000C08FFF1F6C8FFF1F848FFF1FCC8FFF1FF8\n:1038A000F84D000088004000C0200740648FFF1FD3\n:1038B000A44D000070B500F08DFB00231A4A194694\n:1038C00042F8331002EBC3000133142B4160F7D1EF\n:1038D000164C174B606B174D40F480206063C2F3A9\n:1038E000072483F89C40144CFF204FF0010CC2F3D6\n:1038F0000746120E83F8B0604FF0E02E83F8B42034\n:1039000083F8800083F88800187483F894C02170CD\n:1039100083F884C0702385F849304FF40072102377\n:10392000CEF80821237270BD0080FF1F0080044084\n:103930000020074000E400E00021074000F0F6B856\n:1039400000F07CB800F056B800F090B800F0C0B9B4\n:1039500000F09AB90846114600F004B9084600F094\n:1039600085B900BF72B60D490B68B3FA83F00B2816\n:1039700010DC4FF00042C24023EA02030B6062B643\n:10398000074A00EBC000C10002EBC0000023535007\n:103990004360704762B60020704700BF2888FF1F51\n:1039A000BC83FF1F0E4BC31AB3F5587F10D20D4ACC\n:1039B000127872B972B60C4A0C49A2FB032308684C\n:1039C0004FF000421B0922FA03F303430B6062B677\n:1039D0007047074A1278002AECD0FFF72DBB00BFD2\n:1039E000BC83FF1FCC8FFF1F398EE3382888FF1F51\n:1039F000C08FFF1F38B50F4C206878B1438802880C\n:103A0000C11801339A420D7A02D94380284638BD45\n:103A1000FFF7C8FF00232360284638BD064B1B78FC\n:103A20002BB10320FFF7D0FA20600028E6D14FF039\n:103A3000FF35EBE7D08FFF1FC08FFF1F10B5094C7C\n:103A4000206818B143881844007A10BD064B1B78D3\n:103A50002BB10320FFF7B8FA20600028F2D14FF015\n:103A6000FF3010BDD08FFF1FC08FFF1F084B094ACA\n:103A70001B6810B594881BB11A885B88D31A1C4444\n:103A80000CB1204610BD00F073F9204610BD00BFF8\n:103A9000D08FFF1FC48FFF1F2DE9F84F0D4600295F\n:103AA0003ED04FF00008DFF87C901F4E0746C2461C\n:103AB00099F80030E3B1346814B322886388A2EB2C\n:103AC000030BAB4528BFAB4604F1080138465A4604\n:103AD0001944FEF743FB638822885B449BB29A42F9\n:103AE00063805F44D844A5EB0B0511D9002DDFD1CD\n:103AF0004046BDE8F88F0288002ADFD1FFF752FF69\n:103B00000320FFF761FA044630600028F3D1EFE7A5\n:103B10002046FFF747FFC6F800A0002DC8D1E7E711\n:103B20000846E6E7C08FFF1FD08FFF1F0B4B1B78A7\n:103B30009BB110B50A4C206848B1FFF733FF002352\n:103B400003202360FFF740FA30B1FFF72BFF03207B\n:103B5000FFF73AFA0028F8D110BD7047C08FFF1F59\n:103B6000D08FFF1F2DE9F04FDFF8EC9083B00122DA\n:103B700089F80020019179B3384FDFF8E480019D86\n:103B8000384EDFF8E4A083463968A1B3B1F802E00B\n:103B9000CEF1400CAC4528BFAC460EEB0C04002225\n:103BA000A4B23270A5EB0C054C8001F10802BCF107\n:103BB000000F0AD00EF1FF3E7244DC441BF8014BAB\n:103BC00002F8014FDC45F9D14C883F2C0BD8052277\n:103BD0008AF80020002DD7D10198002389F8003001\n:103BE00003B0BDE8F08F40220A800420FFF764FA9A\n:103BF00000223A60EBE798F800202AB34AF2F92451\n:103C000008E0013C19D03278BAB900F0B1F898F860\n:103C10000020CAB10420FFF7F9F90728F1D84FF0C6\n:103C2000010389F80030FFF79DFE01463860002847\n:103C3000ACD1013C89F80000E5D101234FF0FF3001\n:103C4000337003B0BDE8F08F00234FF0FF3089F8E8\n:103C5000003003B0BDE8F08FD58FFF1FD88FFF1F56\n:103C6000C08FFF1FD48FFF1FEC8FFF1F00B583B0E5\n:103C7000034601210DF107008DF80730FFF772FFB1\n:103C800003B05DF804FB00BF38B50E4D0E4C28683C\n:103C90000123237028B140880023C0F14000237025\n:103CA00038BD0A4B1B7813B90020207038BD0420A2\n:103CB000FFF7ACF90728F7D8FFF754FE2860002873\n:103CC000E9D1F1E7D88FFF1FD58FFF1FC08FFF1FEE\n:103CD000F8B5114B1B788BB1104E114D346801278C\n:103CE0002F7064B10F4B00271F706388238021461B\n:103CF0000420FFF7E1F9376000232B70F8BDFFF7D0\n:103D000031FE084B014620B104201C70FFF7D4F9A6\n:103D1000F2E71F70F0E700BFC08FFF1FD88FFF1FB3\n:103D2000D58FFF1FEC8FFF1F38B50E4B1B7853B993\n:103D30000D4C216841B103F0FF054B880B80042036\n:103D4000FFF7BAF9256038BDFFF70CFE014620B138\n:103D5000BDE838400420FFF7AFB9044B01221A70C8\n:103D600038BD00BFD58FFF1FD88FFF1FEC8FFF1FFF\n:103D70002DE9F843324E337863B1324F3A784AB97D\n:103D80000122D9073A7043D49A0726D400225B0750\n:103D90003A7001D4BDE8F8832B4B1A68002AF9D099\n:103DA000EFF30582002AF5D1EFF3108572B618689B\n:103DB00000283AD0254C2178002936D142691A6072\n:103DC00001232370002A37D0916105B962B600251E\n:103DD0008368457798472570DCE7DFF8748098F8AA\n:103DE0000020002AD2D00025DFF868902B4659F831\n:103DF0002340236820461B690135984708B1236991\n:103E0000984798F80020EBB29A42F0D83378BDE793\n:103E1000FFF72CFE68B9104B1B780BB93378B3E76A\n:103E2000337803F0FE033370AEE7002DB2D162B6F3\n:103E3000B0E700F0CDF8EEE7084B1A60C5E700BF29\n:103E40002C88FF1FED8FFF1FF08FFF1FFC8FFF1FC0\n:103E50001090FF1F0490FF1FA04D00000090FF1F57\n:103E600070B5EFF3108272B60C4C206880B10C4E26\n:103E700000254369236073B19D6102B962B683680E\n:103E800045779847EFF3108272B620680028F0D18A\n:103E900002B962B670BD3360EFE700BFF88FFF1F55\n:103EA000F48FFF1FFFF7DCBF024A13680133136072\n:103EB000704700BF3C8EFF1F70B4104E104D347819\n:103EC000D4B1621ED2B2291D2B4601EB820101E062\n:103ED0008B4205D053F8042B8242F9D170BC704755\n:103EE000631CDBB2074A3370137845F8240043F0B3\n:103EF0000203137070BC70470123F3E71090FF1F9B\n:103F00000490FF1F2C88FF1F2A4B2B4A6020E121C1\n:103F10001870597013782948082B34D00A2B20D0F8\n:103F20000C2B274B0CBF35213D2112228160C26032\n:103F30009960DA60234B21491B78214ACBB10123D8\n:103F40000B621362204B1D491B781D4A012B13D9AC\n:103F5000042B1BD884234B6253621C4B01221A7022\n:103F60007047174B392113228160C2609960DA6073\n:103F7000E0E70B621362E5E780234B625362134B69\n:103F800001221A7070470E4B0121ECE7082B06D86E\n:103F900085234B6253620D4B01221A707047102B20\n:103FA00094BF862387234B625362084B01221A7009\n:103FB000704700BF004007402D88FF1F00B003403E\n:103FC00000B00B401190FF1F2E88FF1F1290FF1FA3\n:103FD000704700BF10B584B072B6174A70244120F4\n:103FE0000F2180231470D0719171137013781B0608\n:103FF000FCD5906862B6114B114C984238BF00EB6B\n:10400000800001A938BF40000A22FEF7E1F901A9AA\n:104010002046002311F8012B01333AB10A2B20F876\n:10402000022FF7D11623237004B010BD5B00DBB262\n:10403000237004B010BD00BF0000024080969800BD\n:10404000BC88FF1F024B0146186800F00BB800BF88\n:10405000088EFF1F024B0146186800F01FBC00BF0E\n:10406000088EFF1F2DE9F04F01F10B06162E83B0CD\n:10407000044624D8102900F2BA8000F0A3FA1026D2\n:1040800018220220B54F3A44A2F1080153688B422E\n:1040900000F0BA805A68D96822F003021A449D6879\n:1040A000E9608D60516841F001012046516003F1E3\n:1040B000080500F08DFA284603B0BDE8F08F36F011\n:1040C000070600F19480B14200F2918000F07AFA84\n:1040D000B6F5FC7FC0F09A81730A00F08F80042B44\n:1040E00000F26F81B30903F1390003F1380CC3000A\n:1040F0009A4F3B44A3F108055B689D4206D10CE052\n:10410000002980F22781DB689D4206D05A6822F0A0\n:104110000302911B0F29F3DD60463D69DFF840C2C1\n:1041200065457CD06A6822F00302931B0F2B00F3D5\n:104130007B81002BC7E904CC80F26C81B2F5007F53\n:1041400080F01A81D308796801334FEA521E0122A8\n:1041500002FA0EF20A4357F833E0C5F808E007EB1D\n:10416000C3010839E9607A6047F83350CEF80C5043\n:10417000831001219940914257D8114206D120F075\n:1041800003004900114200F10400FAD007EBC00916\n:104190004D468646D5F80C80454508D11DE1002BDB\n:1041A00080F22481D8F80C80454500F01681D8F8BB\n:1041B000042022F00302931B0F2BF0DD2046D8E9E8\n:1041C000025408EB060146F00106C8F80460EC60F2\n:1041D000A56043F00104C7E90411C1E902CC4C60B9\n:1041E00048F8023000F0F4F908F1080502E00C2369\n:1041F00023600025284603B0BDE8F08F4FF400731C\n:1042000040204FF03F0C73E7D3689A4208BF02305A\n:104210007FF440AF3D69DFF848C1654582D17A68D7\n:104220008310012199409142A7D9BD686B6823F0A2\n:1042300003094E4503D8A9EB06030F2B7ADCDFF800\n:1042400024B1494BDBF800201B680132334405EBF5\n:10425000090A00F0338103F580530F3323F47F689C\n:1042600028F00F084146204600F00AFA411C024699\n:1042700000F0F380824500F2EE803C4B1968414427\n:104280001960084600F04E81DBF8001001930131FF\n:104290001BBFA2EB0A010918CBF80020196012F02D\n:1042A000070B00F01781CBF108010A44CBF58051D0\n:1042B00090440831A1EB0801C1F30B0A5146204696\n:1042C000009200F0DDF9421CDDE9002300F04F818F\n:1042D000801A00EB0A081968BA6048F001005144DE\n:1042E000BD425060196000F02981B9F10F0F40F212\n:1042F00027816868A9F10C0C2CF0070C00F0010074\n:1043000040EA0C0068604FF0050E05EB0C00BCF1B4\n:104310000F0FC0E901EE00F2328150681546144BD0\n:104320001A688A4238BF1960124B1A688A4238BF2D\n:10433000196094E0AA1943F0010346F001066E608B\n:104340002046BA60536000F043F90835284603B0B0\n:10435000BDE8F08FD9681A44A1E600BFD488FF1FDA\n:10436000DC88FF1FDC8CFF1F4490FF1F1490FF1F91\n:104370003C90FF1F4090FF1FB2F5206F4FEA522381\n:1043800063D3142B00F2B78003F15C01C9005B33E7\n:1043900007EB010E7958AEF1080E8E4500F09180C2\n:1043A0004B6823F00303934202D989688E45F7D105\n:1043B000D1F80CE07A68C5E9021ECEF80850CD604D\n:1043C000D6E6142B59D9542B00F29D80330B03F100\n:1043D0006F0003F16E0CC3008AE60EF1010E1EF0B1\n:1043E000030F05F108057FF4D5AE51E04244454680\n:1043F0005368D8F80C1043F00103536055F8083F98\n:104400002046D9608B6000F0E3F8F3E6F00806F18F\n:10441000080237E62A442046536843F001035360FC\n:10442000083500F0D5F8E5E6A919204646F0010662\n:1044300043F001046E60C7E90411C1E902CC4C608D\n:10444000AB5000F0C5F80835D4E6930903F1390103\n:10445000C90038339CE7BD425FD0BD68686820F072\n:1044600003084645A8EB060302D80F2B3FF762AFBF\n:10447000204600F0ADF80025BCE603F15C0003F136\n:104480005B0CC30034E659F808394B4540F0968080\n:1044900010F0030F00F1FF30F5D17B6823EA010330\n:1044A0007B60490099423FF6C0AE19B9BDE64900AC\n:1044B0000EF1040E1942FAD0704667E603F11008B7\n:1044C000D0E69A104FF001087B6808FA02F21A430E\n:1044D0007A6070E702EB08014942C1F30B0A5146CA\n:1044E0002046009200F0CCF8431CDDE900237FF465\n:1044F000EFAEDA46EFE6542B25D8130B03F16F012C\n:10450000C9006E3344E7B3F5AA7F25D8F30B03F156\n:10451000780003F1770CC300EAE5294B18684044A2\n:104520001860B1E6CAF30B0CBCF1000F7FF4ACAE1F\n:10453000BD68C84448F001006860F0E61546EEE644\n:104540000123536094E7B3F5AA7F23D8D30B03F17B\n:104550007801C90077331BE740F25452934223D8C5\n:10456000B30C03F17D0003F17C0CC300C0E5ABF19B\n:10457000080BD844A8EB02084FF0000AABE605F19F\n:1045800008012046009300F089F9BD68009B686827\n:104590001968C4E640F254518B420BD8930C03F1D6\n:1045A0007D01C9007C33F3E64FF47E737F204FF02A\n:1045B0007E0C9DE54FF47E717E23E9E67B6870E713\n:1045C0001490FF1F014800F097B800BF8891FF1FAB\n:1045D000014800F093B800BF8891FF1F830730B5F2\n:1045E00048D0541E002A3FD0CAB2034601E0013C25\n:1045F0003AD303F8012B9D07F9D1032C2DD9CDB265\n:1046000045EA05250F2C45EA054536D9A4F11002E7\n:1046100022F00F0C03F1200EE6444FEA121C03F1C6\n:10462000100242E9045542E9025510327245F8D1B0\n:104630000CF1010214F00C0F03EB021204F00F0C4A\n:1046400013D0ACF1040323F003030433134442F802\n:10465000045B9342FBD10CF003042CB1C9B21C449F\n:1046600003F8011B9C42FBD130BD64461346002C6D\n:10467000F4D1F9E703461446BFE71A46A446E0E73B\n:1046800038B5074D0022044608462A60FDF768FE4B\n:10469000431C00D038BD2B68002BFBD0236038BDF5\n:1046A0008091FF1F014B1868704700BF088EFF1FE5\n:1046B00070B50D4E0D4D761BB61006D0002455F882\n:1046C000043B01349847A642F9D1094E094D761BA7\n:1046D00000F094FBB61006D0002455F8043B0134DA\n:1046E0009847A642F9D170BD084E0000084E000060\n:1046F000104E0000084E0000704700BF704700BF1A\n:1047000090F800F06DE9024520F007016FF0000C11\n:1047100010F0070491F820F040F049804FF00004B9\n:104720006FF00700D1E9002391F840F000F1080094\n:1047300082FA4CF2A4FA8CF283FA4CF3A2FA8CF3CC\n:104740004BBBD1E9022382FA4CF200F10800A4FA33\n:104750008CF283FA4CF3A2FA8CF3E3B9D1E9042387\n:1047600082FA4CF200F10800A4FA8CF283FA4CF3BE\n:10477000A2FA8CF37BB9D1E9062301F1200182FA78\n:104780004CF200F10800A4FA8CF283FA4CF3A2FA7E\n:104790008CF3002BC6D0002A04BF04301A4612BA8C\n:1047A000B2FA82F2FDE8024500EBD2007047D1E98F\n:1047B000002304F00305C4F100004FEAC50514F01E\n:1047C000040F91F840F00CFA05F562EA05021CBFEF\n:1047D00063EA050362464FF00004A9E7024B13B1F8\n:1047E000024800F005B8704700000000A94A000028\n:1047F000002301461A46184600F06AB9F8B5244F5E\n:104800000C460646FFF7DEFEBB685D68C4F57E61B8\n:104810000F3125F003054B1923F47F6323F00F03B9\n:10482000A3F58054B4F5805F07DB00213046FFF725\n:1048300027FFBB682B44984204D03046FFF7C8FEE0\n:104840000020F8BD61423046FFF71AFF01300DD05D\n:10485000104ABB682D1B45F001055D6013683046AA\n:104860001B1B1360FFF7B4FE0120F8BD002130468A\n:10487000FFF706FFBA68831A0F2BDEDD43F0010352\n:104880005360054B03491B68C01A0860D5E700BF99\n:10489000D488FF1F1490FF1FDC8CFF1F002961D0FC\n:1048A000F8B50C460646FFF78DFE54F8042C7B4FF6\n:1048B000A4F1080522F0010105EB010CB868DCF851\n:1048C0000430604523F0030300F08B80D207CCF85E\n:1048D000043032D454F8082CAD1A1144AA6807F1F8\n:1048E000080082426AD00CEB0304D4F804E0EC68C0\n:1048F000D4601EF0010FA26000F0978041F0010328\n:104900006B60CCF80010B1F5007F35D27868CB0829\n:104910000122490901338A40024357F833107A6073\n:1049200007EBC302083AC5E9021247F83350CD60DD\n:104930003046BDE8F840FFF74BBE0CEB030252686F\n:10494000D00710D4194407F10800DCF8083083427E\n:1049500073D0DCF80C20DA60936041F001036B60E7\n:104960006950D0E7704741F00103B1F5007F44F88A\n:10497000043CCCF80010C9D3B1F5206F4FEA5123A5\n:1049800048D28B0903F1390003F13802C300F8184B\n:10499000FB580838984259D05A6822F003028A42DC\n:1049A00002D99B689842F7D1D868C5E90230856082\n:1049B000DD603046BDE8F840FFF70ABE0CEB0302AD\n:1049C0005268D20763D40B44DCE90212CA609160DA\n:1049D00043F001026A603046EB50BDE8F840FFF753\n:1049E000F7BD0B44D10707D454F8082CAD1A134473\n:1049F000D5E90212CA60916043F001026A60284A58\n:104A0000BD6012689A4293D8264B30461968FFF76A\n:104A1000F5FE8DE7142B0AD9542B1FD80B0B03F18D\n:104A20006F0003F16E02C300B1E719448DE703F193\n:104A30005C0003F15B02C300A9E741F00103C7E991\n:104A40000455C5E902006B60695071E779689210FE\n:104A5000012404FA02F20A437A60A6E7B3F5AA7FBA\n:104A600006D8CB0B03F1780003F17702C3008EE781\n:104A700040F25452934206D88B0C03F17D0003F1AF\n:104A80007C02C30083E74FF47E737E227FE741F010\n:104A900001036B60CCF800104AE700BFD488FF1F09\n:104AA000E08CFF1F4490FF1F38B5074D074C2C1BAF\n:104AB000A41005D0013C55F8043D9847002CF9D1CD\n:104AC000BDE8384000F0A4B900000000000000007C\n:104AD0002DE9F047DFF874A00646DAF800009846A2\n:104AE0000F469146FFF708FE194B1C6824B3656812\n:104AF0001F2D24DC5EB96B1C0235DAF80000636000\n:104B000044F82570FFF7FAFD0020BDE8F08704EBBC\n:104B100085010123C1F88890D4F88821AB401A435D\n:104B2000022EC4F88821C1F80881E4D1D4F88C2180\n:104B30001A43C4F88C21DEE7064C1C60D7E7DAF88C\n:104B40000000FFF7DBFD4FF0FF30DEE70C8EFF1FAC\n:104B50008C91FF1F9091FF1F7701080F010100FF4B\n:104B600077E2FE0F010300FF77E2FE0F010800FF6E\n:104B700077E2FE0F010900FF77E2FE0F010400FF5C\n:104B80006500000000000000690000000000000057\n:104B90007700FC0F0101000077E2FE0F010000002A\n:104BA0007703080F010000007704080F0200FC00E3\n:104BB0007700080F0800000000000000040000005B\n:104BC0007700080F080300000000FC02000000004E\n:104BD0007700080F0804000000000001000000003A\n:104BE0007700FC0F000000007700FD0F00000000C0\n:104BF0000000FC0002000000750000000000FFFF44\n:104C00000000000000000000B91F0000DD1F0000D0\n:104C10006D20000069200000652000006120000078\n:104C20005D200000811F00003D20000039200000B1\n:104C30003120000029200000212000001120000068\n:104C400001200000FD1F0000F51F0000ED1F000007\n:104C5000611F0000691F0000711F0000791F000024\n:104C6000C51F0000AD1F00004008FE4340A00440E7\n:104C70004408FE4344A004400018FE4300C0044022\n:104C80003000FE43309004403400FE433490044032\n:104C90001C18FE431CC004401018FE4310C0044002\n:104CA0000818FE4308C004400C18FE430CC0044022\n:104CB0000C10FE430CB004401010FE4310B0044032\n:104CC0001810FE4318B004401C10FE431CB00440F2\n:104CD0001410FE4314B004400418FE4304C0044002\n:104CE0000010FE4300B004400008FE4300A0044052\n:104CF0000408FE4304A004400C08FE430CA004403A\n:104D00000808FE4308A004401418FE4314C00440E1\n:104D10001818FE4318C004400410FE4304B00440B9\n:104D20000810FE4308B004401400FE4314900440F1\n:104D30004C08FE434CA004400420FE4304D0044031\n:104D40002410FE4324B004402010FE4320B0044051\n:104D50002810FE4328B004402C10FE432CB0044021\n:104D60000020FE4300D004404808FE4348A0044011\n:104D70001000FE43109004400000000000000000FE\n:104D80005D39000055390000513900004D390000EF\n:104D90004939000045390000413900003D39000023\n:104DA00000FFFFFF000100007488FF1F12000000D9\n:104DB000000200003088FF1F4300000000030000D5\n:104DC0008888FF1F00000000010309048C88FF1F72\n:104DD0000000000002030904A488FF1F0000000077\n:104DE00003030904BC88FF1F00000000000000004E\n:104DF000000000000000000000151915F8B500BF04\n:104E0000F8BC08BC9E467047DD4700003504000032\n:044E1000F8B500BF32\n:104E1400E00704EC00FB0F0000FBC013BFE607C073\n:104E2400BFEC07C0BFEE07CFEB07ECF5EA07FCB217\n:104E3400FF0E72FCB2FF0E76FCB2FF0E77FCB2FFDF\n:104E44000E9EFDFCB2FF0E73624C69DD6D4C77DD86\n:104E54001D4C72DD294C65DD324C75DD62FCA1FF11\n:104E64000ED5EA07DFC8AFE60712ECEB070FFCB27A\n:104E7400FF0E119BA793DFF6FE4C00EEE3FF118BB0\n:104E8400FCA1FF0EA793DFF6EED6FF61FFFCF8FF4F\n:104E94000E8F02084C0FDD0B624CFFDF11FCC408BF\n:104EA4000FEFF5624CFFDF06FC04F00EEFF5C36173\n:104EB400CFC262FCA1FF0EEEA7FFE5EA07EF03E510\n:104EC400EA07FE0200EF9A5100FCA1FF0ED7FFFF94\n:104ED400FFFFFFFFFFFFFFFFFFFFFF00084C000085\n:104EE40000000000E803000000000000C52F0000DF\n:104EF4002093FF1F280000001A000000400000005B\n:104F04004000000001010000804D0000000000008E\n:104F1400E803000000000000FFFFFFFF010A040097\n:104F240009024300020100C0320904000001020228\n:104F340001000524001001052401010104240206D6\n:104F4400052406000107058203100040090401003E\n:104F5400020A00000007050302400000070584025E\n:104F6400400000001201100102000040C01683043A\n:104F7400750201020301000004030904180354002C\n:104F8400650065006E0073007900640075006900B7\n:104F94006E006F00160355005300420020005300BA\n:104FA40065007200690061006C0000000C030000E1\n:104FB40000000000000000000000000000000000ED\n:104FC400000000000000000000000000D488FF1F63\n:104FD400D488FF1FDC88FF1FDC88FF1FE488FF1FC5\n:104FE400E488FF1FEC88FF1FEC88FF1FF488FF1F75\n:104FF400F488FF1FFC88FF1FFC88FF1F0489FF1F24\n:105004000489FF1F0C89FF1F0C89FF1F1489FF1FD0\n:105014001489FF1F1C89FF1F1C89FF1F2489FF1F80\n:105024002489FF1F2C89FF1F2C89FF1F3489FF1F30\n:105034003489FF1F3C89FF1F3C89FF1F4489FF1FE0\n:105044004489FF1F4C89FF1F4C89FF1F5489FF1F90\n:105054005489FF1F5C89FF1F5C89FF1F6489FF1F40\n:105064006489FF1F6C89FF1F6C89FF1F7489FF1FF0\n:105074007489FF1F7C89FF1F7C89FF1F8489FF1FA0\n:105084008489FF1F8C89FF1F8C89FF1F9489FF1F50\n:105094009489FF1F9C89FF1F9C89FF1FA489FF1F00\n:1050A400A489FF1FAC89FF1FAC89FF1FB489FF1FB0\n:1050B400B489FF1FBC89FF1FBC89FF1FC489FF1F60\n:1050C400C489FF1FCC89FF1FCC89FF1FD489FF1F10\n:1050D400D489FF1FDC89FF1FDC89FF1FE489FF1FC0\n:1050E400E489FF1FEC89FF1FEC89FF1FF489FF1F70\n:1050F400F489FF1FFC89FF1FFC89FF1F048AFF1F1F\n:10510400048AFF1F0C8AFF1F0C8AFF1F148AFF1FCB\n:10511400148AFF1F1C8AFF1F1C8AFF1F248AFF1F7B\n:10512400248AFF1F2C8AFF1F2C8AFF1F348AFF1F2B\n:10513400348AFF1F3C8AFF1F3C8AFF1F448AFF1FDB\n:10514400448AFF1F4C8AFF1F4C8AFF1F548AFF1F8B\n:10515400548AFF1F5C8AFF1F5C8AFF1F648AFF1F3B\n:10516400648AFF1F6C8AFF1F6C8AFF1F748AFF1FEB\n:10517400748AFF1F7C8AFF1F7C8AFF1F848AFF1F9B\n:10518400848AFF1F8C8AFF1F8C8AFF1F948AFF1F4B\n:10519400948AFF1F9C8AFF1F9C8AFF1FA48AFF1FFB\n:1051A400A48AFF1FAC8AFF1FAC8AFF1FB48AFF1FAB\n:1051B400B48AFF1FBC8AFF1FBC8AFF1FC48AFF1F5B\n:1051C400C48AFF1FCC8AFF1FCC8AFF1FD48AFF1F0B\n:1051D400D48AFF1FDC8AFF1FDC8AFF1FE48AFF1FBB\n:1051E400E48AFF1FEC8AFF1FEC8AFF1FF48AFF1F6B\n:1051F400F48AFF1FFC8AFF1FFC8AFF1F048BFF1F1A\n:10520400048BFF1F0C8BFF1F0C8BFF1F148BFF1FC6\n:10521400148BFF1F1C8BFF1F1C8BFF1F248BFF1F76\n:10522400248BFF1F2C8BFF1F2C8BFF1F348BFF1F26\n:10523400348BFF1F3C8BFF1F3C8BFF1F448BFF1FD6\n:10524400448BFF1F4C8BFF1F4C8BFF1F548BFF1F86\n:10525400548BFF1F5C8BFF1F5C8BFF1F648BFF1F36\n:10526400648BFF1F6C8BFF1F6C8BFF1F748BFF1FE6\n:10527400748BFF1F7C8BFF1F7C8BFF1F848BFF1F96\n:10528400848BFF1F8C8BFF1F8C8BFF1F948BFF1F46\n:10529400948BFF1F9C8BFF1F9C8BFF1FA48BFF1FF6\n:1052A400A48BFF1FAC8BFF1FAC8BFF1FB48BFF1FA6\n:1052B400B48BFF1FBC8BFF1FBC8BFF1FC48BFF1F56\n:1052C400C48BFF1FCC8BFF1FCC8BFF1FD48BFF1F06\n:1052D400D48BFF1FDC8BFF1FDC8BFF1FE48BFF1FB6\n:1052E400E48BFF1FEC8BFF1FEC8BFF1FF48BFF1F66\n:1052F400F48BFF1FFC8BFF1FFC8BFF1F048CFF1F15\n:10530400048CFF1F0C8CFF1F0C8CFF1F148CFF1FC1\n:10531400148CFF1F1C8CFF1F1C8CFF1F248CFF1F71\n:10532400248CFF1F2C8CFF1F2C8CFF1F348CFF1F21\n:10533400348CFF1F3C8CFF1F3C8CFF1F448CFF1FD1\n:10534400448CFF1F4C8CFF1F4C8CFF1F548CFF1F81\n:10535400548CFF1F5C8CFF1F5C8CFF1F648CFF1F31\n:10536400648CFF1F6C8CFF1F6C8CFF1F748CFF1FE1\n:10537400748CFF1F7C8CFF1F7C8CFF1F848CFF1F91\n:10538400848CFF1F8C8CFF1F8C8CFF1F948CFF1F41\n:10539400948CFF1F9C8CFF1F9C8CFF1FA48CFF1FF1\n:1053A400A48CFF1FAC8CFF1FAC8CFF1FB48CFF1FA1\n:1053B400B48CFF1FBC8CFF1FBC8CFF1FC48CFF1F51\n:1053C400C48CFF1FCC8CFF1FCC8CFF1FFFFFFFFF83\n:1053D4000000020000000000000000004890FF1FD1\n:1053E400B090FF1F1891FF1F000000000000000094\n:1053F40000000000000000000000000000000000A9\n:105404000000000000000000000000000000000098\n:105414000000000000000000000000000000000088\n:105424000000000000000000000000000000000078\n:105434000000000000000000000000000000000068\n:105444000000000000000000000000000000000058\n:105454000000000000000000000000000000000048\n:105464000000000000000000000000000000000038\n:1054740001000000000000000E33CDAB34126DE6D5\n:10548400ECDE05000B00000000000000000000003E\n:105494000000000000000000000000000000000008\n:1054A40000000000000000000000000000000000F8\n:1054B40000000000000000000000000000000000E8\n:1054C40000000000000000000000000000000000D8\n:1054D40000000000000000000000000000000000C8\n:1054E40000000000000000000000000000000000B8\n:1054F4000000000000000000E88CFF1F8491FF1FE3\n:00000001FF\n"
  },
  {
    "path": "assets/hw/syscon_flasher/syscon_flasher_v2.05_teensy_3.5.hex",
    "content": ":10000000F8FF022099010000512300000D23000099\n:100010000D2300000D2300000D2300000D23000020\n:100020000D2300000D2300000D23000051230000CC\n:10003000512300000D230000753F0000793F0000B0\n:1000400051230000512300005123000051230000E0\n:1000500051230000512300005123000051230000D0\n:1000600051230000512300005123000051230000C0\n:1000700051230000512300005123000051230000B0\n:1000800051230000512300005123000051230000A0\n:100090005123000051230000512300005123000090\n:1000A0005123000051230000512300005123000080\n:1000B000512300005123000051230000A52E000011\n:1000C0005123000051230000512300005123000060\n:1000D0005123000051230000512300005123000050\n:1000E0005123000051230000512300005123000040\n:1000F0005123000051230000512300005123000030\n:10010000512300005123000051230000512300001F\n:1001100051230000FD310000512300005123000055\n:1001200051230000512300005123000051230000FF\n:1001300051230000512300005123000051230000EF\n:1001400051230000512300005123000051230000DF\n:1001500051230000512300005123000051230000CF\n:1001600051230000512300005123000051230000BF\n:1001700051230000512300005123000051230000AF\n:10018000512300005123000051230000512300009F\n:1001900051230000512300005A4B4CF2205210B55D\n:1001A000DA814DF62812DA8100BF00BF02F0D4F8E0\n:1001B000554B4FF030621A63544A9A63544ADA63DB\n:1001C0004FF0E0234FF47002C3F8882D514A1369B1\n:1001D00013F4807303D153614FF4A85313614E4B52\n:1001E0009A78110703D59A7842F008029A704B4B1F\n:1001F0004B482A221A704B4BDA1C121AC11E22F0ED\n:100200000302994288BF0022474901F0ABFF474BE8\n:100210004748DA1C121AC11E22F00302994288BF15\n:100220000022002104F042FA424943484FF4CC72C4\n:1002300001F098FF414B424A802103F8011B934291\n:10024000FBD14FF0E0233C4AC3F8082D3D4B8A22F6\n:100250001A70A3F5805324225A70A0221A709A793A\n:100260009207FCD59A79D406FCD4374B9A7902F0E0\n:100270000C02082AFAD103221A7146225A719A797D\n:100280009006FCD5304A93795906FCD51E4B4FF0A9\n:10029000827159640921996420211170917901F0CA\n:1002A0000C010C29FAD1294A5A604FF0E023284A60\n:1002B0005A6100229A6107221A61264AC3F8202D4A\n:1002C00062B602F0C7F8134B5B69DA0705D522481E\n:1002D00002F0B4F8214B224ADA61224B1B785B060C\n:1002E00009D51E4C1E4BE2699A4204D11A4802F00D\n:1002F000A5F80023E36102F035F804F041FA01F0BB\n:1003000029FFFEE70020054000800440823F0400F2\n:100310000100002B00D0034000D0074000E0074060\n:10032000F806FF1FE80DFF1F045000000413FF1F15\n:10033000E80DFF1F000000000002FF1F00E400E0C6\n:1003400056E400E00050064000400640C0100500A2\n:10035000BFD40100000020205010896800E0034055\n:10036000A5C3945A00F00740FFFFFFFFFFFFFFFF08\n:10037000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D\n:10038000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D\n:10039000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D\n:1003A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D\n:1003B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D\n:1003C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D\n:1003D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D\n:1003E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D\n:1003F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D\n:10040000FFFFFFFFFFFFFFFFFFFFFFFFDEF9FFFF23\n:100410000548064B1B1AD90F01EBA301491002D066\n:10042000034B03B118477047E80DFF1FE80DFF1F8E\n:100430000000000008B5054B1BB105490548AFF3A6\n:100440000080BDE80840FFF7E3BF00BF00000000E8\n:10045000E80DFF1F0450000070B51A4C0D2082B04B\n:10046000012102F059F8261D65204FF47A6501E05C\n:1004700014F8010F02F0BCFB2B46013BFDD102F04A\n:1004800081FCB442F4D1013DFDD10F4C00210D207F\n:1004900002F042F823680093009E42F2107505E0D6\n:1004A00023680193019B9B1BAB4208D802F056FCCA\n:1004B0000028F5DD02F066FCC0B202B070BDEF208E\n:1004C00002B070BD804C0000140EFF1F70B50121FA\n:1004D0000D20644C02F020F80D20012102F01CF8E0\n:1004E000261D69204FF47A6501E014F8010F02F02F\n:1004F0007FFB2B46013BFDD102F044FCB442F4D11A\n:10050000013DFDD100210D2002F006F802F03AFC79\n:10051000C0B2002840F0A380534C0D20012101F00F\n:10052000FBFF661D77204FF47A6501E014F8010F98\n:1005300002F05EFB2B46013BFDD102F023FCB442EE\n:10054000F4D1013DFDD100210D2001F0E5FF02F0C5\n:1005500019FCC0B2002840F08280444C0D200121DB\n:1005600001F0DAFF661D77204FF47A6501E014F898\n:10057000010F02F03DFB2B46013BFDD102F002FCD6\n:10058000B442F4D1013DFDD100210D2001F0C4FFA2\n:1005900002F0F8FBC0B2002861D1354C0D200121DA\n:1005A00001F0BAFF661D77204FF47A6501E014F878\n:1005B000010F02F01DFB2B46013BFDD102F0E2FBD7\n:1005C000B442F4D1013DFDD100210D2001F0A4FF82\n:1005D00002F0D8FBC0B2002841D1264C0D200121E9\n:1005E00001F09AFFA61D77204FF47A6501E014F818\n:1005F000010F02F0FDFA2B46013BFDD102F0C2FBD8\n:10060000B442F4D1013DFDD100210D2001F084FF61\n:1006100002F0B8FBC0B210BB174C0D20012101F055\n:100620007BFF661D77204FF47A6501E014F8010F17\n:1006300002F0DEFA2B46013BFDD102F0A3FBA642FD\n:10064000F4D1013DFDD100210D2001F065FF02F044\n:1006500099FBC0B218B9BDE87040FFF7FDBEE020BD\n:1006600070BD00BF884C0000904C0000984C00000A\n:10067000A04C0000A84C0000584C00002DE9F041AF\n:1006800082B0002701AE4FF47A644FF072083A0A44\n:100690003B0C80250D2001218DF804508DF8008041\n:1006A0008DF801708DF802208DF803306D4601F051\n:1006B00033FF404601E015F8010F02F099FA234696\n:1006C000013BFDD102F05EFBB542F4D12346013B74\n:1006D000FDD100210D2001F01FFF802502E02346FF\n:1006E000013BFDD102F03AFB0028F8D002F04AFBB2\n:1006F000C0B203F023FB013DF4D18037B7F5002FE2\n:10070000C3D1284602B0BDE8F08100BF2DE9F04317\n:100710004F4D89B02B680093009C42F2107605E0A3\n:100720000193019B1B1BB34200F28D8003F006FA7C\n:1007300003282B68F4DD00240393CDE90444039FD0\n:10074000444E0694ADF81C4006E02B680293029BD1\n:10075000B268DB1B934273D204ABC4F104011819D5\n:1007600003F002FA0444032CEFD99DF812009DF81F\n:1007700013309DF810109DF8112003EB002302EBBD\n:1007800001229BB292B201339A424FEA82274FEA8A\n:10079000832949D20DF115064FF000084FF47A6411\n:1007A00072213A0A3B0C80258DF810100D20012192\n:1007B000CDF81480CDF818808DF81450ADF81C8059\n:1007C0008DF811708DF812208DF8133001F0A4FE11\n:1007D00004AD15F8010B02F00BFA2346013BFDD1E5\n:1007E00002F0D0FAB542F4D12346013BFDD10021FD\n:1007F0000D2001F091FE802502E02346013BFDD152\n:1008000002F0ACFA0028F8D002F0BCFAC0B203F053\n:1008100095FA013DF4D18037B945C1D803F08EF97E\n:10082000002805DD03F04EF903F088F90028F9DC13\n:1008300000210D2001F070FE002009B0BDE8F0831A\n:100840000123337391E7EB2009B0BDE8F08300BFCB\n:10085000140EFF1FF007FF1F2DE9F04F624D89B006\n:100860002B680093009C42F2107605E00193019BF7\n:100870001B1BB34200F2AA8003F060F903282B6827\n:10088000F4DD00240393CDE90444039E574F0694FE\n:10089000ADF81C4007E02B680293029BBA689B1BD3\n:1008A000934280F09D8004ABC4F10401181903F059\n:1008B0005BF90444032CEED99DF812009DF8133027\n:1008C0009DF810109DF8112003EB002302EB01228C\n:1008D0009BB292B201339A424FEA82264FEA832AB0\n:1008E0006FD2434B434D03F108080D20012101F065\n:1008F00013FE414FC6F3072BC6F3074977204FF489\n:100900007A6401E017F8010F02F072F92346013B07\n:10091000FDD102F037FAAF42F4D1013CFDD1002104\n:100920000D2001F0F9FD02F02DFA10F0FF0352D175\n:100930002F4A059392E8030004908DF8141098E86C\n:100940000300ADF81C3006908DF81C100D2001211D\n:100950008DF816B08DF8179001F0DEFD04AC0DF1A6\n:100960001D0B4FF47A6914F8010B02F041F94B4664\n:10097000013BFDD102F006FA5C45F4D14B46013B48\n:10098000FDD100210D2001F0C7FD02F0FBF9C0B23E\n:1009900008BBFFF761FD0346A0B903F0CFF9B9F139\n:1009A0000109FCD101E003F08DF803F0C7F800283D\n:1009B000F9DC00210D2006F5806601F0ADFDB245A1\n:1009C00093D80023184609B0BDE8F08FEB231846F2\n:1009D00009B0BDE8F08FE423184609B0BDE8F08FF8\n:1009E00001233B7368E700BF140EFF1FF007FF1FD2\n:1009F000B04C0000654C0000604C00002DE9F04F49\n:100A0000634D89B02B680093009C42F2107605E09C\n:100A10000193019B1B1BB34200F2AB8003F08EF8E5\n:100A200003282B68F4DD00240393CDE90444039EDE\n:100A3000584F0694ADF81C4007E02B680293029BC8\n:100A4000BA689B1B934280F0988004ABC4F1040108\n:100A5000181903F089F80444032CEED99DF812000C\n:100A60009DF813309DF810109DF8112003EB002322\n:100A700002EB01229BB292B201339A424FEA8226E4\n:100A80004FEA832A71D2444B444D03F108080D20EC\n:100A9000012101F041FD424FC6F3072BC6F3074980\n:100AA00077204FF47A6401E017F8010F02F0A0F804\n:100AB0002346013BFDD102F065F9AF42F4D1013C80\n:100AC000FDD100210D2001F027FD02F05BF910F0AF\n:100AD000FF0355D1304A059392E8030004908DF846\n:100AE000141098E80300ADF81C3006908DF81C1027\n:100AF0000D2001218DF816B08DF8179001F00CFD36\n:100B000004AC0DF11D0B4FF47A6914F8010B02F0DF\n:100B10006FF84B46013BFDD102F034F9A345F4D107\n:100B2000B9F10109FCD100210D2001F0F5FC02F022\n:100B300029F9C0B240BBFFF78FFC08B11B2815D1C3\n:100B400003F0FCF84FF47A63013BFDD101E002F0C1\n:100B5000B9FF02F0F3FF0028F9DC00210D2006F5B3\n:100B6000806601F0D9FCB24591D8002009B0BDE8FB\n:100B7000F08FEB2009B0BDE8F08F01233B736DE7E8\n:100B8000E82009B0BDE8F08FE42009B0BDE8F08F9F\n:100B9000140EFF1FF007FF1FB04C00006D4C00004B\n:100BA000684C00002DE9F041584F0D2082B0012122\n:100BB00001F0B2FC7E1D3C4677204FF47A6501E0DF\n:100BC00014F8010F02F014F82B46013BFDD102F09E\n:100BD000D9F8B442F4D1013DFDD100210D2001F03E\n:100BE0009BFC02F0CFF810F0FF0340F08980484CE6\n:100BF000ADF804300D2001218DF8063004F10C0809\n:100C000001F08AFC4FF47A65772001E014F8010FB7\n:100C100001F0EEFF2B46013BFDD102F0B3F8444555\n:100C2000F4D1013DFDD100210D2001F075FC02F051\n:100C3000A9F8C0B200285ED1FFF70EFC04460028D8\n:100C40005AD102F09FF85FFA80F88DF8048002F024\n:100C500099F80121C5B20D208DF805504FF47A6442\n:100C600001F05AFC772001E017F8010F01F0C0FFF6\n:100C70002346013BFDD102F085F8B742F4D1013C97\n:100C8000FDD100210D2001F047FC02F07BF8C0B23D\n:100C9000002835D11F4C0D20012101F03DFC04F14D\n:100CA0000C0777204FF47A6601E014F8010F01F089\n:100CB0009FFF3346013BFDD102F064F8A742F4D117\n:100CC000013EFDD100210D2001F026FC02F05AF872\n:100CD000C0B280B9FFF7C0FB044668B902F052F811\n:100CE0000646404603F02AF8284603F027F8F0B2FB\n:100CF00003F024F800E0E424204602B0BDE8F081CF\n:100D0000E824204602B0BDE8F08100BF704C00002E\n:100D1000C04C0000D04C00002DE9F04FA04CADF2CB\n:100D2000444D00214FF47F7211A8CDE90C110E91B2\n:100D30008DF83C10109103F0B9FC23680493049ED5\n:100D400042F2107506E023680593059B9B1BAB429E\n:100D500000F2EE8102F0F2FE0128F4DD236809932F\n:100D60000025CDE90C55099E8E4F0E958DF83C500F\n:100D700007E023680893089BBA689B1B934280F0A6\n:100D8000E3810CABC5F10201581902F0EDFE0544F8\n:100D9000012DEED99DF83030019301219DF83130BD\n:100DA00002930D2001F0B8FB23680693069FDFF83D\n:100DB000F481002544F620660EE023680793079B24\n:100DC000DB1BB34200F2BA8102F0B8FE1FFA80F9D1\n:100DD000B9F1000F40F0BB81B5F5806FEDD3724FD4\n:100DE0000D20012101F098FB3C1D3D4677204FF47A\n:100DF0007A6601E015F8010F01F0FAFE3346013B77\n:100E0000FDD101F0BFFFA542F4D1013EFDD100218B\n:100E10000D2001F081FB0DF13F050DF23F194FF45C\n:100E20007A6815F8010F01F0E3FE4346013BFDD15E\n:100E300001F0A8FF4D45F4D101F06CFFB8F10108B5\n:100E4000FCD101F09FFFC0B2002840F0A981DFF87B\n:100E500064A10D20012101F05FFB0AF10405564653\n:100E600077204FF47A6801E016F8010F01F0C0FE18\n:100E70004346013BFDD101F085FFAE42F4D1B8F10C\n:100E80000108FCD100210D2001F046FB0DF23F26A8\n:100E90004FF47A6819F8010F01F0AAFE4346013BAE\n:100EA000FDD101F06FFFB145F4D101F033FFB8F18E\n:100EB0000108FCD101F066FFC0B2002840F07D813E\n:100EC0003A4B03931E460D20012101F025FB06F14C\n:100ED0000508B14677204FF47A6601E019F8010F52\n:100EE00001F086FE3346013BFDD101F04BFFC145C9\n:100EF000F4D1013EFDD100210D2001F00DFB01F0E8\n:100F000041FF10F0FF0040F05181019A029B8DF8E3\n:100F1000350003EB02239BB29A008DF836209A0924\n:100F20009B0201930CAB02939B46214B8DF837201B\n:100F300093E8030040330C908DF8341093E80300DD\n:100F40000E908DF83C100D2001210DF13D094FF45C\n:100F50007A6601F0E1FA1BF8010B01F049FE334615\n:100F6000013BFDD101F00EFFCB45F4D1013EFDD197\n:100F700000210D2001F0D0FA01F004FFC0B20028DA\n:100F800040F01481FFF768FA0646002840F0D1804F\n:100F90000D20012101F0C0FA4FF47A6677200DE0B0\n:100FA000140EFF1FF007FF1FE04C0000784C0000FC\n:100FB000B04C0000E84C000017F8010F01F018FEDB\n:100FC0003346013BFDD101F0DDFEA742F4D1013EE5\n:100FD000FDD100210D2001F09FFA0DF23F270DF207\n:100FE0003F364FF47A6417F8010F01F001FE2346F3\n:100FF000013BFDD101F0C6FEB742F4D101F08AFEFB\n:10100000013CFDD101F0BEFEC0B2002840F0C88016\n:101010000D20012101F080FA4FF47A64772001E07D\n:101020001AF8010F01F0E4FD2346013BFDD101F068\n:10103000A9FEAA45F4D1013CFDD100210D2001F00B\n:101040006BFA0DF23F440DF23F364FF47A6516F815\n:10105000010F01F0CDFD2B46013BFDD101F092FEC9\n:10106000A642F4D101F056FE013DFDD101F08AFE09\n:10107000C0B2002840F0A1800D20012101F04CFAFF\n:101080004FF47A64039D772001E015F8010F01F019\n:10109000AFFD2346013BFDD101F074FE4545F4D17F\n:1010A000013CFDD100210D2001F036FA01F06AFE6D\n:1010B00010F0FF007AD1424A8DF8350092E8030023\n:1010C0004032019B8DF834100C9092E8030003F538\n:1010D00000731A0A0E908DF83C101B0C01210D2094\n:1010E0008DF836208DF8373001F016FA029D4FF456\n:1010F0007A6415F8010B01F07BFD2346013BFDD11D\n:1011000001F040FE4D45F4D1013CFDD100210D2000\n:1011100001F002FA01F036FEC0B2002846D1FFF716\n:101120009BF9064628B901460D2001F0F5F900E0CB\n:10113000EB2630460DF2444DBDE8F08FEC263046EC\n:101140000DF2444DBDE8F08F01233B7322E615FA02\n:1011500080F0B0F5806F1CDC1FFA80FB23680B93D6\n:10116000DDF82CA0002608E023680A930A9BD8F833\n:101170000820A3EB0A0393421AD2A81910ABA9EBDB\n:101180000601184402F0F0FC0644B145ECD85D4677\n:1011900010E6C5F580691FFA89F94FF4806BDDE729\n:1011A000E12630460DF2444DBDE8F08FE626C0E75B\n:1011B000012388F80C305D46FCE5E226B9E700BF64\n:1011C000B04C00002DE9F04F994DADF24C4D00218F\n:1011D0004FF47F7213A8CDE90E1110918DF84410D1\n:1011E000129103F063FA2B680693069E42F2107484\n:1011F00006E02B680793079B9B1BA34200F2B68275\n:1012000002F09CFC0128F4DD2B680B930024CDE94F\n:101210000E440B9E874F10948DF8444007E02B68D6\n:101220000A930A9BBA689B1B934280F0AD820EAB77\n:10123000C4F10201181902F097FC0444012CEED904\n:101240009DF83830009301210D209DF83990DFF88A\n:10125000E48101F061F92B680893089F002444F6AB\n:1012600020660EE02B680993099BDB1BB34200F25A\n:10127000848202F063FC1FFA80FABAF1000F40F09A\n:101280008682B4F5806FEDD36B4C0D20012101F007\n:1012900043F9661D77204FF47A6501E014F8010FD9\n:1012A00001F0A6FC2B46013BFDD101F06BFDB442E1\n:1012B000F4D1013DFDD100210D2001F02DF901F007\n:1012C00061FD10F0FF0040F08C825C4D8DF83D0018\n:1012D00095E80300009B0E9005F1080709EB032930\n:1012E0008DF83C1097E803001FFA89F3C3F38712C7\n:1012F0009E009B02F6B2019310900EAB8DF8441045\n:101300000D2001218DF83E6000928DF83F20029360\n:101310000DF145049A464FF47A6801F0FDF81AF889\n:10132000010B01F065FC4346013BFDD101F02AFDB4\n:10133000A245F4D1B8F10108FCD100210D2001F043\n:10134000EBF801F01FFDC0B2002840F05282FFF719\n:1013500083F8824600285DD01B2840F00982DFF820\n:10136000E4B00D20012101F0D7F80BF1050A772038\n:101370004FF47A6801E01BF8010F01F039FC434695\n:10138000013BFDD101F0FEFCD345F4D1B8F10108D9\n:10139000FCD100210D2001F0BFF801F0F3FC10F0AA\n:1013A000FF0040F026828DF83D0095E803000E9086\n:1013B0008DF83C1097E80300009B10908DF84410C6\n:1013C0000D2001218DF83E608DF83F300DF1380A77\n:1013D0004FF47A6801F0A0F81AF8010B01F008FC4C\n:1013E0004346013BFDD101F0CDFCA245F4D1B8F15B\n:1013F0000108FCD100210D2001F08EF801F0C2FCA3\n:10140000C0B2002840F0F581FFF726F88246002898\n:1014100040F0AE810A4B03931F460D20012101F0DD\n:101420007BF83B469A46043777204FF47A680DE004\n:10143000140EFF1FF007FF1F684C0000B04C0000A7\n:10144000E04C0000604C00001AF8010F01F0D0FBE6\n:101450004346013BFDD101F095FCBA45F4D1B8F10A\n:101460000108FCD100210D2001F056F80DF1470BC9\n:101470000DF247184FF47A6A1BF8010F01F0B8FB20\n:101480005346013BFDD101F07DFCC345F4D101F091\n:1014900041FCBAF1010AFCD101F074FCC0B2002891\n:1014A00040F0AA81854B04930D20012101F034F80E\n:1014B000824B772003F104099B464FF47A6A01E0DE\n:1014C0001BF8010F01F094FB5346013BFDD101F0E5\n:1014D00059FCCB45F4D1BAF1010AFCD100210D2011\n:1014E00001F01AF80DF2472B4FF47A6A18F8010F41\n:1014F00001F07EFB5346013BFDD101F043FCD84592\n:10150000F4D101F007FCBAF1010AFCD101F03AFC78\n:10151000C0B2002840F07681694B05930D2001216F\n:1015200000F0FAFF664B772003F1050B98464FF465\n:101530007A6A01E018F8010F01F05AFB5346013BAB\n:10154000FDD101F01FFCC345F4D1BAF1010AFCD171\n:1015500000210D2000F0E0FF01F014FC10F0FF006E\n:1015600040F04D818DF83D0095E80300DFF854B15F\n:101570000E908DF83C109BE80300009B10908DF8B6\n:1015800044100D2001218DF83E608DF83F300DF1A3\n:10159000380A4FF47A6600F0BFFF1AF8010B01F029\n:1015A00027FB3346013BFDD101F0ECFBA245F4D112\n:1015B000013EFDD100210D2000F0AEFF01F0E2FB65\n:1015C000C0B2002840F01B81FEF746FF824600288B\n:1015D00040F0CE800D20012100F09EFF4FF47A668E\n:1015E000DDF80CA0772001E01AF8010F01F000FBF4\n:1015F0003346013BFDD101F0C5FBBA45F4D1013EB4\n:10160000FDD100210D2000F087FF0DF2472A0DF2D9\n:1016100047374FF47A661AF8010F01F0E9FA3346BA\n:10162000013BFDD101F0AEFBBA45F4D101F072FBF4\n:10163000013EFDD101F0A6FBC0B2002840F0DC80E5\n:101640000D20012100F068FF4FF47A66049F772097\n:1016500001E017F8010F01F0CBFA3346013BFDD151\n:1016600001F090FB4F45F4D1013EFDD100210D204A\n:1016700000F052FF0DF247460DF2473A4FF47A67F9\n:101680001AF8010F01F0B4FA3B46013BFDD101F01D\n:1016900079FBB245F4D101F03DFB013FFDD101F0F2\n:1016A00071FBC0B2002840F0AD800D20012100F098\n:1016B00033FF4FF47A66059F772007E0E84C00007F\n:1016C000784C0000F04C000017F8010F01F090FA80\n:1016D0003346013BFDD101F055FB4745F4D1013EB6\n:1016E000FDD100210D2000F017FF01F04BFB10F0A1\n:1016F000FF0040F084808DF83D0095E80300019BD9\n:101700008DF83C100E909BE8030003F500731A0A55\n:1017100010908DF844101B0C01210D208DF83E20F7\n:101720008DF83F3000F0F8FE029E4FF47A6516F80F\n:10173000010B01F05DFA2B46013BFDD101F022FBCC\n:10174000A642F4D1013DFDD100210D2000F0E4FEC0\n:1017500001F018FBC0B2002851D1FEF77DFE824691\n:1017600030B901460D2000F0D7FE01E04FF0EB0A42\n:1017700050460DF24C4DBDE8F08F4FF0EC0A50464C\n:101780000DF24C4DBDE8F08F01233B7358E514FA80\n:1017900080F0B0F5806F1CDC83B201932B680D9351\n:1017A0000D9E4FF0000B07E02A680C920C9AD8F8B7\n:1017B0000810921B8A4217D204EB0B0012ABAAEB63\n:1017C0000B01184402F0D0F98344DA45ECD8019CAF\n:1017D00045E5C4F5806A4FF480631FFA8AFA0193E5\n:1017E000DCE74FF0E80AC3E70123019C88F80C30DE\n:1017F00035E54FF0E40ABBE74FF0E10AB8E74FF0F8\n:10180000E60AB5E74FF0E20AB2E700BF2DE9F04380\n:10181000594F5A4D83B04FF0000901210D20CDF8EA\n:1018200000908DF8049000F077FE4FF4FA514FF4D9\n:10183000FA6000F05DFC08210646012000F058FC2B\n:1018400049460446052000F067FE4FF4C863013B9B\n:10185000FDD101F067F8052000F0C4FE012105204C\n:1018600000F05AFE052000F0BDFE4FF4E13138468D\n:1018700000F08AFB6423BB60012000F0B3FE2B78EC\n:10188000C5203B3B4FF47A682B7001F0B1F9434619\n:10189000013BFDD12B78012001332B7001F0A8F919\n:1018A0004346013BFDD10320287001F0A1F94346D6\n:1018B000013BFDD12B789A20663B2B7001F098F903\n:1018C0004346013BFDD1484601F092F94346013BB6\n:1018D000FDD12B78142014332B7001F089F9434685\n:1018E000013BFDD12B785842C0B2C31A2B7001F0D6\n:1018F0007FF9B8F10108FCD101E001F043FA01F0F1\n:101900002DFA0028F9DC2B78032003444FF47A6881\n:101910002B7001F06DF94346013BFDD101F032FA25\n:1019200005226946384600F0C7FB9DF80230062BB9\n:1019300035D0102B40F0FB8006EB8606F60001D078\n:10194000013EFDD10021042004EB840400F0E4FDFD\n:10195000E40001D0013CFDD10121042000F0DCFDB8\n:1019600001E001F00FFA01F0F9F90028F9DC40F28A\n:10197000E734C8260AE000BFC407FF1F010EFF1F9F\n:101980003346013BFDD1013C3FF445AF01F0E6F9A0\n:101990000028F5DD01F0F6F9C0B20228F0D10520EB\n:1019A00000F020FE2B7891206F3B4FF47A662B706D\n:1019B00001F01EF93346013BFDD13A24012000F02D\n:1019C00011FE20462C7001F013F93346013BFDD186\n:1019D0002B784E2003442B7001F00AF93346013B6B\n:1019E000FDD12B786F2003442B7001F001F93346B1\n:1019F000013BFDD12B78742003442B7001F0F8F8E3\n:101A00003346013BFDD12B78204623442B7001F057\n:101A1000EFF83346013BFDD12B78552003442B7062\n:101A200001F0E6F83346013BFDD12B7873200344E7\n:101A30002B7001F0DDF83346013BFDD12B7865209A\n:101A400003442B7001F0D4F83346013BFDD12B78D1\n:101A5000642003442B7001F0CBF83346013BFDD1E9\n:101A60002B78204623442B7001F0C2F83346013B0B\n:101A7000FDD128780138C0B243002B7001F0B8F8CE\n:101A80003346013BFDD1012000F0ACFD2B789320C3\n:101A90006D3B2B7001F0ACF83346013BFDD10120CA\n:101AA000284C00F09FFD04F1C3072B7814F8010FB8\n:101AB00003442B7001F09CF83346013BFDD1BC423E\n:101AC000F3D1012000F08EFD2B7893206D3B2B701D\n:101AD00001F08EF8013EFDD101201B4C00F082FD8B\n:101AE000E71D4FF47A662B7814F8010F03442B702E\n:101AF00001F07EF83346013BFDD1A742F3D101202E\n:101B000000F070FD942001F073F8052000F06AFDEC\n:101B100001E001F037F901F021F90028F9DC0D208E\n:101B2000002100F0F9FC012003B0BDE8F0832B7820\n:101B3000EE20123B2B7001F05BF8B8F10108FCD1EC\n:101B40000020F1E7FF06FF1FF706FF1F2DE9F04316\n:101B5000012183B00D2000F0DFFCB74DB74EB84F28\n:101B600001F0ECFF002800F09D8001F0ABFFC0B257\n:101B70000128287010D9102800F09780202853D011\n:101B8000802800F04681F02800F030813B78002B5F\n:101B900000F05E812028E3D82028E1D801A353F883\n:101BA00020F000BFE51D0000B91D0000B31D0000BE\n:101BB000AD1D0000831D0000611B0000591D0000C9\n:101BC0002F1D0000051D0000611B0000DB1C000034\n:101BD000611B0000611B0000611B0000611B000015\n:101BE000611B0000AB1C0000611B0000611B0000BA\n:101BF000611B0000611B0000611B0000611B0000F5\n:101C0000611B0000611B0000611B0000611B0000E4\n:101C1000611B0000611B0000611B0000611B0000D4\n:101C2000611B0000291C000001210D20854C00F0E3\n:101C300073FC0D20012100F06FFC04F104097520F4\n:101C40004FF47A6801E014F8010F00F0D1FF434629\n:101C5000013BFDD101F096F84C45F4D1B8F10108F3\n:101C6000FCD100210D2000F057FC01F08BF810F0A2\n:101C7000FF0018BFE020307002F060F84FF47A6384\n:101C8000013BFDD101E001F01DFF01F057FF0028ED\n:101C9000F9DC00210D2000F03FFC01F04FFF00288F\n:101CA0007FF463AF03B0BDE8F0833C780020307070\n:101CB000002C00F0BA8002F041F84FF47A63013B47\n:101CC000FDD101E001F0FEFE01F038FF0028F9DC53\n:101CD00000210D2000F020FCDFE7FEF763FF3070ED\n:101CE00002F02CF84FF47A63013BFDD101E001F0E2\n:101CF000E9FE01F023FF0028F9DC00210D2000F0AF\n:101D00000BFCCAE7FEF77AFE307002F017F84FF4CA\n:101D10007A63013BFDD101E001F0D4FE01F00EFF3A\n:101D20000028F9DC00210D2000F0F6FBB5E7FFF7F5\n:101D300049FA307002F002F84FF47A63013BFDD1AA\n:101D400001E001F0BFFE01F0F9FE0028F9DC0021FE\n:101D50000D2000F0E1FBA0E7FEF7DEFF307001F0A0\n:101D6000EDFF4FF47A63013BFDD101E001F0AAFEE3\n:101D700001F0E4FE0028F9DC00210D2000F0CCFB8E\n:101D80008BE7FEF769FD307001F0D8FF4FF47A63FE\n:101D9000013BFDD101E001F095FE01F0CFFE0028EE\n:101DA000F9DC00210D2000F0B7FB76E7FEF766FCBA\n:101DB000D6E6FEF7ABFCD3E6012002F0ABF9224CED\n:101DC000804602F0AFF901ABA3EB080323800520A6\n:101DD00001F0B4FF2088000A01F0B0FF207801F084\n:101DE000ADFFBDE6022001F0A9FFB9E6012002F037\n:101DF00091F9154C804602F095F901ABA3EB08036D\n:101E00000220238001F09AFF052001F097FF352082\n:101E1000DEE700210D2000F07FFB4FF4FA7000F0A8\n:101E2000E1FB0A4B1B6898479AE6FFF7EFFC30701E\n:101E300008BBE12030703EE7000EFF1F0C0EFF1FB5\n:101E4000040EFF1FF84C0000020EFF1F080EFF1FBC\n:101E5000E02001F073FF4FF47A63013BFDD101E014\n:101E600001F030FE01F06AFE0028F9DC00210D20AF\n:101E700000F052FB11E7FEF729FB307010B9012387\n:101E80003B7018E73C7016E72DE9F843314F324DAF\n:101E9000324CDFF8D09038464FF4E13100F074F85E\n:101EA0006423BB602E682E4F40F2EE2801F0C8FF7D\n:101EB0002378002B40D03B78DA073DD52B68D9F842\n:101EC00000209B1A0E2B37D901210D2000F04EFB6C\n:101ED0000121052000F04AFB0121042000F046FB0F\n:101EE0000121084600F042FB0021084600F03EFBBD\n:101EF0000021052000F010FB0021012000F00CFB68\n:101F00000021084600F008FB0121042000F004FB3A\n:101F100001F096FF2378002BFAD03B78DB07F7D54A\n:101F20002B68D9F800209B1A0E2BF1D9BDE8F84395\n:101F300001210D2000F0F0BA2B6822789B1B2AB1FA\n:101F4000B3F5FA6FC0D801F07BFFAFE74345FAD98C\n:101F5000BAE700BFC407FF1F140EFF1F980FFF1F33\n:101F6000BC0FFF1FC00FFF1F0368C9B21B681847D3\n:101F70000368C9B21B6818470368C9B21B681847D1\n:101F80000368C9B21B681847084B10B503EB51032F\n:101F90000446B3FBF1F000F0E7FB054B1B7803B1FF\n:101FA00010BD2046BDE8104001F0EEBF001C4E0EF3\n:101FB000ED07FF1F08B5084600F01AFE012008BD16\n:101FC00008B5084600F014FE012008BD38B50846E3\n:101FD0000D4602F015FC04460146284600F012FEAC\n:101FE000204638BD10B508461446114600F00AFEDA\n:101FF000204610BD0846114601F032B80846114689\n:1020000001F012B800F02ABF08B5084600F0C6FD7E\n:10201000003818BF012008BD08B5084600F09CFD37\n:10202000003818BF012008BD0846114600F012BD57\n:10203000084600F059BD00BF084600F0EFBC00BFE5\n:1020400000F070BC10B50648144600EB5100B0FB20\n:10205000F1F000F089FB2046BDE8104000F004BC20\n:10206000001C4E0E00F0D4BE00F08CBE00F076BE18\n:1020700000F050BE00F05ABE70B50E4D82B02B6815\n:102080000093009E044608E001F0DAFE2B680193FD\n:10209000019BA2689B1B934207D2236820465B6981\n:1020A00098470028F0DB02B070BD4FF0FF3002B05F\n:1020B00070BD00BF140EFF1FF8B50D4691B1164656\n:1020C0009AB10746002404E00134A64205F8013B1A\n:1020D00006D03846FFF7D0FF031EF5DA01233B7325\n:1020E0002046F8BD0C462046F8BD1446F8E700BF70\n:1020F000884200DB704770B4114C2268091AEAB1BB\n:10210000104B114E114D83FB023C9444D317C3EB8B\n:102110002C4306FB132244F2A71C05FB03F30CFB24\n:102120000233002B02DA03F10043013BB3FBF1F26F\n:1021300001FB12322360104470BC7047044BF5E77A\n:10214000100EFF1F5F0B4E831DF30100ECF4FFFF29\n:1021500042CE0C1F08B5FFF797FEFFF7F7FC01F022\n:102160006FFEFAE701B441EA000313F003036FD1F5\n:10217000403A41D351F8043B40F8043B51F8043B4A\n:1021800040F8043B51F8043B40F8043B51F8043B51\n:1021900040F8043B51F8043B40F8043B51F8043B41\n:1021A00040F8043B51F8043B40F8043B51F8043B31\n:1021B00040F8043B51F8043B40F8043B51F8043B21\n:1021C00040F8043B51F8043B40F8043B51F8043B11\n:1021D00040F8043B51F8043B40F8043B51F8043B01\n:1021E00040F8043B51F8043B40F8043B51F8043BF1\n:1021F00040F8043B403ABDD2303211D351F8043B91\n:1022000040F8043B51F8043B40F8043B51F8043BD0\n:1022100040F8043B51F8043B40F8043B103AEDD23F\n:102220000C3205D351F8043B40F8043B043AF9D290\n:1022300004320AD0D2071CBF11F8013B00F8013B61\n:1022400003D30B7803704B78437001BC704700BF19\n:102250000C2A4AD310F0030311D0C3F10403D21A9D\n:10226000DB071CBF11F8013B00F8013B07D311F855\n:10227000013B00F8013B11F8013B00F8013B11F074\n:1022800003033FF475AF30B4043AC91AC3F1040C28\n:1022900051F8044B022B19D0032B0BD0240A51F810\n:1022A000043B1D0644EA050440F8044B1C46043A6E\n:1022B000F4D216E0240E51F8043B1D0244EA050452\n:1022C00040F8044B1C46043AF4D20AE0240C51F8BE\n:1022D000043B1D0444EA050440F8044B1C46043A40\n:1022E000F4D20432B1EB0C0130BC043AA0D3013A71\n:1022F00011F8013B00F8013BF9D20B7803704B78E1\n:1023000043708B78837001BC704700BF08B50F4CD9\n:10231000636B58030DD4636B59050FD4636B1A05B7\n:1023200011D4636BDB04F3D500F012F8636B580330\n:10233000F1D500F063FF636B5905EFD500F0B2FDF6\n:10234000636B1A05EDD500F003F8EAE7008004405E\n:1023500008B5FFF7DBFF00BF014B10221A80704762\n:1023600000200540704700BF0B490A6848B108B516\n:10237000EC461318ACF50050834204D20B601046B3\n:1023800008BD1046704702F0F5F90C234FF0FF32FC\n:102390000360104608BD00BFD807FF1FEFF313838B\n:1023A000CBB9EFF31080A0B9EFF3058343B94FF435\n:1023B0008070EFF311835BB1984228BF18467047D5\n:1023C0000F2BF6D9054AD05CEFF31183002BF3D124\n:1023D0007047184670474FF0FF307047F0E300E059\n:1023E00001F1FF3C70B56546002401E07046013400\n:1023F000B0FBF2FE02FB1E03092B03F130068ABF7D\n:102400003733F3B2DBB2904205F8013FEED2631CE2\n:102410000022CA54C8187CB162461CF8015F10F84B\n:1024200001ED8CF800E0A1EB0C030232013B521AE3\n:1024300023449A420570EFDB084670BD034B00222F\n:1024400010215A615A6018605961704700D00340EA\n:10245000704700BF4FF0E02CF0B54FF0006ECCF8A5\n:1024600004E14FF0805ECCF804E14FF0005ECCF860\n:1024700004E1244A24492548254C4FF0804ECCF8ED\n:1024800004E1282300274EF6FF7609254FF0004E81\n:10249000CCF804E183B04F608E60CB604B61CB61C0\n:1024A0004B62CB624B63CB634B64D3605361D361AC\n:1024B0005362D3625363D36353640D606760A66055\n:1024C000E3606361256047608660C36043610560C7\n:1024D00057609660D3605361156001F07DFDFFF792\n:1024E000B7FF0C4C23680093009B132BFAD901F023\n:1024F0003FFA23680193019BB3F5967FF9D303B0AC\n:10250000F0BD00BF00900B400080034000800B40F6\n:1025100000900340140EFF1F3F2818D810B4124B30\n:1025200053F8302092F8804234B1012381B982F807\n:1025300000315DF8044B704703EBC0035B681A6819\n:1025400059B142F003025DF8044B1A6070477047BE\n:1025500082F880305DF8044B704722F002025DF88B\n:10256000044B1A60704700BF684D00003F2820D818\n:102570001B4A02EBC00301295B680FD004291DD060\n:1025800052F83000002280F8802299B1022922D02E\n:1025900003290DD14FF481721A60704752F8300050\n:1025A0004FF4A27280F880121A601A6822F020029A\n:1025B0001A6070474FF480721A60704752F83010FA\n:1025C0004FF4A272012081F880021A601A6842F06A\n:1025D00020021A60704740F203121A60704700BF71\n:1025E000684D00002DE9F843044672B6204F4FF0C5\n:1025F000E02293693D68D2F8042D62B6520102D5FB\n:10260000322B88BF01350CB9BDE8F883DFF8649040\n:10261000DFF86480A9EB0303A8FB03234FF47A726D\n:1026200002FB05F505EB93154FF0E02672B6B16994\n:102630003A68D6F804CD62B6A9EB0103A8FB030300\n:102640001CF0806FC5EB93134FF47A7002D03229DF\n:1026500088BF013200FB0233B3F57A7F04D3013C1B\n:10266000D2D005F57A75E1E701F0EAFBDEE700BFBD\n:10267000140EFF1FBFD40100898888882DE9F84F08\n:10268000314B1B6807460BB101221A70DFF8D0905E\n:10269000DFF8D08099F80040D8F800302B4D013495\n:1026A0009C422B782AD303F0FF0A002B3ED15446DC\n:1026B000274EDFF8A8B005E033791B0623D42B782A\n:1026C000A3420AD1FFF76AFE4028F5DDFF28F6DDB8\n:1026D00001F0B6FB2B78A342F4D03F2C29D91D4B37\n:1026E000403C1B68FFB21F551B4A194B012111705A\n:1026F000BC2289F800A0DA70BDE8F88F9C425FFA2E\n:1027000084FAD5D0E9E72B78D8F800105A1C8A4211\n:10271000DBB203D23F2A10D8D1B201E000210A4631\n:102720001BF80230DBB2F3712970C8E74FF0000AE2\n:1027300054460A4BFFB21F55D6E7D1B2054A3F3B7C\n:102740001268D35CDBB2EEE7680EFF1FB80EFF1F06\n:1027500000A00640B40EFF1F6C0EFF1F700EFF1F7F\n:10276000B00EFF1FE807FF1F324A3349536B70B4A6\n:1027700043F48063314D5363314E324C3278002341\n:102780002B700B70304923700B703049152A0B7079\n:102790002ED01B2A48D0002A41D02D4B1B78052B68\n:1027A0002ED01A2B36D0012B2FD02028294B2A4C83\n:1027B00038BF2020C0F3443C83F800C0C0F3471C5E\n:1027C00000F01F0083F801C00422987202209A7062\n:1027D000D87488205A754FF0E021187440223C20AC\n:1027E000D870E2774FF0004370BCC1F800317047F9\n:1027F0001A4B40F213329A61154B1B78052BD0D13E\n:10280000164B4FF45172DA61CFE7154B4FF451720A\n:102810005A64CAE7134B4FF451729A63C5E7104BE1\n:1028200040F213321A64B8E70E4B40F21332DA6307\n:10283000B3E700BF00800440640EFF1F5C0EFF1F63\n:10284000650EFF1FB00EFF1FB80EFF1F6C0EFF1F9F\n:10285000EC07FF1F00A0064000E400E000C00440B9\n:1028600000A0044000900440294B9B7800F0030234\n:1028700003F0EC031343410700F00F02244948BF63\n:1028800043F01003042A8B7003D18B7943F040038B\n:102890008B711F4B5B79C20603F0EF031C4A48BFE4\n:1028A00043F0100353719379194A03F0EF0310F0CA\n:1028B000200C18BF43F010039371C30506D553785D\n:1028C0001178DBB241F020011170537010F40070E8\n:1028D00017D00F490F488B780F4A43F0A0038B7035\n:1028E00003780E4902EBC30240F24633506840F2CF\n:1028F0004732BCF1000F08BF1346094A03600A6063\n:102900007047064B064A1968914208BF1860704725\n:1029100000A00640EC07FF1F684D0000680EFF1F77\n:10292000D400D442324B5B6B5B0531D510B5314CD2\n:10293000237823B101F084FA2378002BFAD12E4AB0\n:102940002E4B4FF0E0204FF000440021C0F88041B2\n:10295000D1701B78152B3CD01B2B1FD04BB3284BB1\n:102960001B7803F07F03052B3DD01A2B2CD0012BB5\n:102970000FD0244B204A244C2448196892F804C0F4\n:10298000D27900232370037009B101230B7010BDAD\n:1029900070471F4B40F203125A64EAE71D4B40F2A6\n:1029A0000312DA63164B1B7803F07F03052BDCD18F\n:1029B00019E0174B40F203121A64114B1B7803F015\n:1029C0007F03052BD1D10EE0124B40F203129A6324\n:1029D000CFE7114B40F203129A61094B1B7803F0C9\n:1029E0007F03052BC1D10C4B40F20312DA61C0E723\n:1029F000008004406C0EFF1F00A00640650EFF1F04\n:102A0000EC07FF1F180EFF1F5C0EFF1F640EFF1F59\n:102A100000A004400090044000C004400A4A38B5B9\n:102A20000546137803F0FF04002BFAD10121284654\n:102A3000FFF79CFD21462846FFF76EFD034A044B35\n:102A400052F835201A6038BD6C0EFF1F684D00002B\n:102A5000680EFF1F09B140F080001E4A13788342C0\n:102A60001CD010B41C4C646B640513D503F07F03B9\n:102A7000052B2BD01A2B25D0012B1FD0002900F0BD\n:102A80007F0314BF60214421052B12D01A2B0BD0D9\n:102A9000012B04D010705DF8044B704770470F4B4A\n:102AA00041F440715964F5E70D4B41F4407199636D\n:102AB000F0E70C4B41F44071D961EBE7074B002480\n:102AC0005C64DBE7064B00249C63D7E7054B0024DE\n:102AD000DC61D3E7EC07FF1F0080044000A0044046\n:102AE0000090044000C00440164A137883420ED080\n:102AF0001549496B490509D5152B1FD01B2B19D03A\n:102B0000ABB115280ED01B2807D008B11070704744\n:102B10000E4B40F213311964F8E70D4B40F21331BC\n:102B2000D963F3E70B4B40F213319961EEE70749A4\n:102B30000B64E6E7064B0021D963E2E7054B002171\n:102B40009961DEE7650EFF1F0080044000A004408D\n:102B50000090044000C004400D4B5B6B13F4806395\n:102B600013D03F2803D90B4B0020186070470A4B45\n:102B700010B5084C53F8303023600121FFF7F6FC04\n:102B8000236800221A70012010BD1846704700BF4C\n:102B900000800440180EFF1F684D0000104B5B6B57\n:102BA00013F4806312D012280BD0142810D10D4BCF\n:102BB00040F202325A610C4A537B012003435373A3\n:102BC00070470A4B40F20232DA60F4E71846704769\n:102BD000054A537B03F0FE0300205373704700BF88\n:102BE0000080044000C0044000A0064000A0044053\n:102BF000034B5B6B5B0501D5FFF740BD704700BF22\n:102C0000008004402DE9F84F394B5B6B5A053CD5E9\n:102C1000384B1B680BB101221A704718B84231D2E9\n:102C2000354EDFF8EC80354CDFF8E09000F1010A1A\n:102C300013E003F0FF0B53B34FF0000B5D46304A37\n:102C40001AF8013C535552462E490123BA420B70E3\n:102C50000AF1010A86F800B014D23578D8F80030AD\n:102C60000135AB422378E4D9AB425FFA85FB0FD044\n:102C70003F2DE4D9244B1AF8012C1B68403D5A55CE\n:102C80005246E1E7214BBC22DA70BDE8F88F5D4681\n:102C90006FF0430389F8033006E099F804301B060F\n:102CA0000BD42378AB42E3D1FFF778FB4028F4DD67\n:102CB000FF28F6DD01F0C4F8F3E72378D8F8001018\n:102CC0005A1C9142DBB203D93F2A0AD8D1B201E0A3\n:102CD00000210A460A4B9B5CDBB289F80730217061\n:102CE000DFE7D1B2084A3F3B1268D35CDBB2F4E7BE\n:102CF00000800440680EFF1FB00EFF1FB80EFF1FBC\n:102D0000700EFF1F6C0EFF1FB40EFF1F00A00640C9\n:102D1000E807FF1F10B5044C237823B101F090F8A9\n:102D20002378002BFAD110BD6C0EFF1F084A094B07\n:102D300011781A789142C8B2D3B202D2013B181A64\n:102D40007047054A1268013A1344181A704700BFC9\n:102D5000B00EFF1FB80EFF1FE807FF1F064A074B04\n:102D600011781A789142D0B23CBF054A1268CBB2B2\n:102D700038BF9B18181A70475C0EFF1F640EFF1FA8\n:102D8000E407FF1F1B4B1C491A780B789A422ED080\n:102D900010B55FFA82FE194AD8B21268431C9A42F3\n:102DA00019D93F2B1BD85FFA83FC1548C05CC0B211\n:102DB00081F800C01349096861B19E453CBF724467\n:102DC000D31A114A126828BFAEEB03039A4201D30B\n:102DD00000230B7010BD4FF0000C6346E5E70B4C71\n:102DE0003F382468205C5FFA83FCC0B2E0E74FF014\n:102DF000FF3070475C0EFF1F640EFF1FE407FF1FCC\n:102E00001C0EFF1F180EFF1FE007FF1F600EFF1FA5\n:102E10000D4A0E4B11781B789942DAB211D00C4949\n:102E20000968531C994207D93F2B06D9094B3F3AF1\n:102E30001B68985CC0B270470023074AD05CC0B2E0\n:102E400070474FF0FF3070475C0EFF1F640EFF1F8E\n:102E5000E407FF1F600EFF1F1C0EFF1F0C4B5B6B78\n:102E60005B0514D50B4B0C48DA78402102F0CB02FD\n:102E7000DA705974DA78094942F03402DA70084A93\n:102E800003781268DBB20B700AB10023137070472D\n:102E90000080044000A00640640EFF1F5C0EFF1F70\n:102EA000180EFF1F2DE9F041504C237913F0300F1D\n:102EB00047D072B6A37D03F0FF01002B58D062B655\n:102EC000DFF85C814A4898F800304A4A057816686D\n:102ED000494F5FFA83FC494BEDB2D3F800E008E0BC\n:102EE0001DB14FF0000C07F80C304A1E12F0FF0124\n:102EF00012D0E3790CF101029642DBB2F0D995428F\n:102F0000ACF13F00F1D03F2A6DD994464A1E12F031\n:102F1000FF010EF80030ECD15FFA8CF388F8003036\n:102F2000374B196869B1AC453CBF721B02EB0C030F\n:102F3000344A126828BFACEB05039A429CBF0123B8\n:102F40000B702A48C3781E06DDB216D46A060DD56A\n:102F5000264B1B795B0609D52B4B2C491B6800229D\n:102F60000A7003B11A70214B3C22DA70BDE8F0817F\n:102F70004023E279637462B6E3E703791C06E5D582\n:102F8000234B244ADFF89CE01C7816689EF800303A\n:102F9000214A224FD2F800C0E4B2DBB207E0037945\n:102FA0000023FA5CD2B2C271027D072A11D8A34273\n:102FB00003F101010ED08E42F1D93F290279A3F12C\n:102FC0003F0301D80B46ECE71CF803200B46D2B2B6\n:102FD000E9E7DCB2054B8EF800401A79110644BFD0\n:102FE0007C22DA70B2E794467DE700BF00A006407D\n:102FF000640EFF1FE407FF1F1C0EFF1F600EFF1F64\n:10300000180EFF1FDC07FF1F680EFF1F6C0EFF1F4F\n:10301000B00EFF1FE807FF1FB40EFF1F700EFF1F4B\n:103020005C0EFF1FB80EFF1F094B10B4186068B18B\n:1030300001F14004074B084801F11A021A60074BDE\n:10304000046028315DF8044B196070474024F1E7B3\n:10305000600EFF1FE007FF1FE407FF1FDC07FF1FD5\n:10306000054B186018B1054B403119607047034B90\n:1030700040211960704700BFB40EFF1FE807FF1F13\n:10308000704700BF431E032B16D872B60B4951F888\n:10309000230078B130B40A4CB0F800C034F81320E3\n:1030A000456841F82350A2EB0C0224F8132062B6C5\n:1030B00030BC704762B67047002070474C0FFF1F4E\n:1030C0009C0FFF1F013803280BD872B6074B53F82B\n:1030D000203043B100205B680130002BFBD162B689\n:1030E0007047002070471846F9E700BF740FFF1FB4\n:1030F00010B472B61A4A1B4C042312F8011B0907BC\n:1031000043F0010C05D554F8331069B154F83C1064\n:10311000C9B10433142BF0D162B6134B00221A70DC\n:103120005DF8044B00F0A6BC0F4904EBC302083065\n:1031300050600A780D4844F83300013A0A7062B6CC\n:103140005DF8044B7047084A094904EBCC0308308A\n:103150005860137844F83C10013B137062B6EFE7F7\n:10316000E84F00000000FF1FA40FFF1F8800400071\n:10317000C8004000421E032A0ED81C4B400140F0FC\n:10318000100010B4034472B6194CA05C03281DD87B\n:10319000DFE800F01416031970470520A05413F05F\n:1031A000080F088814BFC8228822083142EA00426A\n:1031B00059601A6062B65DF8044B70470320EDE772\n:1031C00008330220EAE708330420E7E7094B53F805\n:1031D000220038B1084B53F82200416043F8221016\n:1031E00062B6E8E743F82210034BF7E70000FF1F41\n:1031F000940FFF1F740FFF1F840FFF1F2DE9F04F67\n:10320000DFF80CA3DFF80CB385B03DE0B04D9E08AD\n:1032100005EBC607013A796813F00803D4B2A1F1AF\n:10322000080040F0B88055F836204FEA124C120CD6\n:1032300021F808CC00F0A78021F8063C41F8043CB6\n:10324000A44B53F82420002A00F00182A24B53F82B\n:103250002420506043F82400A04B33F814209444F9\n:1032600023F814C000F0E6FB002800F0E98117F015\n:10327000080F9B4B00F1080018BF5B46786045F8CB\n:10328000363008238AF880309AF880305907DCB24B\n:103290001BD5944B1B78ABB193490A7802F0FF031E\n:1032A0002AB1013BDBB20B70002B00F046838F4943\n:1032B0000A7802F0FF032AB1013BDBB20B70002B4E\n:1032C00000F0EB8104238AF8803014F0080200F04B\n:1032D000CC819AF89020D3B2120997D1DFF8F091FF\n:1032E0009B0809EBC30459F833006468C0F38300FA\n:1032F00009287CD00FD80138012808D87C4A1588C5\n:1033000042F22100854200F0FB8149F833B00123ED\n:103310008AF89430B5E70D28F9D1D4E90007754D46\n:1033200049F833B0724E744CC9F8102083B240F2A1\n:10333000816CC9F818202A6063454FF00102C6E984\n:103340000007227000F2FF80B3F5D06F80F0CB82CF\n:10335000B3F5817F00F0268240F2DE8040F2023237\n:1033600093427BD107F07F07042F00F20881020C03\n:1033700040F00581614911F8273043F0020301F85C\n:103380002730134670E017F0080F554B18BF5B4607\n:1033900045F8363075E700F06DFB5949594A51F848\n:1033A0002430002B00F05781586841F82400115D4B\n:1033B00003F108007860032905D8DFE801F0120F57\n:1033C0001502042111551A8817F0080F14BFC823DD\n:1033D000882343EA024345F8363052E7022111556B\n:1033E000F1E703211155EEE705211155EBE7414DBA\n:1033F0002A683AB34449404C0F88444894F800E0A6\n:103400000678402F3B4628BF4023BEF1000F8EF0C8\n:10341000010E84F800E046F0020486F00106067012\n:1034200009EBC400426014BFC820882040EA034072\n:103430001A44FB1A9BB249F834000B80002B00F0B1\n:1034400036812A602A4B1A88B2F5A06F7FF45FAFED\n:103450009A788AF8982000225A7058E7B3F5A06F3E\n:1034600040F08D8000221346B6F806C027489445E8\n:1034700028BF944667460278402F28BF402742F075\n:10348000020E3E0409EBCE0846F0C806C8F8043028\n:1034900049F83E6000263B442670BCEB070782F0EB\n:1034A0000106067040F01181BCF13F0F4FF001059D\n:1034B00009D946F00206027009EBC6022570536076\n:1034C000882349F8363001238AF894301FE700BF7B\n:1034D0000000FF1F4C0FFF1F5C0FFF1F9C0FFF1F03\n:1034E00088004000980FFF1F990FFF1FC40FFF1F98\n:1034F0006C0FFF1F400FFF1F3D0FFF1FC020074035\n:10350000740FFF1F940FFF1F3E0FFF1F3C0FFF1F85\n:1035100000200740C8004000802B00F08B81822BE8\n:103520002DD107F07F07042F29D8A74A0023138045\n:10353000A64B13F827309F0740F1FC81012313703D\n:10354000A14B022290E742F2210C6345BBD01DD96A\n:1035500042F2212293420DD1BFB2002F82D19C4B67\n:103560001A689C4B1A609C4BC0F3074000221870ED\n:10357000134679E742F2213293423FF473AF0F23AF\n:103580008AF8C03001238AF89430C0E6B3F5086F9A\n:1035900000F04A81B3F5106FF1D1904BC0F30740B2\n:1035A0000425187059F835301A0606D40135142D43\n:1035B0000CD059F835301A06F8D509EBC50301359A\n:1035C0005868083800F056FA142DF2D1844A854B19\n:1035D0000292854A0192854E854ADFF8488203941B\n:1035E000009200251C4656F8047B2FB138467F68B0\n:1035F00000F040FA002FF9D1009BD8F8007043F892\n:10360000045B46F8045C00932FB138467F6800F0F5\n:1036100031FA002FF9D1029B48F8045B43F8045BB0\n:103620000293019B23F8025B01932378023B032B57\n:1036300000F20981DFE813F03F0104013F010401BA\n:103640006C4A45F8360013780133137019E643F8D5\n:103650002400674BFEE5115D022926D07FF611AEEE\n:1036600003291DD1012313550BE6E0076ED4210673\n:1036700021D4A20708D5604B93F888200221D2B24A\n:1036800083F8882083F88010E30603D55A4B102274\n:1036900083F8802005B0BDE8F08F00F0ADFB11E6A7\n:1036A00017F0080F14BF032302231355E9E53F2F3A\n:1036B00098BF0022C5E6504B80220D2183F8C01030\n:1036C00083F88020A207DFD5D5E746F00206027016\n:1036D000402F09EBC6003A4628BF40224360100441\n:1036E000134440F088000121BA1A49F836002170CD\n:1036F00055D02B60414B1A8001238AF8943006E69E\n:1037000092885AB93E4AE51D14F8011B02F8011FC0\n:10371000AC42F9D13B4A1268862A3CD03A4C3B482D\n:1037200025780278002D85F00105257042F002040D\n:1037300082F00102027009EBC4024FF000005060F9\n:1037400014BFC822882249F83420DEE52A4B2F48CE\n:103750002F49304C022583F8945002702E480C609B\n:103760002E4D48608C600D24CD60FF200A618A6177\n:1037700083F8C04001219F2483F8880083F88000EB\n:1037800083F8982083F88C0083F8844083F89410A1\n:1037900005B0BDE8F08F224A0F201070BEE73F2F22\n:1037A000A7D890E607F07F07042F3FF6E8AE000C9D\n:1037B0007FF4E5AE054A12F8273023F0020302F841\n:1037C0002730002213464FE6440FFF1FC02007405A\n:1037D000140EFF1FC00FFF1FBC0FFF1F980FFF1F0E\n:1037E000840FFF1F940FFF1F9C0FFF1F4C0FFF1F25\n:1037F0005C0FFF1FA40FFF1F002007403E0FFF1F9D\n:10380000B30FFF1FB40FFF1F3D0FFF1F3C0FFF1F24\n:103810000000FF1F88004000BC0EFF1FFC0EFF1FB2\n:10382000990FFF1F740FFF1F484B49491B780B70FE\n:103830000B4619E6464A00231380454B022213E645\n:103840004FF001032370434BB34204F101047FF4B2\n:10385000CAAE414E039CDFF81481404F0023337001\n:10386000042518F8013B3E4AAB541B0725D445F00C\n:10387000020145F0030204350023142D49F83130CC\n:1038800049F83230EDD1374F25783A7842F00200CE\n:1038900009EBC00C85F00106CCF80430002D4DD1A9\n:1038A000882382F0010226703A7049F830300123F3\n:1038B0008AF894302BE52570C5E700F0BBF80028A6\n:1038C00032D009EBC5030830586049F8357000F074\n:1038D000B1F808B345F0010309EBC30208305060AA\n:1038E00049F833B0C3E7204A5368002B3FF447AE92\n:1038F000000CBFB204E013690C32002B3FF43FAE62\n:1039000011888142F7D15188B942F4D1000A0328C5\n:103910000CBF1A781289A7E533780133337045F06C\n:10392000010349F83300A2E7337849F83500013341\n:103930003370CCE7064B022296E500BE2670C82302\n:1039400082F001063E7049F83030BCE5980FFF1F49\n:10395000440FFF1F5C0FFF1FA40FFF1F88004000D4\n:10396000C02007403C0FFF1F944F0000E84F0000AD\n:1039700010B500F097FB00231E4A194642F8331099\n:1039800002EBC3000133142B4160F7D11A481B4CE2\n:10399000436B43F480234363D4F80008184B40F092\n:1039A0004070C4F80008C2F3072CC2F30744120E9B\n:1039B00083F89CC083F8B04083F8B420114AFF20FC\n:1039C0004FF0010C83F8800083F88800187483F8A6\n:1039D00094C011700C4983F884C0702081F83500C0\n:1039E0004FF0E0214FF400101023C1F804011372CE\n:1039F00010BD00BF0000FF1F0080044000D0004049\n:103A0000002007400021074000E400E000F0F6B885\n:103A100000F07CB800F056B800F090B800F0C0B9E3\n:103A200000F09AB90846114600F004B9084600F0C3\n:103A300085B900BF72B60D490B68B3FA83F00B2845\n:103A400010DC4FF00042C24023EA02030B6062B672\n:103A5000074A00EBC000C10002EBC0000023535036\n:103A60004360704762B60020704700BF0008FF1F28\n:103A70009803FF1F0E4BC31AB3F5587F10D20D4A9F\n:103A8000127872B972B60C4A0C49A2FB032308687B\n:103A90004FF000421B0922FA03F303430B6062B6A6\n:103AA0007047074A1278002AECD0FFF721BB00BF0D\n:103AB0009803FF1FA40FFF1F398EE3380008FF1F74\n:103AC000980FFF1F38B50F4C206878B143880288E3\n:103AD000C11801339A420D7A02D94380284638BD75\n:103AE000FFF7C8FF00232360284638BD064B1B782C\n:103AF0002BB10320FFF7C6FA20600028E6D14FF073\n:103B0000FF35EBE7A80FFF1F980FFF1F10B5094CFB\n:103B1000206818B143881844007A10BD064B1B7802\n:103B20002BB10320FFF7AEFA20600028F2D14FF04E\n:103B3000FF3010BDA80FFF1F980FFF1F084B094A49\n:103B40001B6810B594881BB11A885B88D31A1C4473\n:103B50000CB1204610BD00F073F9204610BD00BF27\n:103B6000A80FFF1F9C0FFF1F2DE9F84F0D460029DE\n:103B70003ED04FF00008DFF880901E4E0746C24648\n:103B800099F80030E3B1346814B322886388A2EB5B\n:103B9000030BAB4528BFAB4604F1080138465A4633\n:103BA0001944FEF7DFFA638822885B449BB29A428D\n:103BB00063805F44D844A5EB0B0511D9002DDFD1FC\n:103BC0004046BDE8F88F0288002ADFD1FFF752FF98\n:103BD0000320FFF757FA044630600028F3D1EFE7DF\n:103BE0002046FFF747FFC6F800A0002DC8D1E7E741\n:103BF0000846E6E7A80FFF1F980FFF1F0B4B1B7827\n:103C00009BB110B50A4C206848B1FFF733FF002381\n:103C100003202360FFF736FA30B1FFF72BFF0320B4\n:103C2000FFF730FA0028F8D110BD7047980FFF1F3A\n:103C3000A80FFF1F2DE9F04FDFF8F49083B00122A9\n:103C400089F80020019179B3374FDFF8E880019DB2\n:103C5000364EDFF8E4A083463868A8B3B0F802E037\n:103C6000CEF1400CAC4528BFAC460EEB0C04002254\n:103C7000A4B23270A5EB0C05448000F10802BCF13F\n:103C8000000F0AD00EF1FF3E7244DC441BF8014BDA\n:103C900002F8014FDC45F9D144883F2C0BD80522AE\n:103CA0008AF80020002DD7D10198002389F8003030\n:103CB00003B0BDE8F08F4022028001460420FFF7E8\n:103CC00059FA00223A60EAE798F8002022B34DF250\n:103CD000E90408E0013C18D03278B2B900F0B0F83D\n:103CE00098F80020C2B10420FFF7ECF90728F1D8BA\n:103CF0004FF0010389F80030FFF79CFE3860002880\n:103D0000ACD1013C89F80000E6D101234FF0FF302F\n:103D1000337003B0BDE8F08F00234FF0FF3089F817\n:103D2000003003B0BDE8F08FB00FFF1FAC0FFF1FD6\n:103D3000AD0FFF1F980FFF1FC40FFF1F00B583B00B\n:103D4000034601210DF107008DF80730FFF772FFE0\n:103D500003B05DF804FB00BF38B50E4D0E4C28686B\n:103D60000123237028B140880023C0F14000237054\n:103D700038BD0A4B1B7813B90020207038BD0420D1\n:103D8000FFF7A0F90728F7D8FFF754FE28600028AE\n:103D9000E9D1F1E7B00FFF1FAD0FFF1F980FFF1F15\n:103DA000F8B5114B1B788BB1104E114D34680127BB\n:103DB0002F7064B10F4B00271F706388238021464A\n:103DC0000420FFF7D7F9376000232B70F8BDFFF709\n:103DD00031FE084B014620B104201C70FFF7CAF9E0\n:103DE000F2E71F70F0E700BF980FFF1FB00FFF1F33\n:103DF000AD0FFF1FC40FFF1F38B50E4B1B7853B913\n:103E00000D4C216841B103F0FF054B880B80042065\n:103E1000FFF7B0F9256038BDFFF70CFE014620B171\n:103E2000BDE838400420FFF7A5B9044B01221A7001\n:103E300038BD00BFAD0FFF1FB00FFF1FC40FFF1F26\n:103E40002DE9F843324E337863B1324F3A784AB9AC\n:103E50000122D9073A7043D49A0726D400225B077F\n:103E60003A7001D4BDE8F8832B4B1A68002AF9D0C8\n:103E7000EFF30582002AF5D1EFF3108572B61868CA\n:103E800000283AD0254C2178002936D142691A60A1\n:103E900001232370002A37D0916105B962B600254D\n:103EA0008368457798472570DCE7DFF87C8098F8D1\n:103EB0000020002AD2D00025DFF870902B4659F858\n:103EC0002340236820461B690135984708B12369C0\n:103ED000984798F80020EBB29A42F0D83378BDE7C3\n:103EE000FFF72CFE68B90E4B1B780BB93378B3E79C\n:103EF000337803F0FE033370AEE7002DB2D162B623\n:103F0000B0E700F0CDF8EEE7064B1A60C5E700BF5A\n:103F10000408FF1FC50FFF1FC80FFF1FD40FFF1F8F\n:103F2000904F0000D80FFF1FF40FFF1FDC0FFF1F83\n:103F300070B5EFF3108272B60C4C206880B10C4E55\n:103F400000254369236073B19D6102B962B683683D\n:103F500045779847EFF3108272B620680028F0D1B9\n:103F600002B962B670BD3360EFE700BFD00FFF1F2C\n:103F7000CC0FFF1FFFF7DCBF024A13680133136049\n:103F8000704700BF140EFF1F70B4104E104D3478F0\n:103F9000D4B1621ED2B2291D2B4601EB820101E091\n:103FA0008B4205D053F8042B8242F9D170BC704784\n:103FB000631CDBB2074A3370137845F8240043F0E2\n:103FC0000203137070BC70470123F3E7F40FFF1F67\n:103FD000DC0FFF1F0408FF1F2A4B2B4A6020E12142\n:103FE0001870597013782948082B34D00A2B20D028\n:103FF0000C2B274B0CBF35215D2112228160C26042\n:104000009960DA60234B21491B78214ACBB1012307\n:104010000B621362204B1D491B781D4A012B13D9DB\n:10402000042B1BD884234B6253621C4B01221A7051\n:104030007047174B392113228160C2609960DA60A2\n:10404000E0E70B621362E5E780234B625362134B98\n:1040500001221A7070470E4B2121ECE7082B06D87D\n:1040600085234B6253620D4B01221A707047102B4F\n:1040700094BF862387234B625362084B01221A7038\n:10408000704700BF004007400508FF1F00B0034015\n:1040900000B00B40F50FFF1F0608FF1FF60FFF1FB4\n:1040A000704700BF10B584B072B6164A1649516009\n:1040B000702080231070137013781B06FCD5D06815\n:1040C00062B6124B124C984238BF00EB800001A937\n:1040D00038BF40000A22FEF783F901A920460023D9\n:1040E00011F8012B01333AB10A2B20F8022FF7D136\n:1040F0001623237004B010BD5B00DBB2237004B044\n:1041000010BD00BF000002400000074180969800EB\n:104110009408FF1F024B0146186800F00BB800BF5F\n:10412000E00DFF1F024B0146186800F037BC00BFCE\n:10413000E00DFF1F2DE9F04F01F10B06162E83B0A5\n:10414000044624D8102900F2BA8000F0A3FA102601\n:1041500018220220B54F3A44A2F1080153688B425D\n:1041600000F0BA805A68D96822F003021A449D68A8\n:10417000E9608D60516841F001012046516003F112\n:10418000080500F08DFA284603B0BDE8F08F36F040\n:10419000070600F19480B14200F2918000F07AFAB3\n:1041A000B6F5FC7FC0F09A81730A00F08F80042B73\n:1041B00000F26F81B30903F1390003F1380CC30039\n:1041C0009A4F3B44A3F108055B689D4206D10CE081\n:1041D000002980F22781DB689D4206D05A6822F0D0\n:1041E0000302911B0F29F3DD60463D69DFF850C2E1\n:1041F00065457CD06A6822F00302931B0F2B00F305\n:104200007B81002BC7E904CC80F26C81B2F5007F82\n:1042100080F01A81D308796801334FEA521E0122D7\n:1042200002FA0EF20A4357F833E0C5F808E007EB4C\n:10423000C3010839E9607A6047F83350CEF80C5072\n:10424000831001219940914257D8114206D120F0A4\n:1042500003004900114200F10400FAD007EBC00945\n:104260004D468646D5F80C80454508D11DE1002B0A\n:1042700080F22481D8F80C80454500F01681D8F8EA\n:10428000042022F00302931B0F2BF0DD2046D8E917\n:10429000025408EB060146F00106C8F80460EC6021\n:1042A000A56043F00104C7E90411C1E902CC4C60E8\n:1042B00048F8023000F0F4F908F1080502E00C2398\n:1042C00023600025284603B0BDE8F08F4FF400734B\n:1042D00040204FF03F0C73E7D3689A4208BF02308A\n:1042E0007FF440AF3D69DFF858C1654582D17A68F7\n:1042F0008310012199409142A7D9BD686B6823F0D2\n:1043000003094E4503D8A9EB06030F2B7ADCDFF82F\n:1043100034B1474BDBF800201B680132334405EB16\n:10432000090A00F0338103F580530F3323F47F68CB\n:1043300028F00F084146204600F00AFA411C0246C8\n:1043400000F0F380824500F2EE803A4B1968414458\n:104350001960084600F04E81DBF80010019301312E\n:104360001BBFA2EB0A010918CBF80020196012F05C\n:10437000070B00F01781CBF108010A44CBF58051FF\n:1043800090440831A1EB0801C1F30B0A51462046C5\n:10439000009200F0DDF9421CDDE9002300F04F81BE\n:1043A000801A00EB0A081968BA6048F0010051440D\n:1043B000BD425060196000F02981B9F10F0F40F241\n:1043C00027816868A9F10C0C2CF0070C00F00100A3\n:1043D00040EA0C0068604FF0050E05EB0C00BCF1E4\n:1043E0000F0FC0E901EE00F2328150681546124B02\n:1043F0001A688A4238BF1960104B1A688A4238BF5F\n:10440000196094E0AA1943F0010346F001066E60BA\n:104410002046BA60536000F043F90835284603B0DF\n:10442000BDE8F08FD9681A44A1E600BFAC08FF1FB1\n:104430002810FF1FF80FFF1F2010FF1F2410FF1F61\n:10444000B408FF1FB40CFF1FB2F5206F4FEA5223D0\n:1044500063D3142B00F2B78003F15C01C9005B3316\n:1044600007EB010E7958AEF1080E8E4500F09180F1\n:104470004B6823F00303934202D989688E45F7D134\n:10448000D1F80CE07A68C5E9021ECEF80850CD607C\n:10449000D6E6142B59D9542B00F29D80330B03F12F\n:1044A0006F0003F16E0CC3008AE60EF1010E1EF0E0\n:1044B000030F05F108057FF4D5AE51E042444546AF\n:1044C0005368D8F80C1043F00103536055F8083FC7\n:1044D0002046D9608B6000F0E3F8F3E6F00806F1BF\n:1044E000080237E62A442046536843F0010353602C\n:1044F000083500F0D5F8E5E6A919204646F0010692\n:1045000043F001046E60C7E90411C1E902CC4C60BC\n:10451000AB5000F0C5F80835D4E6930903F1390132\n:10452000C90038339CE7BD425FD0BD68686820F0A1\n:1045300003084645A8EB060302D80F2B3FF762AFEE\n:10454000204600F0ADF80025BCE603F15C0003F165\n:104550005B0CC30034E659F808394B4540F09680AF\n:1045600010F0030F00F1FF30F5D17B6823EA01035F\n:104570007B60490099423FF6C0AE19B9BDE64900DB\n:104580000EF1040E1942FAD0704667E603F11008E6\n:10459000D0E69A104FF001087B6808FA02F21A433D\n:1045A0007A6070E702EB08014942C1F30B0A5146F9\n:1045B0002046009200F0CCF8431CDDE900237FF494\n:1045C000EFAEDA46EFE6542B25D8130B03F16F015B\n:1045D000C9006E3344E7B3F5AA7F25D8F30B03F186\n:1045E000780003F1770CC300EAE5294B18684044D2\n:1045F0001860B1E6CAF30B0CBCF1000F7FF4ACAE4F\n:10460000BD68C84448F001006860F0E61546EEE673\n:104610000123536094E7B3F5AA7F23D8D30B03F1AA\n:104620007801C90077331BE740F25452934223D8F4\n:10463000B30C03F17D0003F17C0CC300C0E5ABF1CA\n:10464000080BD844A8EB02084FF0000AABE605F1CE\n:1046500008012046009300F0A1F9BD68009B68683E\n:104660001968C4E640F254518B420BD8930C03F105\n:104670007D01C9007C33F3E64FF47E737F204FF059\n:104680007E0C9DE54FF47E717E23E9E67B6870E742\n:10469000F80FFF1F014800F097B800BF6C11FF1F13\n:1046A000014800F093B800BF6C11FF1F830730B5BD\n:1046B00048D0541E002A3FD0CAB2034601E0013C54\n:1046C0003AD303F8012B9D07F9D1032C2DD9CDB294\n:1046D00045EA05250F2C45EA054536D9A4F1100217\n:1046E00022F00F0C03F1200EE6444FEA121C03F1F6\n:1046F000100242E9045542E9025510327245F8D1E0\n:104700000CF1010214F00C0F03EB021204F00F0C79\n:1047100013D0ACF1040323F003030433134442F831\n:10472000045B9342FBD10CF003042CB1C9B21C44CE\n:1047300003F8011B9C42FBD130BD64461346002C9C\n:10474000F4D1F9E703461446BFE71A46A446E0E76A\n:1047500038B5074D0022044608462A60FDF704FEDE\n:10476000431C00D038BD2B68002BFBD0236038BD24\n:104770006411FF1F014B1868704700BFE00DFF1F59\n:1047800070B50D4E0D4D761BB61006D0002455F8B1\n:10479000043B01349847A642F9D1094E094D761BD6\n:1047A00000F024FCB61006D0002455F8043B013478\n:1047B0009847A642F9D170BDF84F0000F84F0000AD\n:1047C00000500000F84F0000704700BF704700BF66\n:1047D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9\n:1047E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9\n:1047F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9\n:1048000090F800F06DE9024520F007016FF0000C10\n:1048100010F0070491F820F040F049804FF00004B8\n:104820006FF00700D1E9002391F840F000F1080093\n:1048300082FA4CF2A4FA8CF283FA4CF3A2FA8CF3CB\n:104840004BBBD1E9022382FA4CF200F10800A4FA32\n:104850008CF283FA4CF3A2FA8CF3E3B9D1E9042386\n:1048600082FA4CF200F10800A4FA8CF283FA4CF3BD\n:10487000A2FA8CF37BB9D1E9062301F1200182FA77\n:104880004CF200F10800A4FA8CF283FA4CF3A2FA7D\n:104890008CF3002BC6D0002A04BF04301A4612BA8B\n:1048A000B2FA82F2FDE8024500EBD2007047D1E98E\n:1048B000002304F00305C4F100004FEAC50514F01D\n:1048C000040F91F840F00CFA05F562EA05021CBFEE\n:1048D00063EA050362464FF00004A9E7024B13B1F7\n:1048E000024800F005B8704700000000A94B000026\n:1048F000002301461A46184600F06AB9F8B5244F5D\n:104900000C460646FFF7C6FEBB685D68C4F57E61CF\n:104910000F3125F003054B1923F47F6323F00F03B8\n:10492000A3F58054B4F5805F07DB00213046FFF724\n:104930000FFFBB682B44984204D03046FFF7B0FE0F\n:104940000020F8BD61423046FFF702FF01300DD074\n:10495000104ABB682D1B45F001055D6013683046A9\n:104960001B1B1360FFF79CFE0120F8BD00213046A1\n:10497000FFF7EEFEBA68831A0F2BDEDD43F001036A\n:104980005360054B03491B68C01A0860D5E700BF98\n:10499000AC08FF1FF80FFF1FB40CFF1F002961D0E8\n:1049A000F8B50C460646FFF775FE54F8042C7B4F0D\n:1049B000A4F1080522F0010105EB010CB868DCF850\n:1049C0000430604523F0030300F08B80D207CCF85D\n:1049D000043032D454F8082CAD1A1144AA6807F1F7\n:1049E000080082426AD00CEB0304D4F804E0EC68BF\n:1049F000D4601EF0010FA26000F0978041F0010327\n:104A00006B60CCF80010B1F5007F35D27868CB0828\n:104A10000122490901338A40024357F833107A6072\n:104A200007EBC302083AC5E9021247F83350CD60DC\n:104A30003046BDE8F840FFF733BE0CEB0302526886\n:104A4000D00710D4194407F10800DCF8083083427D\n:104A500073D0DCF80C20DA60936041F001036B60E6\n:104A60006950D0E7704741F00103B1F5007F44F889\n:104A7000043CCCF80010C9D3B1F5206F4FEA5123A4\n:104A800048D28B0903F1390003F13802C300F8184A\n:104A9000FB580838984259D05A6822F003028A42DB\n:104AA00002D99B689842F7D1D868C5E90230856081\n:104AB000DD603046BDE8F840FFF7F2BD0CEB0302C5\n:104AC0005268D20763D40B44DCE90212CA609160D9\n:104AD00043F001026A603046EB50BDE8F840FFF752\n:104AE000DFBD0B44D10707D454F8082CAD1A13448A\n:104AF000D5E90212CA60916043F001026A60284A57\n:104B0000BD6012689A4293D8264B30461968FFF769\n:104B1000F5FE8DE7142B0AD9542B1FD80B0B03F18C\n:104B20006F0003F16E02C300B1E719448DE703F192\n:104B30005C0003F15B02C300A9E741F00103C7E990\n:104B40000455C5E902006B60695071E779689210FD\n:104B5000012404FA02F20A437A60A6E7B3F5AA7FB9\n:104B600006D8CB0B03F1780003F17702C3008EE780\n:104B700040F25452934206D88B0C03F17D0003F1AE\n:104B80007C02C30083E74FF47E737E227FE741F00F\n:104B900001036B60CCF800104AE700BFAC08FF1FB0\n:104BA000B80CFF1F2810FF1F38B5074D074C2C1BF2\n:104BB000A41005D0013C55F8043D9847002CF9D1CC\n:104BC000BDE8384000F01CBA000000000000000002\n:104BD0002DE9F047DFF87CA00646DAF80000984699\n:104BE0000F469146FFF7F0FD184B1C6824B365682B\n:104BF0001F2D24DC5EB96B1C0235DAF800006360FF\n:104C000044F82570FFF7E2FD0020BDE8F08704EBD3\n:104C100085010123C1F88890D4F88821AB401A435C\n:104C2000022EC4F88821C1F80881E4D1D4F88C217F\n:104C30001A43C4F88C21DEE7054C1C60D7E7DAF88C\n:104C40000000FFF7C3FD4FF0FF30DEE77011FF1FDC\n:104C50007411FF1FE40DFF1F7701080F010100FF12\n:104C600077E2FE0F010300FF77E2FE0F010800FF6D\n:104C700077E2FE0F010900FF77E2FE0F010400FF5B\n:104C80006500000000000000690000000000000056\n:104C90007700FC0F0101000077E2FE0F0100000029\n:104CA0007703080F010000007704080F0200FC00E2\n:104CB0007700080F0800000000000000040000005A\n:104CC0007700080F080300000000FC02000000004D\n:104CD0007700080F08040000000000010000000039\n:104CE0007700FC0F000000007700FD0F00000000BF\n:104CF0000000FC0002000000750000000000FFFF43\n:104D00000000000000000000C11F0000E51F0000BF\n:104D100075200000712000006D2000006920000057\n:104D200065200000891F0000452000004120000090\n:104D30003920000031200000292000001920000047\n:104D40000920000005200000FD1F0000F51F0000E5\n:104D5000691F0000711F0000791F0000811F000003\n:104D6000CD1F0000B51F00004008FE4340A00440D6\n:104D70004408FE4344A004400018FE4300C0044021\n:104D80003000FE43309004403400FE433490044031\n:104D90001C18FE431CC004401018FE4310C0044001\n:104DA0000818FE4308C004400C18FE430CC0044021\n:104DB0000C10FE430CB004401010FE4310B0044031\n:104DC0001810FE4318B004401C10FE431CB00440F1\n:104DD0001410FE4314B004400418FE4304C0044001\n:104DE0000010FE4300B004400008FE4300A0044051\n:104DF0000408FE4304A004400C08FE430CA0044039\n:104E00000808FE4308A004401418FE4314C00440E0\n:104E10001818FE4318C004400410FE4304B00440B8\n:104E20000810FE4308B004406820FE4368D00440E8\n:104E30001400FE43149004403800FE4338900440B0\n:104E40003C00FE433C9004404000FE434090044040\n:104E50004808FE4348A004404C08FE434CA00440D0\n:104E60002808FE4328A004402C08FE432CA0044040\n:104E70006020FE4360D004406420FE4364D00440C0\n:104E80002010FE4320B004402410FE4324B0044010\n:104E90002810FE4328B004402C10FE432CB00440E0\n:104EA0004400FE43449004407000FE437090044070\n:104EB0007400FE43749004406800FE436890044010\n:104EC0005008FE4350A004405808FE4358A0044038\n:104ED0005C08FE435CA004405408FE4354A0044018\n:104EE0002018FE4320C004402418FE4324C0044080\n:104EF0001008FE4310A004401408FE4314A0044010\n:104F00003818FE4338C004403418FE4334C004400F\n:104F10003018FE4330C004403C18FE433CC00440FF\n:104F20002C18FE432CC004402820FE4328D0044007\n:104F30002C20FE432CD004400020FE4300D004402F\n:104F40000420FE4304D004400820FE4308D004405F\n:104F50000C20FE430CD004401020FE4310D004402F\n:104F60001420FE4314D004400000000000000000A4\n:104F70002D3A0000253A0000213A00001D3A0000B9\n:104F8000193A0000153A0000113A00000D3A0000ED\n:104F900000FFFFFF000100004C08FF1F120000008F\n:104FA000000200000808FF1F43000000000300008B\n:104FB0006008FF1F00000000010309046408FF1FD0\n:104FC00000000000020309047C08FF1F000000002D\n:104FD000030309049408FF1F000000000000000004\n:104FE000000000000000000000151915F8B500BF12\n:104FF000F8BC08BC9E467047DD4800003504000040\n:04500000F8B500BF40\n:10500400E00704EC00FB0F0000FBC013BFE607C081\n:10501400BFEC07C0BFEE07CFEB07ECF5EA07FCB225\n:10502400FF0E72FCB2FF0E76FCB2FF0E77FCB2FFED\n:105034000E9EFDFCB2FF0E73624C69DD6D4C77DD94\n:105044001D4C72DD294C65DD324C75DD62FCA1FF1F\n:105054000ED5EA07DFC8AFE60712ECEB070FFCB288\n:10506400FF0E119BA793DFF6FE4C00EEE3FF118BBE\n:10507400FCA1FF0EA793DFF6EED6FF61FFFCF8FF5D\n:105084000E8F02084C0FDD0B624CFFDF11FCC408CD\n:105094000FEFF5624CFFDF06FC04F00EEFF5C36181\n:1050A400CFC262FCA1FF0EEEA7FFE5EA07EF03E51E\n:1050B400EA07FE0200EF9A5100FCA1FF0ED7FFFFA2\n:1050C400FFFFFFFFFFFFFFFFFFFFFF00084D000092\n:1050D40000000000E8030000000000008130000030\n:1050E4000413FF1F280000001A0000004000000005\n:1050F4004000000001010000704F000000000000AB\n:10510400E803000000000000FFFFFFFF010A0400A5\n:1051140009024300020100C0320904000001020236\n:1051240001000524001001052401010104240206E4\n:10513400052406000107058203100040090401004C\n:10514400020A00000007050302400000070584026C\n:10515400400000001201100102000040C016830448\n:105164007602010203010000040309041803540039\n:10517400650065006E0073007900640075006900C5\n:105184006E006F00160355005300420020005300C8\n:1051940065007200690061006C0000000C030000EF\n:1051A40000000000000000000000000000000000FB\n:1051B400000000000000000000000000AC08FF1F19\n:1051C400AC08FF1FB408FF1FB408FF1FBC08FF1F73\n:1051D400BC08FF1FC408FF1FC408FF1FCC08FF1F23\n:1051E400CC08FF1FD408FF1FD408FF1FDC08FF1FD3\n:1051F400DC08FF1FE408FF1FE408FF1FEC08FF1F83\n:10520400EC08FF1FF408FF1FF408FF1FFC08FF1F32\n:10521400FC08FF1F0409FF1F0409FF1F0C09FF1FDF\n:105224000C09FF1F1409FF1F1409FF1F1C09FF1F8E\n:105234001C09FF1F2409FF1F2409FF1F2C09FF1F3E\n:105244002C09FF1F3409FF1F3409FF1F3C09FF1FEE\n:105254003C09FF1F4409FF1F4409FF1F4C09FF1F9E\n:105264004C09FF1F5409FF1F5409FF1F5C09FF1F4E\n:105274005C09FF1F6409FF1F6409FF1F6C09FF1FFE\n:105284006C09FF1F7409FF1F7409FF1F7C09FF1FAE\n:105294007C09FF1F8409FF1F8409FF1F8C09FF1F5E\n:1052A4008C09FF1F9409FF1F9409FF1F9C09FF1F0E\n:1052B4009C09FF1FA409FF1FA409FF1FAC09FF1FBE\n:1052C400AC09FF1FB409FF1FB409FF1FBC09FF1F6E\n:1052D400BC09FF1FC409FF1FC409FF1FCC09FF1F1E\n:1052E400CC09FF1FD409FF1FD409FF1FDC09FF1FCE\n:1052F400DC09FF1FE409FF1FE409FF1FEC09FF1F7E\n:10530400EC09FF1FF409FF1FF409FF1FFC09FF1F2D\n:10531400FC09FF1F040AFF1F040AFF1F0C0AFF1FDA\n:105324000C0AFF1F140AFF1F140AFF1F1C0AFF1F89\n:105334001C0AFF1F240AFF1F240AFF1F2C0AFF1F39\n:105344002C0AFF1F340AFF1F340AFF1F3C0AFF1FE9\n:105354003C0AFF1F440AFF1F440AFF1F4C0AFF1F99\n:105364004C0AFF1F540AFF1F540AFF1F5C0AFF1F49\n:105374005C0AFF1F640AFF1F640AFF1F6C0AFF1FF9\n:105384006C0AFF1F740AFF1F740AFF1F7C0AFF1FA9\n:105394007C0AFF1F840AFF1F840AFF1F8C0AFF1F59\n:1053A4008C0AFF1F940AFF1F940AFF1F9C0AFF1F09\n:1053B4009C0AFF1FA40AFF1FA40AFF1FAC0AFF1FB9\n:1053C400AC0AFF1FB40AFF1FB40AFF1FBC0AFF1F69\n:1053D400BC0AFF1FC40AFF1FC40AFF1FCC0AFF1F19\n:1053E400CC0AFF1FD40AFF1FD40AFF1FDC0AFF1FC9\n:1053F400DC0AFF1FE40AFF1FE40AFF1FEC0AFF1F79\n:10540400EC0AFF1FF40AFF1FF40AFF1FFC0AFF1F28\n:10541400FC0AFF1F040BFF1F040BFF1F0C0BFF1FD5\n:105424000C0BFF1F140BFF1F140BFF1F1C0BFF1F84\n:105434001C0BFF1F240BFF1F240BFF1F2C0BFF1F34\n:105444002C0BFF1F340BFF1F340BFF1F3C0BFF1FE4\n:105454003C0BFF1F440BFF1F440BFF1F4C0BFF1F94\n:105464004C0BFF1F540BFF1F540BFF1F5C0BFF1F44\n:105474005C0BFF1F640BFF1F640BFF1F6C0BFF1FF4\n:105484006C0BFF1F740BFF1F740BFF1F7C0BFF1FA4\n:105494007C0BFF1F840BFF1F840BFF1F8C0BFF1F54\n:1054A4008C0BFF1F940BFF1F940BFF1F9C0BFF1F04\n:1054B4009C0BFF1FA40BFF1FA40BFF1FAC0BFF1FB4\n:1054C400AC0BFF1FB40BFF1FB40BFF1FBC0BFF1F64\n:1054D400BC0BFF1FC40BFF1FC40BFF1FCC0BFF1F14\n:1054E400CC0BFF1FD40BFF1FD40BFF1FDC0BFF1FC4\n:1054F400DC0BFF1FE40BFF1FE40BFF1FEC0BFF1F74\n:10550400EC0BFF1FF40BFF1FF40BFF1FFC0BFF1F23\n:10551400FC0BFF1F040CFF1F040CFF1F0C0CFF1FD0\n:105524000C0CFF1F140CFF1F140CFF1F1C0CFF1F7F\n:105534001C0CFF1F240CFF1F240CFF1F2C0CFF1F2F\n:105544002C0CFF1F340CFF1F340CFF1F3C0CFF1FDF\n:105554003C0CFF1F440CFF1F440CFF1F4C0CFF1F8F\n:105564004C0CFF1F540CFF1F540CFF1F5C0CFF1F3F\n:105574005C0CFF1F640CFF1F640CFF1F6C0CFF1FEF\n:105584006C0CFF1F740CFF1F740CFF1F7C0CFF1F9F\n:105594007C0CFF1F840CFF1F840CFF1F8C0CFF1F4F\n:1055A4008C0CFF1F940CFF1F940CFF1F9C0CFF1FFF\n:1055B4009C0CFF1FA40CFF1FA40CFF1FFFFFFFFF89\n:1055C4000000020000000000000000002C10FF1F7B\n:1055D4009410FF1FFC10FF1F0000000000000000DB\n:1055E40000000000000000000000000000000000B7\n:1055F40000000000000000000000000000000000A7\n:105604000000000000000000000000000000000096\n:105614000000000000000000000000000000000086\n:105624000000000000000000000000000000000076\n:105634000000000000000000000000000000000066\n:105644000000000000000000000000000000000056\n:105654000000000000000000000000000000000046\n:1056640001000000000000000E33CDAB34126DE6E3\n:10567400ECDE05000B00000000000000000000004C\n:105684000000000000000000000000000000000016\n:105694000000000000000000000000000000000006\n:1056A40000000000000000000000000000000000F6\n:1056B40000000000000000000000000000000000E6\n:1056C40000000000000000000000000000000000D6\n:1056D40000000000000000000000000000000000C6\n:1056E4000000000000000000C00CFF1F6811FF1F35\n:00000001FF\n"
  },
  {
    "path": "assets/hw/syscon_flasher/syscon_flasher_v2.05_teensy_3.6.hex",
    "content": ":1000000000000320D1010000512300000D23000057\n:100010000D2300000D2300000D2300000D23000020\n:100020000D2300000D2300000D23000051230000CC\n:10003000512300000D230000194000001D40000066\n:1000400051230000512300005123000051230000E0\n:1000500051230000512300005123000051230000D0\n:1000600051230000512300005123000051230000C0\n:1000700051230000512300005123000051230000B0\n:1000800051230000512300005123000051230000A0\n:100090005123000051230000512300005123000090\n:1000A0005123000051230000512300005123000080\n:1000B000512300005123000051230000352F000080\n:1000C0005123000051230000512300005123000060\n:1000D0005123000051230000512300005123000050\n:1000E0005123000051230000512300005123000040\n:1000F0005123000051230000512300005123000030\n:10010000512300005123000051230000512300001F\n:10011000512300008D3200005123000051230000C4\n:1001200051230000512300005123000051230000FF\n:1001300051230000512300005123000051230000EF\n:1001400051230000512300005123000051230000DF\n:1001500051230000512300005123000051230000CF\n:1001600051230000512300005123000051230000BF\n:1001700051230000512300005123000051230000AF\n:10018000512300005123000051230000512300009F\n:10019000512300005123000051230000512300008F\n:1001A000512300005123000051230000512300007F\n:1001B000512300005123000051230000512300006F\n:1001C000512300005123000051230000512300005F\n:1001D0005F4B4CF2205210B5DA814DF62812DA81CD\n:1001E00000BF00BF02F0B8F85A4B4FF030621A63FC\n:1001F000594A9A63594ADA634FF0E0234FF4700288\n:10020000C3F8882D03F5E823554A1A60554B9A78B0\n:10021000110703D59A7842F008029A70524B53485E\n:10022000AA221A70524BDA1C121AC11E22F00302C3\n:10023000994288BF00224F4901F094FF4E4B4F482E\n:10024000DA1C121AC11E22F00302994288BF002252\n:10025000002104F081FA4A494A484FF4E87201F05B\n:1002600081FF494B494A802103F8011B9342FBD18E\n:100270004FF0E023434AC3F8082D454B8A221A70F9\n:10028000A3F5805324225A70A0221A709A799207FB\n:10029000FCD59A79D406FCD43E4A937903F00C033A\n:1002A000082BFAD1304B60225A70DA78802AFCD1C0\n:1002B000384B01221A715D225A719A799006FCD549\n:1002C0009A795106FCD5234A33495164002191643F\n:1002D000202119702F498B7903F00C030C2BFAD1D4\n:1002E0002E4B53602E4A136913F4807303D153616C\n:1002F0004FF4A85313614FF0E0232A4A5A610022B9\n:100300009A6107221A61284AC3F8202D62B602F0CA\n:10031000CDF8234B5B69DA0705D5244802F0BAF81B\n:10032000234B244ADA61244B1B785B0609D5204C09\n:10033000204BE2699A4204D11C4802F0ABF800233A\n:10034000E36102F00FF804F071FA01F003FFFEE739\n:100350000020054000800440823F04000100002B83\n:100360000300008500D0074000E007403007FF1F72\n:10037000200EFF1F845000003C13FF1F200EFF1FA4\n:10038000000000000002FF1F00E400E064E400E061\n:10039000005006400040064000000602C010070062\n:1003A00000D003401FBF0200000020200210896817\n:1003B00000E00340A5C3945A00F00740FFFFFFFF91\n:1003C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D\n:1003D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D\n:1003E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D\n:1003F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D\n:10040000FFFFFFFFFFFFFFFFFFFFFFFFDEF9FFFF23\n:100410000548064B1B1AD90F01EBA301491002D066\n:10042000034B03B118477047200EFF1F200EFF1F1C\n:100430000000000008B5054B1BB105490548AFF3A6\n:100440000080BDE80840FFF7E3BF00BF00000000E8\n:10045000200EFF1F8450000070B51A4C0D2082B092\n:10046000012102F09FF8261D652041F2707501E020\n:1004700014F8010F02F004FC2B46013BFDD102F001\n:10048000C9FCB442F4D1013DFDD10F4C00210D2037\n:1004900002F088F823680093009E42F2107505E090\n:1004A00023680193019B9B1BAB4208D802F09EFC82\n:1004B0000028F5DD02F0AEFCC0B202B070BDEF2046\n:1004C00002B070BD004D00004C0EFF1F70B5012141\n:1004D0000D20644C02F066F80D20012102F062F854\n:1004E000261D692041F2707501E014F8010F02F039\n:1004F000C7FB2B46013BFDD102F08CFCB442F4D18A\n:10050000013DFDD100210D2002F04CF802F082FCEB\n:10051000C0B2002840F0A380534C0D20012102F00E\n:1005200041F8661D772041F2707501E014F8010F63\n:1005300002F0A6FB2B46013BFDD102F06BFCB4425E\n:10054000F4D1013DFDD100210D2002F02BF802F085\n:1005500061FCC0B2002840F08280444C0D20012193\n:1005600002F020F8661D772041F2707501E014F862\n:10057000010F02F085FB2B46013BFDD102F04AFC46\n:10058000B442F4D1013DFDD100210D2002F00AF862\n:1005900002F040FCC0B2002861D1354C0D20012191\n:1005A00002F000F8661D772041F2707501E014F842\n:1005B000010F02F065FB2B46013BFDD102F02AFC46\n:1005C000B442F4D1013DFDD100210D2001F0EAFF3C\n:1005D00002F020FCC0B2002841D1264C0D200121A0\n:1005E00001F0E0FFA61D772041F2707501E014F8DC\n:1005F000010F02F045FB2B46013BFDD102F00AFC46\n:10060000B442F4D1013DFDD100210D2001F0CAFF1B\n:1006100002F000FCC0B210BB174C0D20012101F00C\n:10062000C1FF661D772041F2707501E014F8010FDB\n:1006300002F026FB2B46013BFDD102F0EBFBA6426C\n:10064000F4D1013DFDD100210D2001F0ABFF02F0FE\n:10065000E1FBC0B218B9BDE87040FFF7FDBEE02075\n:1006600070BD00BF084D0000104D0000184D000087\n:10067000204D0000284D0000D84C00002DE9F0412D\n:1006800082B0002701AE41F270744FF072083A0A4E\n:100690003B0C80250D2001218DF804508DF8008041\n:1006A0008DF801708DF802208DF803306D4601F051\n:1006B00079FF404601E015F8010F02F0E1FA234608\n:1006C000013BFDD102F0A6FBB542F4D12346013B2C\n:1006D000FDD100210D2001F065FF802502E02346B9\n:1006E000013BFDD102F082FB0028F8D002F092FB22\n:1006F000C0B203F075FB013DF4D18037B7F5002F90\n:10070000C3D1284602B0BDE8F08100BF2DE9F04317\n:100710004F4D89B02B680093009C42F2107605E0A3\n:100720000193019B1B1BB34200F28D8003F056FA2C\n:1007300003282B68F4DD00240393CDE90444039FD0\n:10074000444E0694ADF81C4006E02B680293029BD1\n:10075000B268DB1B934273D204ABC4F104011819D5\n:1007600003F052FA0444032CEFD99DF812009DF8CF\n:1007700013309DF810109DF8112003EB002302EBBD\n:1007800001229BB292B201339A424FEA82274FEA8A\n:10079000832949D20DF115064FF0000841F270741B\n:1007A00072213A0A3B0C80258DF810100D20012192\n:1007B000CDF81480CDF818808DF81450ADF81C8059\n:1007C0008DF811708DF812208DF8133001F0EAFECB\n:1007D00004AD15F8010B02F053FA2346013BFDD19D\n:1007E00002F018FBB542F4D12346013BFDD10021B4\n:1007F0000D2001F0D7FE802502E02346013BFDD10C\n:1008000002F0F4FA0028F8D002F004FBC0B203F0C2\n:10081000E7FA013DF4D18037B945C1D803F0DEF9DC\n:10082000002805DD03F09EF903F0D8F90028F9DC73\n:1008300000210D2001F0B6FE002009B0BDE8F083D4\n:100840000123337391E7EB2009B0BDE8F08300BFCB\n:100850004C0EFF1F2808FF1F2DE9F04F624D89B095\n:100860002B680093009C42F2107605E00193019BF7\n:100870001B1BB34200F2AA8003F0B0F903282B68D7\n:10088000F4DD00240393CDE90444039E574F0694FE\n:10089000ADF81C4007E02B680293029BBA689B1BD3\n:1008A000934280F09D8004ABC4F10401181903F059\n:1008B000ABF90444032CEED99DF812009DF81330D7\n:1008C0009DF810109DF8112003EB002302EB01228C\n:1008D0009BB292B201339A424FEA82264FEA832AB0\n:1008E0006FD2434B434D03F108080D20012101F065\n:1008F00059FE414FC6F3072BC6F30749772041F253\n:10090000707401E017F8010F02F0BAF92346013BB9\n:10091000FDD102F07FFAAF42F4D1013CFDD10021BC\n:100920000D2001F03FFE02F075FA10F0FF0352D1E6\n:100930002F4A059392E8030004908DF8141098E86C\n:100940000300ADF81C3006908DF81C100D2001211D\n:100950008DF816B08DF8179001F024FE04AC0DF15F\n:100960001D0B41F2707914F8010B02F089F94B4626\n:10097000013BFDD102F04EFA5C45F4D14B46013B00\n:10098000FDD100210D2001F00DFE02F043FAC0B2AE\n:1009900008BBFFF761FD0346A0B903F021FAB9F1E6\n:1009A0000109FCD101E003F0DDF803F017F900289C\n:1009B000F9DC00210D2006F5806601F0F3FDB2455B\n:1009C00093D80023184609B0BDE8F08FEB231846F2\n:1009D00009B0BDE8F08FE423184609B0BDE8F08FF8\n:1009E00001233B7368E700BF4C0EFF1F2808FF1F61\n:1009F000304D0000E54C0000E04C00002DE9F04FC8\n:100A0000634D89B02B680093009C42F2107605E09C\n:100A10000193019B1B1BB34200F2AB8003F0DEF895\n:100A200003282B68F4DD00240393CDE90444039EDE\n:100A3000584F0694ADF81C4007E02B680293029BC8\n:100A4000BA689B1B934280F0988004ABC4F1040108\n:100A5000181903F0D9F80444032CEED99DF81200BC\n:100A60009DF813309DF810109DF8112003EB002322\n:100A700002EB01229BB292B201339A424FEA8226E4\n:100A80004FEA832A71D2444B444D03F108080D20EC\n:100A9000012101F087FD424FC6F3072BC6F307493A\n:100AA000772041F2707401E017F8010F02F0E8F8C6\n:100AB0002346013BFDD102F0ADF9AF42F4D1013C38\n:100AC000FDD100210D2001F06DFD02F0A3F910F021\n:100AD000FF0355D1304A059392E8030004908DF846\n:100AE000141098E80300ADF81C3006908DF81C1027\n:100AF0000D2001218DF816B08DF8179001F052FDF0\n:100B000004AC0DF11D0B41F2707914F8010B02F0E9\n:100B1000B7F84B46013BFDD102F07CF9A345F4D177\n:100B2000B9F10109FCD100210D2001F03BFD02F0DB\n:100B300071F9C0B240BBFFF78FFC08B11B2815D17B\n:100B400003F04EF941F27073013BFDD101E003F077\n:100B500009F803F043F80028F9DC00210D2006F520\n:100B6000806601F01FFDB24591D8002009B0BDE8B4\n:100B7000F08FEB2009B0BDE8F08F01233B736DE7E8\n:100B8000E82009B0BDE8F08FE42009B0BDE8F08F9F\n:100B90004C0EFF1F2808FF1F304D0000ED4C0000D9\n:100BA000E84C00002DE9F041584F0D2082B00121A2\n:100BB00001F0F8FC7E1D3C46772041F2707501E0A3\n:100BC00014F8010F02F05CF82B46013BFDD102F056\n:100BD00021F9B442F4D1013DFDD100210D2001F0F5\n:100BE000E1FC02F017F910F0FF0340F08980484C57\n:100BF000ADF804300D2001218DF8063004F10C0809\n:100C000001F0D0FC41F27075772001E014F8010F7B\n:100C100002F036F82B46013BFDD102F0FBF84445CB\n:100C2000F4D1013DFDD100210D2001F0BBFC02F00B\n:100C3000F1F8C0B200285ED1FFF70EFC0446002890\n:100C40005AD102F0E7F85FFA80F88DF8048002F0DC\n:100C5000E1F80121C5B20D208DF8055041F2707404\n:100C600001F0A0FC772001E017F8010F02F008F86E\n:100C70002346013BFDD102F0CDF8B742F4D1013C4F\n:100C8000FDD100210D2001F08DFC02F0C3F8C0B2AF\n:100C9000002835D11F4C0D20012101F083FC04F107\n:100CA0000C07772041F2707601E014F8010F01F093\n:100CB000E7FF3346013BFDD102F0ACF8A742F4D187\n:100CC000013EFDD100210D2001F06CFC02F0A2F8E4\n:100CD000C0B280B9FFF7C0FB044668B902F09AF8C9\n:100CE0000646404603F07CF8284603F079F8F0B257\n:100CF00003F076F800E0E424204602B0BDE8F0817D\n:100D0000E824204602B0BDE8F08100BFF04C0000AE\n:100D1000404D0000504D00002DE9F04FA04CADF2C9\n:100D2000444D00214FF47F7211A8CDE90C110E91B2\n:100D30008DF83C10109103F00FFD23680493049E7E\n:100D400042F2107506E023680593059B9B1BAB429E\n:100D500000F2EE8102F042FF0128F4DD23680993DE\n:100D60000025CDE90C55099E8E4F0E958DF83C500F\n:100D700007E023680893089BBA689B1B934280F0A6\n:100D8000E3810CABC5F10201581902F03DFF0544A7\n:100D9000012DEED99DF83030019301219DF83130BD\n:100DA00002930D2001F0FEFB23680693069FDFF8F7\n:100DB000F481002544F620660EE023680793079B24\n:100DC000DB1BB34200F2BA8102F008FF1FFA80F980\n:100DD000B9F1000F40F0BB81B5F5806FEDD3724FD4\n:100DE0000D20012101F0DEFB3C1D3D46772041F244\n:100DF000707601E015F8010F01F042FF3346013B28\n:100E0000FDD102F007F8A542F4D1013EFDD1002149\n:100E10000D2001F0C7FB0DF13F050DF23F1941F226\n:100E2000707815F8010F01F02BFF4346013BFDD10F\n:100E300001F0F0FF4D45F4D101F0B4FFB8F1010825\n:100E4000FCD101F0E7FFC0B2002840F0A981DFF833\n:100E500064A10D20012101F0A5FB0AF1040556460D\n:100E6000772041F2707801E016F8010F01F008FFD9\n:100E70004346013BFDD101F0CDFFAE42F4D1B8F1C4\n:100E80000108FCD100210D2001F08CFB0DF23F2662\n:100E900041F2707819F8010F01F0F2FE4346013B70\n:100EA000FDD101F0B7FFB145F4D101F07BFFB8F1FE\n:100EB0000108FCD101F0AEFFC0B2002840F07D81F6\n:100EC0003A4B03931E460D20012101F06BFB06F106\n:100ED0000508B146772041F2707601E019F8010F5C\n:100EE00001F0CEFE3346013BFDD101F093FFC14539\n:100EF000F4D1013EFDD100210D2001F053FB01F0A2\n:100F000089FF10F0FF0040F05181019A029B8DF89B\n:100F1000350003EB02239BB29A008DF836209A0924\n:100F20009B0201930CAB02939B46214B8DF837201B\n:100F300093E8030040330C908DF8341093E80300DD\n:100F40000E908DF83C100D2001210DF13D0941F26C\n:100F5000707601F027FB1BF8010B01F091FE334680\n:100F6000013BFDD101F056FFCB45F4D1013EFDD14F\n:100F700000210D2001F016FB01F04CFFC0B200284B\n:100F800040F01481FFF768FA0646002840F0D1804F\n:100F90000D20012101F006FB41F2707677200DE073\n:100FA0004C0EFF1F2808FF1F604D0000F84C00008A\n:100FB000304D0000684D000017F8010F01F060FE91\n:100FC0003346013BFDD101F025FFA742F4D1013E9C\n:100FD000FDD100210D2001F0E5FA0DF23F270DF2C1\n:100FE0003F3641F2707417F8010F01F049FE2346B5\n:100FF000013BFDD101F00EFFB742F4D101F0D2FE6A\n:10100000013CFDD101F006FFC0B2002840F0C880CD\n:101010000D20012101F0C6FA41F27074772001E041\n:101020001AF8010F01F02CFE2346013BFDD101F01F\n:10103000F1FEAA45F4D1013CFDD100210D2001F0C3\n:10104000B1FA0DF23F440DF23F3641F2707516F8D9\n:10105000010F01F015FE2B46013BFDD101F0DAFE38\n:10106000A642F4D101F09EFE013DFDD101F0D2FE79\n:10107000C0B2002840F0A1800D20012101F092FAB9\n:1010800041F27074039D772001E015F8010F01F023\n:10109000F7FD2346013BFDD101F0BCFE4545F4D1EF\n:1010A000013CFDD100210D2001F07CFA01F0B2FEDF\n:1010B00010F0FF007AD1424A8DF8350092E8030023\n:1010C0004032019B8DF834100C9092E8030003F538\n:1010D00000731A0A0E908DF83C101B0C01210D2094\n:1010E0008DF836208DF8373001F05CFA029D41F220\n:1010F000707415F8010B01F0C3FD2346013BFDD1CF\n:1011000001F088FE4D45F4D1013CFDD100210D20B8\n:1011100001F048FA01F07EFEC0B2002846D1FFF788\n:101120009BF9064628B901460D2001F03BFA00E084\n:10113000EB2630460DF2444DBDE8F08FEC263046EC\n:101140000DF2444DBDE8F08F01233B7322E615FA02\n:1011500080F0B0F5806F1CDC1FFA80FB23680B93D6\n:10116000DDF82CA0002608E023680A930A9BD8F833\n:101170000820A3EB0A0393421AD2A81910ABA9EBDB\n:101180000601184402F040FD0644B145ECD85D4626\n:1011900010E6C5F580691FFA89F94FF4806BDDE729\n:1011A000E12630460DF2444DBDE8F08FE626C0E75B\n:1011B000012388F80C305D46FCE5E226B9E700BF64\n:1011C000304D00002DE9F04F994DADF24C4D00210E\n:1011D0004FF47F7213A8CDE90E1110918DF84410D1\n:1011E000129103F0B9FA2B680693069E42F210742E\n:1011F00006E02B680793079B9B1BA34200F2B68275\n:1012000002F0ECFC0128F4DD2B680B930024CDE9FF\n:101210000E440B9E874F10948DF8444007E02B68D6\n:101220000A930A9BBA689B1B934280F0AD820EAB77\n:10123000C4F10201181902F0E7FC0444012CEED9B4\n:101240009DF83830009301210D209DF83990DFF88A\n:10125000E48101F0A7F92B680893089F002444F665\n:1012600020660EE02B680993099BDB1BB34200F25A\n:10127000848202F0B3FC1FFA80FABAF1000F40F04A\n:101280008682B4F5806FEDD36B4C0D20012101F007\n:1012900089F9661D772041F2707501E014F8010F9D\n:1012A00001F0EEFC2B46013BFDD101F0B3FDB44251\n:1012B000F4D1013DFDD100210D2001F073F901F0C1\n:1012C000A9FD10F0FF0040F08C825C4D8DF83D00D0\n:1012D00095E80300009B0E9005F1080709EB032930\n:1012E0008DF83C1097E803001FFA89F3C3F38712C7\n:1012F0009E009B02F6B2019310900EAB8DF8441045\n:101300000D2001218DF83E6000928DF83F20029360\n:101310000DF145049A4641F2707801F043F91AF84C\n:10132000010B01F0ADFC4346013BFDD101F072FD24\n:10133000A245F4D1B8F10108FCD100210D2001F043\n:1013400031F901F067FDC0B2002840F05282FFF78A\n:1013500083F8824600285DD01B2840F00982DFF820\n:10136000E4B00D20012101F01DF90BF1050A7720F1\n:1013700041F2707801E01BF8010F01F081FC434657\n:10138000013BFDD101F046FDD345F4D1B8F1010890\n:10139000FCD100210D2001F005F901F03BFD10F01A\n:1013A000FF0040F026828DF83D0095E803000E9086\n:1013B0008DF83C1097E80300009B10908DF84410C6\n:1013C0000D2001218DF83E608DF83F300DF1380A77\n:1013D00041F2707801F0E6F81AF8010B01F050FCC8\n:1013E0004346013BFDD101F015FDA245F4D1B8F112\n:1013F0000108FCD100210D2001F0D4F801F00AFD14\n:10140000C0B2002840F0F581FFF726F88246002898\n:1014100040F0AE810A4B03931F460D20012101F0DD\n:10142000C1F83B469A460437772041F270780DE0C8\n:101430004C0EFF1F2808FF1FE84C0000304D000035\n:10144000604D0000E04C00001AF8010F01F018FC9C\n:101450004346013BFDD101F0DDFCBA45F4D1B8F1C2\n:101460000108FCD100210D2001F09CF80DF1470B83\n:101470000DF2471841F2707A1BF8010F01F000FCE1\n:101480005346013BFDD101F0C5FCC345F4D101F049\n:1014900089FCBAF1010AFCD101F0BCFCC0B2002801\n:1014A00040F0AA81854B04930D20012101F07AF8C8\n:1014B000824B772003F104099B4641F2707A01E0E8\n:1014C0001BF8010F01F0DCFB5346013BFDD101F09D\n:1014D000A1FCCB45F4D1BAF1010AFCD100210D20C9\n:1014E00001F060F80DF2472B41F2707A18F8010F05\n:1014F00001F0C6FB5346013BFDD101F08BFCD84502\n:10150000F4D101F04FFCBAF1010AFCD101F082FCE8\n:10151000C0B2002840F07681694B05930D2001216F\n:1015200001F040F8664B772003F1050B984641F235\n:10153000707A01E018F8010F01F0A2FB5346013B5D\n:10154000FDD101F067FCC345F4D1BAF1010AFCD129\n:1015500000210D2001F026F801F05CFC10F0FF00E6\n:1015600040F04D818DF83D0095E80300DFF854B15F\n:101570000E908DF83C109BE80300009B10908DF8B6\n:1015800044100D2001218DF83E608DF83F300DF1A3\n:10159000380A41F2707601F005F81AF8010B01F0F3\n:1015A0006FFB3346013BFDD101F034FCA245F4D181\n:1015B000013EFDD100210D2000F0F4FF01F02AFCD6\n:1015C000C0B2002840F01B81FEF746FF824600288B\n:1015D00040F0CE800D20012100F0E4FF41F2707652\n:1015E000DDF80CA0772001E01AF8010F01F048FBAC\n:1015F0003346013BFDD101F00DFCBA45F4D1013E6B\n:10160000FDD100210D2000F0CDFF0DF2472A0DF293\n:10161000473741F270761AF8010F01F031FB33467B\n:10162000013BFDD101F0F6FBBA45F4D101F0BAFB64\n:10163000013EFDD101F0EEFBC0B2002840F0DC809D\n:101640000D20012100F0AEFF41F27076049F77205B\n:1016500001E017F8010F01F013FB3346013BFDD108\n:1016600001F0D8FB4F45F4D1013EFDD100210D2002\n:1016700000F098FF0DF247460DF2473A41F27077BD\n:101680001AF8010F01F0FCFA3B46013BFDD101F0D5\n:10169000C1FBB245F4D101F085FB013FFDD101F062\n:1016A000B9FBC0B2002840F0AD800D20012100F050\n:1016B00079FF41F27076059F772007E0684D0000C2\n:1016C000F84C0000704D000017F8010F01F0D8FA37\n:1016D0003346013BFDD101F09DFB4745F4D1013E6E\n:1016E000FDD100210D2000F05DFF01F093FB10F013\n:1016F000FF0040F084808DF83D0095E80300019BD9\n:101700008DF83C100E909BE8030003F500731A0A55\n:1017100010908DF844101B0C01210D208DF83E20F7\n:101720008DF83F3000F03EFF029E41F2707516F8D2\n:10173000010B01F0A5FA2B46013BFDD101F06AFB3C\n:10174000A642F4D1013DFDD100210D2000F02AFF79\n:1017500001F060FBC0B2002851D1FEF77DFE824649\n:1017600030B901460D2000F01DFF01E04FF0EB0AFB\n:1017700050460DF24C4DBDE8F08F4FF0EC0A50464C\n:101780000DF24C4DBDE8F08F01233B7358E514FA80\n:1017900080F0B0F5806F1CDC83B201932B680D9351\n:1017A0000D9E4FF0000B07E02A680C920C9AD8F8B7\n:1017B0000810921B8A4217D204EB0B0012ABAAEB63\n:1017C0000B01184402F020FA8344DA45ECD8019C5E\n:1017D00045E5C4F5806A4FF480631FFA8AFA0193E5\n:1017E000DCE74FF0E80AC3E70123019C88F80C30DE\n:1017F00035E54FF0E40ABBE74FF0E10AB8E74FF0F8\n:10180000E60AB5E74FF0E20AB2E700BF2DE9F04380\n:10181000594F5A4D83B04FF0000901210D20CDF8EA\n:1018200000908DF8049000F0BDFE4FF4FA514FF493\n:10183000FA6000F05DFC08210646012000F058FC2B\n:1018400049460446052000F0ADFE4FF41663013B07\n:10185000FDD101F0AFF8052000F00AFF01210520BD\n:1018600000F0A0FE052000F003FF4FF4E131384600\n:1018700000F08AFB6423BB60012000F0F9FE2B78A6\n:10188000C5203B3B41F270782B7001F0F9F94346DB\n:10189000013BFDD12B78012001332B7001F0F0F9D1\n:1018A0004346013BFDD10320287001F0E9F943468E\n:1018B000013BFDD12B789A20663B2B7001F0E0F9BB\n:1018C0004346013BFDD1484601F0DAF94346013B6E\n:1018D000FDD12B78142014332B7001F0D1F943463D\n:1018E000013BFDD12B785842C0B2C31A2B7001F0D6\n:1018F000C7F9B8F10108FCD101E001F08BFA01F061\n:1019000075FA0028F9DC2B780320034441F2707843\n:101910002B7001F0B5F94346013BFDD101F07AFA95\n:1019200005226946384600F0C7FB9DF80230062BB9\n:1019300035D0102B40F0FB80C6EB0616B60001D068\n:10194000013EFDD100210420C4EB041400F02AFE66\n:10195000A40001D0013CFDD10121042000F022FEB1\n:1019600001E001F057FA01F041FA0028F9DC40F2F9\n:10197000E7344FF4967609E0FC07FF1F390EFF1F8E\n:101980003346013BFDD1013C3FF445AF01F02EFA57\n:101990000028F5DD01F03EFAC0B20228F0D10520A2\n:1019A00000F066FE2B7891206F3B41F270762B7031\n:1019B00001F066F93346013BFDD13A24012000F0E5\n:1019C00057FE20462C7001F05BF93346013BFDD1F8\n:1019D0002B784E2003442B7001F052F93346013B23\n:1019E000FDD12B786F2003442B7001F049F9334669\n:1019F000013BFDD12B78742003442B7001F040F99A\n:101A00003346013BFDD12B78204623442B7001F057\n:101A100037F93346013BFDD12B78552003442B7019\n:101A200001F02EF93346013BFDD12B78732003449E\n:101A30002B7001F025F93346013BFDD12B78652051\n:101A400003442B7001F01CF93346013BFDD12B7888\n:101A5000642003442B7001F013F93346013BFDD1A0\n:101A60002B78204623442B7001F00AF93346013BC2\n:101A7000FDD128780138C0B243002B7001F000F985\n:101A80003346013BFDD1012000F0F2FD2B7893207D\n:101A90006D3B2B7001F0F4F83346013BFDD1012082\n:101AA000284C00F0E5FD04F1C3072B7814F8010F72\n:101AB00003442B7001F0E4F83346013BFDD1BC42F6\n:101AC000F3D1012000F0D4FD2B7893206D3B2B70D7\n:101AD00001F0D6F8013EFDD101201B4C00F0C8FDFD\n:101AE000E71D41F270762B7814F8010F03442B7038\n:101AF00001F0C6F83346013BFDD1A742F3D10120E6\n:101B000000F0B6FD942001F0BBF8052000F0B0FD18\n:101B100001E001F07FF901F069F90028F9DC0D20FE\n:101B2000002100F03FFD012003B0BDE8F0832B78D9\n:101B3000EE20123B2B7001F0A3F8B8F10108FCD1A4\n:101B40000020F1E73707FF1F2F07FF1F2DE9F043A4\n:101B5000012183B00D2000F025FDB74DB74EB84FE1\n:101B600002F03CF8002800F09D8001F0FBFFC0B2BD\n:101B70000128287010D9102800F09780202853D011\n:101B8000802800F04681F02800F030813B78002B5F\n:101B900000F05E812028E3D82028E1D801A353F883\n:101BA00020F000BFE51D0000B91D0000B31D0000BE\n:101BB000AD1D0000831D0000611B0000591D0000C9\n:101BC0002F1D0000051D0000611B0000DB1C000034\n:101BD000611B0000611B0000611B0000611B000015\n:101BE000611B0000AB1C0000611B0000611B0000BA\n:101BF000611B0000611B0000611B0000611B0000F5\n:101C0000611B0000611B0000611B0000611B0000E4\n:101C1000611B0000611B0000611B0000611B0000D4\n:101C2000611B0000291C000001210D20854C00F0E3\n:101C3000B9FC0D20012100F0B5FC04F10409752068\n:101C400041F2707801E014F8010F01F019F84346F1\n:101C5000013BFDD101F0DEF84C45F4D1B8F10108AB\n:101C6000FCD100210D2000F09DFC01F0D3F810F014\n:101C7000FF0018BFE020307002F0B2F841F270733C\n:101C8000013BFDD101E001F06DFF01F0A7FF00284D\n:101C9000F9DC00210D2000F085FC01F09FFF0028F9\n:101CA0007FF463AF03B0BDE8F0833C780020307070\n:101CB000002C00F0BA8002F093F841F27073013BFF\n:101CC000FDD101E001F04EFF01F088FF0028F9DCB2\n:101CD00000210D2000F066FCDFE7FEF763FF3070A7\n:101CE00002F07EF841F27073013BFDD101E001F09A\n:101CF00039FF01F073FF0028F9DC00210D2000F00E\n:101D000051FCCAE7FEF77AFE307002F069F841F242\n:101D10007073013BFDD101E001F024FF01F05EFF93\n:101D20000028F9DC00210D2000F03CFCB5E7FFF7AE\n:101D300049FA307002F054F841F27073013BFDD162\n:101D400001E001F00FFF01F049FF0028F9DC00215C\n:101D50000D2000F027FCA0E7FEF7DEFF307002F058\n:101D60003FF841F27073013BFDD101E001F0FAFE52\n:101D700001F034FF0028F9DC00210D2000F012FCF6\n:101D80008BE7FEF769FD307002F02AF841F27073BC\n:101D9000013BFDD101E001F0E5FE01F01FFF00284D\n:101DA000F9DC00210D2000F0FDFB76E7FEF766FC74\n:101DB000D6E6FEF7ABFCD3E6012002F001FA224C96\n:101DC000804602F005FA01ABA3EB0803238005204F\n:101DD00002F006F82088000A02F002F8207801F0EC\n:101DE000FFFFBDE6022001F0FBFFB9E6012002F093\n:101DF000E7F9154C804602F0EBF901ABA3EB0803C1\n:101E00000220238001F0ECFF052001F0E9FF3620DD\n:101E1000DEE700210D2000F0C5FB4FF4FA7000F062\n:101E200027FC0A4B1B6898479AE6FFF7EFFC3070D7\n:101E300008BBE12030703EE7380EFF1F440EFF1F45\n:101E40003C0EFF1F784D00003A0EFF1F400EFF1F93\n:101E5000E02001F0C5FF41F27073013BFDD101E0CC\n:101E600001F080FE01F0BAFE0028F9DC00210D200F\n:101E700000F098FB11E7FEF729FB307010B9012341\n:101E80003B7018E73C7016E72DE9F843314F324DAF\n:101E9000324CDFF8D09038464FF4E13100F074F85E\n:101EA0006423BB602E682E4F40F2EE2802F01AF831\n:101EB0002378002B40D03B78DA073DD52B68D9F842\n:101EC00000209B1A0E2B37D901210D2000F094FB26\n:101ED0000121052000F090FB0121042000F08CFB83\n:101EE0000121084600F088FB0021084600F084FB31\n:101EF0000021052000F056FB0021012000F052FBDC\n:101F00000021084600F04EFB0121042000F04AFBAE\n:101F100001F0E8FF2378002BFAD03B78DB07F7D5F8\n:101F20002B68D9F800209B1A0E2BF1D9BDE8F84395\n:101F300001210D2000F036BB2B6822789B1B2AB1B3\n:101F4000B3F5FA6FC0D801F0CDFFAFE74345FAD93A\n:101F5000BAE700BFFC07FF1F4C0EFF1FD00FFF1F8B\n:101F6000F40FFF1FF80FFF1F0368C9B21B68184763\n:101F70000368C9B21B6818470368C9B21B681847D1\n:101F80000368C9B21B681847084B10B503EB51032F\n:101F90000446B3FBF1F000F02FFC054B1B7803B1B6\n:101FA00010BD2046BDE8104002F040B8002A75156B\n:101FB0002508FF1F08B5084600F062FE012008BD95\n:101FC00008B5084600F05CFE012008BD38B508469B\n:101FD0000D4602F055FC04460146284600F05AFE24\n:101FE000204638BD10B508461446114600F052FE92\n:101FF000204610BD0846114601F07AB80846114641\n:1020000001F05AB800F072BF08B5084600F00EFEA5\n:10201000003818BF012008BD08B5084600F0E4FDEF\n:10202000003818BF012008BD0846114600F05ABD0F\n:10203000084600F0A1BD00BF084600F037BD00BF54\n:1020400000F0B8BC10B50648144600EB5100B0FBD8\n:10205000F1F000F0D1FB2046BDE8104000F04CBC90\n:10206000002A751500F01CBF00F0D4BE00F0BEBE03\n:1020700000F098BE00F0A2BE70B50E4D82B02B6885\n:102080000093009E044608E001F02CFF2B680193AA\n:10209000019BA2689B1B934207D2236820465B6981\n:1020A00098470028F0DB02B070BD4FF0FF3002B05F\n:1020B00070BD00BF4C0EFF1FF8B50D4691B116461E\n:1020C0009AB10746002404E00134A64205F8013B1A\n:1020D00006D03846FFF7D0FF031EF5DA01233B7325\n:1020E0002046F8BD0C462046F8BD1446F8E700BF70\n:1020F000884200DB704770B4114C2268091AEAB1BB\n:10210000104B114E114D83FB023C9444D317C3EB8B\n:102110002C4306FB132244F2A71C05FB03F30CFB24\n:102120000233002B02DA03F10043013BB3FBF1F26F\n:1021300001FB12322360104470BC7047044BF5E77A\n:10214000480EFF1F5F0B4E831DF30100ECF4FFFFF1\n:1021500042CE0C1F08B5FFF797FEFFF7F7FC01F022\n:10216000C1FEFAE701B441EA000313F003036FD1A3\n:10217000403A41D351F8043B40F8043B51F8043B4A\n:1021800040F8043B51F8043B40F8043B51F8043B51\n:1021900040F8043B51F8043B40F8043B51F8043B41\n:1021A00040F8043B51F8043B40F8043B51F8043B31\n:1021B00040F8043B51F8043B40F8043B51F8043B21\n:1021C00040F8043B51F8043B40F8043B51F8043B11\n:1021D00040F8043B51F8043B40F8043B51F8043B01\n:1021E00040F8043B51F8043B40F8043B51F8043BF1\n:1021F00040F8043B403ABDD2303211D351F8043B91\n:1022000040F8043B51F8043B40F8043B51F8043BD0\n:1022100040F8043B51F8043B40F8043B103AEDD23F\n:102220000C3205D351F8043B40F8043B043AF9D290\n:1022300004320AD0D2071CBF11F8013B00F8013B61\n:1022400003D30B7803704B78437001BC704700BF19\n:102250000C2A4AD310F0030311D0C3F10403D21A9D\n:10226000DB071CBF11F8013B00F8013B07D311F855\n:10227000013B00F8013B11F8013B00F8013B11F074\n:1022800003033FF475AF30B4043AC91AC3F1040C28\n:1022900051F8044B022B19D0032B0BD0240A51F810\n:1022A000043B1D0644EA050440F8044B1C46043A6E\n:1022B000F4D216E0240E51F8043B1D0244EA050452\n:1022C00040F8044B1C46043AF4D20AE0240C51F8BE\n:1022D000043B1D0444EA050440F8044B1C46043A40\n:1022E000F4D20432B1EB0C0130BC043AA0D3013A71\n:1022F00011F8013B00F8013BF9D20B7803704B78E1\n:1023000043708B78837001BC704700BF08B50F4CD9\n:10231000636B58030DD4636B59050FD4636B1A05B7\n:1023200011D4636BDB04F3D500F012F8636B580330\n:10233000F1D500F0ABFF636B5905EFD500F0FAFD66\n:10234000636B1A05EDD500F003F8EAE7008004405E\n:1023500008B5FFF7DBFF00BF014B10221A80704762\n:1023600000200540704700BF0B490A6848B108B516\n:10237000EC461318ACF50050834204D20B601046B3\n:1023800008BD1046704702F04BFA0C234FF0FF32A5\n:102390000360104608BD00BF1008FF1FEFF3138352\n:1023A000CBB9EFF31080A0B9EFF3058343B94FF435\n:1023B0008070EFF311835BB1984228BF18467047D5\n:1023C0000F2BF6D9054AD05CEFF31183002BF3D124\n:1023D0007047184670474FF0FF307047F0E300E059\n:1023E000074BDA78802A01D000207047054906485B\n:1023F000486400225A70DA78802AFCD001207047A5\n:1024000000E007400080044000002822074BDA78F3\n:10241000012A01D00020704760225A70DA78802AA1\n:10242000FCD1034B034A5A640120704700E0074087\n:10243000008004400000060201F1FF3C70B56546D3\n:10244000002401E070460134B0FBF2FE02FB1E03E3\n:10245000092B03F130068ABF3733F3B2DBB2904267\n:1024600005F8013FEED2631C0022CA54C8187CB1A3\n:1024700062461CF8015F10F801ED8CF800E0A1EB5A\n:102480000C030232013B521A23449A420570EFDBDF\n:10249000084670BD034B002210215A615A60186033\n:1024A0005961704700D00340704700BF4FF0E02CE7\n:1024B0002DE9F0414FF00068CCF804814FF08058CE\n:1024C000CCF804814FF00058CCF804812F4A3049F1\n:1024D000304C314D314E4FF08048CCF804812823E8\n:1024E00000204EF6FF7E09274FF00048CCF804810B\n:1024F0004860C1F808E0CB604B61CB614B62CB62B6\n:102500004B63CB634B64D3605361D3615362D3623B\n:102510005363D36353640F606860C5F808E0EB60F1\n:102520006B612F606060C4F808E0E360636127605E\n:102530005060C2F808E0D36053611760F16A41F45B\n:102540000071F162716802F5803241F000717160D2\n:1025500047F6FF740821506082B09460D3605361E5\n:10256000116001F08BFDFFF79FFF0D4C2368009376\n:10257000009B132BFAD901F043FA23680193019BC6\n:10258000B3F5967FF9D302B0BDE8F08100900B401F\n:102590000080034000800B40009003400080044016\n:1025A0004C0EFF1F3F2818D810B4124B53F83020A0\n:1025B00092F8804234B1012381B982F800315DF88C\n:1025C000044B704703EBC0035B681A6859B142F0D3\n:1025D00003025DF8044B1A607047704782F8803040\n:1025E0005DF8044B704722F002025DF8044B1A605C\n:1025F000704700BFE84D00003F2820D81B4A02EB7F\n:10260000C00301295B680FD004291DD052F83000A7\n:10261000002280F8802299B1022922D003290DD10D\n:102620004FF481721A60704752F830004FF4A27272\n:1026300080F880121A601A6822F020021A6070472F\n:102640004FF480721A60704752F830104FF4A27243\n:10265000012081F880021A601A6842F020021A6094\n:10266000704740F203121A60704700BFE84D000047\n:102670002DE9F843044672B6214F4FF0E0229369EA\n:102680003D68D2F8042D62B6520102D5322B88BFC4\n:1026900001350CB9BDE8F883DFF86890DFF8688091\n:1026A000A9EB03039B08A8FB03234FF47A7202FBF8\n:1026B00005F505EB93054FF0E02672B6B1693A686F\n:1026C000D6F804CD62B6A9EB01039B08A8FB03036F\n:1026D0001CF0806FC5EB93034FF47A7002D032295F\n:1026E00088BF013200FB0233B3F57A7F04D3013C8B\n:1026F000D0D005F57A75E0E701F0F4FBDDE700BF27\n:102700004C0EFF1F1FBF0200176CC1162DE9F84FBA\n:10271000314B1B6807460BB101221A70DFF8D090CD\n:10272000DFF8D08099F80040D8F800302B4D013404\n:102730009C422B782AD303F0FF0A002B3ED154464B\n:10274000274EDFF8A8B005E033791B0623D42B7899\n:10275000A3420AD1FFF722FE4028F5DDFF28F6DD6F\n:1027600001F0C0FB2B78A342F4D03F2C29D91D4B9C\n:10277000403C1B68FFB21F551B4A194B01211170C9\n:10278000BC2289F800A0DA70BDE8F88F9C425FFA9D\n:1027900084FAD5D0E9E72B78D8F800105A1C8A4281\n:1027A000DBB203D23F2A10D8D1B201E000210A46A1\n:1027B0001BF80230DBB2F3712970C8E74FF0000A52\n:1027C00054460A4BFFB21F55D6E7D1B2054A3F3BEC\n:1027D0001268D35CDBB2EEE7A00EFF1FF00EFF1F06\n:1027E00000A00640EC0EFF1FA40EFF1FA80EFF1F47\n:1027F000E80EFF1F2008FF1F324A3349536B70B4A5\n:1028000043F48063314D5363314E324C32780023B0\n:102810002B700B70304923700B703049152A0B70E8\n:102820002ED01B2A48D0002A41D02D4B1B78052BD7\n:102830002ED01A2B36D0012B2FD02028294B2A4CF2\n:1028400038BF2020C0F3443C83F800C0C0F3471CCD\n:1028500000F01F0083F801C00422987202209A70D1\n:10286000D87488205A754FF0E021187440223C201B\n:10287000D870E2774FF0004370BCC1F80031704768\n:102880001A4B40F213329A61154B1B78052BD0D1AD\n:10289000164B4FF45172DA61CFE7154B4FF451727A\n:1028A0005A64CAE7134B4FF451729A63C5E7104B51\n:1028B00040F213321A64B8E70E4B40F21332DA6377\n:1028C000B3E700BF008004409C0EFF1F940EFF1F63\n:1028D0009D0EFF1FE80EFF1FF00EFF1FA40EFF1F2F\n:1028E0002408FF1F00A0064000E400E000C00440F0\n:1028F00000A0044000900440294B9B7800F00302A4\n:1029000003F0EC031343410700F00F02244948BFD2\n:1029100043F01003042A8B7003D18B7943F04003FA\n:102920008B711F4B5B79C20603F0EF031C4A48BF53\n:1029300043F0100353719379194A03F0EF0310F039\n:10294000200C18BF43F010039371C30506D55378CC\n:102950001178DBB241F020011170537010F4007057\n:1029600017D00F490F488B780F4A43F0A0038B70A4\n:1029700003780E4902EBC30240F24633506840F23E\n:102980004732BCF1000F08BF1346094A03600A60D2\n:102990007047064B064A1968914208BF1860704795\n:1029A00000A006402408FF1FE84D0000A00EFF1FF6\n:1029B000D400D442324B5B6B5B0531D510B5314C42\n:1029C000237823B101F08EFA2378002BFAD12E4A16\n:1029D0002E4B4FF0E0204FF000440021C0F8804122\n:1029E000D1701B78152B3CD01B2B1FD04BB3284B21\n:1029F0001B7803F07F03052B3DD01A2B2CD0012B25\n:102A00000FD0244B204A244C2448196892F804C063\n:102A1000D27900232370037009B101230B7010BD1C\n:102A200070471F4B40F203125A64EAE71D4B40F215\n:102A30000312DA63164B1B7803F07F03052BDCD1FE\n:102A400019E0174B40F203121A64114B1B7803F084\n:102A50007F03052BD1D10EE0124B40F203129A6393\n:102A6000CFE7114B40F203129A61094B1B7803F038\n:102A70007F03052BC1D10C4B40F20312DA61C0E792\n:102A800000800440A40EFF1F00A006409D0EFF1F03\n:102A90002408FF1F500EFF1F940EFF1F9C0EFF1FE8\n:102AA00000A004400090044000C004400A4A38B529\n:102AB0000546137803F0FF04002BFAD101212846C4\n:102AC000FFF79AFD21462846FFF76CFD034A044BA9\n:102AD00052F835201A6038BDA40EFF1FE84D0000E3\n:102AE000A00EFF1F09B140F080001E4A13788342F8\n:102AF0001CD010B41C4C646B640513D503F07F0329\n:102B0000052B2BD01A2B25D0012B1FD0002900F02C\n:102B10007F0314BF60214421052B12D01A2B0BD048\n:102B2000012B04D010705DF8044B704770470F4BB9\n:102B300041F440715964F5E70D4B41F440719963DC\n:102B4000F0E70C4B41F44071D961EBE7074B0024EF\n:102B50005C64DBE7064B00249C63D7E7054B00244D\n:102B6000DC61D3E72408FF1F0080044000A004407C\n:102B70000090044000C00440164A137883420ED0EF\n:102B80001549496B490509D5152B1FD01B2B19D0A9\n:102B9000ABB115280ED01B2807D008B110707047B4\n:102BA0000E4B40F213311964F8E70D4B40F213312C\n:102BB000D963F3E70B4B40F213319961EEE7074914\n:102BC0000B64E6E7064B0021D963E2E7054B0021E1\n:102BD0009961DEE79D0EFF1F0080044000A00440C5\n:102BE0000090044000C004400D4B5B6B13F4806305\n:102BF00013D03F2803D90B4B0020186070470A4BB5\n:102C000010B5084C53F8303023600121FFF7F4FC75\n:102C1000236800221A70012010BD1846704700BFBB\n:102C200000800440500EFF1FE84D0000104B5B6B0E\n:102C300013F4806312D012280BD0142810D10D4B3E\n:102C400040F202325A610C4A537B01200343537312\n:102C500070470A4B40F20232DA60F4E718467047D8\n:102C6000054A537B03F0FE0300205373704700BFF7\n:102C70000080044000C0044000A0064000A00440C2\n:102C8000034B5B6B5B0501D5FFF740BD704700BF91\n:102C9000008004402DE9F84F394B5B6B5A053CD559\n:102CA000384B1B680BB101221A704718B84231D259\n:102CB000354EDFF8EC80354CDFF8E09000F1010A8A\n:102CC00013E003F0FF0B53B34FF0000B5D46304AA7\n:102CD0001AF8013C535552462E490123BA420B7053\n:102CE0000AF1010A86F800B014D23578D8F800301D\n:102CF0000135AB422378E4D9AB425FFA85FB0FD0B4\n:102D00003F2DE4D9244B1AF8012C1B68403D5A553D\n:102D10005246E1E7214BBC22DA70BDE8F88F5D46F0\n:102D20006FF0430389F8033006E099F804301B067E\n:102D30000BD42378AB42E3D1FFF730FB4028F4DD1E\n:102D4000FF28F6DD01F0CEF8F3E72378D8F800107D\n:102D50005A1C9142DBB203D93F2A0AD8D1B201E012\n:102D600000210A460A4B9B5CDBB289F807302170D0\n:102D7000DFE7D1B2084A3F3B1268D35CDBB2F4E72D\n:102D800000800440A00EFF1FE80EFF1FF00EFF1F83\n:102D9000A80EFF1FA40EFF1FEC0EFF1F00A0064091\n:102DA0002008FF1F10B5044C237823B101F09AF8D6\n:102DB0002378002BFAD110BDA40EFF1F084A094B3F\n:102DC00011781A789142C8B2D3B202D2013B181AD4\n:102DD0007047054A1268013A1344181A704700BF39\n:102DE000E80EFF1FF00EFF1F2008FF1F064A074BCB\n:102DF00011781A789142D0B23CBF054A1268CBB222\n:102E000038BF9B18181A7047940EFF1F9C0EFF1FA7\n:102E10001C08FF1F1B4B1C491A780B789A422ED0B6\n:102E200010B55FFA82FE194AD8B21268431C9A4262\n:102E300019D93F2B1BD85FFA83FC1548C05CC0B280\n:102E400081F800C01349096861B19E453CBF7244D6\n:102E5000D31A114A126828BFAEEB03039A4201D37A\n:102E600000230B7010BD4FF0000C6346E5E70B4CE0\n:102E70003F382468205C5FFA83FCC0B2E0E74FF083\n:102E8000FF307047940EFF1F9C0EFF1F1C08FF1F92\n:102E9000540EFF1F500EFF1F1808FF1F980EFF1F34\n:102EA0000D4A0E4B11781B789942DAB211D00C49B9\n:102EB0000968531C994207D93F2B06D9094B3F3A61\n:102EC0001B68985CC0B270470023074AD05CC0B250\n:102ED00070474FF0FF307047940EFF1F9C0EFF1F8E\n:102EE0001C08FF1F980EFF1F540EFF1F0C4B5B6B3F\n:102EF0005B0514D50B4B0C48DA78402102F0CB026D\n:102F0000DA705974DA78094942F03402DA70084A02\n:102F100003781268DBB20B700AB10023137070479C\n:102F20000080044000A006409C0EFF1F940EFF1F6F\n:102F3000500EFF1F2DE9F041504C237913F0300F54\n:102F400047D072B6A37D03F0FF01002B58D062B6C4\n:102F5000DFF85C814A4898F800304A4A05781668DC\n:102F6000494F5FFA83FC494BEDB2D3F800E008E02B\n:102F70001DB14FF0000C07F80C304A1E12F0FF0193\n:102F800012D0E3790CF101029642DBB2F0D99542FE\n:102F9000ACF13F00F1D03F2A6DD994464A1E12F0A1\n:102FA000FF010EF80030ECD15FFA8CF388F80030A6\n:102FB000374B196869B1AC453CBF721B02EB0C037F\n:102FC000344A126828BFACEB05039A429CBF012328\n:102FD0000B702A48C3781E06DDB216D46A060DD5DA\n:102FE000264B1B795B0609D52B4B2C491B6800220D\n:102FF0000A7003B11A70214B3C22DA70BDE8F081EF\n:103000004023E279637462B6E3E703791C06E5D5F1\n:10301000234B244ADFF89CE01C7816689EF80030A9\n:10302000214A224FD2F800C0E4B2DBB207E00379B4\n:103030000023FA5CD2B2C271027D072A11D8A342E2\n:1030400003F101010ED08E42F1D93F290279A3F19B\n:103050003F0301D80B46ECE71CF803200B46D2B225\n:10306000E9E7DCB2054B8EF800401A79110644BF3F\n:103070007C22DA70B2E794467DE700BF00A00640EC\n:103080009C0EFF1F1C08FF1F540EFF1F980EFF1FF2\n:10309000500EFF1F1408FF1FA00EFF1FA40EFF1FDE\n:1030A000E80EFF1F2008FF1FEC0EFF1FA80EFF1FDA\n:1030B000940EFF1FF00EFF1F094B10B4186068B18B\n:1030C00001F14004074B084801F11A021A60074B4E\n:1030D000046028315DF8044B196070474024F1E723\n:1030E000980EFF1F1808FF1F1C08FF1F1408FF1F62\n:1030F000054B186018B1054B403119607047034B00\n:1031000040211960704700BFEC0EFF1F2008FF1F11\n:10311000704700BF431E032B16D872B60B4951F8F7\n:10312000230078B130B40A4CB0F800C034F8132052\n:10313000456841F82350A2EB0C0224F8132062B634\n:1031400030BC704762B6704700207047840FFF1F85\n:10315000D40FFF1F013803280BD872B6074B53F862\n:10316000203043B100205B680130002BFBD162B6F8\n:103170007047002070471846F9E700BFAC0FFF1FEB\n:1031800010B472B61A4A1B4C042312F8011B09072B\n:1031900043F0010C05D554F8331069B154F83C10D4\n:1031A000C9B10433142BF0D162B6134B00221A704C\n:1031B0005DF8044B00F0AEBC0F4904EBC3020830CD\n:1031C00050600A780D4844F83300013A0A7062B63C\n:1031D0005DF8044B7047084A094904EBCC030830FA\n:1031E0005860137844F83C10013B137062B6EFE767\n:1031F000685000000000FF1FDC0FFF1F8800400028\n:10320000C8004000421E032A0ED81C4B400140F06B\n:10321000100010B4034472B6194CA05C03281DD8EA\n:10322000DFE800F01416031970470520A05413F0CE\n:10323000080F088814BFC8228822083142EA0042D9\n:1032400059601A6062B65DF8044B70470320EDE7E1\n:1032500008330220EAE708330420E7E7094B53F874\n:10326000220038B1084B53F82200416043F8221085\n:1032700062B6E8E743F82210034BF7E70000FF1FB0\n:10328000CC0FFF1FAC0FFF1FBC0FFF1F2DE9F04F2E\n:10329000DFF80CA3DFF80CB385B03DE0B04D9E081D\n:1032A00005EBC607013A796813F00803D4B2A1F11F\n:1032B000080040F0B88055F836204FEA124C120C46\n:1032C00021F808CC00F0A78021F8063C41F8043C26\n:1032D000A44B53F82420002A00F00182A24B53F89B\n:1032E0002420506043F82400A04B33F81420944469\n:1032F00023F814C000F0EEFB002800F0E98117F07D\n:10330000080F9B4B00F1080018BF5B46786045F83A\n:10331000363008238AF880309AF880305907DCB2BA\n:103320001BD5944B1B78ABB193490A7802F0FF038D\n:103330002AB1013BDBB20B70002B00F046838F49B2\n:103340000A7802F0FF032AB1013BDBB20B70002BBD\n:1033500000F0EB8104238AF8803014F0080200F0BA\n:10336000CC819AF89020D3B2120997D1DFF8F0916E\n:103370009B0809EBC30459F833006468C0F3830069\n:1033800009287CD00FD80138012808D87C4A158834\n:1033900042F22100854200F0FB8149F833B001235D\n:1033A0008AF89430B5E70D28F9D1D4E90007754DB6\n:1033B00049F833B0724E744CC9F8102083B240F211\n:1033C000816CC9F818202A6063454FF00102C6E9F4\n:1033D0000007227000F2FF80B3F5D06F80F0CB823F\n:1033E000B3F5817F00F0268240F2DE8040F20232A7\n:1033F00093427BD107F07F07042F00F20881020C73\n:1034000040F00581614911F8273043F0020301F8CB\n:103410002730134670E017F0080F554B18BF5B4676\n:1034200045F8363075E700F075FB5949594A51F8AF\n:103430002430002B00F05781586841F82400115DBA\n:1034400003F108007860032905D8DFE801F0120FC6\n:103450001502042111551A8817F0080F14BFC8234C\n:10346000882343EA024345F8363052E702211155DA\n:10347000F1E703211155EEE705211155EBE7414D29\n:103480002A683AB34449404C0F88444894F800E015\n:103490000678402F3B4628BF4023BEF1000F8EF038\n:1034A000010E84F800E046F0020486F00106067082\n:1034B00009EBC400426014BFC820882040EA0340E2\n:1034C0001A44FB1A9BB249F834000B80002B00F021\n:1034D00036812A602A4B1A88B2F5A06F7FF45FAF5D\n:1034E0009A788AF8982000225A7058E7B3F5A06FAE\n:1034F00040F08D8000221346B6F806C02748944558\n:1035000028BF944667460278402F28BF402742F0E4\n:10351000020E3E0409EBCE0846F0C806C8F8043097\n:1035200049F83E6000263B442670BCEB070782F05A\n:103530000106067040F01181BCF13F0F4FF001050C\n:1035400009D946F00206027009EBC60225705360E5\n:10355000882349F8363001238AF894301FE700BFEA\n:103560000000FF1F840FFF1F940FFF1FD40FFF1FCA\n:1035700088004000D00FFF1FD10FFF1FFC0FFF1F5F\n:10358000A40FFF1F780FFF1F750FFF1FC0200740FC\n:10359000AC0FFF1FCC0FFF1F760FFF1F740FFF1F15\n:1035A00000200740C8004000802B00F08B81822B58\n:1035B0002DD107F07F07042F29D8A74A00231380B5\n:1035C000A64B13F827309F0740F1FC8101231370AD\n:1035D000A14B022290E742F2210C6345BBD01DD9DA\n:1035E00042F2212293420DD1BFB2002F82D19C4BD7\n:1035F0001A689C4B1A609C4BC0F30740002218705D\n:10360000134679E742F2213293423FF473AF0F231E\n:103610008AF8C03001238AF89430C0E6B3F5086F09\n:1036200000F04A81B3F5106FF1D1904BC0F3074021\n:103630000425187059F835301A0606D40135142DB2\n:103640000CD059F835301A06F8D509EBC503013509\n:103650005868083800F05EFA142DF2D1844A854B80\n:103660000292854A0192854E854ADFF8488203948A\n:10367000009200251C4656F8047B2FB138467F681F\n:1036800000F048FA002FF9D1009BD8F8007043F8F9\n:10369000045B46F8045C00932FB138467F6800F065\n:1036A00039FA002FF9D1029B48F8045B43F8045B18\n:1036B0000293019B23F8025B01932378023B032BC7\n:1036C00000F20981DFE813F03F0104013F0104012A\n:1036D0006C4A45F8360013780133137019E643F845\n:1036E0002400674BFEE5115D022926D07FF611AE5E\n:1036F00003291DD1012313550BE6E0076ED42106E3\n:1037000021D4A20708D5604B93F888200221D2B2B9\n:1037100083F8882083F88010E30603D55A4B1022E3\n:1037200083F8802005B0BDE8F08F00F0B7FB11E60C\n:1037300017F0080F14BF032302231355E9E53F2FA9\n:1037400098BF0022C5E6504B80220D2183F8C0109F\n:1037500083F88020A207DFD5D5E746F00206027085\n:10376000402F09EBC6003A4628BF402243601004B0\n:10377000134440F088000121BA1A49F8360021703C\n:1037800055D02B60414B1A8001238AF8943006E60D\n:1037900092885AB93E4AE51D14F8011B02F8011F30\n:1037A000AC42F9D13B4A1268862A3CD03A4C3B489D\n:1037B00025780278002D85F00105257042F002047D\n:1037C00082F00102027009EBC4024FF00000506069\n:1037D00014BFC822882249F83420DEE52A4B2F483E\n:1037E0002F49304C022583F8945002702E480C600B\n:1037F0002E4D48608C600D24CD60FF200A618A61E7\n:1038000083F8C04001219F2483F8880083F880005A\n:1038100083F8982083F88C0083F8844083F8941010\n:1038200005B0BDE8F08F224A0F201070BEE73F2F91\n:10383000A7D890E607F07F07042F3FF6E8AE000C0C\n:103840007FF4E5AE054A12F8273023F0020302F8B0\n:103850002730002213464FE67C0FFF1FC020074091\n:103860004C0EFF1FF80FFF1FF40FFF1FD00FFF1F9D\n:10387000BC0FFF1FCC0FFF1FD40FFF1F840FFF1FB4\n:10388000940FFF1FDC0FFF1F00200740760FFF1F64\n:10389000EB0FFF1FEC0FFF1F750FFF1F740FFF1FB4\n:1038A0000000FF1F88004000F40EFF1F340FFF1FB1\n:1038B000D10FFF1FAC0FFF1F484B49491B780B70FE\n:1038C0000B4619E6464A00231380454B022213E6B5\n:1038D0004FF001032370434BB34204F101047FF422\n:1038E000CAAE414E039CDFF81481404F0023337071\n:1038F000042518F8013B3E4AAB541B0725D445F07C\n:10390000020145F0030204350023142D49F831303B\n:1039100049F83230EDD1374F25783A7842F002003D\n:1039200009EBC00C85F00106CCF80430002D4DD118\n:10393000882382F0010226703A7049F83030012362\n:103940008AF894302BE52570C5E700F0C3F800280D\n:1039500032D009EBC5030830586049F8357000F0E3\n:10396000B9F808B345F0010309EBC3020830506011\n:1039700049F833B0C3E7204A5368002B3FF447AE01\n:10398000000CBFB204E013690C32002B3FF43FAED1\n:1039900011888142F7D15188B942F4D1000A032835\n:1039A0000CBF1A781289A7E533780133337045F0DC\n:1039B000010349F83300A2E7337849F835000133B1\n:1039C0003370CCE7064B022296E500BE2670C82372\n:1039D00082F001063E7049F83030BCE5D00FFF1F81\n:1039E0007C0FFF1F940FFF1FDC0FFF1F880040009C\n:1039F000C0200740740FFF1F1450000068500000E3\n:103A000010B500F0A1FB0023234A194642F83310F9\n:103A100002EBC3000133142B4160F7D11F48204C47\n:103A2000436B43F480234363D4F8003800F5283017\n:103A300000F5807043F04073C4F80038032480F828\n:103A40004440184BA02480F84040C2F3072483F878\n:103A50009C40C2F30744120E83F8B0404FF0FF0CB5\n:103A600083F8B420012283F880C00F4C83F888C00B\n:103A700083F810C083F8942001704FF0E02183F8A0\n:103A800084204FF0700C4FF40012102384F835C0DE\n:103A9000C1F80421037210BD0000FF1F0080044024\n:103AA00000D000400020074000E400E000F0F6B83D\n:103AB00000F07CB800F056B800F090B800F0C2B941\n:103AC00000F09CB90846114600F004B9084600F021\n:103AD00087B900BF72B60D490B68B3FA83F00B28A3\n:103AE00010DC4FF00042C24023EA02030B6062B6D2\n:103AF000074A00EBC000C10002EBC0000023535096\n:103B00004360704762B60020704700BF3808FF1F4F\n:103B1000D003FF1F0E4BC31AB3F5587F10D20D4AC6\n:103B2000127872B972B60C4A0C49A2FB03230868DA\n:103B30004FF000421B0922FA03F303430B6062B605\n:103B40007047074A1278002AECD0FFF719BB00BF74\n:103B5000D003FF1FDC0FFF1F398EE3383808FF1F2B\n:103B6000D00FFF1F38B50F4C206878B1438802880A\n:103B7000C11801339A420D7A02D94380284638BDD4\n:103B8000FFF7C8FF00232360284638BD064B1B788B\n:103B90002BB10320FFF7BEFA20600028E6D14FF0DA\n:103BA000FF35EBE7E00FFF1FD00FFF1F10B5094CEB\n:103BB000206818B143881844007A10BD064B1B7862\n:103BC0002BB10320FFF7A6FA20600028F2D14FF0B6\n:103BD000FF3010BDE00FFF1FD00FFF1F084B094A39\n:103BE0001B6810B594881BB11A885B88D31A1C44D3\n:103BF0000CB1204610BD00F075F9204610BD00BF85\n:103C0000E00FFF1FD40FFF1F2DE9F84F0D460029CD\n:103C10003ED04FF00008DFF880901E4E0746C246A7\n:103C200099F80030E3B1346814B322886388A2EBBA\n:103C3000030BAB4528BFAB4604F1080138465A4692\n:103C40001944FEF78FFA638822885B449BB29A423C\n:103C500063805F44D844A5EB0B0511D9002DDFD15B\n:103C60004046BDE8F88F0288002ADFD1FFF752FFF7\n:103C70000320FFF74FFA044630600028F3D1EFE746\n:103C80002046FFF747FFC6F800A0002DC8D1E7E7A0\n:103C90000846E6E7E00FFF1FD00FFF1F0B4B1B7816\n:103CA0009BB110B50A4C206848B1FFF733FF0023E1\n:103CB00003202360FFF72EFA30B1FFF72BFF03201C\n:103CC000FFF728FA0028F8D110BD7047D00FFF1F6A\n:103CD000E00FFF1F2DE9F04FDFF8F89083B00122CD\n:103CE00089F80020019179B3374FDFF8EC80019D0E\n:103CF000364EDFF8E8A083463868A8B3B0F802E093\n:103D0000CEF1400CAC4528BFAC460EEB0C040022B3\n:103D1000A4B23270A5EB0C05448000F10802BCF19E\n:103D2000000F0AD00EF1FF3E7244DC441BF8014B39\n:103D300002F8014FDC45F9D144883F2C0BD805220D\n:103D40008AF80020002DD7D10198002389F800308F\n:103D500003B0BDE8F08F4022028001460420FFF747\n:103D600051FA00223A60EAE798F800201AB3184C9A\n:103D700008E0013C18D03278B2B900F0B3F898F8F6\n:103D80000020C2B10420FFF7E5F90728F1D84FF071\n:103D9000010389F80030FFF79DFE38600028ADD19F\n:103DA000013C89F80000E6D101234FF0FF30337069\n:103DB00003B0BDE8F08F00234FF0FF3089F80030EA\n:103DC00003B0BDE8F08F00BFE80FFF1FE40FFF1F37\n:103DD00021480100E50FFF1FD00FFF1FFC0FFF1F41\n:103DE00000B583B0034601210DF107008DF80730BF\n:103DF000FFF770FF03B05DF804FB00BF38B50E4D50\n:103E00000E4C28680123237028B140880023C0F19C\n:103E10004000237038BD0A4B1B7813B90020207076\n:103E200038BD0420FFF796F90728F7D8FFF752FEB0\n:103E300028600028E9D1F1E7E80FFF1FE50FFF1F19\n:103E4000D00FFF1FF8B5114B1B788BB1104E114DE1\n:103E5000346801272F7064B10F4B00271F706388EF\n:103E6000238021460420FFF7CDF9376000232B7013\n:103E7000F8BDFFF72FFE084B014620B104201C704F\n:103E8000FFF7C0F9F2E71F70F0E700BFD00FFF1F88\n:103E9000E80FFF1FE50FFF1FFC0FFF1F38B50E4B8C\n:103EA0001B7853B90D4C216841B103F0FF054B88D5\n:103EB0000B800420FFF7A6F9256038BDFFF70AFE46\n:103EC000014620B1BDE838400420FFF79BB9044B00\n:103ED00001221A7038BD00BFE50FFF1FE80FFF1F5A\n:103EE000FC0FFF1F2DE9F843324E337863B1324F98\n:103EF0003A784AB90122D9073A7043D49A0726D4AE\n:103F000000225B073A7001D4BDE8F8832B4B1A6896\n:103F1000002AF9D0EFF30582002AF5D1EFF31085DE\n:103F200072B6186800283AD0254C2178002936D17D\n:103F300042691A6001232370002A37D0916105B9C4\n:103F400062B600258368457798472570DCE7DFF87F\n:103F50007C8098F80020002AD2D00025DFF87090ED\n:103F60002B4659F82340236820461B6901359847A2\n:103F700008B12369984798F80020EBB29A42F0D82C\n:103F80003378BDE7FFF72AFE68B90E4B1B780BB9F3\n:103F90003378B3E7337803F0FE033370AEE7002DD8\n:103FA000B2D162B6B0E700F0CDF8EEE7064B1A608A\n:103FB000C5E700BF3C08FF1FFD0FFF1F0010FF1FDC\n:103FC0000C10FF1F105000001010FF1F2C10FF1FBF\n:103FD0001410FF1F70B5EFF3108272B60C4C2068FE\n:103FE00080B10C4E00254369236073B19D6102B915\n:103FF00062B6836845779847EFF3108272B62068FF\n:104000000028F0D102B962B670BD3360EFE700BF9F\n:104010000810FF1F0410FF1FFFF7DCBF024A1368E0\n:1040200001331360704700BF4C0EFF1F70B4104E79\n:10403000104D3478D4B1621ED2B2291D2B4601EB4B\n:10404000820101E08B4205D053F8042B8242F9D162\n:1040500070BC7047631CDBB2074A3370137845F8B5\n:10406000240043F00203137070BC70470123F3E790\n:104070002C10FF1F1410FF1F3C08FF1F2A4B2B4A58\n:104080006020E1211870597013782948082B34D02A\n:104090000A2B20D00C2B274B0CBF35215D2112227F\n:1040A0008160C2609960DA60234B21491B78214A04\n:1040B000CBB101230B621362204B1D491B781D4AB3\n:1040C000012B13D9042B1BD884234B6253621C4B46\n:1040D00001221A707047174B392113228160C26088\n:1040E0009960DA60E0E70B621362E5E780234B62D8\n:1040F0005362134B01221A7070470E4B2121ECE7DB\n:10410000082B06D885234B6253620D4B01221A708F\n:104110007047102B94BF862387234B625362084B52\n:1041200001221A70704700BF004007403D08FF1F82\n:1041300000B0034000B00B402D10FF1F3E08FF1FD2\n:104140002E10FF1F704700BF10B584B072B6FEF787\n:1041500047F9174A17495160702080231070137077\n:1041600013781B06FCD5D468FEF750F962B6124BE3\n:104170009C423CBF04EB8404640020460F4C01A920\n:104180000A22FEF759F901A92046002311F8012B54\n:1041900001333AB10A2B20F8022FF7D116232370EE\n:1041A00004B010BD5B00DBB2237004B010BD00BFD3\n:1041B000000002400000074180969800CC08FF1FD5\n:1041C000024B0146186800F00BB800BF180EFF1F25\n:1041D000024B0146186800F021BC00BF180EFF1FFB\n:1041E0002DE9F04F01F10B06162E83B0044624D8BA\n:1041F000102900F2BA8000F0A3FA1026182202203B\n:10420000B54F3A44A2F1080153688B4200F0BA80DE\n:104210005A68D96822F003021A449D68E9608D60EB\n:10422000516841F001012046516003F1080500F09A\n:104230008DFA284603B0BDE8F08F36F0070600F18E\n:104240009480B14200F2918000F07AFAB6F5FC7FDA\n:10425000C0F09A81730A00F08F80042B00F26F8106\n:10426000B30903F1390003F1380CC3009A4F3B4402\n:10427000A3F108055B689D4206D10CE0002980F29D\n:104280002781DB689D4206D05A6822F00302911B09\n:104290000F29F3DD60463D69DFF850C265457CD0EB\n:1042A0006A6822F00302931B0F2B00F37B81002B23\n:1042B000C7E904CC80F26C81B2F5007F80F01A81EE\n:1042C000D308796801334FEA521E012202FA0EF236\n:1042D0000A4357F833E0C5F808E007EBC301083993\n:1042E000E9607A6047F83350CEF80C508310012112\n:1042F0009940914257D8114206D120F0030049005D\n:10430000114200F10400FAD007EBC0094D46864681\n:10431000D5F80C80454508D11DE1002B80F22481A1\n:10432000D8F80C80454500F01681D8F8042022F01A\n:104330000302931B0F2BF0DD2046D8E9025408EB53\n:10434000060146F00106C8F80460EC60A56043F081\n:104350000104C7E90411C1E902CC4C6048F80230FD\n:1043600000F0F4F908F1080502E00C2323600025B1\n:10437000284603B0BDE8F08F4FF4007340204FF0A3\n:104380003F0C73E7D3689A4208BF02307FF440AF16\n:104390003D69DFF858C1654582D17A6883100121F3\n:1043A00099409142A7D9BD686B6823F003094E4537\n:1043B00003D8A9EB06030F2B7ADCDFF834B1474BA7\n:1043C000DBF800201B680132334405EB090A00F0DA\n:1043D000338103F580530F3323F47F6828F00F08EF\n:1043E0004146204600F00AFA411C024600F0F380E4\n:1043F000824500F2EE803A4B196841441960084644\n:1044000000F04E81DBF80010019301311BBFA2EBDD\n:104410000A010918CBF80020196012F0070B00F010\n:104420001781CBF108010A44CBF580519044083143\n:10443000A1EB0801C1F30B0A51462046009200F09F\n:10444000DDF9421CDDE9002300F04F81801A00EB0A\n:104450000A081968BA6048F001005144BD42506032\n:10446000196000F02981B9F10F0F40F227816868C7\n:10447000A9F10C0C2CF0070C00F0010040EA0C0034\n:1044800068604FF0050E05EB0C00BCF10F0FC0E9A2\n:1044900001EE00F2328150681546124B1A688A42CA\n:1044A00038BF1960104B1A688A4238BF196094E00F\n:1044B000AA1943F0010346F001066E602046BA6077\n:1044C000536000F043F90835284603B0BDE8F08F8B\n:1044D000D9681A44A1E600BFE408FF1F6010FF1F5F\n:1044E0003010FF1F5810FF1F5C10FF1FEC08FF1F4C\n:1044F000EC0CFF1FB2F5206F4FEA522363D3142B4D\n:1045000000F2B78003F15C01C9005B3307EB010ED9\n:104510007958AEF1080E8E4500F091804B6823F07B\n:104520000303934202D989688E45F7D1D1F80CE094\n:104530007A68C5E9021ECEF80850CD60D6E6142B85\n:1045400059D9542B00F29D80330B03F16F0003F116\n:104550006E0CC3008AE60EF1010E1EF0030F05F18A\n:1045600008057FF4D5AE51E0424445465368D8F87B\n:104570000C1043F00103536055F8083F2046D96002\n:104580008B6000F0E3F8F3E6F00806F1080237E686\n:104590002A442046536843F001035360083500F075\n:1045A000D5F8E5E6A919204646F0010643F00104D6\n:1045B0006E60C7E90411C1E902CC4C60AB5000F059\n:1045C000C5F80835D4E6930903F13901C900383339\n:1045D0009CE7BD425FD0BD68686820F0030846458F\n:1045E000A8EB060302D80F2B3FF762AF204600F07E\n:1045F000ADF80025BCE603F15C0003F15B0CC300E1\n:1046000034E659F808394B4540F0968010F0030F16\n:1046100000F1FF30F5D17B6823EA01037B6049009C\n:1046200099423FF6C0AE19B9BDE649000EF1040E3D\n:104630001942FAD0704667E603F11008D0E69A10E6\n:104640004FF001087B6808FA02F21A437A6070E7BB\n:1046500002EB08014942C1F30B0A51462046009281\n:1046600000F0CCF8431CDDE900237FF4EFAEDA461E\n:10467000EFE6542B25D8130B03F16F01C9006E33FD\n:1046800044E7B3F5AA7F25D8F30B03F1780003F1D3\n:10469000770CC300EAE5294B186840441860B1E67E\n:1046A000CAF30B0CBCF1000F7FF4ACAEBD68C8447C\n:1046B00048F001006860F0E61546EEE6012353601D\n:1046C00094E7B3F5AA7F23D8D30B03F17801C9008F\n:1046D00077331BE740F25452934223D8B30C03F1D3\n:1046E0007D0003F17C0CC300C0E5ABF1080BD8449E\n:1046F000A8EB02084FF0000AABE605F108012046DE\n:10470000009300F08BF9BD68009B68681968C4E6E7\n:1047100040F254518B420BD8930C03F17D01C90038\n:104720007C33F3E64FF47E737F204FF07E0C9DE5E3\n:104730004FF47E717E23E9E67B6870E73010FF1F3F\n:10474000014800F097B800BFA411FF1F014800F016\n:1047500093B800BFA411FF1F830730B548D0541E83\n:10476000002A3FD0CAB2034601E0013C3AD303F825\n:10477000012B9D07F9D1032C2DD9CDB245EA052592\n:104780000F2C45EA054536D9A4F1100222F00F0C92\n:1047900003F1200EE6444FEA121C03F1100242E935\n:1047A000045542E9025510327245F8D10CF101026C\n:1047B00014F00C0F03EB021204F00F0C13D0ACF149\n:1047C000040323F003030433134442F8045B9342CD\n:1047D000FBD10CF003042CB1C9B21C4403F8011B3B\n:1047E0009C42FBD130BD64461346002CF4D1F9E75E\n:1047F00003461446BFE71A46A446E0E738B5074D1E\n:104800000022044608462A60FDF7AEFD431C00D096\n:1048100038BD2B68002BFBD0236038BD9C11FF1FD7\n:10482000014B1868704700BF180EFF1F70B50D4E82\n:104830000D4D761BB61006D0002455F8043B01340C\n:104840009847A642F9D1094E094D761B00F00EFC9F\n:10485000B61006D0002455F8043B01349847A64210\n:10486000F9D170BD785000007850000080500000F1\n:1048700078500000704700BF704700BFFFFFFFFF88\n:1048800090F800F06DE9024520F007016FF0000C90\n:1048900010F0070491F820F040F049804FF0000438\n:1048A0006FF00700D1E9002391F840F000F1080013\n:1048B00082FA4CF2A4FA8CF283FA4CF3A2FA8CF34B\n:1048C0004BBBD1E9022382FA4CF200F10800A4FAB2\n:1048D0008CF283FA4CF3A2FA8CF3E3B9D1E9042306\n:1048E00082FA4CF200F10800A4FA8CF283FA4CF33D\n:1048F000A2FA8CF37BB9D1E9062301F1200182FAF7\n:104900004CF200F10800A4FA8CF283FA4CF3A2FAFC\n:104910008CF3002BC6D0002A04BF04301A4612BA0A\n:10492000B2FA82F2FDE8024500EBD2007047D1E90D\n:10493000002304F00305C4F100004FEAC50514F09C\n:10494000040F91F840F00CFA05F562EA05021CBF6D\n:1049500063EA050362464FF00004A9E7024B13B176\n:10496000024800F005B8704700000000294C000024\n:10497000002301461A46184600F06AB9F8B5244FDC\n:104980000C460646FFF7DCFEBB685D68C4F57E6139\n:104990000F3125F003054B1923F47F6323F00F0338\n:1049A000A3F58054B4F5805F07DB00213046FFF7A4\n:1049B00025FFBB682B44984204D03046FFF7C6FE63\n:1049C0000020F8BD61423046FFF718FF01300DD0DE\n:1049D000104ABB682D1B45F001055D601368304629\n:1049E0001B1B1360FFF7B2FE0120F8BD002130460B\n:1049F000FFF704FFBA68831A0F2BDEDD43F00103D3\n:104A00005360054B03491B68C01A0860D5E700BF17\n:104A1000E408FF1F3010FF1FEC0CFF1F002961D0BE\n:104A2000F8B50C460646FFF78BFE54F8042C7B4F76\n:104A3000A4F1080522F0010105EB010CB868DCF8CF\n:104A40000430604523F0030300F08B80D207CCF8DC\n:104A5000043032D454F8082CAD1A1144AA6807F176\n:104A6000080082426AD00CEB0304D4F804E0EC683E\n:104A7000D4601EF0010FA26000F0978041F00103A6\n:104A80006B60CCF80010B1F5007F35D27868CB08A8\n:104A90000122490901338A40024357F833107A60F2\n:104AA00007EBC302083AC5E9021247F83350CD605C\n:104AB0003046BDE8F840FFF749BE0CEB03025268F0\n:104AC000D00710D4194407F10800DCF808308342FD\n:104AD00073D0DCF80C20DA60936041F001036B6066\n:104AE0006950D0E7704741F00103B1F5007F44F809\n:104AF000043CCCF80010C9D3B1F5206F4FEA512324\n:104B000048D28B0903F1390003F13802C300F818C9\n:104B1000FB580838984259D05A6822F003028A425A\n:104B200002D99B689842F7D1D868C5E90230856000\n:104B3000DD603046BDE8F840FFF708BE0CEB03022D\n:104B40005268D20763D40B44DCE90212CA60916058\n:104B500043F001026A603046EB50BDE8F840FFF7D1\n:104B6000F5BD0B44D10707D454F8082CAD1A1344F3\n:104B7000D5E90212CA60916043F001026A60284AD6\n:104B8000BD6012689A4293D8264B30461968FFF7E9\n:104B9000F5FE8DE7142B0AD9542B1FD80B0B03F10C\n:104BA0006F0003F16E02C300B1E719448DE703F112\n:104BB0005C0003F15B02C300A9E741F00103C7E910\n:104BC0000455C5E902006B60695071E7796892107D\n:104BD000012404FA02F20A437A60A6E7B3F5AA7F39\n:104BE00006D8CB0B03F1780003F17702C3008EE700\n:104BF00040F25452934206D88B0C03F17D0003F12E\n:104C00007C02C30083E74FF47E737E227FE741F08E\n:104C100001036B60CCF800104AE700BFE408FF1FF7\n:104C2000F00CFF1F6010FF1F38B5074D074C2C1B01\n:104C3000A41005D0013C55F8043D9847002CF9D14B\n:104C4000BDE8384000F01CBA000000000000000081\n:104C50002DE9F047DFF87CA00646DAF80000984618\n:104C60000F469146FFF706FE184B1C6824B3656893\n:104C70001F2D24DC5EB96B1C0235DAF8000063607E\n:104C800044F82570FFF7F8FD0020BDE8F08704EB3D\n:104C900085010123C1F88890D4F88821AB401A43DC\n:104CA000022EC4F88821C1F80881E4D1D4F88C21FF\n:104CB0001A43C4F88C21DEE7054C1C60D7E7DAF80C\n:104CC0000000FFF7D9FD4FF0FF30DEE7A811FF1F0E\n:104CD000AC11FF1F1C0EFF1F7701080F010100FF21\n:104CE00077E2FE0F010300FF77E2FE0F010800FFED\n:104CF00077E2FE0F010900FF77E2FE0F010400FFDB\n:104D000065000000000000006900000000000000D5\n:104D10007700FC0F0101000077E2FE0F01000000A8\n:104D20007703080F010000007704080F0200FC0061\n:104D30007700080F080000000000000004000000D9\n:104D40007700080F080300000000FC0200000000CC\n:104D50007700080F080400000000000100000000B8\n:104D60007700FC0F000000007700FD0F000000003E\n:104D70000000FC0002000000750000000000FFFFC2\n:104D80000000000000000000C11F0000E51F00003F\n:104D900075200000712000006D20000069200000D7\n:104DA00065200000891F0000452000004120000010\n:104DB00039200000312000002920000019200000C7\n:104DC0000920000005200000FD1F0000F51F000065\n:104DD000691F0000711F0000791F0000811F000083\n:104DE000CD1F0000B51F00004008FE4340A0044056\n:104DF0004408FE4344A004400018FE4300C00440A1\n:104E00003000FE43309004403400FE4334900440B0\n:104E10001C18FE431CC004401018FE4310C0044080\n:104E20000818FE4308C004400C18FE430CC00440A0\n:104E30000C10FE430CB004401010FE4310B00440B0\n:104E40001810FE4318B004401C10FE431CB0044070\n:104E50001410FE4314B004400418FE4304C0044080\n:104E60000010FE4300B004400008FE4300A00440D0\n:104E70000408FE4304A004400C08FE430CA00440B8\n:104E80000808FE4308A004401418FE4314C0044060\n:104E90001818FE4318C004400410FE4304B0044038\n:104EA0000810FE4308B004406820FE4368D0044068\n:104EB0001400FE43149004403800FE433890044030\n:104EC0003C00FE433C9004404000FE4340900440C0\n:104ED0004808FE4348A004404C08FE434CA0044050\n:104EE0002808FE4328A004402C08FE432CA00440C0\n:104EF0006020FE4360D004406420FE4364D0044040\n:104F00002010FE4320B004402410FE4324B004408F\n:104F10002810FE4328B004402C10FE432CB004405F\n:104F20004400FE43449004407000FE4370900440EF\n:104F30007400FE43749004406800FE43689004408F\n:104F40005008FE4350A004405808FE4358A00440B7\n:104F50005C08FE435CA004405408FE4354A0044097\n:104F60002018FE4320C004402418FE4324C00440FF\n:104F70001008FE4310A004401408FE4314A004408F\n:104F80003818FE4338C004403418FE4334C004408F\n:104F90003018FE4330C004403C18FE433CC004407F\n:104FA0002C18FE432CC004402820FE4328D0044087\n:104FB0002C20FE432CD004400020FE4300D00440AF\n:104FC0000420FE4304D004400820FE4308D00440DF\n:104FD0000C20FE430CD004401020FE4310D00440AF\n:104FE0001420FE4314D00440000000000000000024\n:104FF000CD3A0000C53A0000C13A0000BD3A0000B9\n:10500000B93A0000B53A0000B13A0000AD3A0000EC\n:1050100000FFFFFF000100008408FF1F12000000D6\n:10502000000200004008FF1F4300000000030000D2\n:105030009808FF1F00000000010309049C08FF1FDF\n:105040000000000002030904B408FF1F0000000074\n:1050500003030904CC08FF1F00000000000000004B\n:10506000000000000000000000151915F8B500BF91\n:10507000F8BC08BC9E4670475D490000350400003E\n:04508000F8B500BFC0\n:10508400E00704EC00FB0F0000FBC013BFE607C001\n:10509400BFEC07C0BFEE07CFEB07ECF5EA07FCB2A5\n:1050A400FF0E72FCB2FF0E76FCB2FF0E77FCB2FF6D\n:1050B4000E9EFDFCB2FF0E73624C69DD6D4C77DD14\n:1050C4001D4C72DD294C65DD324C75DD62FCA1FF9F\n:1050D4000ED5EA07DFC8AFE60712ECEB070FFCB208\n:1050E400FF0E119BA793DFF6FE4C00EEE3FF118B3E\n:1050F400FCA1FF0EA793DFF6EED6FF61FFFCF8FFDD\n:105104000E8F02084C0FDD0B624CFFDF11FCC4084C\n:105114000FEFF5624CFFDF06FC04F00EEFF5C36100\n:10512400CFC262FCA1FF0EEEA7FFE5EA07EF03E59D\n:10513400EA07FE0200EF9A5100FCA1FF0ED7FFFF21\n:10514400FFFFFFFFFFFFFFFFFFFFFF00884D000091\n:1051540000000000E803000000000000113100001E\n:105164003C13FF1F280000001A000000400000004C\n:105174004000000001010000F04F000000000000AA\n:10518400E803000000000000FFFFFFFF010A040025\n:1051940009024300020100C03209040000010202B6\n:1051A4000100052400100105240101010424020664\n:1051B40005240600010705820310004009040100CC\n:1051C400020A0000000705030240000007058402EC\n:1051D400400000001201100102000040C0168304C8\n:1051E40077020102030100000403090418035400B8\n:1051F400650065006E007300790064007500690045\n:105204006E006F0016035500530042002000530047\n:1052140065007200690061006C0000000C0300006E\n:10522400000000000000000000000000000000007A\n:10523400000000000000000000000000E408FF1F60\n:10524400E408FF1FEC08FF1FEC08FF1FF408FF1F12\n:10525400F408FF1FFC08FF1FFC08FF1F0409FF1FC1\n:105264000409FF1F0C09FF1F0C09FF1F1409FF1F6E\n:105274001409FF1F1C09FF1F1C09FF1F2409FF1F1E\n:105284002409FF1F2C09FF1F2C09FF1F3409FF1FCE\n:105294003409FF1F3C09FF1F3C09FF1F4409FF1F7E\n:1052A4004409FF1F4C09FF1F4C09FF1F5409FF1F2E\n:1052B4005409FF1F5C09FF1F5C09FF1F6409FF1FDE\n:1052C4006409FF1F6C09FF1F6C09FF1F7409FF1F8E\n:1052D4007409FF1F7C09FF1F7C09FF1F8409FF1F3E\n:1052E4008409FF1F8C09FF1F8C09FF1F9409FF1FEE\n:1052F4009409FF1F9C09FF1F9C09FF1FA409FF1F9E\n:10530400A409FF1FAC09FF1FAC09FF1FB409FF1F4D\n:10531400B409FF1FBC09FF1FBC09FF1FC409FF1FFD\n:10532400C409FF1FCC09FF1FCC09FF1FD409FF1FAD\n:10533400D409FF1FDC09FF1FDC09FF1FE409FF1F5D\n:10534400E409FF1FEC09FF1FEC09FF1FF409FF1F0D\n:10535400F409FF1FFC09FF1FFC09FF1F040AFF1FBC\n:10536400040AFF1F0C0AFF1F0C0AFF1F140AFF1F69\n:10537400140AFF1F1C0AFF1F1C0AFF1F240AFF1F19\n:10538400240AFF1F2C0AFF1F2C0AFF1F340AFF1FC9\n:10539400340AFF1F3C0AFF1F3C0AFF1F440AFF1F79\n:1053A400440AFF1F4C0AFF1F4C0AFF1F540AFF1F29\n:1053B400540AFF1F5C0AFF1F5C0AFF1F640AFF1FD9\n:1053C400640AFF1F6C0AFF1F6C0AFF1F740AFF1F89\n:1053D400740AFF1F7C0AFF1F7C0AFF1F840AFF1F39\n:1053E400840AFF1F8C0AFF1F8C0AFF1F940AFF1FE9\n:1053F400940AFF1F9C0AFF1F9C0AFF1FA40AFF1F99\n:10540400A40AFF1FAC0AFF1FAC0AFF1FB40AFF1F48\n:10541400B40AFF1FBC0AFF1FBC0AFF1FC40AFF1FF8\n:10542400C40AFF1FCC0AFF1FCC0AFF1FD40AFF1FA8\n:10543400D40AFF1FDC0AFF1FDC0AFF1FE40AFF1F58\n:10544400E40AFF1FEC0AFF1FEC0AFF1FF40AFF1F08\n:10545400F40AFF1FFC0AFF1FFC0AFF1F040BFF1FB7\n:10546400040BFF1F0C0BFF1F0C0BFF1F140BFF1F64\n:10547400140BFF1F1C0BFF1F1C0BFF1F240BFF1F14\n:10548400240BFF1F2C0BFF1F2C0BFF1F340BFF1FC4\n:10549400340BFF1F3C0BFF1F3C0BFF1F440BFF1F74\n:1054A400440BFF1F4C0BFF1F4C0BFF1F540BFF1F24\n:1054B400540BFF1F5C0BFF1F5C0BFF1F640BFF1FD4\n:1054C400640BFF1F6C0BFF1F6C0BFF1F740BFF1F84\n:1054D400740BFF1F7C0BFF1F7C0BFF1F840BFF1F34\n:1054E400840BFF1F8C0BFF1F8C0BFF1F940BFF1FE4\n:1054F400940BFF1F9C0BFF1F9C0BFF1FA40BFF1F94\n:10550400A40BFF1FAC0BFF1FAC0BFF1FB40BFF1F43\n:10551400B40BFF1FBC0BFF1FBC0BFF1FC40BFF1FF3\n:10552400C40BFF1FCC0BFF1FCC0BFF1FD40BFF1FA3\n:10553400D40BFF1FDC0BFF1FDC0BFF1FE40BFF1F53\n:10554400E40BFF1FEC0BFF1FEC0BFF1FF40BFF1F03\n:10555400F40BFF1FFC0BFF1FFC0BFF1F040CFF1FB2\n:10556400040CFF1F0C0CFF1F0C0CFF1F140CFF1F5F\n:10557400140CFF1F1C0CFF1F1C0CFF1F240CFF1F0F\n:10558400240CFF1F2C0CFF1F2C0CFF1F340CFF1FBF\n:10559400340CFF1F3C0CFF1F3C0CFF1F440CFF1F6F\n:1055A400440CFF1F4C0CFF1F4C0CFF1F540CFF1F1F\n:1055B400540CFF1F5C0CFF1F5C0CFF1F640CFF1FCF\n:1055C400640CFF1F6C0CFF1F6C0CFF1F740CFF1F7F\n:1055D400740CFF1F7C0CFF1F7C0CFF1F840CFF1F2F\n:1055E400840CFF1F8C0CFF1F8C0CFF1F940CFF1FDF\n:1055F400940CFF1F9C0CFF1F9C0CFF1FA40CFF1F8F\n:10560400A40CFF1FAC0CFF1FAC0CFF1FB40CFF1F3E\n:10561400B40CFF1FBC0CFF1FBC0CFF1FC40CFF1FEE\n:10562400C40CFF1FCC0CFF1FCC0CFF1FD40CFF1F9E\n:10563400D40CFF1FDC0CFF1FDC0CFF1FFFFFFFFF60\n:105644000000020000000000000000006410FF1FC2\n:10565400CC10FF1F3411FF1F0000000000000000E9\n:105664000000000000000000000000000000000036\n:105674000000000000000000000000000000000026\n:105684000000000000000000000000000000000016\n:105694000000000000000000000000000000000006\n:1056A40000000000000000000000000000000000F6\n:1056B40000000000000000000000000000000000E6\n:1056C40000000000000000000000000000000000D6\n:1056D40000000000000000000000000000000000C6\n:1056E40001000000000000000E33CDAB34126DE663\n:1056F400ECDE05000B0000000000000000000000CC\n:105704000000000000000000000000000000000095\n:105714000000000000000000000000000000000085\n:105724000000000000000000000000000000000075\n:105734000000000000000000000000000000000065\n:105744000000000000000000000000000000000055\n:105754000000000000000000000000000000000045\n:105764000000000000000000F80CFF1FA011FF1F44\n:00000001FF\n"
  },
  {
    "path": "assets/hw/syscon_flasher/syscon_flasher_v2.05_teensy_4.0.hex",
    "content": ":0200000460009A\n:100000004643464200000156000000000103030081\n:1000100000000000000000000000000000000000E0\n:1000200000000000000000000000000000000000D0\n:1000300000000000000000000000000000000000C0\n:1000400000000000010408000000000000000000A3\n:100050000000200000000000000000000000000080\n:100060000000000000000000000000000000000090\n:100070000000000000000000000000000000000080\n:10008000EB04180A063204260000000000000000FD\n:10009000050404240000000000000000000000002F\n:1000A0000000000000000000000000000000000050\n:1000B0000604000000000000000000000000000036\n:1000C0000000000000000000000000000000000030\n:1000D00020041808000000000000000000000000DC\n:1000E0000000000000000000000000000000000010\n:1000F0000000000000000000000000000000000000\n:10010000D8041808000000000000000000000000F3\n:100110000204180804200000000000000000000095\n:1001200000000000000000000000000000000000CF\n:10013000600400000000000000000000000000005B\n:1001400000000000000000000000000000000000AF\n:10015000000000000000000000000000000000009F\n:10016000000000000000000000000000000000008F\n:10017000000000000000000000000000000000007F\n:10018000000000000000000000000000000000006F\n:10019000000000000000000000000000000000005F\n:1001A000000000000000000000000000000000004F\n:1001B000000000000000000000000000000000003F\n:1001C000000100000010000001000000000000001D\n:1001D000000001000000000000000000000000001E\n:1001E000000000000000000000000000000000000F\n:1001F00000000000000000000000000000000000FF\n:10020000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n:10021000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE\n:10022000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE\n:10023000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE\n:10024000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE\n:10025000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE\n:10026000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E\n:10027000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E\n:10028000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E\n:10029000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E\n:1002A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E\n:1002B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E\n:1002C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E\n:1002D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E\n:1002E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E\n:1002F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E\n:10030000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD\n:10031000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED\n:10032000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD\n:10033000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD\n:10034000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD\n:10035000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD\n:10036000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D\n:10037000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D\n:10038000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D\n:10039000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D\n:1003A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D\n:1003B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D\n:1003C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D\n:1003D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D\n:1003E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D\n:1003F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D\n:10040000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC\n:10041000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC\n:10042000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC\n:10043000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC\n:10044000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC\n:10045000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC\n:10046000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C\n:10047000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C\n:10048000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C\n:10049000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C\n:1004A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C\n:1004B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C\n:1004C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C\n:1004D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C\n:1004E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C\n:1004F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C\n:10050000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB\n:10051000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB\n:10052000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB\n:10053000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB\n:10054000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB\n:10055000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB\n:10056000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B\n:10057000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B\n:10058000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B\n:10059000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B\n:1005A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B\n:1005B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B\n:1005C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B\n:1005D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B\n:1005E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B\n:1005F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B\n:10060000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA\n:10061000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA\n:10062000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA\n:10063000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA\n:10064000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA\n:10065000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA\n:10066000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A\n:10067000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A\n:10068000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A\n:10069000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A\n:1006A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A\n:1006B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A\n:1006C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A\n:1006D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A\n:1006E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A\n:1006F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A\n:10070000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9\n:10071000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9\n:10072000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9\n:10073000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9\n:10074000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9\n:10075000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9\n:10076000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99\n:10077000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89\n:10078000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79\n:10079000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69\n:1007A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59\n:1007B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49\n:1007C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39\n:1007D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29\n:1007E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19\n:1007F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09\n:10080000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8\n:10081000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8\n:10082000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8\n:10083000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8\n:10084000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8\n:10085000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8\n:10086000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98\n:10087000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88\n:10088000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78\n:10089000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68\n:1008A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58\n:1008B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48\n:1008C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38\n:1008D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28\n:1008E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18\n:1008F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08\n:10090000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7\n:10091000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7\n:10092000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7\n:10093000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7\n:10094000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7\n:10095000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7\n:10096000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97\n:10097000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87\n:10098000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77\n:10099000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67\n:1009A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57\n:1009B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47\n:1009C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37\n:1009D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27\n:1009E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17\n:1009F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07\n:100A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6\n:100A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6\n:100A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6\n:100A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6\n:100A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6\n:100A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6\n:100A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96\n:100A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86\n:100A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76\n:100A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66\n:100AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56\n:100AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46\n:100AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36\n:100AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26\n:100AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16\n:100AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06\n:100B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5\n:100B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5\n:100B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5\n:100B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5\n:100B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5\n:100B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5\n:100B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95\n:100B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85\n:100B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75\n:100B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65\n:100BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55\n:100BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45\n:100BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35\n:100BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25\n:100BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15\n:100BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05\n:100C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4\n:100C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4\n:100C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4\n:100C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4\n:100C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4\n:100C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4\n:100C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94\n:100C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84\n:100C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74\n:100C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64\n:100CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54\n:100CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44\n:100CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34\n:100CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24\n:100CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14\n:100CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04\n:100D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3\n:100D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3\n:100D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3\n:100D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3\n:100D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3\n:100D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3\n:100D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93\n:100D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83\n:100D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73\n:100D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63\n:100DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53\n:100DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43\n:100DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33\n:100DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23\n:100DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13\n:100DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03\n:100E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2\n:100E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2\n:100E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2\n:100E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2\n:100E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2\n:100E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2\n:100E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92\n:100E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82\n:100E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72\n:100E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62\n:100EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52\n:100EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42\n:100EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32\n:100ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22\n:100EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12\n:100EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02\n:100F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1\n:100F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1\n:100F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1\n:100F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1\n:100F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1\n:100F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1\n:100F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91\n:100F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81\n:100F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71\n:100F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61\n:100FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51\n:100FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41\n:100FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31\n:100FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21\n:100FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11\n:100FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01\n:10100000D1002043491600600000000000000000ED\n:1010100020100060001000600088006000000000E8\n:10102000000000600094000000000000FFFFFFFFD0\n:10103000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0\n:10104000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0\n:10105000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0\n:10106000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90\n:10107000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80\n:10108000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70\n:10109000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60\n:1010A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50\n:1010B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40\n:1010C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30\n:1010D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20\n:1010E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10\n:1010F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00\n:10110000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF\n:10111000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF\n:10112000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF\n:10113000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF\n:10114000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF\n:10115000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F\n:10116000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F\n:10117000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F\n:10118000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F\n:10119000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F\n:1011A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F\n:1011B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F\n:1011C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F\n:1011D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F\n:1011E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F\n:1011F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n:10120000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE\n:10121000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE\n:10122000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE\n:10123000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE\n:10124000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE\n:10125000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E\n:10126000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E\n:10127000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E\n:10128000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E\n:10129000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E\n:1012A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E\n:1012B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E\n:1012C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E\n:1012D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E\n:1012E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E\n:1012F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n:10130000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED\n:10131000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD\n:10132000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD\n:10133000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD\n:10134000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD\n:10135000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D\n:10136000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D\n:10137000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D\n:10138000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D\n:10139000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D\n:1013A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D\n:1013B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D\n:1013C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D\n:1013D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D\n:1013E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D\n:1013F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD\n:10140000814205D051F8043B40F8043B8242F9D8B0\n:10141000704700BF044A05494FF0000342F8043BFF\n:101420009142FBD8704700BFC012002080170020F7\n:101430002DE98848BFF34F8F00BF00BF00BF00BF3A\n:1014400000F016F9674B0822C3F8542100BF00BF13\n:1014500000BF00BF00BF00BF00BF00BF00BF00BF94\n:1014600000BF00BF00BF00BF00BF00BF5E4A5F49B2\n:101470005F48FFF7C5FF5F4A5F496048FFF7C0FF5D\n:101480005F4CFFF7C7FF4FF470004FF0E0210023DF\n:101490005C4AC1F8880D44F823200133B02BFAD1FF\n:1014A000594B8021594A03F8011B9342FBD14FF05D\n:1014B000E0254C4E4FF08039DFF880B1DFF880A195\n:1014C0004FF0FF31C5F8084D0027C6F80491C6F863\n:1014D00000B1C6F8F490C6F8F0A0D5F8243DDFF8C6\n:1014E000648143F4E0234A4AC5F8243DD8F81C300F\n:1014F00023F07F0343F04003C8F81C30D8F82430B1\n:1015000023F07F0343F04003C8F824309166D1668E\n:101510001167516700F0B4F83E4B3F49A3633F4B5E\n:10152000E36363236B610323AF612B613C4BC5F81D\n:10153000203DD5F8FC3D43F08073C5F8FC3D394BA8\n:101540001A6842F001021A605B680B6000F020F933\n:10155000C6F804913448C6F800B1C6F8F490C6F84D\n:10156000F0A000F0B1FAD8F86C10304B304A41F4DA\n:101570004051C8F86C101F60C3F80871C3F81871A7\n:10158000C3F82871C3F83871936BDB0708D442F6AF\n:101590001563284951651365936B43F00103936309\n:1015A000234A254C936843F00113936000F054FAEA\n:1015B00000F096FA00F01AF900F05CF82368132B9B\n:1015C000FCD900F0ABF92368B3F5967FFBD300F0AC\n:1015D00055F800F051F800F073FA00F079FA30BFD6\n:1015E000FDE700BF00800D40C0570000FC1B0060FD\n:1015F00000000000C0120020C07300600000002046\n:1016000000100020053A000000E400E0A0E400E043\n:1016100000C00A40FD4D000024170020014E0000CC\n:1016200000002020001000E00046C32300400840D6\n:1016300000400D400000C056281700201B10182045\n:101640000C0D111300C00F40054B4FF42A01054A41\n:1016500005485A641864054A99639546FFF7E8FE01\n:1016600000C00A40ABAAAAAA0700200000800720F9\n:10167000704700BF704700BF704700BF00BF704792\n:1016800010B44FF0E023002110243148C3F8941D1A\n:10169000C3F89C4D1124C3F8A00D2E48C3F89C4DEF\n:1016A0001224C3F8A00D2C48C3F89C4D2B4AC3F854\n:1016B000A00D2B4C42F015022A48C3F89C4DC3F8EC\n:1016C000A00D294C2948C3F89C4DC3F8A00D284C07\n:1016D000C3F89C2D2748284AC3F8A04DC3F89C0D99\n:1016E000C3F8A02D02F5A022244C0C322448C3F8E4\n:1016F0009C4DC3F8A02D234AC3F89C0D224CC3F87F\n:10170000A02D02F14062C3F89C4D2048C3F8A02DE3\n:101710000C32C3F89C0DC3F8A02D00BF00BF00BF62\n:1017200000BF00BF0122C3F8942DBFF34F8FBFF35A\n:101730006F8FC3F8501FBFF34F8FBFF36F8FD3F876\n:10174000142D5DF8044B42F44032C3F8142D704759\n:101750003F00001025000807090010008017002036\n:1017600013002000210002071400002025000813A8\n:10177000090000101600202027000B13170000405E\n:10178000180000602F000B07190000701A0000807D\n:10179000F0B4154A40274FF480314FF480564FF48F\n:1017A00000554FF4404443F24200136913F0020F16\n:1017B0000ED113F4005F0FD013F4805F0ED0002B16\n:1017C000F3DA13F4803F0BD15B060BD5F0BC704706\n:1017D000946151619061E8E75561E6E75661E4E79D\n:1017E0009161E2E75761E0E700800D403F4A032046\n:1017F0003F49F3EE095AD2F880304FF0000C9FEDCC\n:101800003D6A23F001039FED3C5A30B4C2F88030AA\n:10181000C2F89000D1F8E010384DCBB2384C3948BE\n:101820002B6007EE903A0B0DC1F30B21F8EEE77A2F\n:1018300006EE903A07EE101A334BB8EEC77A2160E5\n:10184000F8EEE66A314937EEC66A37EEC55A76EEEB\n:10185000C76A77EEE57A26EE266AC3ED006A25EEC2\n:10186000265AD2F8803067EEA64AC0ED007AC6EE5E\n:10187000275A274885EE276AC4EEA76A75EE875A6D\n:10188000FCEEE55A36EE076A15EE904ABCEEC66AE3\n:1018900043EA045376EE877AC2F8803016EE103AA7\n:1018A000D2F89041FCEEE77A01EA0341214317EEBA\n:1018B000903AC2F89011C3F30B03D2F890110B4386\n:1018C0001449C2F89031D2F8803043F00203C2F8D4\n:1018D0008030114B80F840C0C1F840314FF0E02318\n:1018E000012230BCC3F80821704700BF00810D40C1\n:1018F00000441F400000AA420000B4421417002018\n:1019000010170020181700201C1700200000FF0FE0\n:1019100000E400E000100020C53B0000314B40F621\n:10192000617210B5C3F8202140F2044400F0D4F8ED\n:101930002D4A2E49D2F880302D4843F00303C2F8D7\n:1019400080302C4BC1F8604102681A4203D1D1F8B3\n:10195000A8319A071BD0254A4FF00041244B596308\n:10196000D2F8403143F00203C2F84031D2F840319E\n:101970009B07FBD44FF400304FF0E0211C4B4FF09D\n:101980000042C1F88C0219209A6300F0ADF8184AA1\n:101990004FF08040154C002190630A20164B1160D7\n:1019A0004FF42072C4F8A801184600F085F84FF4EF\n:1019B000800203464FF4810040F243111860C4F8DE\n:1019C00058311A640D4B0E4AC4F84811C3F804226A\n:1019D0004FF0E0224FF400310123C2F80C11C4F89B\n:1019E000403110BD00800D4000C00F4000002E406F\n:1019F00000900D40001C1E00000000200010002080\n:101A0000AD3D000008B50E4B1B6E9B0700D4FBBE1E\n:101A100072B60C4B00200C4AC3F8400103F160433E\n:101A20000A49A3F55F2311649D46BFF34F8F4FF41E\n:101A300000130748074ADB6902609B68984700BFAC\n:101A400000441F4000002E4000C00A400300200058\n:101A500000802020000012EB104BA020104AD96E0D\n:101A600041F4403110B4D96640F23764D96E41F484\n:101A70004071D96654649064936C1B06FCD4094A87\n:101A800040F23761A02351649364936C13F0800398\n:101A9000FBD1054A13705DF8044B704700C00F403E\n:101AA00000400C4000800C404F170020F8B500BFEC\n:101AB000F8BC08BC9E4670475FF800F0DD5300009C\n:101AC0005FF800F0B15400005FF800F091320000C0\n:101AD0005FF800F0ED3600005FF800F01D450000F3\n:101AE0005FF800F0113900005FF800F08135000068\n:041AF00045000000AD\n:101AF4001603550053004200200053006500720095\n:101B0400690061006C000000180354006500650062\n:101B14006E00730079006400750069006E006F0048\n:101B24000403090409026200030100C032080B0027\n:101B3400020202010009040000010202010005245E\n:101B440000100105240101010424020605240600F5\n:101B5400010705820310001009040100020A0000B5\n:101B64000007050302400000070584024000000945\n:101B740004020002FF6AFF0007058102400001071A\n:101B8400050102400001000009026200030100C0D7\n:101B940032080B00020202010009040000010202E3\n:101BA400010005240010010524010101042402069A\n:101BB400052406000107058203100005090401003D\n:101BC400020A000000070503020002000705840260\n:101BD4000002000904020002FF6AC700070581022F\n:101BE4000002010705010200020100000A060002CA\n:081BF400EF02014001000000B6\n:101BFC0000000000000000000000000000000000D9\n:101C0C0000000000000000000000000000000000C8\n:101C1C000548064B1B1AD90F01EBA301491002D042\n:101C2C00034B03B118477047C0120020C0120020AC\n:101C3C000000000008B5054B1BB105490548AFF382\n:101C4C000080BDE80840FFF7E3BF00BF00000000C4\n:101C5C00BC1600200094006008B504F0A5FD1049E6\n:101C6C00104A4FF0640C104B48681268A3FB023208\n:101C7C00920C0CFB02F24B681B1A9A42FBD804F034\n:101C8C003FFD002805DD04F07FFD04F039FD002840\n:101C9C00F9DC00210D20BDE8084003F0BDBA00BFFF\n:101CAC00001000E00C08002083DE1B432DE9F843F4\n:101CBC00284C01210D20284E03F0AEFA04F1040843\n:101CCC006521264DDFF89C90254F284602F08CFFAD\n:101CDC00D9F8041032686423A7FB0202920C03FBB0\n:101CEC0002F2D9F804305B1A9A42FAD8284602F06C\n:101CFC0013FD444502D014F8011FE6E7D9F804009F\n:101D0C006424174B32681749A3FB0232920C04FB74\n:101D1C0002F24B681B1A9A42FBD8134C00210D207F\n:101D2C000E4D03F079FA42F21077266803E023682F\n:101D3C009B1BBB420AD8284602F09CFC0028F6DD0F\n:101D4C00064802F0E9FCC0B2BDE8F883EF20BDE81C\n:101D5C00F88300BF880200200C080020EC0800204B\n:101D6C0083DE1B43001000E0281700202DE9F84308\n:101D7C0001210D20BF4C03F04FFA01210D2003F07F\n:101D8C004BFA04F104086921BB4DBC4EDFF8F49208\n:101D9C00BB4F304602F028FFD9F804102A686423A0\n:101DAC00A7FB0202920C03FB02F2D9F804305B1A77\n:101DBC009A42FAD8304602F0AFFC444502D014F8EF\n:101DCC00011FE6E7D9F804006421AD4B2A68A3FB98\n:101DDC000232920C01FB02F2AA494B681B1A9A427E\n:101DEC00FBD800210D2003F017FAA44802F094FC54\n:101DFC00C0B200283CD1A44C01210D209F4E03F011\n:101E0C000BFA04F105087721DFF878929C4F3046E5\n:101E1C0002F0EAFED9F804102A686423A7FB020238\n:101E2C00920C03FB02F2D9F804305B1A9A42FAD8EE\n:101E3C00304602F071FC444502D014F8011FE6E76D\n:101E4C00D9F8040064218E4B2A68A3FB0232920C51\n:101E5C0001FB02F28B494B681B1A9A42FBD80021FA\n:101E6C000D2003F0D9F9854802F056FCC0B210B130\n:101E7C00E020BDE8F883854C01210D207F4E03F056\n:101E8C00CBF904F105087721DFF8F8917C4F304647\n:101E9C0002F0AAFED9F804102A686423A7FB0202F8\n:101EAC00920C03FB02F2D9F804305B1A9A42FAD86E\n:101EBC00304602F031FC444502D014F8011FE6E72D\n:101ECC00D9F8040064216E4B2A68A3FB0232920CF1\n:101EDC0001FB02F26B494B681B1A9A42FBD800219A\n:101EEC000D2003F099F9654802F016FCC0B20028E9\n:101EFC00BED1674C01210D20604E03F08DF904F129\n:101F0C0005087721DFF87C915D4F304602F06CFEBE\n:101F1C00D9F804102A686423A7FB0202920C03FB75\n:101F2C0002F2D9F804305B1A9A42FAD8304602F021\n:101F3C00F3FB444502D014F8011FE6E7D9F804007E\n:101F4C0064214F4B2A68A3FB0232920C01FB02F274\n:101F5C004C494B681B1A9A42FBD800210D2003F008\n:101F6C005BF9464802F0D8FBC0B2002880D1494C3E\n:101F7C0001210D20414E03F04FF904F106087721A1\n:101F8C00DFF800913E4F304602F02EFED9F80410D7\n:101F9C002A68A7FB02326423920C03FB02F2D9F8E5\n:101FAC0004305B1A9A42FAD8304602F0B5FB44452D\n:101FBC0002D014F8011FE6E7D9F804006421304B75\n:101FCC002A68A3FB0232920C01FB02F22D494B68EA\n:101FDC001B1A9A42FBD800210D2003F01DF927484B\n:101FEC0002F09AFBC0B200287FF442AF2A4C0121C8\n:101FFC000D20224E03F010F904F105087721DFF8CB\n:10200C0084901F4F304602F0EFFDD9F804102A6877\n:10201C00A7FB02326423920C03FB02F2D9F80430C2\n:10202C005B1A9A42FAD8304602F076FB444502D04D\n:10203C0014F8011FE6E7D9F804006424104B2A6851\n:10204C001049A3FB0232920C04FB02F24B681B1AE0\n:10205C009A42FBD800210D2003F0DEF8074802F06D\n:10206C005BFBC0B200287FF403AFBDE8F843FFF779\n:10207C001DBE00BF900200200C080020EC080020C0\n:10208C0083DE1B43001000E098020020A002002019\n:10209C00A8020020B0020020000300202DE9F04F20\n:1020AC00DFF87082012183B00D2003F0B5F8934C5A\n:1020BC0008F1050745467721914EDFF84CA2DFF871\n:1020CC004492304602F090FDDAF804102268642342\n:1020DC00A9FB0202920C03FB02F2DAF804305B1A41\n:1020EC009A42FAD8304602F017FBBD4202D015F8DE\n:1020FC00011FE6E7834BDAF8040022688249A3FB50\n:10210C0002326423920C03FB02F24B681B1A9A42B4\n:10211C00FBD800210D2003F07FF8794802F0FCFA7F\n:10212C0010F0FF0040F09480784D0121ADF80400D0\n:10213C008DF806000D2003F06FF805F10C0A7721DD\n:10214C006F4EDFF8C4B1DFF8BC91304602F04CFDA5\n:10215C00DBF8041022686423A9FB0202920C03FB37\n:10216C0002F2DBF804305B1A9A42FAD8304602F0DD\n:10217C00D3FA554502D015F8011FE6E7614BDBF8A1\n:10218C00040022686049A3FB02326423920C03FB17\n:10219C0002F24B681B1A9A42FBD800210D2003F067\n:1021AC003BF8574802F0B8FAC0B2A0BBFFF77EFD6F\n:1021BC00054688BB524802F0AFFA824650485FFA97\n:1021CC008AFA4F4DDFF840B18DF804A002F0A4FA62\n:1021DC005FFA80F901210D204A4E8DF8059003F02D\n:1021EC001BF87721284602F0FFFCDBF8041022686C\n:1021FC00A6FB02326423920C03FB02F2DBF80430E0\n:10220C005B1A9A42FAD8284602F086FAB84507D0EB\n:10221C0018F8011FE6E7E425284603B0BDE8F08F67\n:10222C00384BDBF8040022683749A3FB02326423E5\n:10223C00920C03FB02F24B681B1A9A42FBD800214A\n:10224C000D2002F0E9FF2E4802F066FAC0B220B170\n:10225C00E825284603B0BDE8F08F2D4D01210D2057\n:10226C00274E02F0D9FF05F10C087721DFF898B062\n:10227C00244F304602F0B8FCDBF804102268A7FBB0\n:10228C0002326423920C03FB02F2DBF804305B1A7B\n:10229C009A42FAD8304602F03FFA454502D015F87A\n:1022AC00011FE6E7174BDBF8040022681649A3FB75\n:1022BC0002326423920C03FB02F24B681B1A9A4203\n:1022CC00FBD800210D2002F0A7FF0D4802F024FAE4\n:1022DC00C0B200289FD1FFF7E9FC054600289BD12E\n:1022EC00074802F019FA0446504604F05DFA4846D5\n:1022FC0004F05AFAE0B204F057FA8DE70C0800200B\n:10230C00EC08002083DE1B43001000E0B802002024\n:10231C00C8020020080300202DE9F04F83B04FF0D5\n:10232C0000093A4E0DF1040ADFF8ECB0384D4FF0CD\n:10233C0072084FEA19224FEA1943802401210D201B\n:10234C008DF804406C468DF800808DF801908DF866\n:10235C0002208DF8033002F05FFF2E4F41463846C5\n:10236C0002F042FCDBF8041032686423A5FB020285\n:10237C00920C03FB02F2DBF804305B1A9A42FAD897\n:10238C00384602F0C9F9544502D014F8011FE6E7AB\n:10239C00DBF8041064223368A5FB03039B0C02FBDF\n:1023AC0003F3DBF80420521A9342FAD800210D20D3\n:1023BC004FF08008174C642702F02EFF204602F0E5\n:1023CC0059F988B9DBF804103268A5FB0232920C7B\n:1023DC0007FB02F2DBF804305B1A9A42FAD820466B\n:1023EC0002F048F90028EDD0204602F095F9C0B271\n:1023FC0004F0DAF9B8F10108E0D109F18009B9F576\n:10240C00002F94D1404603B0BDE8F08F0C0800209B\n:10241C0083DE1B43EC080020001000E02DE9F04F98\n:10242C00644D85B042F210762C6804E02B681B1BBF\n:10243C00B34200F2B78004F063F90328F6DD002301\n:10244C002F685D4E1C460293ADF80C30CDE900337D\n:10245C0005E02B68B268DB1B934280F0A780C4F1C7\n:10246C0004010DEB040004F0B9F80444032CF0D97A\n:10247C009DF802009DF803309DF800109DF8012096\n:10248C0003EB002302EB01229BB292B201334FEA21\n:10249C0082299A424FEA832B78D2484EDFF828A142\n:1024AC00474D00214FEA192072244FEA19434FF08F\n:1024BC00800CADF80C108DF802000D208DF800404A\n:1024CC006C46404F8DF801908DF80330CDE9011129\n:1024DC0001218DF804C002F09FFE14F8011B384650\n:1024EC0002F082FBDAF8040031686423A5FB01C119\n:1024FC00890C03FB01F1DAF804301B1A9942FAD863\n:10250C00384602F009F90DF105039C42E5D1DAF8E1\n:10251C00040064213368A5FB03439B0C01FB03F30C\n:10252C00DAF80410091A8B42FAD800210D204FF06A\n:10253C008008244C642702F06FFE204602F09AF8C3\n:10254C0088B9DAF804003168A5FB0131890C07FB66\n:10255C0001F1DAF804301B1A9942FAD8204602F03D\n:10256C0089F80028EDD0204602F0D6F8C0B204F06D\n:10257C001BF9B8F10108E0D109F18009CB4590D8DD\n:10258C0004F0BEF8002805DD04F0FEF804F0B8F8FD\n:10259C000028F9DC00210D2002F03EFE002005B0E1\n:1025AC00BDE8F08FEB2005B0BDE8F08F012333734D\n:1025BC005EE700BF28170020DC0800200C08002074\n:1025CC0083DE1B43EC080020001000E02DE9F04FE7\n:1025DC00DFF8908289B042F21075D8F8004005E01F\n:1025EC00D8F800301B1BAB4200F2238104F088F8B2\n:1025FC000328F5DD0023D8F80060934D1C460693A4\n:10260C00ADF81C30CDE9043306E0D8F80030AA68E8\n:10261C009B1B934280F0158104F11003C4F104015B\n:10262C000DEB030003F0DAFF0444032CEDD99DF805\n:10263C0012209DF813309DF8101003EB02239DF827\n:10264C00112002EB01229BB292B2013391029A4209\n:10265C0001914FEA8321039180F0E380DFF8089227\n:10266C007A4E7B4CDFF804B27A4D019F01210D208C\n:10267C0002F0D2FDC7F3072AC7F307437721764F41\n:10268C000293204602F0B0FADBF804103268A5FB86\n:10269C0002326423920C03FB02F2DBF804305B1A67\n:1026AC009A42FAD8204602F037F84F4502D017F874\n:1026BC00011FE6E7DBF804103268A5FB0232642345\n:1026CC00920C03FB02F2DBF804305B1A9A42FAD844\n:1026DC0000210D2002F0A0FD204602F01DF810F0A4\n:1026EC00FF0040F0AA80029B04AF05908DF81730D4\n:1026FC005A4BADF81C008DF816A00DF11D0A93E88D\n:10270C000300083304908DF8141093E8030006902E\n:10271C000D208DF81C10012102F07EFD17F8011B15\n:10272C00204602F061FADBF804103268A5FB023295\n:10273C006423920C03FB02F2DBF804305B1A9A421E\n:10274C00FAD8204601F0E8FF5745E7D1DBF8041032\n:10275C003268A5FB02326423920C03FB02F2DBF815\n:10276C0004305B1A9A42FAD800210D2002F054FD75\n:10277C00204601F0D1FFC0B200285ED1384F0121B4\n:10278C000D2002F049FD07F1040A6521204602F0F4\n:10279C002BFADBF804103268A5FB02326423920C8E\n:1027AC0003FB02F2DBF804305B1A9A42FAD820469B\n:1027BC0001F0B2FF574502D017F8011FE6E7DBF82E\n:1027CC0004103268A5FB02326423920C03FB02F264\n:1027DC00DBF804305B1A9A42FAD800210D2002F083\n:1027EC001BFD42F21077D8F800A005E0D8F80030B5\n:1027FC00A3EB0A03BB4218D8204601F03BFF00288C\n:10280C00F4DD204601F088FF10F0FF000ED1019B93\n:10281C0003F580670197FFF71FFA039BBB423FF656\n:10282C0024AF002009B0BDE8F08FEF2009B0BDE85F\n:10283C00F08FEB2009B0BDE8F08FE42009B0BDE8C3\n:10284C00F08F01232B73F2E6DC0800200C0800202B\n:10285C00EC08002083DE1B4318030020D802002064\n:10286C0088020020281700201D030020001000E023\n:10287C002DE9F04FDFF89C8289B042F21075D8F840\n:10288C00004005E0D8F800301B1BAB4200F225815C\n:10289C0003F036FF0328F5DD0023D8F80060964DD1\n:1028AC001C460693ADF81C30CDE9043306E0D8F88D\n:1028BC000030AA689B1B934280F0138104F1100333\n:1028CC00C4F104010DEB030003F088FE0444032C57\n:1028DC00EDD99DF812209DF813309DF8101003EBE4\n:1028EC0002239DF8112002EB01229BB292B201331C\n:1028FC0091029A4201914FEA8321039180F0E58085\n:10290C00DFF814927D4E7E4CDFF810B27D4D019FA6\n:10291C0001210D2002F080FCC7F3072AC7F30743FF\n:10292C007721794F0293204602F05EF9DBF8041010\n:10293C003268A5FB02326423920C03FB02F2DBF833\n:10294C0004305B1A9A42FAD8204601F0E5FE4F4556\n:10295C0002D017F8011FE6E7DBF804103268A5FB7C\n:10296C0002326423920C03FB02F2DBF804305B1A94\n:10297C009A42FAD800210D2002F04EFC204601F0BC\n:10298C00CBFE10F0FF0040F0B380029B04AF05902B\n:10299C008DF817305D4BADF81C008DF816A00DF1BD\n:1029AC001D0A93E80300083304908DF8141093E883\n:1029BC00030006900D208DF81C10012102F02CFC58\n:1029CC0017F8011B204602F00FF9DBF804103268EF\n:1029DC00A5FB02326423920C03FB02F2DBF80430F9\n:1029EC005B1A9A42FAD8204601F096FE5745E7D179\n:1029FC00DBF804103268A5FB02326423920C03FB53\n:102A0C0002F2DBF804305B1A9A42FAD800210D204E\n:102A1C0002F002FC204601F07FFEC0B2002863D118\n:102A2C003B4F01210D2002F0F7FB07F1040A652151\n:102A3C00204602F0D9F8DBF804103268A5FB02320C\n:102A4C006423920C03FB02F2DBF804305B1A9A420B\n:102A5C00FAD8204601F060FE574502D017F8011F46\n:102A6C00E6E7DBF804103268A5FB02326423920C13\n:102A7C0003FB02F2DBF804305B1A9A42FAD800210D\n:102A8C000D2002F0C9FB42F21077D8F800A005E047\n:102A9C00D8F80030A3EB0A03BB421AD8204601F049\n:102AAC00E9FD0028F4DD204601F036FE10F0FF00B1\n:102ABC0001D01B280ED1019B03F580670197FFF70E\n:102ACC00CBF8039BBB423FF622AF002009B0BDE818\n:102ADC00F08FEF2009B0BDE8F08FEB2009B0BDE816\n:102AEC00F08F01232B73F4E6E42009B0BDE8F08FDE\n:102AFC00E82009B0BDE8F08FDC0800200C080020AD\n:102B0C00EC08002083DE1B4320030020D8020020A9\n:102B1C00880200202817002025030020001000E068\n:102B2C002DE9F04F924D83B0924E4FF06409924CC8\n:102B3C00DFF848A2DFF84882002701210D2000971A\n:102B4C008DF8047002F068FB4FF4FA514FF4FA6000\n:102B5C0002F062F908218346012002F05DF9394642\n:102B6C000746052002F058FBDAF804102A68A8FB87\n:102B7C000232920C02EB8202D200DAF804305B1AB9\n:102B8C009A42FAD8304601F01FFE052002F0F0FA06\n:102B9C000121052002F040FB052002F0E9FA002299\n:102BAC004FF4E131304601F043FE0120C6F80890A5\n:102BBC0002F0DEFA2378C52130463B3B237002F04D\n:102BCC0013F8DAF804102A68A8FB0232920C09FBFD\n:102BDC0002F2DAF804305B1A9A42FAD8237801210F\n:102BEC0030460133237001F0FFFFDAF804102A6835\n:102BFC00A8FB0232920C09FB02F2DAF804305B1AE1\n:102C0C009A42FAD803213046217001F0EDFFDAF830\n:102C1C0004102A68A8FB0232920C09FB02F2DAF8C3\n:102C2C0004305B1A9A42FAD823789A213046663BD4\n:102C3C00237001F0D9FFDAF804102A68A8FB0232DD\n:102C4C00920C09FB02F2DAF804305B1A9A42FAD8B9\n:102C5C000021304601F0C8FFDAF804102A68A8FBFE\n:102C6C000232920C09FB02F2DAF804305B1A9A4237\n:102C7C00FAD82378142130461433237001F0B4FFB2\n:102C8C00DAF804102A68A8FB0232920C09FB02F253\n:102C9C00DAF804305B1A9A42FAD823783046594253\n:102CAC00C9B2CB1A237001F09FFFDAF804102A681E\n:102CBC00A8FB0232920C09FB02F2DAF804305B1A20\n:102CCC009A42FAD8304601F0D5FC03463046002B28\n:102CDC0008DD01F021FD304601F0CCFC0346304606\n:102CEC00002BF6DC237803210333237001F07CFFE7\n:102CFC00DAF804102A68A8FB0232920C09FB02F2E3\n:102D0C00DAF804305B1A9A42FAD8304601F004FD26\n:102D1C0005226946304602F045F89DF80230062B34\n:102D2C005BD0102B40F0FC81DAF804102A68A8FB69\n:102D3C000232920C0BFB02F2DAF804305B1A9A4264\n:102D4C00FAD80021042002F067FADAF804102A6895\n:102D5C00A8FB0232920C07FB02F2DAF804305B1A81\n:102D6C009A42FAD80121042002F056FA0CE000BF76\n:102D7C000C080020EC08002051170020001000E087\n:102D8C0083DE1B4301F0C8FC304601F073FC0346A4\n:102D9C003046002BF6DC304640F2E73701F06AFC97\n:102DAC00002814DCDAF804102A68A8FB0232920C12\n:102DBC0002EB8202DAF804305B1A9A42FAD8013F2D\n:102DCC003FF4BAAE304601F055FC0028EADD30463F\n:102DDC0001F0A2FCC0B20228E4D10520B94E02F0E9\n:102DEC00C7F923789121B8486F3B237001F0FCFEA2\n:102DFC0071686420B54B2A68A3FB0232920C00FB6D\n:102E0C0002F273685B1A9A42FBD8012002F0B0F907\n:102E1C003A21AD48217001F0E7FE7168AB4B2A688E\n:102E2C00A84EA3FB02326423920C03FB02F27368DC\n:102E3C005B1A9A42FBD823784E21A3480B4423708B\n:102E4C0001F0D2FE7168A14B2A689E4EA3FB0232A0\n:102E5C006423920C03FB02F273685B1A9A42FBD850\n:102E6C0023786F2198480B44237001F0BDFE7168E4\n:102E7C00964B2A68934EA3FB02326423920C03FBFD\n:102E8C0002F273685B1A9A42FBD8237874218E483D\n:102E9C000B44237001F0A8FE71688C4B2A68894E94\n:102EAC00A3FB02326423920C03FB02F273685B1ADD\n:102EBC009A42FBD823783A2183480B44237001F0C3\n:102ECC0093FE7168814B2A687E4EA3FB0232642309\n:102EDC00920C03FB02F273685B1A9A42FBD82378BC\n:102EEC00552179480B44237001F07EFE7168774BB5\n:102EFC002A68744EA3FB02326423920C03FB02F289\n:102F0C0073685B1A9A42FBD8237873216E480B4482\n:102F1C00237001F069FE71686C4B2A68694EA3FB43\n:102F2C0002326423920C03FB02F273685B1A9A421E\n:102F3C00FBD82378652164480B44237001F054FEC0\n:102F4C007168624B2A685F4EA3FB02326423920CB9\n:102F5C0003FB02F273685B1A9A42FBD82378642154\n:102F6C0059480B44237001F03FFE7168574B2A6897\n:102F7C00544EA3FB02326423920C03FB02F27368DF\n:102F8C005B1A9A42FBD823783A214F480B442370A2\n:102F9C0001F02AFE71684D4B2A684A4EA3FB02329F\n:102FAC006423920C03FB02F273685B1A9A42FBD8FF\n:102FBC00217845480139C9B24B00237001F014FE49\n:102FCC007168424B2A683F4EA3FB02326423920C79\n:102FDC0003FB02F273685B1A9A42FBD8012002F0E1\n:102FEC00C7F82378932138486D3B237001F0FCFD22\n:102FFC00364B70682A683349A3FB02326423920C67\n:10300C0003FB02F24B681B1A9A42FBD8DFF8C0A0F4\n:10301C000120DFF8B48002F0ABF8DFF8A8900AF1D9\n:10302C00C3072A4E1AF8011F404623780B4423701D\n:10303C0001F0DAFDD9F8041064232A68A6FB020219\n:10304C00920C03FB02F2D9F804305B1A9A42FAD8BC\n:10305C00BA45E7D1012002F08BF8237893211A4866\n:10306C006D3B237001F0C0FD184BD9F804002A68A1\n:10307C001449A3FB02326423920C03FB02F24B684B\n:10308C001B1A9A42FBD8DFF84CA00120DFF83880DD\n:10309C0002F06EF8DFF82C900AF107070B4E1AF8C5\n:1030AC00011F404623780B44237001F09DFDD9F895\n:1030BC00041064232A68A6FB0202920C03FB02F2A2\n:1030CC000AE000BF001000E0EC08002083DE1B4388\n:1030DC00170800200F080020D9F804305B1A9A4218\n:1030EC00FAD85745DBD11A4C012002F041F8942153\n:1030FC00204601F079FD052002F03AF801E001F0DC\n:10310C000BFB204601F0B6FA03462046002BF6DCFA\n:10311C000D20002102F080F8012003B0BDE8F08FF3\n:10312C002378EE210A48123B237001F05DFDDAF89A\n:10313C0004406421074A2B680748A2FB03239B0C1D\n:10314C0001FB03F34268121B9342FBD80020E4E717\n:10315C00EC08002083DE1B43001000E02DE9F8434F\n:10316C00314F00224FF4E131304D3846304C01F0F4\n:10317C005FFB64232E6840F2EE28BB60DFF8B8904A\n:10318C002C4F03F0A5FB2378002B40D03B78DA07BB\n:10319C003DD52B68D9F800209B1A0E2B37D901216D\n:1031AC000D2002F063F80121052002F05FF80121E7\n:1031BC00042002F05BF80121084602F057F80021C8\n:1031CC00084602F053F80021052002F025F80021F2\n:1031DC00012002F021F80021084602F01DF801211F\n:1031EC00042002F019F803F073FB2378002BFAD0BB\n:1031FC003B78DB07F7D52B68D9F800209B1A0E2BF0\n:10320C00F1D901210D20BDE8F84302F005B82B6877\n:10321C0022789B1B2AB1B3F5FA6FC0D803F058FB88\n:10322C00AFE74345FAD9BAE7EC080020281700208D\n:10323C005B1700205A170020381700202DE9F04F9B\n:10324C00ADF2244D0021944C4FF47F7209A80691E5\n:10325C008DF81C1042F210750891CDE9041103F0A1\n:10326C00B5FE266803E023689B1BAB4263D803F0D2\n:10327C0047FA0128F7DD00252768884E06958DF85A\n:10328C001C50CDE9045504E02368B268DB1B934263\n:10329C005DD205F11003C5F102010DEB030003F043\n:1032AC009DF90544012DEFD99DF8103001210D2019\n:1032BC000025009344F620669DF81130DFF8DC8180\n:1032CC00019301F0A9FF27680BE02368DB1BB342D5\n:1032DC0037D803F015FA1FFA80F9B9F1000F40F056\n:1032EC00AC80B5F5806FF0D36D4C01210D206D4D88\n:1032FC00039404F1040801F08FFF6B4E7721DFF883\n:10330C00B0916A4F304601F06FFCD9F804102A686E\n:10331C00A7FB02326423920C03FB02F2D9F80430AF\n:10332C005B1A9A42FAD8304601F0F6F9444511D0AE\n:10333C0014F8011FE6E7EB2420460DF2244DBDE8FE\n:10334C00F08FEC2420460DF2244DBDE8F08F0123C4\n:10335C003373A9E7554BD9F804002A685449A3FBE9\n:10336C0002326423920C03FB02F24B681B1A9A4242\n:10337C00FBD800210D200DF11F060DF21F144A4F32\n:10338C00DFF82CB1DFF8249101F046FF16F8011F8D\n:10339C00384601F029FCDBF804102A68A9FB02323C\n:1033AC006423920C03FB02F2DBF804305B1A9A42A2\n:1033BC00FAD8384601F0B0F9A642E7D13A4801F004\n:1033CC00F5F93A4BDBF804002A683949A3FB0232C1\n:1033DC006423920C03FB02F24B681B1A9A42FBD833\n:1033EC00314801F099F9C0B200284FD1314E01217A\n:1033FC000D202D4F029606F1040901F00DFFDFF8A8\n:10340C00B0A07721DFF8A4B0384601F0EDFBDAF874\n:10341C0004102A68ABFB02326423920C03FB02F209\n:10342C00DAF804305B1A9A42FAD8384601F074F98B\n:10343C004E4541D016F8011FE6E715FA80F0B0F5BD\n:10344C00806F1BDC83B20293D4F800A04FF0000B0A\n:10345C0007E02368D8F80820A3EB0A03934280F016\n:10346C00998005EB0B0008ABA9EB0B01184403F09A\n:10347C00B5F88344D945ECD8029D32E7C5F580698F\n:10348C004FF480631FFA89F90293DDE7E1242046AB\n:10349C000DF2244DBDE8F08F28170020DC08002029\n:1034AC00E80200200C080020EC08002083DE1B43FF\n:1034BC00001000E0F0020020BB4BDAF804102A6880\n:1034CC00BA48A3FB02326423920C03FB02F243685A\n:1034DC005B1A9A42FBD800210D200DF21F2BB44E23\n:1034EC00DFF8C8A2B04F01F097FE14F8011F304668\n:1034FC0001F07AFBDAF804102A68A7FB0232642385\n:10350C00920C03FB02F2DAF804305B1A9A42FAD8F6\n:10351C00304601F001F95C45E7D1A54801F046F9C8\n:10352C00A14BDAF804102A68A048A3FB02326423EA\n:10353C00920C03FB02F243685B1A9A42FBD89C483C\n:10354C0001F0EAF8C0B2002840F0BF80DFF86CB29E\n:10355C0001210D20964E01F05FFE5C467721934FC2\n:10356C00DFF844A2304601F03FFB79682A68AAFBD9\n:10357C0002326423920C03FB02F27B685B1A9A42C0\n:10358C00FBD8304601F0C8F88A4B9C4207D014F89F\n:10359C00011FE7E70123029D88F80C30A1E6824B5E\n:1035AC0079682A688148A3FB02326423920C03FBDE\n:1035BC0002F243685B1A9A42FBD800210D2001F0FD\n:1035CC002BFE7B4801F0A8F810F0FF007BD18DF8A2\n:1035DC001500774E754FDFF8D0A1DDE9002303EB22\n:1035EC0002239BB29A008DF816209A099B028DF843\n:1035FC001720009304AB1C4601936F4B93E8030018\n:10360C00203304908DF8141093E8030006900D20DD\n:10361C008DF81C10012101F0FFFD14F8011B304640\n:10362C0001F0E2FA79682A68AAFB02326423920C50\n:10363C0003FB02F27B685B1A9A42FBD8304601F01E\n:10364C006BF80DF11D039C42E7D1574A79682B6842\n:10365C005648A2FB032364229B0C02FB03F3426833\n:10366C00521A9342FBD800210D2001F0D5FD504891\n:10367C0001F052F8C0B230BBFEF718FB044600282C\n:10368C007FF45AAE01210D2001F0C6FD484F772181\n:10369C00464E454CDDF80CA0384601F0A5FA716891\n:1036AC002A68A4FB02326423920C03FB02F27368B7\n:1036BC005B1A9A42FBD8384601F02EF8C24506D068\n:1036CC001AF8011FE8E7E62436E6E22434E6364A27\n:1036DC0071682B683548A2FB032364229B0C02FB08\n:1036EC0003F34268521A9342FBD800210D200DF2CD\n:1036FC001F240DF21F382E4EDFF8B0A02A4F01F018\n:10370C008BFD14F8011F304601F06EFADAF8041044\n:10371C002A68A7FB02326423920C03FB02F2DAF84C\n:10372C0004305B1A9A42FAD8304600F0F5FF444553\n:10373C00E7D11F4801F03AF81B4ADAF804102B685D\n:10374C001A48A2FB032364229B0C02FB03F342687E\n:10375C00521A9342FBD8164800F0DEFFC0B2002884\n:10376C007FF494AE01210D2001F056FD104F77210E\n:10377C000E4E0D4CDDF80880384601F035FA7168B4\n:10378C002A68A4FB02326423920C03FB02F27368D6\n:10379C005B1A9A42FBD8384600F0BEFFC8450FD0E2\n:1037AC0018F8011FE8E700BF83DE1B43001000E0A0\n:1037BC00EC08002015030020D80200201003002084\n:1037CC00704A71682B687048A2FB032364229B0C1F\n:1037DC0002FB03F34268521A9342FBD800210D20DE\n:1037EC000DF21F440DF21F36684FDFF89C91DFF885\n:1037FC00948101F011FD16F8011F384601F0F4F91F\n:10380C00D9F804102A68A8FB02326423920C03FB3B\n:10381C0002F2D9F804305B1A9A42FAD8384600F012\n:10382C007BFFA642E7D1594800F0C0FF554AD9F8B2\n:10383C0004102B685448A2FB032364229B0C02FB4C\n:10384C0003F34268521A9342FBD8504800F064FFCD\n:10385C00C0B200287FF439AF01210D2001F0DCFC4F\n:10386C004A4F7721484E474C384601F0BDF97168F4\n:10387C002B68A4FB032364229B0C02FB03F37268EA\n:10388C00521A9342FBD8384600F046FF404B9B45FA\n:10389C0002D01BF8011FE7E73A4A71682B683A48D7\n:1038AC00A2FB032364229B0C02FB03F34268521A13\n:1038BC009342FBD800210D2001F0AEFC334800F000\n:1038CC002BFF10F0FF007FF4FEAE324A009B8DF808\n:1038DC00150003F500732D4E2B4C2A4F92E8030074\n:1038EC0020328DF81410049092E803001A0A1B0C75\n:1038FC0006908DF81C100D2001218DF816208DF8E6\n:10390C00173001F089FCDDF8048018F8011B3046F3\n:10391C0001F06AF961682B68A7FB032364229B0CF6\n:10392C0002FB03F36268521A9342FBD8304600F054\n:10393C00F3FE0DF11D039845E7D164686421114A2B\n:10394C002B681148A2FB03239B0C01FB03F3426879\n:10395C00121B9342FBD800210D2001F05DFC0B489B\n:10396C0000F0DAFEC0B200287FF4ADAEFEF79EF98F\n:10397C00044600287FF4E0AC01460D2001F04CFC1D\n:10398C00DAE400BF83DE1B43001000E0EC080020EB\n:10399C0015030020D80200202DE9F04FADF2344D74\n:1039AC000021C44C4FF47F720DA80A918DF82C1095\n:1039BC0042F210750C91CDE9081103F007FB266853\n:1039CC0003E023689B1BAB4264D802F099FE0128EC\n:1039DC00F7DD00252768B84E0A958DF82C50CDE9F7\n:1039EC00085505E02368B268DB1B934280F0068122\n:1039FC0005F12003C5F102010DEB030002F0EEFD11\n:103A0C000544012DEED99DF8203001210D20002513\n:103A1C00019344F620669DF82130DFF89C820293D6\n:103A2C0001F0FAFB27680CE02368DB1BB34200F2C1\n:103A3C00DF8002F065FE1FFA80F9B9F1000F40F04B\n:103A4C00E080B5F5806FEFD39C4C01210D209C4E8E\n:103A5C0001F0E2FB04F1050877219A4DDFF86C9236\n:103A6C00994F284601F0C0F8D9F804103268A7FB2A\n:103A7C0002326423920C03FB02F2D9F804305B1A75\n:103A8C009A42FAD8284600F047FE444508D014F86C\n:103A9C00011FE6E7EB2420460DF2344DBDE8F08F14\n:103AAC00894BD9F8040032688849A3FB023264239D\n:103ABC00920C03FB02F24B681B1A9A42FBD80021B2\n:103ACC000D2001F0A9FB7F4800F026FE10F0FF004E\n:103ADC0040F0BF80DFF804920DF12D088DF8250021\n:103AEC0009F10805774FDFF8E4B1DFF8DCA1DDE977\n:103AFC00012399E8030003EB022308909BB28DF895\n:103B0C0024109A00D2B201928DF82620C3F38712AA\n:103B1C009B020292039308AB8DF827201C4604935A\n:103B2C0095E803000A900D208DF82C10012101F06E\n:103B3C0073FB14F8011B384601F056F8DBF804103F\n:103B4C003268AAFB02326423920C03FB02F2DBF80C\n:103B5C0004305B1A9A42FAD8384600F0DDFD444531\n:103B6C00E7D1594BDBF8041032685848A3FB0232FA\n:103B7C006423920C03FB02F243685B1A9A42FBD853\n:103B8C0000210D2001F048FB4E4800F0C5FDC0B2ED\n:103B9C00002865D1FEF78AF80446002862D01B285D\n:103BAC007FF479AF4A4C01210D20464F01F034FBD4\n:103BBC0004F1050B7721DFF814A1384601F014F855\n:103BCC00414BDAF804103268A3FB02326423920CE6\n:103BDC0003FB02F2DAF804305B1A9A42FAD8384640\n:103BEC0000F09AFD5C4500F0608114F8011FE4E7D9\n:103BFC00EC2420460DF2344DBDE8F08F01233373D5\n:103C0C0001E715FA80F0B0F5806F1ADC83B20393EC\n:103C1C00D4F800A04FF0000B06E02368D8F8082079\n:103C2C00A3EB0A03934216D205EB0B000CABA9EBEA\n:103C3C000B01184402F0D2FC8344D945EDD8039D06\n:103C4C00FFE6C5F580694FF480631FFA89F9039389\n:103C5C00DEE7E8241FE70123039D88F80C30F0E62B\n:103C6C00E42418E71B289DD01A4B01210D20154D7B\n:103C7C001C460693DFF854B001F0CEFA124F7721B0\n:103C8C00284600F0B1FFDBF804103268A7FB0232C3\n:103C9C006423920C03FB02F2DBF804305B1A9A42A9\n:103CAC00FAD8284600F038FD0B4B9C4218D014F87B\n:103CBC00011FE5E728170020DC0800202003002066\n:103CCC000C080020EC08002083DE1B43001000E0F1\n:103CDC0018030020E8020020EC020020D80200208B\n:103CEC00A94BDBF804103268A848A3FB023264230A\n:103CFC00920C03FB02F243685B1A9A42FBD8002138\n:103D0C000D200DF12F040DF22F15A14FDFF87CA221\n:103D1C00DFF874B201F080FA14F8011F384600F095\n:103D2C0063FFDAF804103268ABFB02326423920CA6\n:103D3C0003FB02F2DAF804305B1A9A42FAD83846DE\n:103D4C0000F0EAFCAC42E7D1914800F02FFD8E4B1D\n:103D5C00DAF8041032688D48A3FB02326423920C0B\n:103D6C0003FB02F243685B1A9A42FBD8884800F0C6\n:103D7C00D3FCC0B2002840F0A281864B01210D205B\n:103D8C00834F1C460593DFF804A201F045FADFF8D7\n:103D9C00F8B17721384600F027FFDAF804103268C2\n:103DAC00ABFB02326423920C03FB02F2DAF8043010\n:103DBC005B1A9A42FAD8384600F0AEFC764B9C421D\n:103DCC0002D014F8011FE5E76F4BDAF804103268E3\n:103DDC006E48A3FB02326423920C03FB02F243688D\n:103DEC005B1A9A42FBD800210D202C460DF22F2B8A\n:103DFC00674DDFF898A1644F01F00EFA14F8011F1B\n:103E0C00284600F0F1FEDAF804103268A7FB023203\n:103E1C006423920C03FB02F2DAF804305B1A9A4228\n:103E2C00FAD8284600F078FC5C45E7D1584800F0F9\n:103E3C00BDFC554BDAF8041032685448A3FB02322F\n:103E4C006423920C03FB02F243685B1A9A42FBD880\n:103E5C004F4800F061FCC0B2002840F034814F4B59\n:103E6C0001210D204A4D1C460793DFF820B101F0CB\n:103E7C00D3F9454F7721284600F0B6FEDBF8041045\n:103E8C003268A7FB02326423920C03FB02F2DBF8CC\n:103E9C0004305B1A9A42FAD8284600F03DFC404B9D\n:103EAC009C427FD014F8011FE5E7374BDAF8041079\n:103EBC0032683648A3FB02326423920C03FB02F2F5\n:103ECC0043685B1A9A42FBD800210D2001F0A4F93B\n:103EDC002F4800F021FC10F0FF007FF4C1AE8DF8EC\n:103EEC00250008AC019B2A4F8DF82630029BDFF889\n:103EFC009CB0DFF894A08DF8273099E80300089067\n:103F0C008DF8241095E803000A900D208DF82C10E4\n:103F1C00012101F081F914F8011B384600F064FE10\n:103F2C00DBF804103268AAFB02326423920C03FB08\n:103F3C0002F2DBF804305B1A9A42FAD8384600F0E9\n:103F4C00EBFB4445E7D1104ADBF8041033680F480B\n:103F5C00A2FB032364229B0C02FB03F34268521A5C\n:103F6C009342FBD800210D2001F056F9084800F0CF\n:103F7C00D3FBC0B200287FF473AEFDF797FE044666\n:103F8C0000283FF471AE86E583DE1B43001000E091\n:103F9C00EC080020F0020020F402002010030020A6\n:103FAC0015030020B44BDBF804103268B348A3FBB4\n:103FBC0002326423920C03FB02F243685B1A9A42AE\n:103FCC00FBD800210D2001F027F9AD4800F0A4FB2F\n:103FDC0010F0FF0075D1019B08AC8DF825008DF811\n:103FEC002630029BA64D8DF82730A64BDFF88CB2FD\n:103FFC00A14F99E8030008908DF8241093E8030072\n:10400C000A900D208DF82C10012101F005F914F8FF\n:10401C00011B284600F0E8FDDBF804103268A7FB12\n:10402C0002326423920C03FB02F2DBF804305B1ABD\n:10403C009A42FAD8284600F06FFB4445E7D18E4AE5\n:10404C00DBF8041033688D48A2FB032364229B0C1D\n:10405C0002FB03F34268521A9342FBD800210D2055\n:10406C0001F0DAF8864800F057FBC0B248BBFDF708\n:10407C001DFE044600287FF40EAD01210D2001F039\n:10408C00CBF87F4F77217D4D7B4CDDF818A038465F\n:10409C0000F0AAFD69683268A4FB02326423920C1A\n:1040AC0003FB02F26B685B1A9A42FBD8384600F0AD\n:1040BC0033FB754B9A4508D01AF8011FE7E7E1244A\n:1040CC00E9E4E624E7E4E224E5E46B4A6968336852\n:1040DC006A48A2FB032364229B0C02FB03F3426895\n:1040EC00521A9342FBD800210D200DF22F240DF211\n:1040FC002F3A634DDFF884B15F4F01F08DF814F85F\n:10410C00011F284600F070FDDBF804103268A7FB95\n:10411C0002326423920C03FB02F2DBF804305B1ACC\n:10412C009A42FAD8284600F0F7FA5445E7D1544899\n:10413C0000F03CFB504ADBF8041033684F48A2FBFC\n:10414C00032364229B0C02FB03F34268521A934232\n:10415C00FBD84B4800F0E0FAC0B20028AFD10121E7\n:10416C000D2001F059F8464F7721444D424CDDF8B3\n:10417C0014A0384600F038FD69683268A4FB02329E\n:10418C006423920C03FB02F26B685B1A9A42FBD815\n:10419C00384600F0C1FA3D4B9A4502D01AF8011F7F\n:1041AC00E7E7354A696833683448A2FB0323642285\n:1041BC009B0C02FB03F34268521A9342FBD800217A\n:1041CC000D200DF22F4A0DF22F352D4F2B4CDFF811\n:1041DC00A8B001F021F815F8011F384600F004FDD5\n:1041EC0061683268ABFB02326423920C03FB02F26F\n:1041FC0063685B1A9A42FBD8384600F08DFAAA45E0\n:10420C00E9D11F4800F0D2FA1B4A616833681B4899\n:10421C00A2FB032364229B0C02FB03F34268521A99\n:10422C009342FBD8164800F077FAC0B200287FF40E\n:10423C004AAF01210D2000F0EFFF114F77210F4DF8\n:10424C000D4CDDF81CA0384600F0CEFC69683368D4\n:10425C00A4FB032364229B0C02FB03F36A68521A2F\n:10426C009342FBD8384600F057FA094B9A4511D0C7\n:10427C001AF8011FE7E700BF83DE1B43001000E0C4\n:10428C00EC080020F8020020EC020020F4020020D0\n:10429C0015030020394A696833683948A2FB0323A7\n:1042AC0064229B0C02FB03F34268521A9342FBD824\n:1042BC0000210D2000F0B0FF324800F02DFA10F074\n:1042CC00FF007FF4FEAE039B2F4A8DF8250003F50B\n:1042DC0000732C4D2A4C294F99E803008DF82410BB\n:1042EC00089092E803001A0A1B0C0A908DF82C1007\n:1042FC000D2001218DF826208DF8273000F08CFF41\n:10430C00DDF8109019F8011B284600F06DFC61686F\n:10431C003368A7FB032364229B0C02FB03F3626844\n:10432C00521A9342FBD8284600F0F6F9C145E9D160\n:10433C0064686421114A33681148A2FB03239B0C67\n:10434C0001FB03F34268121B9342FBD800210D20A2\n:10435C0000F062FF0B4800F0DFF9C0B200287FF4D8\n:10436C00B0AEFDF7A3FC044600287FF494AB0146E5\n:10437C000D2000F051FFFFF78EBB00BF83DE1B4307\n:10438C00001000E0EC080020F80200202DE9F043BA\n:10439C00012183B00D20A44CA44F00F03DFF02F08E\n:1043AC00AFF9002800F09C8002F0EEF9A04AC0B2F0\n:1043BC00102818BF012810708CBF0123002320285F\n:1043CC000CBF002303F0010380280CBF002303F073\n:1043DC00010313B1F02840F0DF80202800F2C580E3\n:1043EC002028DCD801A353F820F000BF732900006B\n:1043FC0049290000432900003D2900002F29000015\n:10440C00AF27000021290000132900000529000016\n:10441C00AF270000F7280000AF270000AF270000EF\n:10442C00AF270000AF270000AF270000CF28000007\n:10443C00AF270000AF270000AF270000AF27000018\n:10444C00AF270000AF270000AF270000AF27000008\n:10445C00AF270000AF270000AF270000AF270000F8\n:10446C00AF270000AF270000AF2700008128000015\n:10447C0001210D206F4D00F0CFFE01210D2000F029\n:10448C00CBFE05F104097521DFF8C0816A4E304678\n:10449C0000F0AAFB6168D8F800206423A7FB020295\n:1044AC00920C03FB02F263685B1A9A42FBD830460B\n:1044BC0000F032F9A94576D015F8011FE7E75F4EF9\n:1044CC0000205F4D96F800802870B8F1000F00F0C6\n:1044DC009780FDF7C1FB02F013F900287FF464AF5D\n:1044EC0003B0BDE8F083FDF7D9FD554B1870FDF70F\n:1044FC00B3FB54E7FEF7BCF9514B1870FDF7ACFB5E\n:10450C004DE7FFF749FA4E4B1870FDF7A5FB46E750\n:10451C00FEF794FE4A4B1870FDF79EFB3FE7FEF743\n:10452C0055F8474B1870FDF797FB38E7FDF7F4FE8D\n:10453C0035E7FDF773FF32E70120424D02F07AFABE\n:10454C00064602F07FFA01AB05209B1B2B8002F084\n:10455C002BF92888000A02F027F9287802F024F9B0\n:10456C001DE7022002F020F919E7802838D0F02846\n:10457C007FF415AF0120334D02F05CFA064602F0D1\n:10458C0061FA01AB02209B1B2B8002F00DF9052078\n:10459C0002F00AF94020DAE7284B1B7863B3202895\n:1045AC007FF61EAFFBE661686423D8F80020A7FBFA\n:1045BC000202920C03FB02F263685B1A9A42FBD86C\n:1045CC0000210D2000F028FE1B4800F0A5F810F08B\n:1045DC00FF001B4B18BFE0201870FDF73DFB7AE77E\n:1045EC0000210D2000F018FE4FF4FA7000F0C0FD11\n:1045FC00154B1B689847D2E6E020FDF72DFBCEE665\n:10460C00FEF78EFA287028B9E12318462B70FDF7B7\n:10461C0023FB60E7FDF7AAFB287010B90123337068\n:10462C0057E786F8008054E7001000E083DE1B4358\n:10463C005017002080020020EC08002052170020A8\n:10464C005317002044170020DC1600200C08002013\n:10465C0001207047B0F84630B0F848209BB292B2B7\n:10466C00934202D2013AD01A7047416B01390A4485\n:10467C00D01A7047016972B6B0F84A20B0F84C30C5\n:10468C0092B29BB29A423CBF806B1218C86AD31A82\n:10469C0062B6C0F302601844704700BFB0F84A100D\n:1046AC000246B0F84C3089B29BB2994210B40469FE\n:1046BC0014D00133906B116B984298BF0023994230\n:1046CC0006D85B1A526AD05CC0B25DF8044B7047D6\n:1046DC00126A5DF8044BD05CC0B2704772B6B0F889\n:1046EC004A0080B2814201D062B6E2E7E36A13F07D\n:1046FC00E06F03D14FF0FF3062B6E6E7E3690120CB\n:10470C000024116AA2F84A00C3F30900DBB2A2F834\n:10471C004C404B70F0E700BFB0F84A100246B0F8BE\n:10472C004C3089B29BB2994230B4046925D0013324\n:10473C00946B9C4216D9106B1FFA83FC984217D9C4\n:10474C00106AC05CC0B2956DA2F84CC045B19942DC\n:10475C001CD3CB1AD16B994202D3D36DC5F88830D8\n:10476C0030BC70474FF0000C106B63469842E7D892\n:10477C00181A556A285CC0B2E5E7084672B6B2F85A\n:10478C004A1089B2884204D062B6D0E70C44E31ACE\n:10479C00E0E7E36A13F0E06F03D14FF0FF3062B64D\n:1047AC00DEE7E069C0F30900F9E700BF90F8443098\n:1047BC0043B110B5044602F08BF894F84430002B4A\n:1047CC00F9D110BD704700BF38B5D0E90453D3E917\n:1047DC0003120968114228D090F84420044632B1E3\n:1047EC0002F076F894F84430002BF9D1636900217B\n:1047FC000E4AA961207E03EB0010007D02EB001035\n:10480C00456805202860657E03EB051393F834306A\n:10481C0002EB0312A36D52681060A4F84A10A4F8BE\n:10482C004C1013B1E26DC3F8842038BDE0030020B6\n:10483C0007EE901A9FED9A7A0421B6EE005AF8EE24\n:10484C00677A9FED986A41F6FF7CC7EE275A2DE9EF\n:10485C00F0478E460569012407EE901AF8EEE77AC8\n:10486C0085EEA77A77EE057AFDEEE77A17EE903AA9\n:10487C006345A8BF6346012BB8BF012307EE903AEE\n:10488C00F8EEE76A76EEC76AC6EE877AF5EEC07A7E\n:10489C00F1EE10FA48BFF1EE677AF4EEC67AF1EE5B\n:1048AC0010FA03D8B0EE676A8E461C4601312129F6\n:1048BC00D2D10021436902F40076A0F84A10B3F873\n:1048CC005AC08E42A0F84C10B3F85860A0F84610AD\n:1048DC00A0F8481080F84410816BDF68A1EB060645\n:1048EC00A1EB0C01C0E90F6139681E6941EA0601B0\n:1048FC00396014BF01210021817640F0AC80017E2B\n:10490C00694E03EB0118DFF8C09198F81470D8F8D1\n:10491C001CA006EB0717B968C1F800907968D8F8A5\n:10492C0018700F60BAF1000F03D0D8F82010CAF835\n:10493C000010477ED92103EB071898F834C006EB1A\n:10494C000C1CDCF808703960DCF80410D8F83870EE\n:10495C000F60417E03EB0111CF6B0FB1096C396015\n:10496C000EF1FF31BEF1080F4FEA0161CCBF4FF0E1\n:10497C00000E4FF0010E01F0F85144EA4E44214371\n:10498C005C682961597801F110030021E9604749FD\n:10499C0041F8234041694FF0010E454C02F0030CE5\n:1049AC004F7891F85610434B39554FF00217446924\n:1049BC00617803EB511301F01F019B000EFA01F11A\n:1049CC001960EF62AB6A43F08803AB6253073ED4C5\n:1049DC004CF4701302F00F01042908BF43F080431C\n:1049EC0097062ED5817E43F0805300293AD11607C5\n:1049FC00AB6103D52B6943F000532B616B69D10676\n:104A0C0023F0805348BF43F080536B61D30503D52B\n:104A1C002B6943F400532B61A36883B1264E347881\n:104A2C00002C3AD0611E254DC9B22B1F05EB81011C\n:104A3C0001E0994225D053F8042F9042F9D1BDE8FA\n:104A4C00F087817E0029D2D043F0A003CFE71C4B26\n:104A5C004CEA0303BEE7477E4FF2D901124E03EB3B\n:104A6C0007186AE7417E43F0A00304EB011191F8AB\n:104A7C00341006EB0116B668316821F44041316000\n:104A8C00B5E7631CDBB20F4A3370137845F824008A\n:104A9C0043F002031370BDE8F0870123074DF2E7E2\n:104AAC00001BB74BEC78AD60E00300200010002039\n:104ABC0000E400E0403800384D1700201C150020A1\n:104ACC0010003C005E17002038F00100EFF313805B\n:104ADC00B8B9EFF310834BB9EFF305823AB94FF441\n:104AEC008073EFF3118050B1984208D270470F2AAF\n:104AFC00F7D9054B9B5CEFF311800028F4D11846D5\n:104B0C0070474FF0FF30F1E7F0E300E0036D2DE963\n:104B1C00F04104460F46066913B1426DC3F8842078\n:104B2C00A37E2BB172B6B36943F00053B36162B686\n:104B3C00B4F84650636BADB20135AB424CD84FF074\n:104B4C0000084546B4F848309BB29D4219D028E085\n:104B5C0073691B0210D5B4F84830626B9BB20133F9\n:104B6C009A4236D99AB2E16A99422DD9E169CB5C65\n:104B7C00DBB2F361A4F84820B4F848309BB2AB42E6\n:104B8C000FD1FFF7A3FF6369B3F856308342DFDA26\n:104B9C00FF28F1DD01F09CFEB4F848309BB2AB422B\n:104BAC00EFD0E36AAB421AD9FFB2E3695F5572B634\n:104BBC00012084F84400A4F84680B36943F4000350\n:104BCC00B36162B6BDE8F0815B1AA16ACB5CDBB263\n:104BDC00CFE700221346C6E71FFA85F8B2E7ED1AB5\n:104BEC00FFB2A36A5F55E2E7FFF790BF0269536912\n:104BFC0013F4401F70B543D0D36A13F0E06FC3F3C6\n:104C0C00026E3AD0B0F84A50B0F84C60ADB2B6B2C1\n:104C1C0007E0016A01F803C00EF1FF3313F0FF0E39\n:104C2C001DD0D1696B1C846BB0F84CC0C1F3090169\n:104C3C009C4298BF00231FFA8CFC9C45ECD0046B63\n:104C4C005FFA81FC1D469C42A3EB0404E1D8436A45\n:104C5C0003F804C00EF1FF3313F0FF0EE1D1ABB239\n:104C6C00A0F84A30836D43B1B54254D3AD1B016CEF\n:104C7C00A94202D8C16DC3F884105369D90245D436\n:104C8C009669330228D553691D0225D5B0F84650D4\n:104C9C00B0F84830ADB29BB206E0C169C95CC9B28C\n:104CAC00D161D16A4C0512D4AB4238D0446B01337C\n:104CBC00C16A9C4298BF00239942A3EB0104ECD833\n:104CCC00816A095DC9B2D161D16A4C05ECD599B242\n:104CDC00AB42A0F8481025D0710216D553695B027F\n:104CEC0013D50021036D80F8441013B1416DC3F846\n:104CFC008810837E2BB172B6936923F000539361B5\n:104D0C0062B6936923F48003936170BD536943F4D5\n:104D1C0080135361B4E7816B891B0D44A7E79BB2E9\n:104D2C00A0F84830936923F400039361936943F42A\n:104D3C0080039361D0E700BF0148FFF757BF00BF66\n:104D4C00EC080020084601F02FBD00BF2DE9F04112\n:104D5C000C46D1B1EAB180468E1800250E4F04E006\n:104D6C0001F022FDB44205440CD0D8F8003014F800\n:104D7C00010B1B68BB42F3D0014640469847B44236\n:104D8C000544F2D12846BDE8F0810D462846BDE821\n:104D9C00F0811546F6E700BF5531000001F0F4BC78\n:104DAC0001F08CBC2DE9F047884651B3914662B3B3\n:104DBC0082460027164C174E25680BE001F0E4FCE8\n:104DCC00002810DA01F084FD2368DAF808205B1B58\n:104DDC00934210D2DAF800305B69B342EED0504601\n:104DEC0098470028EEDB013708F8010BB945E3D1F1\n:104DFC003846BDE8F087012338468AF80C30BDE808\n:104E0C00F0870F463846BDE8F0871746F0E700BF3D\n:104E1C0028170020AD310000884200DB704730B409\n:104E2C00124C091A2368EBB1114A124D82FB032C68\n:104E3C00DA179C44C2EB2C4244F2A71C05FB12333C\n:104E4C000D4D05FB02F20CFB0322002A0CDA6FF06D\n:104E5C00004313442360B3FBF1F201FB123330BC6B\n:104E6C0018447047054BF5E71346F3E70815002087\n:104E7C005F0B4E831DF30100ECF4FFFF42CE0C1FC1\n:104E8C00A249A34B88422DE9F047A24C5E699A696E\n:104E9C00D4F80C801BD9A04B984240F20281C31A63\n:104EAC009E491B0AA1FB031340F22761DB0903EBAC\n:104EBC00830303EB830303F2E2438B4228BF0B46CD\n:104ECC00A3F54877964BA3FB0737FF0804E0954FF3\n:104EDC00B8428CBF0E2706278D4908F01F09D1F860\n:104EEC008030B94543F0C003C1F880300CD228F0B3\n:104EFC001F08A1F5F82148EA0708C1F80C800B68D7\n:104F0C00002BFCDA08F01F0916F0007324D1864937\n:104F1C000C698649A14300F0EA8082F48051344642\n:104F2C004FF4805514F0605F04D026F060561E4399\n:104F3C00774B5E6111F4405F07D022F44052744904\n:104F4C002A438A618B6C1A07FCD446F00076704AAF\n:104F5C005661936C9B06FCD4754CA04200F2CE803B\n:104F6C004FF0010C0146634603FB011203F1010EE5\n:104F7C000CF10105A24218D8BEF1080F4FF0010345\n:104F8C0040F08D80BCF1040F00F291800A18A2420F\n:104F9C0000F2A48005FB00F1AC4603F1010E03FB0B\n:104FAC0001120CF10105A242E6D90CF1FF318C0281\n:104FBC0086EA81215F4810445F4A90427FD9DFF82E\n:104FCC00A4A16C225D48584DB0FBFEF0D5F800E072\n:104FDC00B0FBFCF0DFF890C10EEA0C0CD44509D004\n:104FEC0042F400524FF4805CC5F800C02A602A6875\n:104FFC00002AFCDA464A156905F007059D4203D0E4\n:10500C001361936CDD03FCD411F4E05F09D026F43A\n:10501C00E05604F4E0543E4A26435661936C9907DB\n:10502C00FCD44749474A014491423CD8464BC909F4\n:10503C00A3FB0131090B4B1E1B0286EA030212F47F\n:10504C00407F06D026F4407603F44073304A334355\n:10505C0053612F4A536923F000735361936C9B0681\n:10506C00FCD43A4B4F45A3FB00234FF0FF324FEAE1\n:10507C009343B0FBF1F1B2FBF3F3354A1060354AC0\n:10508C001160354A136008D228F01F08214A48EAFB\n:10509C000707D7601368002BFCDABDE8F08773466E\n:1050AC0062E7122718E74FF440730421C5E70CF1AF\n:1050BC00FF31204807238C02104486EA8121274ABD\n:1050CC00DFF8A8A0A2FB0020020D2548362A38BF25\n:1050DC00362202FB00F042EA0A0A74E74FEA8C24FB\n:1050EC00002386EA8C214FF0010EAC4662E71D4688\n:1050FC0086F0C05411464FF0C05313E700244FF014\n:10510C00010C024631462346E64653E700A4781FBD\n:10511C0000C00F40000008400046C32323B24C00DF\n:10512C001F85EB5100366E0100800D404030008031\n:10513C00FFB19F26808D5B00FF7EF64D00643F4DD6\n:10514C007FD1F0087F17B42C9F10E50083DE1B4342\n:10515C000C0800200808002020170020819F5E16F4\n:10516C00001BB7006C2000807F3001800020008085\n:10517C0000B970472DE9F84F01218146214C224D91\n:10518C00224E54E8003F2A68306844E80013002B94\n:10519C00F7D11F494B684FF47A7BDFF878A01B1AC4\n:1051AC0001270BFB02F8DAF80020A3FB02325A4568\n:1051BC0094BF9044D84454E8003F2A68306844E8CF\n:1051CC000073002BF7D14B68DAF800C01B1A0BFBED\n:1051DC0002F2A3FB0C3CBCF57A7F94BF624402F54F\n:1051EC007A72A2EB0802B2F57A7F06D3B9F1010903\n:1051FC0008F57A78DFD1BDE8F88F01F069FB044936\n:10520C00D9E700BF2C1700202817002024170020F6\n:10521C00001000E020170020272816D80201104BA0\n:10522C0003EB00109B5810B4C2685C68144205D0A4\n:10523C0061B95DF8044BC3F888207047836851B19D\n:10524C00084A5DF8044B1A60704770475DF8044BD0\n:10525C00C3F884207047044A5DF8044B1A60704709\n:10526C00E003002038F0010038300100272829D84D\n:10527C00164B0201012903EB00109A5810B4536825\n:10528C00C4680ED004290CD023EA0403536083684D\n:10529C00A9B1022917D003290CBF0D4A0D4A1A6077\n:1052AC0007E0234301295360836808D040F6380295\n:1052BC001A60436815225DF8044B1A607047382257\n:1052CC001A60F6E77047044A1A60F2E7E003002020\n:1052DC00383001003800010038F0010008B5FDF746\n:1052EC003DFFFFF753F801F0F3FAFAE7844641EA81\n:1052FC00000313F003036DD1403A41D351F8043B42\n:10530C0040F8043B51F8043B40F8043B51F8043B93\n:10531C0040F8043B51F8043B40F8043B51F8043B83\n:10532C0040F8043B51F8043B40F8043B51F8043B73\n:10533C0040F8043B51F8043B40F8043B51F8043B63\n:10534C0040F8043B51F8043B40F8043B51F8043B53\n:10535C0040F8043B51F8043B40F8043B51F8043B43\n:10536C0040F8043B51F8043B40F8043B51F8043B33\n:10537C0040F8043B51F8043B40F8043B403ABDD2A2\n:10538C00303211D351F8043B40F8043B51F8043B44\n:10539C0040F8043B51F8043B40F8043B51F8043B03\n:1053AC0040F8043B103AEDD20C3205D351F8043BD3\n:1053BC0040F8043B043AF9D2043208D0D2071CBF9F\n:1053CC0011F8013B00F8013B01D30B8803806046C8\n:1053DC00704700BF082A13D38B078DD010F003033E\n:1053EC008AD0C3F10403D21ADB071CBF11F8013BAE\n:1053FC0000F8013B80D331F8023B20F8023B7BE7FD\n:10540C00043AD9D3013A11F8013B00F8013BF9D227\n:10541C000B7803704B7843708B78837060467047C1\n:10542C0001F1FF3C70B56646002400E00134B0FB8E\n:10543C00F2F502FB1503092B03F1370E03F13003D0\n:10544C005FFA8EFE98BF5FFA83FE9042284606F8FC\n:10545C0001EFEBD2631C0022C818CA547CB162461F\n:10546C001CF8015F10F8016DA1EB0C0302328CF8F3\n:10547C000060013B521A057023449A42EFDB084648\n:10548C0070BD00BF00230F2248F2B82C194610B58E\n:10549C004FF470444FF4806EA0F88C414FF460448C\n:1054AC00A0F88E210A46A0F89031B0F888319BB252\n:1054BC0043F0F003A0F8883101EB4103013100EB1C\n:1054CC00431304299C80A3F806E05A841A865A8058\n:1054DC005A81A3F80EC05A82DA825A83DA83EBD14E\n:1054EC00B0F888319BB243F00F03A0F88831B0F8C4\n:1054FC0088319BB243F47063A0F8883110BD00BFB3\n:10550C00374B384A996F384841F47F0170B5996729\n:10551C0041F20106D3F8801045F6C05543F226043B\n:10552C000A43C3F88020FFF7ADFF00F58040FFF77A\n:10553C00A9FF00F58040FFF7A5FF00F58040FFF7BD\n:10554C00A1FF0022A0F503104FF00F0E114600EB47\n:10555C0042134FEA421C01329981042A5981A3F863\n:10556C000EE09E82DD8020F80C1019829C81EED119\n:10557C0000221E484FF00F0E41F20106114645F66F\n:10558C00C05543F2260400EB42134FEA421C013291\n:10559C009981042A5981A3F80EE09E82DD8020F8BF\n:1055AC000C1019829C81EED1002211480F2641F279\n:1055BC000105114645F6C05443F2260E00EB42138A\n:1055CC004FEA421C01329981042A5981DE819D8265\n:1055DC00DC8020F80C101982A3F80CE0EED170BD21\n:1055EC0000C00F40000003FC00C03D4000001E4006\n:1055FC0000401E4072B6EFF30583524CC4F8843061\n:10560C001EF0040F0CBFEFF30882EFF309824FF08A\n:10561C00E0234D4E4D4DD3F8280DD3F82C1DC4E985\n:10562C002201D3F8341DD3F8383DC4E9241393690F\n:10563C00C4F89830D369C4F89C3000F0BDF884ED00\n:10564C00280A01F0E5F90B214FF0FF32C4F8A40051\n:10565C000B46C4F880103E49301D5A40202402F0FD\n:10566C000103013C01FB03F383EA5202F7D1A84288\n:10567C0002D073680646EFE7324BC3F8A820BFF39D\n:10568C004F8F4FF0E0233049324AC3F8701FC3F8F4\n:10569C00702FBFF34F8FBFF36F8F2F4A02252F4808\n:1056AC00D36E2F4943F44053D3660560D3692D481C\n:1056BC0023F07F0343F04003D3610B6883423DD852\n:1056CC00264D00214FF0E0234FF0FF3229600126D8\n:1056DC00C5F808112449C5F80011C5F80861C3F8CC\n:1056EC008021C3F88421C3F88821C3F88C21C3F826\n:1056FC00902101E000F052F9D5F80C31002BF9D0D3\n:10570C000134C5F80C614F2CF4D9184B0220184900\n:10571C004FF00042C1F840015A63D5F80C313BB947\n:10572C00144815490D4A0163D2F80C31002BFAD0FC\n:10573C004FF0E023114AC3F80C2DFEE7FFF7A0FB56\n:10574C00BEE700BF00FF272080FF2720A8FF2720EF\n:10575C002083B8EDA0FF272000C00F400040084078\n:10576C000C080020803DCD0B009F240000900D40C4\n:10577C0000002E4000800F40F100AD0B0400FA0534\n:10578C000A490A6838B108B513180948834204D885\n:10579C0010460B6008BD1046704701F07BFC0C23D3\n:1057AC004FF0FF320360104608BD00BF4C090020CB\n:1057BC0000002820FFF71EBF124AD2F880305B078A\n:1057CC00FBD5D2F880301048C3F30B230F4990ED72\n:1057DC00007A07EE903A91ED006AB8EE477A0C4ADF\n:1057EC00F8EEE77A0B4BD2ED006A77EEC77A93EDC1\n:1057FC00007AB8EE477A67EE867A87EEA60A37EE1D\n:10580C00400A704700810D40101700201817002027\n:10581C001C17002014170020836BF0B41BB15368C5\n:10582C0043F40043536072B6446B3CB31A4B226092\n:10583C00D3F8B0410C421DD1184E776804E074685F\n:10584C00E41BB4F5166F0BD2D3F8404144F48044FA\n:10585C00C3F84041D3F8B851D3F840416404EED5B5\n:10586C000D4007D10C4CC0E90225D4F8B0310B43E4\n:10587C00C4F8B031426362B6F0BC7047064DC0E963\n:10588C000224D5F8B0310B43C5F8B0310263426342\n:10589C0062B6F0BC704700BF00002E40001000E064\n:1058AC0070B5056B9DB106462A46002403E01268CC\n:1058BC000134012A0CD0536813F08003F7D0326303\n:1058CC002CB12846B36B2D689847013CF9D170BDBB\n:1058DC00C6E90C33F4E700BF30B4D9B91F4C204BE8\n:1058EC000021204A01254FF0011099601D60C4E988\n:1058FC00023180245C60C2F8BC01D2F8B0311A4885\n:10590C002B43C2F8B0310160D2F8B031002BFBD17F\n:10591C0030BC70470904154B104C012541F0800137\n:10592C009860104A596000F580511D60D96000F5EF\n:10593C000051A364196100F5405100F58040596194\n:10594C0000219861E164D2F8B03143F48033C2F89D\n:10595C00B031D2F8B031002BFBD1C0E700000020F1\n:10596C00C012002000002E40B0160020E0120020D3\n:10597C00084901220B7802FA00F023EA00000870B3\n:10598C0030B9054AD2F8483123F08003C2F84831C7\n:10599C00704700BF5617002000002E402DE9F04F35\n:1059AC00974C83B0D4F84471FB07C4F8447153D5B9\n:1059BC00D4F8AC21002A4AD0924EDFF860A2DFF86E\n:1059CC007492DFF874B2DFF87482C4F8AC21D6E9B3\n:1059DC000A20D4F8403143F40053C4F84031D4F8D1\n:1059EC0040319D04F5D5D4F8403123F40053C4F86C\n:1059FC0040314FF00113C4F8B431D4F8B45115F060\n:105A0C000115FAD193B28446CAF80050B3F5086F69\n:105A1C0000F0CF8100F2DB8040F202318B4200F0CB\n:105A2C00E78100F29A80822B00F0CB81B3F5817F65\n:105A3C0040F08A8010F0780F83B200F003824FF0B0\n:105A4C000113C4F8C031D4F8AC21002ABDD16C4A82\n:105A5C00D2F8BC31002B42D17E0616D5684BD3F858\n:105A6C00AC21C3F8AC21D3F8BC21C3F8BC21D3F8CA\n:105A7C00B041002CFBD14FF0FF32C3F8B421D3F866\n:105A8C00843100F029FD604B1C60FC0103D55F4B99\n:105A9C001B6803B19847B80103D55D4B1B6803B174\n:105AAC009847790708D5564BD3F8843113F4007313\n:105ABC0047D0584B01221A70514BD3F848311A0673\n:105ACC000AD53B0608D5544A13782BB1013BDBB2FF\n:105ADC001370002B00F0728203B0BDE8F08F4F49B9\n:105AEC00C2F8BC310868034240F0D181464A1468C0\n:105AFC001C40B1D05FEA144810D0424E4FF001095F\n:105B0C0098FAA8F5B5FA85F506EBC51009FA05F56E\n:105B1C004030FFF7C5FE38EA0508F1D1A4B2002CDD\n:105B2C009AD0384E4FF0010894FAA4F5B5FA85F5E1\n:105B3C0006EBC51008FA05F5FFF7B2FEAC43F3D13E\n:105B4C008AE7344A1370B7E7802B7FF478AF344878\n:105B5C0002210580FFF7C0FE75E7B3F5A06F00F0DA\n:105B6C000B81A3F5D063012B3FF669AF2D4B5D681C\n:105B7C00002D3FF464AF1FFA8CFC4FEA124E04E088\n:105B8C001D690C33002D3FF45AAF1A887245F7D1BA\n:105B9C005A886245F4D14FEA1E22032A00F0A581EF\n:105BAC001A89000C824228BF0246BEF5007F40F0E5\n:105BBC00A181184B1C4918781C4B0192002818BF66\n:105BCC0019461B48FFF792FB194D019AE1E142F28D\n:105BDC0021218B427CD033D942F221318B4200F00F\n:105BEC0081804FF6C0018B427FF429AF10F47F4FB8\n:105BFC0083B27FF424AF43F46E4363F30F0CB5E729\n:105C0C0000002E4000000020B41600203C1700209D\n:105C1C00401700205C1700205D170020B0160020F4\n:105C2C00D416002060060020281B00608C1B00602E\n:105C3C0000002020A81600205DCFC6B8C0012E4061\n:105C4C00B3F5106F66D042F221018B427FF4F7AEB0\n:105C5C00030C072B7FF4F3AEB24BB349F560D9605C\n:105C6C00B249B360C3F80890C1E9002001221A6060\n:105C7C00AF4A5A60AF4A1A61D4F8B01141F0010131\n:105C8C00C4F8B01102F5805102F5005259619A61C5\n:105C9C00D4F8B031002BFBD1A74AF36493600123F5\n:105CAC00B264136048F2800353604FF00113C4F8E0\n:105CBC00BC31D4F8B03143F48033C4F8B0314FF474\n:105CCC008033CAF80030D4F8B031002BFBD1BAE6DF\n:105CDC0080B238B9994BC2F307421968984B1960D6\n:105CEC00984B1A70944B00229A60F2640122B364B0\n:105CFC001A6080225A604FF00113C4F8BC31D4F8FA\n:105D0C00B03143F48033C4F8B031D4F8B031002B47\n:105D1C00FBD198E6C2F307428B4B1A708B4BC4F83D\n:105D2C00C8318B4BC4F8CC318A4BC4F8D03100F05D\n:105D3C00D5FB80222946884801F048F9874B802200\n:105D4C00C6F8A0B0C6F8E0307B4BF5645A6001226F\n:105D5C00B3649D601A604FF00113C4F8BC31D4F8E1\n:105D6C00B03143F48033C4F8B031CAF80050D4F8E1\n:105D7C00B031002BFBD166E66F4B0121F564196045\n:105D8C0080219D60B36459604FF00113C4F8BC319D\n:105D9C00D4F8B03143F48033C4F8B031D4F8B03116\n:105DAC00002BFBD1130C5B0643F08073C4F8543109\n:105DBC0049E6654B01216A481B780370FFF78CFD9F\n:105DCC0041E683B210F078007FF439AE03F07F0225\n:105DDC0058F82210624A1080180600F19E80CB07FA\n:105DEC0001D50123137002215D48FFF775FD2AE6EA\n:105DFC0010F0780F83B27FF422AE03F07F0213F021\n:105E0C00800F58F8223014BF43F4803343F0010361\n:105E1C0048F822300022484BF2649A600122B364A5\n:105E2C001A6080225A604FF00113C4F8BC31D4F8C8\n:105E3C00B03143F48033C4F8B031D4F8B031002B16\n:105E4C00FBD100E603F07F0213F0800F58F82230EC\n:105E5C0014BF23F4803323F0010348F822300022CE\n:105E6C00354BF2649A600122B3641A6080225A6046\n:105E7C004FF00113C4F8BC31D4F8B03143F4803383\n:105E8C00C4F8B031D4F8B031002BFBD1DBE50020E5\n:105E9C00086026490C88486842F221018C427FF444\n:105EAC0025AE80B200287FF421AE2E492E4C03C9BA\n:105EBC00A18086284FEA11412060A1717FF416AEB3\n:105ECC0072B62A48017841F008010170D2F84811E5\n:105EDC000D0605D480200143C2F84401C2F84811D4\n:105EEC0062B6234A5021117000E6000C2A788242D7\n:105EFC0028BF0246BEF5E06F44D11E4B1E4D1878EC\n:105F0C001E491F4B0192002818BF19462846FFF75F\n:105F1C00EDF907236B70019A3BE0C9033FF561AFC4\n:105F2C0061E700BFE0120020A826002080140020AA\n:105F3C0080000700A8360020C0120020281700207F\n:105F4C00381700205A1700205B1700200200CC00E5\n:105F5C00C80002000200C800800000201993D5740C\n:105F6C00D4160020A8160020301700205617002049\n:105F7C005D1700205C170020000020208C1B0060A7\n:105F8C00281B00602946104D01922846FFF7AEF9F8\n:105F9C00019A25F01F031544BFF34F8F4FF0E021FA\n:105FAC00C1F8703F20339D42FAD8BFF34F8FBFF337\n:105FBC006F8F05481146FFF78FFC44E50320FFF770\n:105FCC00D7FC01F0F1F900BF000020202DE9F047CB\n:105FDC001F46831E022B01D9BDE8F087DFF84C90D9\n:105FEC0015460C463C2209EBC01806464FEAC01A6F\n:105FFC00002108F10400240400F0E8FFB5FA85F252\n:10600C000123520944EA427449F80A40C8F838702E\n:10601C00C8F80830002FDFD0034AB34011680B4397\n:10602C001360BDE8F08700BFB4160020000000200C\n:10603C002DE9F0470D46811E022901D9BDE8F087F4\n:10604C00C701DFF84C909246044640373C220021B1\n:10605C001E4609EB07082D0408F1040000F0B6FFFA\n:10606C00BAFA8AF2520945EA427249F8072001222B\n:10607C00C8F83860C8F80820002EDFD0034B103465\n:10608C001968A2400A431A60BDE8F087B4160020D4\n:10609C000000002012048160C36101F5405342F0FE\n:1060AC00800210B40124426001F50052046001F535\n:1060BC00805401F58041C46081615DF8044BC0E9F6\n:1060CC0004237047831E0A46022B00D97047064BE7\n:1060DC0000F110014FF0010C03EBC0100CFA01F1B0\n:1060EC004030FFF799BB00BF00000020831E0A461A\n:1060FC00022B00D970470121024B814003EBC010E9\n:10610C00FFF78ABB0000002040687047124A134B0F\n:10611C00D2F8200220F07F40984210B584B002D211\n:10612C0000EB800040000E4C01A90A22FFF778F921\n:10613C0001A90023204611F8012B01333AB10A2B97\n:10614C0020F8022FF7D11623237004B010BD5B008A\n:10615C00DBB2237004B010BD00441F408096980041\n:10616C00B40D002000F0D8BA00F0CABA00F066BB3B\n:10617C0000F03CBB0846114600F02CBBF8B5144CA3\n:10618C004FF0E025134E4FF4003204EB4024124F35\n:10619C0006EB40160346C5F88C2121463A8830465A\n:1061AC00FFF778FF3B882344BFF34F8FC5F85C4F54\n:1061BC002034A342FAD8BFF34F8FBFF36F8F032065\n:1061CC003146FFF793FF4FF40033C5F80C31F8BD9F\n:1061DC00800020200013002046170020244B2DE9BE\n:1061EC00F0411C884368C569C3F30E43E41A002CC4\n:1061FC0024DD204920480A780078D3B21F4E824211\n:10620C001F4807D010F8038036F81870C7F50072D5\n:10621C00944218D90133002226F81540082B194E48\n:10622C0088BF134626F8152098BFDAB2C554164B12\n:10623C000A701A6814441C60BDE8F0812846BDE859\n:10624C00F041FFF79BBF07EB48201049224627443B\n:10625C00084401EB4521FFF749F80B4A284626F87C\n:10626C00187013682344BDE8F0411360FFF786BF34\n:10627C00461700205417002055170020E416002064\n:10628C0004170020F4160020E016002080002020C7\n:10629C001D4B1A78002A36D102F0FF031B4A1278E4\n:1062AC008AB32DE9F0411A4D2A8852B3194EC2F522\n:1062BC000068194F3278194C07EB421704EBC224D3\n:1062CC00424638462146FFF7E5FE04EB0802BFF3D1\n:1062DC004F8F4FF0E023C3F8704F2034A242FAD80E\n:1062EC00BFF34F8FBFF36F8F04203946FFF7EAFEE1\n:1062FC0033780133DBB2032B88BF002333700023C8\n:10630C002B80BDE8F0817047591700205B170020E7\n:10631C00481700205817002000140020801020205F\n:10632C002DE9F04F85B0CDE90110002900F0BF80B8\n:10633C000023604CDFF89881DFF898A15E4F009342\n:10634C0001235E4A23705E4B1978B8F8003002EBDB\n:10635C004119002B40F0A7801E461D469B4648461F\n:10636C00FFF7D2FE10F0800000F08C80BFF34F8F4F\n:10637C009AF8003084F800B005B93E68002B7DD146\n:10638C003B689B1B782B00F287804E4B1B78002BB5\n:10639C0074D000F09DFA0122B8F800301546227036\n:1063AC00002BDCD0464AC3F5006011781A4600EB8E\n:1063BC00C120454DC9022844019D954217D2039333\n:1063CC00DDE901512A46FEF791FF039B4FF0404255\n:1063DC005B1BA8F800303D4BC3F88420BFF34F8FF4\n:1063EC00009800232844237005B0BDE8F08F364B8D\n:1063FC00CD180299FEF77AFF00234FF4006229466C\n:10640C004846FFF747FEBFF34F8F05F1200205F515\n:10641C000063934234BF012340234FF0E02205EB8D\n:10642C004313C2F8705F2035AB42FAD1BFF34F8FE4\n:10643C00BFF36F8F04204946FFF744FE204A1378C0\n:10644C000133DBB2032B84BF00231D4A1370B8F851\n:10645C000030019AD11A009A1A4401910092029AC2\n:10646C001A4400230292194AA8F80030C2F884306A\n:10647C00BFF34F8F237000297FF462AF009805B0F3\n:10648C00BDE8F08F4FF400620D4B8AF800001978CC\n:10649C001346A8F800208AE7012300988AF80030F8\n:1064AC0005B0BDE8F08F1A46C3F500607FE7019890\n:1064BC00E5E700BF59170020281700200014002022\n:1064CC00581700205B1700208010202000002E4061\n:1064DC004817002057170020704700BF2D4B002194\n:1064EC0080222D4870B51B7800242C4D8B422C4EED\n:1064FC000CBF40234FF400732B80338000F066FDFB\n:10650C00284A2146284B14704FF4807227481C806F\n:10651C0000F05CFD264A1021264B0220C2E9004403\n:10652C00C2E90244244AC3E900441470234AC3E973\n:10653C000244234B1C70234614602246FFF778FD5F\n:10654C002246318803201F4BFFF740FD23460122D2\n:10655C0029880420FFF76CFD20460134FFF70EFE5E\n:10656C00082CF9D1184B00214A221848184C046009\n:10657C00C3F88410C3F88020D3F84821154942F0A1\n:10658C008072C3F8482121B1134A137843F00103F8\n:10659C00137070BD5C170020001400204A170020F7\n:1065AC004617002058170020481700200013002021\n:1065BC00E4160020F416002054170020E0160020EA\n:1065CC0055170020ED45000000002E403C17002020\n:1065DC00A1460000000000005E1700202DE9F04FDE\n:1065EC004FF0E0234FF40032DFF8C8A083B0C3F8BB\n:1065FC008C218B469AF8004000294FD08046E4B29B\n:10660C000027DFF8B490264BABEB070225491B782B\n:10661C00A34204F101043FD0092C234B404628BF70\n:10662C0000241E5D39F816C00CEB462319441F4B91\n:10663C0033F81650A5EB0C05AA421CD20CEB462CD9\n:10664C0018491B4C61440192FEF750FE216839F841\n:10665C0016505846019AA1EB0B012A44394429F8EB\n:10666C00162021604FF0E0234FF40032C3F80C21C8\n:10667C0003B0BDE8F08F2A462F44FEF737FE0C49D5\n:10668C00E3B230460A68A844521B0A608AF800300C\n:10669C00FFF774FDBB45B6D83846E3E70846E1E79B\n:1066AC00541700208000202004170020E41600203E\n:1066BC00E016002055170020F41600200B4B0C4A56\n:1066CC0012781978D3B28A420DD0013309480A4A9C\n:1066DC00092B0A4928BF0023C35C31F8131002EBC5\n:1066EC004323585C70474FF0FF307047541700201D\n:1066FC00551700200417002080002020F4160020DD\n:10670C00044B10B51C680CB1204610BD00F0E0F82D\n:10671C00204610BDE01600202DE9F84F144E154D03\n:10672C0033782A78934221D0DCB2DFF85090DFF82E\n:10673C0050B0DFF85080104F0134082C5FFA84FA07\n:10674C0001D90024A24619F80400DBF8003038F80F\n:10675C00102037F81010521A9B1ACBF80030FFF7A4\n:10676C000DFD86F800A02B78A342E5D1BDE8F88F8B\n:10677C005517002054170020F41600200417002091\n:10678C00E0160020E416002000B583B001210DF1C5\n:10679C000700FFF723FF20B19DF8070003B05DF859\n:1067AC0004FB4FF0FF30F9E7094B00B583B01B78C1\n:1067BC008DF807003BB101210DF10700FFF7B0FD8B\n:1067CC0003B05DF804FB03F0FF0003B05DF804FBBD\n:1067DC005B170020044B1B7803F0FF020BB1FFF793\n:1067EC009FBD1046704700BF5B1700202DE9F0419C\n:1067FC000024DFF8448001230D4D27460D4E88F808\n:10680C000030337828462035A34204F1010405D02A\n:10681C00FFF77AFC030658BF07F50067042CF0D18C\n:10682C00BFF34F8F0023384688F80030BDE8F08165\n:10683C000014002058170020591700202DE9F843A8\n:10684C001D4B1B7813B11D4D2A880AB9BDE8F8837E\n:10685C001B4EC2F500691B4933784A461A4C01EBB2\n:10686C0043181A4F04EBC324012340463B702146C6\n:10687C000023FFF70FFC04EB0902BFF34F8F4FF01F\n:10688C00E023C3F8704F2034A242FAD8BFF34F8FE5\n:10689C00BFF36F8F04204146FFF714FC33780133AC\n:1068AC00DBB2032B88BF0023337000232B80BFF394\n:1068BC004F8F3B70BDE8F8835B1700204817002012\n:1068CC005817002000140020801020205917002099\n:1068DC002DE9F8432D4B1E7866B12D4F3B784BB903\n:1068EC000123F1073B7043D4B20726D400233B703D\n:1068FC00730701D4BDE8F883264B1A68002AF9D037\n:10690C00EFF30582002AF5D1EFF3108572B6186803\n:10691C00002834D0204C2178002930D1012222705B\n:10692C0042691A60002A2ED0916105B962B6002521\n:10693C008368457798472570DCE7DFF8648098F822\n:10694C000030002BD2D00025DFF858902B4659F898\n:10695C0023400135236820461B69984710B16369B1\n:10696C009B68984798F80020EBB29A42EFD8BDE7A5\n:10697C00FFF7C6FE0028B7D0AFF30080B4E7002DB8\n:10698C00B8D162B6B6E7054B1A60CEE75E170020A9\n:10699C004E1700200C1500204C1700201815002055\n:1069AC004D1700201C15002070B5EFF3108272B645\n:1069BC000C4C206880B10C4E00254369236073B1E8\n:1069CC009D6102B962B6836845779847EFF31082F0\n:1069DC0072B620680028F0D102B962B670BD33607F\n:1069EC00EFE700BF1415002010150020FFF7DCBFE7\n:1069FC000449054A4968054B196013680133136053\n:106A0C00704700BF001000E028170020241700205A\n:106A1C00074A506A936A19468446506A936A9942A7\n:106A2C00F9D18445F7D1DB0B43EA4040704700BFF6\n:106A3C0000400D40024B0146186800F00BB800BF37\n:106A4C00600D0020024B0146186800F0A1BB00BF8E\n:106A5C00600D00202DE9F04F01F10B06162E83B0CE\n:106A6C00044624D8102900F2BA8000F0A3FA1026AC\n:106A7C0018220220B54F3A44A2F1080153688B4208\n:106A8C0000F0BA805A68D96822F003021A449D6853\n:106A9C00E9608D60516841F001012046516003F1BD\n:106AAC00080500F08DFA284603B0BDE8F08F36F0EB\n:106ABC00070600F19480B14200F2918000F07AFA5E\n:106ACC00B6F5FC7FC0F09A81730A00F08F80042B1E\n:106ADC0000F26F81B30903F1390003F1380CC300E4\n:106AEC009A4F3B44A3F108055B689D4206D10CE02C\n:106AFC00002980F22781DB689D4206D05A6822F07B\n:106B0C000302911B0F29F3DD60463D69DFF850C28B\n:106B1C0065457CD06A6822F00302931B0F2B00F3AF\n:106B2C007B81002BC7E904CC80F26C81B2F5007F2D\n:106B3C0080F01A81D308796801334FEA521E012282\n:106B4C0002FA0EF20A4357F833E0C5F808E007EBF7\n:106B5C00C3010839E9607A6047F83350CEF80C501D\n:106B6C00831001219940914257D8114206D120F04F\n:106B7C0003004900114200F10400FAD007EBC009F0\n:106B8C004D468646D5F80C80454508D11DE1002BB5\n:106B9C0080F22481D8F80C80454500F01681D8F895\n:106BAC00042022F00302931B0F2BF0DD2046D8E9C2\n:106BBC00025408EB060146F00106C8F80460EC60CC\n:106BCC00A56043F00104C7E90411C1E902CC4C6093\n:106BDC0048F8023000F0F4F908F1080502E00C2343\n:106BEC0023600025284603B0BDE8F08F4FF40073F6\n:106BFC0040204FF03F0C73E7D3689A4208BF023035\n:106C0C007FF440AF3D69DFF858C1654582D17A68A1\n:106C1C008310012199409142A7D9BD686B6823F07C\n:106C2C0003094E4503D8A9EB06030F2B7ADCDFF8DA\n:106C3C0034B1474BDBF800201B680132334405EBC1\n:106C4C00090A00F0338103F580530F3323F47F6876\n:106C5C0028F00F084146204600F00AFA411C024673\n:106C6C0000F0F380824500F2EE803A4B1968414403\n:106C7C001960084600F04E81DBF8001001930131D9\n:106C8C001BBFA2EB0A010918CBF80020196012F007\n:106C9C00070B00F01781CBF108010A44CBF58051AA\n:106CAC0090440831A1EB0801C1F30B0A5146204670\n:106CBC00009200F0DDF9421CDDE9002300F04F8169\n:106CCC00801A00EB0A081968BA6048F001005144B8\n:106CDC00BD425060196000F02981B9F10F0F40F2EC\n:106CEC0027816868A9F10C0C2CF0070C00F001004E\n:106CFC0040EA0C0068604FF0050E05EB0C00BCF18F\n:106D0C000F0FC0E901EE00F2328150681546124BAC\n:106D1C001A688A4238BF1960104B1A688A4238BF09\n:106D2C00196094E0AA1943F0010346F001066E6065\n:106D3C002046BA60536000F043F90835284603B08A\n:106D4C00BDE8F08FD9681A44A1E600BF50090020B5\n:106D5C006C1500203C1500206415002068150020DF\n:106D6C0058090020580D0020B2F5206F4FEA52232D\n:106D7C0063D3142B00F2B78003F15C01C9005B33C1\n:106D8C0007EB010E7958AEF1080E8E4500F091809C\n:106D9C004B6823F00303934202D989688E45F7D1DF\n:106DAC00D1F80CE07A68C5E9021ECEF80850CD6027\n:106DBC00D6E6142B59D9542B00F29D80330B03F1DA\n:106DCC006F0003F16E0CC3008AE60EF1010E1EF08B\n:106DDC00030F05F108057FF4D5AE51E0424445465A\n:106DEC005368D8F80C1043F00103536055F8083F72\n:106DFC002046D9608B6000F0E3F8F3E6F00806F16A\n:106E0C00080237E62A442046536843F001035360D6\n:106E1C00083500F0D5F8E5E6A919204646F001063C\n:106E2C0043F001046E60C7E90411C1E902CC4C6067\n:106E3C00AB5000F0C5F80835D4E6930903F13901DD\n:106E4C00C90038339CE7BD425FD0BD68686820F04C\n:106E5C0003084645A8EB060302D80F2B3FF762AF99\n:106E6C00204600F0ADF80025BCE603F15C0003F110\n:106E7C005B0CC30034E659F808394B4540F096805A\n:106E8C0010F0030F00F1FF30F5D17B6823EA01030A\n:106E9C007B60490099423FF6C0AE19B9BDE6490086\n:106EAC000EF1040E1942FAD0704667E603F1100891\n:106EBC00D0E69A104FF001087B6808FA02F21A43E8\n:106ECC007A6070E702EB08014942C1F30B0A5146A4\n:106EDC002046009200F0CCF8431CDDE900237FF43F\n:106EEC00EFAEDA46EFE6542B25D8130B03F16F0106\n:106EFC00C9006E3344E7B3F5AA7F25D8F30B03F131\n:106F0C00780003F1770CC300EAE5294B186840447C\n:106F1C001860B1E6CAF30B0CBCF1000F7FF4ACAEF9\n:106F2C00BD68C84448F001006860F0E61546EEE61E\n:106F3C000123536094E7B3F5AA7F23D8D30B03F155\n:106F4C007801C90077331BE740F25452934223D89F\n:106F5C00B30C03F17D0003F17C0CC300C0E5ABF175\n:106F6C00080BD844A8EB02084FF0000AABE605F179\n:106F7C0008012046009300F00BF9BD68009B68687F\n:106F8C001968C4E640F254518B420BD8930C03F1B0\n:106F9C007D01C9007C33F3E64FF47E737F204FF004\n:106FAC007E0C9DE54FF47E717E23E9E67B6870E7ED\n:106FBC003C150020014800F097B800BF38150020A0\n:106FCC00014800F093B800BF38150020830730B596\n:106FDC0048D0541E002A3FD0CAB2034601E0013CFF\n:106FEC003AD303F8012B9D07F9D1032C2DD9CDB23F\n:106FFC0045EA05250F2C45EA054536D9A4F11002C2\n:10700C0022F00F0C03F1200EE6444FEA121C03F1A0\n:10701C00100242E9045542E9025510327245F8D18A\n:10702C000CF1010214F00C0F03EB021204F00F0C24\n:10703C0013D0ACF1040323F003030433134442F8DC\n:10704C00045B9342FBD10CF003042CB1C9B21C4479\n:10705C0003F8011B9C42FBD130BD64461346002C47\n:10706C00F4D1F9E703461446BFE71A46A446E0E715\n:10707C0038B5074D0022044608462A60FEF780FB0F\n:10708C00431C00D038BD2B68002BFBD0236038BDCF\n:10709C00B8160020014B1868704700BF600D002027\n:1070AC0070B50D4E0D4D761BB61006D0002455F85C\n:1070BC00043B01349847A642F9D1094E094D761B81\n:1070CC0000F06EF9B61006D0002455F8043B0134DC\n:1070DC009847A642F9D170BDF01A0060F01A006012\n:1070EC00F41A0060F01A0060704700BF704700BFD0\n:1070FC00F8B5244F0C460646FFF75CFFBB685D688D\n:10710C00C4F57E610F3125F003054B1923F47F6321\n:10711C0023F00F03A3F58054B4F5805F07DB002147\n:10712C003046FFF7A5FFBB682B44984204D030468D\n:10713C00FFF746FF0020F8BD61423046FFF798FF8D\n:10714C0001300DD0104ABB682D1B45F001055D6068\n:10715C00136830461B1B1360FFF732FF0120F8BD8C\n:10716C0000213046FFF784FFBA68831A0F2BDEDD4F\n:10717C0043F001035360054B03491B68C01A0860B8\n:10718C00D5E700BF500900203C150020580D002009\n:10719C00002961D0F8B50C460646FFF70BFF54F8F2\n:1071AC00042C7B4FA4F1080522F0010105EB010C26\n:1071BC00B868DCF80430604523F0030300F08B80E2\n:1071CC00D207CCF8043032D454F8082CAD1A114440\n:1071DC00AA6807F1080082426AD00CEB0304D4F8C9\n:1071EC0004E0EC68D4601EF0010FA26000F0978000\n:1071FC0041F001036B60CCF80010B1F5007F35D283\n:10720C007868CB080122490901338A40024357F8B8\n:10721C0033107A6007EBC302083AC5E9021247F84B\n:10722C003350CD603046BDE8F840FFF7C9BE0CEBDB\n:10723C0003025268D00710D4194407F10800DCF897\n:10724C000830834273D0DCF80C20DA60936041F094\n:10725C0001036B606950D0E7704741F00103B1F551\n:10726C00007F44F8043CCCF80010C9D3B1F5206F72\n:10727C004FEA512348D28B0903F1390003F138024C\n:10728C00C300F818FB580838984259D05A6822F0B5\n:10729C0003028A4202D99B689842F7D1D868C5E9A3\n:1072AC0002308560DD603046BDE8F840FFF788BEEF\n:1072BC000CEB03025268D20763D40B44DCE90212D4\n:1072CC00CA60916043F001026A603046EB50BDE841\n:1072DC00F840FFF775BE0B44D10707D454F8082CBF\n:1072EC00AD1A1344D5E90212CA60916043F0010251\n:1072FC006A60284ABD6012689A4293D8264B304681\n:10730C001968FFF7F5FE8DE7142B0AD9542B1FD8FB\n:10731C000B0B03F16F0003F16E02C300B1E71944CC\n:10732C008DE703F15C0003F15B02C300A9E741F0B8\n:10733C000103C7E90455C5E902006B60695071E7A8\n:10734C0079689210012404FA02F20A437A60A6E7E3\n:10735C00B3F5AA7F06D8CB0B03F1780003F17702C3\n:10736C00C3008EE740F25452934206D88B0C03F1C3\n:10737C007D0003F17C02C30083E74FF47E737E2211\n:10738C007FE741F001036B60CCF800104AE700BFC7\n:10739C00500900205C0D00206C150020000000003E\n:1073AC005FF800F0AD1A00605FF800F0051A00609D\n:0473BC00F8B500BF61\n:1073C00000000000000000000000000000000000BD\n:1073D00000000000000000000000000000000000AD\n:1073E000000000000000000000000000000000009D\n:1073F000000000000000000000000000000000008D\n:10740000000000000000000000000000000000007C\n:10741000000000000000000000000000000000006C\n:10742000000000000000000000000000000000005C\n:10743000000000000000000000000000000000004C\n:10744000000000000000000000000000000000003C\n:10745000000000000000000000000000000000002C\n:10746000000000000000000000000000000000001C\n:10747000000000000000000000000000000000000C\n:1074800000000000000000000000000000000000FC\n:1074900000000000000000000000000000000000EC\n:1074A00000000000000000000000000000000000DC\n:1074B00000000000000000000000000000000000CC\n:1074C00000000000000000000000000000000000BC\n:1074D00000000000000000000000000000000000AC\n:1074E000000000000000000000000000000000009C\n:1074F000000000000000000000000000000000008C\n:10750000000000000000000000000000000000007B\n:10751000000000000000000000000000000000006B\n:10752000000000000000000000000000000000005B\n:10753000000000000000000000000000000000004B\n:10754000000000000000000000000000000000003B\n:10755000000000000000000000000000000000002B\n:10756000000000000000000000000000000000001B\n:10757000000000000000000000000000000000000B\n:1075800000000000000000000000000000000000FB\n:1075900000000000000000000000000000000000EB\n:1075A00000000000000000000000000000000000DB\n:1075B00000000000000000000000000000000000CB\n:1075C00000000000000000000000000000000000BB\n:1075D00000000000000000000000000000000000AB\n:1075E000000000000000000000000000000000009B\n:1075F000000000000000000000000000000000008B\n:10760000000000000000000000000000000000007A\n:10761000000000000000000000000000000000006A\n:10762000000000000000000000000000000000005A\n:10763000000000000000000000000000000000004A\n:107640007500000000000000650000000000000060\n:1076500069000000000000007700FC0F010100003D\n:1076600077E2FE0F010000007703080F0100000021\n:107670007704080F0200FC007700080F08030000E1\n:107680000000FC02000000007700080F0804000062\n:1076900000000001000000007700080F0800000053\n:1076A00000000000040000007700FC0F0000000054\n:1076B0007700FD0F000000000000FC000200000049\n:1076C0007701080F0101000077E2FE0F01090000B9\n:1076D00077E2FE0F0104000077E2FE0F01030000D5\n:1076E00077E2FE0F01080000001900004931000098\n:1076F0000000000074C00F40C00000000000000047\n:107700000200000050851F4001000000FF00000043\n:10771000FF00000000000000000000000100000069\n:107720000200000054851F4001000000FF0000001F\n:10773000FF0000000000000000000000FF0040000B\n:10774000260018007C00000000000000000000007F\n:107750005531000085450000814500007D45000051\n:1077600079450000AD310000B131000075450000E1\n:107770000000000000000000F92F00005D31000053\n:10778000652A0000BD2B0000852A0000292B00007F\n:10779000AD2A0000412C0000D92B0000612A000016\n:1077A00000000042C8801F40B8821F40080000004F\n:1077B00000000042C4801F40B4821F40040000004B\n:1077C00000C0004224801F4014821F4010000000AF\n:1077D00000C0004228801F4018821F402000000087\n:1077E00000C000422C801F401C821F40400000004F\n:1077F00000C0004234801F4024821F40000100006E\n:107800000040004264811F4054831F400004000078\n:107810000040004280811F4070831F400000020032\n:10782000004000427C811F406C831F40000001002B\n:107830000040004268811F4058831F40000800003C\n:10784000004000423C811F402C831F40010000008B\n:107850000040004244811F4034831F400400000068\n:107860000040004240811F4030831F400200000062\n:107870000040004248811F4038831F40080000003C\n:107880000000004204811F40F4821F4000000400F9\n:107890000000004208811F40F8821F4000000800DD\n:1078A0000000004218811F4008831F400000800034\n:1078B0000000004214811F4004831F40000040006C\n:1078C0000000004200811F40F0821F4000000200C3\n:1078D00000000042FC801F40EC821F4000000100BD\n:1078E0000000004224811F4014831F400000000458\n:1078F0000000004228811F4018831F40000000083C\n:10790000000000421C811F400C831F40000000014A\n:107910000000004220811F4010831F400000000231\n:1079200000000042EC801F40DC821F40001000007D\n:1079300000000042F0801F40E0821F400020000055\n:107940000000004234811F4024831F40000000409B\n:107950000000004238811F4028831F400000008043\n:107960000080004294801F4084821F400000040079\n:1079700000C0004290801F4080821F4000000080B5\n:1079800000800042A8801F4098821F4000008000B5\n:1079900000800042A4801F4094821F4000004000ED\n:1079A000004000426C811F405C831F4000100000BB\n:1079B00000C0004230801F4020821F408000000035\n:1079C00000800042C8811F40B8831F400080000033\n:1079D00000800042C4811F40B4831F40004000006B\n:1079E00000800042C0811F40B0831F400020000083\n:1079F00000800042BC811F40AC831F40001000008B\n:107A000000800042D0811F40C0831F400000020060\n:107A100000800042CC811F40BC831F400000010059\n:107A200000010000640D00201200000000060000AC\n:107A3000F01B00600A000000000200008C1B0060C8\n:107A40006200000000070000281B006062000000C8\n:107A5000EE030000A00D002012000000000004EE64\n:107A6000780D00202800000000030000241B0060A7\n:107A700000000000010309040C1B0060000000006E\n:107A800002030904F41A0060000000000303090463\n:107A9000B40D002000000000000000000000000005\n:107AA0000000000000000000000000007015002031\n:107AB000D815002040160020000000000000000043\n:107AC00000000000000000000000000000000000B6\n:107AD00000000000000000000000000000000000A6\n:107AE0000000000000000000000000000000000096\n:107AF0000000000000000000000000000000000086\n:107B00000000000000000000000000000000000075\n:107B10000000000000000000000000000000000065\n:107B20000000000000000000000000000000000055\n:107B30000000000000000000000000000000000045\n:107B400001000000000000000E33CDAB34126DE6E2\n:107B5000ECDE05000B00000000000000000000004B\n:107B60000000000000000000000000000000000015\n:107B70000000000000000000000000000000000005\n:107B800000000000000000000000000000000000F5\n:107B900000000000000000000000000000000000E5\n:107BA00000000000000000000000000000000000D5\n:107BB00000000000000000000000000000000000C5\n:107BC00000000000000000000029DE07007B9A177B\n:107BD000E00704EC00FB0F0000FBC013BFE607C08A\n:107BE000BFEC07C0BFEE07CFEB07ECF5EA07FCB22E\n:107BF000FF0E72FCB2FF0E76FCB2FF0E77FCB2FFF6\n:107C00000E9EFDFCB2FF0E73624C69DD6D4C77DD9C\n:107C10001D4C72DD294C65DD324C75DD62FCA1FF27\n:107C20000ED5EA07DFC8AFE60712ECEB070FFCB290\n:107C3000FF0E119BA793DFF6FE4C00EEE3FF118BC6\n:107C4000FCA1FF0EA793DFF6EED6FF61FFFCF8FF65\n:107C50000E8F02084C0FDD0B624CFFDF11FCC408D5\n:107C60000FEFF5624CFFDF06FC04F00EEFF5C36189\n:107C7000CFC262FCA1FF0EEEA7FFE5EA07EF03E526\n:107C8000EA07FE0200EF9A5100FCA1FF0ED7FFFFAA\n:107C9000FFFFFFFFFFFFFFFFFFFFFF00900300203C\n:107CA00000000000E803000000000000B80300200E\n:107CB00000000000E8030000000000000080194000\n:107CC0002803002000000000C814002088140020B1\n:107CD0000000000000000000400000004000000024\n:107CE0004000000040000000000000000000000014\n:107CF0000000000000000000000000000000000084\n:107D00000000000000000000000000008030202083\n:107D10000000000000000000500900205009002071\n:107D2000580900205809002060090020600900203F\n:107D300068090020680900207009002070090020EF\n:107D4000780900207809002080090020800900209F\n:107D5000880900208809002090090020900900204F\n:107D60009809002098090020A0090020A0090020FF\n:107D7000A8090020A8090020B0090020B0090020AF\n:107D8000B8090020B8090020C0090020C00900205F\n:107D9000C8090020C8090020D0090020D00900200F\n:107DA000D8090020D8090020E0090020E0090020BF\n:107DB000E8090020E8090020F0090020F00900206F\n:107DC000F8090020F8090020000A0020000A00201D\n:107DD000080A0020080A0020100A0020100A0020CB\n:107DE000180A0020180A0020200A0020200A00207B\n:107DF000280A0020280A0020300A0020300A00202B\n:107E0000380A0020380A0020400A0020400A0020DA\n:107E1000480A0020480A0020500A0020500A00208A\n:107E2000580A0020580A0020600A0020600A00203A\n:107E3000680A0020680A0020700A0020700A0020EA\n:107E4000780A0020780A0020800A0020800A00209A\n:107E5000880A0020880A0020900A0020900A00204A\n:107E6000980A0020980A0020A00A0020A00A0020FA\n:107E7000A80A0020A80A0020B00A0020B00A0020AA\n:107E8000B80A0020B80A0020C00A0020C00A00205A\n:107E9000C80A0020C80A0020D00A0020D00A00200A\n:107EA000D80A0020D80A0020E00A0020E00A0020BA\n:107EB000E80A0020E80A0020F00A0020F00A00206A\n:107EC000F80A0020F80A0020000B0020000B002018\n:107ED000080B0020080B0020100B0020100B0020C6\n:107EE000180B0020180B0020200B0020200B002076\n:107EF000280B0020280B0020300B0020300B002026\n:107F0000380B0020380B0020400B0020400B0020D5\n:107F1000480B0020480B0020500B0020500B002085\n:107F2000580B0020580B0020600B0020600B002035\n:107F3000680B0020680B0020700B0020700B0020E5\n:107F4000780B0020780B0020800B0020800B002095\n:107F5000880B0020880B0020900B0020900B002045\n:107F6000980B0020980B0020A00B0020A00B0020F5\n:107F7000A80B0020A80B0020B00B0020B00B0020A5\n:107F8000B80B0020B80B0020C00B0020C00B002055\n:107F9000C80B0020C80B0020D00B0020D00B002005\n:107FA000D80B0020D80B0020E00B0020E00B0020B5\n:107FB000E80B0020E80B0020F00B0020F00B002065\n:107FC000F80B0020F80B0020000C0020000C002013\n:107FD000080C0020080C0020100C0020100C0020C1\n:107FE000180C0020180C0020200C0020200C002071\n:107FF000280C0020280C0020300C0020300C002021\n:10800000380C0020380C0020400C0020400C0020D0\n:10801000480C0020480C0020500C0020500C002080\n:10802000580C0020580C0020600C0020600C002030\n:10803000680C0020680C0020700C0020700C0020E0\n:10804000780C0020780C0020800C0020800C002090\n:10805000880C0020880C0020900C0020900C002040\n:10806000980C0020980C0020A00C0020A00C0020F0\n:10807000A80C0020A80C0020B00C0020B00C0020A0\n:10808000B80C0020B80C0020C00C0020C00C002050\n:10809000C80C0020C80C0020D00C0020D00C002000\n:1080A000D80C0020D80C0020E00C0020E00C0020B0\n:1080B000E80C0020E80C0020F00C0020F00C002060\n:1080C000F80C0020F80C0020000D0020000D00200E\n:1080D000080D0020080D0020100D0020100D0020BC\n:1080E000180D0020180D0020200D0020200D00206C\n:1080F000280D0020280D0020300D0020300D00201C\n:10810000380D0020380D0020400D0020400D0020CB\n:10811000480D0020480D0020FFFFFFFF0000020077\n:10812000E806002012010002EF020140C01683049D\n:108130007902010203010000280000000001040090\n:108140000100000000000000020157494E55534253\n:10815000000000000000000000000000000000001F\n:1081600012034D005300460054003100300030002F\n:10817000F80000000C0300000000000000000000F8\n:1081800000000000000000000000000000000000EF\n:1081900000000000000000000000000000000000DF\n:1081A00000000000000000000000000000000000CF\n:1081B00000000000000000000000000000000000BF\n:1081C00000000000000000000000000000000000AF\n:1081D000000000000000000000000000000000009F\n:1081E000000000000000000000000000000000008F\n:1081F000000000000000000000000000000000007F\n:10820000000000000000000000000000000000006E\n:10821000000000000000000000000000000000005E\n:10822000000000000000000000000000000000004E\n:10823000000000000000000000000000000000003E\n:10824000000000000000000000000000000000002E\n:10825000000000000000000000000000000000001E\n:10826000000000000000000000000000000000000E\n:1082700000000000000000000000000000000000FE\n:1082800000000000000000000000000000000000EE\n:1082900000000000000000000000000000000000DE\n:1082A00000000000000000000000000000000000CE\n:1082B00000000000000000000000000000000000BE\n:1082C00000000000000000000000000000000000AE\n:1082D000000000000000000000000000000000009E\n:1082E000000000000000000000000000000000008E\n:1082F000000000000000000000000000000000007E\n:10830000000000000000000000000000000000006D\n:10831000000000000000000000000000000000005D\n:10832000000000000000000000000000000000004D\n:10833000000000000000000000000000000000003D\n:10834000000000000000000000000000000000002D\n:10835000000000000000000000000000000000001D\n:10836000000000000000000000000000000000000D\n:1083700000000000000000000000000000000000FD\n:1083800000000000000000000000000000000000ED\n:1083900000000000000000000000000000000000DD\n:1083A00000000000000000000000000000000000CD\n:1083B00000000000000000000000000000000000BD\n:1083C00000000000000000000000000000000000AD\n:1083D000000000000000000000000000000000009D\n:1083E000000000000000000000000000000000008D\n:1083F000000000000000000000000000000000007D\n:10840000000000000000000000000000000000006C\n:10841000000000000000000000000000000000005C\n:10842000000000000000000000000000000000004C\n:10843000000000000000000000000000000000003C\n:10844000000000000000000000000000000000002C\n:10845000000000000000000000000000000000001C\n:10846000000000000000000000000000000000000C\n:1084700000000000000000000000000000000000FC\n:1084800000000000000000000000000000000000EC\n:1084900000000000000000000000000000000000DC\n:1084A00000000000000000000000000000000000CC\n:1084B00000000000000000000000000000000000BC\n:1084C00000000000000000000000000000000000AC\n:1084D000000000000000000000000000000000009C\n:1084E000000000000000000000000000000000008C\n:1084F000000000000000000000000000000000007C\n:10850000000000000000000000000000000000006B\n:10851000000000000000000000000000000000005B\n:10852000000000000000000000000000000000004B\n:10853000000000000000000000000000000000003B\n:10854000000000000000000000000000000000002B\n:10855000000000000000000000000000000000001B\n:10856000000000000000000000000000000000000B\n:1085700000000000000000000000000000000000FB\n:1085800000000000000000000000000000000000EB\n:1085900000000000000000000000000000000000DB\n:1085A00000000000000000000000000000000000CB\n:1085B00000000000000000000000000000000000BB\n:1085C00000000000000000000000000000000000AB\n:1085D000000000000000000000000000000000009B\n:1085E000000000000000000000000000000000008B\n:1085F000000000000000000000000000000000007B\n:10860000000000000000000000000000000000006A\n:10861000000000000000000000000000000000005A\n:10862000000000000000000000000000000000004A\n:10863000000000000000000000000000000000003A\n:10864000000000000000000000000000000000002A\n:10865000000000000000000000000000000000001A\n:10866000000000000000000000000000000000000A\n:1086700000000000000000000000000000000000FA\n:10868000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA\n:10869000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA\n:1086A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA\n:1086B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA\n:1086C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA\n:1086D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA\n:1086E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A\n:1086F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A\n:10870000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79\n:10871000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69\n:10872000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59\n:10873000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49\n:10874000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39\n:10875000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29\n:10876000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19\n:10877000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09\n:10878000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9\n:10879000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9\n:1087A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9\n:1087B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9\n:1087C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9\n:1087D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9\n:1087E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99\n:1087F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89\n:108800000000000000000000000000000000000068\n:108810000000000000000000000000000000000058\n:108820000000000000000000000000000000000048\n:108830000000000000000000000000000000000038\n:108840000000000000000000000000000000000028\n:108850000000000000000000000000000000000018\n:108860000000000000000000000000000000000008\n:1088700000000000000000000000000000000000F8\n:1088800000000000000000000000000000000000E8\n:1088900000000000000000000000000000000000D8\n:1088A00000000000000000000000000000000000C8\n:1088B00000000000000000000000000000000000B8\n:1088C00000000000000000000000000000000000A8\n:1088D0000000000000000000000000000000000098\n:1088E0000000000000000000000000000000000088\n:1088F0000000000000000000000000000000000078\n:108900000000000000000000000000000000000067\n:108910000000000000000000000000000000000057\n:108920000000000000000000000000000000000047\n:108930000000000000000000000000000000000037\n:108940000000000000000000000000000000000027\n:108950000000000000000000000000000000000017\n:108960000000000000000000000000000000000007\n:1089700000000000000000000000000000000000F7\n:1089800000000000000000000000000000000000E7\n:1089900000000000000000000000000000000000D7\n:1089A00000000000000000000000000000000000C7\n:1089B00000000000000000000000000000000000B7\n:1089C00000000000000000000000000000000000A7\n:1089D0000000000000000000000000000000000097\n:1089E0000000000000000000000000000000000087\n:1089F0000000000000000000000000000000000077\n:108A00000000000000000000000000000000000066\n:108A10000000000000000000000000000000000056\n:108A20000000000000000000000000000000000046\n:108A30000000000000000000000000000000000036\n:108A40000000000000000000000000000000000026\n:108A50000000000000000000000000000000000016\n:108A60000000000000000000000000000000000006\n:108A700000000000000000000000000000000000F6\n:108A800000000000000000000000000000000000E6\n:108A900000000000000000000000000000000000D6\n:108AA00000000000000000000000000000000000C6\n:108AB00000000000000000000000000000000000B6\n:108AC00000000000000000000000000000000000A6\n:108AD0000000000000000000000000000000000096\n:108AE0000000000000000000000000000000000086\n:108AF0000000000000000000000000000000000076\n:108B00000000000000000000000000000000000065\n:108B10000000000000000000000000000000000055\n:108B20000000000000000000000000000000000045\n:108B30000000000000000000000000000000000035\n:108B40000000000000000000000000000000000025\n:108B50000000000000000000000000000000000015\n:108B60000000000000000000000000000000000005\n:108B700000000000000000000000000000000000F5\n:108B800000000000000000000000000000000000E5\n:108B900000000000000000000000000000000000D5\n:108BA00000000000000000000000000000000000C5\n:108BB00000000000000000000000000000000000B5\n:108BC00000000000000000000000000000000000A5\n:108BD0000000000000000000000000000000000095\n:108BE0000000000000000000000000000000000085\n:108BF0000000000000000000000000000000000075\n:108C00000000000000000000000000000000000064\n:108C10000000000000000000000000000000000054\n:108C20000000000000000000000000000000000044\n:108C30000000000000000000000000000000000034\n:108C40000000000000000000000000000000000024\n:108C50000000000000000000000000000000000014\n:108C60000000000000000000000000000000000004\n:108C700000000000000000000000000000000000F4\n:108C800000000000000000000000000000000000E4\n:108C900000000000000000000000000000000000D4\n:108CA00000000000000000000000000000000000C4\n:108CB00000000000000000000000000000000000B4\n:108CC00000000000000000000000000000000000A4\n:108CD0000000000000000000000000000000000094\n:108CE0000000000000000000000000000000000084\n:108CF0000000000000000000000000000000000074\n:108D00000000000000000000000000000000000063\n:108D10000000000000000000000000000000000053\n:108D20000000000000000000000000000000000043\n:108D30000000000000000000000000000000000033\n:108D40000000000000000000000000000000000023\n:108D50000000000000000000000000000000000013\n:108D60000000000000000000000000000000000003\n:108D700000000000000000000000000000000000F3\n:108D800000000000000000000000000000000000E3\n:108D900000000000000000000000000000000000D3\n:108DA00000000000000000000000000000000000C3\n:108DB00000000000000000000000000000000000B3\n:108DC00000000000000000000000000000000000A3\n:108DD0000000000000000000000000000000000093\n:108DE0000000000000000000000000000000000083\n:108DF0000000000000000000000000000000000073\n:108E00000000000000000000000000000000000062\n:108E10000000000000000000000000000000000052\n:108E20000000000000000000000000000000000042\n:108E30000000000000000000000000000000000032\n:108E40000000000000000000000000000000000022\n:108E50000000000000000000000000000000000012\n:108E60000000000000000000000000000000000002\n:108E700000000000000000000000000000000000F2\n:108E800000000000000000000000000000000000E2\n:108E900000000000000000000000000000000000D2\n:108EA00000000000000000000000000000000000C2\n:108EB00000000000000000000000000000000000B2\n:108EC00000000000000000000000000000000000A2\n:108ED0000000000000000000000000000000000092\n:108EE0000000000000000000000000000000000082\n:108EF0000000000000000000000000000000000072\n:108F00000000000000000000000000000000000061\n:108F10000000000000000000000000000000000051\n:108F20000000000000000000000000000000000041\n:108F30000000000000000000000000000000000031\n:108F40000000000000000000000000000000000021\n:108F50000000000000000000000000000000000011\n:108F60000000000000000000000000000000000001\n:108F700000000000000000000000000000000000F1\n:108F800000000000000000000000000000000000E1\n:108F900000000000000000000000000000000000D1\n:108FA00000000000000000000000000000000000C1\n:108FB00000000000000000000000000000000000B1\n:108FC00000000000000000000000000000000000A1\n:108FD0000000000000000000000000000000000091\n:108FE0000000000000000000000000000000000081\n:108FF0000000000000000000000000000000000071\n:109000000000000000000000000000000000000060\n:109010000000000000000000000000000000000050\n:109020000000000000000000000000000000000040\n:109030000000000000000000000000000000000030\n:109040000000000000000000000000000000000020\n:109050000000000000000000000000000000000010\n:109060000000000000000000000000000000000000\n:1090700000000000000000000000000000000000F0\n:1090800000000000000000000000000000000000E0\n:1090900000000000000000000000000000000000D0\n:1090A00000000000000000000000000000000000C0\n:1090B00000000000000000000000000000000000B0\n:1090C00000000000000000000000000000000000A0\n:1090D0000000000000000000000000000000000090\n:1090E0000000000000000000000000000000000080\n:1090F0000000000000000000000000000000000070\n:10910000000000000000000000000000000000005F\n:10911000000000000000000000000000000000004F\n:10912000000000000000000000000000000000003F\n:10913000000000000000000000000000000000002F\n:10914000000000000000000000000000000000001F\n:10915000000000000000000000000000000000000F\n:1091600000000000000000000000000000000000FF\n:1091700000000000000000000000000000000000EF\n:1091800000000000000000000000000000000000DF\n:1091900000000000000000000000000000000000CF\n:1091A00000000000000000000000000000000000BF\n:1091B00000000000000000000000000000000000AF\n:1091C000000000000000000000000000000000009F\n:1091D000000000000000000000000000000000008F\n:1091E000000000000000000000000000000000007F\n:1091F000000000000000000000000000000000006F\n:10920000000000000000000000000000000000005E\n:10921000000000000000000000000000000000004E\n:10922000000000000000000000000000000000003E\n:10923000000000000000000000000000000000002E\n:10924000000000000000000000000000000000001E\n:10925000000000000000000000000000000000000E\n:1092600000000000000000000000000000000000FE\n:1092700000000000000000000000000000000000EE\n:1092800000000000000000000000000000000000DE\n:1092900000000000000000000000000000000000CE\n:1092A00000000000000000000000000000000000BE\n:1092B00000000000000000000000000000000000AE\n:1092C000000000000000000000000000000000009E\n:1092D000000000000000000000000000000000008E\n:1092E000000000000000000000000000000000007E\n:1092F000000000000000000000000000000000006E\n:10930000000000000000000000000000000000005D\n:10931000000000000000000000000000000000004D\n:10932000000000000000000000000000000000003D\n:10933000000000000000000000000000000000002D\n:10934000000000000000000000000000000000001D\n:10935000000000000000000000000000000000000D\n:1093600000000000000000000000000000000000FD\n:1093700000000000000000000000000000000000ED\n:1093800000000000000000000000000000000000DD\n:1093900000000000000000000000000000000000CD\n:1093A00000000000000000000000000000000000BD\n:1093B00000000000000000000000000000000000AD\n:1093C000000000000000000000000000000000009D\n:1093D000000000000000000000000000000000008D\n:1093E000000000000000000000000000000000007D\n:1093F000000000000000000000000000000000006D\n:040000056000100087\n:00000001FF\n"
  },
  {
    "path": "assets/hw/syscon_flasher/syscon_flasher_v2.05_teensy_4.1.hex",
    "content": ":0200000460009A\n:100000004643464200000156000000000103030081\n:1000100000000000000000000000000000000000E0\n:1000200000000000000000000000000000000000D0\n:1000300000000000000000000000000000000000C0\n:1000400000000000010408000000000000000000A3\n:100050000000800000000000000000000000000020\n:100060000000000000000000000000000000000090\n:100070000000000000000000000000000000000080\n:10008000EB04180A063204260000000000000000FD\n:10009000050404240000000000000000000000002F\n:1000A0000000000000000000000000000000000050\n:1000B0000604000000000000000000000000000036\n:1000C0000000000000000000000000000000000030\n:1000D00020041808000000000000000000000000DC\n:1000E0000000000000000000000000000000000010\n:1000F0000000000000000000000000000000000000\n:10010000D8041808000000000000000000000000F3\n:100110000204180804200000000000000000000095\n:1001200000000000000000000000000000000000CF\n:10013000600400000000000000000000000000005B\n:1001400000000000000000000000000000000000AF\n:10015000000000000000000000000000000000009F\n:10016000000000000000000000000000000000008F\n:10017000000000000000000000000000000000007F\n:10018000000000000000000000000000000000006F\n:10019000000000000000000000000000000000005F\n:1001A000000000000000000000000000000000004F\n:1001B000000000000000000000000000000000003F\n:1001C000000100000010000001000000000000001D\n:1001D000000001000000000000000000000000001E\n:1001E000000000000000000000000000000000000F\n:1001F00000000000000000000000000000000000FF\n:10020000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n:10021000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE\n:10022000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE\n:10023000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE\n:10024000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE\n:10025000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE\n:10026000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E\n:10027000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E\n:10028000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E\n:10029000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E\n:1002A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E\n:1002B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E\n:1002C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E\n:1002D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E\n:1002E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E\n:1002F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E\n:10030000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD\n:10031000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED\n:10032000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD\n:10033000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD\n:10034000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD\n:10035000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD\n:10036000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D\n:10037000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D\n:10038000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D\n:10039000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D\n:1003A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D\n:1003B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D\n:1003C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D\n:1003D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D\n:1003E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D\n:1003F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D\n:10040000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC\n:10041000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC\n:10042000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC\n:10043000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC\n:10044000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC\n:10045000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC\n:10046000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C\n:10047000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C\n:10048000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C\n:10049000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C\n:1004A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C\n:1004B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C\n:1004C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C\n:1004D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C\n:1004E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C\n:1004F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C\n:10050000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB\n:10051000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB\n:10052000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB\n:10053000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB\n:10054000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB\n:10055000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB\n:10056000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B\n:10057000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B\n:10058000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B\n:10059000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B\n:1005A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B\n:1005B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B\n:1005C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B\n:1005D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B\n:1005E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B\n:1005F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B\n:10060000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA\n:10061000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA\n:10062000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA\n:10063000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA\n:10064000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA\n:10065000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA\n:10066000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A\n:10067000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A\n:10068000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A\n:10069000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A\n:1006A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A\n:1006B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A\n:1006C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A\n:1006D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A\n:1006E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A\n:1006F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A\n:10070000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9\n:10071000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9\n:10072000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9\n:10073000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9\n:10074000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9\n:10075000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9\n:10076000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99\n:10077000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89\n:10078000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79\n:10079000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69\n:1007A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59\n:1007B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49\n:1007C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39\n:1007D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29\n:1007E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19\n:1007F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09\n:10080000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8\n:10081000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8\n:10082000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8\n:10083000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8\n:10084000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8\n:10085000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8\n:10086000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98\n:10087000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88\n:10088000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78\n:10089000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68\n:1008A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58\n:1008B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48\n:1008C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38\n:1008D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28\n:1008E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18\n:1008F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08\n:10090000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7\n:10091000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7\n:10092000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7\n:10093000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7\n:10094000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7\n:10095000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7\n:10096000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97\n:10097000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87\n:10098000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77\n:10099000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67\n:1009A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57\n:1009B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47\n:1009C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37\n:1009D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27\n:1009E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17\n:1009F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07\n:100A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6\n:100A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6\n:100A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6\n:100A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6\n:100A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6\n:100A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6\n:100A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96\n:100A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86\n:100A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76\n:100A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66\n:100AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56\n:100AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46\n:100AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36\n:100AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26\n:100AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16\n:100AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06\n:100B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5\n:100B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5\n:100B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5\n:100B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5\n:100B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5\n:100B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5\n:100B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95\n:100B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85\n:100B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75\n:100B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65\n:100BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55\n:100BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45\n:100BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35\n:100BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25\n:100BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15\n:100BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05\n:100C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4\n:100C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4\n:100C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4\n:100C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4\n:100C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4\n:100C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4\n:100C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94\n:100C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84\n:100C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74\n:100C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64\n:100CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54\n:100CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44\n:100CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34\n:100CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24\n:100CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14\n:100CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04\n:100D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3\n:100D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3\n:100D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3\n:100D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3\n:100D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3\n:100D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3\n:100D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93\n:100D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83\n:100D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73\n:100D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63\n:100DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53\n:100DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43\n:100DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33\n:100DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23\n:100DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13\n:100DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03\n:100E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2\n:100E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2\n:100E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2\n:100E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2\n:100E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2\n:100E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2\n:100E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92\n:100E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82\n:100E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72\n:100E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62\n:100EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52\n:100EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42\n:100EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32\n:100ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22\n:100EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12\n:100EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02\n:100F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1\n:100F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1\n:100F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1\n:100F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1\n:100F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1\n:100F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1\n:100F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91\n:100F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81\n:100F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71\n:100F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61\n:100FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51\n:100FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41\n:100FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31\n:100FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21\n:100FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11\n:100FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01\n:10100000D10020434D1600600000000000000000E9\n:101010002010006000100060008C006000000000E4\n:10102000000000600098000000000000FFFFFFFFCC\n:10103000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0\n:10104000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0\n:10105000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0\n:10106000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90\n:10107000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80\n:10108000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70\n:10109000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60\n:1010A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50\n:1010B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40\n:1010C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30\n:1010D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20\n:1010E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10\n:1010F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00\n:10110000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF\n:10111000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF\n:10112000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF\n:10113000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF\n:10114000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF\n:10115000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F\n:10116000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F\n:10117000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F\n:10118000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F\n:10119000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F\n:1011A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F\n:1011B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F\n:1011C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F\n:1011D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F\n:1011E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F\n:1011F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n:10120000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE\n:10121000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE\n:10122000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE\n:10123000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE\n:10124000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE\n:10125000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E\n:10126000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E\n:10127000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E\n:10128000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E\n:10129000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E\n:1012A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E\n:1012B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E\n:1012C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E\n:1012D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E\n:1012E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E\n:1012F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\n:10130000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED\n:10131000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD\n:10132000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD\n:10133000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD\n:10134000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD\n:10135000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D\n:10136000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D\n:10137000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D\n:10138000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D\n:10139000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D\n:1013A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D\n:1013B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D\n:1013C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D\n:1013D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D\n:1013E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D\n:1013F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD\n:10140000814205D051F8043B40F8043B8242F9D8B0\n:10141000704700BF044A05494FF0000342F8043BFF\n:101420009142FBD8704700BFC0120020A0170020D7\n:101430002DE98848BFF34F8F00BF00BF00BF00BF3A\n:1014400000F018F9684B0822C3F8542100BF00BF10\n:1014500000BF00BF00BF00BF00BF00BF00BF00BF94\n:1014600000BF00BF00BF00BF00BF00BF5F4A6049B0\n:101470006048FFF7C5FF604A60496148FFF7C0FF59\n:10148000604CFFF7C7FF4FF470004FF0E0210023DE\n:101490005D4AC1F8880D44F823200133B02BFAD1FE\n:1014A0005A4B80215A4A03F8011B9342FBD14FF05B\n:1014B000E0254D4E4FF08039DFF884B1DFF884A18C\n:1014C0004FF0FF31C5F8084D0027C6F80491C6F863\n:1014D00000B1C6F8F490C6F8F0A0D5F8243DDFF8C6\n:1014E000688143F4E0234B4AC5F8243DD8F81C300A\n:1014F00023F07F0343F04003C8F81C30D8F82430B1\n:1015000023F07F0343F04003C8F824309166D1668E\n:101510001167516700F0B6F83F4B4049A363404B59\n:10152000E36363236B610323AF612B613D4BC5F81C\n:10153000203DD5F8FC3D43F08073C5F8FC3D3A4BA7\n:101540001A6842F001021A605B680B6000F0E4FA6E\n:10155000C6F804913548C6F800B1C6F8F490C6F84C\n:10156000F0A000F071FCD8F86C10314B314A41F416\n:101570004051C8F86C101F60C3F80871C3F81871A7\n:10158000C3F82871C3F83871936BDB0708D442F6AF\n:101590001563294951651365936B43F00103936308\n:1015A000244A264C936843F00113936000F0F2F84C\n:1015B00000F016FC00F05CFC00F0DCFA00F05CF8D7\n:1015C0002368132BFCD900F06DFB2368B3F5967FDD\n:1015D000FBD300F055F800F051F800F045FC00F0A6\n:1015E0002FFC30BFFDE700BF00800D409058000089\n:1015F0008C1F006000000000C012002020780060F6\n:101600000000002000100020053A000000E400E087\n:10161000A0E400E000C00A40FD4D000038170020A3\n:10162000014E000000002020001000E00046C3230F\n:101630000040084000400D400000C0563C1700200C\n:101640001B1018200C0D111300C00F40054B4FF458\n:101650002A01054A05485A641864054A9963954663\n:10166000FFF7E6FE00C00A40ABAAAAAA07002000C6\n:1016700000800720704700BF704700BF704700BF61\n:1016800000BF704710B44FF0E02300211024314810\n:10169000C3F8941DC3F89C4D1124C3F8A00D2E4827\n:1016A000C3F89C4D1224C3F8A00D2C48C3F89C4DE0\n:1016B0002B4AC3F8A00D2B4C42F015022A48C3F860\n:1016C0009C4DC3F8A00D294C2948C3F89C4DC3F884\n:1016D000A00D284CC3F89C2D2748284AC3F8A04DDC\n:1016E000C3F89C0DC3F8A02D02F5A022244C0C32A7\n:1016F0002448C3F89C4DC3F8A02D234AC3F89C0D81\n:10170000224CC3F8A02D02F14062C3F89C4D204842\n:10171000C3F8A02D0C32C3F89C0DC3F8A02D00BF58\n:1017200000BF00BF00BF00BF0122C3F8942DBFF36C\n:101730004F8FBFF36F8FC3F8501FBFF34F8FBFF3AF\n:101740006F8FD3F8142D5DF8044B42F44032C3F888\n:10175000142D70473F0000102500080709001000F5\n:10176000A017002013002000210002071400002011\n:1017700025000813090000101600202027000B1375\n:1017800017000040180000602F000B0719000070C0\n:101790001A000080F0B5B84B1822B84E0120B84F9F\n:1017A00083B0C3F85C62B749C3F86072B64DC3F842\n:1017B0006462A6F53046B54CC3F86862C3F86C5253\n:1017C000C3F87052C3F87452C3F8785248F20C75DB\n:1017D000DA661A675A679A67DA67C3F88020C3F82F\n:1017E0008420C3F88820C1F82C03A94AC1F830032B\n:1017F000C1F83403C1F83803C1F83C03C1F8500301\n:10180000A169A44B0A40A448A4491343A44AA36174\n:10181000D4F8843043F00C03C4F884304FF0FF3424\n:10182000036843F00203036003682B404FF4005544\n:101830001A439C4B026044608A689B4C13409B4A4D\n:1018400043F000538360C36823F07803C360036AE6\n:10185000134023430362036A1340954A2343954C84\n:1018600043628262C2620022D1F8B83023F03F03A3\n:1018700043F00103C0F8B830D1F8BC308E4923F0F2\n:101880003F0343F00103C0F8BC3040F2056302613E\n:1018900005660467C0F88030456644670224C0F8D6\n:1018A0008430036823F0020303608161834B844921\n:1018B000C46143F8042B8B42FBD1774A136843F091\n:1018C00001031360136813F00103FBD17A4802216E\n:1018D00040F2F564906140F29940D16140F2664176\n:1018E000C2F8004242F20144C2F810127549C2F82F\n:1018F0002002C2F8301240F235417348C2F8344237\n:10190000C2F84012714CC2F8500242F201207049F4\n:10191000C2F854120121C2F86042C2F864025E4863\n:10192000C2F8A030C2F8A430C2F8B0104369DA0798\n:10193000FCD5012300244FF4803257494361C0F89D\n:10194000A040C0F8A420C0F8B0304B69DB07FCD53C\n:10195000012300244FF400304F4A4B61C1F8A040EE\n:10196000C1F8A400C1F8B0305369DF07FCD50123EA\n:101970000024584848495361C2F8A040C2F8A40066\n:10198000C2F8B0304B69DE07FCD5D1F8003145F61E\n:101990000D5221209BB24861934265D100244FF43F\n:1019A000802201233C48C1F8A040C1F8A420C1F81E\n:1019B000B0304369DD07FCD501234FF4000400215A\n:1019C000354A4361C0F8A040C0F8A410C0F8B03058\n:1019D0005369DC07FCD501234FF400044FF4803039\n:1019E0002D495361C2F8A040C2F8A400C2F8B0303B\n:1019F0004B69D807FCD501234FF400044FF40030A5\n:101A0000254A4B61C1F8A040C1F8A400C1F8B0302C\n:101A10005369D907FCD501234FF400042D481E4912\n:101A20005361C2F8A040C2F8A400C2F8B0304B69BC\n:101A3000DA07FCD5D1F8003145F60D5221209BB2D2\n:101A40004861934250D008254FF4000422490020F9\n:101A5000224B234A009015705A1A01232148224430\n:101A600000F00AFA03B0F0BD1E4B0022C3E90022C9\n:101A7000C3E9022203B0F0BD00801F40F9B00100AD\n:101A8000F910010000841F40F970010000C00F40F0\n:101A9000FFFCFF1F000300A000402A4000802A40F6\n:101AA0001200FFFFFF37F7004000008000FFF07CCE\n:101AB000FF000F8363000200F05AF05A00422A40F0\n:101AC00000432A409F041830EB06180A3806180A0B\n:101AD00006320126040003000000007000000070C0\n:101AE00066170020C01600204FF400044FF4802237\n:101AF00001230848C1F8A040C1F8A420C1F8B030C3\n:101B00004369DB07FCD5012310254FF08074436146\n:101B10009CE700BF00402A40F0B4154A40274FF42C\n:101B200080314FF480564FF400554FF4404443F257\n:101B30004200136913F0020F0ED113F4005F0FD0AF\n:101B400013F4805F0ED0002BF3DA13F4803F0BD137\n:101B50005B060BD5F0BC7047946151619061E8E77A\n:101B60005561E6E75661E4E79161E2E75761E0E736\n:101B700000800D403F4A03203F49F3EE095AD2F856\n:101B800080304FF0000C9FED3D6A23F001039FED84\n:101B90003C5A30B4C2F88030C2F89000D1F8E0105E\n:101BA000384DCBB2384C39482B6007EE903A0B0DCC\n:101BB000C1F30B21F8EEE77A06EE903A07EE101A21\n:101BC000334BB8EEC77A2160F8EEE66A314937EE5A\n:101BD000C66A37EEC55A76EEC76A77EEE57A26EE24\n:101BE000266AC3ED006A25EE265AD2F8803067EEE9\n:101BF000A64AC0ED007AC6EE275A274885EE276A26\n:101C0000C4EEA76A75EE875AFCEEE55A36EE076A0F\n:101C100015EE904ABCEEC66A43EA045376EE877A24\n:101C2000C2F8803016EE103AD2F89041FCEEE77A16\n:101C300001EA0341214317EE903AC2F89011C3F331\n:101C40000B03D2F890110B431449C2F89031D2F82B\n:101C5000803043F00203C2F88030114B80F840C05E\n:101C6000C1F840314FF0E023012230BCC3F8082115\n:101C7000704700BF00810D4000441F400000AA4291\n:101C80000000B44228170020241700202C17002041\n:101C9000301700200000FF0F00E400E000100020DB\n:101CA000C53B0000314B40F6617210B5C3F82021EE\n:101CB00040F2044400F0D4F82D4A2E49D2F8803086\n:101CC0002D4843F00303C2F880302C4BC1F860412B\n:101CD00002681A4203D1D1F8A8319A071BD0254ACD\n:101CE0004FF00041244B5963D2F8403143F00203D6\n:101CF000C2F84031D2F840319B07FBD44FF400309A\n:101D00004FF0E0211C4B4FF00042C1F88C0219202B\n:101D10009A6300F09DF8184A4FF08040154C00215E\n:101D200090630A20164B11604FF42072C4F8A8018A\n:101D3000184600F091F84FF4800203464FF48100FA\n:101D400040F243111860C4F858311A640D4B0E4A22\n:101D5000C4F84811C3F804224FF0E0224FF40031D8\n:101D60000123C2F80C11C4F8403110BD00800D40B1\n:101D700000C00F4000002E4000900D40001C1E00CF\n:101D80000000002000100020AD3D000008B50E4B03\n:101D90001B6E9B0700D4FBBE72B60C4B00200C4A96\n:101DA000C3F8400103F160430A49A3F55F231164BE\n:101DB0009D46BFF34F8F4FF400130748074ADB6976\n:101DC00002609B68984700BF00441F4000002E40FF\n:101DD00000C00A400300200000802020000012EB19\n:101DE000104BA020104AD96E41F4403110B4D9668E\n:101DF00040F23764D96E41F44071D96654649064FE\n:101E0000936C1B06FCD4094A40F23761A02351644D\n:101E10009364936C13F08003FBD1054A13705DF853\n:101E2000044B704700C00F4000400C4000800C4045\n:101E300063170020F8B500BFF8BC08BC9E46704789\n:101E40005FF800F0ED3600005FF800F0913200001E\n:101E50005FF800F0813500005FF800F0AD5400003D\n:101E60005FF800F01D4500005FF800F081550000AC\n:101E70005FF800F0113900005FF800F0914E0000AB\n:041E80004500000019\n:101E84001603550053004200200053006500720001\n:101E9400690061006C0000001803540065006500CF\n:101EA4006E00730079006400750069006E006F00B5\n:101EB4000403090409026200030100C032080B0094\n:101EC40002020201000904000001020201000524CB\n:101ED4000010010524010101042402060524060062\n:101EE400010705820310001009040100020A000022\n:101EF40000070503024000000705840240000009B2\n:101F040004020002FF6AFF00070581024000010786\n:101F1400050102400001000009026200030100C043\n:101F240032080B000202020100090400000102024F\n:101F34000100052400100105240101010424020606\n:101F440005240600010705820310000509040100A9\n:101F5400020A0000000705030200020007058402CC\n:101F64000002000904020002FF6AC700070581029B\n:101F74000002010705010200020100000A06000236\n:081F8400EF0201400100000022\n:101F8C000000000000000000000000000000000045\n:101F9C000000000000000000000000000000000035\n:101FAC000548064B1B1AD90F01EBA301491002D0AF\n:101FBC00034B03B118477047C0120020C012002019\n:101FCC000000000008B5054B1BB105490548AFF3EF\n:101FDC000080BDE80840FFF7E3BF00BF0000000031\n:101FEC00D01600200098006008B504F0A5FD10493B\n:101FFC00104A4FF0640C104B48681268A3FB023275\n:10200C00920C0CFB02F24B681B1A9A42FBD804F0A0\n:10201C003FFD002805DD04F07FFD04F039FD0028AC\n:10202C00F9DC00210D20BDE8084003F0BDBA00BF6B\n:10203C00001000E0FC08002083DE1B432DE9F84370\n:10204C00284C01210D20284E03F0AEFA04F10408AF\n:10205C006521264DDFF89C90254F284602F08CFF19\n:10206C00D9F8041032686423A7FB0202920C03FB1C\n:10207C0002F2D9F804305B1A9A42FAD8284602F0D8\n:10208C0013FD444502D014F8011FE6E7D9F804000B\n:10209C006424174B32681749A3FB0232920C04FBE1\n:1020AC0002F24B681B1A9A42FBD8134C00210D20EC\n:1020BC000E4D03F079FA42F21077266803E023689C\n:1020CC009B1BBB420AD8284602F09CFC0028F6DD7C\n:1020DC00064802F0E9FCC0B2BDE8F883EF20BDE889\n:1020EC00F88300BF88020020FC080020DC090020D7\n:1020FC0083DE1B43001000E03C1700202DE9F84361\n:10210C0001210D20BF4C03F04FFA01210D2003F0EB\n:10211C004BFA04F104086921BB4DBC4EDFF8F49274\n:10212C00BB4F304602F028FFD9F804102A6864230C\n:10213C00A7FB0202920C03FB02F2D9F804305B1AE3\n:10214C009A42FAD8304602F0AFFC444502D014F85B\n:10215C00011FE6E7D9F804006421AD4B2A68A3FB04\n:10216C000232920C01FB02F2AA494B681B1A9A42EA\n:10217C00FBD800210D2003F017FAA44802F094FCC0\n:10218C00C0B200283CD1A44C01210D209F4E03F07D\n:10219C000BFA04F105087721DFF878929C4F304652\n:1021AC0002F0EAFED9F804102A686423A7FB0202A5\n:1021BC00920C03FB02F2D9F804305B1A9A42FAD85B\n:1021CC00304602F071FC444502D014F8011FE6E7DA\n:1021DC00D9F8040064218E4B2A68A3FB0232920CBE\n:1021EC0001FB02F28B494B681B1A9A42FBD8002167\n:1021FC000D2003F0D9F9854802F056FCC0B210B19D\n:10220C00E020BDE8F883854C01210D207F4E03F0C2\n:10221C00CBF904F105087721DFF8F8917C4F3046B3\n:10222C0002F0AAFED9F804102A686423A7FB020264\n:10223C00920C03FB02F2D9F804305B1A9A42FAD8DA\n:10224C00304602F031FC444502D014F8011FE6E799\n:10225C00D9F8040064216E4B2A68A3FB0232920C5D\n:10226C0001FB02F26B494B681B1A9A42FBD8002106\n:10227C000D2003F099F9654802F016FCC0B2002855\n:10228C00BED1674C01210D20604E03F08DF904F195\n:10229C0005087721DFF87C915D4F304602F06CFE2B\n:1022AC00D9F804102A686423A7FB0202920C03FBE2\n:1022BC0002F2D9F804305B1A9A42FAD8304602F08E\n:1022CC00F3FB444502D014F8011FE6E7D9F80400EB\n:1022DC0064214F4B2A68A3FB0232920C01FB02F2E1\n:1022EC004C494B681B1A9A42FBD800210D2003F075\n:1022FC005BF9464802F0D8FBC0B2002880D1494CAB\n:10230C0001210D20414E03F04FF904F1060877210D\n:10231C00DFF800913E4F304602F02EFED9F8041043\n:10232C002A68A7FB02326423920C03FB02F2D9F851\n:10233C0004305B1A9A42FAD8304602F0B5FB444599\n:10234C0002D014F8011FE6E7D9F804006421304BE1\n:10235C002A68A3FB0232920C01FB02F22D494B6856\n:10236C001B1A9A42FBD800210D2003F01DF92748B7\n:10237C0002F09AFBC0B200287FF442AF2A4C012134\n:10238C000D20224E03F010F904F105087721DFF837\n:10239C0084901F4F304602F0EFFDD9F804102A68E4\n:1023AC00A7FB02326423920C03FB02F2D9F804302F\n:1023BC005B1A9A42FAD8304602F076FB444502D0BA\n:1023CC0014F8011FE6E7D9F804006424104B2A68BE\n:1023DC001049A3FB0232920C04FB02F24B681B1A4D\n:1023EC009A42FBD800210D2003F0DEF8074802F0DA\n:1023FC005BFBC0B200287FF403AFBDE8F843FFF7E6\n:10240C001DBE00BF90020020FC080020DC0900204B\n:10241C0083DE1B43001000E098020020A002002085\n:10242C00A8020020B0020020000300202DE9F04F8C\n:10243C00DFF87082012183B00D2003F0B5F8934CC6\n:10244C0008F1050745467721914EDFF84CA2DFF8DD\n:10245C004492304602F090FDDAF8041022686423AE\n:10246C00A9FB0202920C03FB02F2DAF804305B1AAD\n:10247C009A42FAD8304602F017FBBD4202D015F84A\n:10248C00011FE6E7834BDAF8040022688249A3FBBC\n:10249C0002326423920C03FB02F24B681B1A9A4221\n:1024AC00FBD800210D2003F07FF8794802F0FCFAEC\n:1024BC0010F0FF0040F09480784D0121ADF804003D\n:1024CC008DF806000D2003F06FF805F10C0A77214A\n:1024DC006F4EDFF8C4B1DFF8BC91304602F04CFD12\n:1024EC00DBF8041022686423A9FB0202920C03FBA4\n:1024FC0002F2DBF804305B1A9A42FAD8304602F04A\n:10250C00D3FA554502D015F8011FE6E7614BDBF80D\n:10251C00040022686049A3FB02326423920C03FB83\n:10252C0002F24B681B1A9A42FBD800210D2003F0D3\n:10253C003BF8574802F0B8FAC0B2A0BBFFF77EFDDB\n:10254C00054688BB524802F0AFFA824650485FFA03\n:10255C008AFA4F4DDFF840B18DF804A002F0A4FACE\n:10256C005FFA80F901210D204A4E8DF8059003F099\n:10257C001BF87721284602F0FFFCDBF804102268D8\n:10258C00A6FB02326423920C03FB02F2DBF804304C\n:10259C005B1A9A42FAD8284602F086FAB84507D058\n:1025AC0018F8011FE6E7E425284603B0BDE8F08FD4\n:1025BC00384BDBF8040022683749A3FB0232642352\n:1025CC00920C03FB02F24B681B1A9A42FBD80021B7\n:1025DC000D2002F0E9FF2E4802F066FAC0B220B1DD\n:1025EC00E825284603B0BDE8F08F2D4D01210D20C4\n:1025FC00274E02F0D9FF05F10C087721DFF898B0CF\n:10260C00244F304602F0B8FCDBF804102268A7FB1C\n:10261C0002326423920C03FB02F2DBF804305B1AE7\n:10262C009A42FAD8304602F03FFA454502D015F8E6\n:10263C00011FE6E7174BDBF8040022681649A3FBE1\n:10264C0002326423920C03FB02F24B681B1A9A426F\n:10265C00FBD800210D2002F0A7FF0D4802F024FA50\n:10266C00C0B200289FD1FFF7E9FC054600289BD19A\n:10267C00074802F019FA0446504604F05DFA484641\n:10268C0004F05AFAE0B204F057FA8DE7FC08002087\n:10269C00DC09002083DE1B43001000E0B8020020A0\n:1026AC00C8020020080300202DE9F04F83B04FF042\n:1026BC0000093A4E0DF1040ADFF8ECB0384D4FF03A\n:1026CC0072084FEA19224FEA1943802401210D2088\n:1026DC008DF804406C468DF800808DF801908DF8D3\n:1026EC0002208DF8033002F05FFF2E4F4146384632\n:1026FC0002F042FCDBF8041032686423A5FB0202F2\n:10270C00920C03FB02F2DBF804305B1A9A42FAD803\n:10271C00384602F0C9F9544502D014F8011FE6E717\n:10272C00DBF8041064223368A5FB03039B0C02FB4B\n:10273C0003F3DBF80420521A9342FAD800210D203F\n:10274C004FF08008174C642702F02EFF204602F051\n:10275C0059F988B9DBF804103268A5FB0232920CE7\n:10276C0007FB02F2DBF804305B1A9A42FAD82046D7\n:10277C0002F048F90028EDD0204602F095F9C0B2DD\n:10278C0004F0DAF9B8F10108E0D109F18009B9F5E2\n:10279C00002F94D1404603B0BDE8F08FFC08002018\n:1027AC0083DE1B43DC090020001000E02DE9F04F14\n:1027BC00644D85B042F210762C6804E02B681B1B2C\n:1027CC00B34200F2B78004F063F90328F6DD00236E\n:1027DC002F685D4E1C460293ADF80C30CDE90033EA\n:1027EC0005E02B68B268DB1B934280F0A780C4F134\n:1027FC0004010DEB040004F0B9F80444032CF0D9E7\n:10280C009DF802009DF803309DF800109DF8012002\n:10281C0003EB002302EB01229BB292B201334FEA8D\n:10282C0082299A424FEA832B78D2484EDFF828A1AE\n:10283C00474D00214FEA192072244FEA19434FF0FB\n:10284C00800CADF80C108DF802000D208DF80040B6\n:10285C006C46404F8DF801908DF80330CDE9011195\n:10286C0001218DF804C002F09FFE14F8011B3846BC\n:10287C0002F082FBDAF8040031686423A5FB01C185\n:10288C00890C03FB01F1DAF804301B1A9942FAD8CF\n:10289C00384602F009F90DF105039C42E5D1DAF84E\n:1028AC00040064213368A5FB03439B0C01FB03F379\n:1028BC00DAF80410091A8B42FAD800210D204FF0D7\n:1028CC008008244C642702F06FFE204602F09AF830\n:1028DC0088B9DAF804003168A5FB0131890C07FBD3\n:1028EC0001F1DAF804301B1A9942FAD8204602F0AA\n:1028FC0089F80028EDD0204602F0D6F8C0B204F0DA\n:10290C001BF9B8F10108E0D109F18009CB4590D849\n:10291C0004F0BEF8002805DD04F0FEF804F0B8F869\n:10292C000028F9DC00210D2002F03EFE002005B04D\n:10293C00BDE8F08FEB2005B0BDE8F08F01233373B9\n:10294C005EE700BF3C170020CC090020FC080020EB\n:10295C0083DE1B43DC090020001000E02DE9F04F62\n:10296C00DFF8908289B042F21075D8F8004005E08B\n:10297C00D8F800301B1BAB4200F2238104F088F81E\n:10298C000328F5DD0023D8F80060934D1C46069310\n:10299C00ADF81C30CDE9043306E0D8F80030AA6855\n:1029AC009B1B934280F0158104F11003C4F10401C8\n:1029BC000DEB030003F0DAFF0444032CEDD99DF872\n:1029CC0012209DF813309DF8101003EB02239DF894\n:1029DC00112002EB01229BB292B2013391029A4276\n:1029EC0001914FEA8321039180F0E380DFF8089294\n:1029FC007A4E7B4CDFF804B27A4D019F01210D20F9\n:102A0C0002F0D2FDC7F3072AC7F307437721764FAD\n:102A1C000293204602F0B0FADBF804103268A5FBF2\n:102A2C0002326423920C03FB02F2DBF804305B1AD3\n:102A3C009A42FAD8204602F037F84F4502D017F8E0\n:102A4C00011FE6E7DBF804103268A5FB02326423B1\n:102A5C00920C03FB02F2DBF804305B1A9A42FAD8B0\n:102A6C0000210D2002F0A0FD204602F01DF810F010\n:102A7C00FF0040F0AA80029B04AF05908DF8173040\n:102A8C005A4BADF81C008DF816A00DF11D0A93E8F9\n:102A9C000300083304908DF8141093E8030006909B\n:102AAC000D208DF81C10012102F07EFD17F8011B82\n:102ABC00204602F061FADBF804103268A5FB023202\n:102ACC006423920C03FB02F2DBF804305B1A9A428B\n:102ADC00FAD8204601F0E8FF5745E7D1DBF804109F\n:102AEC003268A5FB02326423920C03FB02F2DBF882\n:102AFC0004305B1A9A42FAD800210D2002F054FDE2\n:102B0C00204601F0D1FFC0B200285ED1384F012120\n:102B1C000D2002F049FD07F1040A6521204602F060\n:102B2C002BFADBF804103268A5FB02326423920CFA\n:102B3C0003FB02F2DBF804305B1A9A42FAD8204607\n:102B4C0001F0B2FF574502D017F8011FE6E7DBF89A\n:102B5C0004103268A5FB02326423920C03FB02F2D0\n:102B6C00DBF804305B1A9A42FAD800210D2002F0EF\n:102B7C001BFD42F21077D8F800A005E0D8F8003021\n:102B8C00A3EB0A03BB4218D8204601F03BFF0028F8\n:102B9C00F4DD204601F088FF10F0FF000ED1019B00\n:102BAC0003F580670197FFF71FFA039BBB423FF6C3\n:102BBC0024AF002009B0BDE8F08FEF2009B0BDE8CC\n:102BCC00F08FEB2009B0BDE8F08FE42009B0BDE830\n:102BDC00F08F01232B73F2E6CC090020FC080020B7\n:102BEC00DC09002083DE1B4318030020D8020020E0\n:102BFC00880200203C1700201D030020001000E07C\n:102C0C002DE9F04FDFF89C8289B042F21075D8F8AC\n:102C1C00004005E0D8F800301B1BAB4200F22581C8\n:102C2C0003F036FF0328F5DD0023D8F80060964D3D\n:102C3C001C460693ADF81C30CDE9043306E0D8F8F9\n:102C4C000030AA689B1B934280F0138104F110039F\n:102C5C00C4F104010DEB030003F088FE0444032CC3\n:102C6C00EDD99DF812209DF813309DF8101003EB50\n:102C7C0002239DF8112002EB01229BB292B2013388\n:102C8C0091029A4201914FEA8321039180F0E580F1\n:102C9C00DFF814927D4E7E4CDFF810B27D4D019F13\n:102CAC0001210D2002F080FCC7F3072AC7F307436C\n:102CBC007721794F0293204602F05EF9DBF804107D\n:102CCC003268A5FB02326423920C03FB02F2DBF8A0\n:102CDC0004305B1A9A42FAD8204601F0E5FE4F45C3\n:102CEC0002D017F8011FE6E7DBF804103268A5FBE9\n:102CFC0002326423920C03FB02F2DBF804305B1A01\n:102D0C009A42FAD800210D2002F04EFC204601F028\n:102D1C00CBFE10F0FF0040F0B380029B04AF059097\n:102D2C008DF817305D4BADF81C008DF816A00DF129\n:102D3C001D0A93E80300083304908DF8141093E8EF\n:102D4C00030006900D208DF81C10012102F02CFCC4\n:102D5C0017F8011B204602F00FF9DBF8041032685B\n:102D6C00A5FB02326423920C03FB02F2DBF8043065\n:102D7C005B1A9A42FAD8204601F096FE5745E7D1E5\n:102D8C00DBF804103268A5FB02326423920C03FBBF\n:102D9C0002F2DBF804305B1A9A42FAD800210D20BB\n:102DAC0002F002FC204601F07FFEC0B2002863D185\n:102DBC003B4F01210D2002F0F7FB07F1040A6521BE\n:102DCC00204602F0D9F8DBF804103268A5FB023279\n:102DDC006423920C03FB02F2DBF804305B1A9A4278\n:102DEC00FAD8204601F060FE574502D017F8011FB3\n:102DFC00E6E7DBF804103268A5FB02326423920C80\n:102E0C0003FB02F2DBF804305B1A9A42FAD8002179\n:102E1C000D2002F0C9FB42F21077D8F800A005E0B3\n:102E2C00D8F80030A3EB0A03BB421AD8204601F0B5\n:102E3C00E9FD0028F4DD204601F036FE10F0FF001D\n:102E4C0001D01B280ED1019B03F580670197FFF77A\n:102E5C00CBF8039BBB423FF622AF002009B0BDE884\n:102E6C00F08FEF2009B0BDE8F08FEB2009B0BDE882\n:102E7C00F08F01232B73F4E6E42009B0BDE8F08F4A\n:102E8C00E82009B0BDE8F08FCC090020FC08002038\n:102E9C00DC09002083DE1B4320030020D802002025\n:102EAC00880200203C17002025030020001000E0C1\n:102EBC002DE9F04F924D83B0924E4FF06409924C35\n:102ECC00DFF848A2DFF84882002701210D20009787\n:102EDC008DF8047002F068FB4FF4FA514FF4FA606D\n:102EEC0002F062F908218346012002F05DF93946AF\n:102EFC000746052002F058FBDAF804102A68A8FBF4\n:102F0C000232920C02EB8202D200DAF804305B1A25\n:102F1C009A42FAD8304601F01FFE052002F0F0FA72\n:102F2C000121052002F040FB052002F0E9FA002205\n:102F3C004FF4E131304601F043FE0120C6F8089011\n:102F4C0002F0DEFA2378C52130463B3B237002F0B9\n:102F5C0013F8DAF804102A68A8FB0232920C09FB69\n:102F6C0002F2DAF804305B1A9A42FAD8237801217B\n:102F7C0030460133237001F0FFFFDAF804102A68A1\n:102F8C00A8FB0232920C09FB02F2DAF804305B1A4D\n:102F9C009A42FAD803213046217001F0EDFFDAF89D\n:102FAC0004102A68A8FB0232920C09FB02F2DAF830\n:102FBC0004305B1A9A42FAD823789A213046663B41\n:102FCC00237001F0D9FFDAF804102A68A8FB02324A\n:102FDC00920C09FB02F2DAF804305B1A9A42FAD826\n:102FEC000021304601F0C8FFDAF804102A68A8FB6B\n:102FFC000232920C09FB02F2DAF804305B1A9A42A4\n:10300C00FAD82378142130461433237001F0B4FF1E\n:10301C00DAF804102A68A8FB0232920C09FB02F2BF\n:10302C00DAF804305B1A9A42FAD8237830465942BF\n:10303C00C9B2CB1A237001F09FFFDAF804102A688A\n:10304C00A8FB0232920C09FB02F2DAF804305B1A8C\n:10305C009A42FAD8304601F0D5FC03463046002B94\n:10306C0008DD01F021FD304601F0CCFC0346304672\n:10307C00002BF6DC237803210333237001F07CFF53\n:10308C00DAF804102A68A8FB0232920C09FB02F24F\n:10309C00DAF804305B1A9A42FAD8304601F004FD93\n:1030AC0005226946304602F045F89DF80230062BA1\n:1030BC005BD0102B40F0FC81DAF804102A68A8FBD6\n:1030CC000232920C0BFB02F2DAF804305B1A9A42D1\n:1030DC00FAD80021042002F067FADAF804102A6802\n:1030EC00A8FB0232920C07FB02F2DAF804305B1AEE\n:1030FC009A42FAD80121042002F056FA0CE000BFE3\n:10310C00FC080020DC09002065170020001000E0FE\n:10311C0083DE1B4301F0C8FC304601F073FC034610\n:10312C003046002BF6DC304640F2E73701F06AFC03\n:10313C00002814DCDAF804102A68A8FB0232920C7E\n:10314C0002EB8202DAF804305B1A9A42FAD8013F99\n:10315C003FF4BAAE304601F055FC0028EADD3046AB\n:10316C0001F0A2FCC0B20228E4D10520B94E02F055\n:10317C00C7F923789121B8486F3B237001F0FCFE0E\n:10318C0071686420B54B2A68A3FB0232920C00FBD9\n:10319C0002F273685B1A9A42FBD8012002F0B0F974\n:1031AC003A21AD48217001F0E7FE7168AB4B2A68FB\n:1031BC00A84EA3FB02326423920C03FB02F2736849\n:1031CC005B1A9A42FBD823784E21A3480B442370F8\n:1031DC0001F0D2FE7168A14B2A689E4EA3FB02320D\n:1031EC006423920C03FB02F273685B1A9A42FBD8BD\n:1031FC0023786F2198480B44237001F0BDFE716851\n:10320C00964B2A68934EA3FB02326423920C03FB69\n:10321C0002F273685B1A9A42FBD8237874218E48A9\n:10322C000B44237001F0A8FE71688C4B2A68894E00\n:10323C00A3FB02326423920C03FB02F273685B1A49\n:10324C009A42FBD823783A2183480B44237001F02F\n:10325C0093FE7168814B2A687E4EA3FB0232642375\n:10326C00920C03FB02F273685B1A9A42FBD8237828\n:10327C00552179480B44237001F07EFE7168774B21\n:10328C002A68744EA3FB02326423920C03FB02F2F5\n:10329C0073685B1A9A42FBD8237873216E480B44EF\n:1032AC00237001F069FE71686C4B2A68694EA3FBB0\n:1032BC0002326423920C03FB02F273685B1A9A428B\n:1032CC00FBD82378652164480B44237001F054FE2D\n:1032DC007168624B2A685F4EA3FB02326423920C26\n:1032EC0003FB02F273685B1A9A42FBD823786421C1\n:1032FC0059480B44237001F03FFE7168574B2A6804\n:10330C00544EA3FB02326423920C03FB02F273684B\n:10331C005B1A9A42FBD823783A214F480B4423700E\n:10332C0001F02AFE71684D4B2A684A4EA3FB02320B\n:10333C006423920C03FB02F273685B1A9A42FBD86B\n:10334C00217845480139C9B24B00237001F014FEB5\n:10335C007168424B2A683F4EA3FB02326423920CE5\n:10336C0003FB02F273685B1A9A42FBD8012002F04D\n:10337C00C7F82378932138486D3B237001F0FCFD8E\n:10338C00364B70682A683349A3FB02326423920CD3\n:10339C0003FB02F24B681B1A9A42FBD8DFF8C0A061\n:1033AC000120DFF8B48002F0ABF8DFF8A8900AF146\n:1033BC00C3072A4E1AF8011F404623780B4423708A\n:1033CC0001F0DAFDD9F8041064232A68A6FB020286\n:1033DC00920C03FB02F2D9F804305B1A9A42FAD829\n:1033EC00BA45E7D1012002F08BF8237893211A48D3\n:1033FC006D3B237001F0C0FD184BD9F804002A680E\n:10340C001449A3FB02326423920C03FB02F24B68B7\n:10341C001B1A9A42FBD8DFF84CA00120DFF8388049\n:10342C0002F06EF8DFF82C900AF107070B4E1AF831\n:10343C00011F404623780B44237001F09DFDD9F801\n:10344C00041064232A68A6FB0202920C03FB02F20E\n:10345C000AE000BF001000E0DC09002083DE1B4303\n:10346C0007090020FF080020D9F804305B1A9A42A3\n:10347C00FAD85745DBD11A4C012002F041F89421BF\n:10348C00204601F079FD052002F03AF801E001F048\n:10349C000BFB204601F0B6FA03462046002BF6DC67\n:1034AC000D20002102F080F8012003B0BDE8F08F60\n:1034BC002378EE210A48123B237001F05DFDDAF807\n:1034CC0004406421074A2B680748A2FB03239B0C8A\n:1034DC0001FB03F34268121B9342FBD80020E4E784\n:1034EC00DC09002083DE1B43001000E02DE9F843CB\n:1034FC00314F00224FF4E131304D3846304C01F061\n:10350C005FFB64232E6840F2EE28BB60DFF8B890B6\n:10351C002C4F03F0A5FB2378002B40D03B78DA0727\n:10352C003DD52B68D9F800209B1A0E2B37D90121D9\n:10353C000D2002F063F80121052002F05FF8012153\n:10354C00042002F05BF80121084602F057F8002134\n:10355C00084602F053F80021052002F025F800215E\n:10356C00012002F021F80021084602F01DF801218B\n:10357C00042002F019F803F073FB2378002BFAD027\n:10358C003B78DB07F7D52B68D9F800209B1A0E2B5C\n:10359C00F1D901210D20BDE8F84302F005B82B68E4\n:1035AC0022789B1B2AB1B3F5FA6FC0D803F058FBF5\n:1035BC00AFE74345FAD9BAE7DC0900203C170020F5\n:1035CC00701700206F1700204C1700202DE9F04FCA\n:1035DC00ADF2244D0021944C4FF47F7209A8069152\n:1035EC008DF81C1042F210750891CDE9041103F00E\n:1035FC001DFF266803E023689B1BAB4263D803F0D6\n:10360C0047FA0128F7DD00252768884E06958DF8C6\n:10361C001C50CDE9045504E02368B268DB1B9342CF\n:10362C005DD205F11003C5F102010DEB030003F0AF\n:10363C009DF90544012DEFD99DF8103001210D2085\n:10364C000025009344F620669DF81130DFF8DC81EC\n:10365C00019301F0A9FF27680BE02368DB1BB34241\n:10366C0037D803F015FA1FFA80F9B9F1000F40F0C2\n:10367C00AC80B5F5806FF0D36D4C01210D206D4DF4\n:10368C00039404F1040801F08FFF6B4E7721DFF8EF\n:10369C00B0916A4F304601F06FFCD9F804102A68DB\n:1036AC00A7FB02326423920C03FB02F2D9F804301C\n:1036BC005B1A9A42FAD8304601F0F6F9444511D01B\n:1036CC0014F8011FE6E7EB2420460DF2244DBDE86B\n:1036DC00F08FEC2420460DF2244DBDE8F08F012331\n:1036EC003373A9E7554BD9F804002A685449A3FB56\n:1036FC0002326423920C03FB02F24B681B1A9A42AF\n:10370C00FBD800210D200DF11F060DF21F144A4F9E\n:10371C00DFF82CB1DFF8249101F046FF16F8011FF9\n:10372C00384601F029FCDBF804102A68A9FB0232A8\n:10373C006423920C03FB02F2DBF804305B1A9A420E\n:10374C00FAD8384601F0B0F9A642E7D13A4801F070\n:10375C00F5F93A4BDBF804002A683949A3FB02322D\n:10376C006423920C03FB02F24B681B1A9A42FBD89F\n:10377C00314801F099F9C0B200284FD1314E0121E6\n:10378C000D202D4F029606F1040901F00DFFDFF814\n:10379C00B0A07721DFF8A4B0384601F0EDFBDAF8E1\n:1037AC0004102A68ABFB02326423920C03FB02F276\n:1037BC00DAF804305B1A9A42FAD8384601F074F9F8\n:1037CC004E4541D016F8011FE6E715FA80F0B0F52A\n:1037DC00806F1BDC83B20293D4F800A04FF0000B77\n:1037EC0007E02368D8F80820A3EB0A03934280F083\n:1037FC00998005EB0B0008ABA9EB0B01184403F007\n:10380C00B5F88344D945ECD8029D32E7C5F58069FB\n:10381C004FF480631FFA89F90293DDE7E124204617\n:10382C000DF2244DBDE8F08F3C170020CC09002090\n:10383C00E8020020FC080020DC09002083DE1B438A\n:10384C00001000E0F0020020BB4BDAF804102A68EC\n:10385C00BA48A3FB02326423920C03FB02F24368C6\n:10386C005B1A9A42FBD800210D200DF21F2BB44E8F\n:10387C00DFF8C8A2B04F01F097FE14F8011F3046D4\n:10388C0001F07AFBDAF804102A68A7FB02326423F1\n:10389C00920C03FB02F2DAF804305B1A9A42FAD863\n:1038AC00304601F001F95C45E7D1A54801F046F935\n:1038BC00A14BDAF804102A68A048A3FB0232642357\n:1038CC00920C03FB02F243685B1A9A42FBD89C48A9\n:1038DC0001F0EAF8C0B2002840F0BF80DFF86CB20B\n:1038EC0001210D20964E01F05FFE5C467721934F2F\n:1038FC00DFF844A2304601F03FFB79682A68AAFB46\n:10390C0002326423920C03FB02F27B685B1A9A422C\n:10391C00FBD8304601F0C8F88A4B9C4207D014F80B\n:10392C00011FE7E70123029D88F80C30A1E6824BCA\n:10393C0079682A688148A3FB02326423920C03FB4A\n:10394C0002F243685B1A9A42FBD800210D2001F069\n:10395C002BFE7B4801F0A8F810F0FF007BD18DF80E\n:10396C001500774E754FDFF8D0A1DDE9002303EB8E\n:10397C0002239BB29A008DF816209A099B028DF8AF\n:10398C001720009304AB1C4601936F4B93E8030084\n:10399C00203304908DF8141093E8030006900D204A\n:1039AC008DF81C10012101F0FFFD14F8011B3046AD\n:1039BC0001F0E2FA79682A68AAFB02326423920CBD\n:1039CC0003FB02F27B685B1A9A42FBD8304601F08B\n:1039DC006BF80DF11D039C42E7D1574A79682B68AF\n:1039EC005648A2FB032364229B0C02FB03F34268A0\n:1039FC00521A9342FBD800210D2001F0D5FD5048FE\n:103A0C0001F052F8C0B230BBFEF718FB0446002898\n:103A1C007FF45AAE01210D2001F0C6FD484F7721ED\n:103A2C00464E454CDDF80CA0384601F0A5FA7168FD\n:103A3C002A68A4FB02326423920C03FB02F2736823\n:103A4C005B1A9A42FBD8384601F02EF8C24506D0D4\n:103A5C001AF8011FE8E7E62436E6E22434E6364A93\n:103A6C0071682B683548A2FB032364229B0C02FB74\n:103A7C0003F34268521A9342FBD800210D200DF239\n:103A8C001F240DF21F382E4EDFF8B0A02A4F01F084\n:103A9C008BFD14F8011F304601F06EFADAF80410B1\n:103AAC002A68A7FB02326423920C03FB02F2DAF8B9\n:103ABC0004305B1A9A42FAD8304600F0F5FF4445C0\n:103ACC00E7D11F4801F03AF81B4ADAF804102B68CA\n:103ADC001A48A2FB032364229B0C02FB03F34268EB\n:103AEC00521A9342FBD8164800F0DEFFC0B20028F1\n:103AFC007FF494AE01210D2001F056FD104F77217B\n:103B0C000E4E0D4CDDF80880384601F035FA716820\n:103B1C002A68A4FB02326423920C03FB02F2736842\n:103B2C005B1A9A42FBD8384600F0BEFFC8450FD04E\n:103B3C0018F8011FE8E700BF83DE1B43001000E00C\n:103B4C00DC09002015030020D802002010030020FF\n:103B5C00704A71682B687048A2FB032364229B0C8B\n:103B6C0002FB03F34268521A9342FBD800210D204A\n:103B7C000DF21F440DF21F36684FDFF89C91DFF8F1\n:103B8C00948101F011FD16F8011F384601F0F4F98B\n:103B9C00D9F804102A68A8FB02326423920C03FBA8\n:103BAC0002F2D9F804305B1A9A42FAD8384600F07F\n:103BBC007BFFA642E7D1594800F0C0FF554AD9F81F\n:103BCC0004102B685448A2FB032364229B0C02FBB9\n:103BDC0003F34268521A9342FBD8504800F064FF3A\n:103BEC00C0B200287FF439AF01210D2001F0DCFCBC\n:103BFC004A4F7721484E474C384601F0BDF9716861\n:103C0C002B68A4FB032364229B0C02FB03F3726856\n:103C1C00521A9342FBD8384600F046FF404B9B4566\n:103C2C0002D01BF8011FE7E73A4A71682B683A4843\n:103C3C00A2FB032364229B0C02FB03F34268521A7F\n:103C4C009342FBD800210D2001F0AEFC334800F06C\n:103C5C002BFF10F0FF007FF4FEAE324A009B8DF874\n:103C6C00150003F500732D4E2B4C2A4F92E80300E0\n:103C7C0020328DF81410049092E803001A0A1B0CE1\n:103C8C0006908DF81C100D2001218DF816208DF852\n:103C9C00173001F089FCDDF8048018F8011B304660\n:103CAC0001F06AF961682B68A7FB032364229B0C63\n:103CBC0002FB03F36268521A9342FBD8304600F0C1\n:103CCC00F3FE0DF11D039845E7D164686421114A98\n:103CDC002B681148A2FB03239B0C01FB03F34268E6\n:103CEC00121B9342FBD800210D2001F05DFC0B4808\n:103CFC0000F0DAFEC0B200287FF4ADAEFEF79EF9FC\n:103D0C00044600287FF4E0AC01460D2001F04CFC89\n:103D1C00DAE400BF83DE1B43001000E0DC09002066\n:103D2C0015030020D80200202DE9F04FADF2344DE0\n:103D3C000021C44C4FF47F720DA80A918DF82C1001\n:103D4C0042F210750C91CDE9081103F06FFB266857\n:103D5C0003E023689B1BAB4264D802F099FE012858\n:103D6C00F7DD00252768B84E0A958DF82C50CDE963\n:103D7C00085505E02368B268DB1B934280F006818E\n:103D8C0005F12003C5F102010DEB030002F0EEFD7D\n:103D9C000544012DEED99DF8203001210D20002580\n:103DAC00019344F620669DF82130DFF89C82029343\n:103DBC0001F0FAFB27680CE02368DB1BB34200F22E\n:103DCC00DF8002F065FE1FFA80F9B9F1000F40F0B8\n:103DDC00E080B5F5806FEFD39C4C01210D209C4EFB\n:103DEC0001F0E2FB04F1050877219A4DDFF86C92A3\n:103DFC00994F284601F0C0F8D9F804103268A7FB97\n:103E0C0002326423920C03FB02F2D9F804305B1AE1\n:103E1C009A42FAD8284600F047FE444508D014F8D8\n:103E2C00011FE6E7EB2420460DF2344DBDE8F08F80\n:103E3C00894BD9F8040032688849A3FB0232642309\n:103E4C00920C03FB02F24B681B1A9A42FBD800211E\n:103E5C000D2001F0A9FB7F4800F026FE10F0FF00BA\n:103E6C0040F0BF80DFF804920DF12D088DF825008D\n:103E7C0009F10805774FDFF8E4B1DFF8DCA1DDE9E3\n:103E8C00012399E8030003EB022308909BB28DF801\n:103E9C0024109A00D2B201928DF82620C3F3871217\n:103EAC009B020292039308AB8DF827201C460493C7\n:103EBC0095E803000A900D208DF82C10012101F0DB\n:103ECC0073FB14F8011B384601F056F8DBF80410AC\n:103EDC003268AAFB02326423920C03FB02F2DBF879\n:103EEC0004305B1A9A42FAD8384600F0DDFD44459E\n:103EFC00E7D1594BDBF8041032685848A3FB023267\n:103F0C006423920C03FB02F243685B1A9A42FBD8BF\n:103F1C0000210D2001F048FB4E4800F0C5FDC0B259\n:103F2C00002865D1FEF78AF80446002862D01B28C9\n:103F3C007FF479AF4A4C01210D20464F01F034FB40\n:103F4C0004F1050B7721DFF814A1384601F014F8C1\n:103F5C00414BDAF804103268A3FB02326423920C52\n:103F6C0003FB02F2DAF804305B1A9A42FAD83846AC\n:103F7C0000F09AFD5C4500F0608114F8011FE4E745\n:103F8C00EC2420460DF2344DBDE8F08F0123337341\n:103F9C0001E715FA80F0B0F5806F1ADC83B2039359\n:103FAC00D4F800A04FF0000B06E02368D8F80820E6\n:103FBC00A3EB0A03934216D205EB0B000CABA9EB57\n:103FCC000B01184402F0D2FC8344D945EDD8039D73\n:103FDC00FFE6C5F580694FF480631FFA89F90393F6\n:103FEC00DEE7E8241FE70123039D88F80C30F0E698\n:103FFC00E42418E71B289DD01A4B01210D20154DE8\n:10400C001C460693DFF854B001F0CEFA124F77211C\n:10401C00284600F0B1FFDBF804103268A7FB02322F\n:10402C006423920C03FB02F2DBF804305B1A9A4215\n:10403C00FAD8284600F038FD0B4B9C4218D014F8E7\n:10404C00011FE5E73C170020CC09002020030020CD\n:10405C00FC080020DC09002083DE1B43001000E07C\n:10406C0018030020E8020020EC020020D8020020F7\n:10407C00A94BDBF804103268A848A3FB0232642376\n:10408C00920C03FB02F243685B1A9A42FBD80021A4\n:10409C000D200DF12F040DF22F15A14FDFF87CA28E\n:1040AC00DFF874B201F080FA14F8011F384600F002\n:1040BC0063FFDAF804103268ABFB02326423920C13\n:1040CC0003FB02F2DAF804305B1A9A42FAD838464B\n:1040DC0000F0EAFCAC42E7D1914800F02FFD8E4B8A\n:1040EC00DAF8041032688D48A3FB02326423920C78\n:1040FC0003FB02F243685B1A9A42FBD8884800F033\n:10410C00D3FCC0B2002840F0A281864B01210D20C7\n:10411C00834F1C460593DFF804A201F045FADFF843\n:10412C00F8B17721384600F027FFDAF8041032682E\n:10413C00ABFB02326423920C03FB02F2DAF804307C\n:10414C005B1A9A42FAD8384600F0AEFC764B9C4289\n:10415C0002D014F8011FE5E76F4BDAF8041032684F\n:10416C006E48A3FB02326423920C03FB02F24368F9\n:10417C005B1A9A42FBD800210D202C460DF22F2BF6\n:10418C00674DDFF898A1644F01F00EFA14F8011F87\n:10419C00284600F0F1FEDAF804103268A7FB023270\n:1041AC006423920C03FB02F2DAF804305B1A9A4295\n:1041BC00FAD8284600F078FC5C45E7D1584800F066\n:1041CC00BDFC554BDAF8041032685448A3FB02329C\n:1041DC006423920C03FB02F243685B1A9A42FBD8ED\n:1041EC004F4800F061FCC0B2002840F034814F4BC6\n:1041FC0001210D204A4D1C460793DFF820B101F038\n:10420C00D3F9454F7721284600F0B6FEDBF80410B1\n:10421C003268A7FB02326423920C03FB02F2DBF838\n:10422C0004305B1A9A42FAD8284600F03DFC404B09\n:10423C009C427FD014F8011FE5E7374BDAF80410E5\n:10424C0032683648A3FB02326423920C03FB02F261\n:10425C0043685B1A9A42FBD800210D2001F0A4F9A7\n:10426C002F4800F021FC10F0FF007FF4C1AE8DF858\n:10427C00250008AC019B2A4F8DF82630029BDFF8F5\n:10428C009CB0DFF894A08DF8273099E803000890D3\n:10429C008DF8241095E803000A900D208DF82C1051\n:1042AC00012101F081F914F8011B384600F064FE7D\n:1042BC00DBF804103268AAFB02326423920C03FB75\n:1042CC0002F2DBF804305B1A9A42FAD8384600F056\n:1042DC00EBFB4445E7D1104ADBF8041033680F4878\n:1042EC00A2FB032364229B0C02FB03F34268521AC9\n:1042FC009342FBD800210D2001F056F9084800F03C\n:10430C00D3FBC0B200287FF473AEFDF797FE0446D2\n:10431C0000283FF471AE86E583DE1B43001000E0FD\n:10432C00DC090020F0020020F40200201003002021\n:10433C0015030020B44BDBF804103268B348A3FB20\n:10434C0002326423920C03FB02F243685B1A9A421A\n:10435C00FBD800210D2001F027F9AD4800F0A4FB9B\n:10436C0010F0FF0075D1019B08AC8DF825008DF87D\n:10437C002630029BA64D8DF82730A64BDFF88CB269\n:10438C00A14F99E8030008908DF8241093E80300DE\n:10439C000A900D208DF82C10012101F005F914F86C\n:1043AC00011B284600F0E8FDDBF804103268A7FB7F\n:1043BC0002326423920C03FB02F2DBF804305B1A2A\n:1043CC009A42FAD8284600F06FFB4445E7D18E4A52\n:1043DC00DBF8041033688D48A2FB032364229B0C8A\n:1043EC0002FB03F34268521A9342FBD800210D20C2\n:1043FC0001F0DAF8864800F057FBC0B248BBFDF775\n:10440C001DFE044600287FF40EAD01210D2001F0A5\n:10441C00CBF87F4F77217D4D7B4CDDF818A03846CB\n:10442C0000F0AAFD69683268A4FB02326423920C86\n:10443C0003FB02F26B685B1A9A42FBD8384600F019\n:10444C0033FB754B9A4508D01AF8011FE7E7E124B6\n:10445C00E9E4E624E7E4E224E5E46B4A69683368BE\n:10446C006A48A2FB032364229B0C02FB03F3426801\n:10447C00521A9342FBD800210D200DF22F240DF27D\n:10448C002F3A634DDFF884B15F4F01F08DF814F8CB\n:10449C00011F284600F070FDDBF804103268A7FB02\n:1044AC0002326423920C03FB02F2DBF804305B1A39\n:1044BC009A42FAD8284600F0F7FA5445E7D1544806\n:1044CC0000F03CFB504ADBF8041033684F48A2FB69\n:1044DC00032364229B0C02FB03F34268521A93429F\n:1044EC00FBD84B4800F0E0FAC0B20028AFD1012154\n:1044FC000D2001F059F8464F7721444D424CDDF820\n:10450C0014A0384600F038FD69683268A4FB02320A\n:10451C006423920C03FB02F26B685B1A9A42FBD881\n:10452C00384600F0C1FA3D4B9A4502D01AF8011FEB\n:10453C00E7E7354A696833683448A2FB03236422F1\n:10454C009B0C02FB03F34268521A9342FBD80021E6\n:10455C000D200DF22F4A0DF22F352D4F2B4CDFF87D\n:10456C00A8B001F021F815F8011F384600F004FD41\n:10457C0061683268ABFB02326423920C03FB02F2DB\n:10458C0063685B1A9A42FBD8384600F08DFAAA454C\n:10459C00E9D11F4800F0D2FA1B4A616833681B4806\n:1045AC00A2FB032364229B0C02FB03F34268521A06\n:1045BC009342FBD8164800F077FAC0B200287FF47B\n:1045CC004AAF01210D2000F0EFFF114F77210F4D65\n:1045DC000D4CDDF81CA0384600F0CEFC6968336841\n:1045EC00A4FB032364229B0C02FB03F36A68521A9C\n:1045FC009342FBD8384600F057FA094B9A4511D034\n:10460C001AF8011FE7E700BF83DE1B43001000E030\n:10461C00DC090020F8020020EC020020F40200204B\n:10462C0015030020394A696833683948A2FB032313\n:10463C0064229B0C02FB03F34268521A9342FBD890\n:10464C0000210D2000F0B0FF324800F02DFA10F0E0\n:10465C00FF007FF4FEAE039B2F4A8DF8250003F577\n:10466C0000732C4D2A4C294F99E803008DF8241027\n:10467C00089092E803001A0A1B0C0A908DF82C1073\n:10468C000D2001218DF826208DF8273000F08CFFAD\n:10469C00DDF8109019F8011B284600F06DFC6168DC\n:1046AC003368A7FB032364229B0C02FB03F36268B1\n:1046BC00521A9342FBD8284600F0F6F9C145E9D1CD\n:1046CC0064686421114A33681148A2FB03239B0CD4\n:1046DC0001FB03F34268121B9342FBD800210D200F\n:1046EC0000F062FF0B4800F0DFF9C0B200287FF445\n:1046FC00B0AEFDF7A3FC044600287FF494AB014652\n:10470C000D2000F051FFFFF78EBB00BF83DE1B4373\n:10471C00001000E0DC090020F80200202DE9F04335\n:10472C00012183B00D20A44CA44F00F03DFF02F0FA\n:10473C00AFF9002800F09C8002F0EEF9A04AC0B25C\n:10474C00102818BF012810708CBF012300232028CB\n:10475C000CBF002303F0010380280CBF002303F0DF\n:10476C00010313B1F02840F0DF80202800F2C5804F\n:10477C002028DCD801A353F820F000BF73290000D7\n:10478C0049290000432900003D2900002F29000081\n:10479C00AF27000021290000132900000529000083\n:1047AC00AF270000F7280000AF270000AF2700005C\n:1047BC00AF270000AF270000AF270000CF28000074\n:1047CC00AF270000AF270000AF270000AF27000085\n:1047DC00AF270000AF270000AF270000AF27000075\n:1047EC00AF270000AF270000AF270000AF27000065\n:1047FC00AF270000AF270000AF2700008128000082\n:10480C0001210D206F4D00F0CFFE01210D2000F095\n:10481C00CBFE05F104097521DFF8C0816A4E3046E4\n:10482C0000F0AAFB6168D8F800206423A7FB020201\n:10483C00920C03FB02F263685B1A9A42FBD8304677\n:10484C0000F032F9A94576D015F8011FE7E75F4E65\n:10485C0000205F4D96F800802870B8F1000F00F032\n:10486C009780FDF7C1FB02F013F900287FF464AFC9\n:10487C0003B0BDE8F083FDF7D9FD554B1870FDF77B\n:10488C00B3FB54E7FEF7BCF9514B1870FDF7ACFBCA\n:10489C004DE7FFF749FA4E4B1870FDF7A5FB46E7BD\n:1048AC00FEF794FE4A4B1870FDF79EFB3FE7FEF7B0\n:1048BC0055F8474B1870FDF797FB38E7FDF7F4FEFA\n:1048CC0035E7FDF773FF32E70120424D02F0E2FAC3\n:1048DC00064602F0E7FA01AB05209B1B2B8002F089\n:1048EC002BF92888000A02F027F9287802F024F91D\n:1048FC001DE7022002F020F919E7802838D0F028B3\n:10490C007FF415AF0120334D02F0C4FA064602F0D5\n:10491C00C9FA01AB02209B1B2B8002F00DF905207C\n:10492C0002F00AF94120DAE7284B1B7863B3202800\n:10493C007FF61EAFFBE661686423D8F80020A7FB66\n:10494C000202920C03FB02F263685B1A9A42FBD8D8\n:10495C0000210D2000F028FE1B4800F0A5F810F0F7\n:10496C00FF001B4B18BFE0201870FDF73DFB7AE7EA\n:10497C0000210D2000F018FE4FF4FA7000F0C0FD7D\n:10498C00154B1B689847D2E6E020FDF72DFBCEE6D1\n:10499C00FEF78EFA287028B9E12318462B70FDF724\n:1049AC0023FB60E7FDF7AAFB287010B901233370D5\n:1049BC0057E786F8008054E7001000E083DE1B43C5\n:1049CC006417002080020020DC09002067170020FB\n:1049DC006817002058170020F0160020FC08002053\n:1049EC0001207047B0F84630B0F848209BB292B224\n:1049FC00934202D2013AD01A7047416B01390A44F2\n:104A0C00D01A7047016972B6B0F84A20B0F84C3031\n:104A1C0092B29BB29A423CBF806B1218C86AD31AEE\n:104A2C0062B6C0F302601844704700BFB0F84A1079\n:104A3C000246B0F84C3089B29BB2994210B404696A\n:104A4C0014D00133906B116B984298BF002399429C\n:104A5C0006D85B1A526AD05CC0B25DF8044B704742\n:104A6C00126A5DF8044BD05CC0B2704772B6B0F8F5\n:104A7C004A0080B2814201D062B6E2E7E36A13F0E9\n:104A8C00E06F03D14FF0FF3062B6E6E7E369012037\n:104A9C000024116AA2F84A00C3F30900DBB2A2F8A1\n:104AAC004C404B70F0E700BFB0F84A100246B0F82B\n:104ABC004C3089B29BB2994230B4046925D0013391\n:104ACC00946B9C4216D9106B1FFA83FC984217D931\n:104ADC00106AC05CC0B2956DA2F84CC045B1994249\n:104AEC001CD3CB1AD16B994202D3D36DC5F8883045\n:104AFC0030BC70474FF0000C106B63469842E7D8FF\n:104B0C00181A556A285CC0B2E5E7084672B6B2F8C6\n:104B1C004A1089B2884204D062B6D0E70C44E31A3A\n:104B2C00E0E7E36A13F0E06F03D14FF0FF3062B6B9\n:104B3C00DEE7E069C0F30900F9E700BF90F8443004\n:104B4C0043B110B5044602F08BF894F84430002BB6\n:104B5C00F9D110BD704700BF38B5D0E90453D3E983\n:104B6C0003120968114228D090F84420044632B14F\n:104B7C0002F076F894F84430002BF9D163690021E7\n:104B8C000E4AA961207E03EB0010007D02EB0010A1\n:104B9C00456805202860657E03EB051393F83430D7\n:104BAC0002EB0312A36D52681060A4F84A10A4F82B\n:104BBC004C1013B1E26DC3F8842038BDE003002023\n:104BCC0007EE901A9FED9A7A0421B6EE005AF8EE91\n:104BDC00677A9FED986A41F6FF7CC7EE275A2DE95C\n:104BEC00F0478E460569012407EE901AF8EEE77A35\n:104BFC0085EEA77A77EE057AFDEEE77A17EE903A16\n:104C0C006345A8BF6346012BB8BF012307EE903A5A\n:104C1C00F8EEE76A76EEC76AC6EE877AF5EEC07AEA\n:104C2C00F1EE10FA48BFF1EE677AF4EEC67AF1EEC7\n:104C3C0010FA03D8B0EE676A8E461C460131212962\n:104C4C00D2D10021436902F40076A0F84A10B3F8DF\n:104C5C005AC08E42A0F84C10B3F85860A0F8461019\n:104C6C00A0F8481080F84410816BDF68A1EB0606B1\n:104C7C00A1EB0C01C0E90F6139681E6941EA06011C\n:104C8C00396014BF01210021817640F0AC80017E97\n:104C9C00694E03EB0118DFF8C09198F81470D8F83E\n:104CAC001CA006EB0717B968C1F800907968D8F812\n:104CBC0018700F60BAF1000F03D0D8F82010CAF8A2\n:104CCC000010477ED92103EB071898F834C006EB87\n:104CDC000C1CDCF808703960DCF80410D8F838705B\n:104CEC000F60417E03EB0111CF6B0FB1096C396082\n:104CFC000EF1FF31BEF1080F4FEA0161CCBF4FF04E\n:104D0C00000E4FF0010E01F0F85144EA4E442143DD\n:104D1C005C682961597801F110030021E960474969\n:104D2C0041F8234041694FF0010E454C02F0030C51\n:104D3C004F7891F85610434B39554FF00217446990\n:104D4C00617803EB511301F01F019B000EFA01F186\n:104D5C001960EF62AB6A43F08803AB6253073ED431\n:104D6C004CF4701302F00F01042908BF43F0804388\n:104D7C0097062ED5817E43F0805300293AD1160731\n:104D8C00AB6103D52B6943F000532B616B69D106E2\n:104D9C0023F0805348BF43F080536B61D30503D598\n:104DAC002B6943F400532B61A36883B1264E3478EE\n:104DBC00002C3AD0611E254DC9B22B1F05EB810189\n:104DCC0001E0994225D053F8042F9042F9D1BDE867\n:104DDC00F087817E0029D2D043F0A003CFE71C4B93\n:104DEC004CEA0303BEE7477E4FF2D901124E03EBA8\n:104DFC0007186AE7417E43F0A00304EB011191F818\n:104E0C00341006EB0116B668316821F4404131606C\n:104E1C00B5E7631CDBB20F4A3370137845F82400F6\n:104E2C0043F002031370BDE8F0870123074DF2E74E\n:104E3C00001BB74BEC78AD60E003002000100020A5\n:104E4C0000E400E040380038611700201C150020F9\n:104E5C0010003C007317002038F00100EFF31380B2\n:104E6C00B8B9EFF310834BB9EFF305823AB94FF4AD\n:104E7C008073EFF3118050B1984208D270470F2A1B\n:104E8C00F7D9054B9B5CEFF311800028F4D1184641\n:104E9C0070474FF0FF30F1E7F0E300E0036D2DE9D0\n:104EAC00F04104460F46066913B1426DC3F88420E5\n:104EBC00A37E2BB172B6B36943F00053B36162B6F3\n:104ECC00B4F84650636BADB20135AB424CD84FF0E1\n:104EDC0000084546B4F848309BB29D4219D028E0F2\n:104EEC0073691B0210D5B4F84830626B9BB2013366\n:104EFC009A4236D99AB2E16A99422DD9E169CB5CD2\n:104F0C00DBB2F361A4F84820B4F848309BB2AB4252\n:104F1C000FD1FFF7A3FF6369B3F856308342DFDA92\n:104F2C00FF28F1DD01F09CFEB4F848309BB2AB4297\n:104F3C00EFD0E36AAB421AD9FFB2E3695F5572B6A0\n:104F4C00012084F84400A4F84680B36943F40003BC\n:104F5C00B36162B6BDE8F0815B1AA16ACB5CDBB2CF\n:104F6C00CFE700221346C6E71FFA85F8B2E7ED1A21\n:104F7C00FFB2A36A5F55E2E7FFF790BF026953697E\n:104F8C0013F4401F70B543D0D36A13F0E06FC3F332\n:104F9C00026E3AD0B0F84A50B0F84C60ADB2B6B22E\n:104FAC0007E0016A01F803C00EF1FF3313F0FF0EA6\n:104FBC001DD0D1696B1C846BB0F84CC0C1F30901D6\n:104FCC009C4298BF00231FFA8CFC9C45ECD0046BD0\n:104FDC005FFA81FC1D469C42A3EB0404E1D8436AB2\n:104FEC0003F804C00EF1FF3313F0FF0EE1D1ABB2A6\n:104FFC00A0F84A30836D43B1B54254D3AD1B016C5C\n:10500C00A94202D8C16DC3F884105369D90245D4A2\n:10501C009669330228D553691D0225D5B0F8465040\n:10502C00B0F84830ADB29BB206E0C169C95CC9B2F8\n:10503C00D161D16A4C0512D4AB4238D0446B0133E8\n:10504C00C16A9C4298BF00239942A3EB0104ECD89F\n:10505C00816A095DC9B2D161D16A4C05ECD599B2AE\n:10506C00AB42A0F8481025D0710216D553695B02EB\n:10507C0013D50021036D80F8441013B1416DC3F8B2\n:10508C008810837E2BB172B6936923F00053936121\n:10509C0062B6936923F48003936170BD536943F442\n:1050AC0080135361B4E7816B891B0D44A7E79BB256\n:1050BC00A0F84830936923F400039361936943F497\n:1050CC0080039361D0E700BF0148FFF757BF00BFD3\n:1050DC00DC090020084601F02FBD00BF2DE9F0418E\n:1050EC000C46D1B1EAB180468E1800250E4F04E073\n:1050FC0001F022FDB44205440CD0D8F8003014F86D\n:10510C00010B1B68BB42F3D0014640469847B442A2\n:10511C000544F2D12846BDE8F0810D462846BDE88D\n:10512C00F0811546F6E700BF5531000001F0F4BCE4\n:10513C0001F08CBC2DE9F047884651B3914662B31F\n:10514C0082460027164C174E25680BE001F0E4FC54\n:10515C00002810DA01F084FD2368DAF808205B1BC4\n:10516C00934210D2DAF800305B69B342EED050466D\n:10517C0098470028EEDB013708F8010BB945E3D15D\n:10518C003846BDE8F087012338468AF80C30BDE874\n:10519C00F0870F463846BDE8F0871746F0E700BFAA\n:1051AC003C170020AD310000884200DB704730B462\n:1051BC00124C091A2368EBB1114A124D82FB032CD5\n:1051CC00DA179C44C2EB2C4244F2A71C05FB1233A9\n:1051DC000D4D05FB02F20CFB0322002A0CDA6FF0DA\n:1051EC00004313442360B3FBF1F201FB123330BCD8\n:1051FC0018447047054BF5E71346F3E708150020F4\n:10520C005F0B4E831DF30100ECF4FFFF42CE0C1F2D\n:10521C00A249A34B88422DE9F047A24C5E699A69DA\n:10522C00D4F80C801BD9A04B984240F20281C31ACF\n:10523C009E491B0AA1FB031340F22761DB0903EB18\n:10524C00830303EB830303F2E2438B4228BF0B4639\n:10525C00A3F54877964BA3FB0737FF0804E0954F5F\n:10526C00B8428CBF0E2706278D4908F01F09D1F8CC\n:10527C008030B94543F0C003C1F880300CD228F01F\n:10528C001F08A1F5F82148EA0708C1F80C800B6843\n:10529C00002BFCDA08F01F0916F0007324D18649A4\n:1052AC000C698649A14300F0EA8082F480513446AF\n:1052BC004FF4805514F0605F04D026F060561E4306\n:1052CC00774B5E6111F4405F07D022F44052744971\n:1052DC002A438A618B6C1A07FCD446F00076704A1C\n:1052EC005661936C9B06FCD4754CA04200F2CE80A8\n:1052FC004FF0010C0146634603FB011203F1010E52\n:10530C000CF10105A24218D8BEF1080F4FF00103B1\n:10531C0040F08D80BCF1040F00F291800A18A2427B\n:10532C0000F2A48005FB00F1AC4603F1010E03FB77\n:10533C0001120CF10105A242E6D90CF1FF318C02ED\n:10534C0086EA81215F4810445F4A90427FD9DFF89A\n:10535C00A4A16C225D48584DB0FBFEF0D5F800E0DE\n:10536C00B0FBFCF0DFF890C10EEA0C0CD44509D070\n:10537C0042F400524FF4805CC5F800C02A602A68E1\n:10538C00002AFCDA464A156905F007059D4203D050\n:10539C001361936CDD03FCD411F4E05F09D026F4A7\n:1053AC00E05604F4E0543E4A26435661936C990748\n:1053BC00FCD44749474A014491423CD8464BC90961\n:1053CC00A3FB0131090B4B1E1B0286EA030212F4EC\n:1053DC00407F06D026F4407603F44073304A3343C2\n:1053EC0053612F4A536923F000735361936C9B06EE\n:1053FC00FCD43A4B4F45A3FB00234FF0FF324FEA4E\n:10540C009343B0FBF1F1B2FBF3F3354A1060354A2C\n:10541C001160354A136008D228F01F08214A48EA67\n:10542C000707D7601368002BFCDABDE8F0877346DA\n:10543C0062E7122718E74FF440730421C5E70CF11B\n:10544C00FF31204807238C02104486EA8121274A29\n:10545C00DFF8A8A0A2FB0020020D2548362A38BF91\n:10546C00362202FB00F042EA0A0A74E74FEA8C2467\n:10547C00002386EA8C214FF0010EAC4662E71D46F4\n:10548C0086F0C05411464FF0C05313E700244FF080\n:10549C00010C024631462346E64653E700A4781F2A\n:1054AC0000C00F40000008400046C32323B24C004C\n:1054BC001F85EB5100366E0100800D40403000809E\n:1054CC00FFB19F26808D5B00FF7EF64D00643F4D43\n:1054DC007FD1F0087F17B42C9F10E50083DE1B43AF\n:1054EC00FC080020F808002034170020819F5E166D\n:1054FC00001BB7006C2000807F30018000200080F2\n:10550C0000B970472DE9F84F01218146214C224DFD\n:10551C00224E54E8003F2A68306844E80013002B00\n:10552C00F7D11F494B684FF47A7BDFF878A01B1A30\n:10553C0001270BFB02F8DAF80020A3FB02325A45D4\n:10554C0094BF9044D84454E8003F2A68306844E83B\n:10555C000073002BF7D14B68DAF800C01B1A0BFB59\n:10556C0002F2A3FB0C3CBCF57A7F94BF624402F5BB\n:10557C007A72A2EB0802B2F57A7F06D3B9F101096F\n:10558C0008F57A78DFD1BDE8F88F01F069FB0449A2\n:10559C00D9E700BF401700203C1700203817002027\n:1055AC00001000E034170020362816D80201104BEA\n:1055BC0003EB00109B5810B4C2685C68144205D011\n:1055CC0061B95DF8044BC3F888207047836851B10A\n:1055DC00084A5DF8044B1A60704770475DF8044B3D\n:1055EC00C3F884207047044A5DF8044B1A60704776\n:1055FC00E003002038F0010038300100362829D8AB\n:10560C00164B0201012903EB00109A5810B4536891\n:10561C00C4680ED004290CD023EA040353608368B9\n:10562C00A9B1022917D003290CBF0D4A0D4A1A60E3\n:10563C0007E0234301295360836808D040F6380201\n:10564C001A60436815225DF8044B1A6070473822C3\n:10565C001A60F6E77047044A1A60F2E7E00300208C\n:10566C00383001003800010038F0010008B5FDF7B2\n:10567C003DFFFFF753F801F0F3FAFAE7844641EAED\n:10568C00000313F003036DD1403A41D351F8043BAE\n:10569C0040F8043B51F8043B40F8043B51F8043B00\n:1056AC0040F8043B51F8043B40F8043B51F8043BF0\n:1056BC0040F8043B51F8043B40F8043B51F8043BE0\n:1056CC0040F8043B51F8043B40F8043B51F8043BD0\n:1056DC0040F8043B51F8043B40F8043B51F8043BC0\n:1056EC0040F8043B51F8043B40F8043B51F8043BB0\n:1056FC0040F8043B51F8043B40F8043B51F8043BA0\n:10570C0040F8043B51F8043B40F8043B403ABDD20E\n:10571C00303211D351F8043B40F8043B51F8043BB0\n:10572C0040F8043B51F8043B40F8043B51F8043B6F\n:10573C0040F8043B103AEDD20C3205D351F8043B3F\n:10574C0040F8043B043AF9D2043208D0D2071CBF0B\n:10575C0011F8013B00F8013B01D30B880380604634\n:10576C00704700BF082A13D38B078DD010F00303AA\n:10577C008AD0C3F10403D21ADB071CBF11F8013B1A\n:10578C0000F8013B80D331F8023B20F8023B7BE769\n:10579C00043AD9D3013A11F8013B00F8013BF9D294\n:1057AC000B7803704B7843708B788370604670472E\n:1057BC0001F1FF3C70B56646002400E00134B0FBFB\n:1057CC00F2F502FB1503092B03F1370E03F130033D\n:1057DC005FFA8EFE98BF5FFA83FE9042284606F869\n:1057EC0001EFEBD2631C0022C818CA547CB162468C\n:1057FC001CF8015F10F8016DA1EB0C0302328CF860\n:10580C000060013B521A057023449A42EFDB0846B4\n:10581C0070BD00BF00230F2248F2B82C194610B5FA\n:10582C004FF470444FF4806EA0F88C414FF46044F8\n:10583C00A0F88E210A46A0F89031B0F888319BB2BE\n:10584C0043F0F003A0F8883101EB4103013100EB88\n:10585C00431304299C80A3F806E05A841A865A80C4\n:10586C005A81A3F80EC05A82DA825A83DA83EBD1BA\n:10587C00B0F888319BB243F00F03A0F88831B0F830\n:10588C0088319BB243F47063A0F8883110BD00BF1F\n:10589C00374B384A996F384841F47F0170B5996796\n:1058AC0041F20106D3F8801045F6C05543F22604A8\n:1058BC000A43C3F88020FFF7ADFF00F58040FFF7E7\n:1058CC00A9FF00F58040FFF7A5FF00F58040FFF72A\n:1058DC00A1FF0022A0F503104FF00F0E114600EBB4\n:1058EC0042134FEA421C01329981042A5981A3F8D0\n:1058FC000EE09E82DD8020F80C1019829C81EED186\n:10590C0000221E484FF00F0E41F20106114645F6DB\n:10591C00C05543F2260400EB42134FEA421C0132FD\n:10592C009981042A5981A3F80EE09E82DD8020F82B\n:10593C000C1019829C81EED1002211480F2641F2E5\n:10594C000105114645F6C05443F2260E00EB4213F6\n:10595C004FEA421C01329981042A5981DE819D82D1\n:10596C00DC8020F80C101982A3F80CE0EED170BD8D\n:10597C0000C00F40000003FC00C03D4000001E4072\n:10598C0000401E4072B6EFF30583524CC4F88430CD\n:10599C001EF0040F0CBFEFF30882EFF309824FF0F7\n:1059AC00E0234D4E4D4DD3F8280DD3F82C1DC4E9F2\n:1059BC002201D3F8341DD3F8383DC4E9241393697C\n:1059CC00C4F89830D369C4F89C3000F0BDF884ED6D\n:1059DC00280A01F0E5F90B214FF0FF32C4F8A400BE\n:1059EC000B46C4F880103E49301D5A40202402F06A\n:1059FC000103013C01FB03F383EA5202F7D1A842F5\n:105A0C0002D073680646EFE7324BC3F8A820BFF309\n:105A1C004F8F4FF0E0233049324AC3F8701FC3F860\n:105A2C00702FBFF34F8FBFF36F8F2F4A02252F4874\n:105A3C00D36E2F4943F44053D3660560D3692D4888\n:105A4C0023F07F0343F04003D3610B6883423DD8BE\n:105A5C00264D00214FF0E0234FF0FF322960012644\n:105A6C00C5F808112449C5F80011C5F80861C3F838\n:105A7C008021C3F88421C3F88821C3F88C21C3F892\n:105A8C00902101E000F052F9D5F80C31002BF9D03F\n:105A9C000134C5F80C614F2CF4D9184B022018496D\n:105AAC004FF00042C1F840015A63D5F80C313BB9B4\n:105ABC00144815490D4A0163D2F80C31002BFAD069\n:105ACC004FF0E023114AC3F80C2DFEE7FFF7A0FBC3\n:105ADC00BEE700BF00FF272080FF2720A8FF27205C\n:105AEC002083B8EDA0FF272000C00F4000400840E5\n:105AFC00FC080020803DCD0B009F240000900D4041\n:105B0C0000002E4000800F40F100AD0B0400FA05A0\n:105B1C000A490A6838B108B513180948834204D8F1\n:105B2C0010460B6008BD1046704701F0E3FC0C23D7\n:105B3C004FF0FF320360104608BD00BF3C0A002046\n:105B4C0000002820FFF71EBF124AD2F880305B07F6\n:105B5C00FBD5D2F880301048C3F30B230F4990EDDE\n:105B6C00007A07EE903A91ED006AB8EE477A0C4A4B\n:105B7C00F8EEE77A0B4BD2ED006A77EEC77A93ED2D\n:105B8C00007AB8EE477A67EE867A87EEA60A37EE89\n:105B9C00400A704700810D40241700202C1700206C\n:105BAC003017002028170020836BF0B41BB153680A\n:105BBC0043F40043536072B6446B3CB31A4B2260FF\n:105BCC00D3F8B0410C421DD1184E776804E07468CC\n:105BDC00E41BB4F5166F0BD2D3F8404144F4804467\n:105BEC00C3F84041D3F8B851D3F840416404EED522\n:105BFC000D4007D10C4CC0E90225D4F8B0310B4351\n:105C0C00C4F8B031426362B6F0BC7047064DC0E9CF\n:105C1C000224D5F8B0310B43C5F8B03102634263AE\n:105C2C0062B6F0BC704700BF00002E40001000E0D0\n:105C3C0070B5056B9DB106462A46002403E0126838\n:105C4C000134012A0CD0536813F08003F7D032636F\n:105C5C002CB12846B36B2D689847013CF9D170BD27\n:105C6C00C6E90C33F4E700BF30B4D9B91F4C204B54\n:105C7C000021204A01254FF0011099601D60C4E9F4\n:105C8C00023180245C60C2F8BC01D2F8B0311A48F1\n:105C9C002B43C2F8B0310160D2F8B031002BFBD1EC\n:105CAC0030BC70470904154B104C012541F08001A4\n:105CBC009860104A596000F580511D60D96000F55C\n:105CCC000051A364196100F5405100F58040596101\n:105CDC0000219861E164D2F8B03143F48033C2F80A\n:105CEC00B031D2F8B031002BFBD1C0E7000000205E\n:105CFC00C012002000002E40B4160020E01200203C\n:105D0C00084901220B7802FA00F023EA000008701F\n:105D1C0030B9054AD2F8483123F08003C2F8483133\n:105D2C00704700BF6B17002000002E402DE9F04F8C\n:105D3C00974C83B0D4F84471FB07C4F8447153D525\n:105D4C00D4F8AC21002A4AD0924EDFF860A2DFF8DA\n:105D5C007492DFF874B2DFF87482C4F8AC21D6E91F\n:105D6C000A20D4F8403143F40053C4F84031D4F83D\n:105D7C0040319D04F5D5D4F8403123F40053C4F8D8\n:105D8C0040314FF00113C4F8B431D4F8B45115F0CC\n:105D9C000115FAD193B28446CAF80050B3F5086FD6\n:105DAC0000F0CF8100F2DB8040F202318B4200F038\n:105DBC00E78100F29A80822B00F0CB81B3F5817FD2\n:105DCC0040F08A8010F0780F83B200F003824FF01D\n:105DDC000113C4F8C031D4F8AC21002ABDD16C4AEF\n:105DEC00D2F8BC31002B42D17E0616D5684BD3F8C5\n:105DFC00AC21C3F8AC21D3F8BC21C3F8BC21D3F837\n:105E0C00B041002CFBD14FF0FF32C3F8B421D3F8D2\n:105E1C00843100F029FD604B1C60FC0103D55F4B05\n:105E2C001B6803B19847B80103D55D4B1B6803B1E0\n:105E3C009847790708D5564BD3F8843113F400737F\n:105E4C0047D0584B01221A70514BD3F848311A06DF\n:105E5C000AD53B0608D5544A13782BB1013BDBB26B\n:105E6C001370002B00F0728203B0BDE8F08F4F4925\n:105E7C00C2F8BC310868034240F0D181464A14682C\n:105E8C001C40B1D05FEA144810D0424E4FF00109CB\n:105E9C0098FAA8F5B5FA85F506EBC51009FA05F5DB\n:105EAC004030FFF7C5FE38EA0508F1D1A4B2002C4A\n:105EBC009AD0384E4FF0010894FAA4F5B5FA85F54E\n:105ECC0006EBC51008FA05F5FFF7B2FEAC43F3D1AB\n:105EDC008AE7344A1370B7E7802B7FF478AF3448E5\n:105EEC0002210580FFF7C0FE75E7B3F5A06F00F047\n:105EFC000B81A3F5D063012B3FF669AF2D4B5D6889\n:105F0C00002D3FF464AF1FFA8CFC4FEA124E04E0F4\n:105F1C001D690C33002D3FF45AAF1A887245F7D126\n:105F2C005A886245F4D14FEA1E22032A00F0A5815B\n:105F3C001A89000C824228BF0246BEF5007F40F051\n:105F4C00A181184B1C4918781C4B0192002818BFD2\n:105F5C0019461B48FFF792FB194D019AE1E142F2F9\n:105F6C0021218B427CD033D942F221318B4200F07B\n:105F7C0081804FF6C0018B427FF429AF10F47F4F24\n:105F8C0083B27FF424AF43F46E4363F30F0CB5E795\n:105F9C0000002E4000000020B816002050170020F2\n:105FAC00541700207117002072170020B41600201F\n:105FBC00E816002050070020B81E00601C1F00606F\n:105FCC0000002020AC1600205DCFC6B8C0012E40CA\n:105FDC00B3F5106F66D042F221018B427FF4F7AE1D\n:105FEC00030C072B7FF4F3AEB24BB349F560D960C9\n:105FFC00B249B360C3F80890C1E9002001221A60CD\n:10600C00AF4A5A60AF4A1A61D4F8B01141F001019D\n:10601C00C4F8B01102F5805102F5005259619A6131\n:10602C00D4F8B031002BFBD1A74AF3649360012361\n:10603C00B264136048F2800353604FF00113C4F84C\n:10604C00BC31D4F8B03143F48033C4F8B0314FF4E0\n:10605C008033CAF80030D4F8B031002BFBD1BAE64B\n:10606C0080B238B9994BC2F307421968984B196042\n:10607C00984B1A70944B00229A60F2640122B3641C\n:10608C001A6080225A604FF00113C4F8BC31D4F866\n:10609C00B03143F48033C4F8B031D4F8B031002BB4\n:1060AC00FBD198E6C2F307428B4B1A708B4BC4F8AA\n:1060BC00C8318B4BC4F8CC318A4BC4F8D03100F0CA\n:1060CC00D5FB80222946884801F0B0F9874B802205\n:1060DC00C6F8A0B0C6F8E0307B4BF5645A600122DC\n:1060EC00B3649D601A604FF00113C4F8BC31D4F84E\n:1060FC00B03143F48033C4F8B031CAF80050D4F84E\n:10610C00B031002BFBD166E66F4B0121F5641960B1\n:10611C0080219D60B36459604FF00113C4F8BC3109\n:10612C00D4F8B03143F48033C4F8B031D4F8B03182\n:10613C00002BFBD1130C5B0643F08073C4F8543175\n:10614C0049E6654B01216A481B780370FFF78CFD0B\n:10615C0041E683B210F078007FF439AE03F07F0291\n:10616C0058F82210624A1080180600F19E80CB0766\n:10617C0001D50123137002215D48FFF775FD2AE656\n:10618C0010F0780F83B27FF422AE03F07F0213F08D\n:10619C00800F58F8223014BF43F4803343F00103CE\n:1061AC0048F822300022484BF2649A600122B36412\n:1061BC001A6080225A604FF00113C4F8BC31D4F835\n:1061CC00B03143F48033C4F8B031D4F8B031002B83\n:1061DC00FBD100E603F07F0213F0800F58F8223059\n:1061EC0014BF23F4803323F0010348F8223000223B\n:1061FC00354BF2649A600122B3641A6080225A60B3\n:10620C004FF00113C4F8BC31D4F8B03143F48033EF\n:10621C00C4F8B031D4F8B031002BFBD1DBE5002051\n:10622C00086026490C88486842F221018C427FF4B0\n:10623C0025AE80B200287FF421AE2E492E4C03C926\n:10624C00A18086284FEA11412060A1717FF416AE1F\n:10625C0072B62A48017841F008010170D2F8481151\n:10626C000D0605D480200143C2F84401C2F8481140\n:10627C0062B6234A5021117000E6000C2A78824243\n:10628C0028BF0246BEF5E06F44D11E4B1E4D187858\n:10629C001E491F4B0192002818BF19462846FFF7CC\n:1062AC00EDF907236B70019A3BE0C9033FF561AF31\n:1062BC0061E700BFE0120020AC2600208014002013\n:1062CC0080000700AC360020C01200203C170020D4\n:1062DC004C1700206F170020701700200200CC0014\n:1062EC00C80002000200C800800000201993D57479\n:1062FC00E8160020AC160020441700206B17002075\n:10630C007217002071170020000020201C1F006055\n:10631C00B81E00602946104D01922846FFF7AEF9D1\n:10632C00019A25F01F031544BFF34F8F4FF0E02166\n:10633C00C1F8703F20339D42FAD8BFF34F8FBFF3A3\n:10634C006F8F05481146FFF78FFC44E50320FFF7DC\n:10635C00D7FC01F055FA00BF000020202DE9F047D2\n:10636C001F46831E022B01D9BDE8F087DFF84C9045\n:10637C0015460C463C2209EBC01806464FEAC01ADB\n:10638C00002108F10400240401F050F8B5FA85F25C\n:10639C000123520944EA427449F80A40C8F838709B\n:1063AC00C8F80830002FDFD0034AB34011680B4304\n:1063BC001360BDE8F08700BFB81600200000002075\n:1063CC002DE9F0470D46811E022901D9BDE8F08761\n:1063DC00C701DFF84C909246044640373C2200211E\n:1063EC001E4609EB07082D0408F1040001F01EF805\n:1063FC00BAFA8AF2520945EA427249F80720012298\n:10640C00C8F83860C8F80820002EDFD0034B1034D1\n:10641C001968A2400A431A60BDE8F087B81600203C\n:10642C000000002012048160C36101F5405342F06A\n:10643C00800210B40124426001F50052046001F5A1\n:10644C00805401F58041C46081615DF8044BC0E962\n:10645C0004237047831E0A46022B00D97047064B53\n:10646C0000F110014FF0010C03EBC0100CFA01F11C\n:10647C004030FFF799BB00BF00000020831E0A4686\n:10648C00022B00D970470121024B814003EBC01055\n:10649C00FFF78ABB0000002040687047124A134B7C\n:1064AC00D2F8200220F07F40984210B584B002D27E\n:1064BC0000EB800040000E4C01A90A22FFF778F98E\n:1064CC0001A90023204611F8012B01333AB10A2B04\n:1064DC0020F8022FF7D11623237004B010BD5B00F7\n:1064EC00DBB2237004B010BD00441F4080969800AE\n:1064FC00A40E002000F0D8BA00F0CABA00F066BBB7\n:10650C0000F03CBB0846114600F02CBBF8B5144C0F\n:10651C004FF0E025134E4FF4003204EB4024124FA1\n:10652C0006EB40160346C5F88C2121463A883046C6\n:10653C00FFF778FF3B882344BFF34F8FC5F85C4FC0\n:10654C002034A342FAD8BFF34F8FBFF36F8F0320D1\n:10655C003146FFF793FF4FF40033C5F80C31F8BD0B\n:10656C0080002020001300205A170020244B2DE916\n:10657C00F0411C884368C569C3F30E43E41A002C30\n:10658C0024DD204920480A780078D3B21F4E82427D\n:10659C001F4807D010F8038036F81870C7F5007242\n:1065AC00944218D90133002226F81540082B194EB5\n:1065BC0088BF134626F8152098BFDAB2C554164B7F\n:1065CC000A701A6814441C60BDE8F0812846BDE8C6\n:1065DC00F041FFF79BBF07EB4820104922462744A8\n:1065EC00084401EB4521FFF749F80B4A284626F8E9\n:1065FC00187013682344BDE8F0411360FFF786BFA1\n:10660C005A170020691700206A170020F81600207E\n:10661C001817002008170020F416002080002020F6\n:10662C001D4B1A78002A36D102F0FF031B4A127850\n:10663C008AB32DE9F0411A4D2A8852B3194EC2F58E\n:10664C000068194F3278194C07EB421704EBC2243F\n:10665C00424638462146FFF7E5FE04EB0802BFF33D\n:10666C004F8F4FF0E023C3F8704F2034A242FAD87A\n:10667C00BFF34F8FBFF36F8F04203946FFF7EAFE4D\n:10668C0033780133DBB2032B88BF00233370002334\n:10669C002B80BDE8F08170476E170020701700202A\n:1066AC005C1700206D1700200014002080102020A3\n:1066BC002DE9F04F85B0CDE90110002900F0BF8025\n:1066CC000023604CDFF89881DFF898A15E4F0093AF\n:1066DC0001235E4A23705E4B1978B8F8003002EB48\n:1066EC004119002B40F0A7801E461D469B4648468C\n:1066FC00FFF7D2FE10F0800000F08C80BFF34F8FBC\n:10670C009AF8003084F800B005B93E68002B7DD1B2\n:10671C003B689B1B782B00F287804E4B1B78002B21\n:10672C0074D000F09DFA0122B8F8003015462270A2\n:10673C00002BDCD0464AC3F5006011781A4600EBFA\n:10674C00C120454DC9022844019D954217D203939F\n:10675C00DDE901512A46FEF791FF039B4FF04042C1\n:10676C005B1BA8F800303D4BC3F88420BFF34F8F60\n:10677C00009800232844237005B0BDE8F08F364BF9\n:10678C00CD180299FEF77AFF00234FF400622946D8\n:10679C004846FFF747FEBFF34F8F05F1200205F582\n:1067AC000063934234BF012340234FF0E02205EBFA\n:1067BC004313C2F8705F2035AB42FAD1BFF34F8F51\n:1067CC00BFF36F8F04204946FFF744FE204A13782D\n:1067DC000133DBB2032B84BF00231D4A1370B8F8BE\n:1067EC000030019AD11A009A1A4401910092029A2F\n:1067FC001A4400230292194AA8F80030C2F88430D7\n:10680C00BFF34F8F237000297FF462AF009805B05F\n:10681C00BDE8F08F4FF400620D4B8AF80000197838\n:10682C001346A8F800208AE7012300988AF8003064\n:10683C0005B0BDE8F08F1A46C3F500607FE70198FC\n:10684C00E5E700BF6E1700203C1700200014002065\n:10685C006D170020701700208010202000002E40A3\n:10686C005C1700206C170020704700BF2D4B0021D7\n:10687C0080222D4870B51B7800242C4D8B422C4E59\n:10688C000CBF40234FF400732B80338000F0CEFDFF\n:10689C00284A2146284B14704FF4807227481C80DC\n:1068AC0000F0C4FD264A1021264B0220C2E9004408\n:1068BC00C2E90244244AC3E900441470234AC3E9E0\n:1068CC000244234B1C70234614602246FFF778FDCC\n:1068DC002246318803201F4BFFF740FD234601223F\n:1068EC0029880420FFF76CFD20460134FFF70EFECB\n:1068FC00082CF9D1184B00214A221848184C046076\n:10690C00C3F88410C3F88020D3F84821154942F00D\n:10691C008072C3F8482121B1134A137843F0010364\n:10692C00137070BD71170020001400205E1700203A\n:10693C005A1700206D1700205C1700200013002050\n:10694C00F81600200817002069170020F416002004\n:10695C006A170020ED45000000002E405017002063\n:10696C00A146000000000000731700202DE9F04F35\n:10697C004FF0E0234FF40032DFF8C8A083B0C3F827\n:10698C008C218B469AF8004000294FD08046E4B207\n:10699C000027DFF8B490264BABEB070225491B7898\n:1069AC00A34204F101043FD0092C234B404628BFDD\n:1069BC0000241E5D39F816C00CEB462319441F4BFE\n:1069CC0033F81650A5EB0C05AA421CD20CEB462C46\n:1069DC0018491B4C61440192FEF750FE216839F8AE\n:1069EC0016505846019AA1EB0B012A44394429F858\n:1069FC00162021604FF0E0234FF40032C3F80C2135\n:106A0C0003B0BDE8F08F2A462F44FEF737FE0C4941\n:106A1C00E3B230460A68A844521B0A608AF8003078\n:106A2C00FFF774FDBB45B6D83846E3E70846E1E707\n:106A3C00691700208000202018170020F81600206D\n:106A4C00F41600206A170020081700200B4B0C4A84\n:106A5C0012781978D3B28A420DD0013309480A4A08\n:106A6C00092B0A4928BF0023C35C31F8131002EB31\n:106A7C004323585C70474FF0FF3070476917002074\n:106A8C006A1700201817002080002020081700200B\n:106A9C00044B10B51C680CB1204610BD00F0E0F89A\n:106AAC00204610BDF41600202DE9F84F144E154D5C\n:106ABC0033782A78934221D0DCB2DFF85090DFF89B\n:106ACC0050B0DFF85080104F0134082C5FFA84FA74\n:106ADC0001D90024A24619F80400DBF8003038F87C\n:106AEC00102037F81010521A9B1ACBF80030FFF711\n:106AFC000DFD86F800A02B78A342E5D1BDE8F88FF8\n:106B0C006A170020691700200817002018170020AA\n:106B1C00F4160020F816002000B583B001210DF109\n:106B2C000700FFF723FF20B19DF8070003B05DF8C5\n:106B3C0004FB4FF0FF30F9E7094B00B583B01B782D\n:106B4C008DF807003BB101210DF10700FFF7B0FDF7\n:106B5C0003B05DF804FB03F0FF0003B05DF804FB29\n:106B6C0070170020044B1B7803F0FF020BB1FFF7EA\n:106B7C009FBD1046704700BF701700202DE9F041F3\n:106B8C000024DFF8448001230D4D27460D4E88F874\n:106B9C000030337828462035A34204F1010405D097\n:106BAC00FFF77AFC030658BF07F50067042CF0D1F9\n:106BBC00BFF34F8F0023384688F80030BDE8F081D2\n:106BCC00001400206D1700206E1700202DE9F843EB\n:106BDC001D4B1B7813B11D4D2A880AB9BDE8F883EB\n:106BEC001B4EC2F500691B4933784A461A4C01EB1F\n:106BFC0043181A4F04EBC324012340463B70214633\n:106C0C000023FFF70FFC04EB0902BFF34F8F4FF08B\n:106C1C00E023C3F8704F2034A242FAD8BFF34F8F51\n:106C2C00BFF36F8F04204146FFF714FC3378013318\n:106C3C00DBB2032B88BF0023337000232B80BFF300\n:106C4C004F8F3B70BDE8F883701700205C17002055\n:106C5C006D17002000140020801020206E170020DB\n:106C6C002DE9F8432D4B1E7866B12D4F3B784BB96F\n:106C7C000123F1073B7043D4B20726D400233B70A9\n:106C8C00730701D4BDE8F883264B1A68002AF9D0A3\n:106C9C00EFF30582002AF5D1EFF3108572B6186870\n:106CAC00002834D0204C2178002930D101222270C8\n:106CBC0042691A60002A2ED0916105B962B600258E\n:106CCC008368457798472570DCE7DFF8648098F88F\n:106CDC000030002BD2D00025DFF858902B4659F805\n:106CEC0023400135236820461B69984710B163691E\n:106CFC009B68984798F80020EBB29A42EFD8BDE712\n:106D0C00FFF7C6FE0028B7D0AFF30080B4E7002D24\n:106D1C00B8D162B6B6E7054B1A60CEE77317002000\n:106D2C00621700200C150020601700201815002099\n:106D3C00611700201C15002070B5EFF3108272B69D\n:106D4C000C4C206880B10C4E00254369236073B154\n:106D5C009D6102B962B6836845779847EFF310825C\n:106D6C0072B620680028F0D102B962B670BD3360EB\n:106D7C00EFE700BF1415002010150020FFF7DCBF53\n:106D8C000449054A4968054B1960136801331360BF\n:106D9C00704700BF001000E03C170020381700209F\n:106DAC00074A506A936A19468446506A936A994214\n:106DBC00F9D18445F7D1DB0B43EA4040704700BF63\n:106DCC0000400D4008B5D0E900325BB1BAB10F4BB1\n:106DDC00A3FB0213DB0803EB4303B2EB83030AD1DF\n:106DEC00012008BD094BA3FB0213DB0803EB430393\n:106DFC00B2EB830301D0D21A4260F02AF0D800F033\n:106E0C0079FB1C22034600201A6008BDABAAAAAA73\n:106E1C0070B5044638B319B1B2FA82F67609A2B944\n:106E2C00206800B36268F2B1184B194902FB03F3F6\n:106E3C00B1EBB30F17D3A368E3B90022012322608F\n:106E4C006260A260E260184670BD1D46049BC0E9FA\n:106E5C000012C360FFF7B6FF03460028F3D06DB9EC\n:106E6C000123184670BD00F045FB1622002302607A\n:106E7C00184670BD002100F0D9FADEE76268314691\n:106E8C002068A56000F0D2FA0123DCE7ABAAAAAA1D\n:106E9C0055555515024B0146186800F00BB800BF4C\n:106EAC00500E0020024B0146186800F0A1BB00BF39\n:106EBC00500E00202DE9F04F01F10B06162E83B079\n:106ECC00044624D8102900F2BA8000F0A3FA102648\n:106EDC0018220220B54F3A44A2F1080153688B42A4\n:106EEC0000F0BA805A68D96822F003021A449D68EF\n:106EFC00E9608D60516841F001012046516003F159\n:106F0C00080500F08DFA284603B0BDE8F08F36F086\n:106F1C00070600F19480B14200F2918000F07AFAF9\n:106F2C00B6F5FC7FC0F09A81730A00F08F80042BB9\n:106F3C0000F26F81B30903F1390003F1380CC3007F\n:106F4C009A4F3B44A3F108055B689D4206D10CE0C7\n:106F5C00002980F22781DB689D4206D05A6822F016\n:106F6C000302911B0F29F3DD60463D69DFF850C227\n:106F7C0065457CD06A6822F00302931B0F2B00F34B\n:106F8C007B81002BC7E904CC80F26C81B2F5007FC9\n:106F9C0080F01A81D308796801334FEA521E01221E\n:106FAC0002FA0EF20A4357F833E0C5F808E007EB93\n:106FBC00C3010839E9607A6047F83350CEF80C50B9\n:106FCC00831001219940914257D8114206D120F0EB\n:106FDC0003004900114200F10400FAD007EBC0098C\n:106FEC004D468646D5F80C80454508D11DE1002B51\n:106FFC0080F22481D8F80C80454500F01681D8F831\n:10700C00042022F00302931B0F2BF0DD2046D8E95D\n:10701C00025408EB060146F00106C8F80460EC6067\n:10702C00A56043F00104C7E90411C1E902CC4C602E\n:10703C0048F8023000F0F4F908F1080502E00C23DE\n:10704C0023600025284603B0BDE8F08F4FF4007391\n:10705C0040204FF03F0C73E7D3689A4208BF0230D0\n:10706C007FF440AF3D69DFF858C1654582D17A683D\n:10707C008310012199409142A7D9BD686B6823F018\n:10708C0003094E4503D8A9EB06030F2B7ADCDFF876\n:10709C0034B1474BDBF800201B680132334405EB5D\n:1070AC00090A00F0338103F580530F3323F47F6812\n:1070BC0028F00F084146204600F00AFA411C02460F\n:1070CC0000F0F380824500F2EE803A4B196841449F\n:1070DC001960084600F04E81DBF800100193013175\n:1070EC001BBFA2EB0A010918CBF80020196012F0A3\n:1070FC00070B00F01781CBF108010A44CBF5805146\n:10710C0090440831A1EB0801C1F30B0A514620460B\n:10711C00009200F0DDF9421CDDE9002300F04F8104\n:10712C00801A00EB0A081968BA6048F00100514453\n:10713C00BD425060196000F02981B9F10F0F40F287\n:10714C0027816868A9F10C0C2CF0070C00F00100E9\n:10715C0040EA0C0068604FF0050E05EB0C00BCF12A\n:10716C000F0FC0E901EE00F2328150681546124B48\n:10717C001A688A4238BF1960104B1A688A4238BFA5\n:10718C00196094E0AA1943F0010346F001066E6001\n:10719C002046BA60536000F043F90835284603B026\n:1071AC00BDE8F08FD9681A44A1E600BF400A002060\n:1071BC007015002040150020681500206C1500206B\n:1071CC00480A0020480E0020B2F5206F4FEA5223E7\n:1071DC0063D3142B00F2B78003F15C01C9005B335D\n:1071EC0007EB010E7958AEF1080E8E4500F0918038\n:1071FC004B6823F00303934202D989688E45F7D17B\n:10720C00D1F80CE07A68C5E9021ECEF80850CD60C2\n:10721C00D6E6142B59D9542B00F29D80330B03F175\n:10722C006F0003F16E0CC3008AE60EF1010E1EF026\n:10723C00030F05F108057FF4D5AE51E042444546F5\n:10724C005368D8F80C1043F00103536055F8083F0D\n:10725C002046D9608B6000F0E3F8F3E6F00806F105\n:10726C00080237E62A442046536843F00103536072\n:10727C00083500F0D5F8E5E6A919204646F00106D8\n:10728C0043F001046E60C7E90411C1E902CC4C6003\n:10729C00AB5000F0C5F80835D4E6930903F1390179\n:1072AC00C90038339CE7BD425FD0BD68686820F0E8\n:1072BC0003084645A8EB060302D80F2B3FF762AF35\n:1072CC00204600F0ADF80025BCE603F15C0003F1AC\n:1072DC005B0CC30034E659F808394B4540F09680F6\n:1072EC0010F0030F00F1FF30F5D17B6823EA0103A6\n:1072FC007B60490099423FF6C0AE19B9BDE6490022\n:10730C000EF1040E1942FAD0704667E603F110082C\n:10731C00D0E69A104FF001087B6808FA02F21A4383\n:10732C007A6070E702EB08014942C1F30B0A51463F\n:10733C002046009200F0CCF8431CDDE900237FF4DA\n:10734C00EFAEDA46EFE6542B25D8130B03F16F01A1\n:10735C00C9006E3344E7B3F5AA7F25D8F30B03F1CC\n:10736C00780003F1770CC300EAE5294B1868404418\n:10737C001860B1E6CAF30B0CBCF1000F7FF4ACAE95\n:10738C00BD68C84448F001006860F0E61546EEE6BA\n:10739C000123536094E7B3F5AA7F23D8D30B03F1F1\n:1073AC007801C90077331BE740F25452934223D83B\n:1073BC00B30C03F17D0003F17C0CC300C0E5ABF111\n:1073CC00080BD844A8EB02084FF0000AABE605F115\n:1073DC0008012046009300F00BF9BD68009B68681B\n:1073EC001968C4E640F254518B420BD8930C03F14C\n:1073FC007D01C9007C33F3E64FF47E737F204FF0A0\n:10740C007E0C9DE54FF47E717E23E9E67B6870E788\n:10741C0040150020014800F097B800BF3C15002033\n:10742C00014800F093B800BF3C150020830730B52D\n:10743C0048D0541E002A3FD0CAB2034601E0013C9A\n:10744C003AD303F8012B9D07F9D1032C2DD9CDB2DA\n:10745C0045EA05250F2C45EA054536D9A4F110025D\n:10746C0022F00F0C03F1200EE6444FEA121C03F13C\n:10747C00100242E9045542E9025510327245F8D126\n:10748C000CF1010214F00C0F03EB021204F00F0CC0\n:10749C0013D0ACF1040323F003030433134442F878\n:1074AC00045B9342FBD10CF003042CB1C9B21C4415\n:1074BC0003F8011B9C42FBD130BD64461346002CE3\n:1074CC00F4D1F9E703461446BFE71A46A446E0E7B1\n:1074DC0038B5074D0022044608462A60FEF718FB13\n:1074EC00431C00D038BD2B68002BFBD0236038BD6B\n:1074FC00BC160020014B1868704700BF500E0020CE\n:10750C0070B50D4E0D4D761BB61006D0002455F8F7\n:10751C00043B01349847A642F9D1094E094D761B1C\n:10752C0000F072F9B61006D0002455F8043B013473\n:10753C009847A642F9D170BD801E0060801E006085\n:10754C00841E0060801E0060704700BF704700BF43\n:10755C00F8B5244F0C460646FFF75CFFBB685D6828\n:10756C00C4F57E610F3125F003054B1923F47F63BD\n:10757C0023F00F03A3F58054B4F5805F07DB0021E3\n:10758C003046FFF7A5FFBB682B44984204D0304629\n:10759C00FFF746FF0020F8BD61423046FFF798FF29\n:1075AC0001300DD0104ABB682D1B45F001055D6004\n:1075BC00136830461B1B1360FFF732FF0120F8BD28\n:1075CC0000213046FFF784FFBA68831A0F2BDEDDEB\n:1075DC0043F001035360054B03491B68C01A086054\n:1075EC00D5E700BF400A002040150020480E0020BF\n:1075FC00002961D0F8B50C460646FFF70BFF54F88E\n:10760C00042C7B4FA4F1080522F0010105EB010CC1\n:10761C00B868DCF80430604523F0030300F08B807D\n:10762C00D207CCF8043032D454F8082CAD1A1144DB\n:10763C00AA6807F1080082426AD00CEB0304D4F864\n:10764C0004E0EC68D4601EF0010FA26000F097809B\n:10765C0041F001036B60CCF80010B1F5007F35D21E\n:10766C007868CB080122490901338A40024357F854\n:10767C0033107A6007EBC302083AC5E9021247F8E7\n:10768C003350CD603046BDE8F840FFF7C9BE0CEB77\n:10769C0003025268D00710D4194407F10800DCF833\n:1076AC000830834273D0DCF80C20DA60936041F030\n:1076BC0001036B606950D0E7704741F00103B1F5ED\n:1076CC00007F44F8043CCCF80010C9D3B1F5206F0E\n:1076DC004FEA512348D28B0903F1390003F13802E8\n:1076EC00C300F818FB580838984259D05A6822F051\n:1076FC0003028A4202D99B689842F7D1D868C5E93F\n:10770C0002308560DD603046BDE8F840FFF788BE8A\n:10771C000CEB03025268D20763D40B44DCE902126F\n:10772C00CA60916043F001026A603046EB50BDE8DC\n:10773C00F840FFF775BE0B44D10707D454F8082C5A\n:10774C00AD1A1344D5E90212CA60916043F00102EC\n:10775C006A60284ABD6012689A4293D8264B30461C\n:10776C001968FFF7F5FE8DE7142B0AD9542B1FD897\n:10777C000B0B03F16F0003F16E02C300B1E7194468\n:10778C008DE703F15C0003F15B02C300A9E741F054\n:10779C000103C7E90455C5E902006B60695071E744\n:1077AC0079689210012404FA02F20A437A60A6E77F\n:1077BC00B3F5AA7F06D8CB0B03F1780003F177025F\n:1077CC00C3008EE740F25452934206D88B0C03F15F\n:1077DC007D0003F17C02C30083E74FF47E737E22AD\n:1077EC007FE741F001036B60CCF800104AE700BF63\n:1077FC00400A00204C0E00207015002000000000F4\n:10780C005FF800F08D1D00605FF800F0351E006021\n:04781C00F8B500BFFC\n:107820000000000000000000000000000000000058\n:107830000000000000000000000000000000000048\n:107840000000000000000000000000000000000038\n:107850000000000000000000000000000000000028\n:107860000000000000000000000000000000000018\n:107870000000000000000000000000000000000008\n:1078800000000000000000000000000000000000F8\n:1078900000000000000000000000000000000000E8\n:1078A00000000000000000000000000000000000D8\n:1078B00000000000000000000000000000000000C8\n:1078C00000000000000000000000000000000000B8\n:1078D00000000000000000000000000000000000A8\n:1078E0000000000000000000000000000000000098\n:1078F0000000000000000000000000000000000088\n:107900000000000000000000000000000000000077\n:107910000000000000000000000000000000000067\n:107920000000000000000000000000000000000057\n:107930000000000000000000000000000000000047\n:107940000000000000000000000000000000000037\n:107950000000000000000000000000000000000027\n:107960000000000000000000000000000000000017\n:107970000000000000000000000000000000000007\n:1079800000000000000000000000000000000000F7\n:1079900000000000000000000000000000000000E7\n:1079A00000000000000000000000000000000000D7\n:1079B00000000000000000000000000000000000C7\n:1079C00000000000000000000000000000000000B7\n:1079D00000000000000000000000000000000000A7\n:1079E0000000000000000000000000000000000097\n:1079F0000000000000000000000000000000000087\n:107A00000000000000000000000000000000000076\n:107A10000000000000000000000000000000000066\n:107A20000000000000000000000000000000000056\n:107A30000000000000000000000000000000000046\n:107A40000000000000000000000000000000000036\n:107A50000000000000000000000000000000000026\n:107A60000000000000000000000000000000000016\n:107A70000000000000000000000000000000000006\n:107A800000000000000000000000000000000000F6\n:107A900000000000000000000000000000000000E6\n:107AA00075000000000000006500000000000000FC\n:107AB00069000000000000007700FC0F01010000D9\n:107AC00077E2FE0F010000007703080F01000000BD\n:107AD0007704080F0200FC007700080F080300007D\n:107AE0000000FC02000000007700080F08040000FE\n:107AF00000000001000000007700080F08000000EF\n:107B000000000000040000007700FC0F00000000EF\n:107B10007700FD0F000000000000FC0002000000E4\n:107B20007701080F0101000077E2FE0F0109000054\n:107B300077E2FE0F0104000077E2FE0F0103000070\n:107B400077E2FE0F01080000001900004931000033\n:107B50000000000074C00F40C000000000000000E2\n:107B60000200000050851F400100000034000000AA\n:107B70000200000050851F400000000001000000CE\n:107B80000200000054851F40010000003500000085\n:107B90000200000054851F4000000000FF0040006C\n:107BA000260018007C00000000000000000000001B\n:107BB0005531000085450000814500007D450000ED\n:107BC00079450000AD310000B1310000754500007D\n:107BD0000000000000000000F92F00005D310000EF\n:107BE000652A0000BD2B0000852A0000292B00001B\n:107BF000AD2A0000412C0000D92B0000612A0000B2\n:107C000000000042C8801F40B8821F4008000000EA\n:107C100000000042C4801F40B4821F4004000000E6\n:107C200000C0004224801F4014821F40100000004A\n:107C300000C0004228801F4018821F402000000022\n:107C400000C000422C801F401C821F4040000000EA\n:107C500000C0004234801F4024821F400001000009\n:107C60000040004264811F4054831F400004000014\n:107C70000040004280811F4070831F4000000200CE\n:107C8000004000427C811F406C831F4000000100C7\n:107C90000040004268811F4058831F4000080000D8\n:107CA000004000423C811F402C831F400100000027\n:107CB0000040004244811F4034831F400400000004\n:107CC0000040004240811F4030831F4002000000FE\n:107CD0000040004248811F4038831F4008000000D8\n:107CE0000000004204811F40F4821F400000040095\n:107CF0000000004208811F40F8821F400000080079\n:107D00000000004218811F4008831F4000008000CF\n:107D10000000004214811F4004831F400000400007\n:107D20000000004200811F40F0821F40000002005E\n:107D300000000042FC801F40EC821F400000010058\n:107D40000000004224811F4014831F4000000004F3\n:107D50000000004228811F4018831F4000000008D7\n:107D6000000000421C811F400C831F4000000001E6\n:107D70000000004220811F4010831F4000000002CD\n:107D800000000042EC801F40DC821F400010000019\n:107D900000000042F0801F40E0821F4000200000F1\n:107DA0000000004234811F4024831F400000004037\n:107DB0000000004238811F4028831F4000000080DF\n:107DC0000080004294801F4084821F400000040015\n:107DD00000C0004290801F4080821F400000008051\n:107DE00000800042A8801F4098821F400000800051\n:107DF00000800042A4801F4094821F400000400089\n:107E0000004000426C811F405C831F400010000056\n:107E100000C0004230801F4020821F4080000000D0\n:107E200000400042B0811F40A0831F40000000209E\n:107E300000400042AC811F409C831F4000000010A6\n:107E40000040004284811F4074831F4000000400F2\n:107E50000040004288811F4078831F4000000800D6\n:107E6000000000422C811F401C831F4000000010B6\n:107E70000000004230811F4020831F40000000208E\n:107E8000000000420C811F40FC821F4000001000D7\n:107E90000000004210811F4000831F4000002000AE\n:107EA00000800042C8811F40B8831F40008000004E\n:107EB00000800042C4811F40B4831F400040000086\n:107EC00000800042C0811F40B0831F40002000009E\n:107ED00000800042BC811F40AC831F4000100000A6\n:107EE00000800042D0811F40C0831F40000002007C\n:107EF00000800042CC811F40BC831F400000010075\n:107F000000C0004274801F4064821F4000000001D6\n:107F100000C0004280801F4070821F4000000008A7\n:107F200000C0004284801F4074821F400000001087\n:107F300000C000426C801F405C821F400000400077\n:107F400000C000427C801F406C821F400000000483\n:107F500000C0004278801F4068821F40000000027D\n:107F600000C0004288801F4078821F40000000202F\n:107F700000010000540E0020120000000006000066\n:107F8000801F00600A000000000200001C1F00604B\n:107F90006200000000070000B81E006062000000E0\n:107FA000EE030000900E002012000000000004EE1E\n:107FB000680E00202800000000030000B41E0060CE\n:107FC00000000000010309049C1E00600000000086\n:107FD00002030904841E006000000000030309047A\n:107FE000A40E0020000000000000000000000000BF\n:107FF00000000000000000000000000074150020D8\n:10800000DC150020441600200000000000000000E5\n:108010000000000000000000000000000000000060\n:108020000000000000000000000000000000000050\n:108030000000000000000000000000000000000040\n:108040000000000000000000000000000000000030\n:108050000000000000000000000000000000000020\n:108060000000000000000000000000000000000010\n:108070000000000000000000000000000000000000\n:1080800000000000000000000000000000000000F0\n:1080900001000000000000000E33CDAB34126DE68D\n:1080A000ECDE05000B0000000000000000000000F6\n:1080B00000000000000000000000000000000000C0\n:1080C00000000000000000000000000000000000B0\n:1080D00000000000000000000000000000000000A0\n:1080E0000000000000000000000000000000000090\n:1080F0000000000000000000000000000000000080\n:10810000000000000000000000000000000000006F\n:1081100000000000000000000029DE07007B9A1725\n:10812000E00704EC00FB0F0000FBC013BFE607C034\n:10813000BFEC07C0BFEE07CFEB07ECF5EA07FCB2D8\n:10814000FF0E72FCB2FF0E76FCB2FF0E77FCB2FFA0\n:108150000E9EFDFCB2FF0E73624C69DD6D4C77DD47\n:108160001D4C72DD294C65DD324C75DD62FCA1FFD2\n:108170000ED5EA07DFC8AFE60712ECEB070FFCB23B\n:10818000FF0E119BA793DFF6FE4C00EEE3FF118B71\n:10819000FCA1FF0EA793DFF6EED6FF61FFFCF8FF10\n:1081A0000E8F02084C0FDD0B624CFFDF11FCC40880\n:1081B0000FEFF5624CFFDF06FC04F00EEFF5C36134\n:1081C000CFC262FCA1FF0EEEA7FFE5EA07EF03E5D1\n:1081D000EA07FE0200EF9A5100FCA1FF0ED7FFFF55\n:1081E000FFFFFFFFFFFFFFFFFFFFFF0090030020E7\n:1081F00000000000E803000000000000B8030020B9\n:1082000000000000E80300000000000000801940AA\n:108210002803002000000000C8140020881400205B\n:1082200000000000000000004000000040000000CE\n:1082300040000000400000000000000000000000BE\n:10824000000000000000000000000000000000002E\n:10825000000000000000000000000000803020202E\n:108260000000000000000000400A0020400A00203A\n:10827000480A0020480A0020500A0020500A002026\n:10828000580A0020580A0020600A0020600A0020D6\n:10829000680A0020680A0020700A0020700A002086\n:1082A000780A0020780A0020800A0020800A002036\n:1082B000880A0020880A0020900A0020900A0020E6\n:1082C000980A0020980A0020A00A0020A00A002096\n:1082D000A80A0020A80A0020B00A0020B00A002046\n:1082E000B80A0020B80A0020C00A0020C00A0020F6\n:1082F000C80A0020C80A0020D00A0020D00A0020A6\n:10830000D80A0020D80A0020E00A0020E00A002055\n:10831000E80A0020E80A0020F00A0020F00A002005\n:10832000F80A0020F80A0020000B0020000B0020B3\n:10833000080B0020080B0020100B0020100B002061\n:10834000180B0020180B0020200B0020200B002011\n:10835000280B0020280B0020300B0020300B0020C1\n:10836000380B0020380B0020400B0020400B002071\n:10837000480B0020480B0020500B0020500B002021\n:10838000580B0020580B0020600B0020600B0020D1\n:10839000680B0020680B0020700B0020700B002081\n:1083A000780B0020780B0020800B0020800B002031\n:1083B000880B0020880B0020900B0020900B0020E1\n:1083C000980B0020980B0020A00B0020A00B002091\n:1083D000A80B0020A80B0020B00B0020B00B002041\n:1083E000B80B0020B80B0020C00B0020C00B0020F1\n:1083F000C80B0020C80B0020D00B0020D00B0020A1\n:10840000D80B0020D80B0020E00B0020E00B002050\n:10841000E80B0020E80B0020F00B0020F00B002000\n:10842000F80B0020F80B0020000C0020000C0020AE\n:10843000080C0020080C0020100C0020100C00205C\n:10844000180C0020180C0020200C0020200C00200C\n:10845000280C0020280C0020300C0020300C0020BC\n:10846000380C0020380C0020400C0020400C00206C\n:10847000480C0020480C0020500C0020500C00201C\n:10848000580C0020580C0020600C0020600C0020CC\n:10849000680C0020680C0020700C0020700C00207C\n:1084A000780C0020780C0020800C0020800C00202C\n:1084B000880C0020880C0020900C0020900C0020DC\n:1084C000980C0020980C0020A00C0020A00C00208C\n:1084D000A80C0020A80C0020B00C0020B00C00203C\n:1084E000B80C0020B80C0020C00C0020C00C0020EC\n:1084F000C80C0020C80C0020D00C0020D00C00209C\n:10850000D80C0020D80C0020E00C0020E00C00204B\n:10851000E80C0020E80C0020F00C0020F00C0020FB\n:10852000F80C0020F80C0020000D0020000D0020A9\n:10853000080D0020080D0020100D0020100D002057\n:10854000180D0020180D0020200D0020200D002007\n:10855000280D0020280D0020300D0020300D0020B7\n:10856000380D0020380D0020400D0020400D002067\n:10857000480D0020480D0020500D0020500D002017\n:10858000580D0020580D0020600D0020600D0020C7\n:10859000680D0020680D0020700D0020700D002077\n:1085A000780D0020780D0020800D0020800D002027\n:1085B000880D0020880D0020900D0020900D0020D7\n:1085C000980D0020980D0020A00D0020A00D002087\n:1085D000A80D0020A80D0020B00D0020B00D002037\n:1085E000B80D0020B80D0020C00D0020C00D0020E7\n:1085F000C80D0020C80D0020D00D0020D00D002097\n:10860000D80D0020D80D0020E00D0020E00D002046\n:10861000E80D0020E80D0020F00D0020F00D0020F6\n:10862000F80D0020F80D0020000E0020000E0020A4\n:10863000080E0020080E0020100E0020100E002052\n:10864000180E0020180E0020200E0020200E002002\n:10865000280E0020280E0020300E0020300E0020B2\n:10866000380E0020380E0020FFFFFFFF0000020040\n:10867000D807002012010002EF020140C016830457\n:108680008002010203010000280000000001040034\n:108690000100000000000000020157494E555342FE\n:1086A00000000000000000000000000000000000CA\n:1086B00012034D00530046005400310030003000DA\n:1086C000F80000000C0300000000000000000000A3\n:1086D000000000000000000000000000000000009A\n:1086E000000000000000000000000000000000008A\n:1086F000000000000000000000000000000000007A\n:108700000000000000000000000000000000000069\n:108710000000000000000000000000000000000059\n:108720000000000000000000000000000000000049\n:108730000000000000000000000000000000000039\n:108740000000000000000000000000000000000029\n:108750000000000000000000000000000000000019\n:108760000000000000000000000000000000000009\n:1087700000000000000000000000000000000000F9\n:1087800000000000000000000000000000000000E9\n:1087900000000000000000000000000000000000D9\n:1087A00000000000000000000000000000000000C9\n:1087B00000000000000000000000000000000000B9\n:1087C00000000000000000000000000000000000A9\n:1087D0000000000000000000000000000000000099\n:1087E0000000000000000000000000000000000089\n:1087F0000000000000000000000000000000000079\n:108800000000000000000000000000000000000068\n:108810000000000000000000000000000000000058\n:108820000000000000000000000000000000000048\n:108830000000000000000000000000000000000038\n:108840000000000000000000000000000000000028\n:108850000000000000000000000000000000000018\n:108860000000000000000000000000000000000008\n:1088700000000000000000000000000000000000F8\n:1088800000000000000000000000000000000000E8\n:1088900000000000000000000000000000000000D8\n:1088A00000000000000000000000000000000000C8\n:1088B00000000000000000000000000000000000B8\n:1088C00000000000000000000000000000000000A8\n:1088D0000000000000000000000000000000000098\n:1088E0000000000000000000000000000000000088\n:1088F0000000000000000000000000000000000078\n:108900000000000000000000000000000000000067\n:108910000000000000000000000000000000000057\n:108920000000000000000000000000000000000047\n:108930000000000000000000000000000000000037\n:108940000000000000000000000000000000000027\n:108950000000000000000000000000000000000017\n:108960000000000000000000000000000000000007\n:1089700000000000000000000000000000000000F7\n:1089800000000000000000000000000000000000E7\n:1089900000000000000000000000000000000000D7\n:1089A00000000000000000000000000000000000C7\n:1089B00000000000000000000000000000000000B7\n:1089C00000000000000000000000000000000000A7\n:1089D0000000000000000000000000000000000097\n:1089E0000000000000000000000000000000000087\n:1089F0000000000000000000000000000000000077\n:108A00000000000000000000000000000000000066\n:108A10000000000000000000000000000000000056\n:108A20000000000000000000000000000000000046\n:108A30000000000000000000000000000000000036\n:108A40000000000000000000000000000000000026\n:108A50000000000000000000000000000000000016\n:108A60000000000000000000000000000000000006\n:108A700000000000000000000000000000000000F6\n:108A800000000000000000000000000000000000E6\n:108A900000000000000000000000000000000000D6\n:108AA00000000000000000000000000000000000C6\n:108AB00000000000000000000000000000000000B6\n:108AC00000000000000000000000000000000000A6\n:108AD0000000000000000000000000000000000096\n:108AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96\n:108AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86\n:108B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75\n:108B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65\n:108B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55\n:108B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45\n:108B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35\n:108B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25\n:108B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15\n:108B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05\n:108B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5\n:108B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5\n:108BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5\n:108BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5\n:108BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5\n:108BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5\n:108BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95\n:108BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85\n:108C00000000000000000000000000000000000064\n:108C10000000000000000000000000000000000054\n:108C20000000000000000000000000000000000044\n:108C30000000000000000000000000000000000034\n:108C40000000000000000000000000000000000024\n:108C50000000000000000000000000000000000014\n:108C60000000000000000000000000000000000004\n:108C700000000000000000000000000000000000F4\n:108C800000000000000000000000000000000000E4\n:108C900000000000000000000000000000000000D4\n:108CA00000000000000000000000000000000000C4\n:108CB00000000000000000000000000000000000B4\n:108CC00000000000000000000000000000000000A4\n:108CD0000000000000000000000000000000000094\n:108CE0000000000000000000000000000000000084\n:108CF0000000000000000000000000000000000074\n:108D00000000000000000000000000000000000063\n:108D10000000000000000000000000000000000053\n:108D20000000000000000000000000000000000043\n:108D30000000000000000000000000000000000033\n:108D40000000000000000000000000000000000023\n:108D50000000000000000000000000000000000013\n:108D60000000000000000000000000000000000003\n:108D700000000000000000000000000000000000F3\n:108D800000000000000000000000000000000000E3\n:108D900000000000000000000000000000000000D3\n:108DA00000000000000000000000000000000000C3\n:108DB00000000000000000000000000000000000B3\n:108DC00000000000000000000000000000000000A3\n:108DD0000000000000000000000000000000000093\n:108DE0000000000000000000000000000000000083\n:108DF0000000000000000000000000000000000073\n:108E00000000000000000000000000000000000062\n:108E10000000000000000000000000000000000052\n:108E20000000000000000000000000000000000042\n:108E30000000000000000000000000000000000032\n:108E40000000000000000000000000000000000022\n:108E50000000000000000000000000000000000012\n:108E60000000000000000000000000000000000002\n:108E700000000000000000000000000000000000F2\n:108E800000000000000000000000000000000000E2\n:108E900000000000000000000000000000000000D2\n:108EA00000000000000000000000000000000000C2\n:108EB00000000000000000000000000000000000B2\n:108EC00000000000000000000000000000000000A2\n:108ED0000000000000000000000000000000000092\n:108EE0000000000000000000000000000000000082\n:108EF0000000000000000000000000000000000072\n:108F00000000000000000000000000000000000061\n:108F10000000000000000000000000000000000051\n:108F20000000000000000000000000000000000041\n:108F30000000000000000000000000000000000031\n:108F40000000000000000000000000000000000021\n:108F50000000000000000000000000000000000011\n:108F60000000000000000000000000000000000001\n:108F700000000000000000000000000000000000F1\n:108F800000000000000000000000000000000000E1\n:108F900000000000000000000000000000000000D1\n:108FA00000000000000000000000000000000000C1\n:108FB00000000000000000000000000000000000B1\n:108FC00000000000000000000000000000000000A1\n:108FD0000000000000000000000000000000000091\n:108FE0000000000000000000000000000000000081\n:108FF0000000000000000000000000000000000071\n:109000000000000000000000000000000000000060\n:109010000000000000000000000000000000000050\n:109020000000000000000000000000000000000040\n:109030000000000000000000000000000000000030\n:109040000000000000000000000000000000000020\n:109050000000000000000000000000000000000010\n:109060000000000000000000000000000000000000\n:1090700000000000000000000000000000000000F0\n:1090800000000000000000000000000000000000E0\n:1090900000000000000000000000000000000000D0\n:1090A00000000000000000000000000000000000C0\n:1090B00000000000000000000000000000000000B0\n:1090C00000000000000000000000000000000000A0\n:1090D0000000000000000000000000000000000090\n:1090E0000000000000000000000000000000000080\n:1090F0000000000000000000000000000000000070\n:10910000000000000000000000000000000000005F\n:10911000000000000000000000000000000000004F\n:10912000000000000000000000000000000000003F\n:10913000000000000000000000000000000000002F\n:10914000000000000000000000000000000000001F\n:10915000000000000000000000000000000000000F\n:1091600000000000000000000000000000000000FF\n:1091700000000000000000000000000000000000EF\n:1091800000000000000000000000000000000000DF\n:1091900000000000000000000000000000000000CF\n:1091A00000000000000000000000000000000000BF\n:1091B00000000000000000000000000000000000AF\n:1091C000000000000000000000000000000000009F\n:1091D000000000000000000000000000000000008F\n:1091E000000000000000000000000000000000007F\n:1091F000000000000000000000000000000000006F\n:10920000000000000000000000000000000000005E\n:10921000000000000000000000000000000000004E\n:10922000000000000000000000000000000000003E\n:10923000000000000000000000000000000000002E\n:10924000000000000000000000000000000000001E\n:10925000000000000000000000000000000000000E\n:1092600000000000000000000000000000000000FE\n:1092700000000000000000000000000000000000EE\n:1092800000000000000000000000000000000000DE\n:1092900000000000000000000000000000000000CE\n:1092A00000000000000000000000000000000000BE\n:1092B00000000000000000000000000000000000AE\n:1092C000000000000000000000000000000000009E\n:1092D000000000000000000000000000000000008E\n:1092E000000000000000000000000000000000007E\n:1092F000000000000000000000000000000000006E\n:10930000000000000000000000000000000000005D\n:10931000000000000000000000000000000000004D\n:10932000000000000000000000000000000000003D\n:10933000000000000000000000000000000000002D\n:10934000000000000000000000000000000000001D\n:10935000000000000000000000000000000000000D\n:1093600000000000000000000000000000000000FD\n:1093700000000000000000000000000000000000ED\n:1093800000000000000000000000000000000000DD\n:1093900000000000000000000000000000000000CD\n:1093A00000000000000000000000000000000000BD\n:1093B00000000000000000000000000000000000AD\n:1093C000000000000000000000000000000000009D\n:1093D000000000000000000000000000000000008D\n:1093E000000000000000000000000000000000007D\n:1093F000000000000000000000000000000000006D\n:10940000000000000000000000000000000000005C\n:10941000000000000000000000000000000000004C\n:10942000000000000000000000000000000000003C\n:10943000000000000000000000000000000000002C\n:10944000000000000000000000000000000000001C\n:10945000000000000000000000000000000000000C\n:1094600000000000000000000000000000000000FC\n:1094700000000000000000000000000000000000EC\n:1094800000000000000000000000000000000000DC\n:1094900000000000000000000000000000000000CC\n:1094A00000000000000000000000000000000000BC\n:1094B00000000000000000000000000000000000AC\n:1094C000000000000000000000000000000000009C\n:1094D000000000000000000000000000000000008C\n:1094E000000000000000000000000000000000007C\n:1094F000000000000000000000000000000000006C\n:10950000000000000000000000000000000000005B\n:10951000000000000000000000000000000000004B\n:10952000000000000000000000000000000000003B\n:10953000000000000000000000000000000000002B\n:10954000000000000000000000000000000000001B\n:10955000000000000000000000000000000000000B\n:1095600000000000000000000000000000000000FB\n:1095700000000000000000000000000000000000EB\n:1095800000000000000000000000000000000000DB\n:1095900000000000000000000000000000000000CB\n:1095A00000000000000000000000000000000000BB\n:1095B00000000000000000000000000000000000AB\n:1095C000000000000000000000000000000000009B\n:1095D000000000000000000000000000000000008B\n:1095E000000000000000000000000000000000007B\n:1095F000000000000000000000000000000000006B\n:10960000000000000000000000000000000000005A\n:10961000000000000000000000000000000000004A\n:10962000000000000000000000000000000000003A\n:10963000000000000000000000000000000000002A\n:10964000000000000000000000000000000000001A\n:10965000000000000000000000000000000000000A\n:1096600000000000000000000000000000000000FA\n:1096700000000000000000000000000000000000EA\n:1096800000000000000000000000000000000000DA\n:1096900000000000000000000000000000000000CA\n:1096A00000000000000000000000000000000000BA\n:1096B00000000000000000000000000000000000AA\n:1096C000000000000000000000000000000000009A\n:1096D000000000000000000000000000000000008A\n:1096E000000000000000000000000000000000007A\n:1096F000000000000000000000000000000000006A\n:109700000000000000000000000000000000000059\n:109710000000000000000000000000000000000049\n:109720000000000000000000000000000000000039\n:109730000000000000000000000000000000000029\n:109740000000000000000000000000000000000019\n:109750000000000000000000000000000000000009\n:1097600000000000000000000000000000000000F9\n:1097700000000000000000000000000000000000E9\n:1097800000000000000000000000000000000000D9\n:1097900000000000000000000000000000000000C9\n:1097A00000000000000000000000000000000000B9\n:1097B00000000000000000000000000000000000A9\n:1097C0000000000000000000000000000000000099\n:1097D0000000000000000000000000000000000089\n:1097E0000000000000000000000000000000000079\n:1097F0000000000000000000000000000000000069\n:040000056000100087\n:00000001FF\n"
  },
  {
    "path": "assets/hw/syscon_flasher/syscon_flasher_v2.05_teensy_lc.hex",
    "content": ":1000000000180020C1000000991700005D170000D3\n:100010005D1700005D1700005D1700005D17000010\n:100020005D1700005D1700005D17000099170000C4\n:10003000991700005D1700009D300000A5300000FA\n:1000400099170000991700009917000099170000F0\n:1000500099170000991700009917000099170000E0\n:1000600099170000991700009917000099170000D0\n:10007000A9210000991700009917000099170000A6\n:1000800099170000991700009917000099170000B0\n:1000900099170000991700009917000099170000A0\n:1000A0008924000099170000991700009917000093\n:1000B0009917000099170000991700009917000080\n:1000C000F8B501F06DFB484B484A1A60484B494A65\n:1000D0001A60494B494A1A600823494A1178194263\n:1000E00002D011780B4313702A22464B46481A70EF\n:1000F000464BC11E00228B4203D303331A1A9208C7\n:100100009200434903F028FB4248434BC11E0022A2\n:10011000994203D803331A1A92089200002103F07F\n:10012000D5FA3E4CC02220003D4903F015FB0326C2\n:100130000022802017003B4993089B005B18FF2199\n:100140003740FF00B9408C46654619680132A94323\n:100150000500BD4029431960202AEBD1324B6A3299\n:100160001C60324B1A70324B663A5A707C321A70ED\n:100170009E3A99791142FCD0102299791142FCD112\n:100180000C219A790A40082AFBD1053A1A713D32AE\n:100190005A71203A99791142FCD040229979114242\n:1001A000FCD0244A2449116020220C211A709A792B\n:1001B0000A400C2AFBD1214B214A1A60214B224ACA\n:1001C0001A600022214B1A60214B07321A60214B22\n:1001D000214A1A6062B601F05BFB01F0E7FA03F016\n:1001E00095FA01F0B2FAFEE734800440300004F0E2\n:1001F00038800440823F00003C8004400100000F32\n:1002000002D0074000E0074020FDFF1F18FFFF1F3E\n:10021000E03A000018FFFF1F6002002000F9FF1FF6\n:100220000000000000E400E008ED00E0005006409F\n:100230000040064044800440000001100480044057\n:10024000C000050514E000E07FBB000018E000E0FE\n:1002500010E000E020ED00E000002020FFFFFFFFA5\n:10026000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E\n:10027000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E\n:10028000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E\n:10029000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E\n:1002A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E\n:1002B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E\n:1002C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E\n:1002D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E\n:1002E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E\n:1002F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E\n:10030000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD\n:10031000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED\n:10032000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD\n:10033000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD\n:10034000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD\n:10035000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD\n:10036000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D\n:10037000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D\n:10038000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D\n:10039000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D\n:1003A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D\n:1003B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D\n:1003C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D\n:1003D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D\n:1003E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D\n:1003F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D\n:10040000FFFFFFFFFFFFFFFFFFFFFFFFDEF9FFFF23\n:1004100006480749091A8B10C90FC91810B54910A9\n:1004200003D0044B002B00D0984710BD18FFFF1FCE\n:1004300018FFFF1F00000000054B10B5002B03D074\n:100440000449054800E000BFFFF7E2FF10BDC046C9\n:100450000000000018FFFF1FE03A0000F0B50500A3\n:10046000160000240D4F85B03B6801910393039B58\n:100470000093019B311B181902F034FC2418A6428A\n:1004800009D93B68009A0293029B9B1AAA6893427F\n:10049000EFD301232B7305B0F0BDC04644FFFF1F0F\n:1004A00010B502F099FD0020084B1B7883420CD058\n:1004B000074B1B78DB0708D5064B074A1B681268F9\n:1004C0000E309B1A98428041404210BDC800002067\n:1004D000E800002044FFFF1FEC00002010B5036877\n:1004E000C9B21B68984710BD10B50368C9B21B6834\n:1004F000984710BD10B5064A01001378C318054887\n:100500001370FFF7F1FFC823DB00013BFDD110BDE5\n:1005100031FFFF1FECFDFF1F0023074A012808D011\n:100520001378022804D0013B032802D010787047CA\n:100530005B421370FAE7C04631FFFF1F030A0870E1\n:10054000000C4B708870704710B502F093FCC82304\n:10055000DB00013BFDD102F0AFFB002804DC0021F1\n:100560000D2001F007FA10BD02F060FBF3E770B553\n:1005700004000E000D200121C82501F0FBF9A61989\n:10058000ED00B44206D1013DFDD100210D2001F066\n:10059000F1F970BD207801F0C5FC2B00013BFDD1C5\n:1005A00001F082FD0134ECE737B505210B48FFF778\n:1005B000DEFF0B4C23680093009D01F061FD0028D5\n:1005C00003DD01F071FDC0B23EBD2368054A019311\n:1005D000019B5B1B9342F0D9EF20F5E72F38000019\n:1005E00044FFFF1F1027000010B501210D2001F06E\n:1005F000C1F9204C0521A01DFFF7B9FF01F054FD02\n:10060000C0B2002801D0E02010BD200006210C302F\n:10061000FFF7ADFF01F048FDC0B20028F3D1200084\n:1006200006211330FFF7A3FF01F03EFDC0B2002802\n:10063000E9D1200006211A30FFF799FF01F034FDBF\n:10064000C0B20028DFD1200007212130FFF78FFF43\n:1006500001F02AFDC0B20028D5D106210648FFF7D7\n:1006600086FF01F021FDC0B20028CCD1FFF79CFF2E\n:10067000CAE7C0462F3800000C380000F0B520490A\n:1006800085B00222293101A803F066F86B460022EA\n:10069000002400259A71200001A9FFF74FFF6B4647\n:1006A000722209201A7201A96F3A684403F054F8C3\n:1006B00080266B460521C8271E7302A8FFF757FF47\n:1006C000FF0001F0DDFC002816D001F0EDFC0D4B21\n:1006D0000100013E1800FFF701FF002EF1D10023B9\n:1006E0008022A4185D4180231B03A342D3D1002D97\n:1006F000D1D1280005B0F0BD3B00013BFDD1E0E7C2\n:100700002F38000014FEFF1FF0B5354C8BB0236866\n:100710000493049D02F0D0FA032827DD06AD0E22D3\n:100720000021280002F0D2FF2E4F042229003800B9\n:10073000FFF794FE2B786C78AA781B02E418EB780C\n:1007400012029B189BB20133A4B29B02A402019334\n:10075000019BA34213D802F0AFFA00283CDC0D2025\n:10076000002101F007F900200BB0F0BD23681E4AFC\n:100770000593059B5B1B9342CCD9EB20F4E720004B\n:1007800003A9FFF7DBFE0A22002107A802F09EFF63\n:10079000722311202B7002AB032203A9C01802F0B0\n:1007A000DBFF8023052128002B71FFF7E0FE802668\n:1007B00001F066FC00280AD001F076FC013E010041\n:1007C0003800FFF78BFE002EF2D18034C0E7C8233B\n:1007D000DB00013BFDD1EBE702F028FABBE7C046A6\n:1007E00044FFFF1F14FEFF1F10270000F0B5324C1E\n:1007F00089B023680293029D02F05EFA03281BDD94\n:1008000004AE0E220021300002F060FF042231000D\n:100810002A48FFF723FE337874781B02E418B37874\n:10082000F5781B02ED18ADB2A4B20135A402AD02F9\n:10083000A5420AD8002016E02368214A0393039BAF\n:100840005B1B9342D8D9EB200DE0200001A9FFF7F4\n:1008500075FE06211B48FFF78AFE01F025FCC0B299\n:10086000002802D0E42009B0F0BD174F052239005E\n:1008700070732C31300002F06FFF1520032201A9A4\n:10088000684402F069FF39000522323106A802F0FF\n:1008900063FF0D213000FFF76AFE01F005FCC0B2D6\n:1008A0000028DFD1FFF780FE0028DCD1FFF74CFEE7\n:1008B0008023DB00E418BBE744FFFF1F14FEFF1F8B\n:1008C00010270000133800002F380000F0B5354C19\n:1008D00089B023680293029D02F0EEF903281DDD22\n:1008E00004AE0E220021300002F0F0FE042231009E\n:1008F0002D48FFF7B3FD337874781B02E418B37802\n:10090000F5781B02ED18ADB2A4B20135A402AD0218\n:10091000A5420CD80023180009B0F0BD2368234A73\n:100920000393039B5B1B9342D6D9EB23F3E7200091\n:1009300001A9FFF703FE06211D48FFF718FE01F08D\n:10094000B3FBC0B2002828D11A4F052239007073BA\n:100950002C31300002F000FF1520032201A9684469\n:1009600002F0FAFE39000522323106A802F0F4FE48\n:100970000D213000FFF7FBFD01F096FBC0B200280F\n:100980000DD1FFF711FE031E01D01B28C3D1FFF7C5\n:10099000DBFD8023DB00E418BAE7E823BBE7E423B0\n:1009A000B9E7C04644FFFF1F14FEFF1F10270000D9\n:1009B0001A3800002F380000F0B5294F0621380002\n:1009C00085B0FFF7D4FD01F06FFBC1B2E824002928\n:1009D00010D1032203A802F079FE224B0D2118004A\n:1009E00038300193FFF7C3FD01F05EFBC0B2002871\n:1009F00003D0E424200005B0F0BDFFF7D5FD041EB0\n:100A0000F8D101F051FB02ABC6B21E7101F04CFBF4\n:100A100002ABC5B2062138005D71FFF7A8FD01F0F9\n:100A200043FBC0B2E8340028E4D101980D214630E0\n:100A3000FFF79DFD01F038FBC0B20028D9D1FFF7C8\n:100A4000B3FD041ED6D101F02FFB0700300002F0E9\n:100A500011FA280002F00EFAF8B202F00BFAC9E718\n:100A6000213800002F380000F0B5AF4C0922A54412\n:100A700000240BA821000A9402F028FEAB4E0222AB\n:100A8000310005A8293102F067FEFF2204AB2100E6\n:100A900092000FA89C710E9402F018FEA44C2368DB\n:100AA0000693069D02F008F9012842DD8027002503\n:100AB0000D2200210AA802F009FE02229D480AA97F\n:100AC000FFF7CCFC04AB1B7E0121019304AB5B7EE2\n:100AD0000D20029300F04EFF2368FF000893089B4F\n:100AE0000393BD422ED330000521C8258026543003\n:100AF000FFF73DFD0024ED007600282204AB9B1893\n:100B0000185D01F00FFA2B00013BFDD1013401F01B\n:100B1000CBFAB442F1D101F08FFA013DFDD101F0E1\n:100B2000C3FAC0B200282AD0E1273800824B9D4486\n:100B3000F0BD2368814A0793079B5B1B9342B1D9A1\n:100B4000EB27F2E77A4B039A1B680993099B9B1AE0\n:100B50007B4A934200D9E4E002F0AEF884B2002C64\n:100B6000BFD06019B84201DD7C1BA4B20EAB59198D\n:100B7000220070482D19FFF771FCADB2B1E76B4848\n:100B80000521C82580265A30FFF7F1FCED00B6009C\n:100B9000282204AB9B18185D01F0C4F92B00013B1F\n:100BA000FDD1013401F080FAB442F1D101F044FAF0\n:100BB000013DFDD101F078FAC0B2002801D0E22752\n:100BC000B3E706215F48FFF7D2FC01F06DFAC0B22F\n:100BD000002801D0E627A8E7019B05A91D02029B7A\n:100BE000ED18ADB2AD022800FFF7A8FC4F4E05226C\n:100BF00031000AA82C3102F0AFFD1D2004ABC01853\n:100C0000032205A902F0A8FD3100052260310CA8DD\n:100C100002F0A2FD0D210AA8FFF7A9FC01F044FA99\n:100C2000C0B20028D6D1FFF7BFFC071E00D07CE77A\n:100C300030000521C8275430FFF799FCFF00282217\n:100C400004AB9B18185D01F06DF93B00013BFDD131\n:100C500001F02AFAC02301349B009C42EFD101F03D\n:100C6000EBF9013FFDD101F01FFAC0B2002800D01E\n:100C70005AE730000521C8275A30FFF778FCFF00FB\n:100C8000282204AB9B18185D01F04CF93B00013B96\n:100C9000FDD101F009FA80230134DB009C42EFD141\n:100CA00001F0CAF9013FFDD101F0FEF9C0B2002800\n:100CB00000D084E706212348FFF759FC01F0F4F93E\n:100CC000C0B2002800D085E780239B00E81805A962\n:100CD000FFF734FC310005222C310AA802F03CFD5C\n:100CE0001D2004ABC018032205A902F035FD310018\n:100CF000052260310CA802F02FFD0D210AA8FFF794\n:100D000036FC01F0D1F9C0B2002800D062E7FFF74D\n:100D10004BFC071E00D008E701000D2000F02AFE62\n:100D200003E7EC2701E7C046C4FBFFFF2F380000B4\n:100D300044FFFF1F14FEFF1F3C04000010270000AB\n:100D4000204E000028380000F0B58E4C0922A54442\n:100D500000240BA821000A9402F0B8FC8A49022260\n:100D6000293105A802F0F8FCFF2204AB2100920013\n:100D70000FA89C710E9402F0A9FC844E3368069370\n:100D8000069C01F099FF012856DD802700250D22E1\n:100D900000210AA802F09AFC02227D480AA9FFF766\n:100DA0005DFB04AB1B7E0121019304AB5B7E0D2038\n:100DB000029300F0DFFD3368FF000893089B039364\n:100DC000BD4242D3019B029A1B029B189BB29B021D\n:100DD000180005A90193FFF7B1FB06216D48FFF745\n:100DE000C6FB01F061F9C0B2E824002820D1664EAC\n:100DF000052237002C3739000AA802F0ADFC1D236C\n:100E0000350004A81B181800032205A9323502F08A\n:100E1000A3FC052229000CA802F09EFC0D210AA8C3\n:100E2000FFF7A5FB01F040F9C0B2002829D0E42467\n:100E30002000594B9D44F0BD3368584A0793079BE7\n:100E40001B1B93429DD9EB24F2E73368039A099365\n:100E5000099B9B1A524A934200D943E101F02CFFAF\n:100E600084B2002CACD06019B84201DD7C1BA4B266\n:100E70000EAB5919220046482D19FFF7EFFAADB213\n:100E80009EE7FFF791FB041E23D13F4F0521380059\n:100E9000C8245430FFF76BFB0025E400282204AB84\n:100EA0009B18585D01F03EF82300013BFDD101F095\n:100EB000FBF8802301355B009D42EFD101F0BCF8C7\n:100EC000013CFDD101F0F0F8C0B200282DD0E124A2\n:100ED000AEE71B28ACD106213248FFF748FB01F0F2\n:100EE000E3F8C0B20028A2D1052239000AA802F016\n:100EF00033FC1D2304A81B181800032205A902F0C7\n:100F00002BFC052229000CA802F026FC0D210AA8C2\n:100F1000FFF72DFB01F0C8F8C0B2002800D086E72B\n:100F2000FFF742FB041EB0D082E738000521C82439\n:100F30005A30FFF71CFBE400282204AB9B18585DD5\n:100F400000F0F0FF2300013BFDD101F0ADF880235C\n:100F500001359B009D42EFD101F06EF8013CFDD1BF\n:100F600001F0A2F8C0B2002801D0E22460E7062117\n:100F70000D48FFF7FCFA01F097F8C0B2002815D031\n:100F8000E62455E7C4FBFFFF2F38000044FFFF1F96\n:100F900014FEFF1F1A3800003C0400001027000058\n:100FA000204E0000133800002838000031000522D0\n:100FB0002C310AA802F0D0FB1D2004ABC01803227C\n:100FC00005A902F0C9FB3100052260310CA802F02E\n:100FD000C3FB0D210AA8FFF7CAFA01F065F8C0B2F9\n:100FE0000028CDD1FFF7E0FA041E00D020E7300042\n:100FF0000521C824C0265430FFF7B9FAE400B60032\n:10100000282204AB9B18585D00F08CFF2300013BA5\n:10101000FDD1013501F048F8B542F1D101F00CF8ED\n:10102000013CFDD101F040F8C0B2002800D04EE7ED\n:101030002D480521C82480265A30FFF798FAE4008D\n:10104000F600282204AB9B18585D00F06BFF2300CC\n:10105000013BFDD1013501F027F8B542F1D100F097\n:10106000EBFF013CFDD101F01FF8C0B2002800D019\n:101070007BE706211D48FFF77AFA01F015F8C0B2A8\n:10108000002800D07CE780239B009C46019805A99E\n:101090006044FFF753FA390005222C310AA802F008\n:1010A0005BFB1D2004ABC018032205A902F054FB12\n:1010B0003900052260310CA802F04EFB0D210AA870\n:1010C000FFF755FA00F0F0FFC0B2002800D057E754\n:1010D000FFF76AFA041E00D0AAE601000D2000F016\n:1010E00049FCA5E6EC24A3E62F38000028380000D0\n:1010F00010B501210D2000F03DFC064805216630A9\n:10110000FFF735FA00F0D0FFC0B2002800D0E02091\n:1011100010BDC0462F38000013B5012002F016FAAA\n:10112000040002F01DFA01A8001B16BDF0B505244D\n:10113000012587B02200002104A802F0C7FA290087\n:101140000D2000F017FCFA21FA204901C00000F040\n:10115000F2FA08210290280000F0EDFA0021039035\n:10116000200000F007FCA0239B00013BFDD100F014\n:101170007DFD200000F076FC2900200000F0FAFB45\n:10118000200000F06FFCE1216A4E4902300000F0BF\n:10119000E3F964230027B360280000F063FCC52056\n:1011A000FFF7A8F92800FFF7A5F9634B0320019387\n:1011B0001F70FFF79FF99A20FFF79CF93800FFF79F\n:1011C00099F91420FFF796F90220FFF7A5F9FFF728\n:1011D00091F900F055FF002815DC0320FFF78AF98C\n:1011E00000F062FF2200300004A900F05DFA04ABB9\n:1011F0009B78062B36D0102B08D0EE20FFF77AF91B\n:10120000002007B0F0BD00F04FFFE2E7029B1B019A\n:1012100001D0013BFDD10021042000F0ABFB039B7A\n:101220001B0101D0013BFDD12900042000F0A2FBED\n:1012300000F026FF00280DDCFA27BF00013F002F39\n:1012400000D177E700F01CFF002806DC5023013BAB\n:10125000FDD1F3E700F028FFEAE700F025FFC0B278\n:101260000228F3D10024052000F0FCFB9120FFF7B9\n:1012700041F9012000F0F6FB019B3A201C70FFF7BA\n:1012800039F94E20FFF736F96F20FFF733F9742054\n:10129000FFF730F93A20FFF72DF95520FFF72AF92B\n:1012A0007320FFF727F96520FFF724F96420FFF783\n:1012B00021F93A20FFF71EF90320FFF72DF9FFF778\n:1012C00019F9012000F0CEFB9320FFF713F901205C\n:1012D00000F0C8FB194B185D0134FFF70BF9C32C64\n:1012E000F8D1012000F0BEFB9320FFF703F90120A5\n:1012F00000F0B8FB0024124BE05C0134FFF7FAF871\n:10130000072CF8D1012000F0ADFB94213000FFF74D\n:10131000EBF8052000F0A6FB00F0B2FE002805DC8B\n:101320000D20002100F026FB01206AE700F0BCFE42\n:10133000F2E7C046ECFDFF1F31FFFF1F27FDFF1F37\n:1013400020FDFF1FF8B501210D2000F013FB012740\n:1013500001F0B2FC002800D1F8BD01F067FC454B5C\n:10136000C0B2187001280FD910285AD0202871D087\n:10137000802872D0F02831D03F4B1B78002B03D14E\n:10138000E020FFF7E1F8E3E72028E1D801F036FF9D\n:101390001116323538E03D4043E046E0E0E0E0E061\n:1013A00049E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0D4\n:1013B000620002213148FFF791F8C9E7FFF7ACFE60\n:1013C0002F4D2880052001F055FD2C4C2988200048\n:1013D000090AFFF783F820002978ECE7FFF79CFE65\n:1013E000274D2880022001F045FD052001F042FD37\n:1013F0003420E8E7FFF788F9AAE7FFF73FF9A7E706\n:10140000FFF7F4F91F4B1870BBE7FFF72DFBF9E767\n:10141000FFF79AFCF6E7FFF759FAF3E7FFF7CCFA84\n:10142000F0E70023144D174C2E7823709E420AD10A\n:10143000FFF77CFE2070002809D0FFF7D5F8207058\n:10144000002802D12F7020789BE72E70FBE7E12364\n:101450002370F8E7FFF74CFED4E700210D2000F0E1\n:1014600089FAFA20400000F0FDFA074B1B68984704\n:101470006EE7C04630FFFF1F34FFFF1F14FEFF1F43\n:1014800032FFFF1F3CFFFF1F38FFFF1FE12170B538\n:10149000244C4902200000F05FF86423FA26A36080\n:1014A000214CF6002568FEF7FBFF002807D11F4AF4\n:1014B000236812785B1B002A2ED0B3422FD901215A\n:1014C0000D2000F079FA0121052000F075FA0121C4\n:1014D000042000F071FA0121080000F06DFA0021EB\n:1014E000080000F069FA0021052000F043FA00210D\n:1014F000012000F03FFA0021080000F03BFA012132\n:10150000042000F037FAFEF7CBFF0028FBD00121C2\n:101510000D2000F02FFA70BD054A9342CFD801F09C\n:101520005BFDC0E7ECFDFF1F44FFFF1FC80000206C\n:10153000EE02000010B50368C9B21B68984710BDE1\n:1015400010B50368C9B21B68984710BD10B5036891\n:10155000C9B21B68984710BD084B10B50400480875\n:10156000C01801F05FFE00F097FA054B1B78002BC6\n:1015700002D1200001F09EFD10BDC046C0C62D0066\n:1015800011FEFF1F10B5080000F0CCFC012010BDBB\n:1015900010B5080000F0C6FC012010BD70B50800B1\n:1015A0000D0002F0E2F804000100280000F038FD10\n:1015B000200070BD10B514000800110000F030FDCF\n:1015C000200010BD10B50800110000F08BFE10BD0A\n:1015D00010B50800110000F071FE10BD10B500F04C\n:1015E000CDFD10BD10B5080000F09AFC431E9841D7\n:1015F000C0B210BD10B5080000F068FC431E984151\n:10160000C0B210BD10B50800110000F0C5FB10BD40\n:1016100010B5080000F014FC10BD10B5080000F073\n:1016200099FB10BD10B500F021FB10BD10B51400E2\n:10163000054B4808C01801F0F5FD00F02DFA200018\n:1016400000F0B2FA10BDC046C0C62D0010B500F0C3\n:101650006DFD10BD10B500F027FD10BD10B500F0F8\n:101660000FFD10BD10B500F0E7FC10BD10B500F087\n:10167000EFFC10BD73B504000A4D2B680093009E6B\n:10168000236820005B69984700280ADA01F0A4FC6F\n:101690002B68A2680193019B9B1B9342F0D301200E\n:1016A000404276BD44FFFF1FF8B507000D0014004F\n:1016B0000026002903D10C000BE0A8550136A642F4\n:1016C00007D03800FFF7D6FF0028F6DA01233400F0\n:1016D0003B732000F8BDFFFF70B50B4D2E68002E48\n:1016E00000D10A4E30000A4901F00CFF094C3000CD\n:1016F0004C43074901F020FE074B5843201801D501\n:10170000064BC018286070BD40FFFF1F24D95B073F\n:101710001DF30100A7410000ECF4FFFFFFFFFF7F76\n:1017200010B5041E05D0FFF7D7FF210001F000FE21\n:101730000C00200010BD10B50400884203DA081A1E\n:10174000FFF7EEFF2418200010BD10B5FFF79EFE36\n:10175000FFF7F8FD01F040FCFAE7FFFF70B58025C8\n:101760008026ED02F6000B4C23682B4201D000F0DE\n:101770008BFE2368334201D000F016FD23681B0561\n:1017800001D500F009F82368DB04ECD500F004F87B\n:10179000E9E7C0463480044010B5FFF7DFFFFFFFE4\n:1017A0000022014B1A607047008104407047FFFF20\n:1017B0000A49030010B50868002B0BD06A46084C94\n:1017C000C3181219934206D301F09AFF0C23036049\n:1017D0000120404210BD0B60FCE7C04600FEFF1F29\n:1017E00000FEFFFFEFF31380002821D1EFF31083F9\n:1017F000002B19D1EFF30582002A16D00F2A0BD93E\n:101800001300103B0C499B089B005B1803210A4006\n:101810008A401B68D340DBB2EFF31182002A02D06A\n:10182000934200D913001800704780235B00F3E750\n:1018300001204042F8E7C04600E400E0F8B50600A9\n:101840000D00170000243900300001F071FDCAB20C\n:1018500013003733DBB2092901D83032D3B222006A\n:101860002B55B74202D806000134ECE700212B19B2\n:1018700059702B00111BA14201DB2800F8BD19781B\n:10188000285D187029550133013CF3E77047FFFFCD\n:101890008022224BD20513B51A6080220020120646\n:1018A0001A601F4B1F4918601F4B204A19602823DC\n:1018B00013601F4A1F4C13601F4A13601F4A1360B6\n:1018C0001F4A13601F4A1360092222601E4C2060C9\n:1018D0001E4C21601E4C23601E4C23601E4C226057\n:1018E0001E4C20601E4801601E490B601E490B60A3\n:1018F0001E4B1A6001F0FEFBFFF7C8FF1C4C23686B\n:101900000093009B132BFAD901F0CEF896235B00CD\n:1019100022680192019A9A42FAD313BD00E100E0D5\n:1019200004800340FFBF0000088003400C80034098\n:1019300014800340008003401C8003402480034047\n:101940002C800340348003400490034008900340FF\n:101950000C900340149003400090034004A0034007\n:1019600008A003400CA0034014A0034000A00340C3\n:1019700044FFFF1F020010B51A280BD80C23534355\n:101980000C481A58C018147D037A234205D0002948\n:1019900001D0137110BD1372FCE74368002904D015\n:1019A000032219680A431A60F4E702211A688A437D\n:1019B000F9E7C04604390000030010B51A281BD807\n:1019C0000C205843154A141882586368107D247AF5\n:1019D000012901D0042910D120431075A222520000\n:1019E0001A60253AFF3A042903D119680A431A609C\n:1019F00002E019689143196010BDA0431075802260\n:101A0000002908D0022902D10422FF32EFE7002288\n:101A10000329ECD181225200E9E7C04604390000D5\n:101A200072B60B4B19680B4B1A680B4B1B6862B6EE\n:101A30005B0102D5322900D90132084B08485B1AF4\n:101A40005843FA239B005343800DC0187047C0468B\n:101A500018E000E044FFFF1F04ED00E07FBB000042\n:101A60005555010070B50400FFF7DAFF0500002CA2\n:101A700010D0FA26B600FFF7D3FF401BB04202D2C7\n:101A800001F0AAFAF7E7013C002C03D0FA239B00EF\n:101A9000ED18F0E770BDFFFF80232C4ADB001168D2\n:101AA0000B43136000232A4A13702A4A13702A4AF0\n:101AB00013702A4A13702A4A13702A4B1B78152B6D\n:101AC0002FD025D8002B28D0032B2CD0264B1B78C9\n:101AD000052B35D02AD8012B2DD0042B32D000284D\n:101AE00000D10130214BC204D20E1A700022C0B2C4\n:101AF00058709A702C32DA70FF231D490A689A4395\n:101B0000BF3B134380220B601A4B52011A6070478F\n:101B1000192BDBD1184B194A01E0194B194A1A60ED\n:101B2000D4E7194BFAE7194B194AF8E7182BD6D125\n:101B3000184B194A02E0194BD12292001A60CEE7E5\n:101B4000174BF9E79122174BF7E7C0463480044062\n:101B500090FFFF1F98FFFF1FE1FFFF1FE8FFFF1F20\n:101B6000A0FFFF1F99FFFF1F10FEFF1F00A00640F0\n:101B70000CE400E000E100E054D004401304000055\n:101B800040A004401303000018C004400490044027\n:101B90001302000050D004404404000044A004405C\n:101BA0001CC0044008900440132130B5274B9A789C\n:101BB0008A43103901400A43410701D510210A43E5\n:101BC0009A700F220240042A03D199793C320A43C9\n:101BD0009A7110215A798A43084200D00A435A71F7\n:101BE00010242025020099792A40A143284200D0E0\n:101BF00021439971C10506D5202459781D78C9B2B1\n:101C00002C431C7059700021800511D5A0209978B3\n:101C100001439970534253410D4A9B180D4A127863\n:101C2000052A0FD007D8012A09D0042A0CD0012197\n:101C3000094B197030BD182AF9D1084A00E0084A4A\n:101C40001360F4E7074AFBE7074AF9E700A00640FC\n:101C50004603000010FEFF1F48FFFF1F50D0044046\n:101C600044A004401CC0044008900440274B10B519\n:101C70001B685B0502D410BD01F0AEF9244B1B7844\n:101C8000D9B2002BF8D18022224B52011A60224A8D\n:101C9000224BD1701B78152B27D01DD8002B1FD0BD\n:101CA000032B24D07F211E4B1B780B40052B29D002\n:101CB0001FD8012B21D0042B26D01379D3790022F1\n:101CC000184B1A70184B1A70184B1B689342D2D0DD\n:101CD000174A12781A71CEE7192BE3D1154B00E0A1\n:101CE000154B0421FF311960DCE7144BF9E7144B65\n:101CF000F7E7182BE1D1134B00E0134B0421FF3120\n:101D00001960DAE7114BF9E7114BF7E7348004402B\n:101D1000A0FFFF1F80E100E000A0064099FFFF1F29\n:101D200010FEFF1F90FFFF1F98FFFF1F4CFFFF1FBC\n:101D300049FFFF1F54D0044040A0044018C0044095\n:101D40000490044050D0044044A004401CC004400F\n:101D50000890044070B504000B4A1378DDB2002BE4\n:101D6000FBD120000121FFF727FE29002000FFF70B\n:101D700001FE0C226243054B0549D0589B180860B0\n:101D80001B7A04490B7070BDA0FFFF1F04390000CF\n:101D90009CFFFF1F9AFFFF1F10B5002901D0802371\n:101DA0001843214C237883421AD0204A12685205E6\n:101DB00015D57F221340052B1BD012D8012B14D030\n:101DC000042B18D06022002900D11C3A7F23034045\n:101DD000052B1FD011D8012B16D0042B1FD020703B\n:101DE00010BD182BEED1124B00E0124B00221A60EE\n:101DF000E8E7114BFAE7114BF8E7182BEFD18023F6\n:101E0000DB0013430A4A03E0C0239B001343094A43\n:101E10001360E4E7C0239B001343074AF8E78023DD\n:101E20009B001343054AF3E710FEFF1F3480044074\n:101E300050D0044044A004401CC00440089004401A\n:101E4000194A1378834212D01849096849050DD5FB\n:101E5000152B14D00CD8002B0ED0032B13D0152823\n:101E60001CD012D8002815D0032819D01070704744\n:101E7000192BF4D10E4B03E00E490B60EFE70E4B2C\n:101E800000211960EBE70D4BFAE71928EED1084B5A\n:101E90000B4901E0074B0B491960E7E7064BFAE7EE\n:101EA000064B0949F8E7C04699FFFF1F34800440FC\n:101EB00054D0044040A0044018C0044004900440A2\n:101EC000130400001303000013020000104B8022D3\n:101ED0001968D2000B0070B51340114212D00D4C9E\n:101EE0001A2811D80C2242430B4B0C4DD1589B1889\n:101EF0001B7A216001212B70FFF75EFD23682A7891\n:101F00001A720123180070BD00232360FAE7C0464F\n:101F1000348004404CFFFF1F0439000049FFFF1FBD\n:101F200000207047F0B5334B85B01B6801905B050E\n:101F300031D5314B1B68002B02D0304A12781A7110\n:101F40002F4B1B78002B0CD072B62E4A9379DBB244\n:101F50000393202303990B430393039BDBB29371F9\n:101F600062B6294E294F34783B6801349C429B412C\n:101F70001C40274D2B78A3420FD06B461B793F2C7A\n:101F800031D8244A13550122234BE4B21A701D4B59\n:101F9000AB323470DA7005B0F0BDFFF723FC402897\n:101FA0001CDC18490B795BB2002BE2DA2B783A681B\n:101FB000D8B20133934209D23F2B09D8154AD25CDB\n:101FC000D2B2D2B2DBB2CA712B70D2E70023F5E7EE\n:101FD000124A3F38126812181278F1E7FF28C8DD5C\n:101FE00000F0FAFFC5E721000C4A40391268521888\n:101FF0001370C8E7348004409CFFFF1F9AFFFF1F47\n:1020000048FFFF1F00A00640E1FFFF1F0CFEFF1F5F\n:10201000E8FFFF1FA1FFFF1FA0FFFF1FE4FFFF1F3F\n:1020200070B504004518AC4200D170BD2078FFF7B0\n:1020300079FF0134F7E7FFFF10B5044B1B78002B45\n:1020400000D110BD00F0C8FFF7E7C046A0FFFF1F9A\n:10205000084B1978084BC8B21B78DAB2994205D3FD\n:10206000064B1B68013B9B18181A7047013A101A5F\n:10207000FBE7C046E1FFFF1FE8FFFF1F0CFEFF1F4D\n:10208000064B074A19781278CBB2D0B2914201D3ED\n:10209000181A7047034A12689B18F9E790FFFF1F50\n:1020A00098FFFF1F08FEFF1F30B5184B184D1A7818\n:1020B0002B78D4B2D9B29A4225D0164A4B1C12685A\n:1020C0009A4215D93F2B15D81349C85CD9B229704B\n:1020D0001249C0B20968002909D09C4210D3E31A02\n:1020E0000F4A1268934202D80E4B1B780B7230BD18\n:1020F0000023E9E70C483F39006841180878E5E714\n:102100001219D31AECE701204042F0E790FFFF1FBD\n:1021100098FFFF1F08FEFF1F50FFFF1F4CFFFF1F10\n:1021200004FEFF1F49FFFF1F94FFFF1F0E4B19788E\n:102130000E4B1A78D3B2914212D00D495A1C09683D\n:10214000914205D93F2A05D80A4B985CC0B2704726\n:102150000022F9E7084A3F3B1268D3181878F5E7E0\n:1021600001204042F3E7C04690FFFF1F98FFFF1F8A\n:1021700008FEFF1F50FFFF1F94FFFF1F064B074A7B\n:102180001B78DBB21370064B1B68002B02D0054A8C\n:1021900012781A727047C04698FFFF1F90FFFF1F0A\n:1021A0004CFFFF1F49FFFF1F37B5354A13799B06C8\n:1021B00013D5344D3448D1792B78006801338342EC\n:1021C000804103403148C9B20078984205D03F2B86\n:1021D00038D82F48C154DBB22B70D378DCB25BB255\n:1021E000002B0CDA13795BB2002B08DA294B2A4852\n:1021F0001D780178CBB28D422BD16C23D370402354\n:102200001C421ED0117919421BD00021234B19709A\n:10221000234B1B688B4202D0224909781972224B4A\n:102220001B78002B0BD072B620219379DBB201937F\n:10223000019B8B430193019BDBB2937162B62C230C\n:10224000D37037BD1C001948403C0068001901706C\n:10225000C1E7174D591C2D688D4209D93F2909D86E\n:10226000144B5B5CDBB2DBB2C9B2D3710170C6E761\n:102270000021F5E7104D3F3B2D68EB181B78F1E787\n:1022800000A0064090FFFF1F08FEFF1F98FFFF1FE2\n:1022900050FFFF1FE1FFFF1FE8FFFF1FA0FFFF1F11\n:1022A0009CFFFF1F9AFFFF1F48FFFF1F94FFFF1FA8\n:1022B0000CFEFF1FA1FFFF1FE4FFFF1F064B18606E\n:1022C0004023002801D00B004033044A1A31136028\n:1022D000034B19607047C04694FFFF1F08FEFF1FA5\n:1022E00004FEFF1F044B18604023002801D00B00A0\n:1022F0004033024A13607047E4FFFF1F0CFEFF1FCC\n:102300007047FFFF0223F0B50A4C0B4E2578C82713\n:102310002B43DB00F218506008480278002A00D1F5\n:10232000403F09043943F15001235A406B40027089\n:102330002370F0BD6C00002000F8FF1F6D0000202E\n:10234000431E10B50020032B0ED872B6074A990021\n:102350008858002807D044685B008C50044A0488E1\n:10236000995A091B995262B610BDC0467C000020E4\n:10237000CA000020431E0020032B06D872B6054A6F\n:102380009B009B58002B01D162B670475B680130FF\n:10239000F8E7C046A4000020F8B572B6042208256C\n:1023A0000126154C154B2178294219D0D100CF5860\n:1023B000002F0AD15A1808305060114A5A50114A59\n:1023C0001378013B137062B6F8BD31001143C900A8\n:1023D000CF58002F04D15A18083050600A4AEDE750\n:1023E00004320134142ADED162B60022054B1A7081\n:1023F00000F0F4FBE8E7C046C83A000000F8FF1F11\n:1024000088004000D2000020C8004000421E10B5E5\n:10241000032A2BD80223800003431748DB001B1834\n:1024200072B6164CA05C032817D800F0F1FE2310FA\n:1024300002130520A0540A000832C8205A601A0767\n:1024400000D440380A88120402431A600DE00220CA\n:102450000833EFE704200833ECE7094892001458EA\n:10246000084B002C03D11150995062B610BD9858FA\n:102470004160F9E70320DDE700F8FF1FC4000020FA\n:10248000A4000020B4000020F0B585B00422C34BA6\n:102490001B78DCB213421DD0C14B1B78002B16D029\n:1024A000C04A1178CBB2002905D0013BDBB21370D2\n:1024B000002B00D100BEBC4A1178CBB2002906D057\n:1024C000013BDBB21370002B01D100F031FD04227F\n:1024D000B24B1A700822082322401C4200D16CE241\n:1024E000B24BB34C1E78F3B23509B608F600002D96\n:1024F00000D0F8E1A619336871689B061B0F092B01\n:1025000000D1C6E10AD8013B012B00D8A6E1012287\n:10251000A84B1A700822A14B1A70B7E70D2BF6D101\n:102520000A684868A44BA5491A6001935860A44BF7\n:102530003360A44BA44E1D6001230B7091B2256142\n:10254000A561B14247D8D023DB00994200D363E1B3\n:1025500081235B00994200D1FEE00CD8802900D194\n:10256000DDE0822900D1E0E00F22984B1A700122B1\n:10257000904B1A70CBE7964B994200D1FCE0A02219\n:10258000D20000231C009142EED1019AD5889D42D1\n:1025900000D91D002F00402D00D940273900200010\n:1025A000FFF7B0FEEE1BBD4201D13F2DDFD9350054\n:1025B000E419402E00D9402520002900FFF7A2FE93\n:1025C0006419721BAE4201D13F2ED0D97D4B1C60E5\n:1025D000804B1A80CBE7804EB142C8D03BD88820D0\n:1025E0000001814200D195E090231B019942BBD1AB\n:1025F000042580266A4B120CD2B21A70EB00E25806\n:10260000324204D0E3185868083800F0E7FA013580\n:10261000142DF3D10027714B714E724D0093306829\n:1026200000281ED1BB0003936F4BBA003060D0501E\n:10263000286800281BD16D4B039A2860D0506C4B42\n:102640007A00D052009B18780238032818D800F07E\n:10265000DFFD14511451674B994200D1F2E0664AF4\n:102660008FE74368029300F0B9FA0298D8E743680D\n:10267000029300F0B3FA0298DBE70023009A13708C\n:10268000009B01370133043600930435042FC6D173\n:1026900000225A4B5A4F5B4D1A703B785A4A2B70A6\n:1026A0000435AE180822134215D000F077FAF30073\n:1026B000002823D0E21808305060544AE25000F05D\n:1026C0006DFA01233343DB0000281DD0E2180830E7\n:1026D00050603B4AE250022300223343DB00E250C9\n:1026E00003233343DB00E250494B01379D42D4D1F1\n:1026F000002350E00122009B1A70C1E73F4AE050DE\n:10270000137801331370DAE73C4AE0501378013351\n:102710001370E0E7224A3F4C1278227035E700231D\n:102720003C4C2370637002332FE77F230340042B5C\n:1027300000D919E70021374A9B00117051702349D5\n:1027400014005B18022118780B00084200D11CE726\n:10275000013B13700B0018E77F230340042B00D9C3\n:1027600002E7120C00D0FFE60221184A9B009B18DA\n:102770001A788A431A70BBE77F210140042900D9E7\n:10278000F2E6130C00D0EFE68A001049521802213D\n:102790001078014311701C00F7E6C0468020074006\n:1027A000C8000020C9000020F00000209020074051\n:1027B00000F8FF1F942007409C0000206D000020BF\n:1027C000C80040007000002081060000C0200740C3\n:1027D000020300006E00002021200000C400002041\n:1027E0007C000020A40000208C000020B400002009\n:1027F000CA0000202122000021230000D200002076\n:10280000C83A0000C42007403CDFF8BF8800400001\n:10281000D420074074000020864B120C80B25C6804\n:10282000002C00D1A0E61988914209D15D8885422B\n:1028300006D1090A032901D12378A6E61B89A4E65B\n:102840000C33ECE780B2002800D051E77A4B120C31\n:1028500019687A4BD2B21960794B8BE7794B7A4A77\n:102860001888904212D19B88002B0BD1774AC85C04\n:10287000D0540133072BFAD11368862B02D10F22D3\n:10288000734B1A7000210800FFF73CFD714B336059\n:102890003DE6714F3C68002C19D0704B1D880093A9\n:1028A0002E00402D00D9402620003100FFF72AFDE0\n:1028B000A4192B1C402D00D94023009AEB1A9BB27F\n:1028C0001380002B02D13F2D00D81C003C60A022B9\n:1028D0005C4BD2001988914200D018E600225A7051\n:1028E0009A785F4B45E608220821A4196068013DEB\n:1028F0000838EDB21A400B4235D000F06FF9594953\n:10290000A8004258584B002A1CD056684650110067\n:10291000585D08316160032805D800F079FC020D8C\n:102920000F1103215955C821230700D440391388BA\n:102930001B040B432360EDE50221F3E70521F1E7DA\n:102940000421EFE7595D02290BD000D8E2E501220E\n:10295000032906D008221440621E944102345C55BB\n:10296000D8E55A55D6E52368190C0B1E018014D002\n:102970003E4E42804260AA0097593D49002F13D134\n:10298000905188503B4A6D00A95A5B18AB5200F039\n:1029900005F900280BD00830606040222307DB17C0\n:1029A0001340354A9B18C5E78E587060E9E7334AF3\n:1029B0002060137801331370ACE50120044220D06D\n:1029C00002232F492C4C0B702E4B2F4D1A702F4B7E\n:1029D0001C605D609C602E4CDC600D241A619A6165\n:1029E0002C4B1C70FF232C4C23702C4C23701C4C44\n:1029F00022702B4A13709F222A4B1A70087005B060\n:102A0000F0BD63B2002B05DA0D22224B1A70802331\n:102A1000224A13700222144205D01F490B78DBB200\n:102A20000B701E4B1A7010231C42E8D01B4A137007\n:102A3000E5E7C046743A000044FFFF1FEC000020A9\n:102A4000E80000209C00002021200000E000002081\n:102A5000C9000020C8004000700000206E00002067\n:102A600098200740A4000020C40000207C00002023\n:102A70008C000020CA00002088004000D200002006\n:102A8000942007406C000020ECFFFF1F00F8FF1FA0\n:102A90002C000020C02007408820074080200740ED\n:102AA0008C2007408420074010B500F06DFB002209\n:102AB00010001A4BD100C850013259184860142A2E\n:102AC000F8D180221649D2020C6822430A601549C7\n:102AD0001A0AD2B20A7014491A0CD2B20A70134AF6\n:102AE0001B0E1370FF23124A12491370124A1370FF\n:102AF000124A137001220A701149087011490A70B4\n:102B000011490A689A438F3B134380220B600F4B95\n:102B100052041A6010220E4B1A7010BD00F8FF1FED\n:102B2000348004409C200740B0200740B420074078\n:102B3000802007409420074088200740102007404D\n:102B4000002107408420074018E400E000E100E095\n:102B50000821074010B500F009F910BD10B500F0CC\n:102B60008DF810BD10B500F061F810BD10B500F083\n:102B7000A3F810BD10B500F0ADF910BD10B500F010\n:102B800083F910BD10B50800110000F009F910BD5F\n:102B900010B5080000F06EF910BDFFFF70B572B6F9\n:102BA0000C4D2C68200000F0B3FC03000B2802DD64\n:102BB00062B6002070BD80221206C24094432C6091\n:102BC00062B648205843044BC0180023036043609A\n:102BD000F0E7C04624FEFF1FC0F9FF1FD8220F4BAD\n:102BE00010B5C31A9200934209D20D4A1278002AF6\n:102BF00006D00C4A1278002A02D0FFF7CDFB10BD98\n:102C000072B64821180000F00DFB80231B06C3405C\n:102C1000054C22681343236062B6F0E7C0F9FF1F3A\n:102C2000D2000020C800002024FEFF1F70B5114C08\n:102C30002368002B0CD020684388C218157A0288BC\n:102C400001339A4213D8FFF7C9FF0023236005E040\n:102C5000094B1B78002B03D101256D42280070BD64\n:102C60000320FFF76DFB20600028E4D1F4E74380E8\n:102C7000F4E7C046D4000020C800002010B50C4C7A\n:102C80002368002B05D02368002B0DD10120404282\n:102C900010BD084B1B78002BF8D00320FFF750FB2A\n:102CA00020600028EFD1F1E75A889B18187AEFE7E7\n:102CB000D4000020C800002010B5084B9C88084BA9\n:102CC0001A68002A03D0138852889B1AE418002C33\n:102CD00001D100F081F9200010BDC046CA000020DB\n:102CE000D40000200023F7B50D0001900093002DC3\n:102CF00001D10098FEBD1B4B1B78002BF9D01A4F59\n:102D00003B68002B0BD10320FFF71AFB386000282B\n:102D1000EFD00388002B02D1FFF760FFF3E73E6896\n:102D200073883488E41AAC4200D92C003100083191\n:102D30002200C918019800F00FFD019B32881B1971\n:102D40000193009B2D1B1B19009373881B199BB2C9\n:102D500073809A42CBD83000FFF740FF00233B60DE\n:102D6000C5E7C046C8000020D400002010B50A4BBB\n:102D70001B78002B0FD0094C2068002803D0FFF7E8\n:102D80002DFF002323600320FFF7DAFA002802D08A\n:102D9000FFF724FFF7E710BDC8000020D400002093\n:102DA0000123F7B50C002D4D009001912B70002CE4\n:102DB00002D101982C700CE0294E3368002B23D1EE\n:102DC000284F294B1B78DAB2002B03D12A7001203F\n:102DD0004042FEBD0420FFF7CDFA072807D80123A3\n:102DE0002B70FFF7DBFE306000280DD12870013F0B\n:102DF0001E4B002F02D01A78002A02D001221A702E\n:102E0000E5E700F0E9F8DCE70022184B31681A70BA\n:102E100040234A889B1AA34200D9230008000830A7\n:102E20008018D2184A800022E41A934210D1009AE6\n:102E3000D31800934B883F2B06D9402304200B80E6\n:102E4000FFF7E4FA002333600522094B1A70AEE75E\n:102E5000009FBF5C87540132E7E7C046D9000020DD\n:102E6000DC00002009750000C8000020D800002008\n:102E7000F000002007B56B46D87107330121180018\n:102E8000FFF78EFF0EBDFFFF012370B50E4C0F4DF7\n:102E900023702B68002B10D10D4B1B78002B02D117\n:102EA0000020207070BD0420FFF764FA0728F7D8CF\n:102EB000FFF774FE28600028F2D040202B685B8862\n:102EC000C01A00232370EDE7D9000020DC000020A9\n:102ED000C8000020F7B5124B1B78002B14D0012638\n:102EE000104F114B3C68114D01931E70002C0CD0FB\n:102EF00000262E706388210004202380FFF786FAC5\n:102F00003E600023019A1370F7BDFFF747FE011ED4\n:102F100004D004202C70FFF779FAF2E72E70F0E766\n:102F2000C8000020DC000020D9000020F0000020B4\n:102F300070B50E4B1B78DDB2002B09D10C4C21680B\n:102F4000002906D04B8804200B80FFF75FFA25602C\n:102F500070BDFFF723FE011E03D00420FFF756FAD1\n:102F6000F6E70122034B1A70F2E7C046D9000020B1\n:102F7000DC000020F0000020144970B50B68002B25\n:102F80000CD0EFF30583002B08D1EFF3108272B65B\n:102F90000868002803D1002A00D162B670BD0C4C2D\n:102FA0002578002DF7D10123237043690B60002B96\n:102FB00009D09D61002A00D162B60025836845775B\n:102FC00098472570EAE703490B60F3E7F400002017\n:102FD0000001002004010020F8B51B4D2A78002ACA\n:102FE0001FD01A4E3478002C1BD1012333701A42A3\n:102FF0000DD0FFF761FE002801D000F0C3F8144A9D\n:103000002B781278002A02D0012293432B702B7860\n:103010009B0714D4002333702B785B0701D5FFF78F\n:10302000ABFFF8BD0B4BA200D7583B6838001B69BB\n:103030009847002801D03B6998470134E4B2064B19\n:103040001B78A342EED8E5E728FEFF1FF100002021\n:10305000703A0000080100201401002010B5EFF3C1\n:10306000108172B60B4B186800280FD042691A60A5\n:1030700000239A4207D09361002900D162B64377BA\n:1030800083689847EBE7044A1360F5E7002900D10D\n:1030900062B610BDFC000020F800002010B5FFF75C\n:1030A000DDFF10BD024A1368013313607047C0464C\n:1030B00044FFFF1F0C4970B500220D000B4C237814\n:1030C000934209D15A1C9B00E85002232270084AFF\n:1030D00011780B43137070BD04310E1F36688642A1\n:1030E000F9D00132D2B2EBE7080100201401002030\n:1030F00028FEFF1F1B4B1C4A19781C4B082915D1B1\n:103100000021116013221A60194B1A78194B002AFA\n:1031100018D000221A60184B1A78184B012A13D8BD\n:1031200080221A600122164B1A7070470A2901D1B9\n:103130002E31E6E70C2903D1283111601222E2E793\n:103140003C21FAE70122E5E7042A01D88422E8E7D6\n:10315000082A01D88522E4E7102A01D88622E0E770\n:103160008722DEE729FEFF1F08B003400CB00340B2\n:103170001501002020B003402AFEFF1F24B00340A9\n:10318000160100207047FFFF1FB572B67023412162\n:10319000144A1370144B1970144B32391970802370\n:1031A000137013785BB2002BFBDA114B186862B610\n:1031B000104B984201D80A23584301AC0A2221003F\n:1031C000FEF73CFB00220C49A05C130001320028F2\n:1031D00004D05300C8520A2AF6D1130001335B0011\n:1031E0000B701FBD000002400700024006000240B5\n:1031F000080002407F969800B2FEFF1F02B471469D\n:1032000049084900095649008E4402BC7047C0462F\n:1032100002B4714649084900095C49008E4402BC69\n:103220007047C046002243088B4274D303098B4287\n:103230005FD3030A8B4244D3030B8B4228D3030C86\n:103240008B420DD3FF22090212BA030C8B4202D328\n:103250001212090265D0030B8B4219D300E0090A50\n:10326000C30B8B4201D3CB03C01A5241830B8B4259\n:1032700001D38B03C01A5241430B8B4201D34B0342\n:10328000C01A5241030B8B4201D30B03C01A5241A7\n:10329000C30A8B4201D3CB02C01A5241830A8B422C\n:1032A00001D38B02C01A5241430A8B4201D34B0215\n:1032B000C01A5241030A8B4201D30B02C01A524179\n:1032C000CDD2C3098B4201D3CB01C01A524183092D\n:1032D0008B4201D38B01C01A524143098B4201D367\n:1032E0004B01C01A524103098B4201D30B01C01A92\n:1032F0005241C3088B4201D3CB00C01A524183080C\n:103300008B4201D38B00C01A524143088B4201D338\n:103310004B00C01A5241411A00D201465241104698\n:103320007047FFE701B5002000F0F0F802BDC0468D\n:103330000029F7D076E7704703460B437FD400227D\n:1033400043088B4274D303098B425FD3030A8B4239\n:1033500044D3030B8B4228D3030C8B420DD3FF22A3\n:10336000090212BA030C8B4202D31212090265D071\n:10337000030B8B4219D300E0090AC30B8B4201D324\n:10338000CB03C01A5241830B8B4201D38B03C01A6B\n:103390005241430B8B4201D34B03C01A5241030BE2\n:1033A0008B4201D30B03C01A5241C30A8B4201D393\n:1033B000CB02C01A5241830A8B4201D38B02C01A3E\n:1033C0005241430A8B4201D34B02C01A5241030AB5\n:1033D0008B4201D30B02C01A5241CDD2C3098B429A\n:1033E00001D3CB01C01A524183098B4201D38B0117\n:1033F000C01A524143098B4201D34B01C01A5241BA\n:1034000003098B4201D30B01C01A5241C3088B42FE\n:1034100001D3CB00C01A524183088B4201D38B00E9\n:10342000C01A524143088B4201D34B00C01A52418B\n:10343000411A00D201465241104670475DE0CA0F62\n:1034400000D04942031000D34042534000229C4622\n:1034500003098B422DD3030A8B4212D3FC2289012C\n:1034600012BA030A8B420CD3890192118B4208D302\n:10347000890192118B4204D389013AD0921100E064\n:103480008909C3098B4201D3CB01C01A5241830978\n:103490008B4201D38B01C01A524143098B4201D3A5\n:1034A0004B01C01A524103098B4201D30B01C01AD0\n:1034B0005241C3088B4201D3CB00C01A524183084A\n:1034C0008B4201D38B00C01A5241D9D243088B42A0\n:1034D00001D34B00C01A5241411A00D20146634643\n:1034E00052415B10104601D34042002B00D54942A7\n:1034F000704763465B1000D3404201B5002000F0E6\n:1035000005F802BD0029F8D016E770477047C0469D\n:103510001C2101231B04984201D3000C10391B0A03\n:10352000984201D3000A08391B09984201D30009C7\n:10353000043902A2105C40187047C046040302021E\n:1035400001010101000000000000000010B5034B64\n:103550000100186800F030F810BDC04614FFFF1FCE\n:1035600010B5034B0100186800F006F910BDC04605\n:1035700014FFFF1F70B50F4E0D00316804000029C5\n:1035800002D100F0ABF830602900200000F0A6F86E\n:10359000431C0AD00323C51C9D43A84207D0291A07\n:1035A000200000F09BF8013001D101256D42280078\n:1035B00070BDC0461C010020F7B50322CB1C93430D\n:1035C000083306001F000C2B34D20C27B94233D825\n:1035D000300000F06BF8344D2B681C00002C30D10B\n:1035E00039003000FFF7C6FF0400431C59D12C6896\n:1035F0002500002D4CD1002C4DD023682900E31864\n:103600003000019300F06AF8019B834243D12368A4\n:103610000337FF1A03239F4308370C2F00D20C27D0\n:1036200039003000FFF7A6FF013034D02368DB19E2\n:10363000236013E0002BC9DA0C2300253360280037\n:10364000FEBD2168C91B20D40B2917D9E2192760B8\n:10365000A34211D12A6063681160536030002500D5\n:1036600000F02CF807220B35231D9543EA1A9D42E2\n:10367000E5D05B1BA350E2E75A60ECE76268A34227\n:1036800001D12A60EAE75A60E8E723006468A5E709\n:103690002C006D68ADE70C233000336000F00EF8AD\n:1036A000CDE72760DAE7C0461801002010B50248D0\n:1036B00000F050F810BDC0465C02002010B5024872\n:1036C00000F049F810BDC0465C02002003008218DB\n:1036D000934200D1704719700133F9E7002370B5A8\n:1036E000064D040008002B60FEF762F8431C03D16E\n:1036F0002B68002B00D0236070BDC046580200200C\n:10370000014B18687047C04614FFFF1F70B50026B4\n:103710000C4C0D4D641BA410A64209D1002600F0EC\n:10372000D5F90A4C0A4D641BA410A64205D170BD00\n:10373000B300EB5898470136EEE7B300EB589847D3\n:103740000136F2E7D83A0000D83A0000DC3A00002F\n:10375000D83A000070477047002310B59A4200D154\n:1037600010BDCC5CC4540133F8E70023C25C0133C4\n:10377000002AFBD1581E704770B50500002910D0F3\n:103780000C1F2368002B00DAE4182800FFF78EFFD7\n:103790001D4A1368002B05D1636014602800FFF7F1\n:1037A0008DFF70BDA34208D9206821188B42F3D148\n:1037B00019685B6809182160EEE71A005B68002B46\n:1037C00001D0A342F9D911685018A0420BD120684A\n:1037D0000918501811608342E0D118685B684118DD\n:1037E00011605360DAE7A04202D90C232B60D5E7C1\n:1037F000206821188B4203D119685B680918216081\n:1038000063605460CAE7C046180100207701080FC2\n:1038100001010077E2FE0F01030077E2FE0F0108CD\n:103820000077E2FE0F01090077E2FE0F0104006558\n:1038300000000000006900000000007700FC0F019C\n:10384000010077E2FE0F0100007703080F0100007E\n:103850007704080F0200FC000000007700080F0842\n:10386000000000000004007700080F0803000000BB\n:1038700000FC0200007700080F08040000000000B0\n:103880000100007700FC0F00007700FD0F00000032\n:1038900000FC000200750000000000FF00000000B6\n:1038A0000000000091150000B51500006D16000025\n:1038B000651600005D160000551600004D1600004C\n:1038C000591500002D160000251600001B160000DB\n:1038D0001116000005160000F5150000E5150000A2\n:1038E000DD150000D1150000C515000035150000DC\n:1038F000411500004D150000E90400009D15000071\n:1039000085150000420000F840A0044001000000BE\n:10391000420000F844A0044002000000C00000F88B\n:1039200000C0044001000000000000F804900440C2\n:1039300002000000000000F80890044004000000AD\n:10394000C00000F81CC0044080000000C00000F867\n:1039500010C0044010000000C00000F808C004407F\n:1039600004000000C00000F80CC004400800000083\n:10397000800000F80CB0044008000000800000F84F\n:1039800010B0044010000000800000F818B004409F\n:1039900040000000800000F81CB0044080000000DF\n:1039A000800000F814B0044020000000C00000F8BF\n:1039B00004C0044002000000800000F800B0044091\n:1039C00001000000400000F800A0044001000000D9\n:1039D000400000F804A0044002000000400000F88D\n:1039E0000CA0044008000000400000F808A00440BB\n:1039F00004000000C00000F814C0044020000000D3\n:103A0000C00000F818C0044040000000800000F82A\n:103A100004B0044002000000800000F808B0044038\n:103A200004000000020100F850D004401000000023\n:103A3000020100F854D0044020000000030100F807\n:103A400078D00440400000000000000000000000AA\n:103A5000912B0000852B00007D2B0000752B0000B2\n:103A60006D2B0000652B00005D2B0000552B000026\n:103A700000FFFFFF000100006EFEFF1F12000000AC\n:103A8000000200002BFEFF1F4300000000030000A7\n:103A900080FEFF1F000000000103090484FEFF1FD9\n:103AA00000000000020309049CFEFF1F000000004C\n:103AB00003030904B2FEFF1F000000000000000025\n:103AC000000000000000000000151915F8B5C04600\n:0C3AD000F8BC08BC9E467047390400009A\n:043ADC00F8B5C04633\n:103AE000E00704EC00FB0F00FBC013BFE607C0BFFC\n:103AF000EC07C0BFEE07CFEB07ECF5EA07FCB2FF1F\n:103B00000E72FCB2FF0E76FCB2FF0E77FCB2FF0E17\n:103B10009EFDFCB2FF0E73624C69DD6D4C77DD1DBE\n:103B20004C72DD294C65DD324C75DD62FCA1FF0E67\n:103B3000D5EA07DFC8AFE60712ECEB070FFCB2FFD0\n:103B40000E119BA793DFF6FE4C00EEE3FF118BFCFA\n:103B5000A1FF0EA793DFF6EED6FF61FFFCF8FF0E84\n:103B60008F02084C0FDD0B624CFFDF11FCC4080F05\n:103B7000EFF5624CFFDF06FC04F00EEFF5C361CFFA\n:103B8000C262FCA1FF0EEEA7FFE5EA07EF03E5EA3C\n:103B900007FE0200EF9A5100FCA1FF0ED7FFFFFFC6\n:103BA000FFFFFFFFFFFFFFFFFFFF0000A438000043\n:103BB00000000000E80300000000000001230000F6\n:103BC000600200201A0000004000000040000000D9\n:103BD00001010000503A000000000000E80300006E\n:103BE00000000000FFFFFFFF010A0409024300027A\n:103BF0000100C03209040000010202010005240096\n:103C00001001052401010104240206052406000117\n:103C10000705820310004009040100020A000000A9\n:103C2000070503024000000705840240000012015E\n:103C3000100102000040C016830473020102030158\n:103C40000403090418035400650065006E00730046\n:103C500079006400750069006E006F00160355005E\n:103C600053004200200053006500720069006100AB\n:103C70006C000C03000000000000000000000000C9\n:103C800000000000000000000000000020010020F3\n:103C900088010020F001002000000000000000006A\n:103CA0000000000000000000000000000000000014\n:103CB0000000000000000000000000000000000004\n:103CC00000000000000000000000000000000000F4\n:083CD00000000000C8FEFF1F08\n:00000001FF\n"
  },
  {
    "path": "assets/hw/syscon_reader/syscon_reader.hex",
    "content": ":100000000C945D000C9485000C9485000C94850084\n:100010000C9485000C9485000C9485000C9485004C\n:100020000C9485000C9485000C9485000C9485003C\n:100030000C9485000C9485000C9485000C9485002C\n:100040000C9414030C9485000C94E2020C94BC02F2\n:100050000C9485000C9485000C9485000C9485000C\n:100060000C9485000C9485000000000024002700FB\n:100070002A0000000000250028002B0004040404CE\n:100080000404040402020202020203030303030342\n:10009000010204081020408001020408102001021F\n:1000A00004081020000000080002010000030407FB\n:1000B00000000000000000005F0511241FBECFEF0C\n:1000C000D8E0DEBFCDBF11E0A0E0B1E0E6E3FDE0A7\n:1000D00002C005900D92A034B107D9F721E0A0E449\n:1000E000B1E001C01D92A83EB207E1F710E0CDE5F6\n:1000F000D0E004C02197FE010E949306CC35D107C1\n:10010000C9F70E945E030C9499060C940000EBE47E\n:10011000F1E0A089B18982E08C93A485B5851C9219\n:10012000A685B78580E18C93108EA489B58986E079\n:100130008C93A289B3898C9180618C93A289B389B5\n:100140008C9188608C93A289B3898C9180688C9300\n:100150000288F389E02D80818F7D80830895AF929E\n:10016000BF92CF92DF92EF92FF920F931F93CF93A4\n:10017000DF936C017B018B01040F151FEB015E0106\n:10018000AE18BF08C017D10759F06991D601ED919B\n:10019000FC910190F081E02DC6010995892B79F73A\n:1001A000C501DF91CF911F910F91FF90EF90DF90EC\n:1001B000CF90BF90AF900895FC01538D448D252FB3\n:1001C00030E0842F90E0821B930B541710F0CF96F1\n:1001D000089501970895FC01918D828D981761F023\n:1001E000A28DAE0FBF2FB11D5D968C91928D9F5F3A\n:1001F0009F73928F90E008958FEF9FEF0895FC0119\n:10020000918D828D981731F0828DE80FF11D858DCB\n:1002100090E008958FEF9FEF0895FC01918D228D5E\n:10022000892F90E0805C9F4F821B91098F739927E3\n:1002300008958BE491E00E940D0121E0892B09F4DF\n:1002400020E0822F089580E090E0892B29F00E9421\n:10025000190181110C9400000895FC01A48DA80FD0\n:10026000B92FB11DA35ABF4F2C91848D90E00196F8\n:100270008F739927848FA689B7892C93A089B18918\n:100280008C91837080648C93938D848D981306C0B9\n:100290000288F389E02D80818F7D80830895EF921D\n:1002A000FF920F931F93CF93DF93EC0181E0888F30\n:1002B0009B8D8C8D98131AC0E889F989808185FF00\n:1002C00015C09FB7F894EE89FF896083E889F989A2\n:1002D00080818370806480839FBF81E090E0DF91A4\n:1002E000CF911F910F91FF90EF900895F62E0B8DF7\n:1002F00010E00F5F1F4F0F731127E02E8C8D8E11B2\n:100300000CC00FB607FCFACFE889F989808185FF18\n:10031000F5CFCE010E942D01F1CFEB8DEC0FFD2F1B\n:10032000F11DE35AFF4FF0829FB7F8940B8FEA89D3\n:10033000FB8980818062CFCFCF93DF93EC01888DE2\n:100340008823B9F0AA89BB89E889F9898C9185FD50\n:1003500003C0808186FD0DC00FB607FCF7CF8C91DE\n:1003600085FFF2CF808185FFEDCFCE010E942D0168\n:10037000E9CFDF91CF9108958BE491E00E949C0139\n:10038000EBE4F1E0A289B3898C918F7E8C93A289F2\n:10039000B3898C91877F8C93A289B3898C918F7755\n:1003A0008C93A289B3898C918F7D8C93828D818F60\n:1003B000089590E0FC01EC55FF4F2491FC01E057BB\n:1003C000FF4F3491FC01E458FF4FE491EE23C9F054\n:1003D000222339F0233001F1A8F4213019F1223021\n:1003E00029F1F0E0EE0FFF1FEE58FF4FA591B491F9\n:1003F0008FB7F894EC91611126C030953E233C9361\n:100400008FBF08952730A9F02830C9F0243049F76C\n:10041000809180008F7D03C0809180008F778093D2\n:100420008000DFCF84B58F7784BDDBCF84B58F7D2F\n:10043000FBCF8091B0008F778093B000D2CF8091B6\n:10044000B0008F7DF9CF3E2BDACFCF93DF9390E0D2\n:10045000FC01E057FF4F249184589F4FFC01849189\n:100460008823D1F090E0880F991FFC01E859FF4FD5\n:10047000A591B491FC01EE58FF4FC591D491611143\n:100480000EC09FB7F8948C91E22FE0958E238C9349\n:100490002881E223E8839FBFDF91CF9108958FB732\n:1004A000F894EC91E22BEC938FBFF6CF3FB7F89422\n:1004B0008091410190914201A0914301B09144018A\n:1004C00026B5A89B05C02F3F19F00196A11DB11DAF\n:1004D0003FBFBA2FA92F982F8827BC01CD01620FEB\n:1004E000711D811D911D42E0660F771F881F991FA6\n:1004F0004A95D1F708958F929F92AF92BF92CF9273\n:10050000DF92EF92FF924B015C010E9456026B0159\n:100510007C010E9456026C197D098E099F09683E74\n:10052000734081059105A8F321E0821A9108A10882\n:10053000B10888EEC80E83E0D81EE11CF11C8114BE\n:100540009104A104B10429F7FF90EF90DF90CF90C0\n:10055000BF90AF909F908F90089590914A01980F0F\n:1005600090934A01682F8BE491E00E944F018BE841\n:1005700091E00197F1F708951F920F920FB60F9235\n:1005800011242F933F934F935F936F937F938F9398\n:100590009F93AF93BF93EF93FF938BE491E00E94FF\n:1005A0002D01FF91EF91BF91AF919F918F917F911D\n:1005B0006F915F914F913F912F910F900FBE0F90D0\n:1005C0001F9018951F920F920FB60F9211242F9320\n:1005D0008F939F93EF93FF93E0915B01F0915C0108\n:1005E0008081E0916101F091620182FD1BC09081E8\n:1005F000809164018F5F8F7320916501821741F0B4\n:10060000E0916401F0E0E55BFE4F958F809364011B\n:10061000FF91EF919F918F912F910F900FBE0F90AF\n:100620001F9018958081F4CF1F920F920FB60F92F2\n:1006300011242F933F938F939F93AF93BF938091F8\n:10064000450190914601A0914701B0914801309138\n:10065000400123E0230F2D3758F50196A11DB11D50\n:10066000209340018093450190934601A093470158\n:10067000B09348018091410190914201A0914301C2\n:10068000B09144010196A11DB11D80934101909349\n:100690004201A0934301B0934401BF91AF919F9158\n:1006A0008F913F912F910F900FBE0F901F90189533\n:1006B00026E8230F0296A11DB11DD2CFCF93DF9361\n:1006C00000D000D000D01F92CDB7DEB7789484B5AB\n:1006D000826084BD84B5816084BD85B5826085BD3E\n:1006E00085B5816085BD80916E00816080936E00CC\n:1006F00010928100809181008260809381008091BE\n:10070000810081608093810080918000816080936E\n:1007100080008091B10084608093B1008091B0002E\n:1007200081608093B00080917A00846080937A0029\n:1007300080917A00826080937A0080917A00816053\n:1007400080937A0080917A00806880937A0010927A\n:10075000C1000E94870061E08DE00E94250261E0F7\n:1007600082E00E94250261E084E00E94250261E0AF\n:1007700081E00E94250260E080E00E94250260E0A6\n:1007800082E00E94D90160E081E00E94D90160E02E\n:1007900080E00E94D90161E084E00E94D901CE018D\n:1007A00001969F838E8344E6442E512C612C712C3C\n:1007B0001E0196E0290E311CEE81FF8125E0119289\n:1007C0002A95E9F70E94D80520E737E140E050E09C\n:1007D0000E9430066B017C01E0EDCE0EE7E0DE1EEC\n:1007E000E11CF11C0E94D80527E030E040E050E019\n:1007F0000E9430064B015C01FFEF8F1A9F0AAF0A7F\n:10080000BF0A60E082E00E94D9018BE990E0019785\n:10081000F1F70E94BC0165E070E080E090E00E948A\n:100820007B0261E082E00E94D90165E070E080E037\n:1008300090E00E947B020E94870040924F015092FC\n:100840005001609251017092520161E070E080E0CD\n:1008500090E00E947B0285EC0E94AD0281E00E9444\n:10086000AD0210924A0183E00E94AD028AE90E9423\n:10087000AD0280E00E94AD0284E10E94AD02809151\n:100880004A01819580934A010E94AD028BE491E078\n:100890000E940D01181619062CF48BE491E00E94B9\n:1008A000EB00F4CF83E00E94AD028BE491E00E9464\n:1008B000EB008E010F5F1F4F2FB7F8948091450119\n:1008C00090914601A0914701B09148012FBF8093BC\n:1008D000530190935401A0935501B09356018BE4BA\n:1008E00091E00E94EB0097FFE2C02FB7F89480914F\n:1008F000450190914601A0914701B09148012FBF59\n:1009000040915301509154016091550170915601ED\n:10091000841B950BA60BB70B40914F0150915001D2\n:10092000609151017091520184179507A607B7078E\n:10093000B0F28B81863009F454C08031A1F08EEE84\n:100940000E94AD0201E010914901612F8DE00E94EB\n:10095000D90110271093490164EF71E080E090E025\n:100960000E947B02F0CF22E0C216D10440F0C60103\n:10097000880F991F880F991F05970197F1F75C98C9\n:1009800082E08816910440F0C401880F991F880FF7\n:10099000991F05970197F1F75C9A8BE491E00E940B\n:1009A0000D01181619062CF48BE491E00E94EB005F\n:1009B000F4CF08EE13E00150110909F4FDCE8BE4E9\n:1009C00091E00E940D01181619062CF08FE090E0BE\n:1009D0000197F1F7F0CF8BE491E00E94EB008230B9\n:1009E000A9F765E070E080E090E00E947B0281E979\n:1009F0000E94AD0261E070E080E090E00E947B0226\n:100A000010924A018AE30E94AD028EE40E94AD0278\n:100A10008FE60E94AD0284E70E94AD028AE30E9445\n:100A2000AD0285E50E94AD0283E70E94AD0285E636\n:100A30000E94AD0284E60E94AD028AE30E94AD02EC\n:100A400080914A01815080934A010E94AD0261E089\n:100A500070E080E090E00E947B0283E90E94AD029A\n:100A600061E070E080E090E00E947B0206E111E02E\n:100A70008FE3E82E81E0F82EE016F10631F0F80160\n:100A800081918F010E94AD02F7CF61E070E080E0BC\n:100A900090E00E947B0264E98BE491E00E944F01A8\n:100AA00060E081E00E9425020E94BC014BCFF8016A\n:100AB00081938F012E163F0609F0FECE3ACFEBE46C\n:100AC000F1E01382128288EE93E0A0E0B0E084832C\n:100AD0009583A683B78388E091E09183808385EC3A\n:100AE00090E09587848784EC90E09787868780ECF8\n:100AF00090E0918B808B81EC90E0938B828B82ECE9\n:100B000090E0958B848B86EC90E0978B868B118E92\n:100B1000128E138E148E08958F929F92AF92BF9271\n:100B2000CF92DF92EF92FF92CF93DF93EC01688137\n:100B300079818A819B81611571058105910521F477\n:100B400064E279ED8BE597E02DE133EF41E050E091\n:100B50000E94300649015A019B01AC01A7EAB1E4A9\n:100B60000E944F066B017C01ACEEB4EFA50194012D\n:100B70000E945D06C60ED71EE81EF91EF7FE06C0CF\n:100B800081E0C81AD108E10880E8F80AC882D98251\n:100B9000EA82FB82C701B6019F77DF91CF91FF9078\n:100BA000EF90DF90CF90BF90AF909F908F9008957F\n:100BB0008F929F92AF92BF92CF92DF92EF92FF926D\n:100BC00060910001709101018091020190910301F7\n:100BD000611571058105910521F464E279ED8BE5DC\n:100BE00097E02DE133EF41E050E00E9430064901EB\n:100BF0005A019B01AC01A7EAB1E40E944F066B01C8\n:100C00007C01ACEEB4EFA50194010E945D06C60E16\n:100C1000D71EE81EF91EF7FE06C081E0C81AD108EB\n:100C2000E10880E8F80AC0920001D0920101E09248\n:100C30000201F0920301C701B6019F77FF90EF9088\n:100C4000DF90CF90BF90AF909F908F90089560936A\n:100C500000017093010180930201909303010895B4\n:100C6000052E97FB1EF400940E94470657FD07D0FF\n:100C70000E94620607FC03D04EF40C944706509580\n:100C80004095309521953F4F4F4F5F4F0895909578\n:100C90008095709561957F4F8F4F9F4F08950E946B\n:100CA0008406A59F900DB49F900DA49F800D911D6B\n:100CB00011240895B7FF0C944F060E944F06821B23\n:100CC000930B0895A1E21A2EAA1BBB1BFD010DC0B8\n:100CD000AA1FBB1FEE1FFF1FA217B307E407F507EC\n:100CE00020F0A21BB30BE40BF50B661F771F881FC8\n:100CF000991F1A9469F760957095809590959B015E\n:100D0000AC01BD01CF010895A29FB001B39FC00106\n:100D1000A39F700D811D1124911DB29F700D811D27\n:100D20001124911D0895EE0FFF1F0590F491E02D01\n:060D30000994F894FFCFC6\n:100D360001000000000000004F01AF00DC009C0134\n:100D46000D01EB00FF00E007264100340000001112\n:100D560089FCA1FF0EA515440000DFF3EF04550042\n:100D660000008EFD815C0F9EFD71009000EFE0009B\n:107800000C94343C0C94513C0C94513C0C94513CE1\n:107810000C94513C0C94513C0C94513C0C94513CB4\n:107820000C94513C0C94513C0C94513C0C94513CA4\n:107830000C94513C0C94513C0C94513C0C94513C94\n:107840000C94513C0C94513C0C94513C0C94513C84\n:107850000C94513C0C94513C0C94513C0C94513C74\n:107860000C94513C0C94513C11241FBECFEFD8E036\n:10787000DEBFCDBF11E0A0E0B1E0ECE9FFE702C060\n:1078800005900D92A230B107D9F712E0A2E0B1E065\n:1078900001C01D92AD30B107E1F70E942D3D0C945F\n:1078A000CC3F0C94003C982F959595959595959582\n:1078B000905D8F708A307CF0282F295A8091C0000B\n:1078C00085FFFCCF9093C6008091C00085FFFCCF60\n:1078D0002093C6000895282F205DF0CF982F809127\n:1078E000C00085FFFCCF9093C6000895EF92FF92F1\n:1078F0000F931F93EE24FF2487018091C00087FD22\n:1079000017C00894E11CF11C011D111D81E4E8164B\n:1079100082E4F8068FE0080780E0180770F3E09132\n:107920000401F091050109958091C00087FFE9CF1E\n:107930008091C6001F910F91FF90EF9008950E94D3\n:10794000763C982F8091C00085FFFCCF9093C600B5\n:1079500091362CF490330CF09053892F089597555D\n:10796000892F08951F930E949F3C182F0E949F3CCF\n:107970001295107F810F1F9108951F93182F882350\n:1079800021F00E94763C1150E1F71F9108951F935A\n:10799000182F0E94763C803249F0809103018F5F5E\n:1079A000809303018530C1F01F9108958091C0003C\n:1079B00085FFFCCF84E18093C6008091C00085FFE5\n:1079C000FCCF1093C6008091C00085FFFCCF80E102\n:1079D0008093C6001F910895E0910401F091050184\n:1079E00009951F9108950E94763C803241F0809164\n:1079F00003018F5F80930301853081F008958091AA\n:107A0000C00085FFFCCF84E18093C6008091C00058\n:107A100085FFFCCF80E18093C6000895E0910401CA\n:107A2000F09105010995089540E951E08823A1F0FE\n:107A30002D9A28EE33E0FA013197F1F721503040CA\n:107A4000D1F72D9828EE33E0FA013197F1F7215064\n:107A50003040D1F7815061F708953F924F925F9285\n:107A60006F927F928F929F92AF92BF92CF92DF924E\n:107A7000EF92FF920F931F93CF93DF93000080E16B\n:107A80008093C4001092C50088E18093C10086E015\n:107A90008093C2005098589A259A81E00E94143D24\n:107AA00024E1F22E9EE1E92E85E9D82E0FE0C02ECA\n:107AB00010E1B12EAA24A394B1E49B2EA6E58A2E50\n:107AC000F2E57F2EE0E26E2E79E4572E63E5462E36\n:107AD00050E5352E0E94763C8033B1F18133B9F107\n:107AE000803409F46FC0813409F476C0823409F41B\n:107AF00085C0853409F488C0803531F1823521F1A3\n:107B0000813511F1853509F485C0863509F48DC0BC\n:107B1000843609F496C0843709F403C1853709F423\n:107B200072C1863709F466C0809103018F5F80932C\n:107B30000301853079F6E0910401F0910501099582\n:107B40000E94763C803351F60E94F33CC3CF0E94E2\n:107B5000763C803249F78091C00085FFFCCFF092DF\n:107B6000C6008091C00085FFFCCF9092C600809136\n:107B7000C00085FFFCCF8092C6008091C00085FFC9\n:107B8000FCCF7092C6008091C00085FFFCCF609250\n:107B9000C6008091C00085FFFCCF5092C600809146\n:107BA000C00085FFFCCF4092C6008091C00085FFD9\n:107BB000FCCF3092C6008091C00085FFFCCFB09210\n:107BC000C60088CF0E94763C863808F4BDCF0E945C\n:107BD000763C0E94F33C7ECF0E94763C803809F4CC\n:107BE0009CC0813809F40BC1823809F43CC1883942\n:107BF00009F48FC080E00E94C73C6CCF84E10E94F2\n:107C0000BD3C0E94F33C66CF85E00E94BD3C0E94D3\n:107C1000F33C60CF0E94763C809306010E94763C44\n:107C2000809307010E94F33C55CF0E94763C80333D\n:107C300009F41DC183E00E94BD3C80E00E94C73C66\n:107C400049CF0E94763C809309020E94763C809343\n:107C5000080280910C028E7F80930C020E94763C79\n:107C6000853409F415C18091080290910902892B8D\n:107C700089F000E010E00E94763CF801E85FFE4FDA\n:107C800080830F5F1F4F80910802909109020817AF\n:107C9000190788F30E94763C803209F045CF809125\n:107CA0000C0280FF01C16091060170910701660F0F\n:107CB000771F7093070160930601A0910802B091AD\n:107CC00009021097C9F0E8E0F1E09B01AD014E0F09\n:107CD0005F1FF999FECF32BD21BD819180BDFA9A17\n:107CE000F99A2F5F3F4FE417F50799F76A0F7B1F4B\n:107CF00070930701609306018091C00085FFFCCF5F\n:107D0000F092C6008091C00085FFFCCFB092C60003\n:107D1000E1CE83E00E94C73CDDCE82E00E94C73CFA\n:107D2000D9CE0E94763C809309020E94763C8093D3\n:107D300008028091060190910701880F991F909386\n:107D40000701809306010E94763C853409F4A6C0A1\n:107D500080910C028E7F80930C020E94763C8032D0\n:107D600009F0B8CE8091C00085FFFCCFF092C6002C\n:107D7000609108027091090261157105B9F140E046\n:107D800050E080910C02A82FA170B82FB27011C0E2\n:107D9000BB2309F45CC0E0910601F0910701319624\n:107DA000F0930701E09306014F5F5F4F46175707B7\n:107DB000E8F4AA2369F3F999FECF209106013091E6\n:107DC000070132BD21BDF89A90B58091C00085FFB2\n:107DD000FCCF9093C6002F5F3F4F30930701209355\n:107DE00006014F5F5F4F4617570718F38091C00099\n:107DF00085FDE5CE8091C00085FFF8CFE0CE81E023\n:107E00000E94C73C67CE0E94763C803209F08CCE3F\n:107E10008091C00085FFFCCFF092C6008091C00029\n:107E200085FFFCCFE092C6008091C00085FFFCCFAB\n:107E3000D092C6008091C00085FFFCCFC092C600E2\n:107E40008091C00085FFFCCFB092C60043CEE09188\n:107E50000601F091070194918091C00085FFFCCF4D\n:107E60009093C6009CCF80E10E94C73C33CE0E9415\n:107E7000763C0E94763C182F0E94763C112309F430\n:107E800083C0113009F484C08FE00E94C73C22CE29\n:107E900080910C02816080930C02E5CE80910C02EF\n:107EA000816080930C0259CF809107018823880F4D\n:107EB000880B8A2180930B02809106019091070123\n:107EC000880F991F90930701809306018091080203\n:107ED00080FF09C080910802909109020196909359\n:107EE000090280930802F894F999FECF1127E091D6\n:107EF0000601F0910701C8E0D1E08091080290915D\n:107F00000902103091F40091570001700130D9F34B\n:107F100003E000935700E89500915700017001308D\n:107F2000D9F301E100935700E89509901990009169\n:107F3000570001700130D9F301E000935700E89534\n:107F40001395103498F011270091570001700130FB\n:107F5000D9F305E000935700E895009157000170B0\n:107F60000130D9F301E100935700E895329602976A\n:107F700009F0C7CF103011F00296E5CF112480919F\n:107F8000C00085FFB9CEBCCE8EE10E94C73CA2CD19\n:0C7F900085E90E94C73C9ECDF894FFCF0D\n:027F9C00800063\n:040000030000780081\n:00000001FF\n"
  },
  {
    "path": "assets/hw/syscon_reader/syscon_reader.ino",
    "content": "// Syscon glitcher (reader) by DarkNESmonk (https://t.me/darknesmonk)\n// For A0X-C0LX only (Renesas RL78/G13)\n\n#define ledPin          13      // LED\n\n#define reset_pin       2       // D2 \n#define glitch_pin      4       // D4 PIN = PORTD B11101111 ( faster method )\n#define VDD_OFF         PORTD = PORTD & B11101111\n#define VDD_ON          PORTD = PORTD | B00010000\n\n#define TX              1       // D1\n#define RX              0       // D0\n\n#define OCD_CONNECT_CMD 0x91\n#define OCD_READ_CMD    0x92\n#define OCD_WRITE_CMD   0x93\n#define OCD_EXEC_CMD    0x94\n#define BAUD_SET_CMD    0x9a\n\n#define SOH             1\n#define STX             2\n#define ETX             3\n\n#define CHKS 1\n#define CHKS_A 2\n#define CHKS_OCD 3\n#define FSL_ERR_PROTECTION   0x10\n\nstruct ST_FRAME {\n  byte stx;\n  byte LEN;\n  byte DATA1;\n  byte SUM;\n  byte etx;\n};\n\nuint8_t shellcode[] = {\n  0xe0, 0x07, 0x26,\n  0x41, 0x00, 0x34, 0x00, 0x00, 0x00, 0x11, 0x89, 0xFC, 0xA1, 0xFF, 0x0E, 0xA5, 0x15, 0x44,\n  0x00, 0x00, 0xDF, 0xF3, 0xEF, 0x04, 0x55, 0x00, 0x00, 0x00, 0x8E, 0xFD, 0x81, 0x5C, 0x0F,\n  0x9E, 0xFD, 0x71, 0x00, 0x90, 0x00, 0xEF, 0xE0\n};\n\nuint8_t csum = 0;\nbool ledState = 0;\n\nvoid w(char b)\n{\n  csum += b;\n  Serial.write(b);\n  delayMicroseconds(100);\n}\n\nchar gsum(char t)\n{\n  if (t == CHKS) csum = 0;\n  if (t == CHKS_A) { csum ^= 0xff; csum += 1; }\n  if (t == CHKS_OCD) csum -= 1;\n  return csum;\n}\n\nvoid setup(void)\n{\n  Serial.begin(115200);\n  pinMode(ledPin, OUTPUT);\n  pinMode(reset_pin, OUTPUT);\n  pinMode(glitch_pin, OUTPUT);\n  pinMode(TX, OUTPUT);\n  pinMode(RX, INPUT);\n  digitalWrite(reset_pin, LOW);\n  digitalWrite(TX, LOW);\n  digitalWrite(RX, LOW);\n  digitalWrite(glitch_pin, HIGH);\n}\n\nvoid loop(void)\n{\n\n  while (1)\n  {\n    int random_pos, random_delay;\n    ST_FRAME STF1 = {0};\n    \n    byte a;\n    random_pos = random(2000, 8000);\n    random_delay = random(1, 8);\n    \n    digitalWrite(reset_pin, LOW);\n    delayMicroseconds(40);\n    Serial.end();\n    delay(5);\n    \n    digitalWrite(reset_pin, HIGH);\n    delay(5);\n    \n    Serial.begin(115200);\n    Serial.setTimeout(100);\n    delay(1);\n    \n    w(0xc5);\n    w(SOH);\n    gsum(CHKS);\n    w(0x03);\n    w(BAUD_SET_CMD);\n    w(0x00);\n    w(0x14);\n    w(gsum(CHKS_A));\n    \n    while (Serial.available() > 0) Serial.read()\n    w(ETX);\n    \n    Serial.read();\n    Serial.readBytes((byte *)&STF1, sizeof(ST_FRAME));\n    \n    if (STF1.DATA1 != 0x06 && STF1.DATA1 != FSL_ERR_PROTECTION ) {\n      w(0xEE);\n      break;\n    }\n    \n    if (STF1.DATA1 == FSL_ERR_PROTECTION) {\n      \n      delayMicroseconds(random_pos);\n      VDD_OFF;\n      \n      delayMicroseconds(random_delay);\n      VDD_ON;\n      \n      int counter = 0;\n      \n      while (Serial.available() > 0) Serial.read()\n      \n      while ( ++counter < 1000)\n      {\n        if (Serial.available() > 0)\n        {\n          a = Serial.read();\n          if (a == STX) break; // wait STX response\n        }\n        delayMicroseconds(5);\n      }\n      if (counter >= 1000) {\n        continue;\n      }\n    }\n    delay(5);\n    w(OCD_CONNECT_CMD);\n    delay(1);\n\n    gsum(CHKS);\n    w(':');\n    w('N');\n    w('o');\n    w('t');\n    w(':');\n    w('U');\n    w('s');\n    w('e');\n    w('d');\n    w(':');\n    w(gsum(CHKS_OCD));\n\n    delay(1);\n    w(OCD_WRITE_CMD);\n    delay(1);\n\n    for (int s = 0; s < sizeof(shellcode); s++) w(shellcode[s]);\n\n    delay(1);\n\n    Serial.write(OCD_EXEC_CMD); // EXEC without delay\n    pinMode(TX, INPUT);\n    Serial.end();\n    break;\n  }\n\n  while (1)\n  {\n    digitalWrite(ledPin, ledState); // blinking LED :)\n    ledState ^= 1;\n    delay(500);\n  }\n}\n"
  },
  {
    "path": "config.ini",
    "content": "lang = en\n"
  },
  {
    "path": "data/data.py",
    "content": "EAP_KBL_MD5 = {\n'0dd462cc631623a09425f1efdd0d6524' : { 't':0x02, 'fw':['1.01', '1.05', '1.06', '1.07']},\n'8726bf12757e2895b0e818ee732dc2be' : { 't':0x02, 'fw':['1.50', '1.51', '1.52', '1.60', '1.61', '1.62']},\n'42720e601de7d9df8127f04041f76840' : { 't':0x0E, 'fw':['1.01', '1.05', '1.06', '1.07']},\n'4c50dec899196800cbec8542c6a13e51' : { 't':0x0E, 'fw':['1.50', '1.51', '1.52', '1.60', '1.61', '1.62']},\n'9a32fd540c6018eaab0517f4829b13f8' : { 't':0x0E, 'fw':['1.70', '1.71', '1.72', '1.74', '1.75', '1.76']},\n'dd57dae7d8869dc79d50a0c4e3eed538' : { 't':0x0E, 'fw':['2.00', '2.01', '2.02', '2.03', '2.04']},\n'6b7f4bcef4fb0330497161d24ff15fa0' : { 't':0x0E, 'fw':['2.50']},\n'455315c5918041a8dbe41585853a4ed2' : { 't':0x0E, 'fw':['2.51']},\n'af8a85132e74d2b617ef63cea123ba9f' : { 't':0x0E, 'fw':['2.55']},\n'5ce1f2759e1608057f7e17fc06fa8bee' : { 't':0x0E, 'fw':['2.57']},\n'44c7fe893accbeb93dab5193f4802280' : { 't':0x0E, 'fw':['3.00']},\n'048459908f7e45bbff70e2db2a97e58c' : { 't':0x0E, 'fw':['3.10']},\n'570c48b58c81245cd065fdd0bfb6e985' : { 't':0x0E, 'fw':['3.11']},\n'6dfb5917cfea365c6c89cf87072624ae' : { 't':0x0E, 'fw':['3.15']},\n'44dc35834eef914dcddb0a39a1a3dc70' : { 't':0x0E, 'fw':['3.50']},\n'7995cac008a1bd3ccfbf8becab35eb4d' : { 't':0x0E, 'fw':['3.55']},\n'79c49a1288fc7d60f75231d2dce10566' : { 't':0x0E, 'fw':['3.70']},\n'bb3b569ac01110ac0c16c758100491d5' : { 't':0x0E, 'fw':['4.00']},\n'ddb3cec56aecd2b15a82b829e1a372fe' : { 't':0x0E, 'fw':['4.01']},\n'edc4e6eda1678b33d2aa0143e538f8b4' : { 't':0x0E, 'fw':['4.05']},\n'b42535824e7723240dd4b082a3f60322' : { 't':0x0E, 'fw':['4.06']},\n'358302d1385b223f7574cbf18868c0d0' : { 't':0x0E, 'fw':['4.07']},\n'650bde2da36b1f3d31be9e5ce9c6a5cc' : { 't':0x0E, 'fw':['4.50']},\n'a7623c9af98df21a7fdfab7e37bcf613' : { 't':0x0E, 'fw':['4.55']},\n'0be4a2e5b370a7de89759074b079ab3c' : { 't':0x0E, 'fw':['4.70']},\n'e46585bf19bf04fd167a399f4ea117e1' : { 't':0x0E, 'fw':['4.71']},\n'be76ae16a1afd45b11d476cdb4385dd3' : { 't':0x0E, 'fw':['4.72']},\n'8f95d2b54627f5edc2a96f7cb5c8308b' : { 't':0x0E, 'fw':['4.73']},\n'919e9d46632868ee4cf3f3326a71c5e3' : { 't':0x0E, 'fw':['4.74']},\n'b8ed5f9cec8e41ae026de12e21d72b0b' : { 't':0x0E, 'fw':['5.00']},\n'1af9f0c231a8941a8c553c6966122130' : { 't':0x0E, 'fw':['5.01']},\n'b99b19ffd7c9d6c9874cbb94a7e78c66' : { 't':0x0E, 'fw':['5.03']},\n'8906a34e24318e90a62bba5c5a97ad00' : { 't':0x0E, 'fw':['5.05']},\n'f26d56b010b01221e8275837ee565fbb' : { 't':0x0E, 'fw':['5.50']},\n'39a984dbac3ccb94b4480aa25c8b4e1b' : { 't':0x0E, 'fw':['5.53']},\n'633baf585cee4417834ff8d7ce62e3bd' : { 't':0x0E, 'fw':['5.55']},\n'9a91697500616905426d4a84aefa665a' : { 't':0x0E, 'fw':['5.56', '6.00']},\n'9c382d60c4941337065823545ae16d3c' : { 't':0x0E, 'fw':['6.02']},\n'820f8b918ab86c88c1c78012ec5f6d1a' : { 't':0x0E, 'fw':['6.20']},\n'0a1c51b97b423afe0c0f5aa77d9ee8d7' : { 't':0x0E, 'fw':['6.50']},\n'fa0be2c08d926ea3bddb97fa939343bd' : { 't':0x0E, 'fw':['6.51']},\n'9f29600822a91a99a949af2db143bfc2' : { 't':0x0E, 'fw':['6.70']},\n'e544d20695af0c52e335a1e2d04fc542' : { 't':0x0E, 'fw':['6.71']},\n'd0414634023ba61fd3a4a5a6077f79b8' : { 't':0x0E, 'fw':['6.72']},\n'd3133368cf3f43d751589aee694bc42d' : { 't':0x0E, 'fw':['7.00']},\n'522023ce61ced68525fbfdeb0c26c719' : { 't':0x0E, 'fw':['7.01']},\n'9ae781691d31c931b11a288fd72ef0d0' : { 't':0x0E, 'fw':['7.02']},\n'3b326bb3475dd98317b17096d9883817' : { 't':0x0E, 'fw':['7.50']},\n'e95160734d6557cff562df4896364347' : { 't':0x0E, 'fw':['7.51']},\n'229b3917e607a55fe987df3b8738c09e' : { 't':0x0E, 'fw':['7.55']},\n'b48d67cd6e0fcfcf6b11554e034b3949' : { 't':0x0E, 'fw':['8.00']},\n'd95895c6e17b35d58f5d6c3c1b795d17' : { 't':0x0E, 'fw':['8.01']},\n'38a8834ccf0d7c77d876adedfdad26bb' : { 't':0x0E, 'fw':['8.03']},\n'77ff85ef917c4003f32e7be03b1c237c' : { 't':0x0E, 'fw':['8.50']},\n'04e544df5deb249ed65f28e9df3376b0' : { 't':0x0E, 'fw':['8.52']},\n'6c7f9451e02a0ab11a84c6788117189f' : { 't':0x0E, 'fw':['9.00']},\n'dd7521db7eb7c20b23b20094aab681b0' : { 't':0x0E, 'fw':['9.03']},\n'9c1d709f7664cb8b184a09e7970d2221' : { 't':0x0E, 'fw':['9.04']},\n'582bc68d9ab845107209293a67042578' : { 't':0x0E, 'fw':['9.50']},\n'fc29d959e8d3b8933b4e15b13a5cd298' : { 't':0x0E, 'fw':['9.51']},\n'dbbd392ce2314d16b649f67b2f61e5d5' : { 't':0x0E, 'fw':['9.60']},\n'8ddfae36db09473cfd6bd93ec8b2456f' : { 't':0x0E, 'fw':['10.00']},\n'5f64b9e084b18ad2dd106f1f0b134e6b' : { 't':0x0E, 'fw':['10.01']},\n'1a14428496d01e0120f6930279e89f24' : { 't':0x0E, 'fw':['10.50']},\n'537ba86792b6dc80878c50931c67abc1' : { 't':0x0E, 'fw':['10.70']},\n'2972f90ec990ff02022f40374073a3bd' : { 't':0x0E, 'fw':['10.71']},\n'0b0bea74a608afdb18c1084d0e58bbe0' : { 't':0x0E, 'fw':['11.00']},\n'25f53c8b333b88d7d429524915d7f583' : { 't':0x0E, 'fw':['11.02']},\n'a3939952cf4ec2c12b20a00c1cd12c94' : { 't':0x0E, 'fw':['11.50']},\n'2145706353aa2239f0a1ac3188235bc5' : { 't':0x0E, 'fw':['11.52']},\n'63b7c50fbf566c57feb793aafc3094db' : { 't':0x0E, 'fw':['12.00']},\n'ec57e59267896ea10ff6be6a4076ff5d' : { 't':0x0E, 'fw':['12.02']},\n'6821c5a1313500108bae23e010e2b507' : { 't':0x0E, 'fw':['12.50']},\n'2631f483ed174b46aefba7d55589e7ee' : { 't':0x0E, 'fw':['12.52']},\n'9f28a740b94f4f2b9ee16c90063659fc' : { 't':0x0E, 'fw':['13.00']},\n'f573826e2a5e61410a067bf2d31ddf63' : { 't':0x0E, 'fw':['13.02']},\n'bbef26b24beca531af27080bcb9ad01d' : { 't':0x0E, 'fw':['13.04']},\n'4aab5ca12b7b8d4ca37a85056de59ec0' : { 't':0x0E, 'fw':['13.50']},\n'7a00d6dc1f82fdede5eb03c58a21a015' : { 't':0x21, 'fw':['2.00', '2.01', '2.02', '2.03', '2.04']},\n'0238c28f5c478a2432f070ad24068a63' : { 't':0x21, 'fw':['2.50']},\n'e19c859a5287e2477873d4e565b35186' : { 't':0x21, 'fw':['2.51']},\n'5daf707fe6efe0bab4d9db0bb8d96a8b' : { 't':0x21, 'fw':['2.55']},\n'd65b7789a0621352f877eaab3e5dff60' : { 't':0x21, 'fw':['2.57']},\n'9d1b6a3a0fc9f3a6d41e20e5bfad2d10' : { 't':0x21, 'fw':['3.00']},\n'd9ee437cba6e8c4bd887d7778c4040f5' : { 't':0x21, 'fw':['3.10']},\n'32abf86d765b20d9b875ea28eb10cfb6' : { 't':0x21, 'fw':['3.11']},\n'd0172f048e0bd77447d8d591476da86e' : { 't':0x21, 'fw':['3.15']},\n'b7aa54cd77184cc152aa5a2c720b7c0d' : { 't':0x21, 'fw':['3.50']},\n'd7cfea21dac13f07a3488dc13fd6fd11' : { 't':0x21, 'fw':['3.55']},\n'b071c7101ea87198c26c6ec07adbbf16' : { 't':0x21, 'fw':['3.70']},\n'99427d57097057e5f702f75985b47db4' : { 't':0x21, 'fw':['4.00']},\n'cb0a8bf9ef19fd0ce811ce02f9ae8315' : { 't':0x21, 'fw':['4.01']},\n'525530be2dcd96082eeb967cb600d741' : { 't':0x21, 'fw':['4.05']},\n'1cb19934c7150c3e33f6053dfbd488ab' : { 't':0x21, 'fw':['4.06']},\n'1d0899aa8245f254148069555d1d03de' : { 't':0x21, 'fw':['4.07']},\n'05152f1e55667632d28a41a34e9b15d1' : { 't':0x21, 'fw':['4.50']},\n'b8cdaca258483294ba09388992fdb5ed' : { 't':0x21, 'fw':['4.55']},\n'6ab5149f58a1d2023d3d44db47558d6a' : { 't':0x21, 'fw':['4.70']},\n'3c57f7e0b7d6789709dbdffefd6005f2' : { 't':0x21, 'fw':['4.71']},\n'43c87a039bdfeab3ccaf663032ffbaf6' : { 't':0x21, 'fw':['4.72']},\n'f9e6bd36622bf0ff53ef809f4d7338fe' : { 't':0x21, 'fw':['4.73']},\n'52380c701e6851d1f11837c69b81e886' : { 't':0x21, 'fw':['4.74']},\n'c30227273e40b33c0ab50afd2ffebbbd' : { 't':0x21, 'fw':['5.00']},\n'9b8a56dbe05b563ba1e7bc51d53c6921' : { 't':0x21, 'fw':['5.01']},\n'ecd8cf4270f0eded351dc40327d89fa4' : { 't':0x21, 'fw':['5.03']},\n'8db9dfd190fcb0578d8774979e181add' : { 't':0x21, 'fw':['5.05']},\n'65b9f22b2fa1cf2118670283062bc164' : { 't':0x21, 'fw':['5.50']},\n'd75fd7bd3501ca7df6eb1b5b4b1cb80f' : { 't':0x21, 'fw':['5.53']},\n'6a0403c68d75ab69d3dbc77096175f76' : { 't':0x21, 'fw':['5.55']},\n'c4165f48de965c117d08f6fcc390d713' : { 't':0x21, 'fw':['5.56', '6.00']},\n'b76752e2c27286f6407dea379203f3a7' : { 't':0x21, 'fw':['6.02']},\n'8a8a74ca82ee58556d9b206c8e9b89b8' : { 't':0x21, 'fw':['6.20']},\n'3aa312df7d1b72dd8fcf26f459008015' : { 't':0x21, 'fw':['6.50']},\n'f0784a4b2381dd234cb05e0728115fee' : { 't':0x21, 'fw':['6.51']},\n'dbda962b0857f596866e3a7341e4f2e0' : { 't':0x21, 'fw':['6.70']},\n'969e0b58ba249e6dfe18ed5e25edfbda' : { 't':0x21, 'fw':['6.71']},\n'31a035bace215d01ebbdbcd622cf8613' : { 't':0x21, 'fw':['6.72']},\n'bf0793b1efc0fe672c5058224583f5ac' : { 't':0x21, 'fw':['7.00']},\n'b76313967cfe1dad00fbe734fe782e5a' : { 't':0x21, 'fw':['7.01']},\n'6aa9f141f9f644aca2debececad2e1a0' : { 't':0x21, 'fw':['7.02']},\n'c72c71a0595ceb4ebde349696bd7698b' : { 't':0x21, 'fw':['7.50']},\n'6bd05840bfded01d1b94bfd44d3c73c0' : { 't':0x21, 'fw':['7.51']},\n'11a00bea89e59b7cbaba5c83a6282328' : { 't':0x21, 'fw':['7.55']},\n'c22bbf754677b20d082c6c87a324f7a2' : { 't':0x21, 'fw':['8.00']},\n'669ca94a5328e899d0fa2575c30762ff' : { 't':0x21, 'fw':['8.01']},\n'9166879e76e29ba613ce027419461034' : { 't':0x21, 'fw':['8.03']},\n'749880246a83f2e6267f1dcc32eeee4a' : { 't':0x21, 'fw':['8.50']},\n'91e47f45865fc36b11d927684380f70e' : { 't':0x21, 'fw':['8.52']},\n'cbb340ec96eb4c347e354c494dfea5e9' : { 't':0x21, 'fw':['9.00']},\n'69b27a6ceba152e8067344a1d3c770cf' : { 't':0x21, 'fw':['9.03']},\n'f59944abb76d9e9a2189658116405482' : { 't':0x21, 'fw':['9.04']},\n'2a23172fa612eb264ec0600a716fedb3' : { 't':0x21, 'fw':['9.50']},\n'e4cdcbd449f1c8125bd6cf6176f6e1bb' : { 't':0x21, 'fw':['9.51']},\n'942d9dd58fd98e9b280bed10995b73ed' : { 't':0x21, 'fw':['9.60']},\n'df54167942f64899ef65c850df07f4d6' : { 't':0x21, 'fw':['10.00']},\n'eec63b1ad0c5ad407a6067a0134aa498' : { 't':0x21, 'fw':['10.01']},\n'e7bd676c4c24f3ebc8f94e198c152623' : { 't':0x21, 'fw':['10.50']},\n'17a620ede33cdbfe5ed4c6f38d1a5139' : { 't':0x21, 'fw':['10.70']},\n'1bb42a14c97b15a4e426ed8b79b2301f' : { 't':0x21, 'fw':['10.71']},\n'57eaaf224af813ce645b9a6ee6190b7a' : { 't':0x21, 'fw':['11.00']},\n'16ff9ff40585f00e9834689888975b46' : { 't':0x21, 'fw':['11.02']},\n'cb8ea978017b961da9f450e842976e2a' : { 't':0x21, 'fw':['11.50']},\n'b4269b675add1f67b2139d4bc3da79fc' : { 't':0x21, 'fw':['11.52']},\n'29ac04f4e472bd6f7651ba074c55d193' : { 't':0x21, 'fw':['12.00']},\n'451db05d4ac556dc320d93052ad12fad' : { 't':0x21, 'fw':['12.02']},\n'502322eda265417a47380c03590eeb6b' : { 't':0x21, 'fw':['12.50']},\n'8d2153efa1ae887b22013277b31ad767' : { 't':0x21, 'fw':['12.52']},\n'333111ec3d0788b1e61cf983b7126187' : { 't':0x21, 'fw':['13.00']},\n'5a623d3d813c72feafc7a8b1ba5c3325' : { 't':0x21, 'fw':['13.02']},\n'a5fcef73d57c3f70c52be216e4c7783a' : { 't':0x21, 'fw':['13.04']},\n'bb43c942346a2f261352dd2540053d73' : { 't':0x21, 'fw':['13.50']},\n'8d936050f378b00d5c2cd286f32f25b7' : { 't':0x25, 'fw':['3.00']},\n'1d0be06c8a097ca8e1b1b38139800520' : { 't':0x25, 'fw':['3.10']},\n'fde812fd90341881bd5ef3d25e2c1b5b' : { 't':0x25, 'fw':['3.11']},\n'bd0bf6881bc1d387beeed793960be5ed' : { 't':0x25, 'fw':['3.15']},\n'2ebe9d480aac7611f5baf34077c3e89c' : { 't':0x25, 'fw':['3.50']},\n'c1ef90ddba5fd1fe49ed36a128136aba' : { 't':0x25, 'fw':['3.55']},\n'51e6d6a82fdd3239fccb660a463d6138' : { 't':0x25, 'fw':['3.70']},\n'c3bffb04f99f74485b3150e2b9642bfd' : { 't':0x25, 'fw':['4.00']},\n'd54ffcee5ae684e48c349d8cfdfd6ad8' : { 't':0x25, 'fw':['4.01']},\n'3a216f5c95f6eb938d508280c1f2915b' : { 't':0x25, 'fw':['4.05']},\n'a6fe26c0f43c632f7a9cb63d9690e4ef' : { 't':0x25, 'fw':['4.06']},\n'324ab73b7222b872c4ea9e8c20272bd9' : { 't':0x25, 'fw':['4.07']},\n'66360e6454e11e907184226538e16ec2' : { 't':0x25, 'fw':['4.50']},\n'd1089a7bb46e1fc22affed585508c748' : { 't':0x25, 'fw':['4.55']},\n'3186ccf7e439bd2b418cff4fe7791b6c' : { 't':0x25, 'fw':['4.70']},\n'3e90c987a61f33cce21e04583b1ca0c1' : { 't':0x25, 'fw':['4.71']},\n'534ab345e42a61b38eb621378c8f6cbb' : { 't':0x25, 'fw':['4.72']},\n'f1d4ed0c9ea9ac67b4387ab8d0abf0a1' : { 't':0x25, 'fw':['4.73']},\n'a3ba2efe1d711f95bd62c8930d0eed1a' : { 't':0x25, 'fw':['4.74']},\n'ffdcbe00d8ea3eac519dde856765b13e' : { 't':0x25, 'fw':['5.00']},\n'f7a1068f0f67ee5ea9a19e2562ef15f2' : { 't':0x25, 'fw':['5.01']},\n'6c4b0c48f39be5bdd73b3d2c238d82fb' : { 't':0x25, 'fw':['5.03']},\n'ceed4a969f2d1a9421a69c138c5ddc72' : { 't':0x25, 'fw':['5.05']},\n'07670332f9976f0c3bc546b67a722cda' : { 't':0x25, 'fw':['5.50']},\n'969c3985296cb3472fc835bbe608528e' : { 't':0x25, 'fw':['5.53']},\n'b3bb2409d53615af2fb521505015e20c' : { 't':0x25, 'fw':['5.55']},\n'dea6efa9081c318b3668d1bc7a000f9b' : { 't':0x25, 'fw':['5.56', '6.00']},\n'c20d3a1731106cf1c010f874b17ea5c7' : { 't':0x25, 'fw':['6.02']},\n'b9275aa39e3760b7c2bde4c77d417d70' : { 't':0x25, 'fw':['6.20']},\n'bbb2c4c65433873f70f65b767a27f9b0' : { 't':0x25, 'fw':['6.50']},\n'dc650a90a9b874d5a2dcdfb60cd789c4' : { 't':0x25, 'fw':['6.51']},\n'052aec3f520bbcb1435d46267979ccf6' : { 't':0x25, 'fw':['6.70']},\n'08e30b521e41d07755a5015187beac05' : { 't':0x25, 'fw':['6.71']},\n'65a8e0f713382eaf1092b043f5cdca40' : { 't':0x25, 'fw':['6.72']},\n'16a67787c38d3139199e3a6e01f63f7f' : { 't':0x25, 'fw':['7.00']},\n'b1cb2c71470306aa7c9fb58ca5b19a4b' : { 't':0x25, 'fw':['7.01']},\n'6dc904eb6a2bdd6ff903ad99ec836991' : { 't':0x25, 'fw':['7.02']},\n'dc3e4e90a6aab238316f97e857637470' : { 't':0x25, 'fw':['7.50']},\n'a4df1d0de2ec96fb91cbe5224560b4a3' : { 't':0x25, 'fw':['7.51']},\n'eb772c3adc78271f923e6e4f4f8d6ccb' : { 't':0x25, 'fw':['7.55']},\n'86c77e27756f8376455b148fb9559a2e' : { 't':0x25, 'fw':['8.00']},\n'6564c0542eafc618f8ae94d8701efa4e' : { 't':0x25, 'fw':['8.01']},\n'3339c502ab56f241b5528c7638a20d36' : { 't':0x25, 'fw':['8.03']},\n'96b5bc1cb9a6999e64d4a5d36f6a06e7' : { 't':0x25, 'fw':['8.50']},\n'4063d7b68a7e9d7456b382b845a811a8' : { 't':0x25, 'fw':['8.52']},\n'f65bf15b532b15535f438e2f61fa980e' : { 't':0x25, 'fw':['9.00']},\n'33890e2cb7e1631716ab2e17fcbb83d9' : { 't':0x25, 'fw':['9.03']},\n'9d8ffa31cc333137ff1878d595d52200' : { 't':0x25, 'fw':['9.04']},\n'd05b183d387747053d185a4090261e25' : { 't':0x25, 'fw':['9.50']},\n'd669c591de8c0c7e7993f3dc566eac80' : { 't':0x25, 'fw':['9.51']},\n'e65cc6cd6f4cad6b4f59da235bf44170' : { 't':0x25, 'fw':['9.60']},\n'7c1cdbf13c138ce1a83de130b4263429' : { 't':0x25, 'fw':['10.00']},\n'9dfbe785da82eb108b1e97f25ed586f5' : { 't':0x25, 'fw':['10.01']},\n'3267e5dfc202c068071b171c3a0cb258' : { 't':0x25, 'fw':['10.50']},\n'ddc17ad1bf9c3b1a5ecf71f6937472ef' : { 't':0x25, 'fw':['10.70']},\n'df00320082bb4421c2247f792ea0e682' : { 't':0x25, 'fw':['10.71']},\n'cadd11b599a512ce87c52e25a2e5244d' : { 't':0x25, 'fw':['11.00']},\n'3b6146cc58794d723cad16393cab78a7' : { 't':0x25, 'fw':['11.02']},\n'591f2d1c1893deb5be5ffcb1f572f0dc' : { 't':0x25, 'fw':['11.50']},\n'ec4f9bee3faf750f42985d819a29531e' : { 't':0x25, 'fw':['11.52']},\n'64f4f9e4eb31984f73db37181555735c' : { 't':0x25, 'fw':['12.00']},\n'371e9622798e01647dc13a6d92ee4b6f' : { 't':0x25, 'fw':['12.02']},\n'dd11599ca2b0c74a179dca205943affb' : { 't':0x25, 'fw':['12.50']},\n'fcfc2114ece872c6b5441f2e0ffe3d1e' : { 't':0x25, 'fw':['12.52']},\n'13552aca8f40deb0ad367b8ffc61f698' : { 't':0x25, 'fw':['13.00']},\n'22e6d1e34bbf63ffd3ca4ce45909a78b' : { 't':0x25, 'fw':['13.02']},\n'1b87a69900a54bcd6a7535b405430ab5' : { 't':0x25, 'fw':['13.04']},\n'cebb93d67f62862731366dc9fd350c5e' : { 't':0x25, 'fw':['13.50']},\n'd69cb4538da190706ef316205e04e624' : { 't':0x2B, 'fw':['3.70']},\n'27ab170cfe634e9525c0ecc29129aaed' : { 't':0x2B, 'fw':['4.00']},\n'cb38a79958287f53970ca061c20d8f7e' : { 't':0x2B, 'fw':['4.01']},\n'b64ab08ced7d56953d98774690c28ec2' : { 't':0x2B, 'fw':['4.05']},\n'4bf88b321c7cfc68200cf2a62d7a94f6' : { 't':0x2B, 'fw':['4.06']},\n'7d4fdd394b6e195cac4647aa0164af0a' : { 't':0x2B, 'fw':['4.07']},\n'c29d74755670823aaeaba5f960c16e77' : { 't':0x2B, 'fw':['4.50']},\n'1e0332ff2831aed8972f52d19d89c8f0' : { 't':0x2B, 'fw':['4.55']},\n'2f62d33dffb05732c8a50e571d92285f' : { 't':0x2B, 'fw':['4.70']},\n'9024b6fc90bae356d679561e7bdc83e7' : { 't':0x2B, 'fw':['4.71']},\n'61b5b3c7c79193be73f1621a56a8f6f6' : { 't':0x2B, 'fw':['4.72']},\n'c85ea89f8fc7ab7cf4d6f39ec02e6159' : { 't':0x2B, 'fw':['4.73']},\n'3e67e445509481b0b30b4d6771e6384d' : { 't':0x2B, 'fw':['4.74']},\n'7e332ac82f13f188241ebca951f1e7bf' : { 't':0x2B, 'fw':['5.00']},\n'635e4c46c5e5eaa97c36058dad663637' : { 't':0x2B, 'fw':['5.01']},\n'33c5ec1e27d7226bf794e94a388d07b3' : { 't':0x2B, 'fw':['5.03']},\n'0e68e601d2a2215499def6b42ea13421' : { 't':0x2B, 'fw':['5.05']},\n'7116d03a44e1e7b45f387c2ba761ba37' : { 't':0x2B, 'fw':['5.07']},\n'76968b377b4be00bcf83fa3f0b3d5150' : { 't':0x2B, 'fw':['5.50']},\n'aa264a65abd610970fe575f20dbab5cc' : { 't':0x2B, 'fw':['5.53']},\n'c4ee3172505d150907f1f687849259b8' : { 't':0x2B, 'fw':['5.55']},\n'facd947b3181c30faa035d18a570bd34' : { 't':0x2B, 'fw':['5.56', '6.00']},\n'45194d85709c177938a77ff7f2bcc487' : { 't':0x2B, 'fw':['6.02']},\n'ff8df7988e483df9a885da9b3cfff02b' : { 't':0x2B, 'fw':['6.20']},\n'e557b5ce24e398ad8416f18bd2da5a25' : { 't':0x2B, 'fw':['6.50']},\n'9157cbbcace103f749f8ab16c7652e32' : { 't':0x2B, 'fw':['6.51']},\n'3aa814001014da4997af2f70a67d438b' : { 't':0x2B, 'fw':['6.70']},\n'85cb60a307c6601e931417e282b76802' : { 't':0x2B, 'fw':['6.71']},\n'4b5550bc70508bca2e1514594ce8b004' : { 't':0x2B, 'fw':['6.72']},\n'5cf4f0df76e75993b02a9d68934e41f3' : { 't':0x2B, 'fw':['7.00']},\n'a6a5b22486e4173e3846ce23d7a7242d' : { 't':0x2B, 'fw':['7.01']},\n'9725efa65b1b9cd6a6cecabdf13c21e0' : { 't':0x2B, 'fw':['7.02']},\n'e60a407278a0d5153a120eb43e52a708' : { 't':0x2B, 'fw':['7.50']},\n'b309af1d980deeac8842ec2337e3e57b' : { 't':0x2B, 'fw':['7.51']},\n'520b79d530abf316d0b6153a3789c422' : { 't':0x2B, 'fw':['7.55']},\n'84b7dfc3a45220a95936c9e6ed14cdf7' : { 't':0x2B, 'fw':['8.00']},\n'd2f3df620b241e31d46fdaaabeecba1d' : { 't':0x2B, 'fw':['8.01']},\n'9fd9a402a5c9faad17ca7bf97fd907cf' : { 't':0x2B, 'fw':['8.03']},\n'f69d5df408d9d2571804626af42b88b9' : { 't':0x2B, 'fw':['8.50']},\n'089e1b2fcba07e5750357c98d65a71c1' : { 't':0x2B, 'fw':['8.52']},\n'7ba3cf4a6cc0fb9f223bf4ab7a7c8c62' : { 't':0x2B, 'fw':['9.00']},\n'14e76e1a83e0d86d3b07179d213149d0' : { 't':0x2B, 'fw':['9.03']},\n'8f2f75d7ff9b170d95f7204b156991a7' : { 't':0x2B, 'fw':['9.04']},\n'895470adee78f59a6a6c1208249cc8d9' : { 't':0x2B, 'fw':['9.50']},\n'51514310853d0411d7662120118e7244' : { 't':0x2B, 'fw':['9.51']},\n'28930dd371d95fbe768cd7ea12f2bc69' : { 't':0x2B, 'fw':['9.60']},\n'7417452947bad75fc113e38eeb032946' : { 't':0x2B, 'fw':['10.00']},\n'ae9163f07f8bb423d44b15e377f09a6a' : { 't':0x2B, 'fw':['10.01']},\n'536214ca8cd665157ce3e48b375c9496' : { 't':0x2B, 'fw':['10.50']},\n'd7e5b5b6dc12fd80c9651490cc758bbe' : { 't':0x2B, 'fw':['10.70']},\n'4dcb324baac3cc5ac045042b142b9814' : { 't':0x2B, 'fw':['10.71']},\n'20bb9d1aaa41c0fe5d46ea03347ece9c' : { 't':0x2B, 'fw':['11.00']},\n'382c0dd756199b6e925707079c174220' : { 't':0x2B, 'fw':['11.02']},\n'5a7dffc0280b356d66cee2370e6880fc' : { 't':0x2B, 'fw':['11.50']},\n'c4ad490bcaffac79d3e29b0781fca86e' : { 't':0x2B, 'fw':['11.52']},\n'defe9549594dcec455875d2de764f4d2' : { 't':0x2B, 'fw':['12.00']},\n'bf883b85b8ce40b3fae6509762303ccb' : { 't':0x2B, 'fw':['12.02']},\n'f58529284cd9d16ef04012fa02fc77c1' : { 't':0x2B, 'fw':['12.50']},\n'593b9912cfe9d4dcefb8e23f633c2257' : { 't':0x2B, 'fw':['12.52']},\n'b2942b480d0c83be1b62e4669a3c02a0' : { 't':0x2B, 'fw':['13.00']},\n'8df4acd2cb12698979a053d3370c2052' : { 't':0x2B, 'fw':['13.02']},\n'40b1f61b5b8b5d98a10dcf9310d52224' : { 't':0x2B, 'fw':['13.04']},\n'5ed3f70544c880905819fcc2c23f48f6' : { 't':0x2B, 'fw':['13.50']},\n}\n\nEMC_IPL_MD5 = {\n'475c3c78d08a9445667730cea05e7ced' : { 't':0x01, 'fw':['1.01']},\n'15c90ebe9e879aed9ea917317e304da1' : { 't':0x01, 'fw':['1.05', '1.06', '1.07']},\n'080ea78a7c141d1886335584b6e19717' : { 't':0x01, 'fw':['1.50', '1.51', '1.52']},\n'f71f9f0dd17052a0ca2bd0f11c6698e0' : { 't':0x01, 'fw':['1.60', '1.61', '1.62']},\n'30643532bf21e2eae1bc75e14abd6d64' : { 't':0x0D, 'fw':['1.01']},\n'ad217d6070cb8b606930b68e4a384fca' : { 't':0x0D, 'fw':['1.05', '1.06', '1.07']},\n'00567ed4a98b74504132bd386e994842' : { 't':0x0D, 'fw':['1.50', '1.51', '1.52']},\n'9f0588c5ac05f2314d82c3b2aa5dafe6' : { 't':0x0D, 'fw':['1.60', '1.61', '1.62']},\n'a0217b34fe57f28711da87fedcbdc9be' : { 't':0x0D, 'fw':['1.70', '1.71', '1.72', '1.74', '1.75', '1.76']},\n'7114f1280bb8d105ab04c2e92ee47198' : { 't':0x0D, 'fw':['2.00', '2.01', '2.02', '2.03', '2.04']},\n'587a68fe4445fa201ae4c189c3c49846' : { 't':0x0D, 'fw':['2.50', '2.51', '2.55', '2.57']},\n'960fde9389f9bdd850f86f2ad9fa88ad' : { 't':0x0D, 'fw':['3.00', '3.10', '3.11', '3.15']},\n'c59f900b0a11e9dfac55fa50f40cd40d' : { 't':0x0D, 'fw':['3.50', '3.55', '3.70']},\n'8e94da07cc664f887d9885530f92853c' : { 't':0x0D, 'fw':['4.00', '4.01', '4.05', '4.06', '4.07']},\n'17e29d3a616e13c68220fbe20f75a754' : { 't':0x0D, 'fw':['4.50', '4.55']},\n'7ee5ce05605ced2539ff2ba93e766c44' : { 't':0x0D, 'fw':['4.70', '4.71', '4.72', '4.73', '4.74']},\n'cd99d840146286553243e8c1ce16667a' : { 't':0x0D, 'fw':['5.00', '5.01', '5.03', '5.05']},\n'371cc4f3f0c6dd284e766113e7b34ee8' : { 't':0x0D, 'fw':['5.50', '5.53', '5.55']},\n'4706d6ec326a4e91ab9c2b4769e3e2a7' : { 't':0x0D, 'fw':['5.56', '6.00', '6.02', '6.20']},\n'94642a952d29a1fefba9e60fac6ffe5c' : { 't':0x0D, 'fw':['6.50', '6.51', '6.70', '6.71', '6.72', '7.00', '7.01', '7.02', '7.50', '7.51', '7.55', '8.00', '8.01', '8.03']},\n'42df90f470676fbf456e9962ca885f17' : { 't':0x0D, 'fw':['8.50', '8.52', '9.00', '9.03', '9.04', '9.50', '9.51', '9.60']},\n'6b77552dfe6f390b3ab9a6ad6460ecf9' : { 't':0x0D, 'fw':['10.00', '10.01']},\n'e539774a1f6b55ef74aab9017279c64e' : { 't':0x0D, 'fw':['10.50', '10.70', '10.71', '11.00', '11.02', '11.50', '11.52', '12.00', '12.02', '12.50', '12.52', '13.00', '13.02', '13.04', '13.50']},\n'0bdb2b616b964b34845f3c1c2b362a1d' : { 't':0x20, 'fw':['2.00', '2.01', '2.02', '2.03', '2.04']},\n'5503170e7e770d8c2c0ae34abe905b65' : { 't':0x20, 'fw':['2.50', '2.51', '2.55', '2.57']},\n'41363eae2616290c5ef7afb0bf811451' : { 't':0x20, 'fw':['3.00', '3.10', '3.11', '3.15']},\n'54695eae3a6b15f09b5f970533040e17' : { 't':0x20, 'fw':['3.50', '3.55']},\n'ded9e797fe30a6e297aa26fda4ad056f' : { 't':0x20, 'fw':['3.70']},\n'b93f5422c35ec5f8e3dbb92869dc1a3b' : { 't':0x20, 'fw':['4.00', '4.01', '4.05', '4.06', '4.07']},\n'c5ca2d4873f0b6742dbf99da5f808d5c' : { 't':0x20, 'fw':['4.50', '4.55']},\n'4044bfc903a227051332a937e5281e09' : { 't':0x20, 'fw':['4.70', '4.71', '4.72', '4.73', '4.74']},\n'ff5a2ea7e2da7306ed7ccad11bf8dcb4' : { 't':0x20, 'fw':['5.00']},\n'ec940d26770edd5dfca0c56b87c91922' : { 't':0x20, 'fw':['5.01', '5.03', '5.05']},\n'93997b7ce815dea1815033f4dfb515f9' : { 't':0x20, 'fw':['5.50', '5.53']},\n'3bd678212835af21e1bbd85a2b73140c' : { 't':0x20, 'fw':['5.55']},\n'50c3295e6bfdaec4823574a0251cbec2' : { 't':0x20, 'fw':['5.56', '6.00', '6.02', '6.20']},\n'29222319e74e1d25c7c99c4edf7859db' : { 't':0x20, 'fw':['6.50', '6.51', '6.70', '6.71', '6.72', '7.00', '7.01', '7.02', '7.50', '7.51', '7.55', '8.00', '8.01', '8.03']},\n'96b467e3092b132c8c9036cc5da444cc' : { 't':0x20, 'fw':['8.50', '8.52', '9.00', '9.03', '9.04', '9.50', '9.51', '9.60']},\n'febaf63e650be8b3469e0bffe85b6382' : { 't':0x20, 'fw':['10.00', '10.01']},\n'c1aa7f63ba7aac8c8695970a416e1342' : { 't':0x20, 'fw':['10.50', '10.70', '10.71', '11.00', '11.02', '11.50', '11.52', '12.00', '12.02', '12.50', '12.52', '13.00', '13.02', '13.04', '13.50']},\n'2296c87cff00bd4e3eeea7adab0772b9' : { 't':0x24, 'fw':['3.00', '3.10', '3.11', '3.15']},\n'de5e54aa34d7f93f4f8fdad3ba798422' : { 't':0x24, 'fw':['3.50', '3.55']},\n'1f0fa6a0ee18242bce17b380e406b2d6' : { 't':0x24, 'fw':['3.70']},\n'c2df68338171336c7719b977042ba2f7' : { 't':0x24, 'fw':['4.00']},\n'83547df7d50ce912a6ec7f466c4632e0' : { 't':0x24, 'fw':['4.01', '4.05']},\n'dc83fd3d408a52897df957533caedf00' : { 't':0x24, 'fw':['4.06', '4.07']},\n'34df38b47e1159d2760f56fac2a10350' : { 't':0x24, 'fw':['4.50', '4.55']},\n'59ce92d9143bf0a8edf779b5f855c17b' : { 't':0x24, 'fw':['4.70', '4.71', '4.72', '4.73', '4.74']},\n'74a6ac42b63410cd39302e8e8472cebb' : { 't':0x24, 'fw':['5.00']},\n'9f25903e3fbe034e401af559776f922c' : { 't':0x24, 'fw':['5.01', '5.03', '5.05']},\n'5d762452ff37c426bdc50aaf5d942cb9' : { 't':0x24, 'fw':['5.50', '5.53']},\n'70733c72ca33e355778fc18617469a46' : { 't':0x24, 'fw':['5.55']},\n'f6474a3d99dc5c8a22535e38715c9816' : { 't':0x24, 'fw':['5.56', '6.00', '6.02', '6.20']},\n'3f19619bdb9b9bcb0ec6e57be8b2e2df' : { 't':0x24, 'fw':['6.50', '6.51', '6.70', '6.71', '6.72', '7.00', '7.01', '7.02', '7.50', '7.51', '7.55', '8.00', '8.01', '8.03']},\n'c49b7b9d970643c5886cef603fdff1ba' : { 't':0x24, 'fw':['8.50', '8.52', '9.00', '9.03', '9.04', '9.50', '9.51', '9.60']},\n'421ea7fec14cf827f6380326ab9fe42b' : { 't':0x24, 'fw':['10.00', '10.01']},\n'07f41f9ac4370ce7736885ed5fa4372c' : { 't':0x24, 'fw':['10.50', '10.70', '10.71', '11.00', '11.02', '11.50', '11.52', '12.00', '12.02', '12.50', '12.52', '13.00', '13.02', '13.04', '13.50']},\n'3e7e0402a688d18e34c1a393e69a2be1' : { 't':0x2A, 'fw':['3.70']},\n'7c499dd0f35af4bc63a13050a64188aa' : { 't':0x2A, 'fw':['4.00', '4.01', '4.05', '4.06', '4.07']},\n'1147f57e1826bb0305effd5d53d13c6b' : { 't':0x2A, 'fw':['4.50', '4.55']},\n'2ef9c2d3a8c4ea980a4378a9ce00b935' : { 't':0x2A, 'fw':['4.70', '4.71', '4.72', '4.73', '4.74']},\n'0191564a032f195636b5f0bc706950ce' : { 't':0x2A, 'fw':['5.00']},\n'cf1416fd668b4788e9011e1a77876236' : { 't':0x2A, 'fw':['5.01', '5.03', '5.05', '5.07']},\n'fd045a2e1d51c30222d90741d7e1c82b' : { 't':0x2A, 'fw':['5.50', '5.53']},\n'78910d64832d56c97615ac203fda9b82' : { 't':0x2A, 'fw':['5.55']},\n'f54cc78136fb62e4aeca87be13f31c6c' : { 't':0x2A, 'fw':['5.56', '6.00', '6.02', '6.20']},\n'cdb18370e78cadee8a8f449f404cb10c' : { 't':0x2A, 'fw':['6.50', '6.51', '6.70', '6.71', '6.72', '7.00', '7.01', '7.02', '7.50', '7.51', '7.55', '8.00', '8.01', '8.03']},\n'1ec53a02094b615655d537dc2528be7c' : { 't':0x2A, 'fw':['8.50', '8.52', '9.00', '9.03', '9.04', '9.50', '9.51', '9.60']},\n'3e2b71121300e0bd14c7839671f3502f' : { 't':0x2A, 'fw':['10.00', '10.01']},\n'78bcc7e6fcafd9a5de8c32d5bf802d09' : { 't':0x2A, 'fw':['10.50', '10.70', '10.71', '11.00', '11.02', '11.50', '11.52', '12.00', '12.02', '12.50', '12.52', '13.00', '13.02', '13.04', '13.50']},\n}\n\nTORUS_FW_MD5 = {\n'e0b7a1d95b571d6a67a12499704166d1' : { 't':0x03, 'fw':['1.01', '1.05', '1.06', '1.07', '1.50', '1.51', '1.52']},\n'cc366b2580d27e3fd37dd1e4a702ebbf' : { 't':0x03, 'fw':['1.60', '1.61', '1.62']},\n'c07b72e0829105d916136fc9c6316f22' : { 't':0x03, 'fw':['1.70', '1.71', '1.72', '1.74', '1.75', '1.76']},\n'c218aeb95817ee01b16bacd5daced815' : { 't':0x03, 'fw':['2.00', '2.01', '2.02', '2.03', '2.04', '2.50', '2.51', '2.55', '2.57']},\n'd0405148398772dcf178aaa94cc78e97' : { 't':0x03, 'fw':['3.00', '3.10', '3.11', '3.15']},\n'2bfa378760a479fb85fdcc244d078d4d' : { 't':0x03, 'fw':['3.50', '3.55', '3.70']},\n'c92a435e395397112c0e62abddf1af68' : { 't':0x03, 'fw':['4.00', '4.01', '4.05', '4.06', '4.07']},\n'128741df67a726a86f7e9d517cf7c020' : { 't':0x03, 'fw':['4.50', '4.55', '4.70', '4.71', '4.72', '4.73', '4.74', '5.00', '5.01', '5.03', '5.05', '5.07', '5.50', '5.53', '5.55']},\n'cee157c6bffede981850e8d05b3535e3' : { 't':0x03, 'fw':['5.56', '6.00', '6.02', '6.20']},\n'317592510814a96f88547d9f255fd80e' : { 't':0x03, 'fw':['6.50', '6.51', '6.70', '6.71', '6.72', '7.00', '7.01', '7.02', '7.50', '7.51', '7.55']},\n'a5669e283c44c083589b038b3674affe' : { 't':0x03, 'fw':['8.00', '8.01', '8.03', '8.50', '8.52']},\n'083b13a5d852873bd0fefb147af9e2c3' : { 't':0x03, 'fw':['9.00', '9.03', '9.04']},\n'e84fb3af2096d22c7d7b7138ff292b1e' : { 't':0x03, 'fw':['9.50', '9.51', '9.60', '10.00', '10.01', '10.50', '10.70', '10.71', '11.00', '11.02', '11.50', '11.52', '12.00', '12.02', '12.50', '12.52', '13.00', '13.02', '13.04', '13.50']},\n'fcb057ac11c000d0262c10dc01b677a5' : { 't':0x22, 'fw':['2.00', '2.01', '2.02', '2.03', '2.04']},\n'4411977892ea7acd74062f0593bcbce7' : { 't':0x22, 'fw':['2.50', '2.51']},\n'f3211160a476a0f24de09d720627c20b' : { 't':0x22, 'fw':['2.55', '2.57']},\n'c0b82b852b7b66a0592b3821ad0fa459' : { 't':0x22, 'fw':['3.00', '3.10', '3.11', '3.15']},\n'11ba78afe8f02cb57ea8d021bc10ec89' : { 't':0x22, 'fw':['3.50', '3.55', '3.70']},\n'0d8d2986a1598d0e954f9e970947c219' : { 't':0x22, 'fw':['4.00', '4.01', '4.05', '4.06', '4.07']},\n'e6140f25a718245346a9a19746c37e8b' : { 't':0x22, 'fw':['4.50']},\n'7ce86e597e28f81f3429f7977d136798' : { 't':0x22, 'fw':['4.55']},\n'44086893f93d68e78bf7922766362480' : { 't':0x22, 'fw':['4.70', '4.71', '4.72', '4.73', '4.74']},\n'111bd82cc5507e82ac6b7a539f61d1be' : { 't':0x22, 'fw':['5.00', '5.01', '5.03', '5.05', '5.07', '5.50', '5.53', '5.55']},\n'95212a166862040220fbe438f1cb8c2f' : { 't':0x22, 'fw':['5.56', '6.00', '6.02', '6.20']},\n'3531d3656b81d26ba6a2e1660b5cf551' : { 't':0x22, 'fw':['6.50', '6.51', '6.70', '6.71', '6.72', '7.00', '7.01', '7.02', '7.50', '7.51', '7.55']},\n'4caac06d8ab4426b1622a86895fc26cc' : { 't':0x22, 'fw':['8.00', '8.01', '8.03', '8.50', '8.52']},\n'3ee31658fd141fe9df7afb65157a983c' : { 't':0x22, 'fw':['9.00', '9.03', '9.04']},\n'50b0085e8917ffca236bb449a81fd3eb' : { 't':0x22, 'fw':['9.50', '9.51', '9.60', '10.00', '10.01', '10.50', '10.70', '10.71', '11.00', '11.02', '11.50', '11.52', '12.00', '12.02', '12.50', '12.52', '13.00', '13.02', '13.04', '13.50']},\n'2e9656bf7d34c9d978cc1b6a7400d44c' : { 't':0x30, 'fw':['5.00', '5.01', '5.03', '5.05']},\n'9f8250b9ba23cceb4f4db9a0c3d36749' : { 't':0x30, 'fw':['5.50', '5.53']},\n'3cdbd4f6ba2b6f5c80dfc7d7faca5560' : { 't':0x30, 'fw':['5.55']},\n'ab56ac5eba7211c97b3ddd292c08e713' : { 't':0x30, 'fw':['5.56', '6.00', '6.02', '6.20']},\n'a526e7b7f9172d44f54ee2ded62b7a3e' : { 't':0x30, 'fw':['6.50', '6.51', '6.70', '6.71', '6.72']},\n'56fc530e9bb82185f604e78b66c0974f' : { 't':0x30, 'fw':['7.00', '7.01', '7.02', '7.50', '7.51', '7.55']},\n'2b3e14e420f9d1a2f2c875f73c2fef84' : { 't':0x30, 'fw':['8.00']},\n'3ffa3918cf00178c89cbdab4a398d8bd' : { 't':0x30, 'fw':['8.01']},\n'2b4e421d830649f1423a478ee7cc709a' : { 't':0x30, 'fw':['8.03', '8.50', '8.52']},\n'3cfd09c19cc5eaa2fc889b2c6505c333' : { 't':0x30, 'fw':['9.00', '9.03', '9.04']},\n'c23090c0bdce1bcb0f6bada5ef340e4e' : { 't':0x30, 'fw':['9.50', '9.51', '9.60', '10.00', '10.01', '10.50', '10.70', '10.71', '11.00', '11.02', '11.50', '11.52', '12.00', '12.02', '12.50', '12.52', '13.00', '13.02', '13.04', '13.50']},\n}\n\n"
  },
  {
    "path": "data/genData.py",
    "content": "#==========================================================\n# TXT file to PY array\n# part of ps4 wee tools project\n# https://github.com/andy-man/ps4-wee-tools\n#==========================================================\nimport os\n\n\n\ndef writeVar(f, name, var):\n\tf.write(name+\" = {\\n\")\n\tfor key in var:\n\t\tf.write(\"'%s' : { 't':%s, 'fw':%s},\\n\" %(key.lower(), var[key]['t'], var[key]['fw']))\n\tf.write(\"}\\n\\n\")\n\ndef addEntry(var, md5, type, fw):\n\tif not md5 in var:\n\t\tvar[md5] = {'t':type, 'fw':[fw]}\n\telse:\n\t\tvar[md5]['fw'].append(fw)\n\n\n\neap_kbl = {}\nemc_ipl = {}\ntorus_fw = {}\n\nfname = 'md5.txt'\n\nif not os.path.exists(fname):\n\tinput('File %s not found'%fname)\n\texit(1)\n# Using readlines()\nf = open(fname, 'r')\nLines = f.readlines()\nfor line in Lines:\n\tline = line.strip()\n\t\n\tdata = line.split()\n\tif len(data) < 3:\n\t\tcontinue\n\t\n\tif line.startswith('eap_kbl_'):\n\t\taddEntry(eap_kbl, data[2], data[0][8:12], data[1])\n\telif line.startswith('emc_ipl_'):\n\t\taddEntry(emc_ipl, data[2], data[0][8:12], data[1])\n\telif line.startswith('torus_fw_'):\n\t\taddEntry(torus_fw, data[2], data[0][9:13], data[1])\n\nf.close()\n\n\nf = open(\"data.py\", \"w\")\n\nwriteVar(f, 'EAP_KBL_MD5', eap_kbl)\nwriteVar(f, 'EMC_IPL_MD5', emc_ipl)\nwriteVar(f, 'TORUS_FW_MD5', torus_fw)\n\nf.close()\n\nprint('eap_kbl %d'%len(eap_kbl))\nprint('emc_ipl %d'%len(emc_ipl))\nprint('torus_fw %d'%len(torus_fw))\nprint()\nprint('Total %d'%(len(eap_kbl) + len(emc_ipl) + len(torus_fw)))\n\ninput()"
  },
  {
    "path": "data/md5.txt",
    "content": "Southbridge\n- [X] Aeolia A0\n  - emc_ipl_0x01\n  - eap_kbl_0x02\n  - torus_fw_0x03\n- [X] Aeolia A1\n  - emc_ipl_0x0D\n  - eap_kbl_0x0E\n  - torus_fw_0x03\n- [X] Aeolia A2\n  - emc_ipl_0x0D\n  - eap_kbl_0x0E\n  - torus_fw_0x03\n- [ ] Belize A0\n- [X] Belize B0\n  - emc_ipl_0x20\n  - eap_kbl_0x21\n  - torus_fw_0x22\n- [ ] Baikal A0\n- [ ] Baikal B0\n- [X] Baikal B1\n  - emc_ipl_0x24\n  - eap_kbl_0x25\n  - torus_fw_0x30\n- [X] Belize2 A0\n  - emc_ipl_0x2A\n  - eap_kbl_0x2B\n  - torus_fw_0x30\n\nemc_ipl:\n- 0x01: Aeolia A0 (Only on <=1.62)\n- 0x0D: Aeolia A1, Aeolia A2\n- 0x20: Belize B0\n- 0x24: Baikal B1\n- 0x28:\n- 0x2A: Belize2 A0\n- 0x2C:\n- 0x2E:\n\neap_kbl:\n- 0x02: Aeolia A0 (Only on <=1.62)\n- 0x0E: Aeolia A1, Aeolia A2\n- 0x21: Belize B0\n- 0x25: Baikal B1\n- 0x2B: Belize2 A0\n\ntorus:\n- 0x03: Version 1\n- 0x22: Version 2\n- 0x30: Version 3\n\neap_kbl_0x02  1.01  0dd462cc631623a09425f1efdd0d6524\neap_kbl_0x02  1.05  0dd462cc631623a09425f1efdd0d6524\neap_kbl_0x02  1.06  0dd462cc631623a09425f1efdd0d6524\neap_kbl_0x02  1.07  0dd462cc631623a09425f1efdd0d6524\neap_kbl_0x02  1.50  8726bf12757e2895b0e818ee732dc2be\neap_kbl_0x02  1.51  8726bf12757e2895b0e818ee732dc2be\neap_kbl_0x02  1.52  8726bf12757e2895b0e818ee732dc2be\neap_kbl_0x02  1.60  8726bf12757e2895b0e818ee732dc2be\neap_kbl_0x02  1.61  8726bf12757e2895b0e818ee732dc2be\neap_kbl_0x02  1.62  8726bf12757e2895b0e818ee732dc2be\n\neap_kbl_0x0E  1.01  42720e601de7d9df8127f04041f76840\neap_kbl_0x0E  1.05  42720e601de7d9df8127f04041f76840\neap_kbl_0x0E  1.06  42720e601de7d9df8127f04041f76840\neap_kbl_0x0E  1.07  42720e601de7d9df8127f04041f76840\neap_kbl_0x0E  1.50  4c50dec899196800cbec8542c6a13e51\neap_kbl_0x0E  1.51  4c50dec899196800cbec8542c6a13e51\neap_kbl_0x0E  1.52  4c50dec899196800cbec8542c6a13e51\neap_kbl_0x0E  1.60  4c50dec899196800cbec8542c6a13e51\neap_kbl_0x0E  1.61  4c50dec899196800cbec8542c6a13e51\neap_kbl_0x0E  1.62  4c50dec899196800cbec8542c6a13e51\neap_kbl_0x0E  1.70  9a32fd540c6018eaab0517f4829b13f8\neap_kbl_0x0E  1.71  9a32fd540c6018eaab0517f4829b13f8\neap_kbl_0x0E  1.72  9a32fd540c6018eaab0517f4829b13f8\neap_kbl_0x0E  1.74  9a32fd540c6018eaab0517f4829b13f8\neap_kbl_0x0E  1.75  9a32fd540c6018eaab0517f4829b13f8\neap_kbl_0x0E  1.76  9a32fd540c6018eaab0517f4829b13f8\neap_kbl_0x0E  2.00  dd57dae7d8869dc79d50a0c4e3eed538\neap_kbl_0x0E  2.01  dd57dae7d8869dc79d50a0c4e3eed538\neap_kbl_0x0E  2.02  dd57dae7d8869dc79d50a0c4e3eed538\neap_kbl_0x0E  2.03  dd57dae7d8869dc79d50a0c4e3eed538\neap_kbl_0x0E  2.04  dd57dae7d8869dc79d50a0c4e3eed538\neap_kbl_0x0E  2.50  6b7f4bcef4fb0330497161d24ff15fa0\neap_kbl_0x0E  2.51  455315c5918041a8dbe41585853a4ed2\neap_kbl_0x0E  2.55  af8a85132e74d2b617ef63cea123ba9f\neap_kbl_0x0E  2.57  5ce1f2759e1608057f7e17fc06fa8bee\neap_kbl_0x0E  3.00  44c7fe893accbeb93dab5193f4802280\neap_kbl_0x0E  3.10  048459908f7e45bbff70e2db2a97e58c\neap_kbl_0x0E  3.11  570c48b58c81245cd065fdd0bfb6e985\neap_kbl_0x0E  3.15  6dfb5917cfea365c6c89cf87072624ae\neap_kbl_0x0E  3.50  44dc35834eef914dcddb0a39a1a3dc70\neap_kbl_0x0E  3.55  7995cac008a1bd3ccfbf8becab35eb4d\neap_kbl_0x0E  3.70  79c49a1288fc7d60f75231d2dce10566\neap_kbl_0x0E  4.00  bb3b569ac01110ac0c16c758100491d5\neap_kbl_0x0E  4.01  ddb3cec56aecd2b15a82b829e1a372fe\neap_kbl_0x0E  4.05  edc4e6eda1678b33d2aa0143e538f8b4\neap_kbl_0x0E  4.06  b42535824e7723240dd4b082a3f60322\neap_kbl_0x0E  4.07  358302d1385b223f7574cbf18868c0d0\neap_kbl_0x0E  4.50  650bde2da36b1f3d31be9e5ce9c6a5cc\neap_kbl_0x0E  4.55  a7623c9af98df21a7fdfab7e37bcf613\neap_kbl_0x0E  4.70  0be4a2e5b370a7de89759074b079ab3c\neap_kbl_0x0E  4.71  e46585bf19bf04fd167a399f4ea117e1\neap_kbl_0x0E  4.72  be76ae16a1afd45b11d476cdb4385dd3\neap_kbl_0x0E  4.73  8f95d2b54627f5edc2a96f7cb5c8308b\neap_kbl_0x0E  4.74  919e9d46632868ee4cf3f3326a71c5e3\neap_kbl_0x0E  5.00  b8ed5f9cec8e41ae026de12e21d72b0b\neap_kbl_0x0E  5.01  1af9f0c231a8941a8c553c6966122130\neap_kbl_0x0E  5.03  b99b19ffd7c9d6c9874cbb94a7e78c66\neap_kbl_0x0E  5.05  8906a34e24318e90a62bba5c5a97ad00\neap_kbl_0x0E  5.07\neap_kbl_0x0E  5.50  f26d56b010b01221e8275837ee565fbb\neap_kbl_0x0E  5.53  39a984dbac3ccb94b4480aa25c8b4e1b\neap_kbl_0x0E  5.55  633baf585cee4417834ff8d7ce62e3bd\neap_kbl_0x0E  5.56  9a91697500616905426d4a84aefa665a\neap_kbl_0x0E  6.00  9a91697500616905426d4a84aefa665a\neap_kbl_0x0E  6.02  9c382d60c4941337065823545ae16d3c\neap_kbl_0x0E  6.20  820f8b918ab86c88c1c78012ec5f6d1a\neap_kbl_0x0E  6.50  0a1c51b97b423afe0c0f5aa77d9ee8d7\neap_kbl_0x0E  6.51  fa0be2c08d926ea3bddb97fa939343bd\neap_kbl_0x0E  6.70  9f29600822a91a99a949af2db143bfc2\neap_kbl_0x0E  6.71  e544d20695af0c52e335a1e2d04fc542\neap_kbl_0x0E  6.72  d0414634023ba61fd3a4a5a6077f79b8\neap_kbl_0x0E  7.00  d3133368cf3f43d751589aee694bc42d\neap_kbl_0x0E  7.01  522023ce61ced68525fbfdeb0c26c719\neap_kbl_0x0E  7.02  9ae781691d31c931b11a288fd72ef0d0\neap_kbl_0x0E  7.50  3b326bb3475dd98317b17096d9883817\neap_kbl_0x0E  7.51  e95160734d6557cff562df4896364347\neap_kbl_0x0E  7.55  229b3917e607a55fe987df3b8738c09e\neap_kbl_0x0E  8.00  b48d67cd6e0fcfcf6b11554e034b3949\neap_kbl_0x0E  8.01  d95895c6e17b35d58f5d6c3c1b795d17\neap_kbl_0x0E  8.03  38a8834ccf0d7c77d876adedfdad26bb\neap_kbl_0x0E  8.50  77ff85ef917c4003f32e7be03b1c237c\neap_kbl_0x0E  8.52  04e544df5deb249ed65f28e9df3376b0\neap_kbl_0x0E  9.00  6c7f9451e02a0ab11a84c6788117189f\neap_kbl_0x0E  9.03  dd7521db7eb7c20b23b20094aab681b0\neap_kbl_0x0E  9.04  9c1d709f7664cb8b184a09e7970d2221\neap_kbl_0x0E  9.50  582bc68d9ab845107209293a67042578\neap_kbl_0x0E  9.51  fc29d959e8d3b8933b4e15b13a5cd298\neap_kbl_0x0E  9.60  dbbd392ce2314d16b649f67b2f61e5d5\neap_kbl_0x0E  10.00  8ddfae36db09473cfd6bd93ec8b2456f\neap_kbl_0x0E  10.01  5f64b9e084b18ad2dd106f1f0b134e6b\neap_kbl_0x0E  10.50  1a14428496d01e0120f6930279e89f24\neap_kbl_0x0E  10.70  537ba86792b6dc80878c50931c67abc1\neap_kbl_0x0E  10.71  2972f90ec990ff02022f40374073a3bd\neap_kbl_0x0E  11.00  0b0bea74a608afdb18c1084d0e58bbe0\neap_kbl_0x0E  11.02  25f53c8b333b88d7d429524915d7f583\neap_kbl_0x0E  11.50  a3939952cf4ec2c12b20a00c1cd12c94\neap_kbl_0x0E  11.52  2145706353aa2239f0a1ac3188235bc5\neap_kbl_0x0E  12.00  63b7c50fbf566c57feb793aafc3094db\neap_kbl_0x0E  12.02  ec57e59267896ea10ff6be6a4076ff5d\neap_kbl_0x0E  12.50  6821c5a1313500108bae23e010e2b507\neap_kbl_0x0E  12.52  2631f483ed174b46aefba7d55589e7ee\neap_kbl_0x0E  13.00  9f28a740b94f4f2b9ee16c90063659fc\neap_kbl_0x0E  13.02  f573826e2a5e61410a067bf2d31ddf63\neap_kbl_0x0E  13.04  bbef26b24beca531af27080bcb9ad01d\neap_kbl_0x0E  13.50  4aab5ca12b7b8d4ca37a85056de59ec0\n\neap_kbl_0x21  2.00  7a00d6dc1f82fdede5eb03c58a21a015\neap_kbl_0x21  2.01  7a00d6dc1f82fdede5eb03c58a21a015\neap_kbl_0x21  2.02  7a00d6dc1f82fdede5eb03c58a21a015\neap_kbl_0x21  2.03  7a00d6dc1f82fdede5eb03c58a21a015\neap_kbl_0x21  2.04  7a00d6dc1f82fdede5eb03c58a21a015\neap_kbl_0x21  2.50  0238c28f5c478a2432f070ad24068a63\neap_kbl_0x21  2.51  e19c859a5287e2477873d4e565b35186\neap_kbl_0x21  2.55  5daf707fe6efe0bab4d9db0bb8d96a8b\neap_kbl_0x21  2.57  d65b7789a0621352f877eaab3e5dff60\neap_kbl_0x21  3.00  9d1b6a3a0fc9f3a6d41e20e5bfad2d10\neap_kbl_0x21  3.10  d9ee437cba6e8c4bd887d7778c4040f5\neap_kbl_0x21  3.11  32abf86d765b20d9b875ea28eb10cfb6\neap_kbl_0x21  3.15  d0172f048e0bd77447d8d591476da86e\neap_kbl_0x21  3.50  b7aa54cd77184cc152aa5a2c720b7c0d\neap_kbl_0x21  3.55  d7cfea21dac13f07a3488dc13fd6fd11\neap_kbl_0x21  3.70  b071c7101ea87198c26c6ec07adbbf16\neap_kbl_0x21  4.00  99427d57097057e5f702f75985b47db4\neap_kbl_0x21  4.01  cb0a8bf9ef19fd0ce811ce02f9ae8315\neap_kbl_0x21  4.05  525530be2dcd96082eeb967cb600d741\neap_kbl_0x21  4.06  1cb19934c7150c3e33f6053dfbd488ab\neap_kbl_0x21  4.07  1d0899aa8245f254148069555d1d03de\neap_kbl_0x21  4.50  05152f1e55667632d28a41a34e9b15d1\neap_kbl_0x21  4.55  b8cdaca258483294ba09388992fdb5ed\neap_kbl_0x21  4.70  6ab5149f58a1d2023d3d44db47558d6a\neap_kbl_0x21  4.71  3c57f7e0b7d6789709dbdffefd6005f2\neap_kbl_0x21  4.72  43c87a039bdfeab3ccaf663032ffbaf6\neap_kbl_0x21  4.73  f9e6bd36622bf0ff53ef809f4d7338fe\neap_kbl_0x21  4.74  52380c701e6851d1f11837c69b81e886\neap_kbl_0x21  5.00  c30227273e40b33c0ab50afd2ffebbbd\neap_kbl_0x21  5.01  9b8a56dbe05b563ba1e7bc51d53c6921\neap_kbl_0x21  5.03  ecd8cf4270f0eded351dc40327d89fa4\neap_kbl_0x21  5.05  8db9dfd190fcb0578d8774979e181add\neap_kbl_0x21  5.07\neap_kbl_0x21  5.50  65b9f22b2fa1cf2118670283062bc164\neap_kbl_0x21  5.53  d75fd7bd3501ca7df6eb1b5b4b1cb80f\neap_kbl_0x21  5.55  6a0403c68d75ab69d3dbc77096175f76\neap_kbl_0x21  5.56  c4165f48de965c117d08f6fcc390d713\neap_kbl_0x21  6.00  c4165f48de965c117d08f6fcc390d713\neap_kbl_0x21  6.02  b76752e2c27286f6407dea379203f3a7\neap_kbl_0x21  6.20  8a8a74ca82ee58556d9b206c8e9b89b8\neap_kbl_0x21  6.50  3aa312df7d1b72dd8fcf26f459008015\neap_kbl_0x21  6.51  f0784a4b2381dd234cb05e0728115fee\neap_kbl_0x21  6.70  dbda962b0857f596866e3a7341e4f2e0\neap_kbl_0x21  6.71  969e0b58ba249e6dfe18ed5e25edfbda\neap_kbl_0x21  6.72  31a035bace215d01ebbdbcd622cf8613\neap_kbl_0x21  7.00  bf0793b1efc0fe672c5058224583f5ac\neap_kbl_0x21  7.01  b76313967cfe1dad00fbe734fe782e5a\neap_kbl_0x21  7.02  6aa9f141f9f644aca2debececad2e1a0\neap_kbl_0x21  7.50  c72c71a0595ceb4ebde349696bd7698b\neap_kbl_0x21  7.51  6bd05840bfded01d1b94bfd44d3c73c0\neap_kbl_0x21  7.55  11a00bea89e59b7cbaba5c83a6282328\neap_kbl_0x21  8.00  c22bbf754677b20d082c6c87a324f7a2\neap_kbl_0x21  8.01  669ca94a5328e899d0fa2575c30762ff\neap_kbl_0x21  8.03  9166879e76e29ba613ce027419461034\neap_kbl_0x21  8.50  749880246a83f2e6267f1dcc32eeee4a\neap_kbl_0x21  8.52  91e47f45865fc36b11d927684380f70e\neap_kbl_0x21  9.00  cbb340ec96eb4c347e354c494dfea5e9\neap_kbl_0x21  9.03  69b27a6ceba152e8067344a1d3c770cf\neap_kbl_0x21  9.04  f59944abb76d9e9a2189658116405482\neap_kbl_0x21  9.50  2a23172fa612eb264ec0600a716fedb3\neap_kbl_0x21  9.51  e4cdcbd449f1c8125bd6cf6176f6e1bb\neap_kbl_0x21  9.60  942d9dd58fd98e9b280bed10995b73ed\neap_kbl_0x21  10.00  df54167942f64899ef65c850df07f4d6\neap_kbl_0x21  10.01  eec63b1ad0c5ad407a6067a0134aa498\neap_kbl_0x21  10.50  e7bd676c4c24f3ebc8f94e198c152623\neap_kbl_0x21  10.70  17a620ede33cdbfe5ed4c6f38d1a5139\neap_kbl_0x21  10.71  1bb42a14c97b15a4e426ed8b79b2301f\neap_kbl_0x21  11.00  57eaaf224af813ce645b9a6ee6190b7a\neap_kbl_0x21  11.02  16ff9ff40585f00e9834689888975b46\neap_kbl_0x21  11.50  cb8ea978017b961da9f450e842976e2a\neap_kbl_0x21  11.52  b4269b675add1f67b2139d4bc3da79fc\neap_kbl_0x21  12.00  29ac04f4e472bd6f7651ba074c55d193\neap_kbl_0x21  12.02  451db05d4ac556dc320d93052ad12fad\neap_kbl_0x21  12.50  502322eda265417a47380c03590eeb6b\neap_kbl_0x21  12.52  8d2153efa1ae887b22013277b31ad767\neap_kbl_0x21  13.00  333111ec3d0788b1e61cf983b7126187\neap_kbl_0x21  13.02  5a623d3d813c72feafc7a8b1ba5c3325\neap_kbl_0x21  13.04  a5fcef73d57c3f70c52be216e4c7783a\neap_kbl_0x21  13.50  bb43c942346a2f261352dd2540053d73\n\neap_kbl_0x25  3.00  8d936050f378b00d5c2cd286f32f25b7\neap_kbl_0x25  3.10  1d0be06c8a097ca8e1b1b38139800520\neap_kbl_0x25  3.11  fde812fd90341881bd5ef3d25e2c1b5b\neap_kbl_0x25  3.15  bd0bf6881bc1d387beeed793960be5ed\neap_kbl_0x25  3.50  2ebe9d480aac7611f5baf34077c3e89c\neap_kbl_0x25  3.55  c1ef90ddba5fd1fe49ed36a128136aba\neap_kbl_0x25  3.70  51e6d6a82fdd3239fccb660a463d6138\neap_kbl_0x25  4.00  c3bffb04f99f74485b3150e2b9642bfd\neap_kbl_0x25  4.01  d54ffcee5ae684e48c349d8cfdfd6ad8\neap_kbl_0x25  4.05  3a216f5c95f6eb938d508280c1f2915b\neap_kbl_0x25  4.06  a6fe26c0f43c632f7a9cb63d9690e4ef\neap_kbl_0x25  4.07  324ab73b7222b872c4ea9e8c20272bd9\neap_kbl_0x25  4.50  66360e6454e11e907184226538e16ec2\neap_kbl_0x25  4.55  d1089a7bb46e1fc22affed585508c748\neap_kbl_0x25  4.70  3186ccf7e439bd2b418cff4fe7791b6c\neap_kbl_0x25  4.71  3e90c987a61f33cce21e04583b1ca0c1\neap_kbl_0x25  4.72  534ab345e42a61b38eb621378c8f6cbb\neap_kbl_0x25  4.73  f1d4ed0c9ea9ac67b4387ab8d0abf0a1\neap_kbl_0x25  4.74  a3ba2efe1d711f95bd62c8930d0eed1a\neap_kbl_0x25  5.00  ffdcbe00d8ea3eac519dde856765b13e\neap_kbl_0x25  5.01  f7a1068f0f67ee5ea9a19e2562ef15f2\neap_kbl_0x25  5.03  6c4b0c48f39be5bdd73b3d2c238d82fb\neap_kbl_0x25  5.05  ceed4a969f2d1a9421a69c138c5ddc72\neap_kbl_0x25  5.07\neap_kbl_0x25  5.50  07670332f9976f0c3bc546b67a722cda\neap_kbl_0x25  5.53  969c3985296cb3472fc835bbe608528e\neap_kbl_0x25  5.55  b3bb2409d53615af2fb521505015e20c\neap_kbl_0x25  5.56  dea6efa9081c318b3668d1bc7a000f9b\neap_kbl_0x25  6.00  dea6efa9081c318b3668d1bc7a000f9b\neap_kbl_0x25  6.02  c20d3a1731106cf1c010f874b17ea5c7\neap_kbl_0x25  6.20  b9275aa39e3760b7c2bde4c77d417d70\neap_kbl_0x25  6.50  bbb2c4c65433873f70f65b767a27f9b0\neap_kbl_0x25  6.51  dc650a90a9b874d5a2dcdfb60cd789c4\neap_kbl_0x25  6.70  052aec3f520bbcb1435d46267979ccf6\neap_kbl_0x25  6.71  08e30b521e41d07755a5015187beac05\neap_kbl_0x25  6.72  65a8e0f713382eaf1092b043f5cdca40\neap_kbl_0x25  7.00  16a67787c38d3139199e3a6e01f63f7f\neap_kbl_0x25  7.01  b1cb2c71470306aa7c9fb58ca5b19a4b\neap_kbl_0x25  7.02  6dc904eb6a2bdd6ff903ad99ec836991\neap_kbl_0x25  7.50  dc3e4e90a6aab238316f97e857637470\neap_kbl_0x25  7.51  a4df1d0de2ec96fb91cbe5224560b4a3\neap_kbl_0x25  7.55  eb772c3adc78271f923e6e4f4f8d6ccb\neap_kbl_0x25  8.00  86c77e27756f8376455b148fb9559a2e\neap_kbl_0x25  8.01  6564c0542eafc618f8ae94d8701efa4e\neap_kbl_0x25  8.03  3339c502ab56f241b5528c7638a20d36\neap_kbl_0x25  8.50  96b5bc1cb9a6999e64d4a5d36f6a06e7\neap_kbl_0x25  8.52  4063d7b68a7e9d7456b382b845a811a8\neap_kbl_0x25  9.00  f65bf15b532b15535f438e2f61fa980e\neap_kbl_0x25  9.03  33890e2cb7e1631716ab2e17fcbb83d9\neap_kbl_0x25  9.04  9d8ffa31cc333137ff1878d595d52200\neap_kbl_0x25  9.50  d05b183d387747053d185a4090261e25\neap_kbl_0x25  9.51  d669c591de8c0c7e7993f3dc566eac80\neap_kbl_0x25  9.60  e65cc6cd6f4cad6b4f59da235bf44170\neap_kbl_0x25  10.00  7c1cdbf13c138ce1a83de130b4263429\neap_kbl_0x25  10.01  9dfbe785da82eb108b1e97f25ed586f5\neap_kbl_0x25  10.50  3267e5dfc202c068071b171c3a0cb258\neap_kbl_0x25  10.70  ddc17ad1bf9c3b1a5ecf71f6937472ef\neap_kbl_0x25  10.71  df00320082bb4421c2247f792ea0e682\neap_kbl_0x25  11.00  cadd11b599a512ce87c52e25a2e5244d\neap_kbl_0x25  11.02  3b6146cc58794d723cad16393cab78a7\neap_kbl_0x25  11.50  591f2d1c1893deb5be5ffcb1f572f0dc\neap_kbl_0x25  11.52  ec4f9bee3faf750f42985d819a29531e\neap_kbl_0x25  12.00  64f4f9e4eb31984f73db37181555735c\neap_kbl_0x25  12.02  371e9622798e01647dc13a6d92ee4b6f\neap_kbl_0x25  12.50  dd11599ca2b0c74a179dca205943affb\neap_kbl_0x25  12.52  fcfc2114ece872c6b5441f2e0ffe3d1e\neap_kbl_0x25  13.00  13552aca8f40deb0ad367b8ffc61f698\neap_kbl_0x25  13.02  22e6d1e34bbf63ffd3ca4ce45909a78b\neap_kbl_0x25  13.04  1b87a69900a54bcd6a7535b405430ab5\neap_kbl_0x25  13.50  cebb93d67f62862731366dc9fd350c5e\n\neap_kbl_0x2B  3.70  d69cb4538da190706ef316205e04e624\neap_kbl_0x2B  4.00  27ab170cfe634e9525c0ecc29129aaed\neap_kbl_0x2B  4.01  cb38a79958287f53970ca061c20d8f7e\neap_kbl_0x2B  4.05  b64ab08ced7d56953d98774690c28ec2\neap_kbl_0x2B  4.06  4bf88b321c7cfc68200cf2a62d7a94f6\neap_kbl_0x2B  4.07  7d4fdd394b6e195cac4647aa0164af0a\neap_kbl_0x2B  4.50  c29d74755670823aaeaba5f960c16e77\neap_kbl_0x2B  4.55  1e0332ff2831aed8972f52d19d89c8f0\neap_kbl_0x2B  4.70  2f62d33dffb05732c8a50e571d92285f\neap_kbl_0x2B  4.71  9024b6fc90bae356d679561e7bdc83e7\neap_kbl_0x2B  4.72  61b5b3c7c79193be73f1621a56a8f6f6\neap_kbl_0x2B  4.73  c85ea89f8fc7ab7cf4d6f39ec02e6159\neap_kbl_0x2B  4.74  3e67e445509481b0b30b4d6771e6384d\neap_kbl_0x2B  5.00  7e332ac82f13f188241ebca951f1e7bf\neap_kbl_0x2B  5.01  635e4c46c5e5eaa97c36058dad663637\neap_kbl_0x2B  5.03  33c5ec1e27d7226bf794e94a388d07b3\neap_kbl_0x2B  5.05  0e68e601d2a2215499def6b42ea13421\neap_kbl_0x2B  5.07  7116D03A44E1E7B45F387C2BA761BA37\neap_kbl_0x2B  5.50  76968b377b4be00bcf83fa3f0b3d5150\neap_kbl_0x2B  5.53  aa264a65abd610970fe575f20dbab5cc\neap_kbl_0x2B  5.55  c4ee3172505d150907f1f687849259b8\neap_kbl_0x2B  5.56  facd947b3181c30faa035d18a570bd34\neap_kbl_0x2B  6.00  facd947b3181c30faa035d18a570bd34\neap_kbl_0x2B  6.02  45194d85709c177938a77ff7f2bcc487\neap_kbl_0x2B  6.20  ff8df7988e483df9a885da9b3cfff02b\neap_kbl_0x2B  6.50  e557b5ce24e398ad8416f18bd2da5a25\neap_kbl_0x2B  6.51  9157cbbcace103f749f8ab16c7652e32\neap_kbl_0x2B  6.70  3aa814001014da4997af2f70a67d438b\neap_kbl_0x2B  6.71  85cb60a307c6601e931417e282b76802\neap_kbl_0x2B  6.72  4b5550bc70508bca2e1514594ce8b004\neap_kbl_0x2B  7.00  5cf4f0df76e75993b02a9d68934e41f3\neap_kbl_0x2B  7.01  a6a5b22486e4173e3846ce23d7a7242d\neap_kbl_0x2B  7.02  9725efa65b1b9cd6a6cecabdf13c21e0\neap_kbl_0x2B  7.50  e60a407278a0d5153a120eb43e52a708\neap_kbl_0x2B  7.51  b309af1d980deeac8842ec2337e3e57b\neap_kbl_0x2B  7.55  520b79d530abf316d0b6153a3789c422\neap_kbl_0x2B  8.00  84b7dfc3a45220a95936c9e6ed14cdf7\neap_kbl_0x2B  8.01  d2f3df620b241e31d46fdaaabeecba1d\neap_kbl_0x2B  8.03  9fd9a402a5c9faad17ca7bf97fd907cf\neap_kbl_0x2B  8.50  f69d5df408d9d2571804626af42b88b9\neap_kbl_0x2B  8.52  089e1b2fcba07e5750357c98d65a71c1\neap_kbl_0x2B  9.00  7ba3cf4a6cc0fb9f223bf4ab7a7c8c62\neap_kbl_0x2B  9.03  14e76e1a83e0d86d3b07179d213149d0\neap_kbl_0x2B  9.04  8f2f75d7ff9b170d95f7204b156991a7\neap_kbl_0x2B  9.50  895470adee78f59a6a6c1208249cc8d9\neap_kbl_0x2B  9.51  51514310853d0411d7662120118e7244\neap_kbl_0x2B  9.60  28930dd371d95fbe768cd7ea12f2bc69\neap_kbl_0x2B  10.00  7417452947bad75fc113e38eeb032946\neap_kbl_0x2B  10.01  ae9163f07f8bb423d44b15e377f09a6a\neap_kbl_0x2B  10.50  536214ca8cd665157ce3e48b375c9496\neap_kbl_0x2B  10.70  d7e5b5b6dc12fd80c9651490cc758bbe\neap_kbl_0x2B  10.71  4dcb324baac3cc5ac045042b142b9814\neap_kbl_0x2B  11.00  20bb9d1aaa41c0fe5d46ea03347ece9c\neap_kbl_0x2B  11.02  382c0dd756199b6e925707079c174220\neap_kbl_0x2B  11.50  5a7dffc0280b356d66cee2370e6880fc\neap_kbl_0x2B  11.52  c4ad490bcaffac79d3e29b0781fca86e\neap_kbl_0x2B  12.00  defe9549594dcec455875d2de764f4d2\neap_kbl_0x2B  12.02  bf883b85b8ce40b3fae6509762303ccb\neap_kbl_0x2B  12.50  f58529284cd9d16ef04012fa02fc77c1\neap_kbl_0x2B  12.52  593b9912cfe9d4dcefb8e23f633c2257\neap_kbl_0x2B  13.00  b2942b480d0c83be1b62e4669a3c02a0\neap_kbl_0x2B  13.02  8df4acd2cb12698979a053d3370c2052\neap_kbl_0x2B  13.04  40b1f61b5b8b5d98a10dcf9310d52224\neap_kbl_0x2B  13.50  5ed3f70544c880905819fcc2c23f48f6\n\n\n\nemc_ipl_0x01  1.01  475c3c78d08a9445667730cea05e7ced\nemc_ipl_0x01  1.05  15c90ebe9e879aed9ea917317e304da1\nemc_ipl_0x01  1.06  15c90ebe9e879aed9ea917317e304da1\nemc_ipl_0x01  1.07  15c90ebe9e879aed9ea917317e304da1\nemc_ipl_0x01  1.50  080ea78a7c141d1886335584b6e19717\nemc_ipl_0x01  1.51  080ea78a7c141d1886335584b6e19717\nemc_ipl_0x01  1.52  080ea78a7c141d1886335584b6e19717\nemc_ipl_0x01  1.60  f71f9f0dd17052a0ca2bd0f11c6698e0\nemc_ipl_0x01  1.61  f71f9f0dd17052a0ca2bd0f11c6698e0\nemc_ipl_0x01  1.62  f71f9f0dd17052a0ca2bd0f11c6698e0\n\nemc_ipl_0x0D  1.01  30643532bf21e2eae1bc75e14abd6d64\nemc_ipl_0x0D  1.05  ad217d6070cb8b606930b68e4a384fca\nemc_ipl_0x0D  1.06  ad217d6070cb8b606930b68e4a384fca\nemc_ipl_0x0D  1.07  ad217d6070cb8b606930b68e4a384fca\nemc_ipl_0x0D  1.50  00567ed4a98b74504132bd386e994842\nemc_ipl_0x0D  1.51  00567ed4a98b74504132bd386e994842\nemc_ipl_0x0D  1.52  00567ed4a98b74504132bd386e994842\nemc_ipl_0x0D  1.60  9f0588c5ac05f2314d82c3b2aa5dafe6\nemc_ipl_0x0D  1.61  9f0588c5ac05f2314d82c3b2aa5dafe6\nemc_ipl_0x0D  1.62  9f0588c5ac05f2314d82c3b2aa5dafe6\nemc_ipl_0x0D  1.70  a0217b34fe57f28711da87fedcbdc9be\nemc_ipl_0x0D  1.71  a0217b34fe57f28711da87fedcbdc9be\nemc_ipl_0x0D  1.72  a0217b34fe57f28711da87fedcbdc9be\nemc_ipl_0x0D  1.74  a0217b34fe57f28711da87fedcbdc9be\nemc_ipl_0x0D  1.75  a0217b34fe57f28711da87fedcbdc9be\nemc_ipl_0x0D  1.76  a0217b34fe57f28711da87fedcbdc9be\nemc_ipl_0x0D  2.00  7114f1280bb8d105ab04c2e92ee47198\nemc_ipl_0x0D  2.01  7114f1280bb8d105ab04c2e92ee47198\nemc_ipl_0x0D  2.02  7114f1280bb8d105ab04c2e92ee47198\nemc_ipl_0x0D  2.03  7114f1280bb8d105ab04c2e92ee47198\nemc_ipl_0x0D  2.04  7114f1280bb8d105ab04c2e92ee47198\nemc_ipl_0x0D  2.50  587a68fe4445fa201ae4c189c3c49846\nemc_ipl_0x0D  2.51  587a68fe4445fa201ae4c189c3c49846\nemc_ipl_0x0D  2.55  587a68fe4445fa201ae4c189c3c49846\nemc_ipl_0x0D  2.57  587a68fe4445fa201ae4c189c3c49846\nemc_ipl_0x0D  3.00  960fde9389f9bdd850f86f2ad9fa88ad\nemc_ipl_0x0D  3.10  960fde9389f9bdd850f86f2ad9fa88ad\nemc_ipl_0x0D  3.11  960fde9389f9bdd850f86f2ad9fa88ad\nemc_ipl_0x0D  3.15  960fde9389f9bdd850f86f2ad9fa88ad\nemc_ipl_0x0D  3.50  c59f900b0a11e9dfac55fa50f40cd40d\nemc_ipl_0x0D  3.55  c59f900b0a11e9dfac55fa50f40cd40d\nemc_ipl_0x0D  3.70  c59f900b0a11e9dfac55fa50f40cd40d\nemc_ipl_0x0D  4.00  8e94da07cc664f887d9885530f92853c\nemc_ipl_0x0D  4.01  8e94da07cc664f887d9885530f92853c\nemc_ipl_0x0D  4.05  8e94da07cc664f887d9885530f92853c\nemc_ipl_0x0D  4.06  8e94da07cc664f887d9885530f92853c\nemc_ipl_0x0D  4.07  8e94da07cc664f887d9885530f92853c\nemc_ipl_0x0D  4.50  17e29d3a616e13c68220fbe20f75a754\nemc_ipl_0x0D  4.55  17e29d3a616e13c68220fbe20f75a754\nemc_ipl_0x0D  4.70  7ee5ce05605ced2539ff2ba93e766c44\nemc_ipl_0x0D  4.71  7ee5ce05605ced2539ff2ba93e766c44\nemc_ipl_0x0D  4.72  7ee5ce05605ced2539ff2ba93e766c44\nemc_ipl_0x0D  4.73  7ee5ce05605ced2539ff2ba93e766c44\nemc_ipl_0x0D  4.74  7ee5ce05605ced2539ff2ba93e766c44\nemc_ipl_0x0D  5.00  cd99d840146286553243e8c1ce16667a\nemc_ipl_0x0D  5.01  cd99d840146286553243e8c1ce16667a\nemc_ipl_0x0D  5.03  cd99d840146286553243e8c1ce16667a\nemc_ipl_0x0D  5.05  cd99d840146286553243e8c1ce16667a\nemc_ipl_0x0D  5.07\nemc_ipl_0x0D  5.50  371cc4f3f0c6dd284e766113e7b34ee8\nemc_ipl_0x0D  5.53  371cc4f3f0c6dd284e766113e7b34ee8\nemc_ipl_0x0D  5.55  371cc4f3f0c6dd284e766113e7b34ee8\nemc_ipl_0x0D  5.56  4706d6ec326a4e91ab9c2b4769e3e2a7\nemc_ipl_0x0D  6.00  4706d6ec326a4e91ab9c2b4769e3e2a7\nemc_ipl_0x0D  6.02  4706d6ec326a4e91ab9c2b4769e3e2a7\nemc_ipl_0x0D  6.20  4706d6ec326a4e91ab9c2b4769e3e2a7\nemc_ipl_0x0D  6.50  94642a952d29a1fefba9e60fac6ffe5c\nemc_ipl_0x0D  6.51  94642a952d29a1fefba9e60fac6ffe5c\nemc_ipl_0x0D  6.70  94642a952d29a1fefba9e60fac6ffe5c\nemc_ipl_0x0D  6.71  94642a952d29a1fefba9e60fac6ffe5c\nemc_ipl_0x0D  6.72  94642a952d29a1fefba9e60fac6ffe5c\nemc_ipl_0x0D  7.00  94642a952d29a1fefba9e60fac6ffe5c\nemc_ipl_0x0D  7.01  94642a952d29a1fefba9e60fac6ffe5c\nemc_ipl_0x0D  7.02  94642a952d29a1fefba9e60fac6ffe5c\nemc_ipl_0x0D  7.50  94642a952d29a1fefba9e60fac6ffe5c\nemc_ipl_0x0D  7.51  94642a952d29a1fefba9e60fac6ffe5c\nemc_ipl_0x0D  7.55  94642a952d29a1fefba9e60fac6ffe5c\nemc_ipl_0x0D  8.00  94642a952d29a1fefba9e60fac6ffe5c\nemc_ipl_0x0D  8.01  94642a952d29a1fefba9e60fac6ffe5c\nemc_ipl_0x0D  8.03  94642a952d29a1fefba9e60fac6ffe5c\nemc_ipl_0x0D  8.50  42df90f470676fbf456e9962ca885f17\nemc_ipl_0x0D  8.52  42df90f470676fbf456e9962ca885f17\nemc_ipl_0x0D  9.00  42df90f470676fbf456e9962ca885f17\nemc_ipl_0x0D  9.03  42df90f470676fbf456e9962ca885f17\nemc_ipl_0x0D  9.04  42df90f470676fbf456e9962ca885f17\nemc_ipl_0x0D  9.50  42df90f470676fbf456e9962ca885f17\nemc_ipl_0x0D  9.51  42df90f470676fbf456e9962ca885f17\nemc_ipl_0x0D  9.60  42df90f470676fbf456e9962ca885f17\nemc_ipl_0x0D  10.00  6b77552dfe6f390b3ab9a6ad6460ecf9\nemc_ipl_0x0D  10.01  6b77552dfe6f390b3ab9a6ad6460ecf9\nemc_ipl_0x0D  10.50  e539774a1f6b55ef74aab9017279c64e\nemc_ipl_0x0D  10.70  e539774a1f6b55ef74aab9017279c64e\nemc_ipl_0x0D  10.71  e539774a1f6b55ef74aab9017279c64e\nemc_ipl_0x0D  11.00  e539774a1f6b55ef74aab9017279c64e\nemc_ipl_0x0D  11.02  e539774a1f6b55ef74aab9017279c64e\nemc_ipl_0x0D  11.50  e539774a1f6b55ef74aab9017279c64e\nemc_ipl_0x0D  11.52  e539774a1f6b55ef74aab9017279c64e\nemc_ipl_0x0D  12.00  e539774a1f6b55ef74aab9017279c64e\nemc_ipl_0x0D  12.02  e539774a1f6b55ef74aab9017279c64e\nemc_ipl_0x0D  12.50  e539774a1f6b55ef74aab9017279c64e\nemc_ipl_0x0D  12.52  e539774a1f6b55ef74aab9017279c64e\nemc_ipl_0x0D  13.00  e539774a1f6b55ef74aab9017279c64e\nemc_ipl_0x0D  13.02  e539774a1f6b55ef74aab9017279c64e\nemc_ipl_0x0D  13.04  e539774a1f6b55ef74aab9017279c64e\nemc_ipl_0x0D  13.50  e539774a1f6b55ef74aab9017279c64e\n\nemc_ipl_0x20  2.00  0bdb2b616b964b34845f3c1c2b362a1d\nemc_ipl_0x20  2.01  0bdb2b616b964b34845f3c1c2b362a1d\nemc_ipl_0x20  2.02  0bdb2b616b964b34845f3c1c2b362a1d\nemc_ipl_0x20  2.03  0bdb2b616b964b34845f3c1c2b362a1d\nemc_ipl_0x20  2.04  0bdb2b616b964b34845f3c1c2b362a1d\nemc_ipl_0x20  2.50  5503170e7e770d8c2c0ae34abe905b65\nemc_ipl_0x20  2.51  5503170e7e770d8c2c0ae34abe905b65\nemc_ipl_0x20  2.55  5503170e7e770d8c2c0ae34abe905b65\nemc_ipl_0x20  2.57  5503170e7e770d8c2c0ae34abe905b65\nemc_ipl_0x20  3.00  41363eae2616290c5ef7afb0bf811451\nemc_ipl_0x20  3.10  41363eae2616290c5ef7afb0bf811451\nemc_ipl_0x20  3.11  41363eae2616290c5ef7afb0bf811451\nemc_ipl_0x20  3.15  41363eae2616290c5ef7afb0bf811451\nemc_ipl_0x20  3.50  54695eae3a6b15f09b5f970533040e17\nemc_ipl_0x20  3.55  54695eae3a6b15f09b5f970533040e17\nemc_ipl_0x20  3.70  ded9e797fe30a6e297aa26fda4ad056f\nemc_ipl_0x20  4.00  b93f5422c35ec5f8e3dbb92869dc1a3b\nemc_ipl_0x20  4.01  b93f5422c35ec5f8e3dbb92869dc1a3b\nemc_ipl_0x20  4.05  b93f5422c35ec5f8e3dbb92869dc1a3b\nemc_ipl_0x20  4.06  b93f5422c35ec5f8e3dbb92869dc1a3b\nemc_ipl_0x20  4.07  b93f5422c35ec5f8e3dbb92869dc1a3b\nemc_ipl_0x20  4.50  c5ca2d4873f0b6742dbf99da5f808d5c\nemc_ipl_0x20  4.55  c5ca2d4873f0b6742dbf99da5f808d5c\nemc_ipl_0x20  4.70  4044bfc903a227051332a937e5281e09\nemc_ipl_0x20  4.71  4044bfc903a227051332a937e5281e09\nemc_ipl_0x20  4.72  4044bfc903a227051332a937e5281e09\nemc_ipl_0x20  4.73  4044bfc903a227051332a937e5281e09\nemc_ipl_0x20  4.74  4044bfc903a227051332a937e5281e09\nemc_ipl_0x20  5.00  ff5a2ea7e2da7306ed7ccad11bf8dcb4\nemc_ipl_0x20  5.01  ec940d26770edd5dfca0c56b87c91922\nemc_ipl_0x20  5.03  ec940d26770edd5dfca0c56b87c91922\nemc_ipl_0x20  5.05  ec940d26770edd5dfca0c56b87c91922\nemc_ipl_0x20  5.07\nemc_ipl_0x20  5.50  93997b7ce815dea1815033f4dfb515f9\nemc_ipl_0x20  5.53  93997b7ce815dea1815033f4dfb515f9\nemc_ipl_0x20  5.55  3bd678212835af21e1bbd85a2b73140c\nemc_ipl_0x20  5.56  50c3295e6bfdaec4823574a0251cbec2\nemc_ipl_0x20  6.00  50c3295e6bfdaec4823574a0251cbec2\nemc_ipl_0x20  6.02  50c3295e6bfdaec4823574a0251cbec2\nemc_ipl_0x20  6.20  50c3295e6bfdaec4823574a0251cbec2\nemc_ipl_0x20  6.50  29222319e74e1d25c7c99c4edf7859db\nemc_ipl_0x20  6.51  29222319e74e1d25c7c99c4edf7859db\nemc_ipl_0x20  6.70  29222319e74e1d25c7c99c4edf7859db\nemc_ipl_0x20  6.71  29222319e74e1d25c7c99c4edf7859db\nemc_ipl_0x20  6.72  29222319e74e1d25c7c99c4edf7859db\nemc_ipl_0x20  7.00  29222319e74e1d25c7c99c4edf7859db\nemc_ipl_0x20  7.01  29222319e74e1d25c7c99c4edf7859db\nemc_ipl_0x20  7.02  29222319e74e1d25c7c99c4edf7859db\nemc_ipl_0x20  7.50  29222319e74e1d25c7c99c4edf7859db\nemc_ipl_0x20  7.51  29222319e74e1d25c7c99c4edf7859db\nemc_ipl_0x20  7.55  29222319e74e1d25c7c99c4edf7859db\nemc_ipl_0x20  8.00  29222319e74e1d25c7c99c4edf7859db\nemc_ipl_0x20  8.01  29222319e74e1d25c7c99c4edf7859db\nemc_ipl_0x20  8.03  29222319e74e1d25c7c99c4edf7859db\nemc_ipl_0x20  8.50  96b467e3092b132c8c9036cc5da444cc\nemc_ipl_0x20  8.52  96b467e3092b132c8c9036cc5da444cc\nemc_ipl_0x20  9.00  96b467e3092b132c8c9036cc5da444cc\nemc_ipl_0x20  9.03  96b467e3092b132c8c9036cc5da444cc\nemc_ipl_0x20  9.04  96b467e3092b132c8c9036cc5da444cc\nemc_ipl_0x20  9.50  96b467e3092b132c8c9036cc5da444cc\nemc_ipl_0x20  9.51  96b467e3092b132c8c9036cc5da444cc\nemc_ipl_0x20  9.60  96b467e3092b132c8c9036cc5da444cc\nemc_ipl_0x20  10.00  febaf63e650be8b3469e0bffe85b6382\nemc_ipl_0x20  10.01  febaf63e650be8b3469e0bffe85b6382\nemc_ipl_0x20  10.50  c1aa7f63ba7aac8c8695970a416e1342\nemc_ipl_0x20  10.70  c1aa7f63ba7aac8c8695970a416e1342\nemc_ipl_0x20  10.71  c1aa7f63ba7aac8c8695970a416e1342\nemc_ipl_0x20  11.00  c1aa7f63ba7aac8c8695970a416e1342\nemc_ipl_0x20  11.02  c1aa7f63ba7aac8c8695970a416e1342\nemc_ipl_0x20  11.50  c1aa7f63ba7aac8c8695970a416e1342\nemc_ipl_0x20  11.52  c1aa7f63ba7aac8c8695970a416e1342\nemc_ipl_0x20  12.00  c1aa7f63ba7aac8c8695970a416e1342\nemc_ipl_0x20  12.02  c1aa7f63ba7aac8c8695970a416e1342\nemc_ipl_0x20  12.50  c1aa7f63ba7aac8c8695970a416e1342\nemc_ipl_0x20  12.52  c1aa7f63ba7aac8c8695970a416e1342\nemc_ipl_0x20  13.00  c1aa7f63ba7aac8c8695970a416e1342\nemc_ipl_0x20  13.02  c1aa7f63ba7aac8c8695970a416e1342\nemc_ipl_0x20  13.04  c1aa7f63ba7aac8c8695970a416e1342\nemc_ipl_0x20  13.50  c1aa7f63ba7aac8c8695970a416e1342\n\nemc_ipl_0x24  3.00  2296c87cff00bd4e3eeea7adab0772b9\nemc_ipl_0x24  3.10  2296c87cff00bd4e3eeea7adab0772b9\nemc_ipl_0x24  3.11  2296c87cff00bd4e3eeea7adab0772b9\nemc_ipl_0x24  3.15  2296c87cff00bd4e3eeea7adab0772b9\nemc_ipl_0x24  3.50  de5e54aa34d7f93f4f8fdad3ba798422\nemc_ipl_0x24  3.55  de5e54aa34d7f93f4f8fdad3ba798422\nemc_ipl_0x24  3.70  1f0fa6a0ee18242bce17b380e406b2d6\nemc_ipl_0x24  4.00  c2df68338171336c7719b977042ba2f7\nemc_ipl_0x24  4.01  83547df7d50ce912a6ec7f466c4632e0\nemc_ipl_0x24  4.05  83547df7d50ce912a6ec7f466c4632e0\nemc_ipl_0x24  4.06  dc83fd3d408a52897df957533caedf00\nemc_ipl_0x24  4.07  dc83fd3d408a52897df957533caedf00\nemc_ipl_0x24  4.50  34df38b47e1159d2760f56fac2a10350\nemc_ipl_0x24  4.55  34df38b47e1159d2760f56fac2a10350\nemc_ipl_0x24  4.70  59ce92d9143bf0a8edf779b5f855c17b\nemc_ipl_0x24  4.71  59ce92d9143bf0a8edf779b5f855c17b\nemc_ipl_0x24  4.72  59ce92d9143bf0a8edf779b5f855c17b\nemc_ipl_0x24  4.73  59ce92d9143bf0a8edf779b5f855c17b\nemc_ipl_0x24  4.74  59ce92d9143bf0a8edf779b5f855c17b\nemc_ipl_0x24  5.00  74a6ac42b63410cd39302e8e8472cebb\nemc_ipl_0x24  5.01  9f25903e3fbe034e401af559776f922c\nemc_ipl_0x24  5.03  9f25903e3fbe034e401af559776f922c\nemc_ipl_0x24  5.05  9f25903e3fbe034e401af559776f922c\nemc_ipl_0x24  5.07\nemc_ipl_0x24  5.50  5d762452ff37c426bdc50aaf5d942cb9\nemc_ipl_0x24  5.53  5d762452ff37c426bdc50aaf5d942cb9\nemc_ipl_0x24  5.55  70733c72ca33e355778fc18617469a46\nemc_ipl_0x24  5.56  f6474a3d99dc5c8a22535e38715c9816\nemc_ipl_0x24  6.00  f6474a3d99dc5c8a22535e38715c9816\nemc_ipl_0x24  6.02  f6474a3d99dc5c8a22535e38715c9816\nemc_ipl_0x24  6.20  f6474a3d99dc5c8a22535e38715c9816\nemc_ipl_0x24  6.50  3f19619bdb9b9bcb0ec6e57be8b2e2df\nemc_ipl_0x24  6.51  3f19619bdb9b9bcb0ec6e57be8b2e2df\nemc_ipl_0x24  6.70  3f19619bdb9b9bcb0ec6e57be8b2e2df\nemc_ipl_0x24  6.71  3f19619bdb9b9bcb0ec6e57be8b2e2df\nemc_ipl_0x24  6.72  3f19619bdb9b9bcb0ec6e57be8b2e2df\nemc_ipl_0x24  7.00  3f19619bdb9b9bcb0ec6e57be8b2e2df\nemc_ipl_0x24  7.01  3f19619bdb9b9bcb0ec6e57be8b2e2df\nemc_ipl_0x24  7.02  3f19619bdb9b9bcb0ec6e57be8b2e2df\nemc_ipl_0x24  7.50  3f19619bdb9b9bcb0ec6e57be8b2e2df\nemc_ipl_0x24  7.51  3f19619bdb9b9bcb0ec6e57be8b2e2df\nemc_ipl_0x24  7.55  3f19619bdb9b9bcb0ec6e57be8b2e2df\nemc_ipl_0x24  8.00  3f19619bdb9b9bcb0ec6e57be8b2e2df\nemc_ipl_0x24  8.01  3f19619bdb9b9bcb0ec6e57be8b2e2df\nemc_ipl_0x24  8.03  3f19619bdb9b9bcb0ec6e57be8b2e2df\nemc_ipl_0x24  8.50  c49b7b9d970643c5886cef603fdff1ba\nemc_ipl_0x24  8.52  c49b7b9d970643c5886cef603fdff1ba\nemc_ipl_0x24  9.00  c49b7b9d970643c5886cef603fdff1ba\nemc_ipl_0x24  9.03  c49b7b9d970643c5886cef603fdff1ba\nemc_ipl_0x24  9.04  c49b7b9d970643c5886cef603fdff1ba\nemc_ipl_0x24  9.50  c49b7b9d970643c5886cef603fdff1ba\nemc_ipl_0x24  9.51  c49b7b9d970643c5886cef603fdff1ba\nemc_ipl_0x24  9.60  c49b7b9d970643c5886cef603fdff1ba\nemc_ipl_0x24  10.00  421ea7fec14cf827f6380326ab9fe42b\nemc_ipl_0x24  10.01  421ea7fec14cf827f6380326ab9fe42b\nemc_ipl_0x24  10.50  07f41f9ac4370ce7736885ed5fa4372c\nemc_ipl_0x24  10.70  07f41f9ac4370ce7736885ed5fa4372c\nemc_ipl_0x24  10.71  07f41f9ac4370ce7736885ed5fa4372c\nemc_ipl_0x24  11.00  07f41f9ac4370ce7736885ed5fa4372c\nemc_ipl_0x24  11.02  07f41f9ac4370ce7736885ed5fa4372c\nemc_ipl_0x24  11.50  07f41f9ac4370ce7736885ed5fa4372c\nemc_ipl_0x24  11.52  07f41f9ac4370ce7736885ed5fa4372c\nemc_ipl_0x24  12.00  07f41f9ac4370ce7736885ed5fa4372c\nemc_ipl_0x24  12.02  07f41f9ac4370ce7736885ed5fa4372c\nemc_ipl_0x24  12.50  07f41f9ac4370ce7736885ed5fa4372c\nemc_ipl_0x24  12.52  07f41f9ac4370ce7736885ed5fa4372c\nemc_ipl_0x24  13.00  07f41f9ac4370ce7736885ed5fa4372c\nemc_ipl_0x24  13.02  07f41f9ac4370ce7736885ed5fa4372c\nemc_ipl_0x24  13.04  07f41f9ac4370ce7736885ed5fa4372c\nemc_ipl_0x24  13.50  07f41f9ac4370ce7736885ed5fa4372c\n\nemc_ipl_0x2A  3.70  3e7e0402a688d18e34c1a393e69a2be1\nemc_ipl_0x2A  4.00  7c499dd0f35af4bc63a13050a64188aa\nemc_ipl_0x2A  4.01  7c499dd0f35af4bc63a13050a64188aa\nemc_ipl_0x2A  4.05  7c499dd0f35af4bc63a13050a64188aa\nemc_ipl_0x2A  4.06  7c499dd0f35af4bc63a13050a64188aa\nemc_ipl_0x2A  4.07  7c499dd0f35af4bc63a13050a64188aa\nemc_ipl_0x2A  4.50  1147f57e1826bb0305effd5d53d13c6b\nemc_ipl_0x2A  4.55  1147f57e1826bb0305effd5d53d13c6b\nemc_ipl_0x2A  4.70  2ef9c2d3a8c4ea980a4378a9ce00b935\nemc_ipl_0x2A  4.71  2ef9c2d3a8c4ea980a4378a9ce00b935\nemc_ipl_0x2A  4.72  2ef9c2d3a8c4ea980a4378a9ce00b935\nemc_ipl_0x2A  4.73  2ef9c2d3a8c4ea980a4378a9ce00b935\nemc_ipl_0x2A  4.74  2ef9c2d3a8c4ea980a4378a9ce00b935\nemc_ipl_0x2A  5.00  0191564a032f195636b5f0bc706950ce\nemc_ipl_0x2A  5.01  cf1416fd668b4788e9011e1a77876236\nemc_ipl_0x2A  5.03  cf1416fd668b4788e9011e1a77876236\nemc_ipl_0x2A  5.05  cf1416fd668b4788e9011e1a77876236\nemc_ipl_0x2A  5.07  cf1416fd668b4788e9011e1a77876236\nemc_ipl_0x2A  5.50  fd045a2e1d51c30222d90741d7e1c82b\nemc_ipl_0x2A  5.53  fd045a2e1d51c30222d90741d7e1c82b\nemc_ipl_0x2A  5.55  78910d64832d56c97615ac203fda9b82\nemc_ipl_0x2A  5.56  f54cc78136fb62e4aeca87be13f31c6c\nemc_ipl_0x2A  6.00  f54cc78136fb62e4aeca87be13f31c6c\nemc_ipl_0x2A  6.02  f54cc78136fb62e4aeca87be13f31c6c\nemc_ipl_0x2A  6.20  f54cc78136fb62e4aeca87be13f31c6c\nemc_ipl_0x2A  6.50  cdb18370e78cadee8a8f449f404cb10c\nemc_ipl_0x2A  6.51  cdb18370e78cadee8a8f449f404cb10c\nemc_ipl_0x2A  6.70  cdb18370e78cadee8a8f449f404cb10c\nemc_ipl_0x2A  6.71  cdb18370e78cadee8a8f449f404cb10c\nemc_ipl_0x2A  6.72  cdb18370e78cadee8a8f449f404cb10c\nemc_ipl_0x2A  7.00  cdb18370e78cadee8a8f449f404cb10c\nemc_ipl_0x2A  7.01  cdb18370e78cadee8a8f449f404cb10c\nemc_ipl_0x2A  7.02  cdb18370e78cadee8a8f449f404cb10c\nemc_ipl_0x2A  7.50  cdb18370e78cadee8a8f449f404cb10c\nemc_ipl_0x2A  7.51  cdb18370e78cadee8a8f449f404cb10c\nemc_ipl_0x2A  7.55  cdb18370e78cadee8a8f449f404cb10c\nemc_ipl_0x2A  8.00  cdb18370e78cadee8a8f449f404cb10c\nemc_ipl_0x2A  8.01  cdb18370e78cadee8a8f449f404cb10c\nemc_ipl_0x2A  8.03  cdb18370e78cadee8a8f449f404cb10c\nemc_ipl_0x2A  8.50  1ec53a02094b615655d537dc2528be7c\nemc_ipl_0x2A  8.52  1ec53a02094b615655d537dc2528be7c\nemc_ipl_0x2A  9.00  1ec53a02094b615655d537dc2528be7c\nemc_ipl_0x2A  9.03  1ec53a02094b615655d537dc2528be7c\nemc_ipl_0x2A  9.04  1ec53a02094b615655d537dc2528be7c\nemc_ipl_0x2A  9.50  1ec53a02094b615655d537dc2528be7c\nemc_ipl_0x2A  9.51  1ec53a02094b615655d537dc2528be7c\nemc_ipl_0x2A  9.60  1ec53a02094b615655d537dc2528be7c\nemc_ipl_0x2A  10.00  3e2b71121300e0bd14c7839671f3502f\nemc_ipl_0x2A  10.01  3e2b71121300e0bd14c7839671f3502f\nemc_ipl_0x2A  10.50  78bcc7e6fcafd9a5de8c32d5bf802d09\nemc_ipl_0x2A  10.70  78bcc7e6fcafd9a5de8c32d5bf802d09\nemc_ipl_0x2A  10.71  78bcc7e6fcafd9a5de8c32d5bf802d09\nemc_ipl_0x2A  11.00  78bcc7e6fcafd9a5de8c32d5bf802d09\nemc_ipl_0x2A  11.02  78bcc7e6fcafd9a5de8c32d5bf802d09\nemc_ipl_0x2A  11.50  78bcc7e6fcafd9a5de8c32d5bf802d09\nemc_ipl_0x2A  11.52  78bcc7e6fcafd9a5de8c32d5bf802d09\nemc_ipl_0x2A  12.00  78bcc7e6fcafd9a5de8c32d5bf802d09\nemc_ipl_0x2A  12.02  78bcc7e6fcafd9a5de8c32d5bf802d09\nemc_ipl_0x2A  12.50  78bcc7e6fcafd9a5de8c32d5bf802d09\nemc_ipl_0x2A  12.52  78bcc7e6fcafd9a5de8c32d5bf802d09\nemc_ipl_0x2A  13.00  78bcc7e6fcafd9a5de8c32d5bf802d09\nemc_ipl_0x2A  13.02  78bcc7e6fcafd9a5de8c32d5bf802d09\nemc_ipl_0x2A  13.04  78bcc7e6fcafd9a5de8c32d5bf802d09\nemc_ipl_0x2A  13.50  78bcc7e6fcafd9a5de8c32d5bf802d09\n\n\n\ntorus_fw_0x03  1.01  e0b7a1d95b571d6a67a12499704166d1\ntorus_fw_0x03  1.05  e0b7a1d95b571d6a67a12499704166d1\ntorus_fw_0x03  1.06  e0b7a1d95b571d6a67a12499704166d1\ntorus_fw_0x03  1.07  e0b7a1d95b571d6a67a12499704166d1\ntorus_fw_0x03  1.50  e0b7a1d95b571d6a67a12499704166d1\ntorus_fw_0x03  1.51  e0b7a1d95b571d6a67a12499704166d1\ntorus_fw_0x03  1.52  e0b7a1d95b571d6a67a12499704166d1\ntorus_fw_0x03  1.60  cc366b2580d27e3fd37dd1e4a702ebbf\ntorus_fw_0x03  1.61  cc366b2580d27e3fd37dd1e4a702ebbf\ntorus_fw_0x03  1.62  cc366b2580d27e3fd37dd1e4a702ebbf\ntorus_fw_0x03  1.70  c07b72e0829105d916136fc9c6316f22\ntorus_fw_0x03  1.71  c07b72e0829105d916136fc9c6316f22\ntorus_fw_0x03  1.72  c07b72e0829105d916136fc9c6316f22\ntorus_fw_0x03  1.74  c07b72e0829105d916136fc9c6316f22\ntorus_fw_0x03  1.75  c07b72e0829105d916136fc9c6316f22\ntorus_fw_0x03  1.76  c07b72e0829105d916136fc9c6316f22\ntorus_fw_0x03  2.00  c218aeb95817ee01b16bacd5daced815\ntorus_fw_0x03  2.01  c218aeb95817ee01b16bacd5daced815\ntorus_fw_0x03  2.02  c218aeb95817ee01b16bacd5daced815\ntorus_fw_0x03  2.03  c218aeb95817ee01b16bacd5daced815\ntorus_fw_0x03  2.04  c218aeb95817ee01b16bacd5daced815\ntorus_fw_0x03  2.50  c218aeb95817ee01b16bacd5daced815\ntorus_fw_0x03  2.51  c218aeb95817ee01b16bacd5daced815\ntorus_fw_0x03  2.55  c218aeb95817ee01b16bacd5daced815\ntorus_fw_0x03  2.57  c218aeb95817ee01b16bacd5daced815\ntorus_fw_0x03  3.00  d0405148398772dcf178aaa94cc78e97\ntorus_fw_0x03  3.10  d0405148398772dcf178aaa94cc78e97\ntorus_fw_0x03  3.11  d0405148398772dcf178aaa94cc78e97\ntorus_fw_0x03  3.15  d0405148398772dcf178aaa94cc78e97\ntorus_fw_0x03  3.50  2bfa378760a479fb85fdcc244d078d4d\ntorus_fw_0x03  3.55  2bfa378760a479fb85fdcc244d078d4d\ntorus_fw_0x03  3.70  2bfa378760a479fb85fdcc244d078d4d\ntorus_fw_0x03  4.00  c92a435e395397112c0e62abddf1af68\ntorus_fw_0x03  4.01  c92a435e395397112c0e62abddf1af68\ntorus_fw_0x03  4.05  c92a435e395397112c0e62abddf1af68\ntorus_fw_0x03  4.06  c92a435e395397112c0e62abddf1af68\ntorus_fw_0x03  4.07  c92a435e395397112c0e62abddf1af68\ntorus_fw_0x03  4.50  128741df67a726a86f7e9d517cf7c020\ntorus_fw_0x03  4.55  128741df67a726a86f7e9d517cf7c020\ntorus_fw_0x03  4.70  128741df67a726a86f7e9d517cf7c020\ntorus_fw_0x03  4.71  128741df67a726a86f7e9d517cf7c020\ntorus_fw_0x03  4.72  128741df67a726a86f7e9d517cf7c020\ntorus_fw_0x03  4.73  128741df67a726a86f7e9d517cf7c020\ntorus_fw_0x03  4.74  128741df67a726a86f7e9d517cf7c020\ntorus_fw_0x03  5.00  128741df67a726a86f7e9d517cf7c020\ntorus_fw_0x03  5.01  128741df67a726a86f7e9d517cf7c020\ntorus_fw_0x03  5.03  128741df67a726a86f7e9d517cf7c020\ntorus_fw_0x03  5.05  128741df67a726a86f7e9d517cf7c020\ntorus_fw_0x03  5.07  128741df67a726a86f7e9d517cf7c020\ntorus_fw_0x03  5.50  128741df67a726a86f7e9d517cf7c020\ntorus_fw_0x03  5.53  128741df67a726a86f7e9d517cf7c020\ntorus_fw_0x03  5.55  128741df67a726a86f7e9d517cf7c020\ntorus_fw_0x03  5.56  cee157c6bffede981850e8d05b3535e3\ntorus_fw_0x03  6.00  cee157c6bffede981850e8d05b3535e3\ntorus_fw_0x03  6.02  cee157c6bffede981850e8d05b3535e3\ntorus_fw_0x03  6.20  cee157c6bffede981850e8d05b3535e3\ntorus_fw_0x03  6.50  317592510814a96f88547d9f255fd80e\ntorus_fw_0x03  6.51  317592510814a96f88547d9f255fd80e\ntorus_fw_0x03  6.70  317592510814a96f88547d9f255fd80e\ntorus_fw_0x03  6.71  317592510814a96f88547d9f255fd80e\ntorus_fw_0x03  6.72  317592510814a96f88547d9f255fd80e\ntorus_fw_0x03  7.00  317592510814a96f88547d9f255fd80e\ntorus_fw_0x03  7.01  317592510814a96f88547d9f255fd80e\ntorus_fw_0x03  7.02  317592510814a96f88547d9f255fd80e\ntorus_fw_0x03  7.50  317592510814a96f88547d9f255fd80e\ntorus_fw_0x03  7.51  317592510814a96f88547d9f255fd80e\ntorus_fw_0x03  7.55  317592510814a96f88547d9f255fd80e\ntorus_fw_0x03  8.00  a5669e283c44c083589b038b3674affe\ntorus_fw_0x03  8.01  a5669e283c44c083589b038b3674affe\ntorus_fw_0x03  8.03  a5669e283c44c083589b038b3674affe\ntorus_fw_0x03  8.50  a5669e283c44c083589b038b3674affe\ntorus_fw_0x03  8.52  a5669e283c44c083589b038b3674affe\ntorus_fw_0x03  9.00  083b13a5d852873bd0fefb147af9e2c3\ntorus_fw_0x03  9.03  083b13a5d852873bd0fefb147af9e2c3\ntorus_fw_0x03  9.04  083b13a5d852873bd0fefb147af9e2c3\ntorus_fw_0x03  9.50  e84fb3af2096d22c7d7b7138ff292b1e\ntorus_fw_0x03  9.51  e84fb3af2096d22c7d7b7138ff292b1e\ntorus_fw_0x03  9.60  e84fb3af2096d22c7d7b7138ff292b1e\ntorus_fw_0x03  10.00  e84fb3af2096d22c7d7b7138ff292b1e\ntorus_fw_0x03  10.01  e84fb3af2096d22c7d7b7138ff292b1e\ntorus_fw_0x03  10.50  e84fb3af2096d22c7d7b7138ff292b1e\ntorus_fw_0x03  10.70  e84fb3af2096d22c7d7b7138ff292b1e\ntorus_fw_0x03  10.71  e84fb3af2096d22c7d7b7138ff292b1e\ntorus_fw_0x03  11.00  e84fb3af2096d22c7d7b7138ff292b1e\ntorus_fw_0x03  11.02  e84fb3af2096d22c7d7b7138ff292b1e\ntorus_fw_0x03  11.50  e84fb3af2096d22c7d7b7138ff292b1e\ntorus_fw_0x03  11.52  e84fb3af2096d22c7d7b7138ff292b1e\ntorus_fw_0x03  12.00  e84fb3af2096d22c7d7b7138ff292b1e\ntorus_fw_0x03  12.02  e84fb3af2096d22c7d7b7138ff292b1e\ntorus_fw_0x03  12.50  e84fb3af2096d22c7d7b7138ff292b1e\ntorus_fw_0x03  12.52  e84fb3af2096d22c7d7b7138ff292b1e\ntorus_fw_0x03  13.00  e84fb3af2096d22c7d7b7138ff292b1e\ntorus_fw_0x03  13.02  e84fb3af2096d22c7d7b7138ff292b1e\ntorus_fw_0x03  13.04  e84fb3af2096d22c7d7b7138ff292b1e\ntorus_fw_0x03  13.50  e84fb3af2096d22c7d7b7138ff292b1e\n\ntorus_fw_0x22  2.00  fcb057ac11c000d0262c10dc01b677a5\ntorus_fw_0x22  2.01  fcb057ac11c000d0262c10dc01b677a5\ntorus_fw_0x22  2.02  fcb057ac11c000d0262c10dc01b677a5\ntorus_fw_0x22  2.03  fcb057ac11c000d0262c10dc01b677a5\ntorus_fw_0x22  2.04  fcb057ac11c000d0262c10dc01b677a5\ntorus_fw_0x22  2.50  4411977892ea7acd74062f0593bcbce7\ntorus_fw_0x22  2.51  4411977892ea7acd74062f0593bcbce7\ntorus_fw_0x22  2.55  f3211160a476a0f24de09d720627c20b\ntorus_fw_0x22  2.57  f3211160a476a0f24de09d720627c20b\ntorus_fw_0x22  3.00  c0b82b852b7b66a0592b3821ad0fa459\ntorus_fw_0x22  3.10  c0b82b852b7b66a0592b3821ad0fa459\ntorus_fw_0x22  3.11  c0b82b852b7b66a0592b3821ad0fa459\ntorus_fw_0x22  3.15  c0b82b852b7b66a0592b3821ad0fa459\ntorus_fw_0x22  3.50  11ba78afe8f02cb57ea8d021bc10ec89\ntorus_fw_0x22  3.55  11ba78afe8f02cb57ea8d021bc10ec89\ntorus_fw_0x22  3.70  11ba78afe8f02cb57ea8d021bc10ec89\ntorus_fw_0x22  4.00  0d8d2986a1598d0e954f9e970947c219\ntorus_fw_0x22  4.01  0d8d2986a1598d0e954f9e970947c219\ntorus_fw_0x22  4.05  0d8d2986a1598d0e954f9e970947c219\ntorus_fw_0x22  4.06  0d8d2986a1598d0e954f9e970947c219\ntorus_fw_0x22  4.07  0d8d2986a1598d0e954f9e970947c219\ntorus_fw_0x22  4.50  e6140f25a718245346a9a19746c37e8b\ntorus_fw_0x22  4.55  7ce86e597e28f81f3429f7977d136798\ntorus_fw_0x22  4.70  44086893f93d68e78bf7922766362480\ntorus_fw_0x22  4.71  44086893f93d68e78bf7922766362480\ntorus_fw_0x22  4.72  44086893f93d68e78bf7922766362480\ntorus_fw_0x22  4.73  44086893f93d68e78bf7922766362480\ntorus_fw_0x22  4.74  44086893f93d68e78bf7922766362480\ntorus_fw_0x22  5.00  111bd82cc5507e82ac6b7a539f61d1be\ntorus_fw_0x22  5.01  111bd82cc5507e82ac6b7a539f61d1be\ntorus_fw_0x22  5.03  111bd82cc5507e82ac6b7a539f61d1be\ntorus_fw_0x22  5.05  111bd82cc5507e82ac6b7a539f61d1be\ntorus_fw_0x22  5.07  111bd82cc5507e82ac6b7a539f61d1be\ntorus_fw_0x22  5.50  111bd82cc5507e82ac6b7a539f61d1be\ntorus_fw_0x22  5.53  111bd82cc5507e82ac6b7a539f61d1be\ntorus_fw_0x22  5.55  111bd82cc5507e82ac6b7a539f61d1be\ntorus_fw_0x22  5.56  95212a166862040220fbe438f1cb8c2f\ntorus_fw_0x22  6.00  95212a166862040220fbe438f1cb8c2f\ntorus_fw_0x22  6.02  95212a166862040220fbe438f1cb8c2f\ntorus_fw_0x22  6.20  95212a166862040220fbe438f1cb8c2f\ntorus_fw_0x22  6.50  3531d3656b81d26ba6a2e1660b5cf551\ntorus_fw_0x22  6.51  3531d3656b81d26ba6a2e1660b5cf551\ntorus_fw_0x22  6.70  3531d3656b81d26ba6a2e1660b5cf551\ntorus_fw_0x22  6.71  3531d3656b81d26ba6a2e1660b5cf551\ntorus_fw_0x22  6.72  3531d3656b81d26ba6a2e1660b5cf551\ntorus_fw_0x22  7.00  3531d3656b81d26ba6a2e1660b5cf551\ntorus_fw_0x22  7.01  3531d3656b81d26ba6a2e1660b5cf551\ntorus_fw_0x22  7.02  3531d3656b81d26ba6a2e1660b5cf551\ntorus_fw_0x22  7.50  3531d3656b81d26ba6a2e1660b5cf551\ntorus_fw_0x22  7.51  3531d3656b81d26ba6a2e1660b5cf551\ntorus_fw_0x22  7.55  3531d3656b81d26ba6a2e1660b5cf551\ntorus_fw_0x22  8.00  4caac06d8ab4426b1622a86895fc26cc\ntorus_fw_0x22  8.01  4caac06d8ab4426b1622a86895fc26cc\ntorus_fw_0x22  8.03  4caac06d8ab4426b1622a86895fc26cc\ntorus_fw_0x22  8.50  4caac06d8ab4426b1622a86895fc26cc\ntorus_fw_0x22  8.52  4caac06d8ab4426b1622a86895fc26cc\ntorus_fw_0x22  9.00  3ee31658fd141fe9df7afb65157a983c\ntorus_fw_0x22  9.03  3ee31658fd141fe9df7afb65157a983c\ntorus_fw_0x22  9.04  3ee31658fd141fe9df7afb65157a983c\ntorus_fw_0x22  9.50  50b0085e8917ffca236bb449a81fd3eb\ntorus_fw_0x22  9.51  50b0085e8917ffca236bb449a81fd3eb\ntorus_fw_0x22  9.60  50b0085e8917ffca236bb449a81fd3eb\ntorus_fw_0x22  10.00  50b0085e8917ffca236bb449a81fd3eb\ntorus_fw_0x22  10.01  50b0085e8917ffca236bb449a81fd3eb\ntorus_fw_0x22  10.50  50b0085e8917ffca236bb449a81fd3eb\ntorus_fw_0x22  10.70  50b0085e8917ffca236bb449a81fd3eb\ntorus_fw_0x22  10.71  50b0085e8917ffca236bb449a81fd3eb\ntorus_fw_0x22  11.00  50b0085e8917ffca236bb449a81fd3eb\ntorus_fw_0x22  11.02  50b0085e8917ffca236bb449a81fd3eb\ntorus_fw_0x22  11.50  50b0085e8917ffca236bb449a81fd3eb\ntorus_fw_0x22  11.52  50b0085e8917ffca236bb449a81fd3eb\ntorus_fw_0x22  12.00  50b0085e8917ffca236bb449a81fd3eb\ntorus_fw_0x22  12.02  50b0085e8917ffca236bb449a81fd3eb\ntorus_fw_0x22  12.50  50b0085e8917ffca236bb449a81fd3eb\ntorus_fw_0x22  12.52  50b0085e8917ffca236bb449a81fd3eb\ntorus_fw_0x22  13.00  50b0085e8917ffca236bb449a81fd3eb\ntorus_fw_0x22  13.02  50b0085e8917ffca236bb449a81fd3eb\ntorus_fw_0x22  13.04  50b0085e8917ffca236bb449a81fd3eb\ntorus_fw_0x22  13.50  50b0085e8917ffca236bb449a81fd3eb\n\ntorus_fw_0x30  5.00  2e9656bf7d34c9d978cc1b6a7400d44c\ntorus_fw_0x30  5.01  2e9656bf7d34c9d978cc1b6a7400d44c\ntorus_fw_0x30  5.03  2e9656bf7d34c9d978cc1b6a7400d44c\ntorus_fw_0x30  5.05  2e9656bf7d34c9d978cc1b6a7400d44c\ntorus_fw_0x30  5.07\ntorus_fw_0x30  5.50  9f8250b9ba23cceb4f4db9a0c3d36749\ntorus_fw_0x30  5.53  9f8250b9ba23cceb4f4db9a0c3d36749\ntorus_fw_0x30  5.55  3cdbd4f6ba2b6f5c80dfc7d7faca5560\ntorus_fw_0x30  5.56  ab56ac5eba7211c97b3ddd292c08e713\ntorus_fw_0x30  6.00  ab56ac5eba7211c97b3ddd292c08e713\ntorus_fw_0x30  6.02  ab56ac5eba7211c97b3ddd292c08e713\ntorus_fw_0x30  6.20  ab56ac5eba7211c97b3ddd292c08e713\ntorus_fw_0x30  6.50  a526e7b7f9172d44f54ee2ded62b7a3e\ntorus_fw_0x30  6.51  a526e7b7f9172d44f54ee2ded62b7a3e\ntorus_fw_0x30  6.70  a526e7b7f9172d44f54ee2ded62b7a3e\ntorus_fw_0x30  6.71  a526e7b7f9172d44f54ee2ded62b7a3e\ntorus_fw_0x30  6.72  a526e7b7f9172d44f54ee2ded62b7a3e\ntorus_fw_0x30  7.00  56fc530e9bb82185f604e78b66c0974f\ntorus_fw_0x30  7.01  56fc530e9bb82185f604e78b66c0974f\ntorus_fw_0x30  7.02  56fc530e9bb82185f604e78b66c0974f\ntorus_fw_0x30  7.50  56fc530e9bb82185f604e78b66c0974f\ntorus_fw_0x30  7.51  56fc530e9bb82185f604e78b66c0974f\ntorus_fw_0x30  7.55  56fc530e9bb82185f604e78b66c0974f\ntorus_fw_0x30  8.00  2b3e14e420f9d1a2f2c875f73c2fef84\ntorus_fw_0x30  8.01  3ffa3918cf00178c89cbdab4a398d8bd\ntorus_fw_0x30  8.03  2b4e421d830649f1423a478ee7cc709a\ntorus_fw_0x30  8.50  2b4e421d830649f1423a478ee7cc709a\ntorus_fw_0x30  8.52  2b4e421d830649f1423a478ee7cc709a\ntorus_fw_0x30  9.00  3cfd09c19cc5eaa2fc889b2c6505c333\ntorus_fw_0x30  9.03  3cfd09c19cc5eaa2fc889b2c6505c333\ntorus_fw_0x30  9.04  3cfd09c19cc5eaa2fc889b2c6505c333\ntorus_fw_0x30  9.50  c23090c0bdce1bcb0f6bada5ef340e4e\ntorus_fw_0x30  9.51  c23090c0bdce1bcb0f6bada5ef340e4e\ntorus_fw_0x30  9.60  c23090c0bdce1bcb0f6bada5ef340e4e\ntorus_fw_0x30  10.00  c23090c0bdce1bcb0f6bada5ef340e4e\ntorus_fw_0x30  10.01  c23090c0bdce1bcb0f6bada5ef340e4e\ntorus_fw_0x30  10.50  c23090c0bdce1bcb0f6bada5ef340e4e\ntorus_fw_0x30  10.70  c23090c0bdce1bcb0f6bada5ef340e4e\ntorus_fw_0x30  10.71  c23090c0bdce1bcb0f6bada5ef340e4e\ntorus_fw_0x30  11.00  c23090c0bdce1bcb0f6bada5ef340e4e\ntorus_fw_0x30  11.02  c23090c0bdce1bcb0f6bada5ef340e4e\ntorus_fw_0x30  11.50  c23090c0bdce1bcb0f6bada5ef340e4e\ntorus_fw_0x30  11.52  c23090c0bdce1bcb0f6bada5ef340e4e\ntorus_fw_0x30  12.00  c23090c0bdce1bcb0f6bada5ef340e4e\ntorus_fw_0x30  12.02  c23090c0bdce1bcb0f6bada5ef340e4e\ntorus_fw_0x30  12.50  c23090c0bdce1bcb0f6bada5ef340e4e\ntorus_fw_0x30  12.52  c23090c0bdce1bcb0f6bada5ef340e4e\ntorus_fw_0x30  13.00  c23090c0bdce1bcb0f6bada5ef340e4e\ntorus_fw_0x30  13.02  c23090c0bdce1bcb0f6bada5ef340e4e\ntorus_fw_0x30  13.04  c23090c0bdce1bcb0f6bada5ef340e4e\ntorus_fw_0x30  13.50  c23090c0bdce1bcb0f6bada5ef340e4e\n"
  },
  {
    "path": "fws/README.md",
    "content": "# EMC / EAP / Torus (WiFi + BT) / Syscon\n\ncollection of PS4 southbridge/torus/syscon firmwares is separete repository.\n\nStructure: [partition(eap/emc/torus)] / [type] / [fw_range(min-max)]_[md5].2bls\nExample: emc/24/1000-1001_421ea7fec14cf827f6380326ab9fe42b.2bls\n\nYou can download it here:\n\nhttps://github.com/andy-man/ps4-ic-fw\n\nDownload and put folders (emc/eap/torus/syscon) here.\n\nThis will enable additional functions of ps4-wee-tools."
  },
  {
    "path": "lang/_i18n_.py",
    "content": "#==========================================================\n# UI internationalization\n# part of ps4 wee tools project\n#==========================================================\nimport sys, os\nfrom utils.utils import APP_CONFIG\n\nAPP_VERSION = '1.0.4'\n\n# Colors stuff\n\nuse_clr = True\n# win terminal doesn't support colors before win 10\nif sys.platform[:3] == 'win' and sys.getwindowsversion().major < 10:\n\tuse_clr = False\n\nclass Clr:\n\treset\t\t\t='\\033[0m'\tif use_clr else ''\n\tbold\t\t\t='\\033[01m'\tif use_clr else ''\n\tdisable\t\t\t='\\033[02m'\tif use_clr else ''\n\tunderline\t\t='\\033[04m'\tif use_clr else ''\n\treverse\t\t\t='\\033[07m'\tif use_clr else ''\n\tinvisible\t\t='\\033[08m'\tif use_clr else ''\n\tstrike\t\t\t='\\033[09m'\tif use_clr else ''\n\tclass fg:\n\t\tblack\t\t='\\033[30m'\tif use_clr else ''\n\t\tred\t\t\t='\\033[31m'\tif use_clr else ''\n\t\tgreen\t\t='\\033[32m'\tif use_clr else ''\n\t\torange\t\t='\\033[33m'\tif use_clr else ''\n\t\tblue\t\t='\\033[34m'\tif use_clr else ''\n\t\tpurple\t\t='\\033[35m'\tif use_clr else ''\n\t\tcyan\t\t='\\033[36m'\tif use_clr else ''\n\t\tl_grey\t\t='\\033[37m'\tif use_clr else ''\n\t\td_grey\t\t='\\033[90m'\tif use_clr else ''\n\t\tl_red\t\t='\\033[91m'\tif use_clr else ''\n\t\tl_green\t\t='\\033[92m'\tif use_clr else ''\n\t\tyellow\t\t='\\033[93m'\tif use_clr else ''\n\t\tl_blue\t\t='\\033[94m'\tif use_clr else ''\n\t\tpink\t\t='\\033[95m'\tif use_clr else ''\n\t\tl_cyan\t\t='\\033[96m'\tif use_clr else ''\n\tclass bg:\n\t\tblack\t\t='\\033[40m'\tif use_clr else ''\n\t\tred\t\t\t='\\033[41m'\tif use_clr else ''\n\t\tgreen\t\t='\\033[42m'\tif use_clr else ''\n\t\torange\t\t='\\033[43m'\tif use_clr else ''\n\t\tblue\t\t='\\033[44m'\tif use_clr else ''\n\t\tpurple\t\t='\\033[45m'\tif use_clr else ''\n\t\tcyan\t\t='\\033[46m'\tif use_clr else ''\n\t\tl_grey\t\t='\\033[47m'\tif use_clr else ''\n\n# UI stuff\n\nclass UI:\n\t\n\tLINE_WIDTH\t\t= 70\n\t\n\tSTATUS_TXT\t\t= ''\n\tSTATUS_CLR\t\t= ''\n\t\n\tDIVIDER\t\t\t= Clr.fg.yellow + '_'*LINE_WIDTH + Clr.reset + '\\n'\n\tDIVIDER_DASH\t= Clr.fg.yellow + '-'*LINE_WIDTH + Clr.reset + '\\n'\n\tDIVIDER_BOLD\t= '='*LINE_WIDTH + '\\n'\n\t\n\tdef clearScreen():\n\t\tos.system('cls' if sys.platform[:3] == 'win' else 'clear')\n\t\n\t# Colors\n\t\n\tdef link(str):\n\t\treturn Clr.underline + Clr.fg.cyan + str + Clr.reset\n\t\n\tdef cyan(str):\n\t\treturn Clr.fg.cyan + str + Clr.reset\n\t\n\tdef highlight(str):\n\t\treturn Clr.fg.yellow + str + Clr.reset\n\t\n\tdef error(str):\n\t\treturn Clr.fg.red + str + Clr.reset\n\t\n\tdef warning(str):\n\t\treturn Clr.fg.orange + str + Clr.reset\n\t\n\tdef dark(str):\n\t\treturn Clr.fg.d_grey + str + Clr.reset\n\t\n\tdef green(str):\n\t\treturn Clr.fg.green + str + Clr.reset\n\t\n\t# Funcs\n\t\n\tdef clearInput(n = 1):\n\t\tfor i in range(n):\n\t\t\tprint('\\033[1A' + '\\033[K', end='')\n\t\n\tdef setTitle(str = ''):\n\t\tif sys.platform[:3] == 'win':\n\t\t\tos.system('title ' + (str if str else APP_NAME.strip()))\n\t\n\t@classmethod\n\tdef getTab(cls, str):\n\t\treturn Clr.fg.yellow+'  _'+('_'*len(str))+'_\\n'+('_/ '+str+' \\_').ljust(cls.LINE_WIDTH, '_')+'\\n'+Clr.reset\n\t\n\tdef getTable(data, pad=16):\n\t\ttable = []\n\t\t\n\t\tfor key in data:\n\t\t\tif data[key] == '':\n\t\t\t\tcontinue\n\t\t\ttable.append(' {} : {}'.format(('%s'%key).ljust(pad,' '),data[key]))\n\t\t\n\t\treturn table\n\t\n\t@classmethod\n\tdef showTable(cls, data, pad=16):\n\t\ttable = cls.getTable(data, pad)\n\t\tprint('\\n'.join(table))\n\t\n\t@classmethod\n\tdef showTableEx(cls, data, cols = 2, width = False):\n\t\twidth = width if width else cls.LINE_WIDTH // cols\n\t\trows = (len(data) // cols) + (1 if len(data) % cols else 0)\n\t\tlines = [''] * rows\n\t\tfor i in range(len(data)):\n\t\t\tlines[i % rows] += data[i].ljust(width, ' ')\n\t\tprint('\\n'.join(lines))\n\t\n\tdef getMenu(menu, start=0):\n\t\tlines = []\n\t\t\n\t\tif type(menu) is dict:\n\t\t\tfor n in menu:\n\t\t\t\tlines.append(' %s: %s'%(n,menu[n]))\n\t\telse:\n\t\t\tfor n, text in enumerate(menu):\n\t\t\t\tlines.append(' '+str(n+start)+': '+text)\n\t\t\n\t\treturn lines\n\t\n\t@classmethod\n\tdef showMenu(cls, menu, start=0):\n\t\tlines = cls.getMenu(menu, start)\n\t\tprint('\\n'.join(lines))\n\t\n\t@classmethod\n\tdef setStatus(cls, v, clr = Clr.fg.yellow):\n\t\tcls.STATUS_TXT = v\n\t\tcls.STATUS_CLR = clr\n\t\n\t@classmethod\n\tdef showStatus(cls):\n\t\tif cls.STATUS_TXT:\n\t\t\tprint(cls.DIVIDER_DASH + cls.STATUS_CLR + cls.STATUS_TXT + Clr.reset)\n\t\t\tcls.STATUS_TXT = ''\n\n# Common strings (used in lang files)\n\nSTR_080B = Clr.fg.cyan+'\"08-0B\"'+Clr.reset\nSTR_0C0F = Clr.fg.orange+'\"0C-0F\"'+Clr.reset\nSTR_2023 = Clr.fg.red+'\"20-23\"'+Clr.reset\n\n# Lang stuff\n\nLANG_LIST = {\n    'en': 'English',\n    'es': 'Spanish',\n    'ru': 'Russian',\n    'pt': 'Portuguese',\n    'pl': 'Polish',\n}\n\nLANG_CODE = APP_CONFIG.get('lang')\n\n# Import LANG file\n\nfrom lang.en import *\n\nif LANG_CODE == 'ru':\n    from lang.ru import *\nelif LANG_CODE == 'es':\n    from lang.es import *\nelif LANG_CODE == 'pt':\n    from lang.pt import *\nelif LANG_CODE == 'pl':\n    from lang.pl import *\n\nAPP_NAME = ' PS4 weeTools v' + APP_VERSION\nTITLE = UI.DIVIDER_BOLD + APP_NAME+('by Andy_maN').rjust(UI.LINE_WIDTH-len(APP_NAME)-1)+'\\n' + UI.DIVIDER_BOLD\n\n# Fill strings\n\nSTR_MPATCH_INPUT\t= UI.DIVIDER + STR_MPATCH_INPUT\nSTR_CHOICE\t\t\t= UI.DIVIDER + STR_CHOICE\nSTR_BACK\t\t\t= UI.DIVIDER + STR_BACK\nSTR_MEMCLOCK_INPUT\t= UI.DIVIDER + STR_MEMCLOCK_INPUT\nSTR_SAMU_INPUT\t\t= UI.DIVIDER + STR_SAMU_INPUT\nSTR_CONFIRM\t\t\t= UI.DIVIDER + STR_CONFIRM\n\nSTR_APP_HELP\t\t= STR_APP_HELP + UI.link('https://github.com/andy-man/ps4-wee-tools')\nSTR_INFO_HDD_EAP\t= STR_INFO_HDD_EAP + UI.link('https://www.psdevwiki.com/ps4/Mounting_HDD_in_Linux')\nSTR_INFO_EMC_CFW\t= STR_INFO_EMC_CFW + UI.link('https://www.psdevwiki.com/ps4/Southbridge')\nSTR_INFO_SPIWAY\t\t= STR_INFO_SPIWAY + UI.link('https://www.psdevwiki.com/ps4/SPIway')\nSTR_INFO_SCF\t\t= STR_INFO_SCF + UI.link('https://github.com/AbkarinoMHM/PS4SysconTools')\nSTR_INFO_FW_LINK\t= STR_INFO_FW_LINK + UI.link('https://github.com/andy-man/ps4-ic-fw')\n\nSTR_INFO_SC_MPATCH\t= STR_INFO_SC_MPATCH%(STR_080B, STR_0C0F, STR_2023, STR_080B)\n\n# Colorize strings\n\nSTR_DONE\t\t\t= Clr.fg.yellow+ STR_DONE + Clr.reset\nSTR_NOT_FOUND\t\t= Clr.fg.red + STR_NOT_FOUND + Clr.reset\nSTR_BAD_SIZE\t\t= Clr.fg.orange + STR_BAD_SIZE + Clr.reset\nSTR_DIFF\t\t\t= Clr.fg.orange + STR_DIFF + Clr.reset\nSTR_FAIL\t\t\t= Clr.fg.red + STR_FAIL + Clr.reset\nSTR_OK\t\t\t\t= Clr.fg.green + STR_OK + Clr.reset\nSTR_ABORT\t\t\t= Clr.fg.red + STR_ABORT + Clr.reset\n\n"
  },
  {
    "path": "lang/en.py",
    "content": "#==========================================================\n# Default language [EN]\n# part of ps4 wee tools project\n# https://github.com/andy-man/ps4-wee-tools\n#==========================================================\n\nMENU_SC_REBUILD_MODES = [\n\t'Normal mode (Choose FW, default values for rest / All (12) types)',\n\t'Minimal setup (Choose first two types and FW / 3 types)',\n\t'Expert mode (Adjust all (12) types)',\n]\n\nMENU_NVS_COPY = [\n\t'Replace %s with backup (%s <= %s)',\n\t'Replace backup with %s (%s => %s)',\n]\n\nMENU_EAP_KEYS = [\n\t'Replace A with B (key_a <= key_b)',\n\t'Replace B with A (key_a => key_b)',\n\t'Fix magic A *',\n\t'Fix magic B *',\n\t'Generate new A,B keys (length 0x60) *',\n\t'Generate new A,B keys (length 0x40) *',\n\t'Clean key B *',\n]\n\nMENU_FLASHER = [\n\t'Read all',\n\t'Read area',\n\t'Read block',\n\t'Write all',\n\t'Write area',\n\t'Write block',\n\t'Verify all',\n\t'Verify area',\n\t'Verify block',\n\t'Erase all',\n\t'Erase area',\n\t'Erase block',\n]\n\nMENU_SERIAL_MONITOR = {\n\t'Ctrl+Q':'quit monitor',\n\t'Ctrl+R':'restart monitor',\n\t'Ctrl+E':'toggle EMC cmd mode',\n\t'Ctrl+B':'show bytecodes < 0x20',\n\t'Ctrl+L':'log to file',\n}\n\nMENU_TOOL_SELECTION = [\n\t'File browser',\n\t'Terminal (UART)',\n\t'sFlash r/w (SPIway by Judges)',\n\t'Syscon r/w (SCTool by Abkarino & EgyCnq)',\n\t'Syscon r/o (SCRead by DarkNESmonk)',\n\t'Syscon w/o (For stock Renesas RL78)',\n\t'Change app\\'s language',\n\t'Exit',\n]\n\nMENU_FILE_SELECTION = {\n\t'a':'Show all files / Toggle filters [bin,pup]',\n\t'f':'Build sflash0 dump',\n\t'b':'Build 2BLS/PUP',\n\t'r':'Batch rename (extract dump info to filename)',\n\t'c':'Compare files in current folder',\n\t'q':'Quit / Go back',\n}\n\nMENU_EXTRA_FLASHER = {\n\t's':'Select file',\n\t'f':'Launch Tool for this file',\n\t'q':'Quit / Go back',\n}\n\nMENU_EXTRA = {\n\t's':'Select another file',\n\t'f':'Flash this file (full/parts) back to IC',\n\t'r':'Rename file to canonical name',\n\t'q':'Quit / Go back',\n}\n\nMENU_SFLASH_ACTIONS = [\n\t'Flags (UART, RNG, Memtest, etc)',\n\t'Memory clocking (GDDR5)',\n\t'SAMU boot flag',\n\t'Switch CoreOS slot (FW revert)',\n\t'Legit CoreOS Patch',\n\t'Patch Southbridge',\n\t'Patch Torus (WiFi+BT)',\n\t'Additional tools',\n]\n\nMENU_SFLASH_ADV_ACTIONS = [\n\t'Extract partitions from sFlash0',\n\t'Build sFlash0 from extracted files',\n\t'View / Recover NVS areas (1C9, 1CA)',\n\t'View / Recover EAP key',\n\t'Get HDD keys = decrypt EAP key = create [keys.bin]',\n\t'Create EMC cfw (only for Fat 1xxx/11xx)',\n\t'Base validation and entropy stats',\n\t'Analyze and recover of corrupted partition',\n]\n\nMENU_SC_ACTIONS = [\n\t'Toggle Debug',\n\t'Auto SNVS patch',\n\t'SNVS block viewer',\n\t'NVS block viewer',\n\t'Manual SNVS patch',\n\t'Additional tools',\n]\n\nMENU_SC_ADV_ACTIONS = [\n\t'Reset SNVS counters',\n\t'Mode select (00-03)',\n\t'Boot modes (04-07)',\n\t'Rebuild Syscon\\'s SNVS (Factory Reset)',\n\t'Recover Syscon\\'s FW',\n\t'Convert for Renesas flasher (Motorolla S28)',\n]\n\nMENU_PATCHES = [\n\t'Method A - last 08-0B will be deleted (4 records)',\n\t'Method B - last 08-0B and below will be cleaned (%d records)',\n\t'Method C - clean everything below previous 08-0B (%d records)',\n\t'Method D - clean everything below last 08-0B (%d records)',\n\t'Method E - clean previous 08-0B and below (%d records)',\n]\n\nMENU_SC_STATUSES = [\n\t'Overwritten CoreOs slot',\n\t'Patchable',\n\t'Already patched or stuck on update',\n\t'Probably patchable',\n]\n\nMENU_SPW_ACTS = {\n\t'read':\t\t'Reading',\n\t'write':\t'Writing',\n\t'verify':\t'Verifying',\n\t'erase':\t'Erasing',\n}\n\nSTR_LANGUAGE\t\t\t= 'Language'\nSTR_SECONDS\t\t\t\t= '%0.0f seconds'\nSTR_NVS_AREAS\t\t\t= 'NVS areas'\nSTR_PORTS_LIST\t\t\t= 'Serial ports'\nSTR_MAIN_MENU\t\t\t= 'Main menu'\nSTR_FILE_LIST\t\t\t= 'Files list'\nSTR_SFLASH_INFO\t\t\t= 'sFlash dump info'\nSTR_ADDITIONAL\t\t\t= 'Additional tools'\nSTR_SYSCON_INFO\t\t\t= 'Syscon dump info'\nSTR_COMPARE\t\t\t\t= 'Compare'\nSTR_HELP\t\t\t\t= 'Help'\nSTR_ACTIONS\t\t\t\t= 'Actions'\nSTR_COREOS_SWITCH\t\t= 'CoreOS slot switch'\nSTR_SWITCH_PATTERNS\t\t= 'Switch patterns'\nSTR_MEMCLOCK\t\t\t= 'Memory clock'\nSTR_SAMU_BOOT\t\t\t= 'SAMU boot'\nSTR_SYSFLAGS\t\t\t= 'System flags'\nSTR_NVS_ENTRIES\t\t\t= 'Syscon %s entries'\nSTR_APATCH_SVNS\t\t\t= 'SNVS auto patching'\nSTR_MPATCH_SVNS\t\t\t= 'SNVS manual patcher'\nSTR_SFLASH_VALIDATOR\t= 'sFlash validator'\nSTR_SFLASH_FLAGS\t\t= 'sFlash flags'\nSTR_SFLASH_EXTRACT\t\t= 'sFlash extractor'\nSTR_SFLASH_BUILD\t\t= 'sFlash builder'\nSTR_HDD_KEY\t\t\t\t= 'HDD eap key'\nSTR_2BLS_BUILDER\t\t= '2BLS builder'\nSTR_UNPACK_2BLS\t\t\t= '2BLS unpacker'\nSTR_UNPACK_PUP\t\t\t= 'Decrypted PUP unpacker'\nSTR_EMC_CFW\t\t\t\t= 'EMC CFW (Aeolia)'\nSTR_EAP_KEYS\t\t\t= 'EAP keys'\nSTR_SC_BOOT_MODES\t\t= 'Bootmode records'\nSTR_INFO\t\t\t\t= 'Info'\nSTR_SC_READER\t\t\t= 'Syscon reader'\nSTR_SPIWAY\t\t\t\t= 'SPIway by Judges & Abkarino'\nSTR_SCF\t\t\t\t\t= 'Syscon Flasher by Abkarino & EgyCnq'\nSTR_LEG_PATCH\t\t\t= 'Legitimate CoreOS Patch'\nSTR_PART_RECOVERY\t\t= 'Partition recovery'\nSTR_PART_ANALYZE\t\t= 'Partition analyzing'\nSTR_PART_LIST\t\t\t= 'Partitions list'\nSTR_PARTS_INFO\t\t\t= 'Partitions info'\nSTR_WIFI_PATCHER\t\t= 'WiFi patcher'\nSTR_SB_PATCHER\t\t\t= 'Southbridge patcher'\nSTR_RL78FLASH\t\t\t= 'RL78 Flasher'\nSTR_SC_REBUILDER\t\t= 'Syscon Rebuilder'\n\nSTR_ALL\t\t\t\t\t= 'All'\nSTR_UNIQUE\t\t\t\t= 'Unique'\nSTR_BACKUP\t\t\t\t= 'Backup'\nSTR_EQUAL\t\t\t\t= 'Equal'\nSTR_NOT_EQUAL\t\t\t= 'Not equal'\nSTR_NO_INFO\t\t\t\t= '- No info -'\nSTR_OFF\t\t\t\t\t= 'Off'\nSTR_ON\t\t\t\t\t= 'On'\nSTR_WARNING\t\t\t\t= 'Warning'\nSTR_HELP\t\t\t\t= 'Help'\nSTR_UNKNOWN\t\t\t\t= '- Unknown -'\nSTR_YES\t\t\t\t\t= 'Yes'\nSTR_NO\t\t\t\t\t= 'No'\nSTR_PROBABLY\t\t\t= 'Probably'\nSTR_NOT_SURE\t\t\t= 'not sure'\nSTR_DIFF\t\t\t\t= 'Different'\nSTR_NOT_FOUND\t\t\t= 'not found'\nSTR_BAD_SIZE\t\t\t= 'bad size'\nSTR_OK\t\t\t\t\t= 'OK'\nSTR_FAIL\t\t\t\t= 'Fail'\nSTR_CANCEL\t\t\t\t= 'Cancel'\nSTR_IS_PART_VALID\t\t= '[%s] %s FW %s'\nSTR_SNVS_ENTRIES\t\t= '%d records found at 0x%05X'\nSTR_SERIAL_MONITOR\t\t= 'Terminal'\nSTR_ELAPSEDTIME\t\t\t= 'Elapsed time'\n\nSTR_NO_PORT_CHOSEN\t\t= ' No port was chosen'\nSTR_NO_PORTS\t\t\t= ' No one serial port was found'\nSTR_PORT_UNAVAILABLE\t= ' Selected port is unavailable'\nSTR_PORT_CLOSED\t\t\t= ' Port is closed'\nSTR_STOP_MONITORING\t\t= ' Monitoring was stopped by user'\n\nSTR_RESTART_APP\t\t\t= ' Restart App to apply changes'\nSTR_GENERATE_ALL_PS\t\t= ' Generate all patches'\nSTR_ACTION_NA\t\t\t= ' No action is available %s'\nSTR_EMC_CFW_WARN\t\t= ' Currently EMC CFW is only for 10xx/11xx PS4 Fat'\nSTR_EMC_NOT_FOUND\t\t= ' EMC FW was not found'\nSTR_DECRYPTING\t\t\t= ' Decrypting'\nSTR_ENCRYPTING\t\t\t= ' Encrypting'\nSTR_PATCHING\t\t\t= ' Patching'\nSTR_EXPERIMENTAL\t\t= ' * - experimental functions'\nSTR_PERFORMED\t\t\t= ' Performed action: '\n\nSTR_EMPTY_FILE_LIST\t\t= ' File list is empty'\nSTR_NO_FOLDER\t\t\t= ' Folder %s doesn\\'t exists'\nSTR_EXTRACTING\t\t\t= ' Extracting sflash0 to %s folder'\nSTR_FILES_CHECK\t\t\t= ' Checking files'\nSTR_BUILDING\t\t\t= ' Building file %s'\n\nSTR_DONE\t\t\t\t= ' All done'\nSTR_PROGRESS\t\t\t= ' Progress %02d%% '\nSTR_PROGRESS_KB\t\t\t= ' Progress: %dKB / %dKB'\nSTR_WAIT\t\t\t\t= ' Please wait...'\nSTR_WAITING\t\t\t\t= ' Waiting...'\nSTR_SET_TO\t\t\t\t= ' %s was set to [%s]'\nSTR_ABORT\t\t\t\t= ' Action was aborted'\nSTR_FILENAME\t\t\t= ' Filename: '\n\nSTR_VALIDATE_NVS_CHECK\t= ' Checking NVS areas'\nSTR_ACT_SLOT\t\t\t= ' Active slot: %s [0x%02X]'\nSTR_NIY\t\t\t\t\t= ' This feature is available in PRO version only'\nSTR_CLEAN_FLAGS\t\t\t= ' Clean all system flags'\nSTR_UNK_FILE_TYPE\t\t= ' Unknown file type'\nSTR_UNK_CONTENT\t\t\t= ' Unknown content'\nSTR_UART\t\t\t\t= ' UART is set to '\nSTR_DEBUG\t\t\t\t= ' Syscon debug is set to '\n\nSTR_DIFF_SLOT_VALUES\t= ' Values in slots are different!'\nSTR_SYSFLAGS_CLEAN\t\t= ' Sys flags were cleared. Tip: turn on UART'\nSTR_SAMU_UPD\t\t\t= ' SAMU flag was set to '\nSTR_DOWNGRADE_UPD\t\t= ' Slot switch was set to: '\nSTR_LAST_SC_ENTRIES\t\t= ' Showing last [%d/%d] entries of active block [%d]'\nSTR_MEMCLOCK_SET\t\t= ' GDDR5 frequency was set to %dMHz [0x%02X]'\n\nSTR_RECOMMEND\t\t\t= ' Recommended method [%s]'\nSTR_PATCH_CANCELED\t\t= ' Patch was canceled'\nSTR_PATCH_SUCCESS\t\t= ' Successfully removed %d entries'\nSTR_PATCH_SAVED\t\t\t= ' Patch was saved to %s'\nSTR_RENAMED\t\t\t\t= ' Renamed to %s'\n\nSTR_SC_BLOCK_SELECT\t\t= ' Select data block [0-%d] | View Flat/Block [f] '\nSTR_MPATCH_INPUT\t\t= ' How many records to clean (from end): '\nSTR_CHOICE\t\t\t\t= ' Make choice: '\nSTR_BACK\t\t\t\t= ' Press [ENTER] to go back'\nSTR_MEMCLOCK_INPUT\t\t= ' Setup frequency [400 - 2000] / [0 set default (0xFF)] MHz '\nSTR_SAMU_INPUT\t\t\t= ' Setup SAMU [0 - 255] / [default is 255 (0xFF)] '\nSTR_TOO_MUCH\t\t\t= ' %d is too much, maximum value is %d'\nSTR_SC_BLOCK_CLEANED\t= ' Block [%d] was entirely cleaned'\nSTR_OWC_RESET_REQUIRED\t= ' You need reset SNVS counters at first to perform this action'\nSTR_SC_NO_BM\t\t\t= ' Boot modes records were not found!'\n\nSTR_UNPATCHABLE\t\t\t= ' Can\\'t patch!'\nSTR_SYSCON_BLOCK\t\t= ' Block [%d/%d] has [%d/%d] entries | Active block is [%d]\\n'\nSTR_PARTITIONS_CHECK\t= ' Checking partitions'\nSTR_ENTROPY\t\t\t\t= ' Entropy statistics'\nSTR_MAGICS_CHECK\t\t= ' Checking magics'\nSTR_DUPLICATES\t\t\t= ' %d duplicate(s) found [%s]'\nSTR_SC_WARN_OVERWITTEN\t= ' Warning: CoreOS is probably overwritten'\n\nSTR_SNVS_ENTRY_INFO\t\t= 'Block %d #%03d Offset 0x%04X'\nSTR_SC_TOGGLE_FLATDATA\t= 'Toggle between Flat/Block'\nSTR_SH_DUPLICATES\t\t= 'Show / Hide duplicates'\nSTR_NO_ENTRIES\t\t\t= 'No entries found'\nSTR_SKIPPED\t\t\t\t= 'Skipped'\nSTR_SKIP_ENTRY\t\t\t= 'Skip this type of entry'\nSTR_NO_FILE_SEL\t\t\t= 'No file selected'\n\nSTR_INCORRECT_SIZE\t\t= ' %s has incorrect dump size!'\nSTR_FILE_NOT_EXISTS\t\t= ' File %s doesn\\'t exist!'\nSTR_FILE_EXISTS\t\t\t= ' Filename already exists!'\nSTR_ERROR_FILE_REQ\t\t= ' You need to select file first'\nSTR_SAVED_TO\t\t\t= ' Saved to %s'\nSTR_ERROR_INPUT\t\t\t= ' Incorrect input'\nSTR_ERROR_DEF_VAL\t\t= ' Setting default values'\nSTR_ERROR_CHOICE\t\t= ' Invalid choice'\nSTR_ERROR_INFO_READ\t\t= ' Error while reading file data'\nSTR_OUT_OF_RANGE\t\t= ' Value is out of range!'\nSTR_FILES_MATCH\t\t\t= ' Files are equal'\nSTR_FILES_MISMATCH\t\t= ' Files mismatch'\nSTR_SIZES_MISMATCH\t\t= ' Sizes mismatch!'\nSTR_RENAMED_COUNT\t\t= ' %d files were renamed'\nSTR_FW_RECORDS\t\t\t= ' FW versions - from Current(1) to Initial(%d)'\n\nSTR_SELECT_MODEL\t\t= ' Select model:'\nSTR_SHOW_DETAILS\t\t= ' Show details?'\nSTR_Y_OR_CANCEL\t\t\t= ' [y - yes, * - cancel] '\nSTR_CHOOSE_AREA\t\t\t= ' Choose area: '\nSTR_INPUT_SEL_DUMP\t\t= ' Select second dump?'\nSTR_INPUT_DESTROY_PREV\t= ' Destroy all previous FW (08-0B) records?'\nSTR_INPUT_BLOCK\t\t\t= ' Input start block [count]: '\nSTR_INPUT_SAVE_IM\t\t= ' Save all intermediate files?'\nSTR_INPUT_USE_SLOTB\t\t= ' Use slot B (active)?'\nSTR_USE_NEWBLOBS\t\t= ' Use new key blobs?'\nSTR_CONFIRM_SEPARATE\t= ' Save as separate file?'\nSTR_CONFIRM\t\t\t\t= ' Input [y] to continue: '\nSTR_CURRENT\t\t\t\t= ' Current: '\nSTR_GO_BACK\t\t\t\t= ' Go back'\nSTR_SC_BM_SELECT\t\t= ' Select boot mode variant [1-%d] '\nSTR_OPEN_IN_SC_TOOL\t\t= ' Open file in Syscon Tool?'\nSTR_FLASH_FILE\t\t\t= ' Flash this file to IC?'\n\nSTR_READING_DUMP_N\t\t= ' Reading dump %d'\nSTR_CHIP_NOT_RESPOND\t= ' Chip doesn\\'t respond, check wiring and push reset button'\nSTR_HOW_MUCH_DUMPS\t\t= ' How much dumps to read? [max 10] '\n\nSTR_EMC_CMD_MODE\t\t= 'Turning EMC cmd mode: [%s]'\nSTR_SHOW_BYTECODES\t\t= 'Show byte codes < 0x20: [%s]'\nSTR_MONITOR_STATUS\t\t= 'RX/TX: %d/%d (bytes) Elapsed: %d (sec)'\n\nSTR_CHIP_CONFIG\t\t\t= ' Chip config'\nSTR_FILE_INFO\t\t\t= ' File info'\nSTR_VERIFY\t\t\t\t= ' Verify'\n\nSTR_SPW_PROGRESS\t\t= 'Block %03d [%d KB / %d KB] %d%% %s '\nSTR_SPW_ERROR_CHIP\t\t= 'Unsupported chip!'\nSTR_SPW_ERROR_VERSION\t= 'Unsupported version! (v%d.%02d required)'\nSTR_SPW_ERROR_ERASE\t\t= 'Error erasing chip!'\nSTR_SPW_ERROR_ERASE_BLK\t= 'Block %d - error erasing block'\nSTR_SPW_ERROR_DATA_SIZE\t= 'Incorrect data size %d'\nSTR_SPW_ERROR_LENGTH\t= 'Incorrect length %d != %d!'\nSTR_SPW_ERROR_BLK_CHK\t= 'Error! Block verification failed (block=%d)'\nSTR_SPW_ERROR_WRITE\t\t= 'Error while writing!'\nSTR_SPW_ERROR_READ\t\t= 'Teensy receive buffer timeout! Disconnect and reconnect Teensy!'\nSTR_SPW_ERROR_VERIFY\t= 'Verification error!'\nSTR_SPW_ERROR_PROTECTED\t= 'Device is write-protected!'\nSTR_SPW_ERROR_UNKNOWN\t= 'Received unknown error!'\nSTR_SPW_ERROR_UNK_STATUS= 'Unknown status code!'\nSTR_SPW_ERR_BLOCK_ALIGN\t= 'Expecting file size to be a multiplication of block size: %d'\nSTR_SPW_ERR_DATA_SIZE\t= 'Data is %d bytes long (expected %d)!'\nSTR_SPW_ERR_OVERFLOW\t= 'Chip has %d blocks. Writing outside the chip\\'s capacity!'\n\nSTR_SCF_ERROR_VERSION\t= 'Unsupported version! (v%d.%02d required)'\nSTR_SCF_ERROR_WRITE_BLK\t= 'Error writing block %d'\nSTR_SCF_ERROR_ERASE_BLK\t= 'Error erasing block %d'\nSTR_SCF_ERROR_READ_BLK\t= 'Error reading block %d'\nSTR_SCF_ERROR_ERASE_CHIP= 'Error during chip erasing'\n\nSTR_SCF_ERR_INT\t\t\t= 'Error during initialization'\nSTR_SCF_ERR_READ\t\t= 'Read error'\nSTR_SCF_ERR_ERASE\t\t= 'Erase error'\nSTR_SCF_ERR_WRITE\t\t= 'Write error'\nSTR_SCF_ERR_CMD_LEN\t\t= 'Incorrect command length'\nSTR_SCF_ERR_CMD_EXEC\t= 'Error while executing command'\nSTR_SCF_ERR_UNKNOWN\t\t= 'Received unknown error!'\nSTR_SCF_ERR_UNK_STATUS\t= 'Unknown status code!'\nSTR_SCF_SAFE_ERASE\t\t= ' Safe erase starting at block #%03d'\n\nSTR_CANT_USE\t\t\t= 'Can\\'t use this'\nSTR_DIFF_SN\t\t\t\t= 'Serial numbers are different!'\nSTR_SSP_EQUAL\t\t\t= 'Slot switch patterns are equal!'\nSTR_LP_FIRST_DUMP\t\t= 'First dump'\nSTR_LP_SECOND_DUMP\t\t= 'Second dump'\n\nSTR_CONVERTING_S28\t\t= ' Converting to S28 format'\nSTR_S28_ALREADY\t\t\t= ' File format is S28'\n\nSTR_USE_EXPERT_M\t\t= ' Choose another model or use expert mode!'\nSTR_ERR_NO_FW_FOUND\t\t= ' Error: Can not find %s for FW %s in DB'\nSTR_EXPERT_MODE\t\t\t= ' Expert mode?'\nSTR_SELECT_FW_VER\t\t= ' Select fw version'\nSTR_MODEL\t\t\t\t= ' Model'\nSTR_FW_VER\t\t\t\t= ' FW: %s / Slot: %s'\nSTR_SELECT_MOST_FILE\t= ' Select most relevant file: '\nSTR_NO_FW_FILES\t\t\t= ' Files are not found! Download files to fws folder:\\n [%s]'\n\nSTR_ABOUT_SC_REBUILDER = 'About Syscon Rebuilder'\nSTR_INFO_SC_REBUILDER = ''\\\n' This util will help you to create custom version of Syscon.\\n'\\\n' You can adjust each type of records in expert mode.\\n'\\\n' Entries are sorted from current to past.\\n'\\\n' * To select previous FW you need to input \"2\" or more.\\n'\\\n' * Minimal setup consists of 3 types (00-03 + 04-07 + 08-0B)'\n\nSTR_ABOUT_RL78FLASH = 'About Stock Syscon'\nSTR_INFO_RL78FLASH = ''\\\n' In order to write new blank syscon chip (Renesas RL78G10)\\n'\\\n' you need USB to TTL adapter, wires and some diodes.\\n'\\\n' Wiring diagram can be found in assets/hw/l78flash folder'\\\n\nSTR_ABOUT_NVS = 'About NVS recovery'\nSTR_INFO_NVS = ''\\\n' Swaps corrupted block with backup data (not suitable for 10xx/11xx)\\n'\\\n' Warning - UART and other flags may be overwritten.\\n'\\\n' If you need to set some flags do it after NVS recovery!\\n'\\\n\nSTR_ABOUT_TORUS_PATCH = 'About WiFi patcher'\nSTR_INFO_TORUS_PATCH = ''\\\n' Will be useful in case of:\\n'\\\n' - corrupted Torus (WiFi+BT) FW\\n'\\\n' - switching to another IC module'\\\n\nSTR_ABOUT_SB_PATCH = 'About Southbridge patcher'\nSTR_INFO_SB_PATCH = ''\\\n' Will be useful in case of:\\n'\\\n' - corrupted Southbridge FW or \"EMC VERSION DOWN\" errors\\n'\\\n' - switching to another IC module (CXD90046 => CXD90036)\\n'\\\n' - replacement of APU bundles (21xx => 22xx, 71xx => 72xx)'\n\nSTR_INFO_FLASH_TOOLS = ''\\\n' Flash tools (spiway & syscon flasher) are experimental! Be careful.'\\\n\nSTR_ABOUT_PART_RECOVERY = 'Partition analyzing and recovery'\nSTR_INFO_PART_A_R = ''\\\n' Compares every byte of (SFlash/Syscon) partition with valid files\\n'\\\n' and shows percentage of similarity.\\n'\\\n' Most equal files will be at top of the list.\\n'\\\n' Keep in mind that Southbridge FW consists of emc + eap'\n\nSTR_INFO_FW_LINK = ''\\\n' Put valid emc/eap/torus/syscon files to /fws/ folder\\n'\\\n' You can download it from this repo:\\n '\n\nSTR_ABOUT_LEG_PATCH = 'About Legitimate CoreOS Patch'\nSTR_INFO_LEG_PATCH = ''\\\n' This method is only suitable for working consoles!\\n'\\\n' Because it requires updating via PS4 safe menu\\n'\\\n'\\n'\\\n' 1) Read first dump (if you\\'ve not done it already)\\n'\\\n' 2) Update the console to the SAME version via safe mode\\n'\\\n' 3) Read second dump (both slots have equal FW)\\n'\\\n'\\n'\\\n' Now you can patch first dump with data from second one\\n'\\\n' You can drag&drop 2 dumps on wee-tools shortcut to speed up'\n\nSTR_ABOUT_SCF = 'About Syscon Flasher'\nSTR_INFO_SCF = ''\\\n' Syscon Flasher allows you to r/w original PS4 syscon chip (RL78/G13)\\n'\\\n' Flasher supports only A0x-COLx syscon models\\n'\\\n' Currently hardware part is based on Teensy boards (2.0++/4.0/4.1)\\n'\\\n' Look at </assets/hw/syscon_flasher> for diagrams and Teensy\\'s FW\\n'\\\n' More info here: '\n\nSTR_ABOUT_SPIWAY = 'About SPIway'\nSTR_INFO_SPIWAY = ''\\\n' SPIway - sflash r/w with random block access support (Teensy++ 2.0)\\n'\\\n' Look at </assets/hw/spiway> folder for diagrams and Teensy\\'s FW\\n'\\\n' More info at PSDevWiki: '\n\nSTR_ABOUT_SC_GLITCH = 'About Syscon Glitch'\nSTR_INFO_SC_GLITCH = ''\\\n' Syscon reader by DarkNESmonk (Arduino Nano V3 CH340)\\n'\\\n' Look at </assets/hw/syscon_reader> folder for more info'\n\nSTR_ABOUT_SC_BOOTMODES = 'About boot modes'\nSTR_INFO_SC_BOOTMODES = ''\\\n' Boot mode records are encrypted, so we can\\'t detect its purpose\\n'\\\n' You should try each of them by yourself to determine what is it for\\n'\\\n' Keep in mind: some records may have duplicates (marked with color)'\n\nSTR_OVERCLOCKING = ''\\\n' Dangerous operation!\\n\\n'\\\n' Most GDDR5 runs at 6000-8000 MHz. GDDR5 is quad pumped [x4]\\n'\\\n' GDDR5 at 8000 MHz technically runs at 2000 MHz\\n'\\\n' If you have problems, decrease frequency to 1000 MHz\\n'\\\n'\\n'\\\n' Effective GDDR5 clock is 1350 MHz\\n'\\\n' The frequency is selected experimentally\\n'\\\n' - Too high value can lead to LOADBIOS -8 or DCT [*] error\\n'\\\n' - Too low value leads to AMDINIT error'\n\nSTR_ABOUT_EAPKEYS = 'About EAP keys'\nSTR_INFO_EAPKEYS = ''\\\n' Eap key may be 0x40 and 0x60 bytes length\\n'\\\n' PS4 10xx/11xx models usually have only one key\\n'\\\n' And 12xx/Slim/PRO models have backup key\\n'\\\n\nSTR_IMMEDIATLY = ''\\\n' Be careful: All patches are applied immediately to the file!'\n\nSTR_PATCHES = STR_IMMEDIATLY + '\\n'\\\n' Will switch value between available values for chosen option'\n\nSTR_DOWNGRADE = ''\\\n' Dangerous operation!\\n\\n'\\\n' Slot switching is used for FW revert (downgrade).\\n'+\\\n' It also fixes \"loadbios\" error.\\n'\\\n' Make sure you have backup of stock sFlash dump and SYSCON.\\n'\\\n' Syscon patching required! Otherwise you\\'ll get \"loadbios\" error.\\n'\\\n' Console will not boot normally.'\n\nSTR_ABOUT_MPATCH = 'Manual patch instructions'\nSTR_INFO_SC_MPATCH = ''\\\n' Every record has 16 bytes length. First byte is always \"A5\"\\n'\\\n' The second byte is record \"type\" usually in range [0x00-0x30]\\n'\\\n' Firmware update takes 4 records with types %s\\n'\\\n' To cancel last fw update we need to clean these 4 records (fill 0xFF)\\n'\\\n' If there are %s,%s types after %s patch is impossible\\n'\\\n' backup slot is already overwritten, you\\'ll got checkUpdVersion error'\n\nSTR_ABOUT_EAP = 'About EAP keys'\nSTR_INFO_HDD_EAP = ''\\\n' These keys allow you to explore PS4 HDD files with PC\\n'\\\n' You can find additional info by visiting:\\n '\\\n\nSTR_ABOUT_EMC_CFW = 'About EMC CFW'\nSTR_INFO_EMC_CFW = ''\\\n' Use at your own risk!\\n'\\\n' Only for Aeolia (PS4 Fat 10xx/11xx)\\n'\\\n' Grants control over the southbridge and syscon\\n\\n'\\\n' Additional info:\\n '\n\nSTR_APP_HELP = ''\\\n' Usage: ps4-wee-tools [params] \\n'\\\n'\\n'\\\n' Params: \\n\\n'\\\n'  <file>              : load appropriate tool for supplied file\\n'\\\n'  <folder>            : build dump with files from supplied folder\\n'\\\n'  <file1> <file2> ... : compare files (with MD5 info)\\n'\\\n'  --help              : show this help screen\\n'\\\n'\\n'\\\n' Homepage: '\n"
  },
  {
    "path": "lang/es.py",
    "content": "#==========================================================\n# Spanish language [ES]\n# part of ps4 wee tools project\n# https://github.com/andy-man/ps4-wee-tools\n#==========================================================\n\nMENU_SC_REBUILD_MODES = [\n\t'Modo normal (Elija FW, valores predeterminados para reposo / Todos (12) tipos)',\n\t'Configuración mínima (Elija los primeros dos tipos y FW/3 tipos)',\n\t'Modo experto (Ajustar todos los (12) tipos)',\n]\n\nMENU_NVS_COPY = [\n\t'Reemplazar %s con copia de seguridad (%s <= %s)',\n\t'Reemplazar copia de seguridad con %s (%s => %s)',\n]\n\nMENU_EAP_KEYS = [\n\t'Reemplazar A con B (key_a <= key_b)',\n\t'Reemplazar B con A (key_a => key_b)',\n\t'Reparar magia A*',\n\t'Reparar magia B*',\n\t'Generar nuevas claves A,B (longitud 0x60) *',\n\t'Generar nuevas claves A,B (longitud 0x40) *',\n\t'Limpiar tecla B*',\n]\n\nMENU_FLASHER = [\n\t'Lee todo',\n\t'Área de lectura',\n\t'Leer bloque',\n\t'Escribir todo',\n\t'Área de escritura',\n\t'Bloque de escritura',\n\t'Verificar todo',\n\t'Verificar área',\n\t'Verificar bloque',\n\t'Borrar todo',\n\t'Borrar área',\n\t'Borrar bloque',\n]\n\nMENU_SERIAL_MONITOR = {\n\t'Ctrl+Q':'salir del monitor',\n\t'Ctrl+R':'reiniciar monitor',\n\t'Ctrl+E':'alternar modo cmd EMC',\n\t'Ctrl+B':'mostrar códigos de bytes < 0x20',\n\t'Ctrl+L':'iniciar sesión en el archivo',\n}\n\nMENU_TOOL_SELECTION = [\n\t'Explorador de archivos',\n\t'Terminal (UART)',\n\t'sFlash r/w (SPIway de Judges)',\n\t'Syscon r/w (SCTool de Abkarino & EgyCnq)',\n\t'Syscon r/o (SCRead de DarkNESmonk)',\n\t'Syscon w/o (Para stock Renesas RL78)',\n\t'Cambiar el idioma de la aplicación',\n\t'Salida',\n]\n\nMENU_FILE_SELECTION = {\n\t'a':'Mostrar todos los archivos/Alternar filtros [bin,pup]',\n\t'f':'Construir volcado sflash0',\n\t'b':'Construir 2BLS/PUP',\n\t'r':'Renombrar lote (extraer información de volcado al nombre de archivo)',\n\t'c':'Comparar archivos en la carpeta actual',\n\t'q':'Salir/Regresar',\n}\n\nMENU_EXTRA_FLASHER = {\n\t's':'Seleccionar archivo',\n\t'f':'Herramienta de inicio para este archivo',\n\t'q':'Salir/Regresar',\n}\n\nMENU_EXTRA = {\n\t's':'Seleccione otro archivo',\n\t'f':'Actualizar este archivo (completo/partes) nuevamente a IC',\n\t'r':'Cambiar el nombre del archivo al nombre canónico',\n\t'q':'Salir/Regresar',\n}\n\nMENU_SFLASH_ACTIONS = [\n\t'Banderas (UART, RNG, Memtest, etc.)',\n\t'Reloj de memoria (GDDR5)',\n\t'Indicador de arranque SAMU',\n\t'Cambiar ranura CoreOS (revertir FW)',\n\t'Parche legítimo de CoreOS',\n\t'Parche Puente Sur',\n\t'Parche Torus (WiFi+BT)',\n\t'Herramientas adicionales',\n]\n\nMENU_SFLASH_ADV_ACTIONS = [\n\t'Extraer particiones de sFlash0',\n\t'Construir sFlash0 a partir de archivos extraídos',\n\t'Ver / Recuperar áreas NVS (1C9, 1CA)',\n\t'Ver/Recuperar clave EAP',\n\t'Obtener claves HDD = descifrar clave EAP = crear [keys.bin]',\n\t'Crear EMC cfw (sólo para Fat 1xxx/11xx)',\n\t'Validación de base y estadísticas de entropía',\n\t'Analizar y recuperar partición corrupta',\n]\n\nMENU_SC_ACTIONS = [\n\t'Alternar depuración',\n\t'Parche SNVS automático',\n\t'Visor de bloques SNVS',\n\t'Visor de bloques NVS',\n\t'Parche SNVS manual',\n\t'Herramientas adicionales',\n]\n\nMENU_SC_ADV_ACTIONS = [\n\t'Restablecer contadores SNVS',\n\t'Selección de modo (00-03)',\n\t'Modos de arranque (04-07)',\n\t'Reconstruir SNVS (restablecimiento de fábrica) de Syscon',\n\t'Recuperar el FW de Syscon',\n\t'Convertir para intermitente Renesas (Motorolla S28)',\n]\n\nMENU_PATCHES = [\n\t'Método A: se eliminarán los últimos 08-0B (4 registros)',\n\t'Método B: se limpiarán los últimos 08-0B e inferiores (%d registros)',\n\t'Método C: limpiar todo lo que esté debajo del 08-0B anterior (%d registros)',\n\t'Método D: limpiar todo lo que esté debajo del último 08-0B (%d registros)',\n\t'Método E: limpiar el 08-0B anterior e inferior (%d registros)',\n]\n\nMENU_SC_STATUSES = [\n\t'Ranura CoreOs sobrescrita',\n\t'Parcheable',\n\t'Ya parcheado o bloqueado en la actualización',\n\t'Probablemente parcheable',\n]\n\nMENU_SPW_ACTS = {\n\t'read':\t\t'Lectura',\n\t'write':\t'Escribiendo',\n\t'verify':\t'Verificando',\n\t'erase':\t'Borrar',\n}\n\nSTR_LANGUAGE\t\t\t= 'Idioma'\nSTR_SECONDS\t\t\t\t= '%0.0f segundos'\nSTR_NVS_AREAS\t\t\t= 'áreas NVS'\nSTR_PORTS_LIST\t\t\t= 'Puertos serie'\nSTR_MAIN_MENU\t\t\t= 'Menú principal'\nSTR_FILE_LIST\t\t\t= 'Lista de archivos'\nSTR_SFLASH_INFO\t\t\t= 'sInformación del volcado de Flash'\nSTR_ADDITIONAL\t\t\t= 'Herramientas adicionales'\nSTR_SYSCON_INFO\t\t\t= 'Información de volcado de Syscon'\nSTR_COMPARE\t\t\t\t= 'Comparar'\nSTR_HELP\t\t\t\t= 'Ayuda'\nSTR_ACTIONS\t\t\t\t= 'Acciones'\nSTR_COREOS_SWITCH\t\t= 'Cambio de ranura CoreOS'\nSTR_SWITCH_PATTERNS\t\t= 'Cambiar patrones'\nSTR_MEMCLOCK\t\t\t= 'Reloj de memoria'\nSTR_SAMU_BOOT\t\t\t= 'Arranque SAMU'\nSTR_SYSFLAGS\t\t\t= 'Indicadores del sistema'\nSTR_NVS_ENTRIES\t\t\t= 'Syscon %s entradas'\nSTR_APATCH_SVNS\t\t\t= 'Parches automáticos de SNVS'\nSTR_MPATCH_SVNS\t\t\t= 'Parcheador manual SNVS'\nSTR_SFLASH_VALIDATOR\t= 'Validador sFlash'\nSTR_SFLASH_FLAGS\t\t= 'Banderas sFlash'\nSTR_SFLASH_EXTRACT\t\t= 'Extractor de sFlash'\nSTR_SFLASH_BUILD\t\t= 'Constructor sFlash'\nSTR_HDD_KEY\t\t\t\t= 'Clave eap del disco duro'\nSTR_2BLS_BUILDER\t\t= 'Constructor 2BLS'\nSTR_UNPACK_2BLS\t\t\t= 'Descompactador 2BLS'\nSTR_UNPACK_PUP\t\t\t= 'Descompactador de PUP descifrado'\nSTR_EMC_CFW\t\t\t\t= 'EMC CFW (Eolia)'\nSTR_EAP_KEYS\t\t\t= 'Claves EAP'\nSTR_SC_BOOT_MODES\t\t= 'Registros del modo de arranque'\nSTR_INFO\t\t\t\t= 'Información'\nSTR_SC_READER\t\t\t= 'Lector Syscon'\nSTR_SPIWAY\t\t\t\t= 'SPIway por Jueces y Abkarino'\nSTR_SCF\t\t\t\t\t= 'Syscon Flasher de Abkarino y EgyCnq'\nSTR_LEG_PATCH\t\t\t= 'Parche legítimo de CoreOS'\nSTR_PART_RECOVERY\t\t= 'Recuperación de partición'\nSTR_PART_ANALYZE\t\t= 'Análisis de partición'\nSTR_PART_LIST\t\t\t= 'Lista de particiones'\nSTR_PARTS_INFO\t\t\t= 'Información de particiones'\nSTR_WIFI_PATCHER\t\t= 'parcheador WiFi'\nSTR_SB_PATCHER\t\t\t= 'Parcheador de Southbridge'\nSTR_RL78FLASH\t\t\t= 'RL78 intermitente'\nSTR_SC_REBUILDER\t\t= 'Reconstructor de Syscon'\n\nSTR_ALL\t\t\t\t\t= 'Todos'\nSTR_UNIQUE\t\t\t\t= 'Único'\nSTR_BACKUP\t\t\t\t= 'Copia de seguridad'\nSTR_EQUAL\t\t\t\t= 'Igual'\nSTR_NOT_EQUAL\t\t\t= 'No igual'\nSTR_NO_INFO\t\t\t\t= '- Sin información -'\nSTR_OFF\t\t\t\t\t= 'Desactivado'\nSTR_ON\t\t\t\t\t= 'Activado'\nSTR_WARNING\t\t\t\t= 'Advertencia'\nSTR_HELP\t\t\t\t= 'Ayuda'\nSTR_UNKNOWN\t\t\t\t= '- Desconocido -'\nSTR_YES\t\t\t\t\t= 'Sí'\nSTR_NO\t\t\t\t\t= 'No'\nSTR_PROBABLY\t\t\t= 'Probablemente'\nSTR_NOT_SURE\t\t\t= 'no estoy seguro'\nSTR_DIFF\t\t\t\t= 'Diferente'\nSTR_NOT_FOUND\t\t\t= 'no encontrado'\nSTR_BAD_SIZE\t\t\t= 'tamaño incorrecto'\nSTR_OK\t\t\t\t\t= 'Aceptar'\nSTR_FAIL\t\t\t\t= 'Error'\nSTR_CANCEL\t\t\t\t= 'Cancelar'\nSTR_IS_PART_VALID\t\t= '[%s] %s FW %s'\nSTR_SNVS_ENTRIES\t\t= '%d registros encontrados en 0x%05X'\nSTR_SERIAL_MONITOR\t\t= 'Terminal'\nSTR_ELAPSEDTIME\t\t\t= 'Tiempo transcurrido'\n\nSTR_NO_PORT_CHOSEN\t\t= ' No se eligió ningún puerto'\nSTR_NO_PORTS\t\t\t= ' No se encontró ningún puerto serie'\nSTR_PORT_UNAVAILABLE\t= ' El puerto seleccionado no está disponible'\nSTR_PORT_CLOSED\t\t\t= ' El puerto está cerrado'\nSTR_STOP_MONITORING\t\t= ' El usuario detuvo la supervisión'\n\nSTR_RESTART_APP\t\t\t= ' Reiniciar la aplicación para aplicar los cambios'\nSTR_GENERATE_ALL_PS\t\t= ' Generar todos los parches'\nSTR_ACTION_NA\t\t\t= ' No hay ninguna acción disponible %s'\nSTR_EMC_CFW_WARN\t\t= ' Actualmente, EMC CFW es solo para PS4 Fat 10xx/11xx'\nSTR_EMC_NOT_FOUND\t\t= ' No se encontró el FW de EMC'\nSTR_DECRYPTING\t\t\t= ' Descifrando'\nSTR_ENCRYPTING\t\t\t= ' Cifrando'\nSTR_PATCHING\t\t\t= ' Parchear'\nSTR_EXPERIMENTAL\t\t= ' * - funciones experimentales'\nSTR_PERFORMED\t\t\t= ' Acción realizada:'\n\nSTR_EMPTY_FILE_LIST\t\t= ' La lista de archivos está vacía'\nSTR_NO_FOLDER\t\t\t= ' La carpeta %s no existe'\nSTR_EXTRACTING\t\t\t= ' Extrayendo sflash0 a la carpeta %s'\nSTR_FILES_CHECK\t\t\t= ' Comprobando archivos'\nSTR_BUILDING\t\t\t= ' Creando archivo %s'\n\nSTR_DONE\t\t\t\t= ' Todo hecho'\nSTR_PROGRESS\t\t\t= ' Progreso %02d%%'\nSTR_PROGRESS_KB\t\t\t= ' Progreso: %dKB / %dKB'\nSTR_WAIT\t\t\t\t= ' Por favor, espere...'\nSTR_WAITING\t\t\t\t= ' Esperando...'\nSTR_SET_TO\t\t\t\t= ' %s se configuró en [%s]'\nSTR_ABORT\t\t\t\t= ' La acción fue cancelada'\nSTR_FILENAME\t\t\t= ' Nombre de archivo: '\n\nSTR_VALIDATE_NVS_CHECK\t= ' Comprobando áreas NVS'\nSTR_ACT_SLOT\t\t\t= ' Ranura activa: %s [0x%02X]'\nSTR_NIY\t\t\t\t\t= ' La función aún no está implementada'\nSTR_CLEAN_FLAGS\t\t\t= ' Limpiar todos los indicadores del sistema'\nSTR_UNK_FILE_TYPE\t\t= ' Tipo de archivo desconocido'\nSTR_UNK_CONTENT\t\t\t= ' Contenido desconocido'\nSTR_UART\t\t\t\t= ' UART está configurado en'\nSTR_DEBUG\t\t\t\t= ' La depuración de Syscon está configurada en '\n\nSTR_DIFF_SLOT_VALUES\t= ' Los valores en las ranuras son diferentes!'\nSTR_SYSFLAGS_CLEAN\t\t= ' Se borraron los indicadores del sistema. Consejo: enciende UART'\nSTR_SAMU_UPD\t\t\t= ' El indicador SAMU se estableció en'\nSTR_DOWNGRADE_UPD\t\t= ' El interruptor de ranura se configuró en: '\nSTR_LAST_SC_ENTRIES\t\t= ' Mostrando las últimas [%d/%d] entradas del bloque activo [%d]'\nSTR_MEMCLOCK_SET\t\t= ' La frecuencia GDDR5 se configuró en %dMHz [0x%02X]'\n\nSTR_RECOMMEND\t\t\t= ' Método recomendado [%s]'\nSTR_PATCH_CANCELED\t\t= ' El parche fue cancelado'\nSTR_PATCH_SUCCESS\t\t= ' %d entradas eliminadas correctamente'\nSTR_PATCH_SAVED\t\t\t= ' El parche se guardó en %s'\nSTR_RENAMED\t\t\t\t= ' Renombrado a %s'\n\nSTR_SC_BLOCK_SELECT\t\t= ' Seleccionar bloque de datos [0-%d] | Ver Piso/Bloque [f] '\nSTR_MPATCH_INPUT\t\t= ' Cuántos registros limpiar (desde el final): '\nSTR_CHOICE\t\t\t\t= ' Hacer elección:'\nSTR_BACK\t\t\t\t= ' Presione [ENTER] para regresar'\nSTR_MEMCLOCK_INPUT\t\t= ' Frecuencia de configuración [400 - 2000] / [0 establecido por defecto (0xFF)] MHz '\nSTR_SAMU_INPUT\t\t\t= ' Configurar SAMU [0 - 255] / [el valor predeterminado es 255 (0xFF)] '\nSTR_TOO_MUCH\t\t\t= ' %d es demasiado, el valor máximo es %d'\nSTR_SC_BLOCK_CLEANED\t= ' El bloque [%d] se limpió por completo'\nSTR_OWC_RESET_REQUIRED\t= ' Primero debes restablecer los contadores SNVS para realizar esta acción'\nSTR_SC_NO_BM\t\t\t= ' No se encontraron registros de modos de arranque!'\n\nSTR_UNPATCHABLE\t\t\t= ' No se puede parchear!'\nSTR_SYSCON_BLOCK\t\t= ' El bloque [%d/%d] tiene [%d/%d] entradas | El bloque activo es [%d]\\n'\nSTR_PARTITIONS_CHECK\t= ' Comprobando particiones'\nSTR_ENTROPY\t\t\t\t= ' Estadísticas de entropía'\nSTR_MAGICS_CHECK\t\t= ' Comprobando magias'\nSTR_DUPLICATES\t\t\t= ' %d duplicados encontrados [%s]'\nSTR_SC_WARN_OVERWITTEN\t= ' Advertencia: CoreOS probablemente esté sobrescrito'\n\nSTR_SNVS_ENTRY_INFO\t\t= 'Bloque %d #%03d Desplazamiento 0x%04X'\nSTR_SC_TOGGLE_FLATDATA\t= 'Alternar entre Piso/Bloque'\nSTR_SH_DUPLICATES\t\t= 'Mostrar/Ocultar duplicados'\nSTR_NO_ENTRIES\t\t\t= 'No se encontraron entradas'\nSTR_SKIPPED\t\t\t\t= 'Omitido'\nSTR_SKIP_ENTRY\t\t\t= 'Omitir este tipo de entrada'\nSTR_NO_FILE_SEL\t\t\t= 'Ningún archivo seleccionado'\n\nSTR_INCORRECT_SIZE\t\t= ' %s tiene un tamaño de volcado incorrecto!'\nSTR_FILE_NOT_EXISTS\t\t= ' El archivo %s no existe!'\nSTR_FILE_EXISTS\t\t\t= ' El nombre del archivo ya existe!'\nSTR_ERROR_FILE_REQ\t\t= ' Primero debes seleccionar el archivo'\nSTR_SAVED_TO\t\t\t= ' Guardado en %s'\nSTR_ERROR_INPUT\t\t\t= ' Entrada incorrecta'\nSTR_ERROR_DEF_VAL\t\t= ' Configuración de valores predeterminados'\nSTR_ERROR_CHOICE\t\t= ' Elección no válida'\nSTR_ERROR_INFO_READ\t\t= ' Error al leer los datos del archivo'\nSTR_OUT_OF_RANGE\t\t= ' El valor está fuera de rango!'\nSTR_FILES_MATCH\t\t\t= ' Los archivos son iguales'\nSTR_FILES_MISMATCH\t\t= ' Los archivos no coinciden'\nSTR_SIZES_MISMATCH\t\t= ' Los tamaños no coinciden!'\nSTR_RENAMED_COUNT\t\t= ' %d archivos fueron renombrados'\nSTR_FW_RECORDS\t\t\t= ' Versiones de FW: desde Actual(1) hasta Inicial(%d)'\n\nSTR_SELECT_MODEL\t\t= ' Seleccionar modelo:'\nSTR_SHOW_DETAILS\t\t= ' Mostrar detalles?'\nSTR_Y_OR_CANCEL\t\t\t= ' [y - sí, * - cancelar] '\nSTR_CHOOSE_AREA\t\t\t= ' Elegir área:'\nSTR_INPUT_SEL_DUMP\t\t= ' Seleccionar segundo volcado?'\nSTR_INPUT_DESTROY_PREV\t= ' Destruir todos los registros FW (08-0B) anteriores?'\nSTR_INPUT_BLOCK\t\t\t= ' Bloque de inicio de entrada [recuento]: '\nSTR_INPUT_SAVE_IM\t\t= ' Guardar todos los archivos intermedios?'\nSTR_INPUT_USE_SLOTB\t\t= ' Usar ranura B (activa)?'\nSTR_USE_NEWBLOBS\t\t= ' Usar nuevos blobs de claves?'\nSTR_CONFIRM_SEPARATE\t= ' Guardar como archivo independiente?'\nSTR_CONFIRM\t\t\t\t= ' Ingrese [y] para continuar: '\nSTR_CURRENT\t\t\t\t= ' Actual:'\nSTR_GO_BACK\t\t\t\t= ' Regresar'\nSTR_SC_BM_SELECT\t\t= ' Seleccione la variante del modo de inicio [1-%d] '\nSTR_OPEN_IN_SC_TOOL\t\t= ' Abrir archivo en Syscon Tool?'\nSTR_FLASH_FILE\t\t\t= ' Actualizar este archivo a IC?'\n\nSTR_READING_DUMP_N\t\t= ' Volcado de lectura %d'\nSTR_CHIP_NOT_RESPOND\t= ' El chip no responde, verifique el cableado y presione el botón de reinicio'\nSTR_HOW_MUCH_DUMPS\t\t= ' Cuántos volcados leer? [máximo 10] '\n\nSTR_EMC_CMD_MODE\t\t= 'Activando el modo cmd de EMC: [%s]'\nSTR_SHOW_BYTECODES\t\t= 'Mostrar códigos de bytes < 0x20: [%s]'\nSTR_MONITOR_STATUS\t\t= 'RX/TX: %d/%d (bytes) transcurrido: %d (seg)'\n\nSTR_CHIP_CONFIG\t\t\t= ' Configuración del chip'\nSTR_FILE_INFO\t\t\t= ' Información del archivo'\nSTR_VERIFY\t\t\t\t= ' Verificar'\n\nSTR_SPW_PROGRESS\t\t= 'Bloquear %03d [%d KB / %d KB] %d%% %s '\nSTR_SPW_ERROR_CHIP\t\t= 'Chip no compatible!'\nSTR_SPW_ERROR_VERSION\t= 'Versión no compatible! (v%d.%02d requerido)'\nSTR_SPW_ERROR_ERASE\t\t= 'Error al borrar el chip!'\nSTR_SPW_ERROR_ERASE_BLK\t= 'Bloque %d - error al borrar el bloque'\nSTR_SPW_ERROR_DATA_SIZE\t= 'Tamaño de datos incorrecto %d'\nSTR_SPW_ERROR_LENGTH\t= 'Longitud incorrecta %d != %d!'\nSTR_SPW_ERROR_BLK_CHK\t= 'Error! Error en la verificación del bloque (bloque=%d)'\nSTR_SPW_ERROR_WRITE\t\t= 'Error al escribir!'\nSTR_SPW_ERROR_READ\t\t= 'Tiempo de espera del búfer de recepción diminuto! ¡Desconecta y vuelve a conectar a Teensy!'\nSTR_SPW_ERROR_VERIFY\t= 'Error de verificación!'\nSTR_SPW_ERROR_PROTECTED\t= 'El dispositivo está protegido contra escritura!'\nSTR_SPW_ERROR_UNKNOWN\t= 'Se recibió un error desconocido!'\nSTR_SPW_ERROR_UNK_STATUS= 'Código de estado desconocido!'\nSTR_SPW_ERR_BLOCK_ALIGN\t= 'Esperando que el tamaño del archivo sea una multiplicación del tamaño del bloque: %d'\nSTR_SPW_ERR_DATA_SIZE\t= 'Los datos tienen %d bytes de longitud (se espera %d)!'\nSTR_SPW_ERR_OVERFLOW\t= 'El chip tiene %d bloques. ¡Escribiendo fuera de la capacidad del chip!'\n\nSTR_SCF_ERROR_VERSION\t= 'Versión no compatible! (v%d.%02d requerido)'\nSTR_SCF_ERROR_WRITE_BLK\t= 'Error al escribir bloque %d'\nSTR_SCF_ERROR_ERASE_BLK\t= 'Error al borrar el bloque %d'\nSTR_SCF_ERROR_READ_BLK\t= 'Error al leer el bloque %d'\nSTR_SCF_ERROR_ERASE_CHIP= 'Error durante el borrado del chip'\n\nSTR_SCF_ERR_INT\t\t\t= 'Error durante la inicialización'\nSTR_SCF_ERR_READ\t\t= 'Error de lectura'\nSTR_SCF_ERR_ERASE\t\t= 'Borrar error'\nSTR_SCF_ERR_WRITE\t\t= 'Error de escritura'\nSTR_SCF_ERR_CMD_LEN\t\t= 'Longitud de comando incorrecta'\nSTR_SCF_ERR_CMD_EXEC\t= 'Error al ejecutar el comando'\nSTR_SCF_ERR_UNKNOWN\t\t= 'Se recibió un error desconocido!'\nSTR_SCF_ERR_UNK_STATUS\t= 'Código de estado desconocido!'\nSTR_SCF_SAFE_ERASE\t\t= 'Borrado seguro comenzando en el bloque #%03d'\n\nSTR_CANT_USE\t\t\t= 'No puedo usar esto'\nSTR_DIFF_SN\t\t\t\t= 'Los números de serie son diferentes!'\nSTR_SSP_EQUAL\t\t\t= '¡Los patrones de cambio de ranura son iguales!'\nSTR_LP_FIRST_DUMP\t\t= 'Primer volcado'\nSTR_LP_SECOND_DUMP\t\t= 'Segundo volcado'\n\nSTR_CONVERTING_S28\t\t= ' Conversión al formato S28'\nSTR_S28_ALREADY\t\t\t= ' El formato de archivo es S28'\n\nSTR_USE_EXPERT_M\t\t= ' Elige otro modelo o usa el modo experto!'\nSTR_ERR_NO_FW_FOUND\t\t= ' Error: No se puede encontrar %s para el FW %s en la base de datos'\nSTR_EXPERT_MODE\t\t\t= ' Modo experto?'\nSTR_SELECT_FW_VER\t\t= ' Seleccionar versión de firmware'\nSTR_MODEL\t\t\t\t= ' Modelo'\nSTR_FW_VER\t\t\t\t= ' FW: %s / Ranura: %s'\nSTR_SELECT_MOST_FILE\t= ' Seleccionar el archivo más relevante:'\nSTR_NO_FW_FILES\t\t\t= ' No se encuentran los archivos! Descargar archivos a la carpeta fws:\\n [%s]'\n\nSTR_ABOUT_SC_REBUILDER = 'Acerca de Syscon Rebuilder'\nSTR_INFO_SC_REBUILDER = ''\\\n' Esta utilidad le ayudará a crear una versión personalizada de Syscon.\\n'\\\n' Puedes ajustar cada tipo de registros en modo experto.\\n'\\\n' Las entradas se ordenan del actual al pasado.\\n'\\\n' * Para seleccionar el FW anterior necesita ingresar \"2\" o más.\\n'\\\n' * la configuración mínima consta de 3 tipos (00-03 + 04-07 + 08-0B)'\n\nSTR_ABOUT_RL78FLASH = 'Acerca de Stock Syscon'\nSTR_INFO_RL78FLASH = ''\\\n' Para escribir un nuevo chip syscon en blanco (Renesas RL78G10)\\n'\\\n' necesitas un adaptador USB a TTL, cables y algunos diodos.\\n'\\\n' El diagrama de cableado se puede encontrar en la carpeta activos/hw/l78flash'\\\n\nSTR_ABOUT_NVS = 'Acerca de la recuperación de NVS'\nSTR_INFO_NVS = ''\\\n' Intercambia bloque dañado con datos de respaldo (no apto para 10xx/11xx)\\n'\\\n' Advertencia: Es posible que se sobrescriban UART y otros indicadores.\\n'\\\n' Si necesita configurar algunos indicadores, hágalo después de la recuperación de NVS!\\n'\\\n\nSTR_ABOUT_TORUS_PATCH = 'Acerca del parcheador WiFi'\nSTR_INFO_TORUS_PATCH = ''\\\n' Será útil en caso de:\\n'\\\n' - FW Torus (WiFi+BT) dañado\\n'\\\n' - cambiando a otro módulo IC'\\\n\nSTR_ABOUT_SB_PATCH = 'Acerca del parcheador de Southbridge'\nSTR_INFO_SB_PATCH = ''\\\n' Será útil en caso de:\\n'\\\n' - Errores de FW de Southbridge dañados o \"EMC VERSION DOWN\"\\n'\\\n' - cambiando a otro módulo IC (CXD90046 => CXD90036)\\n'\\\n' - reemplazo de paquetes de APU (21xx => 22xx, 71xx => 72xx)'\n\nSTR_INFO_FLASH_TOOLS = ''\\\n' Las herramientas Flash (spiway y syscon flasher) son experimentales! Ten cuidado.'\\\n\nSTR_ABOUT_PART_RECOVERY = 'Análisis y recuperación de particiones'\nSTR_INFO_PART_A_R = ''\\\n' Compara cada byte de la partición (SFlash/Syscon) con archivos válidos\\n'\\\n' y muestra el porcentaje de similitud.\\n'\\\n' Los archivos más iguales estarán en la parte superior de la lista.\\n'\\\n'Tenga en cuenta que Southbridge FW consta de emc + eap'\n\nSTR_INFO_FW_LINK = ''\\\n' Colocar archivos emc/eap/torus/syscon válidos en la carpeta /fws/\\n'\\\n' Puedes descargarlo desde este repositorio:\\n '\n\nSTR_ABOUT_LEG_PATCH = 'Acerca del parche legítimo de CoreOS'\nSTR_INFO_LEG_PATCH = ''\\\n' ¡Este método sólo es adecuado para consolas que funcionan!\\n'\\\n' Porque requiere actualización a través del menú seguro de PS4\\n'\\\n'\\n'\\\n' 1) Lee el primer volcado (si aún no lo has hecho)\\n'\\\n' 2) Actualice la consola a la MISMA versión a través del modo seguro\\n'\\\n' 3) Leer el segundo volcado (ambas ranuras tienen el mismo FW)\\n'\\\n'\\n'\\\n' Ahora puedes parchear el primer volcado con datos del segundo\\n'\\\n' Puedes arrastrar y soltar 2 volcados en el acceso directo de wee-tools para acelerar'\n\nSTR_ABOUT_SCF = 'Acerca de Syscon Flasher'\nSTR_INFO_SCF = ''\\\n' Syscon Flasher te permite reproducir/reproducir el chip syscon original de PS4 (RL78/G13)\\n'\\\n' Flasher solo admite modelos de sistema A0x-COLx\\n'\\\n' Actualmente la parte de hardware se basa en placas Teensy (2.0++/4.0/4.1)\\n'\\\n' Mire </assets/hw/syscon_flasher> para ver los diagramas y el firmware de Teensy\\n'\\\n' Más información aquí:'\n\nSTR_ABOUT_SPIWAY = 'Acerca de SPIway'\nSTR_INFO_SPIWAY = ''\\\n' SPIway - sflash r/w con soporte de acceso de bloque aleatorio (Teensy++ 2.0)\\n'\\\n' Busque en la carpeta </assets/hw/spiway> los diagramas y el firmware de Teensy\\n'\\\n' Más información en PSDevWiki: '\n\nSTR_ABOUT_SC_GLITCH = 'Acerca del fallo de Syscon'\nSTR_INFO_SC_GLITCH = ''\\\n' Lector Syscon de DarkNESmonk (Arduino Nano V3 CH340)\\n'\\\n' Mire la carpeta </assets/hw/syscon_reader> para obtener más información'\n\nSTR_ABOUT_SC_BOOTMODES = 'Acerca de los modos de arranque'\nSTR_INFO_SC_BOOTMODES = ''\\\n' Los registros del modo de arranque están cifrados, por lo que no podemos detectar su propósito\\n'\\\n' Deberías probar cada uno de ellos tú mismo para determinar para qué sirve\\n'\\\n' Tenga en cuenta: algunos registros pueden tener duplicados (marcados con color)'\n\nSTR_OVERCLOCKING=''\\\n' ¡Operación peligrosa!\\n\\n'\\\n' La mayoría de las GDDR5 funcionan entre 6000 y 8000 MHz. GDDR5 tiene bombeo cuádruple [x4]\\n'\\\n' GDDR5 a 8000 MHz técnicamente funciona a 2000 MHz\\n'\\\n' Si tienes problemas, disminuye la frecuencia a 1000 MHz\\n'\\\n'\\n'\\\n' El reloj GDDR5 efectivo es 1350 MHz\\n'\\\n' La frecuencia se selecciona experimentalmente\\n'\\\n' - Un valor demasiado alto puede provocar un error LOADBIOS -8 o DCT [*]\\n'\\\n' - Un valor demasiado bajo provoca un error AMDINIT'\n\nSTR_ABOUT_EAPKEYS = 'Acerca de las claves EAP'\nSTR_INFO_EAPKEYS = ''\\\n' La clave Eap puede tener una longitud de 0x40 y 0x60 bytes\\n'\\\n' Los modelos PS4 10xx/11xx normalmente tienen una sola clave\\n'\\\n' Y los modelos 12xx/Slim/PRO tienen clave de respaldo\\n'\\\n\nSTR_IMMEDIATLY = ''\\\n' Tenga cuidado: ¡todos los parches se aplican inmediatamente al archivo!'\n\nSTR_PATCHES = STR_IMMEDIATLY + '\\n'\\\n' Cambiará el valor entre los valores disponibles para la opción elegida'\n\nSTR_DOWNGRADE = ''\\\n' ¡Operación peligrosa!\\n\\n'\\\n' El cambio de ranura se utiliza para revertir FW (bajar de categoría).\\n'+\\\n' También corrige el error \"loadbios\".\\n'\\\n' Asegúrese de tener una copia de seguridad del volcado sFlash y SYSCON.\\n'\\\n' Se requiere parcheo de Syscon! De lo contrario, obtendrás el error \"loadbios\".\\n'\\\n' La consola no arranca normalmente.'\n\nSTR_ABOUT_MPATCH = 'Instrucciones de parche manual'\nSTR_INFO_SC_MPATCH = ''\\\n' Cada registro tiene una longitud de 16 bytes. El primer byte siempre es \"A5\"\\n'\\\n' El segundo byte es el \"tipo\" de registro, normalmente en el rango [0x00-0x30]\\n'\\\n' La actualización del firmware requiere 4 registros con tipos %s\\n'\\\n' Para cancelar la última actualización de firmware necesitamos limpiar estos 4 registros (rellenar 0xFF)\\n'\\\n' Si hay %s,%s tipos después del parche %s es imposible\\n'\\\n' La ranura de copia de seguridad ya está sobrescrita, obtendrás el error checkUpdVersion'\n\nSTR_ABOUT_EAP = 'Acerca de las claves EAP'\nSTR_INFO_HDD_EAP = ''\\\n' Estas claves te permiten explorar archivos HDD de PS4 con la PC\\n'\\\n' Puedes encontrar información adicional visitando:\\n '\\\n\nSTR_ABOUT_EMC_CFW = 'Acerca de EMC CFW'\nSTR_INFO_EMC_CFW = ''\\\n' Utilízalo bajo tu propia responsabilidad!\\n'\\\n' Sólo para Aeolia (PS4 Fat 10xx/11xx)\\n'\\\n' Otorga control sobre el puente sur y syscon\\n\\n'\\\n' Información adicional:\\n '\n\nSTR_APP_HELP = ''\\\n' Uso: ps4-wee-tools [parámetros] \\n'\\\n'\\n'\\\n' Parámetros: \\n\\n'\\\n' <archivo> : carga la herramienta adecuada para el archivo proporcionado\\n'\\\n' <carpeta> : compila el volcado con archivos de la carpeta proporcionada\\n'\\\n' <archivo1> <archivo2> ... : compara archivos (con información MD5)\\n'\\\n' --help : muestra esta pantalla de ayuda\\n'\\\n'\\n'\\\n' Página de inicio: '\n"
  },
  {
    "path": "lang/pl.py",
    "content": "#==========================================================\n# Polish language [PL]\n# part of ps4 wee tools project\n# https://github.com/andy-man/ps4-wee-tools\n#==========================================================\n\nMENU_SC_REBUILD_MODES = [\n\t'Tryb normalny (Wybierz FW, domyślne wartości dla reszty / Wszystkie (12) typy)',\n\t'Minimalna konfiguracja (Wybierz pierwsze dwa typy i FW / 3 typy)',\n\t'Tryb eksperta (Dostosuj wszystkie (12) typy)',\n]\n\nMENU_NVS_COPY = [\n\t'Zastąp %s kopią zapasową (%s <= %s)',\n\t'Zastąp kopię zapasową %s (%s => %s)',\n]\n\nMENU_EAP_KEYS = [\n\t'Zastąp A przez B (key_a <= key_b)',\n\t'Zastąp B przez A (key_a => key_b)',\n\t'Napraw magic A *',\n\t'Napraw magic B *',\n\t'Wygeneruj nowe klucze A, B (długość 0x60) *',\n\t'Wygeneruj nowe klucze A, B (długość 0x40) *',\n\t'Wyczyść klucz B *',\n]\n\nMENU_FLASHER = [\n\t'Odczytaj wszystko',\n\t'Odczytaj obszar',\n\t'Odczytaj blok',\n\t'Zapisz wszystko',\n\t'Zapisz obszar',\n\t'Zapisz blok',\n\t'Zweryfikuj wszystko',\n\t'Zweryfikuj obszar',\n\t'Zweryfikuj blok',\n\t'Wymaż wszystko',\n\t'Wymaż obszar',\n\t'Wymaż blok',\n]\n\nMENU_SERIAL_MONITOR = {\n\t'Ctrl+Q':'Wyjdź z monitora',\n\t'Ctrl+R':'Zrestartuj monitor',\n\t'Ctrl+E':'Przełącz tryb EMC cmd',\n\t'Ctrl+B':'Pokaż bajtkody < 0x20',\n\t'Ctrl+L':'Zapisuj log do pliku',\n}\n\nMENU_TOOL_SELECTION = [\n\t'Przeglądarka plików',\n\t'Terminal (UART)',\n\t'sFlash r/w (SPIway by Judges)',\n\t'Syscon r/w (SCTool by Abkarino & EgyCnq)',\n\t'Syscon r/o (SCRead by DarkNESmonk)',\n\t'Syscon w/o (Dla oryginalnego Renesas RL78)',\n\t'Zmień język aplikacji',\n\t'Wyjdź',\n]\n\nMENU_FILE_SELECTION = {\n\t'a':'Pokaż wszystkie pliki / Przełącz filtry [bin,pup]',\n\t'f':'Zbuduj zrzut sflash0',\n\t'b':'Zbuduj 2BLS/PUP',\n\t'r':'Zbiorcza zmiana nazw (Wyciągnij informacje ze zrzutu do nazwy pliku)',\n\t'c':'Porównaj pliki w bieżącym folderze',\n\t'q':'Wyjdź / Wróć',\n}\n\nMENU_EXTRA_FLASHER = {\n\t's':'Wybierz plik',\n\t'f':'Uruchom narzędzie dla tego pliku',\n\t'q':'Wyjdź / Wróć',\n}\n\nMENU_EXTRA = {\n\t's':'Wybierz inny plik',\n\t'f':'Zaflashuj ten plik (cały/częściowo) z powrotem do IC',\n\t'r':'Zmień nazwę pliku na nazwę kanoniczną',\n\t'q':'Wyjdź / Wróć',\n}\n\nMENU_SFLASH_ACTIONS = [\n\t'Flagi (UART, RNG, Memtest, itp.)',\n\t'Zegar pamięci (GDDR5)',\n\t'Flaga rozruchu SAMU',\n\t'Przełącz CoreOS slot (przywrócenie FW)',\n\t'Legalny patch CoreOS',\n\t'Patch Southbridge',\n\t'Patch Torus (WiFi+BT)',\n\t'Dodatkowe narzędzia',\n]\n\nMENU_SFLASH_ADV_ACTIONS = [\n\t'Wyodrębnij partycje z sFlash0',\n\t'Zbuduj sFlash0 z wyodrębnionych plików',\n\t'Wyświetl / Odzyskaj obszary NVS (1C9, 1CA)',\n\t'Wyświetl / Odzyskaj klucz EAP',\n\t'Pobierz klucze HDD = odszyfruj klucz EAP = utwórz [keys.bin]',\n\t'Utwórz EMC cfw (tylko dla Fat 1xxx/11xx)',\n\t'Walidacja bazowa i statystyki entropii',\n\t'Analiza i odzyskiwanie uszkodzonej partycji',\n]\n\nMENU_SC_ACTIONS = [\n\t'Przełącz tryb debugowania',\n\t'Automatyczny patch SNVS',\n\t'Podgląd bloku SNVS',\n\t'Podgląd bloku NVS',\n\t'Ręczny patch SNVS',\n\t'Dodatkowe narzędzia',\n]\n\nMENU_SC_ADV_ACTIONS = [\n\t'Zresetuj liczniki SNVS',\n\t'Wybór trybu (00-03)',\n\t'Tryby rozruchu (04-07)',\n\t'Odbuduj SNVS Syscona (Przywracanie fabryczne)',\n\t'Odzyskaj FW Syscona',\n\t'Konwertuj na flasher Renesas (Motorola S28)',\n]\n\nMENU_PATCHES = [\n\t'Metoda A - ostatnie 08-0B zostaną usunięte (4 rekordy)',\n\t'Metoda B - ostatnie 08-0B i poniżej zostaną wyczyszczone (%d rekordów)',\n\t'Metoda C - wyczyść wszystko poniżej poprzedniego 08-0B (%d rekordów)',\n\t'Metoda D - wyczyść wszystko poniżej ostatniego 08-0B (%d rekordów)',\n\t'Metoda E - wyczyść poprzednie 08-0B i poniżej (%d rekordów)',\n]\n\nMENU_SC_STATUSES = [\n\t'Nadpisany slot CoreOs',\n\t'Możliwy do patchowania',\n\t'Już spatchowany lub utknął na aktualizacji',\n\t'Prawdopodobnie możliwy do patchowania',\n]\n\nMENU_SPW_ACTS = {\n\t'read':\t\t'Odczytywanie',\n\t'write':\t'Zapis',\n\t'verify':\t'Weryfikacja',\n\t'erase':\t'Wymazywanie',\n}\n\nSTR_LANGUAGE\t\t\t= 'Język'\nSTR_SECONDS\t\t\t\t= '%0.0f sekund'\nSTR_NVS_AREAS\t\t\t= 'Obszary NVS'\nSTR_PORTS_LIST\t\t\t= 'Lista portów szeregowych'\nSTR_MAIN_MENU\t\t\t= 'Główne menu'\nSTR_FILE_LIST\t\t\t= 'Lista plików'\nSTR_SFLASH_INFO\t\t\t= 'Informacje o zrzucie sFlash'\nSTR_ADDITIONAL\t\t\t= 'Dodatkowe narzędzia'\nSTR_SYSCON_INFO\t\t\t= 'Informacje o zrzucie Syscona'\nSTR_COMPARE\t\t\t\t= 'Porównaj'\nSTR_HELP\t\t\t\t= 'Pomoc'\nSTR_ACTIONS\t\t\t\t= 'Akcje'\nSTR_COREOS_SWITCH\t\t= 'Przełączanie slotu CoreOS'\nSTR_SWITCH_PATTERNS\t\t= 'Wzorce przełączania'\nSTR_MEMCLOCK\t\t\t= 'Zegar pamięci'\nSTR_SAMU_BOOT\t\t\t= 'Rozruch SAMU'\nSTR_SYSFLAGS\t\t\t= 'Flagi systemowe'\nSTR_NVS_ENTRIES\t\t\t= 'Wpisy Syscona %s'\nSTR_APATCH_SVNS\t\t\t= 'Automatyczne patchowanie SNVS'\nSTR_MPATCH_SVNS\t\t\t= 'Ręczny patch SNVS'\nSTR_SFLASH_VALIDATOR\t= 'Walidator sFlash'\nSTR_SFLASH_FLAGS\t\t= 'Flagi sFlash'\nSTR_SFLASH_EXTRACT\t\t= 'Wyciąganie sFlash'\nSTR_SFLASH_BUILD\t\t= 'Budowanie sFlash'\nSTR_HDD_KEY\t\t\t\t= 'Klucz EAP HDD'\nSTR_2BLS_BUILDER\t\t= 'Budowanie 2BLS'\nSTR_UNPACK_2BLS\t\t\t= 'Rozpakowywanie 2BLS'\nSTR_UNPACK_PUP\t\t\t= 'Rozpakowywanie odszyfrowanego PUP'\nSTR_EMC_CFW\t\t\t\t= 'EMC CFW (Aeolia)'\nSTR_EAP_KEYS\t\t\t= 'Klucze EAP'\nSTR_SC_BOOT_MODES\t\t= 'Rekordy trybów rozruchu'\nSTR_INFO\t\t\t\t= 'Informacje'\nSTR_SC_READER\t\t\t= 'Czytnik Syscona'\nSTR_SPIWAY                = 'SPIway autorstwa Judges & Abkarino'\nSTR_SCF                   = 'Syscon Flasher autorstwa Abkarino & EgyCnq'\nSTR_LEG_PATCH             = 'Legalny patch CoreOS'\nSTR_PART_RECOVERY         = 'Odzyskiwanie partycji'\nSTR_PART_ANALYZE          = 'Analiza partycji'\nSTR_PART_LIST             = 'Lista partycji'\nSTR_PARTS_INFO            = 'Informacje o partycjach'\nSTR_WIFI_PATCHER          = 'Patch WiFi'\nSTR_SB_PATCHER            = 'Patch Southbridge'\nSTR_RL78FLASH             = 'Programator RL78'\nSTR_SC_REBUILDER          = 'Odbudowa Syscon'\n\nSTR_ALL                   = 'Wszystko'\nSTR_UNIQUE                = 'Unikalny'\nSTR_BACKUP                = 'Kopia zapasowa'\nSTR_EQUAL                 = 'Równy'\nSTR_NOT_EQUAL             = 'Nie równy'\nSTR_NO_INFO               = '- Brak informacji -'\nSTR_OFF                   = 'Wyłączony'\nSTR_ON                    = 'Włączony'\nSTR_WARNING               = 'Ostrzeżenie'\nSTR_HELP                  = 'Pomoc'\nSTR_UNKNOWN               = '- Nieznany -'\nSTR_YES                   = 'Tak'\nSTR_NO                    = 'Nie'\nSTR_PROBABLY              = 'Prawdopodobnie'\nSTR_NOT_SURE              = 'Niepewny'\nSTR_DIFF                  = 'Różny'\nSTR_NOT_FOUND             = 'Nie znaleziono'\nSTR_BAD_SIZE              = 'Niepoprawny rozmiar'\nSTR_OK                    = 'OK'\nSTR_FAIL                  = 'Niepowodzenie'\nSTR_CANCEL                = 'Anuluj'\nSTR_IS_PART_VALID         = '[%s] %s FW %s'\nSTR_SNVS_ENTRIES          = 'Znaleziono %d wpisów pod adresem 0x%05X'\nSTR_SERIAL_MONITOR        = 'Terminal'\nSTR_ELAPSEDTIME           = 'Czas trwania'\n\nSTR_NO_PORT_CHOSEN        = ' Nie wybrano portu'\nSTR_NO_PORTS              = ' Nie znaleziono żadnego portu szeregowego'\nSTR_PORT_UNAVAILABLE      = ' Wybrany port jest niedostępny'\nSTR_PORT_CLOSED           = ' Port jest zamknięty'\nSTR_STOP_MONITORING       = ' Monitorowanie zostało zatrzymane przez użytkownika'\n\nSTR_RESTART_APP           = ' Uruchom ponownie aplikację, aby zastosować zmiany'\nSTR_GENERATE_ALL_PS       = ' Generuj wszystkie patche'\nSTR_ACTION_NA             = ' Brak dostępnej akcji %s'\nSTR_EMC_CFW_WARN          = ' Obecnie EMC CFW jest tylko dla PS4 Fat 10xx/11xx'\nSTR_EMC_NOT_FOUND         = ' Nie znaleziono oprogramowania EMC'\nSTR_DECRYPTING            = ' Odszyfrowywanie'\nSTR_ENCRYPTING            = ' Szyfrowanie'\nSTR_PATCHING              = ' Patchowanie'\nSTR_EXPERIMENTAL          = ' * - funkcje eksperymentalne'\nSTR_PERFORMED             = ' Wykonano akcję: '\n\nSTR_EMPTY_FILE_LIST       = ' Lista plików jest pusta'\nSTR_NO_FOLDER             = ' Folder %s nie istnieje'\nSTR_EXTRACTING            = ' Rozpakowywanie sflash0 do folderu %s'\nSTR_FILES_CHECK           = ' Sprawdzanie plików'\nSTR_BUILDING              = ' Tworzenie pliku %s'\n\nSTR_DONE                  = ' Wszystko gotowe'\nSTR_PROGRESS              = ' Postęp %02d%% '\nSTR_PROGRESS_KB           = ' Postęp: %dKB / %dKB'\nSTR_WAIT                  = ' Proszę czekać...'\nSTR_WAITING               = ' Oczekiwanie...'\nSTR_SET_TO                = ' %s został ustawiony na [%s]'\nSTR_ABORT                 = ' Akcja została przerwana'\nSTR_FILENAME              = ' Nazwa pliku: '\n\nSTR_VALIDATE_NVS_CHECK    = ' Sprawdzanie obszarów NVS'\nSTR_ACT_SLOT              = ' Aktywny slot: %s [0x%02X]'\nSTR_NIY                   = ' Ta funkcja jest dostępna tylko w wersji PRO'\nSTR_CLEAN_FLAGS           = ' Wyczyść wszystkie flagi systemowe'\nSTR_UNK_FILE_TYPE         = ' Nieznany typ pliku'\nSTR_UNK_CONTENT           = ' Nieznana zawartość'\nSTR_UART                  = ' UART został ustawiony na '\nSTR_DEBUG                 = ' Debugowanie Syscon ustawione na '\n\nSTR_DIFF_SLOT_VALUES      = ' Wartości w slotach są różne!'\nSTR_SYSFLAGS_CLEAN        = ' Flagi systemowe zostały wyczyszczone. Wskazówka: włącz UART'\nSTR_SAMU_UPD              = ' Flaga SAMU została ustawiona na '\nSTR_DOWNGRADE_UPD         = ' Przełącznik slotów został ustawiony na: '\nSTR_LAST_SC_ENTRIES       = ' Wyświetlanie ostatnich [%d/%d] wpisów z aktywnego bloku [%d]'\nSTR_MEMCLOCK_SET          = ' Częstotliwość GDDR5 została ustawiona na %dMHz [0x%02X]'\n\nSTR_RECOMMEND             = ' Zalecana metoda [%s]'\nSTR_PATCH_CANCELED        = ' Patch został anulowany'\nSTR_PATCH_SUCCESS         = ' Pomyślnie usunięto %d wpisów'\nSTR_PATCH_SAVED           = ' Patch zapisany do %s'\nSTR_RENAMED               = ' Zmieniono nazwę na %s'\n\nSTR_SC_BLOCK_SELECT       = ' Wybierz blok danych [0-%d] | Widok Płaski/Blok [f] '\nSTR_MPATCH_INPUT          = ' Ile wpisów wyczyścić (od końca): '\nSTR_CHOICE                = ' Dokonaj wyboru: '\nSTR_BACK                  = ' Naciśnij [ENTER], aby wrócić'\nSTR_MEMCLOCK_INPUT        = ' Ustaw częstotliwość [400 - 2000] / [0 ustaw domyślną (0xFF)] MHz '\nSTR_SAMU_INPUT            = ' Ustaw SAMU [0 - 255] / [domyślna to 255 (0xFF)] '\nSTR_TOO_MUCH              = ' %d to za dużo, maksymalna wartość to %d'\nSTR_SC_BLOCK_CLEANED      = ' Blok [%d] został całkowicie wyczyszczony'\nSTR_OWC_RESET_REQUIRED    = ' Najpierw musisz zresetować liczniki SNVS, aby wykonać tę akcję'\nSTR_SC_NO_BM              = ' Nie znaleziono zapisów trybu rozruchu!'\n\nSTR_UNPATCHABLE           = ' Nie można patchować!'\nSTR_SYSCON_BLOCK          = ' Blok [%d/%d] zawiera [%d/%d] wpisów | Aktywny blok to [%d]\\n'\nSTR_PARTITIONS_CHECK      = ' Sprawdzanie partycji'\nSTR_ENTROPY               = ' Statystyki entropii'\nSTR_MAGICS_CHECK          = ' Sprawdzanie magii'\nSTR_DUPLICATES            = ' Znaleziono %d duplikat(ów) [%s]'\nSTR_SC_WARN_OVERWITTEN    = ' Ostrzeżenie: CoreOS prawdopodobnie został nadpisany'\n\nSTR_SNVS_ENTRY_INFO       = 'Blok %d #%03d Offset 0x%04X'\nSTR_SC_TOGGLE_FLATDATA    = 'Przełącz między Płaskim/Blokowym'\nSTR_SH_DUPLICATES         = 'Pokaż / Ukryj duplikaty'\nSTR_NO_ENTRIES            = 'Nie znaleziono wpisów'\nSTR_SKIPPED               = 'Pominięte'\nSTR_SKIP_ENTRY            = 'Pomiń ten typ wpisu'\nSTR_NO_FILE_SEL           = 'Nie wybrano pliku'\n\nSTR_INCORRECT_SIZE\t\t= ' %s ma niepoprawny rozmiar dumpa!'\nSTR_FILE_NOT_EXISTS\t\t= ' Plik %s nie istnieje!'\nSTR_FILE_EXISTS\t\t\t= ' Nazwa pliku już istnieje!'\nSTR_ERROR_FILE_REQ\t\t= ' Najpierw musisz wybrać plik'\nSTR_SAVED_TO\t\t\t= ' Zapisano do %s'\nSTR_ERROR_INPUT\t\t\t= ' Niepoprawne dane wejściowe'\nSTR_ERROR_DEF_VAL\t\t= ' Ustawianie wartości domyślnych'\nSTR_ERROR_CHOICE\t\t= ' Nieprawidłowy wybór'\nSTR_ERROR_INFO_READ\t\t= ' Błąd podczas odczytu danych z pliku'\nSTR_OUT_OF_RANGE\t\t= ' Wartość jest poza zakresem!'\nSTR_FILES_MATCH\t\t\t= ' Pliki są identyczne'\nSTR_FILES_MISMATCH\t\t= ' Pliki się różnią'\nSTR_SIZES_MISMATCH\t\t= ' Rozmiary się różnią!'\nSTR_RENAMED_COUNT\t\t= ' %d plików zostało przemianowanych'\nSTR_FW_RECORDS\t\t\t= ' Wersje FW - od bieżącej(1) do początkowej(%d)'\n\nSTR_SELECT_MODEL\t\t= ' Wybierz model:'\nSTR_SHOW_DETAILS\t\t= ' Pokaż szczegóły?'\nSTR_Y_OR_CANCEL\t\t\t= ' [y - tak, * - anuluj]'\nSTR_CHOOSE_AREA\t\t\t= ' Wybierz obszar: '\nSTR_INPUT_SEL_DUMP\t\t= ' Wybrać drugi dump?'\nSTR_INPUT_DESTROY_PREV\t= ' Zniszczyć wszystkie wcześniejsze rekordy FW (08-0B)?'\nSTR_INPUT_BLOCK\t\t\t= ' Podaj blok startowy [ilość]: '\nSTR_INPUT_SAVE_IM\t\t= ' Zapisz wszystkie pliki pośrednie?'\nSTR_INPUT_USE_SLOTB\t\t= ' Użyć slotu B (aktywnego)?'\nSTR_USE_NEWBLOBS\t\t= ' Użyć nowych kluczy blob?'\nSTR_CONFIRM_SEPARATE\t= ' Zapisz jako osobny plik?'\nSTR_CONFIRM\t\t\t\t= ' Wprowadź [y], aby kontynuować:'\nSTR_CURRENT\t\t\t\t= ' Bieżący:'\nSTR_GO_BACK\t\t\t\t= ' Wróć'\nSTR_SC_BM_SELECT\t\t= ' Wybierz wariant trybu rozruchu [1-%d]'\nSTR_OPEN_IN_SC_TOOL\t\t= ' Otworzyć plik w narzędziu Syscon?'\nSTR_FLASH_FILE\t\t\t= ' Wgrać ten plik na IC?'\n\nSTR_READING_DUMP_N\t\t= ' Odczytywanie dumpa %d'\nSTR_CHIP_NOT_RESPOND\t= ' Chip nie odpowiada, sprawdź okablowanie i naciśnij przycisk reset'\nSTR_HOW_MUCH_DUMPS\t\t= ' Ile dumpów odczytać? [maks. 10]'\n\nSTR_EMC_CMD_MODE\t\t= 'Włączanie trybu EMC cmd: [%s]'\nSTR_SHOW_BYTECODES\t\t= 'Pokaż kody bajtowe < 0x20: [%s]'\nSTR_MONITOR_STATUS\t\t= 'RX/TX: %d/%d (bajtów) Czas: %d (sek)'\n\nSTR_CHIP_CONFIG\t\t\t= ' Konfiguracja chipa'\nSTR_FILE_INFO\t\t\t= ' Informacje o pliku'\nSTR_VERIFY\t\t\t\t= ' Weryfikuj'\n\nSTR_SPW_PROGRESS\t\t= 'Blok %03d [%d KB / %d KB] %d%% %s'\nSTR_SPW_ERROR_CHIP\t\t= 'Nieobsługiwany chip!'\nSTR_SPW_ERROR_VERSION\t= 'Nieobsługiwana wersja! (wymagana v%d.%02d)'\nSTR_SPW_ERROR_ERASE\t\t= 'Błąd podczas wymazywania chipa!'\nSTR_SPW_ERROR_ERASE_BLK\t= 'Blok %d - błąd wymazywania'\nSTR_SPW_ERROR_DATA_SIZE\t= 'Niepoprawny rozmiar danych %d'\nSTR_SPW_ERROR_LENGTH\t= 'Niepoprawna długość %d != %d!'\nSTR_SPW_ERROR_BLK_CHK\t= 'Błąd! Weryfikacja bloku nie powiodła się (blok=%d)'\nSTR_SPW_ERROR_WRITE\t\t= 'Błąd podczas zapisu!'\nSTR_SPW_ERROR_READ\t\t= 'Przekroczony czas odbioru Teensy! Odłącz i ponownie podłącz Teensy!'\nSTR_SPW_ERROR_VERIFY\t= 'Błąd weryfikacji!'\nSTR_SPW_ERROR_PROTECTED\t= 'Urządzenie jest chronione przed zapisem!'\nSTR_SPW_ERROR_UNKNOWN\t= 'Odebrano nieznany błąd!'\nSTR_SPW_ERROR_UNK_STATUS= 'Nieznany kod statusu!'\nSTR_SPW_ERR_BLOCK_ALIGN\t= 'Oczekiwano, że rozmiar pliku będzie wielokrotnością rozmiaru bloku: %d'\nSTR_SPW_ERR_DATA_SIZE\t= 'Dane mają długość %d bajtów (oczekiwano %d)!'\nSTR_SPW_ERR_OVERFLOW\t= 'Chip ma %d bloków. Zapis wykracza poza pojemność chipa!'\n\nSTR_SCF_ERROR_VERSION\t= 'Nieobsługiwana wersja! (wymagana v%d.%02d)'\nSTR_SCF_ERROR_WRITE_BLK\t= 'Błąd zapisu bloku %d'\nSTR_SCF_ERROR_ERASE_BLK\t= 'Błąd wymazywania bloku %d'\nSTR_SCF_ERROR_READ_BLK\t= 'Błąd odczytu bloku %d'\nSTR_SCF_ERROR_ERASE_CHIP= 'Błąd podczas wymazywania chipa'\n\nSTR_SCF_ERR_INT\t\t\t= 'Błąd podczas inicjalizacji'\nSTR_SCF_ERR_READ\t\t= 'Błąd odczytu'\nSTR_SCF_ERR_ERASE\t\t= 'Błąd wymazywania'\nSTR_SCF_ERR_WRITE\t\t= 'Błąd zapisu'\nSTR_SCF_ERR_CMD_LEN\t\t= 'Niepoprawna długość polecenia'\nSTR_SCF_ERR_CMD_EXEC\t= 'Błąd podczas wykonywania polecenia'\nSTR_SCF_ERR_UNKNOWN\t\t= 'Otrzymano nieznany błąd!'\nSTR_SCF_ERR_UNK_STATUS\t= 'Nieznany kod statusu!'\nSTR_SCF_SAFE_ERASE\t\t= ' Bezpieczne wymazywanie rozpoczyna się od bloku #%03d'\n\nSTR_CANT_USE\t\t\t= 'Nie można tego użyć'\nSTR_DIFF_SN\t\t\t\t= 'Numery seryjne są różne!'\nSTR_SSP_EQUAL\t\t\t= 'Wzory przełączania slotów są identyczne!'\nSTR_LP_FIRST_DUMP\t\t= 'Pierwszy dump'\nSTR_LP_SECOND_DUMP\t\t= 'Drugi dump'\n\nSTR_CONVERTING_S28\t\t= ' Konwertowanie do formatu S28'\nSTR_S28_ALREADY\t\t\t= ' Format pliku to już S28'\n\nSTR_USE_EXPERT_M\t\t= ' Wybierz inny model lub użyj trybu eksperckiego!'\nSTR_ERR_NO_FW_FOUND\t\t= ' Błąd: Nie można znaleźć %s dla FW %s w DB'\nSTR_EXPERT_MODE\t\t\t= ' Tryb ekspercki?'\nSTR_SELECT_FW_VER\t\t= ' Wybierz wersję FW'\nSTR_MODEL\t\t\t\t= ' Model'\nSTR_FW_VER\t\t\t\t= ' FW: %s / Slot: %s'\nSTR_SELECT_MOST_FILE\t= ' Wybierz najbardziej odpowiedni plik:'\nSTR_NO_FW_FILES\t\t\t= ' Pliki nie zostały znalezione! Pobierz pliki do folderu fws:\\n [%s]'\n\nSTR_ABOUT_SC_REBUILDER = 'O programie Syscon Rebuilder'\nSTR_INFO_SC_REBUILDER = ''\\\n' To narzędzie pomoże Ci stworzyć niestandardową wersję Syscon.\\n'\\\n' Możesz dostosować każdy typ rekordów w trybie eksperckim.\\n'\\\n' Wpisy są posortowane od bieżących do przeszłych.\\n'\\\n' * Aby wybrać wcześniejsze FW, musisz wprowadzić \"2\" lub więcej.\\n'\\\n' * Minimalna konfiguracja składa się z 3 typów (00-03 + 04-07 + 08-0B)'\n\nSTR_ABOUT_RL78FLASH = 'O programie Stock Syscon'\nSTR_INFO_RL78FLASH = ''\\\n' Aby zaprogramować nowy, pusty chip syscon (Renesas RL78G10)\\n'\\\n' potrzebujesz adaptera USB na TTL, przewodów i kilku diod.\\n'\\\n' Schemat okablowania znajduje się w folderze assets/hw/l78flash'\n\nSTR_ABOUT_NVS = 'O odzyskiwaniu NVS'\nSTR_INFO_NVS = ''\\\n' Zamienia uszkodzony blok na dane kopii zapasowej (nie dotyczy modeli 10xx/11xx)\\n'\\\n' Ostrzeżenie - UART i inne flagi mogą zostać nadpisane.\\n'\\\n' Jeśli potrzebujesz ustawić jakieś flagi, zrób to po przywróceniu NVS!\\n'\\\n\nSTR_ABOUT_TORUS_PATCH = 'O patcherze WiFi'\nSTR_INFO_TORUS_PATCH = ''\\\n' Przydatne w przypadku:\\n'\\\n' - uszkodzonego FW Torus (WiFi+BT)\\n'\\\n' - przełączania na inny moduł IC'\\\n\nSTR_ABOUT_SB_PATCH = 'O patcherze Southbridge'\nSTR_INFO_SB_PATCH = ''\\\n' Przydatne w przypadku:\\n'\\\n' - uszkodzonego FW Southbridge lub błędów \"EMC VERSION DOWN\"\\n'\\\n' - przełączania na inny moduł IC (CXD90046 => CXD90036)\\n'\\\n' - wymiany zestawów APU (21xx => 22xx, 71xx => 72xx)'\n\nSTR_INFO_FLASH_TOOLS = ''\\\n' Narzędzia do flashowania (spiway & syscon flasher) są eksperymentalne! Bądź ostrożny.'\\\n\nSTR_ABOUT_PART_RECOVERY = 'O analizie i odzyskiwaniu partycji'\nSTR_INFO_PART_A_R = ''\\\n' Porównuje każdy bajt partycji (SFlash/Syscon) z prawidłowymi plikami\\n'\\\n' i pokazuje procent podobieństwa.\\n'\\\n' Najbardziej podobne pliki będą na górze listy.\\n'\\\n' Pamiętaj, że FW Southbridge składa się z emc + eap'\n\nSTR_INFO_FW_LINK = ''\\\n' Umieść prawidłowe pliki emc/eap/torus/syscon w folderze /fws/\\n'\\\n' Możesz je pobrać z tego repozytorium:\\n '\n\nSTR_ABOUT_LEG_PATCH = 'O Patchu Legitimate CoreOS'\nSTR_INFO_LEG_PATCH = ''\\\n' Ta metoda jest odpowiednia tylko dla działających konsol!\\n'\\\n' Wymaga aktualizacji przez tryb bezpieczny PS4\\n'\\\n'\\n'\\\n' 1) Odczytaj pierwszy zrzut (jeśli jeszcze tego nie zrobiłeś)\\n'\\\n' 2) Zaktualizuj konsolę do TEJ SAMEJ wersji przez tryb bezpieczny\\n'\\\n' 3) Odczytaj drugi zrzut (oba sloty mają równą wersję FW)\\n'\\\n'\\n'\\\n' Teraz możesz zaaplikować łatkę do pierwszego zrzutu przy użyciu danych z drugiego\\n'\\\n' Możesz przeciągnąć i upuścić 2 zrzuty na skrót narzędzia wee-tools, aby przyspieszyć'\n\nSTR_ABOUT_SCF = 'O Syscon Flasher'\nSTR_INFO_SCF = ''\\\n' Syscon Flasher umożliwia odczyt/zapis oryginalnego chipa PS4 syscon (RL78/G13)\\n'\\\n' Flasher obsługuje tylko modele syscon A0x-COLx\\n'\\\n' Część sprzętowa opiera się na płytkach Teensy (2.0++/4.0/4.1)\\n'\\\n' Diagramy i FW dla Teensy znajdziesz w </assets/hw/syscon_flasher>\\n'\\\n' Więcej informacji tutaj: '\n\nSTR_ABOUT_SPIWAY = 'O SPIway'\nSTR_INFO_SPIWAY = ''\\\n' SPIway - odczyt/zapis sflash z obsługą losowego dostępu do bloków (Teensy++ 2.0)\\n'\\\n' Diagramy i FW dla Teensy znajdziesz w folderze </assets/hw/spiway>\\n'\\\n' Więcej informacji na PSDevWiki: '\n\nSTR_ABOUT_SC_GLITCH = 'O Syscon Glitch'\nSTR_INFO_SC_GLITCH = ''\\\n' Czytnik Syscon autorstwa DarkNESmonk (Arduino Nano V3 CH340)\\n'\\\n' Więcej informacji znajdziesz w folderze </assets/hw/syscon_reader>'\n\nSTR_ABOUT_SC_BOOTMODES = 'O trybach bootowania'\nSTR_INFO_SC_BOOTMODES = ''\\\n' Rekordy trybu bootowania są zaszyfrowane, więc nie możemy wykryć ich przeznaczenia\\n'\\\n' Powinieneś wypróbować każdy z nich samodzielnie, aby określić, do czego służy\\n'\\\n' Pamiętaj: niektóre rekordy mogą się powtarzać (oznaczone kolorem)'\n\nSTR_OVERCLOCKING = ''\\\n' Niebezpieczna operacja!\\n\\n'\\\n' Większość pamięci GDDR5 działa na 6000-8000 MHz. GDDR5 jest czterokrotnie pompowane [x4]\\n'\\\n' GDDR5 przy 8000 MHz technicznie działa na 2000 MHz\\n'\\\n' Jeśli masz problemy, zmniejsz częstotliwość do 1000 MHz\\n'\\\n'\\n'\\\n' Efektywna częstotliwość GDDR5 to 1350 MHz\\n'\\\n' Częstotliwość jest ustalana eksperymentalnie\\n'\\\n' - Zbyt wysoka wartość może prowadzić do błędu LOADBIOS -8 lub DCT [*]\\n'\\\n' - Zbyt niska wartość prowadzi do błędu AMDINIT'\n\nSTR_ABOUT_EAPKEYS = 'O kluczach EAP'\nSTR_INFO_EAPKEYS = ''\\\n' Klucz EAP może mieć długość 0x40 i 0x60 bajtów\\n'\\\n' Modele PS4 10xx/11xx zazwyczaj mają tylko jeden klucz\\n'\\\n' A modele 12xx/Slim/PRO mają klucz zapasowy\\n'\\\n\nSTR_IMMEDIATLY = ''\\\n' Uwaga: Wszystkie łatki są natychmiast stosowane do pliku!'\n\nSTR_PATCHES = STR_IMMEDIATLY + '\\n'\\\n' Przełączy wartość między dostępnymi wartościami dla wybranej opcji'\n\nSTR_DOWNGRADE = ''\\\n' Niebezpieczna operacja!\\n\\n'\\\n' Przełączanie slotów jest używane do przywracania wersji FW (downgrade).\\n'+\\\n' Naprawia również błąd \"loadbios\".\\n'\\\n' Upewnij się, że masz kopię zapasową oryginalnego zrzutu sFlash i SYSCON.\\n'\\\n' Wymagane jest patchowanie Syscon! W przeciwnym razie otrzymasz błąd \"loadbios\".\\n'\\\n' Konsola nie uruchomi się normalnie.'\n\nSTR_ABOUT_MPATCH = 'Instrukcje dotyczące ręcznego patchowania'\nSTR_INFO_SC_MPATCH = ''\\\n' Każdy rekord ma długość 16 bajtów. Pierwszy bajt to zawsze \"A5\"\\n'\\\n' Drugi bajt to \"typ\" rekordu, zazwyczaj w zakresie [0x00-0x30]\\n'\\\n' Aktualizacja oprogramowania obejmuje 4 rekordy o typach %s\\n'\\\n' Aby anulować ostatnią aktualizację FW, musimy wyczyścić te 4 rekordy (wypełniając je 0xFF)\\n'\\\n' Jeśli po %s występują typy %s,%s, patchowanie jest niemożliwe\\n'\\\n' slot zapasowy został już nadpisany, otrzymasz błąd checkUpdVersion'\n\nSTR_ABOUT_EAP = 'O kluczach EAP'\nSTR_INFO_HDD_EAP = ''\\\n' Te klucze pozwalają na eksplorację plików HDD PS4 na PC\\n'\\\n' Dodatkowe informacje znajdziesz odwiedzając:\\n '\\\n\nSTR_ABOUT_EMC_CFW = 'O EMC CFW'\nSTR_INFO_EMC_CFW = ''\\\n' Używaj na własne ryzyko!\\n'\\\n' Tylko dla Aeolia (PS4 Fat 10xx/11xx)\\n'\\\n' Zapewnia kontrolę nad Southbridge i Syscon\\n\\n'\\\n' Dodatkowe informacje:\\n '\n\nSTR_APP_HELP = ''\\\n' Użycie: ps4-wee-tools [parametry] \\n'\\\n'\\n'\\\n' Parametry: \\n\\n'\\\n'  <plik>              : załaduj odpowiednie narzędzie dla podanego pliku\\n'\\\n'  <folder>            : zbuduj zrzut przy użyciu plików z podanego folderu\\n'\\\n'  <plik1> <plik2> ... : porównaj pliki (z informacjami MD5)\\n'\\\n'  --help              : wyświetl tę pomoc\\n'\\\n'\\n'\\\n' Strona główna: '\n"
  },
  {
    "path": "lang/pt.py",
    "content": "#==========================================================\n# Portuguese language [PT]\n# part of ps4 wee tools project\n# https://github.com/andy-man/ps4-wee-tools\n#==========================================================\n\nMENU_SC_REBUILD_MODES = [\n\t'Modo Normal (Escolha FW, valores padrão para restauração / Todos (12) tipos)',\n\t'Config. Mínima (Escolha os dois primeiros tipos e FW / 3 tipos)',\n\t'Modo Especialista (Todos os ajustes (12) tipos)',\n]\n\nMENU_NVS_COPY = [\n\t'Substitua %s com backup (%s <= %s)',\n\t'Substitua backup com %s (%s => %s)',\n]\n\nMENU_EAP_KEYS = [\n\t'Substitua A por B (key_a <= key_b)',\n\t'Substitua B por A (key_a => key_b)',\n\t'Corrigir magic A *',\n\t'Corrigir magic B *',\n\t'Gerar novas chaves A,B (tamanho 0x60) *',\n\t'Gerar novas chaves A,B (tamanho 0x40) *',\n\t'Limpar chave B *',\n]\n\nMENU_FLASHER = [\n\t'Lêr tudo',\n\t'Lêr área',\n\t'Lêr bloco',\n\t'Escrever tudo',\n\t'Escrever área',\n\t'Escrever bloco',\n\t'Verificar tudo',\n\t'Verificar área',\n\t'Verificar bloco',\n\t'Apagar tudo',\n\t'Apagar área',\n\t'Apagar bloco',\n]\n\nMENU_SERIAL_MONITOR = {\n\t'Ctrl+Q':'fechar monitor',\n\t'Ctrl+R':'reiniciar monitor',\n\t'Ctrl+E':'alternar modo de cmd EMC',\n\t'Ctrl+B':'exibir bytecodes < 0x20',\n\t'Ctrl+L':'salvar em arquivo Log',\n}\n\nMENU_TOOL_SELECTION = [\n\t'Navegador de arquivos',\n\t'Monitor Terminal (UART)',\n\t'sFlash r/w (SPIway por Judges)',\n\t'Syscon r/w (SCTool por Abkarino & EgyCnq)',\n\t'Syscon r/o (SCRead por DarkNESmonk)',\n\t'Syscon w/o (Para Renesas RL78 de fábrica)',\n\t'Trocar idioma do Aplicativo',\n\t'Sair',\n]\n\nMENU_FILE_SELECTION = {\n\t'a':'Exibir todos os arquivos / Filtrar [bin,pup]',\n\t'f':'Construir sflash0 despejado',\n\t'b':'Construir 2BLS/PUP',\n\t'r':'Renomear Lote (extrair informação de despejo para o nome do arquivo)',\n\t'c':'Comparar arquivos da pasta atual',\n\t'q':'Fechar / Voltar',\n}\n\nMENU_EXTRA_FLASHER = {\n\t's':'Selecionar arquivo',\n\t'f':'Carregar Ferramenta para este arquivo',\n\t'q':'Fechar / Voltar',\n}\n\nMENU_EXTRA = {\n\t's':'Selecionar outro arquivo',\n\t'f':'Gravar este arquivo (todo/partes) novamente no C.I.',\n\t'r':'Renomear arquivo para nome canônico',\n\t'q':'Fechar / Voltar',\n}\n\nMENU_SFLASH_ACTIONS = [\n\t'Sinalizadores (UART, RNG, Memtest, etc)',\n\t'Freqüência da Memória RAM (GDDR5)',\n\t'Sinalizador de Inicialização SAMU (Sony Advanced Manager Utility)',\n\t'Trocar slot do CoreOS (reversão de FW)',\n\t'Aplicar correção Legítima no CoreOS',\n\t'Aplicar correção no chipset (Southbridge)',\n\t'Aplicar correção no chip Torus (WiFi+BT)',\n\t'Ferramentas Adicionais',\n]\n\nMENU_SFLASH_ADV_ACTIONS = [\n\t'Extrair partições do arquivo sFlash0',\n\t'Construir sFlash0 de arquivos extraídos',\n\t'Visualizar / Restaurar áreas NVS (1C9, 1CA)',\n\t'Visualizar / Restaurar chaves EAP',\n\t'Pegar chaves do HDD = descriptografar chaves EAP = criar [keys.bin]',\n\t'Criar EMC CFW (somente para consoles Fat 1xxx/11xx)',\n\t'Validação de Base e estatísticas de entropia',\n\t'Análise e restauração de partições corrompidas',\n]\n\nMENU_SC_ACTIONS = [\n\t'Alternar Depuração',\n\t'Aplicar correção Automática em SNVS',\n\t'Visualizar blocos SNVS',\n\t'Visualizar blocos NVS',\n\t'Aplicar correção Manual em SNVS',\n\t'Ferramentas Adicionais',\n]\n\nMENU_SC_ADV_ACTIONS = [\n\t'Reinicar contadores SNVS',\n\t'Seleção de Modo (00-03)',\n\t'Modo de inicialização (04-07)',\n\t'Reconstrução de SNVS de Syscon\\'s (Restauração de Fábrica)',\n\t'Restauração de FW de Syscon\\'s',\n\t'Converter para Renesas Flasher (Motorola S28)',\n]\n\nMENU_PATCHES = [\n\t'Método A - último 08-0B será excluído (4 registros)',\n\t'Método B - último 08-0B e abaixo serão excluídos (%d registros)',\n\t'Método C - Excluir tudo abaixo do 08-0B anterior (%d registros)',\n\t'Método D - Excluir tudo abaixo do último 08-0B (%d registros)',\n\t'Método E - Excluir 08-0B anterior e abaixo (%d registros)',\n]\n\nMENU_SC_STATUSES = [\n\t'Slot do CoreOs sobrescrito',\n\t'Corrigível',\n\t'Já corrigido ou travado na atualização',\n\t'Provavelmente Corrigível',\n]\n\nMENU_SPW_ACTS = {\n\t'read':\t\t'Lendo',\n\t'write':\t'Escrevendo',\n\t'verify':\t'Verificando',\n\t'erase':\t'Apagando',\n}\n\nSTR_LANGUAGE\t\t\t= 'Idioma'\nSTR_SECONDS\t\t\t\t= '%0.0f segundos'\nSTR_NVS_AREAS\t\t\t= 'áreas NVS'\nSTR_PORTS_LIST\t\t\t= 'Portas seriais'\nSTR_MAIN_MENU\t\t\t= 'Menu Principal'\nSTR_FILE_LIST\t\t\t= 'Lista de arquivos'\nSTR_SFLASH_INFO\t\t\t= 'Informação do despejo da sFlash'\nSTR_ADDITIONAL\t\t\t= 'Ferramenta Adicional'\nSTR_SYSCON_INFO\t\t\t= 'Informação de despejo do Syscon'\nSTR_COMPARE\t\t\t\t= 'Comparar'\nSTR_HELP\t\t\t\t= 'Ajuda'\nSTR_ACTIONS\t\t\t\t= 'Ações'\nSTR_COREOS_SWITCH\t\t= 'Troca de Slot do CoreOS'\nSTR_SWITCH_PATTERNS\t\t= 'Alternar padróes'\nSTR_MEMCLOCK\t\t\t= 'Freqüência de Memória'\nSTR_SAMU_BOOT\t\t\t= 'Inicialização SAMU'\nSTR_SYSFLAGS\t\t\t= 'Sinalizadores de Sistema'\nSTR_NVS_ENTRIES\t\t\t= '%s Entradas no Syscon'\nSTR_APATCH_SVNS\t\t\t= 'Correções automáticas de SNVS'\nSTR_MPATCH_SVNS\t\t\t= 'Correções manuais de SNVS'\nSTR_SFLASH_VALIDATOR\t= 'Validação de sFlash'\nSTR_SFLASH_FLAGS\t\t= 'Sinalizadores de sFlash'\nSTR_SFLASH_EXTRACT\t\t= 'Extrator de sFlash'\nSTR_SFLASH_BUILD\t\t= 'Construtor de sFlash'\nSTR_HDD_KEY\t\t\t\t= 'Chave eap do HDD'\nSTR_2BLS_BUILDER\t\t= 'Construtor do 2BLS'\nSTR_UNPACK_2BLS\t\t\t= 'Descompactador 2BLS'\nSTR_UNPACK_PUP\t\t\t= 'Descriptografar PUP descompactada'\nSTR_EMC_CFW\t\t\t\t= 'EMC CFW (Aeolia)'\nSTR_EAP_KEYS\t\t\t= 'Chaves EAP'\nSTR_SC_BOOT_MODES\t\t= 'Registros do Modo de Inicialização'\nSTR_INFO\t\t\t\t= 'Informação'\nSTR_SC_READER\t\t\t= 'Leitor de Syscon'\nSTR_SPIWAY\t\t\t\t= 'SPIway por Judges & Abkarino'\nSTR_SCF\t\t\t\t\t= 'Syscon Flasher por Abkarino & EgyCnq'\nSTR_LEG_PATCH\t\t\t= 'Correção Legítima de CoreOS'\nSTR_PART_RECOVERY\t\t= 'Restauração de Partição'\nSTR_PART_ANALYZE\t\t= 'Analisando Partição'\nSTR_PART_LIST\t\t\t= 'Lista de Partições'\nSTR_PARTS_INFO\t\t\t= 'Informação de Partição'\nSTR_WIFI_PATCHER\t\t= 'Correção de WiFi'\nSTR_SB_PATCHER\t\t\t= 'Correção de Southbridge'\nSTR_RL78FLASH\t\t\t= 'Gravador de RL78'\nSTR_SC_REBUILDER\t\t= 'Reconstrução de Syscon'\n\nSTR_ALL\t\t\t\t\t= 'Tudo'\nSTR_UNIQUE\t\t\t\t= 'Único'\nSTR_BACKUP\t\t\t\t= 'Backup'\nSTR_EQUAL\t\t\t\t= 'Igual'\nSTR_NOT_EQUAL\t\t\t= 'Diferente'\nSTR_NO_INFO\t\t\t\t= '- Sem informação -'\nSTR_OFF\t\t\t\t\t= 'Desligado'\nSTR_ON\t\t\t\t\t= 'Ligado'\nSTR_WARNING\t\t\t\t= 'Aviso'\nSTR_HELP\t\t\t\t= 'Ajuda'\nSTR_UNKNOWN\t\t\t\t= '- Desconhecido -'\nSTR_YES\t\t\t\t\t= 'Sim'\nSTR_NO\t\t\t\t\t= 'Não'\nSTR_PROBABLY\t\t\t= 'Provavelmente'\nSTR_NOT_SURE\t\t\t= 'não tenho certeza'\nSTR_DIFF\t\t\t\t= 'Diferente'\nSTR_NOT_FOUND\t\t\t= 'não encontrado'\nSTR_BAD_SIZE\t\t\t= 'tamanho incorreto'\nSTR_OK\t\t\t\t\t= 'OK'\nSTR_FAIL\t\t\t\t= 'Falhou'\nSTR_CANCEL\t\t\t\t= 'Cancelar'\nSTR_IS_PART_VALID\t\t= '[%s] %s FW %s'\nSTR_SNVS_ENTRIES\t\t= '%d registros encontrados em 0x%05X'\nSTR_SERIAL_MONITOR\t\t= 'Terminal'\nSTR_ELAPSEDTIME\t\t\t= 'Tempo decorrido'\n\nSTR_NO_PORT_CHOSEN\t\t= ' Nenhuma porta foi escolhida'\nSTR_NO_PORTS\t\t\t= ' Nenhuma porta serial foi encontrada'\nSTR_PORT_UNAVAILABLE\t= ' A porta selecionada não está disponível'\nSTR_PORT_CLOSED\t\t\t= ' A porta está fechada'\nSTR_STOP_MONITORING\t\t= ' Monitoramento parado pelo usuário'\n\nSTR_RESTART_APP\t\t\t= ' Reiniciar Aplicativo para aplicar as alterações'\nSTR_GENERATE_ALL_PS\t\t= ' Gerar todas as correções'\nSTR_ACTION_NA\t\t\t= ' Nenhuma ação está disponível para %s'\nSTR_EMC_CFW_WARN\t\t= ' Atualmente EMC CFW é apenas para 10xx/11xx PS4 Fat'\nSTR_EMC_NOT_FOUND\t\t= ' EMC FW não foi encontrada'\nSTR_DECRYPTING\t\t\t= ' Descriptografando'\nSTR_ENCRYPTING\t\t\t= ' Encriptografando'\nSTR_PATCHING\t\t\t= ' Corrigindo'\nSTR_EXPERIMENTAL\t\t= ' * - funções experimentais'\nSTR_PERFORMED\t\t\t= ' Ação performada: '\n\nSTR_EMPTY_FILE_LIST\t\t= ' A lista de arquivos está vazia'\nSTR_NO_FOLDER\t\t\t= ' Diretório %s não existe'\nSTR_EXTRACTING\t\t\t= ' Extraindo sflash0 para a pasta %s'\nSTR_FILES_CHECK\t\t\t= ' Checando arquivos'\nSTR_BUILDING\t\t\t= ' Construindo arquivo %s'\n\nSTR_DONE\t\t\t\t= ' Tudo pronto'\nSTR_PROGRESS\t\t\t= ' Progresso %02d%% '\nSTR_PROGRESS_KB\t\t\t= ' Progresso: %dKB / %dKB'\nSTR_WAIT\t\t\t\t= ' Por favor aguarde...'\nSTR_WAITING\t\t\t\t= ' Aguardando...'\nSTR_SET_TO\t\t\t\t= ' %s foi definido como [%s]'\nSTR_ABORT\t\t\t\t= ' Ação abortada'\nSTR_FILENAME\t\t\t= ' Nome do arquivo: '\n\nSTR_VALIDATE_NVS_CHECK\t= ' Checando áreas do NVS'\nSTR_ACT_SLOT\t\t\t= ' Slot ativo: %s [0x%02X]'\nSTR_NIY\t\t\t\t\t= ' Este recurso está disponível apenas na versão PRO'\nSTR_CLEAN_FLAGS\t\t\t= ' Limpar todos sinalizadores do sistema'\nSTR_UNK_FILE_TYPE\t\t= ' Tipo de arquivos desconhecido'\nSTR_UNK_CONTENT\t\t\t= ' Conteúdo desconhecido'\nSTR_UART\t\t\t\t= ' UART está definido para '\nSTR_DEBUG\t\t\t\t= ' Depuração do Syscon está definido para '\n\nSTR_DIFF_SLOT_VALUES\t= ' Os valores nos slots são diferentes!'\nSTR_SYSFLAGS_CLEAN\t\t= ' Os sinalizadores de sistema foram limpos. Dica: Ligue o UART'\nSTR_SAMU_UPD\t\t\t= ' O sinalizador de SAMU foi definido para '\nSTR_DOWNGRADE_UPD\t\t= ' O Slot foi definido para: '\nSTR_LAST_SC_ENTRIES\t\t= ' Exibindo últimas [%d/%d] entradas do bloco ativo [%d]'\nSTR_MEMCLOCK_SET\t\t= ' A frequência GDDR5 foi definida para %dMHz [0x%02X]'\n\nSTR_RECOMMEND\t\t\t= ' Método recomendado [%s]'\nSTR_PATCH_CANCELED\t\t= ' A correção foi cancelada'\nSTR_PATCH_SUCCESS\t\t= ' Successo, foram removidas %d entradas'\nSTR_PATCH_SAVED\t\t\t= ' Correção foi salvo como %s'\nSTR_RENAMED\t\t\t\t= ' Renomeado para %s'\n\nSTR_SC_BLOCK_SELECT\t\t= ' Selecione o bloco de dados [0-%d] | Ver Plano/Bloco [f] '\nSTR_MPATCH_INPUT\t\t= ' Quantos registros limpar (do final): '\nSTR_CHOICE\t\t\t\t= ' Escolha uma opção: '\nSTR_BACK\t\t\t\t= ' Pressione [ENTER] para voltar'\nSTR_MEMCLOCK_INPUT\t\t= ' Configurar frequência [400 - 2000] / [0 definir padrão (0xFF)] MHz '\nSTR_SAMU_INPUT\t\t\t= ' Configurar SAMU [0 - 255] / [padrão é 255 (0xFF)] '\nSTR_TOO_MUCH\t\t\t= ' %d é demais, o valor máximo é %d'\nSTR_SC_BLOCK_CLEANED\t= ' Bloco [%d] foi totalmente limpo'\nSTR_OWC_RESET_REQUIRED\t= ' Você precisa redefinir os contadores SNVS primeiro para executar esta ação'\nSTR_SC_NO_BM\t\t\t= ' Os registros dos modos de inicialização não foram encontrados!'\n\nSTR_UNPATCHABLE\t\t\t= ' Não posso corrigir!'\nSTR_SYSCON_BLOCK\t\t= ' Bloco [%d/%d] possui [%d/%d] entradas | O bloco ativo é [%d]\\n'\nSTR_PARTITIONS_CHECK\t= ' Checando partições'\nSTR_ENTROPY\t\t\t\t= ' Estatísticas de entropia'\nSTR_MAGICS_CHECK\t\t= ' Checando bytes mágicos'\nSTR_DUPLICATES\t\t\t= ' %d duplicidade(s) encontrada [%s]'\nSTR_SC_WARN_OVERWITTEN\t= ' Aviso: CoreOS foi provavelmente sobrescrito'\n\nSTR_SNVS_ENTRY_INFO\t\t= 'Bloco %d #%03d Offset 0x%04X'\nSTR_SC_TOGGLE_FLATDATA\t= 'Alternar entre Plano/Bloco'\nSTR_SH_DUPLICATES\t\t= 'Mostrar / Ocultar duplicidades'\nSTR_NO_ENTRIES\t\t\t= 'Nenhuma entrada encontrada'\nSTR_SKIPPED\t\t\t\t= 'Ignorado'\nSTR_SKIP_ENTRY\t\t\t= 'Ignorar este tipo de entrada'\nSTR_NO_FILE_SEL\t\t\t= 'Nenhum arquivo selecionado'\n\nSTR_INCORRECT_SIZE\t\t= ' %s têm tamanho de despejo incorreto!'\nSTR_FILE_NOT_EXISTS\t\t= ' Arquivo %s não existe!'\nSTR_FILE_EXISTS\t\t\t= ' Nome de arquivo já existente!'\nSTR_ERROR_FILE_REQ\t\t= ' Você precisa selecionar o arquivo primeiro'\nSTR_SAVED_TO\t\t\t= ' Savo como %s'\nSTR_ERROR_INPUT\t\t\t= ' Entrada incorreta'\nSTR_ERROR_DEF_VAL\t\t= ' Configurando valores padrões'\nSTR_ERROR_CHOICE\t\t= ' Escolha inválida'\nSTR_ERROR_INFO_READ\t\t= ' Erro durante a leitura de dados do aquivo'\nSTR_OUT_OF_RANGE\t\t= ' Valor está fora de alcance!'\nSTR_FILES_MATCH\t\t\t= ' Os arquivos são iguais'\nSTR_FILES_MISMATCH\t\t= ' Incompatibilidade de arquivos'\nSTR_SIZES_MISMATCH\t\t= ' Tamanhos incompatíveis!'\nSTR_RENAMED_COUNT\t\t= ' %d arquivos foram  renomeados'\nSTR_FW_RECORDS\t\t\t= ' Versões de FW - de Atual(1) à Inicial(%d)'\n\nSTR_SELECT_MODEL\t\t= ' Selecione o modelo:'\nSTR_SHOW_DETAILS\t\t= ' Mostrar detalhes?'\nSTR_Y_OR_CANCEL\t\t\t= ' [y - yes/sim, * - cancelar] '\nSTR_CHOOSE_AREA\t\t\t= ' Escolha a área: '\nSTR_INPUT_SEL_DUMP\t\t= ' Selecionar o segundo despejo?'\nSTR_INPUT_DESTROY_PREV\t= ' Destruir todos os registros (08-0B) anteriores do FW?'\nSTR_INPUT_BLOCK\t\t\t= ' Insira o bloco inicial [contagem]: '\nSTR_INPUT_SAVE_IM\t\t= ' Salvar todos os arquivos intermediários?'\nSTR_INPUT_USE_SLOTB\t\t= ' Usar slot B (ativo)?'\nSTR_USE_NEWBLOBS\t\t= ' Usar nova chave conteiner?'\nSTR_CONFIRM_SEPARATE\t= ' Salvar como arquivo separado?'\nSTR_CONFIRM\t\t\t\t= ' Insira [y] para continuar: '\nSTR_CURRENT\t\t\t\t= ' Atual: '\nSTR_GO_BACK\t\t\t\t= ' Voltar'\nSTR_SC_BM_SELECT\t\t= ' Selecione a variante do modo de inicialização [1-%d] '\nSTR_OPEN_IN_SC_TOOL\t\t= ' Abrir arquivo na Ferramenta de Syscon?'\nSTR_FLASH_FILE\t\t\t= ' Gravar este arquivo no C.I.?'\n\nSTR_READING_DUMP_N\t\t= ' Lendo despejo %d'\nSTR_CHIP_NOT_RESPOND\t= ' Chip não está respondendo, checar a instalação dos fios e pressione o botão de reset'\nSTR_HOW_MUCH_DUMPS\t\t= ' Fazer leitura de quantos despejos? [max 10] '\n\nSTR_EMC_CMD_MODE\t\t= 'Ativando o modo de cmd EMC: [%s]'\nSTR_SHOW_BYTECODES\t\t= 'Mostrar códigos em byte < 0x20: [%s]'\nSTR_MONITOR_STATUS\t\t= 'RX/TX: %d/%d (bytes) Decorridos: %d (seg.)'\n\nSTR_CHIP_CONFIG\t\t\t= ' Chip config'\nSTR_FILE_INFO\t\t\t= ' Informação do arquivo'\nSTR_VERIFY\t\t\t\t= ' Verificar'\n\nSTR_SPW_PROGRESS\t\t= 'Bloco %03d [%d KB / %d KB] %d%% %s '\nSTR_SPW_ERROR_CHIP\t\t= 'Chip não suportado!'\nSTR_SPW_ERROR_VERSION\t= 'Versão não suportada! (v%d.%02d obrigatória)'\nSTR_SPW_ERROR_ERASE\t\t= 'Erro apagando o chip!'\nSTR_SPW_ERROR_ERASE_BLK\t= 'Bloco %d - erro apagando o bloco'\nSTR_SPW_ERROR_DATA_SIZE\t= '%d Tamanho dos dados incorreto'\nSTR_SPW_ERROR_LENGTH\t= 'Tamanho incorreto %d != %d!'\nSTR_SPW_ERROR_BLK_CHK\t= 'Erro! Verificação do bloco falhou (bloco=%d)'\nSTR_SPW_ERROR_WRITE\t\t= 'Erro durante a escrita!'\nSTR_SPW_ERROR_READ\t\t= 'Teensy atingiu o tempo limite do buffer! Disconecte e reconecte o Teensy!'\nSTR_SPW_ERROR_VERIFY\t= 'Erro na verificação!'\nSTR_SPW_ERROR_PROTECTED\t= 'Dispositivo está protegido contra gravação!'\nSTR_SPW_ERROR_UNKNOWN\t= 'Erro desconhecido recebido!'\nSTR_SPW_ERROR_UNK_STATUS= 'Código de Status desconhecido!'\nSTR_SPW_ERR_BLOCK_ALIGN\t= 'Esperando que o tamanho do arquivo seja uma multiplicação do tamanho do bloco: %d'\nSTR_SPW_ERR_DATA_SIZE\t= 'Os dados têm %d bytes de comprimento (%d esperado)!'\nSTR_SPW_ERR_OVERFLOW\t= 'O chip tem %d blocos. Escrevendo fora da capacidade do chip!'\n\nSTR_SCF_ERROR_VERSION\t= 'Versão não suportada! (v%d.%02d obrigatória)'\nSTR_SCF_ERROR_WRITE_BLK\t= 'Erro escrevendo bloco %d'\nSTR_SCF_ERROR_ERASE_BLK\t= 'Erro apagando bloco %d'\nSTR_SCF_ERROR_READ_BLK\t= 'Erro lendo bloco %d'\nSTR_SCF_ERROR_ERASE_CHIP= 'Erro ao apagar o chip'\n\nSTR_SCF_ERR_INT\t\t\t= 'Erro durante a inicialização'\nSTR_SCF_ERR_READ\t\t= 'Erro de leitura'\nSTR_SCF_ERR_ERASE\t\t= 'Erro ao apagar'\nSTR_SCF_ERR_WRITE\t\t= 'Erro ao escrever'\nSTR_SCF_ERR_CMD_LEN\t\t= 'Tamanho incorreto do comando'\nSTR_SCF_ERR_CMD_EXEC\t= 'Erro durante a execução do comando'\nSTR_SCF_ERR_UNKNOWN\t\t= 'Erro desconhecido recebido!'\nSTR_SCF_ERR_UNK_STATUS\t= 'Código de Status desconhecido!'\nSTR_SCF_SAFE_ERASE\t\t= ' Formatação segura do chip, inicializando no bloco #%03d'\n\nSTR_CANT_USE\t\t\t= 'Não posso usar isto'\nSTR_DIFF_SN\t\t\t\t= 'Números de Série são diferentes!'\nSTR_SSP_EQUAL\t\t\t= 'A troca de slot padrão são iguais!'\nSTR_LP_FIRST_DUMP\t\t= 'Primeiro despejo'\nSTR_LP_SECOND_DUMP\t\t= 'Segundo despejo'\n\nSTR_CONVERTING_S28\t\t= ' Convertendo para o formato S28'\nSTR_S28_ALREADY\t\t\t= ' O formato do arquivo é S28'\n\nSTR_USE_EXPERT_M\t\t= ' Escolha outro modelo ou use o modo especialista!'\nSTR_ERR_NO_FW_FOUND\t\t= ' Erro: Não é possível encontrar %s para FW %s no Banco de Dados'\nSTR_EXPERT_MODE\t\t\t= ' Modo Especialista?'\nSTR_SELECT_FW_VER\t\t= ' Selecione a versão da fw'\nSTR_MODEL\t\t\t\t= ' Modelo'\nSTR_FW_VER\t\t\t\t= ' FW: %s / Slot: %s'\nSTR_SELECT_MOST_FILE\t= ' Selecione o arquivo mais relevante: '\nSTR_NO_FW_FILES\t\t\t= ' Os arquivos não foram encontrados! Baixar arquivos para a pasta fws:\\n [%s]'\n\nSTR_ABOUT_SC_REBUILDER = 'Sobre o Reconstrutor de Syscon'\nSTR_INFO_SC_REBUILDER = ''\\\n' Este utilitário irá ajudá-lo a criar uma versão customizada do Syscon.\\n'\\\n' Você pode ajustar cada tipo de registro no modo especialista.\\n'\\\n' As entradas são classificadas do atual para o passado.\\n'\\\n' * Para selecionar FW anterior você precisa inserir \"2\" ou mais.\\n'\\\n' * A configuração mínima consiste em 3 tipos (00-03 + 04-07 + 08-0B)'\n\nSTR_ABOUT_RL78FLASH = 'Sobre o Syscon de Fábrica'\nSTR_INFO_RL78FLASH = ''\\\n' Para escrever um novo chip syscon em branco (Renesas RL78G10)\\n'\\\n' você precisa de adaptador USB para TTL, fios e alguns diodos.\\n'\\\n' O diagrama de fiação pode ser encontrado na pasta assets/hw/l78flash'\\\n\nSTR_ABOUT_NVS = 'Sobre restauração de NVS'\nSTR_INFO_NVS = ''\\\n' Troca bloco corrompido por dados de backup (não adequado para 10xx/11xx)\\n'\\\n' Aviso - UART e outros sinalizadores podem ser substituídos.\\n'\\\n' Se você precisar definir alguns sinalizadores, faça-o após a recuperação do NVS!\\n'\\\n\nSTR_ABOUT_TORUS_PATCH = 'Sobre a correção de WiFi'\nSTR_INFO_TORUS_PATCH = ''\\\n' Será útil em caso de:\\n'\\\n' - FW Torus (WiFi + BT) corrompido\\n'\\\n' - mudar para outro módulo C.I.'\\\n\nSTR_ABOUT_SB_PATCH = 'Sobre a correção de Chipset(Southbridge)'\nSTR_INFO_SB_PATCH = ''\\\n' Será útil em caso de:\\n'\\\n' - FW do Southbridge corrompido ou Erro de \"VERSÃO DE EMC DESATIVADA\"\\n'\\\n' - Troca por outro módulo C.I. (CXD90046 => CXD90036)\\n'\\\n' - Substituição de Pacotes de APU (21xx => 22xx, 71xx => 72xx)'\n\nSTR_INFO_FLASH_TOOLS = ''\\\n' As ferramentas de gravação (spiway e syscon flasher) são experimentais! Tome cuidado.'\\\n\nSTR_ABOUT_PART_RECOVERY = 'Análise e recuperação de partição'\nSTR_INFO_PART_A_R = ''\\\n' Compara cada byte da partição (SFlash/Syscon) com arquivos válidos\\n'\\\n' e mostra porcentagem de similaridade.\\n'\\\n' A maioria dos arquivos iguais estará no topo da lista.\\n'\\\n' Tenha em mente que FW do Southbridge consiste em EMC + EAP'\n\nSTR_INFO_FW_LINK = ''\\\n' Coloque arquivos emc/eap/torus/syscon válidos na pasta /fws/\\n'\\\n' Você pode baixá-lo deste repositório:\\n '\n\nSTR_ABOUT_LEG_PATCH = 'Sobre correção Legítima do CoreOS'\nSTR_INFO_LEG_PATCH = ''\\\n' Este método é adequado apenas para consoles funcionais!\\n'\\\n' Porque isto requer atualização via menu seguro do PS4\\n'\\\n'\\n'\\\n' 1) Leia o primeiro despejo(dump) (se ainda não o fez)\\n'\\\n' 2) Atualize o console para a MESMA versão via modo de segurança\\n'\\\n' 3) Leia o segundo despejo(dump) (ambos os slots têm FW igual)\\n'\\\n'\\n'\\\n' Agora você pode corrigir o primeiro despejo(dump) com dados do segundo\\n'\\\n' Você pode arrastar e soltar 2 despejos(dumps) no atalho wee-tools para acelerar'\n\nSTR_ABOUT_SCF = 'Sobre o gravador de Syscon'\nSTR_INFO_SCF = ''\\\n' O gravador de Syscon permite que você grave o chip syscon original do PS4 (RL78/G13)\\n'\\\n' O gravador de Syscon suporta apenas modelos de syscon A0x-COLx\\n'\\\n' Atualmente a parte de hardware é baseada em placas Teensy (2.0++/4.0/4.1)\\n'\\\n' Veja </assets/hw/syscon_flasher> para diagramas e firmware do Teensy\\n'\\\n' Mais informações aqui: '\n\nSTR_ABOUT_SPIWAY = 'Sobre o gravador SPIway'\nSTR_INFO_SPIWAY = ''\\\n' O gravador SPIway suporta acesso de leitura e gravação em blocos aleatórios (Teensy++ 2.0)\\n'\\\n' Veja a pasta </assets/hw/spiway> para diagramas e firmware do Teensy\\n'\\\n' Mais informações em PSDevWiki: '\n\nSTR_ABOUT_SC_GLITCH = 'Sobre o Leitor de Syscon Glitch'\nSTR_INFO_SC_GLITCH = ''\\\n' Leitor Syscon da DarkNESmonk (Arduino Nano V3 CH340)\\n'\\\n' Veja a pasta </assets/hw/syscon_reader> para mais informações'\n\nSTR_ABOUT_SC_BOOTMODES = 'Sobre Modos de Inicialização'\nSTR_INFO_SC_BOOTMODES = ''\\\n' Os registros do modo de inicialização são criptografados, por isso não podemos detectar sua finalidade\\n'\\\n' Você deve experimentar cada um deles sozinho para determinar para que serve\\n'\\\n' Tenha em mente: alguns registros podem ter duplicidades (marcadas com cores)'\n\nSTR_OVERCLOCKING = ''\\\n' Operação perigosa!\\n\\n'\\\n' A maioria do GDDR5 funciona entre 6.000-8.000 MHz. GDDR5 tem bombeamento quádruplo [x4]\\n'\\\n' GDDR5 a 8.000 MHz funciona tecnicamente a 2.000 MHz\\n'\\\n' Se você tiver problemas, diminua a frequência para 1.000 MHz\\n'\\\n'\\n'\\\n' A frequência efetiva do GDDR5 é de 1.350 MHz\\n'\\\n' A frequência é selecionada experimentalmente\\n'\\\n' - Valor muito alto pode levar ao erro LOADBIOS -8 ou DCT [*]\\n'\\\n' - Valor muito baixo leva a erro AMDINIT'\n\nSTR_ABOUT_EAPKEYS = 'Sobre as chaves EAP'\nSTR_INFO_EAPKEYS = ''\\\n' A chave Eap pode ter comprimento de 0x40 e 0x60 bytes\\n'\\\n' Os modelos PS4 10xx/11xx geralmente possuem apenas uma chave\\n'\\\n' E os modelos 12xx/Slim/PRO possuem chave de backup\\n'\\\n\nSTR_IMMEDIATLY = ''\\\n' Tenha cuidado: todos os patches são aplicados imediatamente ao arquivo!'\n\nSTR_PATCHES = STR_IMMEDIATLY + '\\n'\\\n' Alternará o valor entre os valores disponíveis para a opção escolhida'\n\nSTR_DOWNGRADE = ''\\\n' Operação perigosa!\\n\\n'\\\n' A comutação de slot é usada para reversão de FW (downgrade).\\n'+\\\n' Ele também corrige o erro “loadbios”.\\n'\\\n' Certifique-se de ter backup completo do firmware de fábrica do SYSCON.\\n'\\\n' É necessário a correção do Syscon! Caso contrário, você receberá o erro \"loadbios\".\\n'\\\n' O console não inicializa normalmente.'\n\nSTR_ABOUT_MPATCH = 'Instruções de correção Manual'\nSTR_INFO_SC_MPATCH = ''\\\n' Cada registro tem 16 bytes de comprimento. O primeiro byte é sempre \"A5\"\\n'\\\n' O segundo byte é o \"tipo\" de registro, geralmente no intervalo [0x00-0x30]\\n'\\\n' A atualização de firmware leva 4 registros com tipos %s\\n'\\\n' Para cancelar a última atualização do firmware, precisamos limpar esses 4 registros (preencher com 0xFF)\\n'\\\n' Se houver %s,%s tipos após %s a correção será impossível\\n'\\\n' O slot de backup já foi substituído, você receberá um erro checkUpdVersion'\n\nSTR_ABOUT_EAP = 'Sobre as chaves EAP'\nSTR_INFO_HDD_EAP = ''\\\n' Essas chaves permitem que você explore arquivos no HDD do PS4 com PC\\n'\\\n' Você pode encontrar informações adicionais visitando:\\n '\\\n\nSTR_ABOUT_EMC_CFW = 'Sobre EMC CFW'\nSTR_INFO_EMC_CFW = ''\\\n' Use por sua conta e risco!\\n'\\\n' Apenas para Aeolia (PS4 Fat 10xx/11xx)\\n'\\\n' Concede controle sobre o chipset(southbridge) e o syscon\\n\\n'\\\n' Informação adicional:\\n '\n\nSTR_APP_HELP = ''\\\n' Modo de Usar: ps4-wee-tools [parametros] \\n'\\\n'\\n'\\\n' Parametros: \\n\\n'\\\n'  <arquivo>           : carregue a ferramenta apropriada para o arquivo fornecido\\n'\\\n'  <pasta>             : construir despejo(dump) com arquivos da pasta fornecida\\n'\\\n'  <arq1> <arq2> ...   : comparar arquivos (com informações MD5)\\n'\\\n'  --help              : mostrar esta tela de ajuda\\n'\\\n'\\n'\\\n' Homepage: '\n"
  },
  {
    "path": "lang/ru.py",
    "content": "#==========================================================\n# Russian language [RU]\n# part of ps4 wee tools project\n# https://github.com/andy-man/ps4-wee-tools\n#==========================================================\n\nMENU_SC_REBUILD_MODES = [\n\t'Стандартный режим (Выбор ПО, остальное по-умолчанию / Все (12) типов)',\n\t'Минимальный набор (Выбор 2 первых типов и ПО / 3 типа)',\n\t'Эксперт (Настройка всех (12) типов)',\n]\n\nMENU_NVS_COPY = [\n\t'Заменить %s на значение из бекапа (%s <= %s)',\n\t'Заменить бекап на текущее значение %s (%s => %s)',\n]\n\nMENU_EAP_KEYS = [\n\t'Заменить A на B (key_a <= key_b)',\n\t'Заменить B на A (key_a => key_b)',\n\t'Исправить magic A *',\n\t'Исправить magic B *',\n\t'Сгененрировать новые ключи A,B (длина 0x60) *',\n\t'Сгененрировать новые ключи A,B (длина 0x40) *',\n\t'Очистить ключ B *',\n]\n\nMENU_FLASHER = [\n\t'Считать все',\n\t'Считать область',\n\t'Считать блок',\n\t'Записать всё',\n\t'Записать область',\n\t'Записать блок',\n\t'Проверить всё',\n\t'Проверить область',\n\t'Проверить блок',\n\t'Стереть всё',\n\t'Стереть область',\n\t'Стереть блок',\n]\n\nMENU_SERIAL_MONITOR = {\n\t'Ctrl+Q':'закрыть мониторинг',\n\t'Ctrl+R':'перезапустить',\n\t'Ctrl+E':'режим команд EMC',\n\t'Ctrl+B':'отображать байткоды < 0x20',\n\t'Ctrl+L':'вести лог в файл',\n}\n\nMENU_TOOL_SELECTION = [\n\t'Выбрать Файл',\n\t'Терминал (UART)',\n\t'sFlash r/w (SPIway by Judges)',\n\t'Syscon r/w (SCTool by Abkarino & EgyCnq)',\n\t'Syscon r/o (SCRead by DarkNESmonk)',\n\t'Syscon w/o (для стоковых Renesas RL78)',\n\t'Сменить Язык интерфейса',\n\t'Выход',\n]\n\nMENU_FILE_SELECTION = {\n\t'a':'Все файлы / Фильтр [bin,pup]',\n\t'f':'Собрать дамп sflash0',\n\t'b':'Собрать 2BLS/PUP',\n\t'r':'Пакетно переименовать (вынести инфо в название файла)',\n\t'c':'Сравнить файлы в текущей папке',\n\t'm':'Выйти / Назад',\n}\n\nMENU_EXTRA_FLASHER = {\n\t's':'Выбрать файл',\n\t'f':'Запустить утилиту для работы с файлом',\n\t'm':'Выйти / Назад',\n}\n\nMENU_EXTRA = {\n\t's':'Выбрать другой файл',\n\t'f':'Прошить файл (целоком/частично) обратно в чип',\n\t'r':'Переименовать (вынести инфо в название файла)',\n\t'm':'Выйти / Назад',\n}\n\nMENU_SFLASH_ACTIONS = [\n\t'Флаги (UART, RNG, Memtest, и т.д.)',\n\t'Частота памяти (GDDR5)',\n\t'Флаг загрузки SAMU',\n\t'Переключение слота CoreOS (Откат версии ПО)',\n\t'Переключение CoreOS через рекавери (legit patch)',\n\t'Замена ПО южного моста',\n\t'Замена ПО беспроводного модуля',\n\t'Дополнительные инструменты',\n]\n\nMENU_ADDTIONAL = [\n\t'Разобрать дамп sFlash0 на разделы',\n\t'Собрать дамп sFlash0 из файлов',\n\t'Просмотр / Восстановление NVS блоков (1C9, 1CA)',\n\t'Просмотр / Восстановление ключа EAP',\n\t'Получить ключи HDD = расшифровка EAP ключа = создание [keys.bin]',\n\t'Создать EMC cfw (для Fat 1xxx/11xx)',\n\t'Базовая валидация дампа',\n\t'Анализ и восстановление разделов',\n]\n\nMENU_SC_ACTIONS = [\n\t'Вкл/выкл режима Debug',\n\t'Автоматический патч SNVS',\n\t'Просмотр блоков SNVS',\n\t'Просмотр блоков NVS',\n\t'Ручной патч SNVS',\n\t'Дополнительные инструменты',\n]\n\nMENU_SC_ADV_ACTIONS = [\n\t'Сброс счетчиков SNVS',\n\t'Выбор режима (00-03)',\n\t'Выбор режима загрузки (04-07)',\n\t'Syscon Rebuilder - пересборка SNVS (Factory Reset)',\n\t'Восстановление прошивки Syscon',\n\t'Конвертировать для Renesas flasher (Motorolla S28)',\n]\n\nMENU_PATCHES = [\n\t'Метод A - последние 08-0B будут удалены (4 шт)',\n\t'Метод B - последние 08-0B и все что ниже будут удалены (%d шт)',\n\t'Метод C - очистить все ниже предыдущих 08-0B (%d шт)',\n\t'Метод D - очистить все ниже последних 08-0B (%d шт)',\n\t'Метод E - очистить предыдущие 08-0B и все что ниже (%d шт)',\n]\n\nMENU_SC_STATUSES = [\n\t'Слот CoreOs перезаписан',\n\t'Можно патчить',\n\t'Уже пропатчен или застрял на обновлении',\n\t'Вероятно можно патчить',\n]\n\nMENU_SPW_ACTS = {\n\t'read':\t\t'Чтение',\n\t'write':\t'Запсиь',\n\t'verify':\t'Проверка',\n\t'erase':\t'Стирание',\n}\n\nSTR_LANGUAGE\t\t\t= 'Язык'\nSTR_SECONDS\t\t\t\t= '%0.0f секунд'\nSTR_NVS_AREAS\t\t\t= 'Области NVS'\nSTR_PORTS_LIST\t\t\t= 'Список портов'\nSTR_MAIN_MENU\t\t\t= 'Главное меню'\nSTR_FILE_LIST\t\t\t= 'Список файлов'\nSTR_SFLASH_INFO\t\t\t= 'Информация о дампе sFlash0'\nSTR_ADDITIONAL\t\t\t= 'Дополнительные инструменты'\nSTR_SYSCON_INFO\t\t\t= 'Информация о дампе Syscon'\nSTR_COMPARE\t\t\t\t= 'Сравнение'\nSTR_HELP\t\t\t\t= 'Справка'\nSTR_ACTIONS\t\t\t\t= 'Действия'\nSTR_COREOS_SWITCH\t\t= 'Переключатель CoreOS'\nSTR_SWITCH_PATTERNS\t\t= 'Шаблоны переключения'\nSTR_MEMCLOCK\t\t\t= 'Частота памяти'\nSTR_SAMU_BOOT\t\t\t= 'Загрузка SAMU'\nSTR_SYSFLAGS\t\t\t= 'Системные флаги'\nSTR_NVS_ENTRIES\t\t\t= 'Записи (%s) Syscon'\nSTR_APATCH_SVNS\t\t\t= 'Авто патчи SNVS'\nSTR_MPATCH_SVNS\t\t\t= 'Ручной патч SNVS'\nSTR_SFLASH_VALIDATOR\t= 'Валидация дампа sFlash0'\nSTR_SFLASH_FLAGS\t\t= 'Флаги sFlash0'\nSTR_SFLASH_EXTRACT\t\t= 'Распаковка sFlash0'\nSTR_SFLASH_BUILD\t\t= 'Сборка sFlash0'\nSTR_HDD_KEY\t\t\t\t= 'Ключ HDD eap'\nSTR_2BLS_BUILDER\t\t= 'Сборка 2BLS'\nSTR_UNPACK_2BLS\t\t\t= 'Распаковка 2BLS'\nSTR_UNPACK_PUP\t\t\t= 'Распаковка дешифрованных PUP(.dec)'\nSTR_EMC_CFW\t\t\t\t= 'EMC CFW (Aeolia)'\nSTR_EAP_KEYS\t\t\t= 'Ключи EAP'\nSTR_SC_BOOT_MODES\t\t= 'Загрузочные записи'\nSTR_INFO\t\t\t\t= 'Информация'\nSTR_SC_READER\t\t\t= 'Syscon reader'\nSTR_SPIWAY\t\t\t\t= 'SPIway by Judges & Abkarino'\nSTR_SCF\t\t\t\t\t= 'Syscon Flasher by Abkarino'\nSTR_LEG_PATCH\t\t\t= 'Переключение CoreOS через рекавери'\nSTR_PART_RECOVERY\t\t= 'Восстановление раздела'\nSTR_PART_ANALYZE\t\t= 'Анализ раздела'\nSTR_PART_LIST\t\t\t= 'Список разделов'\nSTR_PARTS_INFO\t\t\t= 'Информация о разделах'\nSTR_WIFI_PATCHER\t\t= 'Замена ПО WiFi'\nSTR_SB_PATCHER\t\t\t= 'Замена ПО южного моста'\nSTR_RL78FLASH\t\t\t= 'RL78 Flasher'\nSTR_SC_REBUILDER\t\t= 'Syscon Rebuilder'\n\nSTR_ALL\t\t\t\t\t= 'Все'\nSTR_UNIQUE\t\t\t\t= 'Уникальные'\nSTR_BACKUP\t\t\t\t= 'Бэкап'\nSTR_EQUAL\t\t\t\t= 'Одинаковые'\nSTR_NOT_EQUAL\t\t\t= 'Не идиентичны'\nSTR_NO_INFO\t\t\t\t= '- Нет информации -'\nSTR_OFF\t\t\t\t\t= 'Выкл'\nSTR_ON\t\t\t\t\t= 'Вкл'\nSTR_WARNING\t\t\t\t= 'Внимание'\nSTR_HELP\t\t\t\t= 'Помощь'\nSTR_UNKNOWN\t\t\t\t= '- Неизвестно -'\nSTR_YES\t\t\t\t\t= 'Да'\nSTR_NO\t\t\t\t\t= 'Нет'\nSTR_PROBABLY\t\t\t= 'Вероятно'\nSTR_NOT_SURE\t\t\t= 'не точно'\nSTR_DIFF\t\t\t\t= 'Различаются'\nSTR_NOT_FOUND\t\t\t= 'не найден'\nSTR_BAD_SIZE\t\t\t= 'не тот размер'\nSTR_OK\t\t\t\t\t= 'OK'\nSTR_FAIL\t\t\t\t= 'Сбой'\nSTR_CANCEL\t\t\t\t= 'Отмена'\nSTR_IS_PART_VALID\t\t= '[%s] %s FW %s'\nSTR_SNVS_ENTRIES\t\t= '%d записей найдено по адресу 0x%05X'\nSTR_SERIAL_MONITOR\t\t= 'Терминал'\nSTR_ELAPSEDTIME\t\t\t= 'Затрачено времени'\n\nSTR_NO_PORT_CHOSEN\t\t= ' Не выбран порт'\nSTR_NO_PORTS\t\t\t= ' Не найден ни один последовательный порт'\nSTR_PORT_UNAVAILABLE\t= ' Выбранный порт недоступен'\nSTR_PORT_CLOSED\t\t\t= ' Порт закрыт'\nSTR_STOP_MONITORING\t\t= ' Мониторинг был завершен пользователем'\n\nSTR_RESTART_APP\t\t\t= ' Перезапустите приложение, чтобы применить настройки'\nSTR_GENERATE_ALL_PS\t\t= ' Сгенерировать все патчи'\nSTR_ACTION_NA\t\t\t= ' Действие недоступно - %s'\nSTR_EMC_CFW_WARN\t\t= ' На данный момент EMC CFW доступно для 10xx/11xx PS4 Fat'\nSTR_EMC_NOT_FOUND\t\t= ' EMC FW не найдено'\nSTR_DECRYPTING\t\t\t= ' Расшифровка'\nSTR_ENCRYPTING\t\t\t= ' Шифрование'\nSTR_PATCHING\t\t\t= ' Исправление'\nSTR_EXPERIMENTAL\t\t= ' * - эксперементальные функции'\nSTR_PERFORMED\t\t\t= ' Выполнено действие: '\n\nSTR_EMPTY_FILE_LIST\t\t= ' Список файлов пуст'\nSTR_NO_FOLDER\t\t\t= ' Папка %s не существует'\nSTR_EXTRACTING\t\t\t= ' Распаковка sflash0 в папку %s'\nSTR_FILES_CHECK\t\t\t= ' Проверка файлов'\nSTR_BUILDING\t\t\t= ' Сборка файла %s'\n\nSTR_DONE\t\t\t\t= ' Готово'\nSTR_PROGRESS\t\t\t= ' В процессе %02d%% '\nSTR_PROGRESS_KB\t\t\t= ' Обработано: %dKB / %dKB'\nSTR_WAIT\t\t\t\t= ' Подождите...'\nSTR_WAITING\t\t\t\t= ' Ожидание...'\nSTR_SET_TO\t\t\t\t= ' Для %s установлено значение [%s]'\nSTR_ABORT\t\t\t\t= ' Действие отменено'\nSTR_FILENAME\t\t\t= ' Имя файла: '\n\nSTR_VALIDATE_NVS_CHECK\t= ' Проверка областей NVS'\nSTR_ACT_SLOT\t\t\t= ' Активный слот: %s [0x%02X]'\nSTR_NIY\t\t\t\t\t= ' Функция пока не разработана'\nSTR_CLEAN_FLAGS\t\t\t= ' Очистить все системные флаги'\nSTR_UNK_FILE_TYPE\t\t= ' Неизвестный тип файла'\nSTR_UNK_CONTENT\t\t\t= ' Неизвестное содержимое'\nSTR_UART\t\t\t\t= ' UART - '\nSTR_DEBUG\t\t\t\t= ' Режим отладки Syscon (debug) - '\n\nSTR_DIFF_SLOT_VALUES\t= ' Значения в слотах различаются!'\nSTR_SYSFLAGS_CLEAN\t\t= ' Системные флаги были очищены. Совет: включите UART'\nSTR_SAMU_UPD\t\t\t= ' Флаг SAMU - '\nSTR_DOWNGRADE_UPD\t\t= ' Переключатель слота: '\nSTR_LAST_SC_ENTRIES\t\t= ' Последние записи [%d/%d] активного блока [%d]'\nSTR_MEMCLOCK_SET\t\t= ' Частота GDDR5 установлена в значение %dMHz [0x%02X]'\n\nSTR_RECOMMEND\t\t\t= ' Рекомендуемый метод [%s]'\nSTR_PATCH_CANCELED\t\t= ' Патч был отменён'\nSTR_PATCH_SUCCESS\t\t= ' Записи удалены (%d шт.)'\nSTR_PATCH_SAVED\t\t\t= ' Патч сохранён в %s'\nSTR_RENAMED\t\t\t\t= ' Переименовано в %s'\n\nSTR_SC_BLOCK_SELECT\t\t= ' Выберите блок [0-%d] | Показать Flat/Block [f] '\nSTR_MPATCH_INPUT\t\t= ' Сколько записей очистить (с конца): '\nSTR_CHOICE\t\t\t\t= ' Ваш выбор: '\nSTR_BACK\t\t\t\t= ' Нажмите [ENTER] чтобы вернуться'\nSTR_MEMCLOCK_INPUT\t\t= ' Выберите частоту [400 - 2000] / [0 по-умолчанию (0xFF)] MHz '\nSTR_SAMU_INPUT\t\t\t= ' Настройте SAMU [0 - 255] / [по-умолчанию: 255 (0xFF)] '\nSTR_TOO_MUCH\t\t\t= ' %d это много, максимум %d'\nSTR_SC_BLOCK_CLEANED\t= ' Блок [%d] был полностью очищен'\nSTR_REBUILD_REQUIRED\t= ' Сначала нужно пересобрать SNVS чтобы продолжить'\nSTR_SC_NO_BM\t\t\t= ' Загрузочные режимы не были найдены!'\n\nSTR_UNPATCHABLE\t\t\t= ' Невозможно пропатчить!'\nSTR_SYSCON_BLOCK\t\t= ' Блок [%d/%d] имеет [%d/%d] запис(ей) | Активный - [%d]\\n'\nSTR_PARTITIONS_CHECK\t= ' Проверка разделов'\nSTR_ENTROPY\t\t\t\t= ' Статистика по энтропии'\nSTR_MAGICS_CHECK\t\t= ' Проверка сигнатур'\nSTR_DUPLICATES\t\t\t= ' %d дубликатов найдено [%s]'\nSTR_SC_WARN_OVERWITTEN\t= ' Внимание: CoreOS перезаписан - шанс на успех очень мал'\n\nSTR_SNVS_ENTRY_INFO\t\t= 'Блок %d #%03d смещение 0x%04X'\nSTR_SC_TOGGLE_FLATDATA\t= 'Переключить между Flat/Block'\nSTR_SH_DUPLICATES\t\t= 'Показать / Скрыть дубли'\nSTR_NO_ENTRIES\t\t\t= 'Записи не найдены'\nSTR_SKIPPED\t\t\t\t= 'Пропущено'\nSTR_SKIP_ENTRY\t\t\t= 'Пропустить этот тип записей'\nSTR_NO_FILE_SEL\t\t\t= 'Файл не выбран'\n\nSTR_INCORRECT_SIZE\t\t= ' %s неверный размер дампа!'\nSTR_FILE_NOT_EXISTS\t\t= ' Файл %s не существует!'\nSTR_FILE_EXISTS\t\t\t= ' Такой файл уже существует!'\nSTR_ERROR_FILE_REQ\t\t= ' Сначала нужно выбрать файл'\nSTR_SAVED_TO\t\t\t= ' Сохранено в %s'\nSTR_ERROR_INPUT\t\t\t= ' Некорректный ввод'\nSTR_ERROR_DEF_VAL\t\t= ' Сброс до значений по-умолчанию'\nSTR_ERROR_CHOICE\t\t= ' Неправильный выбор'\nSTR_ERROR_INFO_READ\t\t= ' Ошибка при чтении данных'\nSTR_OUT_OF_RANGE\t\t= ' Значение вне диапазона!'\nSTR_FILES_MATCH\t\t\t= ' Файлы одинаковые'\nSTR_FILES_MISMATCH\t\t= ' Файлы отличаются'\nSTR_SIZES_MISMATCH\t\t= ' Размеры отличаются!'\nSTR_RENAMED_COUNT\t\t= ' %d файлов было переименовано'\nSTR_FW_RECORDS\t\t\t= ' FW versions - from Current(1) to Initial(%d)'\n\nSTR_SELECT_MODEL\t\t= ' Выберите модель:'\nSTR_SHOW_DETAILS\t\t= ' Показать подробности?'\nSTR_Y_OR_CANCEL\t\t\t= ' [y - да, * - отмена] '\nSTR_CHOOSE_AREA\t\t\t= ' Выберите область: '\nSTR_INPUT_SEL_DUMP\t\t= ' Выбрать второй дамп?'\nSTR_INPUT_DESTROY_PREV\t= ' Стереть все предудыщие записи FW (08-0B)?'\nSTR_INPUT_BLOCK\t\t\t= ' Введите начальный Блок [Количество]: '\nSTR_INPUT_SAVE_IM\t\t= ' Сохранить все промежуточные файлы?'\nSTR_INPUT_USE_SLOTB\t\t= ' Использовать слот B (активен)?'\nSTR_USE_NEWBLOBS\t\t= ' Использовать новые ключи?'\nSTR_CONFIRM_SEPARATE\t= ' Сохранить отдельно?'\nSTR_CONFIRM\t\t\t\t= ' Введите [y] для подтверждения: '\nSTR_CURRENT\t\t\t\t= ' Текущий: '\nSTR_GO_BACK\t\t\t\t= ' Назад'\nSTR_SC_BM_SELECT\t\t= ' Выберите режим загрузки [1-%d] '\nSTR_OPEN_IN_SC_TOOL\t\t= ' Открыть файл в утилите для Syscon?'\nSTR_FLASH_FILE\t\t\t= ' Записать файл обратно в чип?'\n\nSTR_READING_DUMP_N\t\t= ' Считывание дампа %d'\nSTR_CHIP_NOT_RESPOND\t= ' Чип не отвечает, проверьте провода и нажмите сброс'\nSTR_HOW_MUCH_DUMPS\t\t= ' Сколько дампов считать? [максимум 10] '\n\nSTR_EMC_CMD_MODE\t\t= 'Режим команд EMC: [%s]'\nSTR_SHOW_BYTECODES\t\t= 'Показывать байткоды < 0x20: [%s]'\nSTR_MONITOR_STATUS\t\t= 'RX/TX: %d/%d (байт) Прошло: %d (секунд)'\n\nSTR_CHIP_CONFIG\t\t\t= ' Конфигурация чипа'\nSTR_FILE_INFO\t\t\t= ' Информация о файле'\nSTR_VERIFY\t\t\t\t= ' Верификация'\n\nSTR_SPW_PROGRESS\t\t= 'Блок %03d [%d KB / %d KB] %d%% %s '\nSTR_SPW_ERROR_CHIP\t\t= 'Неподдерживаемый чип!'\nSTR_SPW_ERROR_VERSION\t= 'Неподдерживаемая версия! (требуется v%d.%02d)'\nSTR_SPW_ERROR_ERASE\t\t= 'Ошибка при очистке чипа!'\nSTR_SPW_ERROR_ERASE_BLK\t= 'Блок %d - ошибка очистки'\nSTR_SPW_ERROR_DATA_SIZE\t= 'Неверный размер данных %d'\nSTR_SPW_ERROR_LENGTH\t= 'Неверная длина данных %d != %d!'\nSTR_SPW_ERROR_BLK_CHK\t= 'Ошибка при проверке блока (block=%d)'\nSTR_SPW_ERROR_WRITE\t\t= 'Ошибка при записи!'\nSTR_SPW_ERROR_READ\t\t= 'Teensy превышена задержка приема! Переподключите Teensy!'\nSTR_SPW_ERROR_VERIFY\t= 'Ошибка при проверке!'\nSTR_SPW_ERROR_PROTECTED\t= 'Устройство защищено от записи!'\nSTR_SPW_ERROR_UNKNOWN\t= 'Произошла неизвестная ошибка!'\nSTR_SPW_ERROR_UNK_STATUS= 'Неизвестный код статуса!'\nSTR_SPW_ERR_BLOCK_ALIGN\t= 'Размер файла должен быть кратен размеру блока: %d'\nSTR_SPW_ERR_DATA_SIZE\t= 'Длина данных %d байт (ожидалось %d)!'\nSTR_SPW_ERR_OVERFLOW\t= 'Чип содержит %d блоков. Невозможно записать более!'\n\nSTR_SCF_ERROR_VERSION\t= 'Неподдерживаемая версия! (требуется v%d.%02d)'\nSTR_SCF_ERROR_WRITE_BLK\t= 'Ошибка записи блока %d'\nSTR_SCF_ERROR_ERASE_BLK\t= 'Ошибка очистки блока %d'\nSTR_SCF_ERROR_READ_BLK\t= 'Ошибка чтения блока %d'\nSTR_SCF_ERROR_ERASE_CHIP= 'Ошибка при очистке чипа'\n\nSTR_SCF_ERR_INT\t\t\t= 'Ошибка инициализации'\nSTR_SCF_ERR_READ\t\t= 'Ошибка чтения'\nSTR_SCF_ERR_ERASE\t\t= 'ошибка стирания'\nSTR_SCF_ERR_WRITE\t\t= 'Ошибка записи'\nSTR_SCF_ERR_CMD_LEN\t\t= 'Неверная длина команды'\nSTR_SCF_ERR_CMD_EXEC\t= 'Ошибка исполнения команды'\nSTR_SCF_ERR_UNKNOWN\t\t= 'Произошла неизвестная ошибка!'\nSTR_SCF_ERR_UNK_STATUS\t= 'Неизвестный код статуса!'\nSTR_SCF_SAFE_ERASE\t\t= ' Безопасная очистка с блока #%03d'\n\nSTR_CANT_USE\t\t\t= 'Невозможно использовать'\nSTR_DIFF_SN\t\t\t\t= 'Серийные номера отличаются!'\nSTR_SSP_EQUAL\t\t\t= 'Шаблоны переключения одинаковые!'\nSTR_LP_FIRST_DUMP\t\t= 'Первый дамп'\nSTR_LP_SECOND_DUMP\t\t= 'Второй дамп'\n\nSTR_CONVERTING_S28\t\t= ' Конвертирование в формат S28'\nSTR_S28_ALREADY\t\t\t= ' Формат файла S28'\n\nSTR_USE_EXPERT_M\t\t= ' Выберите другую модель или используйте режим эксперта!'\nSTR_ERR_NO_FW_FOUND\t\t= ' Ошибка: Невозможно найти %s для FW %s в базе данных'\nSTR_EXPERT_MODE\t\t\t= ' Режим эксперта?'\nSTR_SELECT_FW_VER\t\t= ' Выберите версию FW'\nSTR_MODEL\t\t\t\t= ' Модель'\nSTR_FW_VER\t\t\t\t= ' FW: %s / Слот: %s'\nSTR_SELECT_MOST_FILE\t= ' Выберите самый подходящий файл: '\nSTR_NO_FW_FILES\t\t\t= ' Файлы не найдены! Загрузите файлы в папку fws:\\n [%s]'\n\nSTR_ABOUT_SC_REBUILDER = 'Об утилите Syscon Rebuilder'\nSTR_INFO_SC_REBUILDER = ''\\\n' Утилита для создания кастомной сборки Syscon.\\n'\\\n' В режиме эксперта можно настроить все типы записей.\\n'\\\n' Записи отсортированы от текущей до первоначальной.\\n'\\\n' * Чтобы выбрать предыдущее ПО введите \"2\" или больше.\\n'\\\n' * Минимальный набор состоит из 3 типов (00-03 + 04-07 + 08-0B)'\n\nSTR_ABOUT_RL78FLASH = 'О стоковом Syscon'\nSTR_INFO_RL78FLASH = ''\\\n' Позволяет прошить новый чистый чип (Renesas RL78G10)\\n'\\\n' Требуется адаптер USB2TTL, провода и пара диодов.\\n'\\\n' Схема подключения в папке assets/hw/l78flash'\\\n\nSTR_ABOUT_NVS = 'О восстановлении NVS'\nSTR_INFO_NVS = ''\\\n' Замена поврежденного блока на бекап (отсутствует в 10xx/11xx)\\n'\\\n' Внимание - UART и прочие флаги могут быть перезаписаны.\\n'\\\n' Если требется установить флаги, делать после восстановления NVS!\\n'\\\n\nSTR_ABOUT_TORUS_PATCH = 'О замене ПО WiFi'\nSTR_INFO_TORUS_PATCH = ''\\\n' Будет полезно в следующих случаях:\\n'\\\n' - поверждение ПО Torus-а (WiFi+BT)\\n'\\\n' - переход на другой чип'\\\n\nSTR_ABOUT_SB_PATCH = 'О замене ПО Южного Моста'\nSTR_INFO_SB_PATCH = ''\\\n' Будет полезно в следующих случаях:\\n'\\\n' - поврежденное ПО ЮМ или ошибки \"EMC VERSION DOWN\"\\n'\\\n' - переход на другой чип (CXD90046 => CXD90036)\\n'\\\n' - замена процессорной связки (21xx => 22xx, 71xx => 72xx)'\n\nSTR_INFO_FLASH_TOOLS = ''\\\n' Утилиты spiway & syscon flasher экспериментальные! Будьте осторожны.'\\\n\nSTR_ABOUT_PART_RECOVERY = 'Анализ и восстановление разделов'\nSTR_INFO_PART_A_R = ''\\\n' По-байтово сравнивает данныые раздела с рабочими файлами\\n'\\\n' и показывает процент схожести.\\n'\\\n' Самый похожий файл будет в верху списка.\\n'\\\n' Имейте ввиду прошивка ЮМ состоит из emc + eap'\n\nSTR_INFO_FW_LINK = ''\\\n' Рабочие файлы emc/eap/torus положите в папку /fws/\\n'\\\n' Скачать можно из данного репозитория:\\n '\n\nSTR_ABOUT_LEG_PATCH = 'Об официальном (legit) патче CoreOS'\nSTR_INFO_LEG_PATCH = ''\\\n' Подходит только для рабочих консолей!\\n'\\\n' Т.к. нужно обновиться через Безопасный режим PS4\\n'\\\n'\\n'\\\n' 1) Считываем первый дамп (если еще не сделали)\\n'\\\n' 2) Обновляем через безопасный режим на эту же версию ПО\\n'\\\n' 3) Считываем второй дамп (в обоих слотах одинаковое ПО)\\n'\\\n'\\n'\\\n' Теперь можно пропатчить первый дамп данными из второго\\n'\\\n' Можно просто перенести 2 дампа на ярлык WeeTools'\n\nSTR_ABOUT_SCF = 'О программаторе Syscon'\nSTR_INFO_SCF = ''\\\n' Позволяет считывать/записывать оригинальный чип сискон\\n'\\\n' Поддерживаются только модели A0x-COLx - (RL78/G13)\\n'\\\n' В роли программатора используются платы Teensy (2.0++/4.0/4.1)\\n'\\\n' Диаграмы подключения и прошивки в папке </assets/hw/syscon_flasher>\\n'\\\n' Подробнее: '\n\nSTR_ABOUT_SPIWAY = 'О программаторе SPIway'\nSTR_INFO_SPIWAY = ''\\\n' SPIway - ч/з sflash с доступом к рандомному блоку (Teensy++ 2.0)\\n'\\\n' Диаграмы подключения и прошивки в папке </assets/hw/spiway>\\n'\\\n' Подробнее на PSDevWiki: '\n\nSTR_ABOUT_SC_GLITCH = 'О глитче Syscon'\nSTR_INFO_SC_GLITCH = ''\\\n' Считывание через (Arduino Nano V3 CH340) автор - DarkNESmonk\\n'\\\n' Диаграмы подключения и прошивки в папке </assets/hw/syscon_reader>'\n\nSTR_ABOUT_SC_BOOTMODES = 'О режимах загрузки'\nSTR_INFO_SC_BOOTMODES = ''\\\n' Т.к. записи защифрованы невозможно определить что в них хранится\\n'\\\n' Вам придется попробывать все по-очереди, чтобы найти нужную\\n'\\\n' Некоторые записи могут иметь дубли (помечены цветом)'\n\nSTR_OVERCLOCKING = ''\\\n' Внимание - Опасная операция!\\n\\n'\\\n' Частота GDDR5 - 6000-8000 MHz. Множитель - [x4]\\n'\\\n' GDDR5 8000 MHz технически работает на 2000 MHz\\n'\\\n' Если есть проблемы устанавливайте 1000 MHz\\n'\\\n'\\n'\\\n' Эффективная частота GDDR5 - 1350 MHz\\n'\\\n' Частоту подбираем эксперементально\\n'\\\n' - Слишком высокая приведет к ошибкам LOADBIOS -8 или DCT [*]\\n'\\\n' - Слишком низкая приведет к ошибке AMDINIT'\n\nSTR_ABOUT_EAPKEYS = 'О ключах EAP'\nSTR_INFO_EAPKEYS = ''\\\n' Ключ EAP бывает длиной 0x40 и 0x60 байт\\n'\\\n' В моделях PS4 10xx/11xx нет бекапа NVS\\n'\\\n' В 12xx/Slim/PRO есть бекап, в том числе и ключа\\n'\\\n\nSTR_IMMEDIATLY = ''\\\n' Осторожно: Все изменения применяются сразу к файлу!'\n\nSTR_PATCHES = STR_IMMEDIATLY + '\\n'\\\n' Переключает значение выбранной опции среди доступных'\n\nSTR_DOWNGRADE = ''\\\n' Опасная операция!\\n\\n'\\\n' Переключение слота возвращает предыдущую версию ПО.\\n'+\\\n' Также откат помогает вылечить ошибки \"LOADBIOS\".\\n'\\\n' Обязательно сохраните первоначальные дампы sFlash и Syscon.\\n'\\\n' После переключения нужно патчить Syscon! Заранее убедитесь что сможете.\\n'\\\n' Без этого консоль не загрузится!'\n\nSTR_ABOUT_MPATCH = 'О ручном патчинге'\nSTR_INFO_SC_MPATCH = ''\\\n' Каждая запись состоит из 16 байт. Первый всегда \"A5\"\\n'\\\n' Второй байт отвечает за \"тип\" обычно в диапазоне [0x00-0x30]\\n'\\\n' Каждые 4 записи формируют 1 структуру, например для ПО это %s\\n'\\\n' Для удаления нужно затереть структуру (4 записи) символами 0xFF\\n'\\\n' Если есть структуры (%s,%s) после ПО (%s), то откат невозможен\\n'\\\n' слот с бекапом уже перезаписан, получите ошибку checkUpdVersion'\n\nSTR_ABOUT_EAP = 'О ключах EAP'\nSTR_INFO_HDD_EAP = ''\\\n' С помощью данных ключей можно открыть PS4 HDD на ПК\\n'\\\n' Дополнительная информация по ссылке:\\n '\\\n\nSTR_ABOUT_EMC_CFW = 'О кастомной прошивке EMC'\nSTR_INFO_EMC_CFW = ''\\\n' Используйте на свой страх и риск!\\n'\\\n' Подходит только для Aeolia (PS4 Fat 10xx/11xx)\\n'\\\n' Предоставлет неограниченный доступ к ЮМ и syscon\\n\\n'\\\n' Дополнительная информация:\\n '\n\nSTR_APP_HELP = ''\\\n' Пример: ps4-wee-tools [параметры] \\n'\\\n'\\n'\\\n' Параметры: \\n\\n'\\\n'  <file>              : откроет нужную утилиту для данного файла\\n'\\\n'  <folder>            : собрать дамп sFlash из файлов в этой папке\\n'\\\n'  <file1> <file2> ... : сравнение файлов (с хешами MD5)\\n'\\\n'  --help              : открыть эту справку\\n'\\\n'\\n'\\\n' Домашняя страница: '\n"
  },
  {
    "path": "ps4-wee-tools.py",
    "content": "#==============================================================\n# PS4 Wee Tools\n# app entry point\n#==============================================================\nimport os, sys\nimport tools.Tools as Tools\nimport tools.SFlashTools as SFlashTools\nfrom lang._i18n_ import UI\n\n\n\ndef main(args):\n\t\n\tUI.setTitle()\n    \n\targs.pop(0)\n\n\tif len(args) == 2:\n\t\tif args[0].replace('-', '', 2) == 'parts':\n\t\t\treturn SFlashTools.screenPartitionsInfo(args[1])\n\t\t# Quick Legitimate patch (check)\n\t\tif os.path.isfile(args[0]) and os.path.isfile(args[1]):\n\t\t\tif not Tools.quickLegitimatePatch(args):\n\t\t\t\tTools.screenCompareFiles(args)\n\telif len(args) >= 2:\n\t\tTools.screenCompareFiles(args)\n\telif len(args) == 1:\n\t\tif args[0].replace('-', '', 2) in ['help','h','?']:\n\t\t\tTools.screenHelp()\n\t\telif not Tools.launchTool(args[0]):\n\t\t\tTools.screenFileSelect(args[0])\n\telse:\n\t\tTools.screenMainMenu()\n\n\n\nmain(sys.argv)"
  },
  {
    "path": "run.bat",
    "content": "@echo off \npy \"%~dp0\\ps4-wee-tools.py\" %*\npause"
  },
  {
    "path": "tools/AdvSFlashTools.py",
    "content": "#==============================================================\n# PS4 Nor Tools\n# part of ps4 wee tools project\n#==============================================================\nimport os\nfrom lang._i18n_ import *\nimport utils.utils as Utils\nimport utils.sflash as SFlash\nimport utils.slb2 as Slb2\nimport utils.encdec as Encdec\nimport tools.Tools as Tools\n\n\n\ndef screenPartitionRecovery(file, partition = ''):\n\tUI.clearScreen()\n\tprint(TITLE + UI.getTab(STR_ABOUT_PART_RECOVERY))\n\tprint(UI.warning(STR_INFO_PART_A_R))\n\tprint()\n\tprint(UI.warning(STR_INFO_FW_LINK))\n\t\n\tpart_list = ['s0_emc_ipl_a', 's0_emc_ipl_b', 's0_eap_kbl', 's0_wifi']\n\t\n\tif partition in part_list:\n\t\t\n\t\twith open(file, 'rb') as f:\n\t\t\tfw = SFlash.getNorFW(f)\n\t\t\tslot = 'A' if SFlash.getNorData(f, 'ACT_SLOT')[0] == 0x00 else 'B'\n\t\t\tdata = SFlash.getNorPartition(f, partition)\n\t\t\n\t\tprint(UI.getTab(STR_PART_ANALYZE))\n\t\tprint(' '+UI.highlight(partition)+'\\n')\n\t\tprint(UI.green(STR_FW_VER%(fw['c'], slot))+'\\n')\n\t\t\n\t\tfw_folder = os.path.join(Utils.ROOT_PATH, 'fws')\n\t\tsub_folder = ''\n\t\t\n\t\tif partition.count('emc_ipl'):\n\t\t\tsub_folder = 'emc'\n\t\telif partition.count('eap_kbl'):\n\t\t\tsub_folder = 'eap'\n\t\telif partition.count('wifi'):\n\t\t\tsub_folder = 'torus'\n\t\t\n\t\tif sub_folder:\n\t\t\tfile_list = Utils.getFilesList(os.path.join(fw_folder, sub_folder),'2bls')\n\t\t\n\t\texpert_mode = False\n\t\tif len(file_list):\n\t\t\t\n\t\t\titems = Utils.compareDataWithFiles(data, file_list, 1, True)\n\t\t\titems_count = len(items) if len(items) < 10 else 10\n\t\t\t\n\t\t\tUI.clearInput()\n\t\t\texpert_mode = input('\\n'+UI.highlight(STR_EXPERT_MODE+STR_Y_OR_CANCEL)).lower()\n\t\t\t\n\t\t\tif expert_mode == 'y':\n\t\t\t\tUI.clearInput()\n\t\t\t\tprint(UI.warning(STR_SELECT_MOST_FILE)+'\\n')\n\t\t\t\t\n\t\t\t\tfor k in range(items_count):\n\t\t\t\t\tpath = items[k]['path']\n\t\t\t\t\trel_path = (os.path.sep).join(path.split(os.path.sep)[-3:])\n\t\t\t\t\tpercent = int(items[k]['eq'] * 100) / 100\n\t\t\t\t\tprint(' %d: %s | %.2f%%'%(k, rel_path, percent))\n\t\telse:\n\t\t\tprint(UI.warning(STR_NO_FW_FILES%fw_folder))\n\t\t\tinput(STR_BACK)\n\t\t\treturn screenPartitionRecovery(file)\n\t\t\n\t\tif expert_mode != 'y':\n\t\t\tn = 0\n\t\telse:\n\t\t\ttry: n = int(input(STR_CHOICE))\n\t\t\texcept: n = -1\n\t\t\n\t\tif n >= 0 and n < items_count:\n\t\t\t\n\t\t\tout_file = Utils.getFilePathWoExt(file, True)+'_patch_'+partition+'.bin'\n\t\t\tdata = Utils.getFileContents(file)\n\t\t\tpdata = Utils.getFileContents(items[n]['path'])\n\t\t\t\n\t\t\tUtils.savePatchData(out_file, data, [{'o':SFlash.SFLASH_PARTITIONS[partition]['o'], 'd':pdata}])\n\t\t\t\n\t\t\tUI.setStatus(STR_SAVED_TO%out_file)\n\t\telse:\n\t\t\tUI.setStatus(STR_ERROR_INPUT)\n\t\t\n\t\treturn screenPartitionRecovery(file)\n\t\n\tprint(UI.getTab(STR_PART_LIST))\n\t\n\tUI.showMenu(part_list,1)\n\tprint(UI.DIVIDER)\n\tprint(' 0:'+STR_GO_BACK)\n\tUI.showStatus()\n\t\n\ttry: n = int(input(STR_CHOICE))\n\texcept: n = -1\n\t\n\tif n == 0:\n\t\treturn\n\tif n > 0 and n <= len(part_list):\n\t\treturn screenPartitionRecovery(file, part_list[n-1])\n\telse:\n\t\tUI.setStatus(STR_ERROR_INPUT)\n\t\n\tscreenPartitionRecovery(file, partition)\n\n\n\ndef screenValidate(file):\n\tUI.clearScreen()\n\tprint(TITLE + UI.getTab(STR_SFLASH_VALIDATOR))\n\t\n\twith open(file,'rb') as f:\n\t\t\n\t\tdata = f.read()\n\t\t\n\t\tmodel = SFlash.getModel(f)\n\t\tsku = SFlash.getNorData(f, 'SKU', True)\n\t\tfw = SFlash.getNorFW(f)['c']\n\t\tslot = SFlash.getActiveSlot(f)\n\t\t\n\t\tprint(' %s / FW: %s [%s]\\n'%(sku, fw, slot.upper()))\n\t\t\n\t\t# Magics\n\t\tmagics = {}\n\t\tfor k in SFlash.MAGICS:\n\t\t\tmagics[k] = STR_OK if SFlash.checkMagic(data, k) else STR_DIFF\n\t\t\n\t\tprint(UI.highlight(STR_MAGICS_CHECK)+'\\n')\n\t\tUI.showTable(magics,10)\n\t\tprint()\n\t\t\n\t\t# Partitions\n\t\tparts_info = {}\n\t\tfor key in ['s0_emc_ipl_a', 's0_emc_ipl_b', 's0_eap_kbl', 's0_wifi']:\n\t\t\tmd5 = SFlash.getNorPartitionMD5(f, key)\n\t\t\tdata = SFlash.getDataByPartition(key)\n\t\t\tif md5 in data:\n\t\t\t\tif fw in data[md5]['fw']:\n\t\t\t\t\tparts_info[key] = STR_IS_PART_VALID%(md5, STR_OK, STR_OK)\n\t\t\t\telse:\n\t\t\t\t\tparts_info[key] = STR_IS_PART_VALID%(md5, STR_OK, data[md5]['fw'][0] if len(data[md5]['fw']) == 1 else (data[md5]['fw'][0]+' <-> '+data[md5]['fw'][-1]))\n\t\t\telse:\n\t\t\t\tparts_info[key] = STR_IS_PART_VALID%(md5, STR_FAIL, STR_FAIL)\n\t\t\n\t\tprint(UI.highlight(STR_PARTITIONS_CHECK)+'\\n')\n\t\tUI.showTable(parts_info,14)\n\t\tprint()\n\t\t\n\t\t# EAP key\n\t\t\n\t\tmagic = SFlash.getNorData(f, 'EAP_MGC')\n\t\teap_key = SFlash.getNorData(f, 'EAP_KEY')\n\t\t\n\t\tprint(UI.highlight(' '+STR_EAP_KEYS+'\\n'))\n\t\tprint(' Magic [%s] %s\\n'%(Utils.hex(magic,''), STR_OK if magic == SFlash.SFLASH_AREAS['EAP_MGC']['n'] else STR_DIFF ))\n\t\tfor i in range(0,len(eap_key),0x20):\n\t\t\tprint(' '+Utils.hex(eap_key[i:i+0x20],''))\n\t\t\n\t\tif model not in [11, 10]:\n\t\t\tmagic = SFlash.getNorDataB(f, 'EAP_MGC')\n\t\t\teap_key_b = SFlash.getNorDataB(f, 'EAP_KEY')\n\t\t\tprint()\n\t\t\tprint(UI.highlight(' '+STR_EAP_KEYS+' ('+STR_BACKUP+')\\n'))\n\t\t\tprint(' Magic [%s] %s\\n'%(Utils.hex(magic,''), STR_OK if magic == SFlash.SFLASH_AREAS['EAP_MGC']['n'] else STR_DIFF ))\n\t\t\tfor i in range(0,len(eap_key_b),0x20):\n\t\t\t\tprint(' '+Utils.hex(eap_key_b[i:i+0x20],''))\n\t\t\t\n\t\t\tprint(UI.highlight('\\n '+STR_EAP_KEYS+' ') + UI.green(STR_EQUAL) if eap_key == eap_key_b else STR_DIFF)\n\t\t\n\t\tprint()\n\t\t\n\t\t# NVS\n\t\tprint(UI.highlight(STR_VALIDATE_NVS_CHECK)+'\\n')\n\t\t\n\t\tfor k in ['NVS1', 'NVS2']:\n\t\t\t\n\t\t\tnvs = SFlash.getNorData(f, k)\n\t\t\tkey = SFlash.getOffsetRange(k)\n\t\t\t\n\t\t\tprint(' %s : %s [%s..%s]'%( key, SFlash.checkNVS(nvs, k), Utils.hex(nvs[0:10],''), Utils.hex(nvs[-10:],'') ) )\n\t\t\t\n\t\t\tif model not in [11, 10]:\n\t\t\t\tnvs_b = SFlash.getNorDataB(f, k)\n\t\t\t\tkey_b = SFlash.getOffsetRange(k, True)\n\t\t\t\t\n\t\t\t\tprint(' %s - %s'%(UI.dark(STR_BACKUP), UI.green(STR_EQUAL) if nvs == nvs_b else STR_DIFF))\n\t\t\t\tprint(' %s : %s [%s..%s]'%( key_b, SFlash.checkNVS(nvs_b, k), Utils.hex(nvs_b[0:10],''), Utils.hex(nvs_b[-10:],'') ) )\n\t\t\t\n\t\t\tprint()\n\t\n\tprint(UI.highlight(STR_ENTROPY)+'\\n')\n\t#stats = {'ent':0,'ff':0,'00':0}\n\tstats = Utils.entropy(file)\n\tprint('\\r',end='')\n\t\n\tinfo = {\n\t\t\n\t\t'Entropy'\t: '%.5f'%(stats['ent']),\n\t\t'0xFF'\t\t: '%.2f%%'%(stats['ff']*100),\n\t\t'0x00'\t\t: '%.2f%%'%(stats['00']*100),\n\t\t'Other'\t\t: '%.2f%%'%((1 - stats['ff'] - stats['00'])*100),\n\t}\n\t\n\tUI.showTable(info,10)\n\t\n\tinput(STR_BACK)\n\n\n\ndef screenNvsRecovery(file):\n\tUI.clearScreen()\n\tprint(TITLE+UI.getTab(STR_ABOUT_NVS))\n\t\n\tprint(UI.warning(STR_INFO_NVS + '\\n' + STR_IMMEDIATLY))\n\t\n\tprint(UI.getTab(STR_NVS_AREAS))\n\tprint(UI.highlight(STR_FILENAME)+os.path.basename(file)+'\\n')\n\t\n\tNVS_MENU = []\n\t\n\twith open(file,'r+b') as f:\n\t\t\n\t\tmodel = SFlash.getModel(f)\n\t\tsku = SFlash.getNorData(f, 'SKU', True)\n\t\tfw = SFlash.getNorFW(f)['c']\n\t\tslot = SFlash.getActiveSlot(f)\n\t\t\n\t\tprint(' %s / FW: %s [%s]\\n'%(sku, fw, slot.upper()))\n\t\t\n\t\tfor k in ['NVS1', 'NVS2']:\n\t\t\t\n\t\t\tprint(' '+UI.highlight(k)+'\\n')\n\t\t\t\n\t\t\tnvs = SFlash.getNorData(f, k)\n\t\t\tkey = SFlash.getOffsetRange(k)\n\t\t\t\n\t\t\tprint(' %s : %s [%s..%s]'%( key, SFlash.checkNVS(nvs, k), Utils.hex(nvs[0:10],''), Utils.hex(nvs[-10:],'') ) )\n\t\t\t\n\t\t\tif model not in [11, 10]:\n\t\t\t\tnvs_b = SFlash.getNorDataB(f, k)\n\t\t\t\tkey_b = SFlash.getOffsetRange(k, True)\n\t\t\t\t\n\t\t\t\tNVS_MENU.append(MENU_NVS_COPY[0]%(k, key,key_b))\n\t\t\t\tNVS_MENU.append(MENU_NVS_COPY[1]%(k, key,key_b))\n\t\t\t\t\n\t\t\t\tprint(' %s - %s'%(UI.dark(STR_BACKUP), UI.green(STR_EQUAL) if nvs == nvs_b else STR_DIFF))\n\t\t\t\tprint(' %s : %s [%s..%s]'%( key_b, SFlash.checkNVS(nvs_b, k), Utils.hex(nvs_b[0:10],''), Utils.hex(nvs_b[-10:],'') ) )\n\t\t\t\n\t\t\tprint()\n\t\t\n\t\tUI.showStatus()\n\t\t\n\t\tprint(UI.DIVIDER)\n\t\tif model in [11, 10]:\n\t\t\tprint(UI.warning(STR_ACTION_NA%('(10xx/11xx)')))\n\t\telse:\n\t\t\tUI.showMenu(NVS_MENU,1)\n\t\t\n\t\tprint(UI.DIVIDER)\n\t\tUI.showMenu([STR_GO_BACK])\n\t\t\n\t\tchoice = input(STR_CHOICE)\n\t\t\n\t\ttry:\n\t\t\tc = int(choice)\n\t\t\tc = c if model not in [11, 10] or c == 0 else -1\n\t\texcept:\n\t\t\tc = -1\n\t\t\n\t\tif c == 0:\n\t\t\treturn\n\t\telif c == 1:\n\t\t\tdata = SFlash.getNorDataB(f, 'NVS1')\n\t\t\tSFlash.setNorData(f, 'NVS1', data)\n\t\telif c == 2:\n\t\t\tdata = SFlash.getNorData(f, 'NVS1')\n\t\t\tSFlash.setNorDataB(f, 'NVS1', data)\n\t\telif c == 3:\n\t\t\tdata = SFlash.getNorDataB(f, 'NVS2')\n\t\t\tSFlash.setNorData(f, 'NVS2', data)\n\t\telif c == 4:\n\t\t\tdata = SFlash.getNorData(f, 'NVS2')\n\t\t\tSFlash.setNorDataB(f, 'NVS2', data)\n\t\t\n\t\tif c >= 1 and c <= len(NVS_MENU):\n\t\t\tUI.setStatus(STR_PERFORMED+NVS_MENU[c-1])\n\t\n\tscreenNvsRecovery(file)\n\n\n\ndef screenEapKeyRecovery(file):\n\tUI.clearScreen()\n\tprint(TITLE+UI.getTab(STR_ABOUT_EAPKEYS))\n\t\n\tprint(UI.warning(STR_INFO_EAPKEYS + '\\n' + STR_IMMEDIATLY))\n\t\n\tprint(UI.getTab(STR_EAP_KEYS))\n\tprint(STR_FILENAME+file+'\\n')\n\t\n\twith open(file,'r+b') as f:\n\t\t\n\t\tmagic_a = SFlash.getNorData(f, 'EAP_MGC')\n\t\tkey_a = SFlash.getNorData(f, 'EAP_KEY')\n\t\t\n\t\tmagic_b = SFlash.getNorDataB(f, 'EAP_MGC')\n\t\tkey_b = SFlash.getNorDataB(f, 'EAP_KEY')\n\t\t\n\t\tprint(UI.highlight(' Key A\\n'))\n\t\tprint(' Magic [%s] %s\\n'%(Utils.hex(magic_a,''), STR_OK if magic_a == SFlash.SFLASH_AREAS['EAP_MGC']['n'] else STR_DIFF ))\n\t\t\n\t\tfor i in range(0,len(key_a),0x20):\n\t\t\tprint(' '+Utils.hex(key_a[i:i+0x20],''))\n\t\t\n\t\tprint()\n\t\t\n\t\tprint(UI.highlight(' Key B\\n'))\n\t\tprint(' Magic [%s] %s\\n'%(Utils.hex(magic_b,''), STR_OK if magic_b == SFlash.SFLASH_AREAS['EAP_MGC']['n'] else STR_DIFF ))\n\t\t\n\t\tfor i in range(0,len(key_b),0x20):\n\t\t\tprint(' '+Utils.hex(key_b[i:i+0x20],''))\n\t\t\n\t\tUI.showStatus()\n\t\t\n\t\tprint(UI.DIVIDER)\n\t\tUI.showMenu(MENU_EAP_KEYS,1)\n\t\tprint('\\n'+UI.dark(STR_EXPERIMENTAL))\n\t\tprint(UI.DIVIDER)\n\t\tUI.showMenu([STR_GO_BACK])\n\t\t\n\t\tchoice = input(STR_CHOICE)\n\t\t\n\t\ttry:\n\t\t\tc = int(choice)\n\t\texcept:\n\t\t\tc = -1\n\t\t\n\t\tif c == 0:\n\t\t\treturn\n\t\telif c == 1:\n\t\t\tSFlash.setNorData(f, 'EAP_KEY', key_b)\n\t\telif c == 2:\n\t\t\tSFlash.setNorDataB(f, 'EAP_KEY', key_a)\n\t\telif c == 3:\n\t\t\tSFlash.setNorData(f, 'EAP_MGC', SFlash.SFLASH_AREAS['EAP_MGC']['n'])\n\t\telif c == 4:\n\t\t\tSFlash.setNorDataB(f, 'EAP_MGC', SFlash.SFLASH_AREAS['EAP_MGC']['n'])\n\t\telif c == 5:\n\t\t\tkey = Utils.genRandBytes(0x40)\n\t\t\tSFlash.setNorData(f, 'EAP_KEY', key + b'\\xFF'*0x20)\n\t\t\tSFlash.setNorDataB(f, 'EAP_KEY', key + b'\\xFF'*0x20)\n\t\telif c == 6:\n\t\t\tkey = Utils.genRandBytes(0x60)\n\t\t\tSFlash.setNorData(f, 'EAP_KEY', key)\n\t\t\tSFlash.setNorDataB(f, 'EAP_KEY', key)\n\t\telif c == 7:\n\t\t\tSFlash.setNorDataB(f, 'EAP_MGC', b'\\xFF'*SFlash.SFLASH_AREAS['EAP_MGC']['l'])\n\t\t\tSFlash.setNorDataB(f, 'EAP_KEY', b'\\xFF'*SFlash.SFLASH_AREAS['EAP_KEY']['l'])\n\t\t\n\t\tif c >= 1 and c <= len(MENU_EAP_KEYS):\n\t\t\tUI.setStatus(STR_PERFORMED+MENU_EAP_KEYS[c-1])\n\t\n\tscreenEapKeyRecovery(file)\n\n\n\ndef screenEmcCFW(file):\n\tUI.clearScreen()\n\tprint(TITLE+UI.getTab(STR_ABOUT_EMC_CFW))\n\tprint(UI.warning(STR_INFO_EMC_CFW))\n\t\n\tprint(UI.getTab(STR_EMC_CFW))\n\t\n\twith open(file, 'rb') as f:\n\t\tdata = f.read()\n\t\tsku = SFlash.getNorData(f, 'SKU', True)\n\t\tmodel = SFlash.getModel(f)\n\t\tslot = SFlash.getActiveSlot(f).upper()\n\t\t\n\t\tprint(' SKU: %s / Slot: %s'%(sku, slot))\n\t\t\n\t\tif not model in [11, 10]:\n\t\t\tprint(STR_EMC_CFW_WARN)\n\t\t\tinput(STR_BACK)\n\t\t\treturn\n\t\t\n\t\tb = False\n\t\tif slot == 'B':\n\t\t\tb = input(STR_INPUT_USE_SLOTB+STR_Y_OR_CANCEL).lower()\n\t\t\tUI.clearInput()\n\t\t\n\t\temc_part_name = 's0_emc_ipl_' + ('b' if b == 'y' else 'a')\n\t\temc_part = SFlash.getNorPartition(f, emc_part_name)\n\t\n\tfolder = os.path.dirname(file)\n\tfilename = os.path.splitext(os.path.basename(file))[0]\n\t\n\t\n\temc_fw = b''\n\tfw_offset = 0\n\tfw_size = 0\n\t\n\tentries = Slb2.getGet2BLSInfo(emc_part)['entries']\n\t\n\tfor key in entries:\n\t\tentry = entries[key]\n\t\tif entry['name'] == 'C0000001':\n\t\t\tfw_offset = entry['offset']\n\t\t\tfw_size = entry['size']\n\t\t\temc_fw = emc_part[fw_offset:fw_offset+fw_size]\n\t\t\tbreak\n\t\n\tif len(emc_fw) == 0:\n\t\tprint(STR_EMC_NOT_FOUND)\n\t\tinput(STR_BACK)\n\t\treturn\n\t\n\tsave_all = True if input(STR_INPUT_SAVE_IM+STR_Y_OR_CANCEL).lower() == 'y' else False\n\tUI.clearInput()\n\t\n\t# Decrypting current emc fw\n\tprint('\\n'+UI.highlight(STR_DECRYPTING)+'\\n')\n\t\n\tdecrypted_fw = Encdec.decrypt(emc_fw)\n\t\n\tif save_all:\n\t\tout_file = os.path.join(folder,'emc_fw_orig.bin')\n\t\tUtils.savePatchData(out_file, decrypted_fw)\n\t\tprint('\\n'+UI.green(STR_SAVED_TO%out_file))\n\t\n\t# Patching (2 patches)\n\tprint('\\n'+UI.highlight(STR_PATCHING)+' [God Mode]\\n')\n\t\n\tp1 = [b\"\\x03\\x00\\xFD\\x00\", b\"\\x0F\\x00\\xFD\\x00\"]\n\tpatched_fw = decrypted_fw.replace(p1[0], p1[1])\n\tprint(' %s => %s'%(Utils.hex(p1[0],''),Utils.hex(p1[1],'')))\n\t\n\tp2 = [b\"\\x07\\x00\\xFD\\x00\", b\"\\x0F\\x00\\xFD\\x00\"]\n\tpatched_fw = patched_fw.replace(p2[0], p2[1])\n\tprint(' %s => %s'%(Utils.hex(p2[0],''),Utils.hex(p2[1],'')))\n\t\n\tif save_all:\n\t\tout_file = os.path.join(folder,'emc_cfw.bin')\n\t\tUtils.savePatchData(out_file, patched_fw)\n\t\tprint('\\n'+UI.green(STR_SAVED_TO%out_file))\n\t\n\t# Encrypt and save patched data\n\tprint('\\n'+UI.highlight(STR_ENCRYPTING)+'\\n')\n\t\n\tencrypted_fw = Encdec.encrypt(patched_fw)\n\t\n\tif save_all:\n\t\tout_file = os.path.join(folder,'emc_cfw_enc.bin')\n\t\tUtils.savePatchData(out_file, encrypted_fw)\n\t\tprint('\\n'+UI.green(STR_SAVED_TO%out_file))\n\t\n\tif fw_size != len(encrypted_fw):\n\t\tprint('\\n'+UI.warning(STR_SIZES_MISMATCH))\n\t\n\tout_file = os.path.join(folder,filename+'_emc_cfw.bin')\n\tUtils.savePatchData(out_file, data, [{'o':fw_offset + SFlash.SFLASH_PARTITIONS[emc_part_name]['o'],'d':encrypted_fw}])\n\tprint('\\n'+UI.highlight(STR_SAVED_TO%out_file))\n\t\n\tinput(STR_BACK)\n\n\n\ndef screenHddKey(file):\n\tUI.clearScreen()\n\tprint(TITLE+UI.getTab(STR_ABOUT_EAP))\n\tprint(UI.warning(STR_INFO_HDD_EAP))\n\t\n\tmode = input('\\n'+STR_USE_NEWBLOBS+STR_Y_OR_CANCEL).lower()\n\tUI.clearInput(2)\n\t\n\tprint(UI.getTab(STR_HDD_KEY))\n\t\n\twith open(file,'rb') as f:\n\t\tsmi = int.from_bytes(SFlash.getNorData(f, 'SMI'), \"little\")\n\t\t\n\t\tmagic = SFlash.getNorData(f, 'EAP_MGC')\n\t\tkey = SFlash.getNorData(f, 'EAP_KEY')\n\t\n\tprint(' RAW hdd key\\n')\n\tfor i in range(0,len(key),0x20):\n\t\tprint(' '+Utils.hex(key[i:i+0x20],''))\n\t\n\tprint(UI.highlight('\\n Key magic - ')+'%s\\n'%(STR_OK if magic == SFlash.SFLASH_AREAS['EAP_MGC']['n'] else STR_DIFF))\n\t\n\tkeys = Encdec.hddEapKey(key, smi, True if mode == 'y' else False)\n\tprint()\n\tif keys == -1:\n\t\tprint(STR_ABORT)\n\t\tinput(STR_BACK)\n\t\n\tout = os.path.dirname(file) + os.sep + 'keys.bin'\n\twith open(out, 'wb') as k:\n\t\tk.write(keys['data'])\n\t\tk.write(keys['tweak'])\n\t\n\tprint(UI.highlight(STR_SAVED_TO%out))\n\t\n\tinput(STR_BACK)\n\n\n\ndef screenExtractNorDump(file):\n\tUI.clearScreen()\n\tprint(TITLE+UI.getTab(STR_SFLASH_EXTRACT))\n\t\n\twith open(file, 'rb') as f:\n\t\t\n\t\tsn = SFlash.getNorData(f, 'SN', True)\n\t\tfolder = os.path.dirname(file) + os.sep + sn + os.sep\n\t\t\n\t\tif not os.path.exists(folder):\n\t\t\tos.makedirs(folder)\n\t\t\n\t\tinfo = ''\n\t\tdata = SFlash.getSFlashInfo(file)\n\t\tfor key in data:\n\t\t\tinfo += '%s : %s\\n'%(key.ljust(12,' '),data[key])\n\t\tinfo += '\\n'\n\t\t\n\t\tprint(STR_EXTRACTING%sn+'\\n')\n\t\t\n\t\ti = 0\n\t\tfor k in SFlash.SFLASH_PARTITIONS:\n\t\t\tp = SFlash.SFLASH_PARTITIONS[k]\n\t\t\ti += 1\n\t\t\tprint(' %2d: %16s > %s'%(i, k, p['n']))\n\t\t\tinfo += '%2d: %16s > %s\\n'%(i, k, p['n'])\n\t\t\t\n\t\t\twith open(folder + p['n'], 'wb') as out:\n\t\t\t\tout.write(SFlash.getNorPartition(f, k))\n\t\t\n\t\twith open(folder + Utils.INFO_FILE_SFLASH, 'w') as txt:\n\t\t\ttxt.write(info)\n\t\t\n\t\tprint('\\n'+STR_SAVED_TO%folder)\n\t\n\tprint('\\n'+STR_DONE)\n\t\n\tinput(STR_BACK)\n\n\n\ndef screenBuildNorDump(folder):\n\tUI.clearScreen()\n\tprint(TITLE+UI.getTab(STR_SFLASH_BUILD))\n\t\n\tif not os.path.exists(folder):\n\t\tprint(STR_NO_FOLDER%folder+'\\n\\n'+STR_ABORT)\n\t\tinput(STR_BACK)\n\t\treturn\n\t\n\tprint(STR_FILES_CHECK.format(folder)+'\\n')\n\t\n\tfound = 0\n\t\n\ti = 0\n\tfor k in SFlash.SFLASH_PARTITIONS:\n\t\tp = SFlash.SFLASH_PARTITIONS[k]\n\t\ti += 1\n\t\tstatus = STR_OK\n\t\t\n\t\tfile = folder+os.sep+p['n']\n\t\tif not os.path.exists(file):\n\t\t\tstatus = STR_NOT_FOUND\n\t\telif os.stat(file).st_size != p['l']:\n\t\t\tstatus = STR_BAD_SIZE\n\t\telse:\n\t\t\tfound += 1\n\t\t\n\t\tprint(' %2d: %20s - %s'%(i, p['n'], status))\n\t\n\tprint()\n\t\n\tif found == len(SFlash.SFLASH_PARTITIONS):\n\t\t\n\t\t\"\"\"\n\t\tsn = '0'*17\n\t\twith open(folder+os.sep+SFlash.SFLASH_PARTITIONS['s0_nvs']['n'],'rb') as nvs:\n\t\t\tnvs.seek(0x4030)\n\t\t\tsn = nvs.read(17)\n\t\t\"\"\"\n\t\t\n\t\tfname = os.path.join(folder, 'sflash0.bin')\n\t\t\n\t\tprint(STR_BUILDING%fname)\n\t\t\n\t\tout = open(fname,\"wb\")\n\t\t\n\t\tfor k in SFlash.SFLASH_PARTITIONS:\n\t\t\tfile = folder+os.sep+SFlash.SFLASH_PARTITIONS[k]['n']\n\t\t\twith open(file, 'rb') as f:\n\t\t\t\tout.write(f.read())\n\t\t\n\t\tout.close()\n\t\t\n\t\tprint('\\n'+STR_DONE)\n\telse:\n\t\tprint(STR_ABORT)\n\t\n\tinput(STR_BACK)\n\n\n\ndef screenAdvSFlashTools(file):\n\t\n\twith open(file, 'rb') as f:\n\t\tsn = SFlash.getNorData(f, 'SN', True)\n\t\n\tfolder = os.path.dirname(file) + os.sep + sn\n\n\twhile True:\n\n\t\tUI.clearScreen()\n\t\tprint(TITLE+UI.getTab(STR_ADDITIONAL))\n\t\t\n\t\tUI.showMenu(MENU_SFLASH_ADV_ACTIONS,1)\n\t\t\n\t\tUI.showStatus()\n\t\t\n\t\tchoice = input(STR_CHOICE)\n\t\t\n\t\tif choice == '':\n\t\t\treturn\n\t\telif choice == '1':\n\t\t\tscreenExtractNorDump(file)\n\t\telif choice == '2':\n\t\t\tscreenBuildNorDump(folder)\n\t\telif choice == '3':\n\t\t\tscreenNvsRecovery(file)\n\t\telif choice == '4':\n\t\t\tscreenEapKeyRecovery(file)\n\t\telif choice == '5':\n\t\t\tscreenHddKey(file)\n\t\telif choice == '6':\n\t\t\tscreenEmcCFW(file)\n\t\telif choice == '7':\n\t\t\tscreenValidate(file)\n\t\telif choice == '8':\n\t\t\tscreenPartitionRecovery(file)\n\t\t\n"
  },
  {
    "path": "tools/AdvSysconTools.py",
    "content": "#==============================================================\n# PS4 Syscon Tools\n# part of ps4 wee tools project\n# https://github.com/andy-man/ps4-wee-tools\n#==============================================================\nimport os\nfrom lang._i18n_ import *\nimport utils.utils as Utils\nimport utils.syscon as Syscon\nimport utils.utils as Utils\nimport tools.Tools as Tools\n\n# Screens\n\ndef screenAdvSysconTools(file):\n\t\n    MENU_SC_ADV_ACTIONS[2-1] = UI.dark(MENU_SC_ADV_ACTIONS[2-1])\n    MENU_SC_ADV_ACTIONS[5-1] = UI.dark(MENU_SC_ADV_ACTIONS[5-1])\n    MENU_SC_ADV_ACTIONS[6-1] = UI.dark(MENU_SC_ADV_ACTIONS[6-1])\n\n    while True:\n\n        UI.clearScreen()\n        print(TITLE+UI.getTab(STR_ADDITIONAL))\n\t\t\n        UI.showMenu(MENU_SC_ADV_ACTIONS,1)\n\n        UI.showStatus()\n\t\t\n        choice = input(STR_CHOICE)\n\n        if choice == '':\n            break\n        elif choice == '1':\n            resetSysconCounters(file)\n        elif choice == '2':\n            UI.setStatus(STR_NIY)\n        elif choice == '3':\n            screenBootModes(file)\n        elif choice == '4':\n            print()\n            print(UI.highlight(STR_NIY))\n            print(UI.warning(' Using Legacy method'))\n            cleanSyscon(file)\n        elif choice == '5':\n            UI.setStatus(STR_NIY)\n        elif choice == '6':\n            UI.setStatus(STR_NIY)\n        else:\n            UI.setStatus(STR_ERROR_CHOICE)\n\n    return\n\n\n\ndef screenBootModes(file):\n\tUI.clearScreen()\n\tprint(TITLE+UI.getTab(STR_ABOUT_SC_BOOTMODES))\n\tprint(UI.warning(STR_INFO_SC_BOOTMODES))\n\t\n\tprint(UI.getTab(STR_SC_BOOT_MODES))\n\t\n\twith open(file, 'r+b') as f:\n\t\tdata = f.read()\n\t\tSNVS = Syscon.NVStorage(Syscon.SNVS_CONFIG, Syscon.getSysconData(f, 'SNVS'))\n\t\tentries = SNVS.getAllDataEntries()\n\t\n\tmodes = Syscon.getEntriesByType(Syscon.SC_TYPES_BOOT, entries)\n\t\n\tif len(modes) <= 0:\n\t\tprint(UI.warning(STR_SC_NO_BM))\n\t\tinput(STR_BACK)\n\t\treturn\n\t\n\titems = []\n\tduplicates = []\n\t\n\tfor i in range(len(modes)):\n\t\tinf = Syscon.getRecordPos(modes[i], SNVS)\n\t\tedata = []\n\t\tfor k in range(len(Syscon.SC_TYPES_BOOT)):\n\t\t\tedata.append(Utils.hex(Syscon.NvsEntry(entries[modes[i]+k]).getData(),''))\n\t\t\n\t\tcolor = ''\n\t\t\n\t\tif edata in items:\n\t\t\tcolor = Clr.fg.orange\n\t\t\tduplicates.append(str(i+1))\n\t\telse:\n\t\t\titems.append(edata)\n\t\t\n\t\titem = Clr.fg.pink + edata[0] + Clr.reset + ' ... ' + Clr.fg.pink + edata[-1] + Clr.reset\n\t\tprint(color + ' % 2d: Block %d (#%03d) at 0x%04X'%(i+1, inf['block'], inf['num'], inf['offset']) + Clr.reset + ' ' + item)\n\t\n\tprint()\n\t\n\tif len(duplicates):\n\t\tprint(STR_DUPLICATES%(len(duplicates), ','.join(duplicates)))\n\t\n\tUI.showStatus()\n\t\n\tchoice = input(UI.DIVIDER+STR_SC_BM_SELECT%(len(modes)))\n\t\n\ttry:\n\t\tc = int(choice)\n\t\t\n\t\tout_file = Utils.getFilePathWoExt(file,True)\n\t\t\n\t\tif c == len(modes):\n\t\t\tUI.setStatus(' It\\'s already active boot mode!')\n\t\telif c > 0 and c < len(modes):\n\t\t\tofile = out_file+'_bootmode_%d.bin'%(c)\n\t\t\tsel = modes[c-1]\n\t\t\tact = modes[-1]\n\t\t\t# replace last(active) with selected\n\t\t\tfor i in range(len(Syscon.SC_TYPES_BOOT)):\n\t\t\t\ttemp = entries[act + i]\n\t\t\t\tentries[act + i] = entries[sel + i]\n\t\t\t\tentries[sel + i] = temp\n\t\t\t\n\t\t\tUtils.savePatchData(ofile, data, [{'o':Syscon.SC_AREAS['SNVS']['o'], 'd':SNVS.getRebuilded(entries)}])\n\t\t\tUI.setStatus(STR_SAVED_TO%ofile)\n\texcept:\n\t\treturn\n\t\n\tscreenBootModes(file)\n\n# Functions\n\ndef resetSysconCounters(file):\n\t\n\twith open(file, 'rb') as f:\n\t\tdata = f.read()\n\t\tSNVS = Syscon.NVStorage(Syscon.SNVS_CONFIG, Syscon.getSysconData(f, 'SNVS'))\n\t\n\tofile = Utils.getFilePathWoExt(file, True) + '_owc_reset.bin'\n\t\n\twith open(ofile, 'wb') as f:\n\t\tf.write(data)\n\t\tSyscon.setSysconData(f, 'SNVS', SNVS.getRebuilded())\n\t\n\tUI.setStatus(STR_SAVED_TO%ofile)\n\n\n\ndef cleanSyscon(file):\n\t\n\tc = input(UI.highlight(STR_INPUT_DESTROY_PREV+STR_Y_OR_CANCEL))\n\tfull = True if c.lower() == 'y' else False\n\t\n\twith open(file, 'rb') as f:\n\t\tdata = f.read()\n\t\tSNVS = Syscon.NVStorage(Syscon.SNVS_CONFIG, Syscon.getSysconData(f, 'SNVS'))\n\t\n\tclean = []\n\tentries = SNVS.getAllDataEntries()\n\t\n\tif full:\n\t\t# Full clean - only last FW records will be saved\n\t\tfor i in range(len(entries)):\n\t\t\tif entries[i][1] in Syscon.SC_TYPES_BOOT + Syscon.SC_TYPES_MODES:\n\t\t\t\tclean.append(entries[i])\n\t\t\n\t\tinds = Syscon.getEntriesByType(Syscon.SC_TYPES_UPD, entries)\n\t\tif len(inds) >= 2: # add previous FW records\n\t\t\titems = entries[inds[-2]:inds[-2]+len(Syscon.SC_TYPES_UPD)]\n\t\t\tprint(items)\n\t\t\tclean += items\n\t\tif len(inds) >= 1: # add current FW records\n\t\t\titems = entries[inds[-1]:inds[-1]+len(Syscon.SC_TYPES_UPD)]\n\t\t\tprint(items)\n\t\t\tclean += items\n\telse:\n\t\t# Regular clean preserves all FW records\n\t\tfor i in range(len(entries)):\n\t\t\tif entries[i][1] in Syscon.SC_TYPES_BOOT + Syscon.SC_TYPES_MODES + Syscon.SC_TYPES_UPD:\n\t\t\t\tclean.append(entries[i])\n\t\n\tofile = Utils.getFilePathWoExt(file,True) + '_clean'+('_full' if full else '')+'.bin'\n\t\n\twith open(ofile, 'wb') as f:\n\t\tf.write(data)\n\t\tSyscon.setSysconData(f, 'SNVS', SNVS.getRebuilded(clean))\n\t\n\tUI.setStatus(STR_SAVED_TO%ofile)"
  },
  {
    "path": "tools/SFlashTools.py",
    "content": "#==============================================================\n# PS4 Nor Tools\n# part of ps4 wee tools project\n#==============================================================\nimport os, time\nfrom lang._i18n_ import *\nimport utils.utils as Utils\nimport utils.sflash as SFlash\nimport utils.slb2 as Slb2\nimport utils.encdec as Encdec\nimport tools.Tools as Tools\nimport tools.AdvSFlashTools as AdvSFlashTools\n\n\n\ndef screenSBpatcher(file, model = '', emc_ver = '', eap_ver = ''):\n\t\n\t# Read once\n\t\n\twith open(file,'rb') as f:\n\t\tactive_slot = SFlash.getActiveSlot(f)\n\t\tfw = SFlash.getFWInfo(f, active_slot)\n\t\tsb = SFlash.getSouthBridge(f)\n\n\twhile True:\n\t\n\t\tUI.clearScreen()\n\t\tprint(TITLE + UI.getTab(STR_ABOUT_SB_PATCH))\n\t\tprint(UI.warning(STR_INFO_SB_PATCH))\n\t\tprint()\n\t\tprint(UI.warning(STR_INFO_FW_LINK))\n\t\t\n\t\tprint(UI.getTab(STR_SB_PATCHER))\n\t\t\n\t\tprint(UI.highlight(STR_CURRENT))\n\t\tprint()\n\t\tUI.showTable({\n\t\t\t'Southbridge'\t: '%s [%s] [%02X:%02X]'%(sb['name'], sb['ic'], sb['code'][0], sb['code'][1]),\n\t\t\t'FW info'\t\t: fw['c'] + ' ['+active_slot.upper()+']',\n\t\t})\n\t\t\n\t\tprint()\n\t\t\n\t\tif model in SFlash.SOUTHBRIDGES:\n\t\t\tprint(UI.highlight(STR_MODEL+': ') + '%s [%s] [%02X:%02X]'%(model['name'], model['ic'], model['code'][0], model['code'][1]))\n\t\telse:\n\t\t\tprint(UI.highlight(STR_SELECT_MODEL)+'\\n')\n\t\t\tsb_list = SFlash.SOUTHBRIDGES\n\t\t\tUI.showMenu(['%s [%02X:%02X] %s'%(sb_list[x]['ic'], sb_list[x]['code'][0], sb_list[x]['code'][1], sb_list[x]['name']) for x in range(len(sb_list))], 1)\n\t\t\t\n\t\t\tUI.showStatus()\n\t\t\t\n\t\t\tchoice = input(STR_CHOICE)\n\n\t\t\tif choice == '':\n\t\t\t\tbreak\n\n\t\t\ttry: n = int(choice)\n\t\t\texcept: n = -1\n\t\t\t\n\t\t\tif n > 0 and n <= len(SFlash.SOUTHBRIDGES):\n\t\t\t\tmodel = SFlash.SOUTHBRIDGES[n-1]\n\t\t\telse:\n\t\t\t\tUI.setStatus(STR_ERROR_INPUT)\n\t\t\t\n\t\t\tcontinue\n\t\t\n\t\tprint()\n\t\t\n\t\texpert_mode = False\n\t\tif not emc_ver:\n\t\t\texpert_mode = input(UI.highlight(STR_EXPERT_MODE+STR_Y_OR_CANCEL)).lower()\n\t\t\tUI.clearInput()\n\t\t\n\t\t# Quick mode\n\t\tif not emc_ver and expert_mode != 'y':\n\t\t\temc_ver = SFlash.getDataByPartitionAndType('emc_ipl', model['code'][0], fw['c'])\n\t\t\teap_ver = SFlash.getDataByPartitionAndType('eap_kbl', model['code'][1], fw['c'])\n\t\t\t\n\t\t\tif not emc_ver:\n\t\t\t\tprint(UI.error(STR_ERR_NO_FW_FOUND%('EMC',fw['c'])))\n\t\t\tif not eap_ver:\n\t\t\t\tprint(UI.error(STR_ERR_NO_FW_FOUND%('EAP',fw['c'])))\n\t\t\t\n\t\t\tif emc_ver and eap_ver:\n\t\t\t\tcontinue\n\t\t\telse:\n\t\t\t\tmodel, emc_ver, eap_ver = '','',''\n\t\t\t\tprint(UI.highlight(STR_USE_EXPERT_M))\n\t\t\t\tinput(STR_BACK)\n\t\t\t\tcontinue\n\t\t\n\t\t# Expert mode\n\t\tif emc_ver:\n\t\t\tprint(UI.highlight(' EMC:') + ' %s - %s [%s]\\n'%(emc_ver['fw'][0], emc_ver['fw'][-1], emc_ver['md5']))\n\t\telse:\n\t\t\tprint(UI.highlight(STR_SELECT_FW_VER+' (emc):')+'\\n')\n\t\t\t\n\t\t\titems = SFlash.getDataByPartitionAndType('emc_ipl', model['code'][0])\n\t\t\tfor x in range(len(items)):\n\t\t\t\tstr = ' %2d: %05s <> %05s [%s]'%(x+1, items[x]['fw'][0], items[x]['fw'][-1], items[x]['md5'])\n\t\t\t\tprint(UI.highlight(str) if SFlash.isFwInList(fw['c'], items[x]['fw']) else str)\n\t\t\t\n\t\t\tprint(UI.DIVIDER+' 0:'+STR_GO_BACK)\n\t\t\tUI.showStatus()\n\n\t\t\ttry: n = int(input(STR_CHOICE))\n\t\t\texcept: n = -1\n\t\t\t\n\t\t\tif n == 0:\n\t\t\t\tmodel, emc_ver, eap_ver = '','',''\n\t\t\t\tcontinue\n\t\t\tif n > 0 and n <= len(items):\n\t\t\t\temc_ver = items[n-1]\n\t\t\telse:\n\t\t\t\tUI.setStatus(STR_ERROR_INPUT)\n\t\t\t\n\t\t\tcontinue\n\t\t\n\t\tif eap_ver:\n\t\t\tprint(UI.highlight(' EAP:') + ' %s - %s [%s]\\n'%(eap_ver['fw'][0], eap_ver['fw'][-1], eap_ver['md5']))\n\t\telse:\n\t\t\tprint(UI.highlight(STR_SELECT_FW_VER+' (eap):')+'\\n')\n\t\t\t\n\t\t\titems = SFlash.getDataByPartitionAndType('eap_kbl', model['code'][1])\n\t\t\tfor x in range(len(items)):\n\t\t\t\tstr = ' %2d: %05s <> %05s [%s]'%(x+1, items[x]['fw'][0], items[x]['fw'][-1], items[x]['md5'])\n\t\t\t\tprint(UI.highlight(str) if SFlash.isFwInList(fw['c'], items[x]['fw']) else str)\n\t\t\t\n\t\t\tprint(UI.DIVIDER+' 0:'+STR_GO_BACK)\n\t\t\tUI.showStatus()\n\t\t\t\n\t\t\ttry: n = int(input(STR_CHOICE))\n\t\t\texcept: n = -1\n\t\t\t\n\t\t\tif n == 0:\n\t\t\t\temc_ver, eap_ver = '',''\n\t\t\t\tcontinue\n\t\t\tif n > 0 and n <= len(items):\n\t\t\t\teap_ver = items[n-1]\n\t\t\telse:\n\t\t\t\tUI.setStatus(STR_ERROR_INPUT)\n\t\t\t\n\t\t\tcontinue\n\t\t\n\t\t# Process\n\t\tif emc_ver and eap_ver:\n\t\t\temc_file = SFlash.getFwFilename(emc_ver, (os.path.sep).join([ Utils.ROOT_PATH, 'fws', 'emc', '%02X'%model['code'][0] ]))\n\t\t\teap_file = SFlash.getFwFilename(eap_ver, (os.path.sep).join([ Utils.ROOT_PATH, 'fws', 'eap', '%02X'%model['code'][1] ]))\n\t\t\t\n\t\t\tif os.path.exists(emc_file) and os.path.exists(eap_file):\n\t\t\t\tout_file = Utils.getFilePathWoExt(file, True)+'_patch_sb_'+model['ic']+'.bin'\n\t\t\t\tUtils.savePatchData(out_file, Utils.getFileContents(file), [\n\t\t\t\t\t{'o':SFlash.SFLASH_PARTITIONS['s0_emc_ipl_'+active_slot.lower()]['o'], 'd':Utils.getFileContents(emc_file)},\n\t\t\t\t\t{'o':SFlash.SFLASH_PARTITIONS['s0_eap_kbl']['o'], 'd':Utils.getFileContents(eap_file)},\n\t\t\t\t])\n\t\t\t\tUI.setStatus(STR_SAVED_TO%out_file)\n\t\t\telse:\n\t\t\t\tstatus = ' '+Utils.ROOT_PATH+'\\n'\n\t\t\t\tif not os.path.exists(emc_file): status += ' '+emc_file[len(Utils.ROOT_PATH):]+'\\n'\n\t\t\t\tif not os.path.exists(eap_file): status += ' '+eap_file[len(Utils.ROOT_PATH):]+'\\n'\n\t\t\t\tstatus += ' ' + STR_NOT_FOUND\n\t\t\t\tUI.setStatus(status)\n\t\t\n\t\tUI.showStatus()\n\t\tinput(STR_BACK)\n\t\tbreak\n\n\n\ndef screenWFpatcher(file, model = '', ver = ''):\n\t\n\t# Read once\n\t\n\twith open(file,'rb') as f:\n\t\tactive_slot = SFlash.getActiveSlot(f)\n\t\tfw = SFlash.getFWInfo(f, active_slot)\n\t\ttorus = SFlash.getTorusInfo(f)\n\t\n\twhile True:\n\n\t\tUI.clearScreen()\n\t\tprint(TITLE + UI.getTab(STR_ABOUT_TORUS_PATCH))\n\t\tprint(UI.warning(STR_INFO_TORUS_PATCH))\n\t\tprint()\n\t\tprint(UI.warning(STR_INFO_FW_LINK))\n\t\t\n\t\tprint(UI.getTab(STR_WIFI_PATCHER))\n\t\t\n\t\tprint(UI.highlight(STR_CURRENT))\n\t\tprint()\n\t\t\n\t\tUI.showTable({\n\t\t\t'Torus (WiFi+BT)'\t: '%s - %s [0x%02X]'%(torus['v'], torus['name'], torus['code']),\n\t\t\t'FW info'\t\t\t: fw['c'] + ' ['+active_slot.upper()+']',\n\t\t})\n\t\tprint()\n\t\t\n\t\tif model in SFlash.TORUS_VERS:\n\t\t\tprint(UI.highlight(STR_MODEL+': ') + '%s - %s [%02X]'%(model['v'], model['name'], model['code']))\n\t\telse:\n\t\t\tprint(UI.highlight(STR_SELECT_MODEL)+'\\n')\n\t\t\ttor_models = SFlash.TORUS_VERS\n\t\t\tUI.showMenu(['%s - %s [0x%02X] %s'%(tor_models[x]['v'], tor_models[x]['name'][:15], tor_models[x]['code'], ', '.join(tor_models[x]['ic'])) for x in range(len(SFlash.TORUS_VERS))], 1)\n\t\t\t\n\t\t\tUI.showStatus()\n\t\t\t\n\t\t\tchoice = input(STR_CHOICE)\n\n\t\t\tif choice == '':\n\t\t\t\tbreak\n\n\t\t\ttry: n = int(choice)\n\t\t\texcept: n = -1\n\n\t\t\tif n > 0 and n <= len(SFlash.TORUS_VERS):\n\t\t\t\tmodel = SFlash.TORUS_VERS[n-1]\n\t\t\telse:\n\t\t\t\tUI.setStatus(STR_ERROR_INPUT)\n\t\t\t\n\t\t\tcontinue\n\t\t\n\t\tprint()\n\t\t\n\t\t# Quick mode\n\t\texpert_mode = False\n\t\tif not ver:\n\t\t\texpert_mode = input(UI.highlight(STR_EXPERT_MODE+STR_Y_OR_CANCEL)).lower()\n\t\t\tUI.clearInput()\n\t\t\n\t\tif not ver and expert_mode != 'y':\n\t\t\tver = SFlash.getDataByPartitionAndType('wifi', model['code'], fw['c'])\n\t\t\t\n\t\t\tif not ver:\n\t\t\t\tprint(UI.error(STR_ERR_NO_FW_FOUND%('TORUS',fw['c'])))\n\t\t\t\tprint(UI.highlight(STR_USE_EXPERT_M))\n\t\t\t\tinput(STR_BACK)\n\t\t\t\tmodel, ver = '',''\n\t\t\t\n\t\t\tcontinue\n\t\t\n\t\t# Expert mode\n\t\tif ver:\n\t\t\tprint(UI.highlight(' TORUS: ') + '%s - %s [%s]\\n'%(ver['fw'][0], ver['fw'][-1], ver['md5']))\n\t\t\t\n\t\t\tfw_file = SFlash.getFwFilename(ver, (os.path.sep).join([ Utils.ROOT_PATH, 'fws', 'torus', '%02X'%model['code'] ]))\n\n\t\t\tif os.path.exists(fw_file):\n\t\t\t\tout_file = Utils.getFilePathWoExt(file, True)+'_patch_torus_'+'%02X'%model['code']+'.bin'\n\t\t\t\tUtils.savePatchData(out_file, Utils.getFileContents(file), [{'o':SFlash.SFLASH_PARTITIONS['s0_wifi']['o'], 'd':Utils.getFileContents(fw_file)}])\n\t\t\t\tUI.setStatus(STR_SAVED_TO%out_file)\n\t\t\telse:\n\t\t\t\tUI.setStatus(' %s - %s'%(fw_file, STR_NOT_FOUND))\n\t\telse:\n\t\t\tprint(UI.highlight(STR_SELECT_FW_VER)+':\\n')\n\t\t\t\n\t\t\titems = SFlash.getDataByPartitionAndType('wifi', model['code'])\n\t\t\tfor x in range(len(items)):\n\t\t\t\tstr = ' %2d: %05s <> %05s [%s]'%(x+1, items[x]['fw'][0], items[x]['fw'][-1], items[x]['md5'])\n\t\t\t\tprint(UI.highlight(str) if SFlash.isFwInList(fw['c'], items[x]['fw']) else str)\n\t\t\t\n\t\t\tprint(UI.DIVIDER+' 0:'+STR_GO_BACK)\n\t\t\tUI.showStatus()\n\t\t\t\n\t\t\ttry: n = int(input(STR_CHOICE))\n\t\t\texcept: n = -1\n\t\t\t\n\t\t\tif n == 0:\n\t\t\t\treturn screenWFpatcher(file)\n\t\t\tif n > 0 and n <= len(items):\n\t\t\t\tver = items[n-1]\n\t\t\telse:\n\t\t\t\tUI.setStatus(STR_ERROR_INPUT)\n\t\t\t\n\t\t\tcontinue\n\t\t\n\t\tUI.showStatus()\n\t\tinput(STR_BACK)\n\t\tbreak\n\t\n\treturn\n\n\n\ndef screenSysFlags(file):\n\tUI.clearScreen()\n\tprint(TITLE + UI.getTab(STR_SYSFLAGS))\n\t\n\twith open(file, 'r+b') as f:\n\t\t\n\t\tprint(UI.warning(STR_CURRENT)+'\\n')\n\t\tflags = SFlash.getNorData(f, 'SYS_FLAGS')\n\t\tfor i in range(0, len(flags), 0x10):\n\t\t\tprint(' '+Utils.hex(flags[i:i+0x10]))\n\t\t\n\t\tchoice = input(STR_CONFIRM)\n\t\t\n\t\tif choice.lower() != 'y':\n\t\t\treturn 0\n\t\t\n\t\tval = b'\\xFF'*64\n\t\tSFlash.setNorData(f, 'SYS_FLAGS',  val)\n\t\tSFlash.setNorDataB(f, 'SYS_FLAGS', val)\n\t\n\tUI.setStatus(STR_SYSFLAGS_CLEAN)\n\n\n\ndef screenMemClock(file):\n\tUI.clearScreen()\n\tprint(TITLE + UI.getTab(STR_WARNING))\n\t\n\tprint(UI.warning(STR_OVERCLOCKING))\n\t\n\tprint(UI.getTab(STR_MEMCLOCK))\n\t\n\twith open(file, 'r+b') as f:\n\t\t\n\t\tclocks = SFlash.getMemClock(f)\n\t\t\n\t\tprint(STR_CURRENT+('0x%02X %dMHz | 0x%02X %dMHz')%(clocks[0],clocks[1],clocks[2],clocks[3]))\n\t\tif clocks[0] != clocks[2]:\n\t\t\tprint(STR_DIFF_SLOT_VALUES)\n\t\t\n\t\ttry:\n\t\t\tfrq = int(input(STR_MEMCLOCK_INPUT))\n\t\texcept:\n\t\t\treturn\n\n\t\tif frq >= 400 and frq <= 2000:\n\t\t\traw = SFlash.clockToRaw(frq)\n\t\telse:\n\t\t\tfrq = 0\n\t\t\traw = 255\n\t\t\n\t\tSFlash.setNorData(f, 'MEMCLK',  raw.to_bytes(1, 'big'))\n\t\tSFlash.setNorDataB(f, 'MEMCLK', raw.to_bytes(1, 'big'))\n\t\t\n\t\tUI.setStatus(STR_MEMCLOCK_SET%(frq,raw))\n\n\n\ndef screenSamuBoot(file):\n\tUI.clearScreen()\n\tprint(TITLE + UI.getTab(STR_SAMU_BOOT))\n\t\n\twith open(file, 'r+b') as f:\n\t\t\n\t\tcur = SFlash.getNorData(f, 'SAMUBOOT')[0]\n\t\tprint(STR_CURRENT+('%d [0x%02X]')%(cur,cur))\n\t\t\n\t\ttry:\n\t\t\tfrq = int(input(STR_SAMU_INPUT))\n\t\texcept:\n\t\t\treturn\n\t\t\n\t\tif frq < 0 or frq > 255:\n\t\t\tfrq = 255\n\t\t\n\t\tSFlash.setNorData(f, 'SAMUBOOT',  frq.to_bytes(1, 'big'))\n\t\tSFlash.setNorDataB(f, 'SAMUBOOT', frq.to_bytes(1, 'big'))\n\t\n\tUI.setStatus(STR_SAMU_UPD+('%d [0x%02X]')%(frq,frq))\n\n\n\ndef screenLegitimatePatch(file, path = ''):\n\t\n\tUI.clearScreen()\n\tprint(TITLE+UI.getTab(STR_ABOUT_LEG_PATCH))\n\tprint(UI.warning(STR_INFO_LEG_PATCH))\n\tprint(UI.getTab(STR_LEG_PATCH))\n\t\n\tprint(' '+UI.highlight(STR_LP_FIRST_DUMP)+':\\n')\n\twith open(file, 'rb') as f:\n\t\tdata = f.read()\n\t\tf_info = SFlash.getInfoForLegitSwitch(f)\n\t\tUI.showTable({\n\t\t\t'File'\t\t: os.path.basename(file),\n\t\t\t'Date'\t\t: Utils.getFileTime(file)['date'],\n\t\t\t'Slot'\t\t: 'A' if f_info['slot'] == b'\\x00' else 'B',\n\t\t\t'SN'\t\t: f_info['sn'],\n\t\t\t'Pattern'\t: UI.highlight(Utils.hex(f_info['switch'],':')),\n\t\t})\n\t\tprint()\n\t\n\tif not path or not os.path.isfile(path):\n\t\tc = input(STR_INPUT_SEL_DUMP+STR_Y_OR_CANCEL)\n\t\tif c.lower() == 'y':\n\t\t\tpath = Tools.screenFileSelect(file, False, True)\n\t\t\treturn screenLegitimatePatch(file, path)\n\t\telse:\n\t\t\treturn\n\t\n\tprint(' '+UI.highlight(STR_LP_SECOND_DUMP)+':\\n')\n\twith open(path, 'rb') as f:\n\t\ts_info = SFlash.getInfoForLegitSwitch(f)\n\t\tUI.showTable({\n\t\t\t'File'\t\t: os.path.basename(path),\n\t\t\t'Date'\t\t: Utils.getFileTime(path)['date'],\n\t\t\t'Slot'\t\t: 'A' if s_info['slot'] == b'\\x00' else 'B',\n\t\t\t'SN'\t\t: s_info['sn'],\n\t\t\t'Pattern'\t: UI.highlight(Utils.hex(s_info['switch'],':')),\n\t\t})\n\t\tprint()\n\t\n\t# Quick check\n\tif f_info['sn'] != s_info['sn']:\n\t\tprint(' '+UI.warning(STR_CANT_USE+': ')+STR_DIFF_SN)\n\t\tinput(STR_BACK)\n\t\treturn\n\t\t\n\tif f_info['switch'] == s_info['switch']:\n\t\tprint(' '+UI.warning(STR_CANT_USE+': ')+STR_SSP_EQUAL)\n\t\tinput(STR_BACK)\n\t\treturn\n\t\n\tofile = Utils.getFilePathWoExt(file)+'_legit_patch.bin'\n\tUtils.savePatchData(ofile, data, [\n\t\t{'o':SFlash.SFLASH_AREAS['CORE_SWCH']['o'],\t\t\t\t\t'd':s_info['switch']},\n\t\t{'o':SFlash.SFLASH_AREAS['UART']['o'],\t\t\t\t\t\t\t'd':b'\\x01'},\n\t\t{'o':SFlash.SFLASH_AREAS['UART']['o']+SFlash.BACKUP_OFFSET,\t'd':b'\\x01'},\n\t])\n\t\n\tprint(STR_PATCH_SAVED%ofile)\n\t\n\tc = input('\\n'+UI.highlight(STR_FLASH_FILE+STR_Y_OR_CANCEL)).lower()\n\tif c == 'y':\n\t\treturn Tools.screenNorFlasher(ofile if ofile else file, '', 'write', 1)\n\t\n\tinput(STR_BACK)\n\n\n\ndef screenDowngrade(file):\n\tUI.clearScreen()\n\tprint(TITLE + UI.getTab(STR_COREOS_SWITCH))\n\tprint(UI.warning(STR_DOWNGRADE))\n\t\n\twith open(file, 'r+b') as f:\n\t\tprint('\\n'+STR_CURRENT+SFlash.getSlotSwitchInfo(f))\n\t\tprint(UI.getTab(STR_SWITCH_PATTERNS),end='')\n\t\t\n\t\tfor i in range(1, len(SFlash.SWITCH_TYPES)):\n\t\t\tprint('\\n '+SFlash.SWITCH_TYPES[i]+'\\n')\n\t\t\tfor n in range(len(SFlash.SWITCH_BLOBS)):\n\t\t\t\tif SFlash.SWITCH_BLOBS[n]['t'] == i:\n\t\t\t\t\tprint(' %2d: %s'%(n+1,Utils.hex(SFlash.SWITCH_BLOBS[n]['v'])))\n\t\t\n\t\tprint(UI.DIVIDER)\n\t\tprint(' 0:'+STR_GO_BACK)\n\t\t\n\t\tUI.showStatus()\n\t\t\n\t\ttry: num = int(input(STR_CHOICE))\n\t\texcept: num = -1\n\t\t\n\t\tif num == 0:\n\t\t\treturn\n\t\telif num < 0 or num > len(SFlash.SWITCH_BLOBS):\n\t\t\tUI.setStatus(STR_ERROR_CHOICE)\n\t\telse:\n\t\t\tpattern = SFlash.SWITCH_BLOBS[num-1]\n\t\t\tofile = ''\n\t\t\tc = input('\\n'+UI.highlight(STR_CONFIRM_SEPARATE+STR_Y_OR_CANCEL)).lower()\n\t\t\t\n\t\t\tif c == 'y':\n\t\t\t\tofile = os.path.splitext(file)[0]+'_slot_switch_'+str(num)+'.bin'\n\t\t\t\tf.seek(0,0)\n\t\t\t\tpatch = [\n\t\t\t\t\t{'o':SFlash.SFLASH_AREAS['CORE_SWCH']['o'],\t\t\t\t\t'd':bytes(pattern['v'])},\n\t\t\t\t\t{'o':SFlash.SFLASH_AREAS['UART']['o'],\t\t\t\t\t\t\t'd':b'\\x01'},\n\t\t\t\t\t{'o':SFlash.SFLASH_AREAS['UART']['o']+SFlash.BACKUP_OFFSET,\t'd':b'\\x01'},\n\t\t\t\t]\n\t\t\t\tUtils.savePatchData(ofile, f.read(), patch)\n\t\t\t\tUI.setStatus(STR_PATCH_SAVED%ofile)\n\t\t\telse:\n\t\t\t\tSFlash.setNorData(f, 'CORE_SWCH', bytes(pattern['v']))\n\t\t\t\tUI.setStatus(STR_DOWNGRADE_UPD + SFlash.SWITCH_TYPES[pattern['t']] + ' [' + str(num)+']')\n\t\t\t\n\t\t\tc = input('\\n'+UI.highlight(STR_FLASH_FILE+STR_Y_OR_CANCEL)).lower()\n\t\t\tif c == 'y':\n\t\t\t\treturn Tools.screenNorFlasher(ofile if ofile else file, '', 'write', 1)\n\t\n\tscreenDowngrade(file)\n\n\n\ndef screenFlagsToggler(file):\n\tUI.clearScreen()\n\tprint(TITLE+UI.getTab(STR_WARNING))\n\t\n\tprint(UI.warning(STR_PATCHES))\n\t\n\tprint(UI.getTab(STR_SFLASH_FLAGS))\n\t\n\twith open(file, 'rb') as f:\n\t\t\n\t\tpatches = [\n\t\t\t{'k':'UART',\t\t'v':[b'\\x00',b'\\x01'],\t\t\t'd':[STR_OFF,STR_ON], 'b':True},\n\t\t\t{'k':'MEMTEST',\t\t'v':[b'\\x00',b'\\x01'],\t\t\t'd':[STR_OFF,STR_ON], 'b':True},\n\t\t\t{'k':'RNG_KEY',\t\t'v':[b'\\x00',b'\\x01'],\t\t\t'd':[STR_OFF,STR_ON], 'b':True},\n\t\t\t{'k':'BTNSWAP',\t\t'v':[b'\\x00',b'\\x01'],\t\t\t'd':['O - select','X - select']},\n\t\t\t{'k':'SLOW_HDD',\t'v':[b'\\xFF',b'\\xFE'],\t\t\t'd':[STR_OFF,STR_ON]},\n\t\t\t{'k':'MEM_BGM',\t\t'v':[b'\\xFE',b'\\xFF'],\t\t\t'd':['Large','Normal']},\n\t\t\t{'k':'SAFE_BOOT',\t'v':[b'\\xFF',b'\\x01'],\t\t\t'd':[STR_OFF,STR_ON]},\n\t\t\t{'k':'UPD_MODE',\t'v':[b'\\x00',b'\\x10'],\t\t\t'd':[STR_OFF,STR_ON]},\n\t\t\t{'k':'ARCADE',\t\t'v':[b'\\x00',b'\\x01'],\t\t\t'd':[STR_OFF,STR_ON]},\n\t\t\t{'k':'REG_REC',\t\t'v':[b'\\x00',b'\\x01'],\t\t\t'd':[STR_OFF,STR_ON]},\n\t\t\t{'k':'IDU',\t\t\t'v':[b'\\x00',b'\\x01'],\t\t\t'd':[STR_OFF,STR_ON]},\n\t\t\t{'k':'BOOT_MODE',\t'v':[b'\\xFE',b'\\xFB',b'\\xFF'],\t'd':['Development','Assist','Release']},\n\t\t\t{'k':'MANU',\t\t'v':[b'\\x00'*32,b'\\xFF'*32],\t'd':[STR_OFF,STR_ON]},\n\t\t\t{'k':'ACT_SLOT',\t'v':[b'\\x00',b'\\x80'],\t\t\t'd':['A','B']},\n\t\t\t{'k':'RESOLUTION',\t'v':[b'\\x00', b'\\x01', b'\\x02', b'\\x03', b'\\x04', b'\\x05', b'\\x13'],\t'd':['Reset', '1080i', '720p', '1080p', '4K', '4K HDR', 'Auto']},\n\t\t]\n\t\t\n\t\tfor i in range(len(patches)):\n\t\t\tname = SFlash.getNorAreaName(patches[i]['k'])\n\t\t\tval = SFlash.getNorData(f, patches[i]['k'])\n\t\t\tstr = '['+Utils.hex(val,'')[:32]+']'\n\t\t\tfor k in range(len(patches[i]['v'])):\n\t\t\t\tif val == patches[i]['v'][k]:\n\t\t\t\t\tstr = patches[i]['d'][k]\n\t\t\tprint(' %2d: %-24s : %s'%(i+1, name, str))\n\t\n\tprint(UI.DIVIDER)\n\t\n\tprint(' c:'+STR_CLEAN_FLAGS)\n\tprint(' 0:'+STR_GO_BACK)\n\t\n\tUI.showStatus()\n\t\n\tnum = -1\n\ttry:\n\t\tchoice = input(STR_CHOICE)\n\t\tnum = int(choice)\n\texcept:\n\t\tif choice == 'c':\n\t\t\tscreenSysFlags(file)\n\t\n\tif num == 0:\n\t\treturn\n\telif num > 0 and num <= len(patches):\n\t\tpatch = patches[num-1]\n\t\tk = toggleFlag(file, patch)\n\t\tif patch['k'] == 'RESOLUTION':\n\t\t\tSFlash.setNorData(file, 'RES_RESET', b'\\x01' if patch['v'][k] == b'\\x00' else b'\\x00')\n\t\n\tscreenFlagsToggler(file)\n\n\n\ndef toggleFlag(file, patch):\n\twith open(file, 'r+b') as f:\n\t\t\n\t\tcur = SFlash.getNorData(f, patch['k'])\n\t\tfor i in range(0,len(patch['v'])):\n\t\t\tif cur == patch['v'][i]:\n\t\t\t\tbreak\n\t\ti = 0 if (i + 1) >= len(patch['v']) else i + 1\n\t\tval = patch['v'][i]\n\t\t\n\t\tSFlash.setNorData(f, patch['k'],  patch['v'][i])\n\t\tif 'b' in patch and patch['b'] == True:\n\t\t\t# Set flag in backup area\n\t\t\tSFlash.setNorDataB(f, patch['k'], patch['v'][i])\n\t\n\tUI.setStatus(STR_SET_TO%(SFlash.getNorAreaName(patch['k']),patch['d'][i]))\n\t\n\treturn i\n\n\n\ndef screenPartitionsInfo(file):\n\tUI.clearScreen()\n\tprint(TITLE+UI.getTab(STR_PARTS_INFO))\n\t\n\twith open(file,'rb') as f:\n\t\tdata = SFlash.getPartitionsInfo(f)\n\t\tslot = 'A' if data['slot'] == b'\\x00' else 'B'\n\t\tprint(STR_ACT_SLOT%(slot, data['slot'][0]))\n\t\tprint()\n\t\tfor i in range(len(data['parts'])):\n\t\t\tp = data['parts'][i]\n\t\t\tprint(UI.highlight(' #%d %s'%(i+1, p['name'])))\n\t\t\tUI.showTable({\n\t\t\t\t'Offset':'%8d [0x%x]'%(p['offset'],p['offset']),\n\t\t\t\t'Size':'%8d [0x%x]'%(p['size'],p['size']),\n\t\t\t\t'Type':'%8d [0x%x]'%(p['type'],p['type']),\n\t\t\t})\n\t\t\tprint()\n\t\n\tchoice = input(STR_CHOICE)\n\n\n\ndef screenSFlashTools(file):\n\t\t\n\twhile True:\n\t\t\t\n\t\tUI.clearScreen()\n\t\tprint(TITLE+UI.getTab(STR_SFLASH_INFO))\n\t\t\n\t\tinfo = SFlash.getSFlashInfo(file)\n\t\tif info:\n\t\t\tUI.showTable(info)\n\t\telse:\n\t\t\treturn Tools.screenFileSelect(file)\n\t\t\n\t\tprint(UI.getTab(STR_ACTIONS))\n\t\t\n\t\tUI.showMenu(MENU_SFLASH_ACTIONS,1)\n\t\tprint(UI.DIVIDER)\n\t\tUI.showMenu(MENU_EXTRA)\n\t\t\n\t\tUI.showStatus()\n\t\t\n\t\tchoice = input(STR_CHOICE)\n\t\n\t\tif choice == 's':\n\t\t\tTools.screenFileSelect(file)\n\t\t\tbreak\n\t\telif choice == 'f':\n\t\t\tTools.screenNorFlasher(file)\n\t\t\tbreak\n\t\telif choice == 'r':\n\t\t\tfile = renameToCanonnical(file)\n\t\t\tcontinue\n\t\telif choice == 'q':\n\t\t\tbreak\n\n\t\tif choice == '1':\n\t\t\tscreenFlagsToggler(file)\n\t\telif choice == '2':\n\t\t\tscreenMemClock(file)\n\t\telif choice == '3':\n\t\t\tscreenSamuBoot(file)\n\t\telif choice == '4':\n\t\t\tscreenDowngrade(file)\n\t\telif choice == '5':\n\t\t\tscreenLegitimatePatch(file)\n\t\telif choice == '6':\n\t\t\tscreenSBpatcher(file)\n\t\telif choice == '7':\n\t\t\tscreenWFpatcher(file)\n\t\telif choice == '8':\n\t\t\tAdvSFlashTools.screenAdvSFlashTools(file)\n\t\n\t\t\n\ndef renameToCanonnical(file):\n\tfpath = os.path.realpath(file)\n\tnew_name = SFlash.getCanonicalName(file)\n\tif new_name:\n\t\tnew_fpath = os.path.join(os.path.dirname(fpath), new_name + '.bin')\n\t\tif not os.path.exists(new_fpath):\n\t\t\tos.rename(fpath, new_fpath)\n\t\t\tfile = new_fpath\n\t\t\tUI.setStatus(STR_RENAMED%new_name)\n\t\t\treturn new_fpath\n\t\telse:\n\t\t\tUI.setStatus(STR_FILE_EXISTS)\n\treturn file\n"
  },
  {
    "path": "tools/SysconTools.py",
    "content": "#==============================================================\n# PS4 Syscon Tools\n# part of ps4 wee tools project\n#==============================================================\nimport os\nfrom lang._i18n_ import *\nimport utils.syscon as Syscon\nimport utils.utils as Utils\nimport tools.Tools as Tools\nimport tools.AdvSysconTools as AdvSCTools\n\ndef toggleDebug(file):\n\twith open(file, 'r+b') as f:\n\t\t\n\t\tcur = Syscon.getSysconData(f, 'DEBUG')[0]\n\t\tval = b'\\x04' if cur == 0x84 or cur == 0x85 else b'\\x85'\n\t\t\n\t\tSyscon.setSysconData(f, 'DEBUG',  val)\n\t\n\tUI.setStatus(STR_DEBUG+(STR_OFF if val == b'\\x04' else STR_ON))\n\n\n\ndef printSnvsEntries(base,entries,start=''):\n\t\n\tfor i,v in enumerate(entries):\n\t\tcolor = Clr.fg.d_grey\n\t\tif v[1] in Syscon.SC_TYPES_MODES:\n\t\t\tcolor = Clr.fg.green\n\t\telif v[1] in Syscon.SC_TYPES_BOOT:\n\t\t\tcolor = Clr.fg.pink\n\t\telif v[1] in Syscon.SC_TYPES_UPD:\n\t\t\tcolor = Clr.fg.cyan\n\t\telif v[1] in Syscon.SC_TYPES_PRE0:\n\t\t\tcolor = Clr.fg.orange\n\t\telif v[1] in Syscon.SC_TYPES_PRE2:\n\t\t\tcolor = Clr.fg.red\n\t\t\n\t\tnum = '%03d'%(start + i) if start != '' else ''\n\t\tprint(' {:5X} | '.format(base + (i * Syscon.NvsEntry.getEntrySize())) + color + Utils.hex(v)+Clr.reset + ' | '+num)\n\n\n\ndef screenViewSNVS(file, block = '', flat = False):\n\tUI.clearScreen()\n\tprint(TITLE+UI.getTab(STR_NVS_ENTRIES%'SNVS'))\n\t\n\twith open(file, 'rb') as f:\n\t\tSNVS = Syscon.NVStorage(Syscon.SNVS_CONFIG, Syscon.getSysconData(f, 'SNVS'))\n\t\n\tblocks_count = Syscon.SNVS_CONFIG.getDataCount()-1\n\tcount = Syscon.SNVS_CONFIG.getDataRecordsCount() if not flat else SNVS.cfg.getDataFlatLength() // Syscon.NvsEntry.getEntrySize()\n\tactive = SNVS.active_volume_entry.getLink()\n\tblock = active if block == '' else block\n\t\n\tif flat:\n\t\tentries = SNVS.getFlatDataEntries(block)\n\t\tbase = SNVS.getFlatDataOffset(block, True)\n\telse:\n\t\tentries = SNVS.getDataBlockEntries(block)\n\t\tbase = SNVS.getDataBlockOffset(block, True)\n\t\n\tprint((' Flat' if flat else '')+STR_SYSCON_BLOCK%(block, blocks_count, len(entries), count, active))\n\tprintSnvsEntries(base, entries, 1)\n\t\n\tUI.showStatus()\n\t\n\ttry:\n\t\tc = input(UI.DIVIDER+STR_SC_BLOCK_SELECT%blocks_count)\n\t\t\n\t\tif c == 'f':\n\t\t\tflat = False if flat else True\n\t\t\treturn screenViewSNVS(file, block, flat)\n\t\t\n\t\tnum = int(c)\n\t\tif num >= 0 and num <= blocks_count:\n\t\t\tblock = num\n\t\telse:\n\t\t\tUI.setStatus(STR_ERROR_CHOICE)\n\texcept:\n\t\treturn\n\t\n\tscreenViewSNVS(file, block)\n\n\n\ndef screenAutoPatchSNVS(file):\n\tUI.clearScreen()\n\tprint(TITLE+UI.getTab(STR_APATCH_SVNS))\n\t\n\twith open(file, 'rb') as f:\n\t\tdata = f.read()\n\t\tSNVS = Syscon.NVStorage(Syscon.SNVS_CONFIG, Syscon.getSysconData(f, 'SNVS'))\n\t\n\tentries = SNVS.getAllDataEntries()\n\tstatus = Syscon.isSysconPatchable(entries)\n\t\n\tupd_entry_size = len(Syscon.SC_TYPES_UPD)\n\tinds = Syscon.getEntriesByType(Syscon.SC_TYPES_UPD, entries)\n\tindex = inds[-1] if len(inds) >= 1 else -1\n\tprev_index = inds[-2] if len(inds) >= 2 else -1\n\t\n\tlast_fw = Syscon.getRecordPos(index, SNVS)\n\tprev_fw = Syscon.getRecordPos(prev_index, SNVS)\n\t\n\tinfo = {\n\t\t'General'\t\t\t: 'Active[%d] OWC[%d]'%(SNVS.active_volume_entry.getLink(), SNVS.getOWC()),\n\t\t'08-0B (prev)'\t\t: STR_NOT_FOUND if prev_index < 0 else STR_SNVS_ENTRY_INFO%(prev_fw['block'], prev_fw['num'], prev_fw['offset']),\n\t\t'08-0B (last)'\t\t: STR_NOT_FOUND if index < 0 else STR_SNVS_ENTRY_INFO%(last_fw['block'], last_fw['num'], last_fw['offset']),\n\t\t'Order of blocks'\t: SNVS.getDataBlocksOrder(),\n\t\t'Status'\t\t\t: MENU_SC_STATUSES[status],\n\t}\n\t\n\tUI.showTable(info, 20)\n\tprint()\n\t\n\tif index < 0 or prev_index < 0:\n\t\tprint(UI.warning(STR_UNPATCHABLE))\n\t\tinput(STR_BACK)\n\t\treturn\n\t\n\trecommend = ['D','A','C','B']\n\tprint(UI.warning(STR_RECOMMEND%recommend[status]))\n\tif status == 0:\n\t\tprint(UI.highlight(STR_SC_WARN_OVERWITTEN))\n\tprint()\n\t\n\toptions = MENU_PATCHES.copy()\n\toptions[1] = options[1]%(len(entries) - index)\n\toptions[2] = options[2]%(len(entries) - (prev_index + upd_entry_size))\n\toptions[3] = options[3]%(len(entries) - (index + upd_entry_size))\n\toptions[4] = UI.dark(options[4]%(0))\n\n\tUI.showMenu(options,1)\n\tUI.showStatus()\n\t\n\tout_file = Utils.getFilePathWoExt(file,True)\n\tchoice = input(STR_CHOICE)\n\t\n\ttry:\n\t\tc = int(choice)\n\texcept:\n\t\treturn\n\t\n\tofile = ''\n\tsnvs_data = False\n\t\n\tif c == 1:\n\t\tofile = out_file+'_patch_A.bin'\n\t\tsnvs_data = SNVS.getRebuilded([entries[i] for i in range(len(entries)) if i < index or i >= index+4])\n\telif c == 2:\n\t\tofile = out_file+'_patch_B.bin'\n\t\tsnvs_data = SNVS.getRebuilded(entries[:index])\n\telif c == 3:\n\t\tofile = out_file+'_patch_C.bin'\n\t\tsnvs_data = SNVS.getRebuilded(entries[:prev_index + upd_entry_size])\n\telif c == 4:\n\t\tofile = out_file+'_patch_D.bin'\n\t\tsnvs_data = SNVS.getRebuilded(entries[:index + upd_entry_size])\n\t\t\n\tif ofile and snvs_data:\n\t\tUtils.savePatchData(ofile, data, [{'o':Syscon.SC_AREAS['SNVS']['o'], 'd':snvs_data}])\n\t\tUI.setStatus(STR_SAVED_TO%ofile)\n\telse:\n\t\tUI.setStatus(STR_ERROR_CHOICE)\n\t\n\tif c == 5:\n\t\tUI.setStatus(STR_NIY)\n\t\n\tscreenAutoPatchSNVS(file)\n\n\n\ndef screenManualPatchSNVS(file, flat = False):\n\tUI.clearScreen()\n\tprint(TITLE+UI.getTab(STR_ABOUT_MPATCH))\n\t\n\tprint(STR_INFO_SC_MPATCH + '\\n\\n' + UI.warning(STR_IMMEDIATLY))\n\t\n\tprint(UI.getTab(STR_MPATCH_SVNS))\n\t\n\twith open(file, 'r+b') as f:\n\t\tSNVS = Syscon.NVStorage(Syscon.SNVS_CONFIG, Syscon.getSysconData(f, 'SNVS'))\n\t\tentries = SNVS.getLastFlatEntries() if flat else SNVS.getLastDataEntries()\n\t\t\n\t\tblock = SNVS.active_volume_entry.getLink()\n\t\trecords_count = 16 if len(entries) > 16 else len(entries)\n\t\trecords = entries[-records_count:]\n\t\t\n\t\toffset = SNVS.getLastFlatDataOffset(True) if flat else SNVS.getLastDataBlockOffset(True)\n\t\tlast_offset = offset + Syscon.NvsEntry.getEntrySize() * len(entries)\n\t\t\n\t\tprint((' FlatData:' if flat else ' Entries:')+STR_LAST_SC_ENTRIES%(records_count, len(entries), block))\n\t\tprint()\n\t\t\n\t\tprintSnvsEntries(last_offset - Syscon.NvsEntry.getEntrySize() * records_count, records, len(entries)+ 1 - records_count)\n\t\t\n\t\tUI.showStatus()\n\t\t\n\t\tprint(UI.DIVIDER)\n\t\tprint(' f:'+STR_SC_TOGGLE_FLATDATA)\n\t\tprint(' 0:'+STR_GO_BACK)\n\t\t\n\t\tc = input(STR_MPATCH_INPUT)\n\t\tif c.lower() == 'f':\n\t\t\tflat = False if flat else True\n\t\ttry:\n\t\t\tnum = int(c)\n\t\texcept:\n\t\t\treturn screenManualPatchSNVS(file, flat)\n\t\t\n\t\tif num == 0:\n\t\t\tUI.setStatus(STR_PATCH_CANCELED)\n\t\t\treturn\n\t\t\n\t\tif num > 0 and (num < len(entries) or (flat and num == len(entries))):\n\t\t\tlength = num * Syscon.NvsEntry.getEntrySize()\n\t\t\tUtils.setData(f, last_offset - length, b'\\xFF'*length)\n\t\t\tUI.setStatus(STR_PATCH_SUCCESS%num+' [{:X} - {:X}]'.format(last_offset - length, last_offset))\n\t\telif num == len(entries):\n\t\t\tif SNVS.getOWC() == 0:\n\t\t\t\tUtils.setData(f, SNVS.getLastVolumeEntryOffset(True), b'\\xFF'*Syscon.NvsEntry.getEntryHeadSize())\n\t\t\t\tUtils.setData(f, SNVS.getLastDataBlockOffset(True) - SNVS.cfg.getDataFlatLength(), b'\\xFF'*SNVS.cfg.getDataLength())\n\t\t\t\tUI.setStatus(STR_SC_BLOCK_CLEANED%block)\n\t\t\telse:\n\t\t\t\tUI.setStatus(STR_OWC_RESET_REQUIRED)\n\t\telif num > len(entries):\n\t\t\tUI.setStatus(STR_TOO_MUCH%(num,len(entries)))\n\t\n\tscreenManualPatchSNVS(file, flat)\n\n\n\ndef screenSysconTools(file):\n\t\n\tMENU_SC_ACTIONS[4-1] = UI.dark(MENU_SC_ACTIONS[4-1])\n\t\n\twhile True:\n\t\n\t\tUI.clearScreen()\n\t\tprint(TITLE+UI.getTab(STR_SYSCON_INFO))\n\t\t\n\t\tinfo = getSysconInfo(file)\n\t\tif not info:\n\t\t\treturn Tools.screenFileSelect(file)\n\t\t\n\t\tUI.showTable(info)\n\t\t\n\t\tprint(UI.getTab(STR_ACTIONS))\n\t\tUI.showMenu(MENU_SC_ACTIONS,1)\n\t\tprint(UI.DIVIDER)\n\t\tUI.showMenu(MENU_EXTRA)\n\t\t\n\t\tUI.showStatus()\n\t\t\n\t\tchoice = input(STR_CHOICE)\n\t\t\n\t\tif choice == 's':\n\t\t\tTools.screenFileSelect(file)\n\t\t\tbreak\n\t\telif choice == 'f':\n\t\t\tTools.screenSysconFlasher(file)\n\t\t\tbreak\n\t\telif choice == 'r':\n\t\t\tfile = renameToCanonnical(file)\n\t\t\tcontinue\n\t\telif choice == 'q':\n\t\t\tbreak\n\n\t\tif choice == '1':\n\t\t\ttoggleDebug(file)\n\t\telif choice == '2':\n\t\t\tscreenAutoPatchSNVS(file)\n\t\telif choice == '3':\n\t\t\tscreenViewSNVS(file)\n\t\telif choice == '4':\n\t\t\tUI.setStatus(STR_NIY)\n\t\telif choice == '5':\n\t\t\tscreenManualPatchSNVS(file)\n\t\telif choice == '6':\n\t\t\tAdvSCTools.screenAdvSysconTools(file)\n\t\telse:\n\t\t\tUI.setStatus(STR_ERROR_CHOICE)\n\n# Functions\n\ndef getSysconInfo(file):\n\tif not Utils.checkFileSize(file, Syscon.DUMP_SIZE):\n\t\treturn False\n\t\n\twith open(file, 'rb') as f:\n\t\tmagic = Syscon.checkSysconData(f, ['MAGIC_1','MAGIC_2','MAGIC_3'])\n\t\tdebug = Syscon.getSysconData(f, 'DEBUG')[0]\n\t\tdebug = STR_ON if debug == 0x84 or debug == 0x85 else STR_OFF\n\t\tver = Syscon.getSysconData(f, 'VERSION')\n\t\tSNVS = Syscon.NVStorage(Syscon.SNVS_CONFIG, Syscon.getSysconData(f, 'SNVS'))\n\t\trecords = SNVS.getAllDataEntries()\n\t\tfw_info = Syscon.checkSysconFW(f)\n\t\tsnvs_info = 'Vol[%d] Data[%d] Counter[0x%X] OWC[%d]'%(\n\t\t\tSNVS.active_volume,\n\t\t\tSNVS.active_volume_entry.getLink(),\n\t\t\tSNVS.active_volume_entry.getCounter(),\n\t\t\tSNVS.getOWC(),\n\t\t)\n\t\t\n\t\tinfo = {\n\t\t\t'FILE'\t\t\t: os.path.basename(file),\n\t\t\t'MD5'\t\t\t: Utils.getFileMD5(file),\n\t\t\t'Magic'\t\t\t: STR_OK if magic else STR_FAIL,\n\t\t\t'Debug'\t\t\t: debug,\n\t\t\t'FW'\t\t\t: 'v%X.%02X'%(ver[0],ver[2]),\n\t\t\t'FW MD5'\t\t: '%s - %s'%(fw_info['md5'], (STR_OK+' ['+fw_info['fw']+']') if fw_info['fw'] else STR_FAIL),\n\t\t\t'SNVS'\t\t\t: snvs_info,\n\t\t\t'Entries'\t\t: STR_SNVS_ENTRIES%(len(SNVS.getLastDataEntries()), SNVS.getLastDataBlockOffset(True)),\n\t\t\t'Status'\t\t: MENU_SC_STATUSES[Syscon.isSysconPatchable(records)],\n\t\t}\n\t\n\treturn info\n\n\n\ndef renameToCanonnical(file):\n\tfpath = os.path.realpath(file)\n\tnew_name = Syscon.getCanonicalName(file)\n\tif new_name:\n\t\tnew_fpath = os.path.join(os.path.dirname(fpath), new_name + '.bin')\n\t\tif not os.path.exists(new_fpath):\n\t\t\tos.rename(fpath, new_fpath)\n\t\t\tfile = new_fpath\n\t\t\tUI.setStatus(STR_RENAMED%new_name)\n\t\t\treturn new_fpath\n\t\telse:\n\t\t\tUI.setStatus(STR_FILE_EXISTS)\n\treturn file"
  },
  {
    "path": "tools/Tools.py",
    "content": "#==============================================================\n# Common Tools\n# part of ps4 wee tools project\n#==============================================================\nimport os, sys, time, datetime\nfrom lang._i18n_ import *\nfrom utils.serial import WeeSerial\nfrom utils.spiway import SpiFlasher\nfrom utils.scflasher import SysconFlasher, sysconReader\nimport utils.utils as Utils\nimport utils.slb2 as Slb2\nimport utils.sflash as SFlash\nimport utils.syscon as Syscon\nimport tools.SFlashTools as SFlashTools\nimport tools.SysconTools as SysconTools\nimport tools.AdvSFlashTools as AdvSFlashTools\n\n# Screens\n\ndef screenMainMenu():\n\t\n\tMENU_TOOL_SELECTION[6-1] = UI.dark(MENU_TOOL_SELECTION[6-1])\n\t\n\twhile True:\n\t\n\t\tUI.clearScreen()\n\t\tprint(TITLE + UI.getTab(STR_MAIN_MENU))\n\t\t\n\t\tUI.showMenu(MENU_TOOL_SELECTION,1)\n\t\t\n\t\tUI.showStatus()\n\t\t\n\t\tchoice = input(STR_CHOICE)\n\t\t\n\t\tif choice == '1':\n\t\t\tscreenFileSelect()\n\t\telif choice == '2':\n\t\t\tscreenSerialMonitor()\n\t\telif choice == '3':\n\t\t\tscreenNorFlasher()\n\t\telif choice == '4':\n\t\t\tscreenSysconFlasher()\n\t\telif choice == '5':\n\t\t\tscreenSysconReader()\n\t\telif choice == '6':\n\t\t\tUI.setStatus(STR_NIY)\n\t\telif choice == '7':\n\t\t\tscreenSelectLanguage()\t\n\t\telif choice == '8':\n\t\t\tsys.exit()\n\t\telse:\n\t\t\tUI.setStatus(STR_ERROR_CHOICE)\n\t\t\n\n\ndef screenSelectLanguage():\n\n\twhile True:\n\t\tUI.clearScreen()\n\t\tprint(TITLE+UI.getTab(STR_LANGUAGE))\n\t\t\n\t\tlang_codes = []\n\t\tfor i, key in enumerate(LANG_LIST):\n\t\t\tlang_codes.append(key)\n\t\t\tprint(f' {i+1}: {LANG_LIST[key]} [{key}]')\n\t\t\n\t\tUI.showStatus()\n\t\t\n\t\tchoice = input(STR_CHOICE).lower()\n\t\t\n\t\ttry: num = int(choice)\n\t\texcept: num = -1\n\t\t\n\t\tif num > 0 and num <= len(LANG_LIST):\n\t\t\tcode = lang_codes[num-1]\n\t\t\tAPP_CONFIG.set('lang', code)\n\t\t\tAPP_CONFIG.save()\n\t\t\tUI.setStatus(STR_RESTART_APP)\n\t\t\tbreak\n\t\telse:\n\t\t\tUI.setStatus(STR_ERROR_CHOICE)\n\t\n\treturn code\n\n\n\ndef screenNorFlasher(path = '', port = '', act = '', mode = False):\n\t\n\tport = port if port else screenChoosePort()\n\tif not port:\n\t\tUI.setStatus(STR_NO_PORTS)\n\t\treturn\n\t\n\tflasher = SpiFlasher(port)\n\tflasher.reset()\n\t\n\tUI.clearScreen()\n\tprint(TITLE+UI.getTab(STR_ABOUT_SPIWAY))\n\tprint(UI.warning(STR_INFO_SPIWAY))\n\tprint(UI.getTab(STR_SPIWAY))\n\t\n\tif flasher.err or flasher.sp.is_open == False:\n\t\tprint(UI.warning(STR_PORT_UNAVAILABLE))\n\t\tprint(UI.warning(flasher.err))\n\t\tflasher.close()\n\t\tinput(STR_BACK)\n\t\treturn\n\t\n\tping = flasher.ping()\n\tver_maj, ver_min = ping['VER']\n\tUI.showTable({\n\t\t'Version'\t: '%d.%02d'%(ver_maj, ver_min),\n\t\t'Memory'\t: '%d bytes'%ping['RAM'],\n\t})\n\tprint()\n\t\n\tif ping['VER'] != flasher.VERSION:\n\t\tflasher.close()\n\t\tinput(STR_BACK)\n\t\treturn\n\t\n\tinfo = flasher.getChipInfo()\n\t\n\tif flasher.Config.IC_ID == 0:\n\t\tUI.showTable({\n\t\t\t'Device ID'\t: '0x%02X'%flasher.Config.VENDOR_ID,\n\t\t\t'Vendor ID'\t: '0x%04X'%flasher.Config.DEVICE_ID,\n\t\t})\n\t\tinput(STR_BACK)\n\t\treturn\n\t\n\tprint(UI.highlight(STR_CHIP_CONFIG)+':\\n')\n\tUI.showTable(info)\n\tprint()\n\t\n\t# Show current file info\n\tif act != 'read' and path and os.path.isfile(path):\n\t\tprint(UI.highlight(STR_FILE_INFO)+':\\n')\n\t\tUI.showTable({\n\t\t\t'File'\t: os.path.basename(path),\n\t\t\t'MD5'\t: Utils.getFileMD5(path),\n\t\t\t'Size'\t: '%d MB'%(os.stat(path).st_size // (1024**2)),\n\t\t})\n\t\tprint(end=('\\n' if act else ''))\n\t\n\t# Perform action\n\t\n\tcfg = flasher.Config\n\t\n\tif act:\n\t\tprint(' '+UI.highlight(MENU_SPW_ACTS[act] if act in MENU_SPW_ACTS else STR_UNKNOWN)+'\\n')\n\t\tblock, count = chooseBNC(mode, cfg.BLOCK_SIZE)\n\t\n\tif act == 'read':\n\t\tsfx = '_full' if block == 0 and count == 0 else '_b%d-%d'%(block,block+count)\n\t\tpath = os.path.join(os.getcwd(), 'dump_' + datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S') + sfx + '.bin')\n\t\tdata = flasher.readChip(block, count)\n\t\tprint()\n\t\tif data:\n\t\t\twith open(path, \"wb\") as file:\n\t\t\t\tfile.seek(cfg.TOTAL_SIZE - 1)\n\t\t\t\tfile.write(b'\\x00')\n\t\t\t\tfile.seek(cfg.BLOCK_SIZE * block)\n\t\t\t\tfile.write(data)\n\t\telse:\n\t\t\tpath = ''\n\t\n\telif act == 'write':\n\t\tif path and os.path.isfile(path):\n\t\t\twith open(path,\"rb\") as file:\n\t\t\t\tfile.seek(cfg.BLOCK_SIZE * block)\n\t\t\t\tdata = file.read(cfg.BLOCK_SIZE * (count if count > 0 else cfg.BLOCK_COUNT))\n\t\t\t\tflasher.writeChip(data, False, block, count)\n\t\t\t\tprint()\n\t\telse:\n\t\t\tUI.setStatus(STR_FILE_NOT_EXISTS%path)\n\t\n\telif act == 'verify':\n\t\tif path and os.path.isfile(path):\n\t\t\twith open(path,\"rb\") as file:\n\t\t\t\tfile.seek(cfg.BLOCK_SIZE * block)\n\t\t\t\tdata = file.read(cfg.BLOCK_SIZE * (count if count else cfg.BLOCK_COUNT))\n\t\t\t\tvdata = flasher.readChip(block, count)\n\t\t\t\tprint('\\n'+STR_VERIFY+': '+(STR_OK if data == vdata else STR_FAIL)+'\\n')\n\t\telse:\n\t\t\tUI.setStatus(STR_FILE_NOT_EXISTS%path)\n\t\n\telif act == 'erase':\n\t\tflasher.eraseChip(block, count)\n\t\tprint()\n\t\n\tif act:\n\t\tprint(STR_DONE)\n\t\n\tflasher.close()\n\t\n\t# Show file info after read action\n\tif act == 'read' and path and os.path.isfile(path):\n\t\tprint('\\n'+UI.highlight(STR_FILE_INFO)+':\\n')\n\t\tUI.showTable({\n\t\t\t'File'\t: os.path.basename(path),\n\t\t\t'MD5'\t: Utils.getFileMD5(path),\n\t\t\t'Size'\t: '%d MB'%(os.stat(path).st_size // 1024**2),\n\t\t})\n\t\n\t# Action done\n\t\n\tprint(UI.getTab(STR_ACTIONS))\n\tUI.showTableEx(UI.getMenu(MENU_FLASHER,1), 4, 17)\n\tprint(UI.DIVIDER)\n\tUI.showMenu(MENU_EXTRA_FLASHER)\n\t\n\tUI.showStatus()\n\t\n\tact = ''\n\tmode = False\n\t\n\tchoice = input(STR_CHOICE)\n\t\n\tif choice == '0':\n\t\treturn\n\telif choice in ['1','2','3']:\n\t\tact = 'read'\n\t\tmode = int(choice) - 1\n\telif choice in ['4','5','6']:\n\t\tact = 'write'\n\t\tmode = int(choice) - 4\n\telif choice in ['7','8','9']:\n\t\tact = 'verify'\n\t\tmode = int(choice) - 7\n\telif choice in ['10','11','12']:\n\t\tact = 'erase'\n\t\tmode = int(choice) - 10\n\t\t\n\telif choice == 's':\n\t\tpath = screenFileSelect(path, False, True)\n\telif choice == 'f':\n\t\tif path and os.path.isfile(path):\n\t\t\treturn SFlashTools.screenSFlashTools(path)\n\t\telse:\n\t\t\tUI.setStatus(STR_FILE_NOT_EXISTS%path)\n\telif choice == 'q':\n\t\treturn screenMainMenu()\n\t\t\n\tscreenNorFlasher(path, port, act, mode)\n\n\n\ndef screenSysconFlasher(path = '', port = '', act = '', mode = False):\n\tport = port if port else screenChoosePort()\n\tif not port:\n\t\tUI.setStatus(STR_NO_PORTS)\n\t\treturn\n\t\n\tflasher = SysconFlasher(port)\n\t#flasher.reset()\n\t\n\tUI.clearScreen()\n\tprint(TITLE+UI.getTab(STR_ABOUT_SCF))\n\tprint(UI.warning(STR_INFO_SCF))\n\tprint(UI.getTab(STR_SCF))\n\t\n\tif flasher.err or flasher.sp.is_open == False:\n\t\tprint(UI.warning(STR_PORT_UNAVAILABLE))\n\t\tprint(UI.warning(flasher.err))\n\t\tflasher.disconnect()\n\t\t# Beep.error() # Pro\n\t\tinput(STR_BACK)\n\t\treturn\n\t\n\tinfo = flasher.connect()\n\tver_maj, ver_min = info['VER']\n\tram = info['RAM']\n\tdebug = info['DEBUG'] if 'DEBUG' in info else None\n\n\thw_scf_ver = '%d.%02d'%(ver_maj, ver_min)\n\tsw_scf_ver = '%d.%02d'%(flasher.VERSION[0], flasher.VERSION[1])\n\t\n\tUI.showTable({\n\t\t'Version'\t\t: hw_scf_ver if hw_scf_ver == sw_scf_ver else f'{hw_scf_ver} [sw={sw_scf_ver}]' ,\n\t\t'Memory'\t\t: '%d bytes'%ram,\n\t\t'Debug Mode'\t: STR_ON if debug else STR_OFF,\n\t})\n\tprint()\n\t\n\tif info['VER'] != flasher.VERSION or info['DEBUG'] != True:\n\t\tflasher.close()\n\t\tinput(STR_BACK)\n\t\treturn\n\t\n\tinfo = flasher.getChipInfo()\n\t\n\tprint(UI.highlight(STR_CHIP_CONFIG)+':\\n')\n\tUI.showTable(info)\n\tprint()\n\t\n\t# Show current file info\n\tif act != 'read' and path and os.path.isfile(path):\n\t\tprint(UI.highlight(STR_FILE_INFO)+':\\n')\n\t\tUI.showTable({\n\t\t\t'File'\t: os.path.basename(path),\n\t\t\t'MD5'\t: Utils.getFileMD5(path),\n\t\t\t'Size'\t: '%d KB'%(os.stat(path).st_size // 1024),\n\t\t})\n\t\tprint(end=('\\n' if act else ''))\n\t\n\t# Perform action\n\t\n\tcfg = flasher.Config\n\t\n\tif act:\n\t\tprint(' '+UI.highlight(MENU_SPW_ACTS[act] if act in MENU_SPW_ACTS else STR_UNKNOWN)+'\\n')\n\t\tblock, count = chooseBNC(mode, cfg.BLOCK_SIZE, True)\n\t\n\tif act == 'read':\n\t\tsfx = '_full' if block == 0 and count == 0 else '_b%d-%d'%(block,block+count)\n\t\tpath = os.path.join(os.getcwd(), 'syscon_' + datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S') + sfx + '.bin')\n\t\tdata = flasher.readChip(block, count)\n\t\tprint()\n\t\tif data:\n\t\t\twith open(path, \"wb\") as file:\n\t\t\t\tfile.seek(cfg.TOTAL_SIZE - 1)\n\t\t\t\tfile.write(b'\\x00')\n\t\t\t\tfile.seek(cfg.BLOCK_SIZE * block)\n\t\t\t\tfile.write(data)\n\t\telse:\n\t\t\tpath = ''\n\t\n\telif act == 'write':\n\t\tif path and os.path.isfile(path):\n\t\t\twith open(path,\"rb\") as file:\n\t\t\t\tfile.seek(cfg.BLOCK_SIZE * block)\n\t\t\t\tdata = file.read(cfg.BLOCK_SIZE * (count if count > 0 else cfg.BLOCK_COUNT))\n\t\t\t\tflasher.writeChip(data, block, count)\n\t\t\t\tprint()\n\t\telse:\n\t\t\tUI.setStatus(STR_FILE_NOT_EXISTS%path)\n\t\n\telif act == 'verify':\n\t\tif path and os.path.isfile(path):\n\t\t\twith open(path,\"rb\") as file:\n\t\t\t\tfile.seek(cfg.BLOCK_SIZE * block)\n\t\t\t\tdata = file.read(cfg.BLOCK_SIZE * (count if count else cfg.BLOCK_COUNT))\n\t\t\t\tvdata = flasher.readChip(block, count)\n\t\t\t\tprint('\\n'+STR_VERIFY+': '+(STR_OK if data == vdata else STR_FAIL)+'\\n')\n\t\telse:\n\t\t\tUI.setStatus(STR_FILE_NOT_EXISTS%path)\n\t\n\telif act == 'erase':\n\t\t#safe erase all\n\t\tif mode == 0:\n\t\t\tblock = 4\n\t\t\tprint(STR_SCF_SAFE_ERASE%(block))\n\t\tflasher.eraseChip(block, count)\n\t\tprint()\n\t\n\tif act:\n\t\tprint(STR_DONE)\n\t\n\tflasher.close()\n\t\n\t# Show file info after read action\n\tif act == 'read' and path and os.path.isfile(path):\n\t\tprint('\\n'+UI.highlight(STR_FILE_INFO)+':\\n')\n\t\tUI.showTable({\n\t\t\t'File'\t: os.path.basename(path),\n\t\t\t'MD5'\t: Utils.getFileMD5(path),\n\t\t\t'Size'\t: '%d KB'%(os.stat(path).st_size // 1024),\n\t\t})\n\t\n\t# Action done\n\t\n\tprint(UI.getTab(STR_ACTIONS))\n\tUI.showTableEx(UI.getMenu(MENU_FLASHER,1), 4, 17)\n\tprint(UI.DIVIDER)\n\tUI.showMenu(MENU_EXTRA_FLASHER)\n\t\n\tUI.showStatus()\n\t\n\tact = ''\n\tmode = False\n\t\n\tchoice = input(STR_CHOICE)\n\t\n\tif choice == '0':\n\t\treturn\n\telif choice in ['1','2','3']:\n\t\tact = 'read'\n\t\tmode = int(choice) - 1\n\telif choice in ['4','5','6']:\n\t\tact = 'write'\n\t\tmode = int(choice) - 4\n\telif choice in ['7','8','9']:\n\t\tact = 'verify'\n\t\tmode = int(choice) - 7\n\telif choice in ['10','11','12']:\n\t\tact = 'erase'\n\t\tmode = int(choice) - 10\n\telif choice == 's':\n\t\tpath = screenFileSelect(path, False, True)\n\telif choice == 'f':\n\t\tif path and os.path.isfile(path):\n\t\t\treturn SysconTools.screenSysconTools(path)\n\t\telse:\n\t\t\tUI.setStatus(STR_FILE_NOT_EXISTS%path)\n\telif choice == 'q':\n\t\treturn screenMainMenu()\n\t\n\tscreenSysconFlasher(path, port, act, mode)\n\n\n\ndef screenSysconReader(port = '', file = ''):\n\t\n\tport = port if port else screenChoosePort()\n\tif not port:\n\t\tUI.setStatus(STR_NO_PORTS)\n\t\treturn\n\t\n\tUI.clearScreen()\n\tprint(TITLE+UI.getTab(STR_ABOUT_SC_GLITCH))\n\tprint(UI.warning(STR_INFO_SC_GLITCH))\n\tprint(UI.getTab(STR_SC_READER))\n\t\n\ttry:\n\t\tserial = WeeSerial(port, {'baudrate':115200, 'timeout':3})\n\t\tprint(' '+UI.green(serial.getPortInfo())+'\\n')\n\t\t\n\t\tCOUNT = int(input(STR_HOW_MUCH_DUMPS))\n\t\tCOUNT = COUNT if COUNT <= 10 else 10\n\texcept:\n\t\tCOUNT = 2\n\t\n\tif not serial.sp or not serial.sp.is_open:\n\t\tprint(UI.error(STR_PORT_UNAVAILABLE))\n\t\tinput(STR_BACK)\n\t\treturn\n\t\n\tfile = file if os.path.isfile(file) else os.path.join(os.getcwd(), 'syscon')\n\tp_md5 = False\n\tequal = True\n\t\n\tprint()\n\t\n\tfor n in range(COUNT):\n\t\tprint(UI.warning(STR_READING_DUMP_N%(n+1)))\n\t\tofile = file + '{:02}.bin'.format(n+1)\n\t\t\n\t\tsec = sysconReader(serial.sp, ofile)\n\t\t\n\t\tmd5 = Utils.getFileMD5(ofile)\n\t\tif p_md5 != False and p_md5 != md5:\n\t\t\tequal = False\n\t\tp_md5 = md5\n\t\t\n\t\tUI.showTable({\n\t\t\t'Elapsed time'\t: STR_SECONDS%sec,\n\t\t\t'File MD5'\t\t: md5\n\t\t})\n\t\t\n\t\tprint('\\n'+UI.highlight(STR_SAVED_TO%ofile))\n\t\tprint(UI.DIVIDER)\n\t\n\tif equal:\n\t\tprint(UI.green(STR_FILES_MATCH))\n\t\tc = input(UI.highlight(STR_OPEN_IN_SC_TOOL+STR_Y_OR_CANCEL)).lower()\n\t\tif c == 'y':\n\t\t\tSysconTools.screenSysconTools(ofile)\n\t\telse:\n\t\t\tUI.clearInput()\n\telse:\n\t\tprint(UI.error(STR_FILES_MISMATCH))\n\t\n\tprint(STR_DONE)\n\tinput(STR_BACK)\n\n\n\ndef screenSerialMonitor(port = '', emc_mode = False):\n\t\n\tport = port if port else screenChoosePort()\n\tif not port:\n\t\tUI.setStatus(STR_NO_PORTS)\n\t\treturn\n\t\n\tserial = WeeSerial(port)\n\t\n\tUI.clearScreen()\n\tprint(TITLE + UI.getTab(serial.getPortInfo()))\n\tUI.showTableEx(UI.getMenu(MENU_SERIAL_MONITOR), 2)\n\t\n\tprint(UI.getTab(STR_SERIAL_MONITOR))\n\t\n\tif serial.err or serial.sp.is_open == False:\n\t\tprint(UI.warning(STR_PORT_UNAVAILABLE))\n\t\tprint(UI.warning(serial.err))\n\t\tinput(STR_BACK)\n\t\treturn\n\t\n\tserial.startMonitor()\n\t#serial.testPatterns('../uart.txt')\n\twhile serial.sp.is_open and serial.alive:\n\t\ttxt = input()\n\t\tif not len(txt):\n\t\t\tcontinue\n\t\telif Utils.checkCtrl(txt[0],'L'):\n\t\t\tUI.clearInput()\n\t\t\tserial.LOG = False if serial.LOG else datetime.datetime.now().strftime('uart_%Y-%m-%d_%H-%M-%S.txt')\n\t\t\tprint('\\n ' + UI.highlight('UART log: {}'.format(serial.LOG if serial.LOG else STR_OFF)) + '\\n')\n\t\t\tcontinue\n\t\telif Utils.checkCtrl(txt[0],'R'):\n\t\t\tserial.sp.close()\n\t\t\tUI.clearScreen()\n\t\t\ttime.sleep(0.1) # port open/close need some delay\n\t\t\treturn screenSerialMonitor(port)\n\t\telif Utils.checkCtrl(txt[0],'Q'):\n\t\t\tserial.sp.close()\n\t\t\tUI.clearInput()\n\t\t\tprint('\\n ' + UI.highlight(STR_STOP_MONITORING) + '\\n')\n\t\t\tbreak\n\t\telif Utils.checkCtrl(txt[0],'E'):\n\t\t\tUI.clearInput(2)\n\t\t\temc_mode = False if emc_mode else True\n\t\t\tprint('\\n ' + UI.highlight(STR_EMC_CMD_MODE%(STR_ON if emc_mode else STR_OFF)) + '\\n')\n\t\t\tcontinue\n\t\telif Utils.checkCtrl(txt[0],'B'):\n\t\t\tUI.clearInput()\n\t\t\tserial.SHOWCODES = False if serial.SHOWCODES else True\n\t\t\tprint('\\n ' + UI.highlight(STR_SHOW_BYTECODES%(STR_ON if serial.SHOWCODES else STR_OFF)) + '\\n')\n\t\t\tcontinue\n\t\telif emc_mode:\n\t\t\ttxt = Utils.getEmcCmd(txt)\n\t\t\tUI.clearInput()\n\t\t\tprint(txt)\n\t\t\t\n\t\tserial.sendText(txt)\n\tif serial.err:\n\t\tprint(' '+UI.error(serial.err))\n\tinput(STR_BACK)\n\n\n\ndef screenChoosePort():\n\tUI.clearScreen()\n\tprint(TITLE + UI.getTab(STR_WARNING))\n\tprint(UI.warning(STR_INFO_FLASH_TOOLS))\n\t\n\tprint(UI.getTab(STR_PORTS_LIST))\n\t\n\tports = WeeSerial.getPortList()\n\t\n\tfor i in range(len(ports)):\n\t\tport = ports[i]\n\t\tprint(' % 2s: %s - %s'%(i+1, port['port'].ljust(6), port['desc']))\n    \n\tif not len(ports):\n\t\tprint(UI.warning(STR_NO_PORTS))\n\t\tinput(STR_BACK)\n\t\treturn ''\n    \n\tUI.showStatus()\n\t\n\ttry:\n\t\tc = input(STR_CHOICE)\n\t\t\n\t\tif c == '':\n\t\t\treturn\n\t\t\n\t\tc = int(c)\n\t\t\n\t\tif c > 0 and c <= len(ports):\n\t\t\treturn ports[c-1]['port']\n\t\telse:\n\t\t\tUI.setStatus(STR_ERROR_INPUT)\n\texcept:\n\t\tUI.setStatus(STR_ERROR_INPUT)\n\t\n\treturn screenChoosePort()\n\n\n\ndef screenFileSelect(path = False, all = False, ret = False):\n\tUI.clearScreen()\n\tprint(TITLE + UI.getTab(STR_FILE_LIST+' '+('[all]' if all else '[bin, pup]')))\n\t\n\tpath = path if path and os.path.exists(path) else os.getcwd()\n\tpath = path if os.path.isdir(path) else os.path.dirname(path)\n\t\n\tprint(Clr.fg.l_grey+(' %s\\n'%path)+Clr.reset)\n\t\n\tlist = [os.path.dirname(path)]\n\tprint('  0: '+os.sep+'..')\n\t\n\tdirs = [x for x in os.listdir(path) if os.path.isdir(os.path.join(path, x))]\n\tfiles = [x for x in os.listdir(path) if not os.path.isdir(os.path.join(path, x))]\n\t\n\tdirs.sort()\n\tfiles.sort()\n\t\n\tfor d in dirs:\n\t\tlist.append(os.path.join(path, d))\n\t\tprint((' %2d: '+os.sep+'%s'+os.sep)%(len(list)-1,d))\n\t\n\tfor f in files:\n\t\tif all or f.lower().endswith('.bin') or f.lower().endswith('.pup'):\n\t\t\tlist.append(os.path.join(path, f))\n\t\t\tprint(' %2d: %s'%(len(list)-1,f))\n\t\n\tprint(UI.DIVIDER)\n\tUI.showMenu(MENU_FILE_SELECTION)\n\tUI.showStatus()\n\t\n\tchoice = input(STR_CHOICE)\n\t\n\tif choice == 'a':\n\t\tall = False if all else True\n\telif choice == 'f':\n\t\tAdvSFlashTools.screenBuildNorDump(path)\n\telif choice == 'b':\n\t\tscreenBuild2BLS(path)\n\telif choice == 'c':\n\t\tfile_list = [os.path.join(path, x) for x in files] # Force bin only: if x.lower().endswith('.bin')\n\t\tscreenCompareFiles(file_list)\n\telif choice == 'r':\n\t\tfor file in files:\n\t\t\tfpath = os.path.join(path, file)\n\t\t\tf_size = os.stat(fpath).st_size\n\t\t\tnew_name = ''\n\t\t\tif f_size == SFlash.DUMP_SIZE:\n\t\t\t\twith open(fpath, 'rb') as f:\n\t\t\t\t\tsku = SFlash.getNorData(f, 'SKU', True)[:9].replace('-','')\n\t\t\t\t\tsn = SFlash.getNorData(f, 'SN', True)\n\t\t\t\t\tsb = SFlash.getSouthBridge(f)['ic'][-2:]\n\t\t\t\t\tmobo = SFlash.getMobo(SFlash.getNorData(f, 'BOARD_ID'))['name']\n\t\t\t\t\tslot = 'a' if SFlash.getNorData(f, 'ACT_SLOT') == b'\\x00' else 'b'\n\t\t\t\t\tfw = SFlash.getNorFW(f, slot)\n\t\t\t\tnew_name = '_'.join([sku, sn if sn else '0'*10, sb, mobo, fw['c'], slot, '-'.join(fw['b'])]).upper()\n\t\t\telif f_size == Syscon.DUMP_SIZE:\n\t\t\t\twith open(fpath, 'rb') as f:\n\t\t\t\t\tfw = Syscon.getSysconData(f, 'VERSION')\n\t\t\t\t\tSNVS = Syscon.NVStorage(Syscon.SNVS_CONFIG, Syscon.getSysconData(f, 'SNVS'))\n\t\t\t\t\trecords = SNVS.getAllDataEntries()\n\t\t\t\t\torder = ''.join(str(x) for x in SNVS.getDataBlocksOrder())\n\t\t\t\t\tstatus = MENU_SC_STATUSES[Syscon.isSysconPatchable(records)].replace(' ','_').lower()\n\t\t\t\tnew_name = '_'.join(['syscon', '%X.%02X'%(fw[0],fw[2]), '%d'%len(records), '['+order+']', status])\n\t\t\t\n\t\t\tif new_name:\n\t\t\t\tnew_fpath = os.path.join(path, new_name + '.bin')\n\t\t\t\t#i = 1; while os.path.exists(new_fpath): new_fpath = os.path.join(path, new_name + '_%d.bin'%i)\n\t\t\t\tif not os.path.exists(new_fpath):\n\t\t\t\t\tos.rename(fpath, new_fpath)\n\t\n\telif choice == 'q':\n\t\treturn screenMainMenu()\n\telif choice != '':\n\t\ttry:\n\t\t\tind = int(choice)\n\t\t\tif ind >= 0 and ind < len(list):\n\t\t\t\tpath = list[ind]\n\t\t\t\tif not os.path.isdir(path):\n\t\t\t\t\tif ret:\n\t\t\t\t\t\treturn path\n\t\t\t\t\telse:\n\t\t\t\t\t\tlaunchTool(path)\n\t\t\telse:\n\t\t\t\tUI.setStatus(STR_ERROR_CHOICE)\n\t\texcept Exception as error:\n\t\t\tUI.setStatus(' %s'%error)\n\t\n\tscreenFileSelect(path, all)\n\n\n\ndef screenCompareFiles(list):\n\tUI.clearScreen()\n\tprint(TITLE + UI.getTab(STR_COMPARE))\n\t\n\tif len(list) == 0:\n\t\tprint(STR_EMPTY_FILE_LIST)\n\t\tinput(STR_BACK)\n\t\treturn\n\t\n\tres = True\n\thashes = []\n\tfor i, file in enumerate(list):\n\t\tif not file or not os.path.isfile(file):\n\t\t\tprint((STR_FILE_NOT_EXISTS).format(file))\n\t\t\tcontinue\n\t\telse:\n\t\t\tmd5 = Utils.getFileMD5(file)\n\t\t\tif not md5 in hashes:\n\t\t\t\thashes.append(md5)\n\t\t\tprint((' {: 2}: [{}] {}').format(i+1, md5,  os.path.basename(file)))\n\t\n\tprint(UI.DIVIDER)\n\tUI.showTable({\n\t\t'Result'\t\t: STR_OK if len(hashes) == 1 else STR_FAIL,\n\t\t'Hashes count'\t: len(hashes),\n\t})\n\tinput(STR_BACK)\n\t\n\tscreenFileSelect()\n\n\n\ndef screenUnpack2BLS(path):\n\tUI.clearScreen()\n\tprint(TITLE + UI.getTab(STR_UNPACK_2BLS))\n\t\n\twith open(path,'rb') as f:\n\t\tdata = f.read()\n\t\n\tfname = os.path.splitext(os.path.basename(path))[0]\n\tfolder = os.path.join(os.path.dirname(path), fname+'_2bls')\t\n\t\n\tinfo = Slb2.getGet2BLSInfo(data)\n\t\n\tprint(UI.highlight(' Header'))\n\thead = '\\n'.join(UI.getTable(info['header'], 16))\n\ttxt_info = 'Header:\\n\\n' + head + '\\n'\n\tprint(head)\n\t\n\tif not os.path.isdir(folder):\n\t\tos.makedirs(folder)\n\t\n\tentries = info['entries']\n\ttxt_info += 'Entries:\\n\\n'\n\t\n\tfor key in entries:\n\t\tentry = entries[key]\n\t\t\n\t\tprint(UI.highlight('\\n Entry %s'%key))\n\t\te_info = '\\n'.join(UI.getTable(entry,16))\n\t\ttxt_info += e_info + '\\n'\n\t\tprint(e_info)\n\t\t\n\t\twith open(os.path.join(folder, entry['name']),'wb') as out:\n\t\t\tout.write(data[entry['offset']:entry['offset'] + entry['size']])\n\t\n\twith open(os.path.join(folder, Utils.INFO_FILE_2BLS),'w') as txt:\n\t\ttxt.write(txt_info)\n\t\n\tprint('\\n'+STR_SAVED_TO%folder)\n\t\n\tinput(STR_BACK)\n\n\n\ndef screenBuild2BLS(path):\n\tUI.clearScreen()\n\tprint(TITLE + UI.getTab(STR_2BLS_BUILDER))\n\t\n\tname = os.path.basename(path).replace('_2bls','')+ '.2bls'\n\tfile = os.path.join(os.path.dirname(path),name)\n\t\n\tfiles = [os.path.join(path,x) for x in os.listdir(path) if os.path.isfile(os.path.join(path, x)) and x != Utils.INFO_FILE_2BLS]\n\t\n\tif len(files) == 0:\n\t\tprint(STR_EMPTY_FILE_LIST)\n\t\tinput(STR_BACK)\n\t\treturn\n\t\n\tdata = Slb2.build2BLS(files)\n\t\n\twith open(file, 'wb') as out:\n\t\tout.write(data)\n\t\n\tinfo = Slb2.getGet2BLSInfo(data)\n\t\n\tprint(UI.highlight(' Header'))\n\tUI.showTable(info['header'])\n\t\n\tentries = info['entries']\n\tfor key in entries:\n\t\tentry = entries[key]\n\t\t\n\t\tprint(UI.highlight('\\n Entry %s'%key))\n\t\tUI.showTable(entry)\n\t\n\t\n\tprint('\\n'+STR_SAVED_TO%file)\n\t\n\tinput(STR_BACK)\n\n\n\ndef screenHelp():\n\tUI.clearScreen()\n\tprint(TITLE + UI.getTab(STR_HELP))\n\tprint(STR_APP_HELP)\n\t\n\tUI.showStatus()\n\t\n\tinput(STR_BACK)\n\n# Functions\n\ndef chooseBNC(mode = 0, block_size = 0, syscon = False):\n\t\n\tblock = 0\n\tcount = 0\n\t\n\tif mode == 1:\n\t\tif syscon:\n\t\t\tareas = [\n\t\t\t\t{'n':'Syscon BOOT0',\t\t'o':0,\t\t\t\t\t\t\t\t'l':Syscon.BLOCK_SIZE * 4},\n\t\t\t\t{'n':'Syscon Firmware',\t\t'o':Syscon.SC_AREAS['FW']['o'],\t\t'l':Syscon.SC_AREAS['FW']['l']},\n\t\t\t\t{'n':'Syscon SNVS/NVS',\t\t'o':Syscon.SC_AREAS['SNVS']['o'],\t'l':Syscon.SC_AREAS['SNVS']['l']+Syscon.SC_AREAS['NVS']['l']},\n\t\t\t]\n\t\telse:\n\t\t\tareas = [\n\t\t\t\t{'n':'PS4 Full dump',\t\t'o':0,\t\t\t\t\t\t\t\t\t\t\t'l':SFlash.DUMP_SIZE},\n\t\t\t\t{'n':'PS4 Base Info',\t\t'o':SFlash.SFLASH_PARTITIONS['s0_header']['o'],\t'l':SFlash.SFLASH_PARTITIONS['s0_blank']['o']},\n\t\t\t\t{'n':'PS4 Flags (NVS)',\t\t'o':SFlash.SFLASH_PARTITIONS['s0_nvs']['o'],\t\t'l':SFlash.SFLASH_PARTITIONS['s0_nvs']['l']},\n\t\t\t\t{'n':'PS4 CoreOS switch',\t'o':SFlash.SFLASH_AREAS['CORE_SWCH']['o'],\t\t\t'l':SFlash.SFLASH_AREAS['CORE_SWCH']['l']},\n\t\t\t]\n\t\tfor i in range(len(areas)):\n\t\t\tareas[i]['b'] = areas[i]['o'] // block_size\n\t\t\tareas[i]['c'] = areas[i]['l'] // block_size + (1 if areas[i]['l'] % block_size else 0)\n\t\t\n\t\tUI.showMenu(['[%03d %03d] %s'%(areas[i]['b'], areas[i]['c'], areas[i]['n']) for i in range(len(areas))])\n\t\tnum = input(UI.DIVIDER+STR_CHOOSE_AREA)\n\t\tprint()\n\t\ttry:\n\t\t\tnum = int(num)\n\t\t\tif num < len(areas):\n\t\t\t\tblock = areas[num]['b']\n\t\t\t\tcount = areas[num]['c']\n\t\texcept:\n\t\t\tnum = 0\n\t\n\tif mode == 2:\n\t\tstr = input(STR_INPUT_BLOCK)\n\t\tprint()\n\t\ttry:\n\t\t\tnum = str.split()\n\t\t\tblock = int(num[0])\n\t\t\tcount = int(num[1]) if len(num) > 1 else 1\n\t\texcept:\n\t\t\tcount = 1\n\t\n\treturn [block, count]\n\n\n\ndef launchTool(path):\n\t\n\tif not os.path.exists(path):\n\t\treturn 0\n\t\n\tif os.path.isdir(path):\n\t\tif os.path.exists(os.path.join(path, Utils.INFO_FILE_SFLASH)):\n\t\t\treturn AdvSFlashTools.screenBuildNorDump(path)\n\t\telif os.path.exists(os.path.join(path, Utils.INFO_FILE_2BLS)):\n\t\t\treturn screenBuild2BLS(path)\n\t\telse:\n\t\t\t#TODO: maybe open SPIway?\n\t\t\tUI.setStatus(STR_UNK_CONTENT + ' {}'.format(path))\n\t\t\treturn 0\n\t\n\tf_size = os.stat(path).st_size\n\twith open(path,'rb') as f:\n\t\theader = f.read(0x10)\n\t\n\tif f_size == SFlash.DUMP_SIZE:\n\t\treturn SFlashTools.screenSFlashTools(path)\n\telif f_size == Syscon.DUMP_SIZE:\n\t\treturn SysconTools.screenSysconTools(path)\n\telif header[0:len(Slb2.SLB2_HEADER)] == Slb2.SLB2_HEADER:\n\t\treturn screenUnpack2BLS(path)\n\telse:\n\t\theader_ascii = ''.join([chr(c) if c > 0x1F and c < 0x7F else '.' for c in header])\n\t\tUI.setStatus(f\"{STR_UNK_FILE_TYPE} {path}\\n File size: {f_size} bytes\\n Header: {header_ascii} [{Utils.hex(header,'')}]\")\n\n\n\ndef quickLegitimatePatch(files):\n\tif len(files) != 2:\n\t\treturn False\n\t\n\ttry:\n\t\tif os.stat(files[0]).st_size == SFlash.DUMP_SIZE and os.stat(files[1]).st_size == SFlash.DUMP_SIZE:\n\t\t\tfirst = files[0] if os.stat(files[0]).st_mtime < os.stat(files[1]).st_mtime else files[1]\n\t\t\tsecond = files[1] if os.stat(files[0]).st_mtime < os.stat(files[1]).st_mtime else files[0]\n\t\t\t\n\t\t\twith open(first,'rb') as f: f_info = SFlash.getInfoForLegitSwitch(f)\n\t\t\twith open(second,'rb') as f: s_info = SFlash.getInfoForLegitSwitch(f)\n\t\t\t\n\t\t\tif f_info['sn'] == s_info['sn'] and f_info['switch'] != s_info['switch'] and f_info['fw'] == s_info['fw']:\n\t\t\t\tSFlashTools.screenLegitimatePatch(first, second)\n\texcept:\n\t\treturn False\n\t\n\treturn False\n\n\n"
  },
  {
    "path": "utils/encdec.py",
    "content": "#==========================================================\n# Encrypt / decrypt utils\n# part of ps4 wee tools project\n#==========================================================\nimport struct\nimport utils.utils as Utils\nfrom lang._i18n_ import *\nfrom Crypto.Cipher import AES\nfrom Crypto.Hash import SHA, HMAC, SHA256\n\n# EMC cfw key stuff\n\nCIPHERKEYSEMC\t= bytes.fromhex('5F74FE7790127FECF82CC6E6D91FA2D1') # FULL\nCIPHERKEYSEAP\t= bytes.fromhex('581A75D7E9C01F3C1BD7473DBD443B98')\nHASHERKEYEMC\t= bytes.fromhex('73FE06F3906B05ECB506DFB8691F9F54')\nHASHERKEYEAP\t= bytes.fromhex('824D9BB4DBA3209294C93976221249E4')\nZEROS128\t\t= bytes.fromhex('00000000000000000000000000000000')\n\n# HDD EAP key stuff\n\nP_SEED_KEY\t\t= bytes.fromhex('E973A44C578757A73492625D2CE2D76B')\nP_SEED\t\t\t= bytes.fromhex('DF0C2552DFC7F4F089B9D52DAA0E572A')\nEAP_K1_SEED\t\t= bytes.fromhex('7A49D928D2243C9C4D6E1EA8F5B4E229317E0DCAD2ABE5C56D2540572FB4B6E3')\nEAP_K2_SEED\t\t= bytes.fromhex('921CE9C8184C5DD476F4B5D3981F7E2F468193ED071E19FFFD66B693534689D6')\n\nEAP_HDD_KEY_HEAD = b'SCE_EAP_HDD__KEY'\nEAP_HDD_KEY_BODY = bytes.fromhex('BB6CD66DDC671FAC3664F7BF5049BAA8C4687904BC31CF4F2F4E9F89FA458793811745E7C7E80D460FAF2326550BD7E4D2A0A0D9729DE5D2117D70676F1D55748DC17CDF29C86A855F2AE9A1AD3E915F0000000000000000000000000000000000000000000000000000000000000000')\nEAP_HDD_KEY_BLOB = EAP_HDD_KEY_HEAD + EAP_HDD_KEY_BODY\n\nKEY_BLOB = {\n\t'enc': bytes.fromhex('E073B691E177D39642DF2E1D583D0E9A5A49EDF72BE9412E2B433E51490CE973234B84F49E949F03727331D5456F4598F2EDE6D0C11483B84CE3283243D0DE9DC379E915301A805DFAEB292B30374C9BF1C59041509BF11D215C35D5C08E3330807C8229C930FAB88672C4CF7DACA881C323D72346CA07921DB806FC242A2ED1'),\n\t'sig': bytes.fromhex('ED4F32C095847C6D3143EFFD61E7582F75F24465855C4E94DAF34885D8D03463'),\n\t'iv' : bytes.fromhex('3286EA97F3E92C434E1DC170C9289003'),\n}\n\nNEW_KEY_BLOB = {\n\t'enc': bytes.fromhex('CFFDCB6ECAE612B7A30A9EDBD8F77E261D629DE5E6CA3F22F439211AC033884F4B5D7D16D0A6F65D3173A2586CF819C7C6F437444C1D9499F6EBC4145E0BBAABC1DE7C63ED1F5A1E1946358C7F181B1FAB6DAB31195D8E611A1CB81B9ACF8B38FF21029FAB568C7A1BCC3E2FBEB25B13F1AFD6A3599EEF09EAEBE32684FDDA29'),\n\t'sig': bytes.fromhex('4798B78DD422601F26A32A1FEC5CAB8B256E50958E0B11A31D77DEE201D4D00E'),\n\t'iv' : bytes.fromhex('462500ECC487F0A8C2F39511E020CC59'),\n}\n\n\n\ndef aes_decrypt_cbc(key, iv, input):\n    return AES.new(key, AES.MODE_CBC, iv).decrypt(input)\n\ndef aes_encrypt_cbc(key, iv, input):\n    return AES.new(key, AES.MODE_CBC, iv).encrypt(input)\n\ndef aes_decrypt_ecb(key, data):\n\treturn AES.new(key, AES.MODE_ECB).decrypt(data)\n\ndef aes_encrypt_ecb(key, data):\n\treturn AES.new(key, AES.MODE_ECB).encrypt(data)\n\ndef emc_decrypt_header(hdr):\n    return hdr[:0x30] + aes_decrypt_cbc(CIPHERKEYSEMC, ZEROS128, hdr[0x30:0x80])\n    \ndef emc_encrypt_header(hdr):\n    return hdr[:0x30] + aes_encrypt_cbc(CIPHERKEYSEMC, ZEROS128, hdr[0x30:0x80])\n    \ndef eap_decrypt_header(hdr):\n    return hdr[:0x30] + aes_decrypt_cbc(CIPHERKEYSEAP, ZEROS128, hdr[0x30:0x80])\n    \ndef eap_encrypt_header(hdr):\n    return hdr[:0x30] + aes_encrypt_cbc(CIPHERKEYSEAP, ZEROS128, hdr[0x30:0x80])\n\ndef hmac_sha256(key, data):\n\treturn HMAC.new(key=key, msg=data, digestmod=SHA256).digest()\n\n\n\ndef checkType(type):\n\t\n\tprint(' Type'.ljust(16)+': 0x',end='')\n\tif type == b'\\x48':\n\t\tprint('%s [EMC]'%Utils.hex(type))\n\t\ttype = 'emc'\n\telif type == b'\\x68':\n\t\tprint('%s [EAP]'%Utils.hex(type))\n\t\ttype = 'eap'\n\telse:\n\t\tprint('%s [UNK]'%Utils.hex(type))\n\t\ttype = b''\n\t\n\treturn type\n\n\ndef decrypt(data):\n\t\n\tpad = 16\n\t\n\ttype = checkType(data[7:8])\n\tif not type:\n\t\treturn type\n\t\n\thdr = emc_decrypt_header(data[:0x80]) if type == 'emc' else eap_decrypt_header(data[:0x80])\n\t\n\tbody_aes_key  = hdr[0x30:0x40]\n\tbody_hmac_key = hdr[0x40:0x50]\n\tbody_hmac = hdr[0x50:0x64]\n\tzeroes = hdr[0x64:0x6C]\n\t\n\tprint(' ZERO'.ljust(pad)+': %s'%Utils.hex(zeroes,''))\n\t\n\theader_hmac = hdr[0x6C:0x80]\n\tbody_len = struct.unpack('<L', hdr[0xc:0x10])[0]\n\t\n\tprint(' Body'.ljust(pad)+': %d bytes'%body_len)\n\t\n\tehdr = hdr[:0x6C]\n\tebody = data[0x80:0x80 + body_len]\n\tbhmac = HMAC.new(body_hmac_key, ebody, SHA)\n\thhmac = HMAC.new(HASHERKEYEMC, ehdr, SHA) if type == 'emc' else HMAC.new(HASHERKEYEAP, ehdr, SHA)\n\tbody = aes_decrypt_cbc(body_aes_key, ZEROS128, ebody)\n\t\n\thhmac = hhmac.hexdigest().upper()\n\tbhmac = bhmac.hexdigest().upper()\n\tprint(' HHMAC'.ljust(pad)+': %s %s'%(hhmac, STR_OK if hhmac == Utils.hex(header_hmac,'') else STR_FAIL))\n\tprint(' BHMAC'.ljust(pad)+': %s %s'%(bhmac, STR_OK if bhmac == Utils.hex(body_hmac,'') else STR_FAIL))\n\t\n\treturn hdr + body\n\n\n\ndef encrypt(data):\n\t\n\tpad = 16\n\t\n\ttype = checkType(data[7:8])\n\tif not type:\n\t\treturn type\n\t\n\tbody_len = struct.unpack('<L', data[0xc:0x10])[0]\n\tbody = data[0x80:0x80+body_len]\n\tbody_aes_key  = data[0x30:0x40]\n\t\n\tebody = aes_encrypt_cbc(body_aes_key, ZEROS128, body)\n\tbody_hmac_key = data[0x40:0x50]\n\tbhmac = HMAC.new(body_hmac_key, ebody, SHA)\n\t\n\tprint(' Body'.ljust(pad)+': %d bytes'%body_len)\n\t\n\thdr = (data[0:0x50] + bytes.fromhex(bhmac.hexdigest()) + data[0x64:0x6C])\n\thhmac = HMAC.new(HASHERKEYEMC, hdr, SHA) if type == 'emc' else HMAC.new(HASHERKEYEAP, hdr, SHA)\n\thdr = (hdr + bytes.fromhex(hhmac.hexdigest()))\n\thdr = emc_encrypt_header(hdr) if type == 'emc' else eap_encrypt_header(hdr)\n\t\n\tprint(' HHMAC'.ljust(pad)+': %s'%hhmac.hexdigest().upper())\n\tprint(' BHMAC'.ljust(pad)+': %s'%bhmac.hexdigest().upper())\n\t\n\treturn hdr + ebody\n\n\n\ndef hddEapKey(eap_key, smi, use_new_blob=False):\n\t\n\tinfo = {\n\t\t'Use new keys':STR_YES if use_new_blob else STR_NO,\n\t\t'SMI':\t\"0x%X\"%smi\n\t}\n\t\n\t# generate portability key\n\tp_key = aes_encrypt_ecb(P_SEED_KEY, P_SEED)\n\t# generate eap_hdd_keys from seeds\n\teap_hdd_key_blob_key1 = aes_encrypt_ecb(p_key, EAP_K1_SEED)\n\teap_hdd_key_blob_key2 = aes_encrypt_ecb(p_key, EAP_K2_SEED)\n\t\n\t# length check\n\t\n\teap_hdd_wrapped_key = eap_key[:0x40] if eap_key[0x40:0x50] == b'\\xFF' * 16 else eap_key[:0x60]\n\t\n\tinfo['Key length'] = '0x%X'%len(eap_hdd_wrapped_key)\n\t\n\t# verify and decrypt eap key blob\n\teap_hdd_key_blob_enc = NEW_KEY_BLOB['enc'] if use_new_blob else KEY_BLOB['enc']\n\teap_hdd_key_blob_sig = NEW_KEY_BLOB['sig'] if use_new_blob else KEY_BLOB['sig']\n\teap_hdd_key_blob_iv  = NEW_KEY_BLOB['iv'] if use_new_blob else KEY_BLOB['iv']\n\t\n\tselected_key = eap_hdd_key_blob_key1\n\tcomputed_signature = hmac_sha256(selected_key[0x10:0x20], eap_hdd_key_blob_enc)\n\t\n\tinfo['Signature'] = STR_OK\n\tif computed_signature != eap_hdd_key_blob_sig:\n\t\tinfo['Signature'] = STR_FAIL\n\t\tselected_key = eap_hdd_key_blob_key2\n\t\tcomputed_signature = hmac_sha256(selected_key[0x10:0x20], eap_hdd_key_blob_enc)\n\t\tif computed_signature != eap_hdd_key_blob_sig:\n\t\t\tUI.showTable(info)\n\t\t\treturn -1\n\t\n\teap_hdd_key_blob = aes_decrypt_cbc(selected_key[0x00:0x10], eap_hdd_key_blob_iv, eap_hdd_key_blob_enc)\n\tinfo['Key check'] = STR_OK\n\tif not eap_hdd_key_blob.startswith(EAP_HDD_KEY_HEAD):\n\t\tinfo['Key check'] = STR_FAIL\n\t\tUI.showTable(info)\n\t\treturn -1\n\t\n\teap_hdd_key_blob = EAP_HDD_KEY_BLOB\n\t\n\tkey = eap_hdd_key_blob[0x60:0x70] if use_new_blob else eap_hdd_key_blob[0x50:0x60]\n\teap_hdd_unwrapped_key = aes_decrypt_cbc(key, b'\\x00' * 0x10, eap_hdd_wrapped_key[:0x40])\n\t\n\toffset = 0x10 if (smi == 0xFFFFFFFF or smi < 0x4000000) else 0x20\n\teap_hdd_unwrapped_key_dec = aes_decrypt_cbc(eap_hdd_key_blob[offset:offset + 0x10], b'\\x00' * 0x10, eap_hdd_unwrapped_key)\n\t\n\tif eap_hdd_unwrapped_key_dec[0x10:0x20] != b'\\x00' * 0x10:\n\t\teap_hdd_unwrapped_key_dec = aes_decrypt_cbc(eap_hdd_key_blob[offset:offset + 0x10], b'\\x00' * 0x10, eap_hdd_wrapped_key[:0x10])\n\t\n\tkey_data = eap_hdd_key_blob[0x40:0x50] if use_new_blob else eap_hdd_key_blob[0x30:0x40]\n\teap_partition_key = hmac_sha256(eap_hdd_unwrapped_key_dec[:0x10], key_data)\n\t\n\ttweak_key = eap_partition_key[0x00:0x10]\n\tdata_key = eap_partition_key[0x10:0x20]\n\t\n\tinfo['XTS data key'] = Utils.hex(data_key,'')\n\tinfo['XTS tweak key'] = Utils.hex(tweak_key,'')\n\t\n\tUI.showTable(info)\n\t\n\treturn {'tweak':tweak_key,'data':data_key}\n"
  },
  {
    "path": "utils/scflasher.py",
    "content": "#==========================================================\n# Syscon flasher by Abkarino & EgyCnq / DarkNESmonk\n# https://github.com/AbkarinoMHM/PS4SysconTools\n# part of ps4 wee tools project\n# https://github.com/andy-man/ps4-wee-tools\n#==========================================================\n\nimport time, sys, os\nimport utils.syscon as Syscon\nfrom lang._i18n_ import *\nfrom utils.serial import WeeSerial\n\n\n\nclass SysconFlasher(WeeSerial):\n\t\n\tVERSION                 = [2, 0x05] # Syscon flasher HW version here\n\t\n\tBUFFER                  = b''\n\tBUFFER_SIZE             = 0x8000\n\t\n\tclass Cmd:\n\t\tPING1           = 0x00  # Params: - / Return: VERSION_MAJOR[1] / Check if Syscon tool connected and get its version major value\n\t\tPING2           = 0x01  # Params: - / Return: VERSION_MINOR[1] + FREEMEM[2] / Check if Syscon tool connected and get its version minor value + free ram size\n\t\tREAD_BLOCK      = 0x02  # Params: START_BLOCK[2] + END_BLOCK[2] / Return: STATUS[1] + DATA[BLOCK_SIZE] / Read block data\n\t\tREAD_CHIP       = 0x03  # Params: - / Return: STATUS[1] / Erase full chip data\n\t\tERASE_BLOCK     = 0x04  # Params: START_BLOCK[2] + END_BLOCK[2] / Return: STATUS[1] / Erase block data\n\t\tERASE_CHIP      = 0x05  # Params: - / Return: STATUS[1] / Erase full chip data\n\t\tWRITE_BLOCK     = 0x06  # Params: BLOCK_NUM[2] + DATA[BLOCK_SIZE] / Return: STATUS[1] / Write block data\n\t\tWRITE_BLOCK_EX  = 0x07  # Params: BLOCK_NUM[2] + DATA[BLOCK_SIZE] / Return: STATUS[1] / Extended Write block data\n\t\tSET_DATA        = 0x0A  # Params: ?? / Return: ?? / Set data to be written into syscon write buffer\n\t\tINIT            = 0x10  # Params: - / Return: STATUS[1] / Initialize syscon flasher\n\t\tUNINIT          = 0x20  # Params: - / Return: STATUS[1] / Uninitialize syscon flasher\n\t\tRESET           = 0x80  # Params: - / Return: - / Reset syscon flasher\n\t\n\tclass Config:\n\t\tBLOCK_SIZE\t\t\t= 0x400\n\t\tBLOCK_COUNT\t\t\t= 512\n\t\tTOTAL_SIZE\t\t\t= BLOCK_SIZE * BLOCK_COUNT\n\t\n\t# Private methods\n\t\n\tdef __init__(self, port, ver = False):\n\t\tif port:\n\t\t\tsuper().__init__(port, {'baudrate':115200, 'timeout':10, 'write_timeout':5})\n\t\t\n\t\tself.BUFFER = b''\n\t\tif ver != False:\n\t\t\tself.VERSION = ver\n\t\n\tdef __getStatusByCode(self, code):\n\t\t\n\t\tif code == b'\\x00':\n\t\t\treturn STR_OK\n\t\tif code == b'\\xF0':\n\t\t\treturn STR_SCF_ERR_INT\n\t\tif code == b'\\xF1':\n\t\t\treturn STR_SCF_ERR_READ\n\t\tif code == b'\\xF4':\n\t\t\treturn STR_SCF_ERR_ERASE\n\t\tif code == b'\\xF6':\n\t\t\treturn STR_SCF_ERR_WRITE\n\t\tif code == b'\\xFA':\n\t\t\treturn STR_SCF_ERR_CMD_LEN\n\t\tif code == b'\\xFE':\n\t\t\treturn STR_SCF_ERR_CMD_EXEC\n\t\tif code == b'\\xFF':\n\t\t\treturn STR_SCF_ERR_UNKNOWN\n\t\t\n\t\treturn STR_SCF_ERR_UNK_STATUS + (' [0x%02X]'%code[0] if len(code) >= 1 else '')\n\t\n\tdef __getStatus(self):\n\t\t# read status byte\n\t\tres = self._read(1)\n\t\t\n\t\tif (res != b'\\x00'): # 0 = ok\n\t\t\tself.error('\\n '+self.__getStatusByCode(res))\n\t\t\tself.close()\n\t\t\treturn False\n\t\t\n\t\treturn True\n\t\n\t# Main stuff\n\t\n\tdef __getCmdData(self, cmd, block, count = ''):\n\t\tdata = [0x00] * (5 if count != '' else 3)\n\t\t\n\t\tdata[0] = cmd\n\t\tdata[1] = (block >> 8) & 0xFF\n\t\tdata[2] = block & 0xFF\n\t\t\n\t\tif count != '':\n\t\t\tend = block + count -1 \n\t\t\tdata[3] = (end >> 8) & 0xFF\n\t\t\tdata[4] = end & 0xFF\n\t\t\n\t\treturn data\n\t\n\tdef __eraseAll(self):\n\t\t\n\t\tself._write(self.Cmd.ERASE_CHIP)\n\t\t\n\t\tif self.__getStatus() == False:\n\t\t\tself.error(STR_SCF_ERROR_ERASE_CHIP)\n\t\t\treturn False\n\t\t\n\t\treturn True\n\t\n\tdef __eraseBlock(self, block, count = 1):\n\t\t\n\t\tcmd_data = self.__getCmdData(self.Cmd.ERASE_BLOCK, block, count)\n\t\tself._write(cmd_data)\n\t\t\n\t\tif self.__getStatus() == False:\n\t\t\tself.error(STR_SCF_ERROR_ERASE_BLK%block)\n\t\t\treturn False\n\t\t\n\t\treturn True\n\t\n\tdef __readAll(self):\n\t\t\n\t\tcmd_data = self.__getCmdData(self.Cmd.READ_CHIP)\n\t\tself._write(cmd_data)\n\t\t\n\t\tdata = self._read(self.Config.TOTAL_SIZE)\n\t\t\n\t\treturn data\n\t\n\tdef __readBlock(self, block, count = 1):\n\t\t\n\t\tcmd_data = self.__getCmdData(self.Cmd.READ_BLOCK, block, count)\n\t\tself._write(cmd_data)\n\t\t\n\t\tdata = self._read(self.Config.BLOCK_SIZE * count)\n\t\t\n\t\treturn data\n\t\n\tdef __writeBlock(self, data, block, ex = False):\n\t\t\n\t\tif len(data) != self.Config.BLOCK_SIZE:\n\t\t\treturn False\n\t\t\n\t\tcmd_data = self.__getCmdData(self.Cmd.WRITE_BLOCK_EX if ex else self.Cmd.WRITE_BLOCK, block)\n\t\tself._write(cmd_data)\n\t\tself._write(data)\n\t\t\n\t\tif self.__getStatus() == False:\n\t\t\tself.error(STR_SCF_ERROR_WRITE_BLK%block)\n\t\t\treturn False\n\t\t\n\t\treturn True\n\t\n\tdef __checkBC(self, block, count):\n\t\t\n\t\tif block >= self.Config.BLOCK_COUNT:\n\t\t\tblock = self.Config.BLOCK_COUNT - 1\n\t\t\n\t\tif count == 0 or (block + count) > self.Config.BLOCK_COUNT:\n\t\t\tcount = self.Config.BLOCK_COUNT - block\n\t\t\n\t\treturn [block, count]\n\t\n\t# Public methods\n\t\n\tdef reset(self):\n\t\tself._clean()\n\t\tself._write(self.Cmd.RESET)\n\t\tself._flush()\n\t\n\tdef connect(self):\n\t\t\n\t\tif not self.sp.is_open:\n\t\t\tself.sp.open()\n\t\t\n\t\tself._clean()\n\t\t\n\t\tself._write(self.Cmd.PING1)\n\t\tself._write(self.Cmd.PING2)\n\t\t\n\t\tinfo = self._read(4)\n\t\tinfo = b'\\x00'*4 if len(info) != 4 else info\n\t\t\n\t\tver = [info[0], info[1]]\n\t\tram = (info[2] << 8) | info[3]\n\t\t\n\t\tif ver[0] != self.VERSION[0]: # Major version check\n\t\t\tmaj, min = self.VERSION\n\t\t\tself.error(STR_SCF_ERROR_VERSION%(maj, min))\n\t\t\tself.close()\n\t\t\treturn {'RAM':ram, 'VER':ver, 'DEBUG':False}\n\t\t\n\t\tself._write(self.Cmd.INIT)\n\t\tdebug = self.__getStatus()\n\t\t\n\t\treturn {'RAM':ram, 'VER':ver, 'DEBUG':debug}\n\t\n\tdef getChipInfo(self):\n\t\t\n\t\tself._clean()\n\t\t\n\t\tdata = self.__readBlock(0)\n\t\t\n\t\tfw = Syscon.getSysconData(data, 'VERSION')\n\t\tmagic = Syscon.checkSysconData(data, ['MAGIC_1', 'MAGIC_2', 'MAGIC_3'])\n\t\tdebug = Syscon.getSysconData(data, 'DEBUG')\n\t\t\n\t\tinfo = {\n\t\t\t'FW'\t: 'v%x.%02x'%(int.from_bytes(fw[0:1], byteorder='big'), int.from_bytes(fw[2:3], byteorder='big')),\n\t\t\t'Magic'\t: STR_OK if magic else STR_FAIL,\n\t\t\t'Debug'\t: '%s [0x%02X]'%(STR_ON if debug == b'\\x84' or debug == b'\\x85' else STR_OFF, debug[0]),\n\t\t}\n\t\t\n\t\treturn info\n\t\n\tdef disconnect(self):\n\t\tself._clean()\n\t\tself._write(self.Cmd.UNINIT)\n\t\treturn self.__getStatus()\n\t\n\tdef eraseChip(self, block = 0, count = 0):\n\t\t\n\t\tblock, count = self.__checkBC(block, count)\n\t\t\n\t\tkb_pb = self.Config.BLOCK_SIZE // 1024\n\t\ttotal = count * kb_pb\n\t\t\n\t\tstart = time.time()\n\t\t\n\t\tself._clean()\n\t\t\n\t\tfor b in range(block, block+count):\n\t\t\t\"\"\"\n\t\t\tres = True\n\t\t\ttime.sleep(1)\n\t\t\t\"\"\"\n\t\t\tres = self.__eraseBlock(b)\n\t\t\t\n\t\t\tif res == False:\n\t\t\t\tself.error(STR_SPW_ERROR_ERASE)\n\t\t\t\treturn False\n\t\t\tprogress = (b - block + 1) * kb_pb\n\t\t\tpercent = 100 if progress == total else progress // (total / 100)\n\t\t\telapsed = UI.cyan(STR_SECONDS%(time.time() - start))\n\t\t\t\n\t\t\tself.printf(STR_SPW_PROGRESS%(b, progress, total, percent, elapsed), True)\n\t\t\n\t\treturn True\n\t\n\tdef readChip(self, block = 0, count = 0):\n\t\t\n\t\tblock, count = self.__checkBC(block, count)\n\t\t\n\t\tdata = bytes()\n\t\tkb_pb = self.Config.BLOCK_SIZE // 1024\n\t\ttotal = count * kb_pb\n\t\t\n\t\tstart = time.time()\n\t\t\n\t\tself._clean()\n\t\t\n\t\tfor b in range(block, block+count):\n\t\t\tbuf = self.__readBlock(b)\n\t\t\tif buf == False:\n\t\t\t\treturn False\n\t\t\tdata += buf\n\t\t\t\n\t\t\tprogress = (b - block + 1) * kb_pb\n\t\t\tpercent = 100 if progress == total else progress // (total / 100)\n\t\t\telapsed = UI.cyan(STR_SECONDS%(time.time() - start))\n\t\t\t\n\t\t\tself.printf(STR_SPW_PROGRESS%(b, progress, total, percent, elapsed), True)\n\t\t\n\t\treturn data\n\t\n\tdef writeChip(self, data, block = 0, count = 0, ex = False):\n\t\tdsize = len(data)\n\t\t\n\t\tblock, count = self.__checkBC(block, count)\n\t\t\n\t\tif dsize % self.Config.BLOCK_SIZE:\n\t\t\tself.error(STR_SPW_ERR_BLOCK_ALIGN%self.Config.BLOCK_SIZE)\n\t\t\treturn False\n\t\t\n\t\tif dsize != count * self.Config.BLOCK_SIZE:\n\t\t\tself.error(STR_SPW_ERR_DATA_SIZE%(dsize, count * self.Config.BLOCK_SIZE))\n\t\t\treturn False\n\t\t\n\t\tif block + count > self.Config.BLOCK_COUNT:\n\t\t\tself.error(STR_SPW_ERR_OVERFLOW%self.Config.BLOCK_COUNT)\n\t\t\treturn False\n\t\t\n\t\tkb_pb = self.Config.BLOCK_SIZE // 1024\n\t\ttotal = count * kb_pb\n\t\t\n\t\tstart = time.time()\n\t\t\n\t\tself._clean()\n\t\t\n\t\tfor b in range(block, block + count):\n\t\t\t\n\t\t\toffset = self.Config.BLOCK_SIZE * (b - block)\n\t\t\t\n\t\t\tres = self.__writeBlock(data[offset:offset + self.Config.BLOCK_SIZE], b, ex)\n\t\t\tif res == False:\n\t\t\t\tself.error(STR_SPW_ERROR_WRITE)\n\t\t\t\treturn False\n\t\t\t\"\"\"\n\t\t\ttime.sleep(0.01)\n\t\t\t\"\"\"\n\t\t\tprogress = (b - block + 1) * kb_pb\n\t\t\tpercent = 100 if progress == total else progress // (total / 100)\n\t\t\telapsed = UI.cyan(STR_SECONDS%(time.time() - start))\n\t\t\t\n\t\t\tself.printf(STR_SPW_PROGRESS%(b, progress, total, percent, elapsed), True)\n\t\t\t\n\t\t\tb += 1\n\t\t\n\t\treturn True\n\n\n# Legacy syscon reader by DarkNESmonk\ndef sysconReader(sp, file):\n\t\n\tif not sp.is_open:\n\t\tsp.open()\n\t\tif not sp.is_open:\n\t\t\tprint(UI.error(STR_PORT_CLOSED))\n\t\t\treturn\n\t\n\tprint(STR_WAITING+'\\n')\n\ttime.sleep(2)\n\t\n\tsp.write(b'\\x00')\n\t\n\twait = True\n\tstart_time = time.time()\n\t\n\twhile wait:\n\t\tresp = sp.read(1)\n\t\t\n\t\tif resp == b'\\xEE':\n\t\t\tprint('\\n'+UI.warning(STR_CHIP_NOT_RESPOND))\n\t\t\n\t\tif resp == b'\\x00':\n\t\t\tprint(UI.cyan(' [GLITCH]'))\n\t\t\n\t\tif resp == b'\\x91':\n\t\t\tprint(UI.green(' [OCD CMD] connect'))\n\t\t\twhile True:\n\t\t\t\tresp = sp.read(1)\n\t\t\t\tif resp == b'\\x94':\n\t\t\t\t\tprint(UI.green(' [OCD CMD] exec'))\n\t\t\t\t\twait = False\n\t\t\t\t\tsp.read(1)\n\t\t\t\t\tbreak\n\t\n\twith open(file, 'wb') as f:\n\t\tcounter = 0\n\t\tprint()\n\t\twhile True:\n\t\t\tdata = sp.read(Syscon.BLOCK_SIZE)\n\t\t\tcounter += Syscon.BLOCK_SIZE\n\t\t\t\n\t\t\tf.write(data)\n\t\t\t\n\t\t\tprint(UI.highlight(STR_PROGRESS_KB%(os.stat(file).st_size // 2**10, Syscon.DUMP_SIZE // 2**10))+'\\r',end='')\n\t\t\tsys.stdout.flush()\n\t\t\t\n\t\t\tif counter >= Syscon.DUMP_SIZE:\n\t\t\t\tsp.close()\n\t\t\t\tbreak\n\t\n\treturn time.time() - start_time\n"
  },
  {
    "path": "utils/serial.py",
    "content": "#==========================================================\n# serial lib\n# part of ps4 wee tools project\n#==========================================================\nimport serial, threading, sys, time\nfrom lang._i18n_ import *\nfrom serial.tools import list_ports\n\n\n\nclass WeeSerial:\n\t\n\tpatterns = {\n\t\t'error'\t\t: Clr.fg.red,\n\t\t'warn'\t\t: Clr.fg.orange,\n\t\t'release'\t: Clr.fg.green,\n\t\t'network'\t: Clr.fg.blue,\n\t\t'samu'\t\t: Clr.fg.cyan,\n\t\t'standby'\t: Clr.bg.purple,\n\t\t'panic'\t\t: Clr.fg.l_red,\n\t}\n\t\n\tcfg = {\n\t\t'baudrate'\t\t: 115200,\n\t\t'bytesize'\t\t: 8,\n\t\t'parity'\t\t: 'N',\n\t\t'stopbits'\t\t: 1,\n\t\t'xonxoff'\t\t: 0,\n\t\t'rtscts'\t\t: 0,\n\t\t'dsrdtr'\t\t: 0,\n\t\t'timeout'\t\t: 300,\n\t\t'write_timeout'\t: 120,\n\t}\n\t\n\tENCODING\t= 'utf-8'\n\tEOL\t\t\t= b'\\n\\r'\n\tSHOWCODES\t= False\n\tLOG\t\t\t= False\n\t\n\tTX\t\t\t= 0\n\tRX\t\t\t= 0\n\t\n\tsp\t\t\t= False\n\talive\t\t= False\n\terr\t\t\t= ''\n\t\n\tdef __init__(self, port, cfg = {}):\n\t\t\n\t\tfor k in self.cfg:\n\t\t\tif k in cfg:\n\t\t\t\tself.cfg[k] = cfg[k]\n\t\t\n\t\ttry:\n\t\t\tself.sp = serial.Serial()\n\t\t\tself.sp.apply_settings(self.cfg)\n\t\t\tself.sp.port = port\n\t\t\t\n\t\t\tself.sp.open()\n\t\t\tself.sp.flushInput()\n\t\t\tself.sp.flushOutput()\n\t\t\t\n\t\texcept Exception as e:\n\t\t\terr = str(e)\n\t\t\tself.error(str(e))\n    \n\tdef __del__(self):\n\t\tif self.sp and self.sp.is_open:\n\t\t\tself.sp.close()\n    \n\tdef error(self, msg):\n\t\tself.printf(UI.error(' '+msg+'\\n\\n'))\n\t\n\tdef printf(self, str, erase = False):\n\t\tprint(('\\r ' if erase else '') + str, end='')\n\t\tsys.stdout.flush()\n    \n\tdef getPortList():\n\t\tports = []\n\t\tfor port, desc, hwid in sorted(list_ports.comports()):\n\t\t\tports.append({'port':port, 'desc':desc, 'hwid':hwid})\n\t\treturn ports\n    \n\tdef getPortInfo(self):\n\t\tif self.err:\n\t\t\treturn self.err\n\t\treturn '%s %d %d %s %d (%s)'%(self.sp.port, self.sp.baudrate, self.sp.bytesize, self.sp.parity, self.sp.stopbits, 'open' if self.sp.is_open else 'closed')\n    \n\tdef printline(self, line):\n\t\tpatterns = self.patterns\n\t\tfor k in patterns:\n\t\t\tif k in line.lower():\n\t\t\t\tline = patterns[k] + line + Clr.reset\n\t\t\t\tbreak\n\t\tself.printf(line)\n\t\n\tdef getLines(self, buf):\n\t\ttxt = ''\n\t\tlines = []\n\t\tprev_c = b''\n\t\t\n\t\tfor c in buf:\n\t\t\tif c in self.EOL:\n\t\t\t\tif prev_c in self.EOL and c != prev_c:\n\t\t\t\t\ttxt = ''\n\t\t\t\telse:\n\t\t\t\t\tlines.append(txt+'\\n')\n\t\t\t\t\ttxt = ''\n\t\t\telif c >= 0x20:\n\t\t\t\ttxt += chr(c)\n\t\t\telif self.SHOWCODES:\n\t\t\t\ttxt += UI.highlight(':%02X')%(c)\n\t\t\t\n\t\t\tprev_c = c\n\t\t\n\t\tif len(txt):\n\t\t\tlines.append(txt)\n\t\t\n\t\treturn lines\n\t\n\tdef monitor(self):\n\t\t\n\t\tself.RX = 0\n\t\tself.TX = 0\n\t\tstart = time.time()\n\t\t\n\t\twhile self.sp.is_open and self.alive:\n\t\t\ttry:\n\t\t\t\tself.RX += self.sp.in_waiting\n\t\t\t\tif self.sp.in_waiting > 0:\n\t\t\t\t\tbuf = self.sp.read(self.sp.in_waiting)\n\t\t\t\t\tif self.LOG:\n\t\t\t\t\t\twith open(self.LOG, 'ab') as log:\n\t\t\t\t\t\t\tlog.write(buf)\n\t\t\t\t\tfor line in self.getLines(buf):\n\t\t\t\t\t\tself.printline(line)\n\t\t\t\t\n\t\t\t\ttime.sleep(0.1)\n\t\t\t\t\n\t\t\t\tUI.setTitle(STR_MONITOR_STATUS%(self.RX, self.TX, time.time() - start))\n\t\t\t\n\t\t\texcept Exception as e:\n\t\t\t\tself.err = str(e)\n\t\t\t\tself.alive = False\n\t\t\t\tbreak\n\t\t\n\t\tUI.setTitle()\n    \n\tdef startMonitor(self):\n\t\tif not self.sp:\n\t\t\treturn -1\n\t\tself.alive = True\n\t\tthreading.Thread(target=self.monitor, args=(), daemon=True).start()\n\t\n\tdef stopMonitor(self):\n\t\tself.alive = False\n\t\n\tdef getSP(self, key = ''):\n\t\tif not self.sp:\n\t\t\treturn -1\n\t\treturn self.sp[key] if key and key in self.sp else self.sp\n\t\n\tdef sendText(self, txt, EOL = b'\\n\\r'):\n\t\ttxt = (txt).encode(self.ENCODING,'ignore') + EOL\n\t\tif self.LOG:\n\t\t\twith open(self.LOG, 'ab') as log:\n\t\t\t\tlog.write(txt)\n\t\treturn self.send(txt)\n    \n\tdef send(self, bytes):\n\t\ttry:\n\t\t\tself.sp.write(bytes)\n\t\t\tself.TX += len(bytes)\n\t\texcept Exception as e:\n\t\t\tself.error(str(e))\n\t\n\tdef close(self):\n\t\tif not self.sp is None:\n\t\t\tself.sp.close()\n\t\n\t# Protected\n\t\n\tdef _write(self, s):\n\t\ttry:\n\t\t\tif isinstance(s, int):\n\t\t\t\ts = s.to_bytes(1,'big')\n\t\t\telif isinstance(s,tuple) or isinstance(s,list):\n\t\t\t\ts = bytes(s)\n\t\t\t\n\t\t\tself.BUFFER += s\n\t\t\t\n\t\t\twhile len(self.BUFFER) > self.BUFFER_SIZE:\n\t\t\t\tself.sp.write(self.BUFFER[:self.BUFFER_SIZE])\n\t\t\t\tself.BUFFER = self.BUFFER[self.BUFFER_SIZE:]\n\t\t\n\t\texcept Exception as e:\n\t\t\tself.error(str(e))\n\t\n\tdef _flush(self):\n\t\ttry:\n\t\t\tif len(self.BUFFER):\n\t\t\t\tself.sp.write(self.BUFFER)\n\t\t\t\tself.sp.flush()\n\t\t\t\tself.BUFFER = b''\n\t\t\t\n\t\texcept Exception as e:\n\t\t\tself.error(str(e))\n\t\n\tdef _read(self, size):\n\t\tself._flush()\n\t\ttry:\n\t\t\tdata = self.sp.read(size)\n\t\t\treturn data\n\t\t\t\n\t\texcept Exception as e:\n\t\t\tself.error(str(e))\n\t\t\treturn b''\n\t\n\tdef _clean(self):\n\t\tif not self.sp.is_open:\n\t\t\treturn False\n\t\tself.sp.flushInput()\n\t\tself.sp.flushOutput()\n\t\n\t# Helpers\n\t\n\tdef testPatterns(self, path):\n\t\tif os.path.isfile(path):\n\t\t\twith open(path, 'r') as file:\n\t\t\t\tlines = file.readlines()\n\t\t\t\tfor line in lines:\n\t\t\t\t\tself.printline(line)"
  },
  {
    "path": "utils/sflash.py",
    "content": "#==========================================================\n# NOR utils\n# part of ps4 wee tools project\n#==========================================================\nimport hashlib, os, math, sys, ctypes\nfrom lang._i18n_ import *\nimport data.data as Data\nimport lang._i18n_ as Lang\nimport utils.utils as Utils\n\n\n\nDUMP_SIZE = 0x2000000\nBACKUP_OFFSET = 0x3000\nMBR_SIZE = 0x1000\nBLOCK_SIZE = 0x200\n\nPS_REGIONS = {\n\t'jp':{'n':'Japan',\t\t\t\t\t\t\t\t\t'c':['00']},\n\t'us':{'n':'US, Canada (North America)',\t\t\t\t'c':['01','15']},\n\t'au':{'n':'Australia / New Zealand (Oceania)',\t\t'c':['02']},\n\t'uk':{'n':'U.K. / Ireland',\t\t\t\t\t\t\t'c':['03']},\n\t'eu':{'n':'Europe / Middle East / Africa',\t\t\t'c':['16','04']},\n\t'kr':{'n':'Korea (South Korea)',\t\t\t\t\t'c':['05']},\n\t'sa':{'n':'Southeast Asia / Hong Kong',\t\t\t\t'c':['06']},\n\t'tw':{'n':'Taiwan',\t\t\t\t\t\t\t\t\t'c':['07']},\n\t'ru':{'n':'Russia, Ukraine, India, Central Asia',\t'c':['08']},\n\t'cn':{'n':'Mainland China',\t\t\t\t\t\t\t'c':['09']},\n\t'mx':{'n':'Mexico, Central America, South America',\t'c':['11','14']},\n\t'kr':{'n':'Singapore, Korea, Asia',\t\t\t\t\t'c':['18']},\n}\n\nSWITCH_TYPES = [\n\t'Off',\n\t'Fat 10xx/11xx',\n\t'Fat/Slim/PRO 12xx/2xxx/7xxx',\n\t'General',\n\t'Extra',\n]\n\nSWITCH_BLOBS = [\n\t{'t':1, 'v':[0xFF]*8 + [0x00]*8},\n\t{'t':1, 'v':[0x00]*8 + [0xFF]*8},\n\t\n\t{'t':2, 'v':[0xFF]*16},\n\t{'t':2, 'v':[0x00]*16},\n\t\n\t{'t':3, 'v':[0xFF]*4 + [0x00]*12},\n\t{'t':3, 'v':[0x00]*4 + [0xFF]*12},\n\t{'t':3, 'v':[0xFF]*12 + [0x00]*4},\n\t{'t':3, 'v':[0x00]*12 + [0xFF]*4},\n\t\n\t{'t':4, 'v':[0xFF]*2 + [0x00]*14},\n\t{'t':4, 'v':[0x00]*2 + [0xFF]*14},\n\t{'t':4, 'v':[0xFF]*1 + [0x00]*15},\n\t{'t':4, 'v':[0x00]*1 + [0xFF]*15},\n\t{'t':4, 'v':[0xFF,0xF0] + [0x00]*14},\n\t{'t':4, 'v':[0x00,0x0F] + [0xFF]*14},\n]\n\nBOOT_MODES = {b'\\xFE':'Development', b'\\xFB':'Assist', b'\\xFF':'Release'}\n\n# {'o':<offset>, 'l':<length>, 't':<type>, 'n':<name>}\nSFLASH_PARTITIONS = {\n\t\"s0_header\"\t\t\t: {\"o\": 0x00000000,\t\"l\": 0x1000,\t\"n\":\"s0_head\"},\n\t\"s0_active_slot\"\t: {\"o\": 0x00001000,\t\"l\": 0x1000,\t\"n\":\"s0_act_slot\"},\n\t\"s0_MBR1\"\t\t\t: {\"o\": 0x00002000,\t\"l\": 0x1000,\t\"n\":\"s0_mbr1\"},\n\t\"s0_MBR2\"\t\t\t: {\"o\": 0x00003000,\t\"l\": 0x1000,\t\"n\":\"s0_mbr2\"},\n\t\"s0_emc_ipl_a\"\t\t: {\"o\": 0x00004000,\t\"l\": 0x60000,\t\"n\":\"sflash0s0x32\"},\n\t\"s0_emc_ipl_b\"\t\t: {\"o\": 0x00064000,\t\"l\": 0x60000,\t\"n\":\"sflash0s0x32b\"},\n\t\"s0_eap_kbl\"\t\t: {\"o\": 0x000C4000,\t\"l\": 0x80000,\t\"n\":\"sflash0s0x33\"},\n\t\"s0_wifi\"\t\t\t: {\"o\": 0x00144000,\t\"l\": 0x80000,\t\"n\":\"sflash0s0x38\"},\n\t\"s0_nvs\"\t\t\t: {\"o\": 0x001C4000,\t\"l\": 0xC000,\t\"n\":\"sflash0s0x34\"},\n\t\"s0_blank\"\t\t\t: {\"o\": 0x001D0000,\t\"l\": 0x30000,\t\"n\":\"sflash0s0x0\"},\n\t\"s1_header\"\t\t\t: {\"o\": 0x00200000,\t\"l\": 0x1000,\t\"n\":\"s1_head.crypt\"},\n\t\"s1_active_slot\"\t: {\"o\": 0x00201000,\t\"l\": 0x1000,\t\"n\":\"s1_act_slot.crypt\"},\n\t\"s1_MBR1\"\t\t\t: {\"o\": 0x00202000,\t\"l\": 0x1000,\t\"n\":\"s1_mbr1.crypt\"},\n\t\"s1_MBR2\"\t\t\t: {\"o\": 0x00203000,\t\"l\": 0x1000,\t\"n\":\"s1_mbr2.crypt\"},\n\t\"s1_samu_ipl_a\"\t\t: {\"o\": 0x00204000,\t\"l\": 0x3E000,\t\"n\":\"sflash0s1.cryptx2\"},\n\t\"s1_samu_ipl_b\"\t\t: {\"o\": 0x00242000,\t\"l\": 0x3E000,\t\"n\":\"sflash0s1.cryptx2b\"},\n\t\"s1_idata\"\t\t\t: {\"o\": 0x00280000,\t\"l\": 0x80000,\t\"n\":\"sflash0s1.cryptx1\"},\n\t\"s1_bd_hrl\"\t\t\t: {\"o\": 0x00300000,\t\"l\": 0x80000,\t\"n\":\"sflash0s1.cryptx39\"},\n\t\"s1_VTRM\"\t\t\t: {\"o\": 0x00380000,\t\"l\": 0x40000,\t\"n\":\"sflash0s1.cryptx6\"},\n\t\"s1_CoreOS_A\"\t\t: {\"o\": 0x003C0000,\t\"l\": 0xCC0000,\t\"n\":\"sflash0s1.cryptx3\"},\n\t\"s1_CoreOS_B\"\t\t: {\"o\": 0x01080000,\t\"l\": 0xCC0000,\t\"n\":\"sflash0s1.cryptx3b\"},\n\t\"s1_blank\"\t\t\t: {\"o\": 0x01D40000,\t\"l\": 0x2C0000,\t\"n\":\"sflash0s1.cryptx40\"},\n}\n\n# 'KEY':{'o':<offset>, 'l':<length>, 't':<type>, 'n':<name>}\nSFLASH_AREAS = {\n\t\n\t'ACT_SLOT'\t: {'o':0x001000,\t'l':1,\t\t\t't':'b',\t'n':'Active slot'},\t\t\t# 0x00 - A 0x80 - B\n\t\n\t'BOARD_ID'\t: {'o':0x1C4000,\t'l':8,\t\t\t't':'b',\t'n':'Board ID'},\t\t\t# SAA-001, SAB-00, etc\n\t'MAC'\t\t: {'o':0x1C4021,\t'l':6,\t\t\t't':'b',\t'n':'MAC Address'},\n\t'5G'\t\t: {'o':0x1C7018,\t'l':1,\t\t\t't':'b',\t'n':'5G support'},\t\t\t# 00 Not Supported, 01 Supported\t\t\n\t'MB_SN'\t\t: {'o':0x1C8000,\t'l':16,\t\t\t't':'s',\t'n':'Motherboard Serial'},\n\t'SN'\t\t: {'o':0x1C8030,\t'l':17,\t\t\t't':'s',\t'n':'Console Serial'},\n\t'SKU'\t\t: {'o':0x1C8041,\t'l':13,\t\t\t't':'s',\t'n':'SKU Version'},\n\t'REGION'\t: {'o':0x1C8047,\t'l':2,\t\t\t't':'s',\t'n':'Region code'},\n\t\n\t'NVS1'\t\t: {'o':0x1C9000,\t'l':0x1610,\t\t't':'b',\t'n':'1C9000 <-> 1CA610'},\n\t'NVS2'\t\t: {'o':0x1CA000,\t'l':0xFFF,\t\t't':'b',\t'n':'1CA000 <-> 1CAFFF'},\n\t\n\t'BOOT_MODE'\t: {'o':0x1C9000,\t'l':1,\t\t\t't':'b',\t'n':'Boot mode'},\t\t\t# Development(FE), Assist(FB), Release(FF)\n\t'MEM_BGM'\t: {'o':0x1C9003,\t'l':1,\t\t\t't':'b',\t'n':'Memory budget mode'},\t# Large(FE), Normal(FF)\n\t'SLOW_HDD'\t: {'o':0x1C9005,\t'l':1,\t\t\t't':'b',\t'n':'HDD slow mode'},\t\t# On(FE), Off(FF)\n\t'SAFE_BOOT'\t: {'o':0x1C9020,\t'l':1,\t\t\t't':'b',\t'n':'Safe boot'},\t\t\t# On(01), Off(00/FF)\n\t'SMI'\t\t: {'o':0x1C9060,\t'l':4,\t\t\t't':'b',\t'n':'SMI'},\n\t'FW_MIN'\t: {'o':0x1C9062,\t'l':2,\t\t\t't':'b',\t'n':'Minimal FW'},\n\t'FW_VER'\t: {'o':0x1C906A,\t'l':2,\t\t\t't':'b',\t'n':'FW in active slot'},\n\t'SAMUBOOT'\t: {'o':0x1C9323,\t'l':1,\t\t\t't':'b',\t'n':'SAMU enc'},\t\n\t'HDD'\t\t: {'o':0x1C9C00,\t'l':60,\t\t\t't':'s',\t'n':'HDD'},\n\t'HDD_TYPE'\t: {'o':0x1C9C3C,\t'l':4,\t\t\t't':'s',\t'n':'HDD type'},\n\t\n\t'EAP_MGC'\t: {'o':0x1C91FC,\t'l':4,\t\t\t't':'b',\t'n':b'\\xE5\\xE5\\xE5\\x01'},\t# Eap key magic\n\t\n\t'EAP_KEY'\t: {'o':0x1C9200,\t'l':0x60,\t\t't':'b',\t'n':'Hdd eap key'},\t\t\t# Length 0x40 / 0x60\n\t'SYS_FLAGS'\t: {'o':0x1C9310,\t'l':64,\t\t\t't':'b',\t'n':'System flags'},\t\t# Clean FF*64\n\t'MEMTEST'\t: {'o':0x1C9310,\t'l':1,\t\t\t't':'b',\t'n':'Memory test'},\t\t\t# On(01), Off(00/FF)\n\t'RNG_KEY'\t: {'o':0x1C9312,\t'l':1,\t\t\t't':'b',\t'n':'RNG/Keystorage test'},\t# On(01), Off(00/FF)\n\t'UART'\t\t: {'o':0x1C931F,\t'l':1,\t\t\t't':'b',\t'n':'UART'},\t\t\t\t# On(01), Off(00)\n\t'MEMCLK'\t: {'o':0x1C9320,\t'l':1,\t\t\t't':'b',\t'n':'GDDR5 Memory clock'},\n\t'RESOLUTION': {'o':0x1CD048,\t'l':1,\t\t\t't':'b',\t'n':'Resolution'},\t\t\t# Reset(00), 1080i(01), 720p(02), 1080p(03), 4K(04), 4K HDR(05), Auto(13)\n\t'RES_RESET'\t: {'o':0x1CD188,\t'l':1,\t\t\t't':'b',\t'n':'Reset resolution'},\t# On(01), Off(00)\n\t\n\t'BTNSWAP'\t: {'o':0x1CA040,\t'l':1,\t\t\t't':'b',\t'n':'Buttons swap'},\t\t# X(01), O(00/FF)\n\t'FW_C'\t\t: {'o':0x1CA5D8,\t'l':1,\t\t\t't':'b',\t'n':'FW Counter'},\n\t'FW_PC'\t\t: {'o':0x1CA5D9,\t'l':1,\t\t\t't':'b',\t'n':'FW Patch Counter'},\n\t'IDU'\t\t: {'o':0x1CA600,\t'l':1,\t\t\t't':'b',\t'n':'IDU (Kiosk mode)'},\t# On(01), Off(00/FF)\n\t'UPD_MODE'\t: {'o':0x1CA601,\t'l':1,\t\t\t't':'b',\t'n':'Update mode'},\t\t\t# On(10), Off(00)\n\t'UPD_VAR'\t: {'o':0x1CA602,\t'l':1,\t\t\t't':'b',\t'n':'Update variant'},\t\t# 0x30 hdd\n\t'REG_REC'\t: {'o':0x1CA603,\t'l':1,\t\t\t't':'b',\t'n':'Registry recovery'},\t# On(01), Off(00)\n\t'FW_V'\t\t: {'o':0x1CA606,\t'l':2,\t\t\t't':'s',\t'n':'FW Version'},\n\t'ARCADE'\t: {'o':0x1CA609,\t'l':1,\t\t\t't':'s',\t'n':'Arcade mode'},\t\t\t# On(01), Off(00/FF)\n\t\n\t'MANU'\t\t: {'o':0x1CBC00,\t'l':32,\t\t\t't':'b',\t'n':'MANU mode'},\t\t\t# Enabled(0*32), Disabled(FF*32)\n\t\n\t'CORE_SWCH'\t: {'o':0x201000,\t'l':16,\t\t\t't':'b',\t'n':'Slot switch hack'},\n}\n\nSOUTHBRIDGES = [\n\t{'code':[0x01, 0x02], 'name':'Aeolia A0',\t'ic':'CXD90025'},\n\t{'code':[0x0D, 0x0E], 'name':'Aeolia A1/A2','ic':'CXD90025'},\n\t{'code':[0x20, 0x21], 'name':'Belize A0/B0','ic':'CXD90036'},\n\t{'code':[0x24, 0x25], 'name':'Baikal B1',\t'ic':'CXD90042'},\n\t{'code':[0x2A, 0x2B], 'name':'Belize 2 A0',\t'ic':'CXD90046'},\n]\n\nTORUS_VERS = [\n\t{'code':0x03, 'v':'V1', 'name':'Marvell 88W8797', 'ic':['J20H071', 'SP88W8797']},\n\t{'code':0x22, 'v':'V2', 'name':'Marvell 88W8897', 'ic':['AW-CB262', 'AW-NB218', 'DHSM-PS97', 'J20H091']},\n\t{'code':0x30, 'v':'V3', 'name':'MediaTek MT7667BSN', 'ic':['AW-CB319', 'J20H096']},\n]\n\nMAGICS = {\n\t\"MBR\"\t\t: {\"o\": 0x00,\t\t\"v\":b'SONY COMPUTER ENTERTAINMENT INC.'},\n\t\"MBR1\"\t\t: {\"o\": 0x2000,\t\t\"v\":b'Sony Computer Entertainment Inc.'},\n\t\"MBR2\"\t\t: {\"o\": 0x3000,\t\t\"v\":b'Sony Computer Entertainment Inc.'},\n}\n\n\n\n# MBR parser\n\nclass Partition(ctypes.Structure):\n\t_pack_ = 1\n\t_fields_ = [\n\t\t(\"start_lba\",\tctypes.c_uint32),\n\t\t(\"n_sectors\",\tctypes.c_uint32),\n\t\t(\"type\",\t\tctypes.c_uint8),\t\t# part_id?\n\t\t(\"flag\",\t\tctypes.c_uint8),\n\t\t(\"unknown\",\t\tctypes.c_uint16),\n\t\t(\"padding\",\t\tctypes.c_uint64)\n\t]\n\t\n\tdef getName(self):\n\t\tcode = self.type\n\t\treturn PARTITIONS_TYPES[code] if code in PARTITIONS_TYPES else 'UNK_'+str(code)\n\t\n\tdef getOffset(self):\n\t\treturn self.start_lba * BLOCK_SIZE\n\t\n\tdef getSize(self):\n\t\treturn self.n_sectors * BLOCK_SIZE\n\nclass MBR_v1(ctypes.Structure):\n    _pack_ = 1\n    _fields_ = [\n        (\"magic\", \t\tctypes.c_uint8 * 0x20),\t# SONY COMPUTER ENTERTAINMENT INC.\n        (\"version\", \tctypes.c_uint32),\t\t# 1\n        (\"mbr1_start\",\tctypes.c_uint32),\t\t# ex: 0x10\n        (\"mbr2_start\",\tctypes.c_uint32),\t\t# ex: 0x18\n        (\"unk\",\t\t\tctypes.c_uint32 * 4),\t# ex: (1, 1, 8, 1)\n        (\"reserved\",\tctypes.c_uint32),\n        (\"unused\",\t\tctypes.c_uint8 * 0x1C0)\n    ]\n\nclass MBR_v4(ctypes.Structure):\n    _pack_ = 1\n    _fields_ = [\n        (\"magic\",\t\tctypes.c_uint8 * 0x20),\t# Sony Computer Entertainment Inc.\n        (\"version\",\t\tctypes.c_uint32),\t\t# 4\n        (\"n_sectors\",\tctypes.c_uint32),\n        (\"reserved\",\tctypes.c_uint64),\n        (\"loader_start\",ctypes.c_uint32),\t\t# ex: 0x11, 0x309\n        (\"loader_count\",ctypes.c_uint32),\t\t# ex: 0x267\n        (\"reserved2\",\tctypes.c_uint64),\n        (\"partitions\",\tPartition * 16)\n\t]\n\nPARTITIONS_TYPES = {\n\t0:\"empty\",\n\t1:\"idstorage\",\n\t2:\"sam_ipl\",\n\t3:\"core_os\",\n\t6:\"bd_hrl\",\n\t13:\"emc_ipl\",\n\t14:\"eap_kbl\",\n\t32:\"emc_ipl\",\n\t33:\"eap_kbl\",\n\t34:\"nvs\",\n\t38:\"wifi\",\n\t39:\"vtrm\",\n\t40:\"empty\",\n\t41:\"C0050100\",\n}\n\n# Functions ===============================================\n\ndef getConsoleRegion(file):\n\tcode = getNorData(file, 'REGION', True)\n\tfor k in PS_REGIONS:\n\t\tif code in PS_REGIONS[k]['c']:\n\t\t\treturn [code, PS_REGIONS[k]['n']]\n\treturn [code, STR_UNKNOWN]\n\n\n\ndef getMemClock(file):\n\traw1 = getNorData(file,'MEMCLK')[0]\n\traw2 = getNorDataB(file,'MEMCLK')[0]\n\treturn [raw1, rawToClock(raw1), raw2, rawToClock(raw2)]\n\n\n\ndef rawToClock(raw):\n\tif (0x10 <= raw <= 0x50):\n\t\treturn (raw - 0x10) * 25 + 400\n\treturn 0\n\n\n\ndef clockToRaw(frq):\n\treturn (frq - 400) // 25 + 0x10\n\n\n\ndef getSlotSwitchInfo(file):\n\tpattern = list(getNorData(file,'CORE_SWCH'))\n\tfor i in range(0,len(SWITCH_BLOBS)):\n\t\tif SWITCH_BLOBS[i]['v'] == pattern:\n\t\t\treturn SWITCH_TYPES[SWITCH_BLOBS[i]['t']]+' [#'+str(i+1)+']'\n\treturn SWITCH_TYPES[0]+' '+Utils.hex(bytes(pattern),'')\n\n\n\ndef getNorFW(f, active_slot = ''):\n\t\n\tfw = getNorData(f, 'FW_VER')\n\t\n\tif 0xFF in fw:\n\t\tfw = getNorData(f, 'FW_V')\n\t\n\tfw = '{:X}.{:02X}'.format(fw[1], fw[0])\n\t\"\"\"\n\tfw = getNorData(f, 'FW_VER')\n\to_fw = getNorData(f, 'FW_V')\n\tfw = '{:X}.{:02X}'.format(fw[1], fw[0]) + ' {:X}.{:02X}'.format(o_fw[1], o_fw[0])\n\t\"\"\"\n\tmfw = getNorData(f, 'FW_MIN')\n\tmfw = '{:X}.{:02X}'.format(mfw[1], mfw[0]) if mfw[0] != 0xFF else ''\n\t\n\tbfw = ['']\n\tif active_slot:\n\t\tslot = 'a' if active_slot == 'b' else 'b'\n\t\tpname = 's0_emc_ipl_'+slot\n\t\tmd5 = getNorPartitionMD5(f, pname)\n\t\tdata = getDataByPartition(pname)\n\t\t\n\t\tif md5 in data:\n\t\t\tfw2 = data[md5]['fw']\n\t\t\tbfw = fw2 if len(fw2) == 1 else [fw2[0], fw2[-1]]\n\t\n\treturn {'c':fw, 'b':bfw, 'min':mfw}\n\n\n\ndef isFwInList(fw, fw_list):\n\ttry: fw_cur = int(fw.replace('.',''))\n\texcept: fw_cur = 0\n\tfw_min = int(fw_list[0].replace('.',''))\n\tfw_max = int(fw_list[-1].replace('.',''))\n\treturn fw_cur >= fw_min and fw_cur <= fw_max\n\n\n\ndef getFwFilename(item, folder):\n\ttry:\n\t\tmd5 = item['md5']\n\t\tfor file in os.listdir(folder):\n\t\t\tpath = os.path.join(folder, file)\n\t\t\tif not os.path.isdir(path) and md5 in file:\n\t\t\t\treturn path\n\texcept Exception as e:\n\t\treturn ''\n\n\n\ndef getPartitionName(code):\n\treturn PARTITIONS_TYPES[code] if code in PARTITIONS_TYPES else 'Unk_'+str(code)\n\n\n\ndef getNorPartition(f, name):\n\tif not name in SFLASH_PARTITIONS:\n\t\treturn ''\n\treturn Utils.getData(f, SFLASH_PARTITIONS[name]['o'], SFLASH_PARTITIONS[name]['l'])\n\n\n\ndef getNorPartitionMD5(f, name):\n\tdata = getNorPartition(f, name)\n\tif len(data) > 0:\n\t\treturn hashlib.md5(data).hexdigest()\n\treturn ''\n\n\n\ndef getDataByPartition(name):\n\t\n\tif not name:\n\t\treturn False\n\telif name.find('eap_kbl') >= 0:\n\t\treturn Data.EAP_KBL_MD5\n\telif name.find('emc_ipl') >= 0:\n\t\treturn Data.EMC_IPL_MD5\n\telif name.find('wifi') >= 0:\n\t\treturn Data.TORUS_FW_MD5\n\t\n\treturn False\n\n\n\ndef getDataByPartitionAndType(name, type, fw = False):\n\tdata = getDataByPartition(name)\n\titems = []\n\tif not data:\n\t\treturn items\n\tfor key in data:\n\t\tif data[key]['t'] == type:\n\t\t\titem = data[key]\n\t\t\titem['md5'] = key\n\t\t\tif fw and isFwInList(fw, item['fw']):\n\t\t\t\treturn item\n\t\t\titems.append(item)\n\t\n\treturn {} if fw else items\n\n\n\ndef checkMagic(data, key):\n\tif len(data) <= 0:\n\t\treturn False\n\tif key in MAGICS:\n\t\toffset = MAGICS[key]['o']\n\t\tlength = offset + len(MAGICS[key]['v'])\n\t\tif data[offset:length] == MAGICS[key]['v']:\n\t\t\treturn True\n\treturn False\n\n\n\ndef getPartitionsInfo(f):\n\t# f - file in rb/r+b mode\n\tf.seek(MBR_SIZE)\n\t# active slot at 0x1000\n\tactive = f.read(1)\n\t\n\tbase = MBR_SIZE*2 if active == 0x00 else MBR_SIZE*3\n\tf.seek(base)\n\tmbr = MBR_v4()\n\tf.readinto(mbr)\n\t\n\tpartitions = []\n\t\n\tfor i in range(len(mbr.partitions)):\n\t\tp = mbr.partitions[i]\n\t\tif p.getSize() == 0:\n\t\t\tcontinue\n\t\tpartitions.append({\n\t\t\t'name'\t\t: p.getName(),\n\t\t\t'offset'\t: p.getOffset() + base,\n\t\t\t'size'\t\t: p.getSize(),\n\t\t\t'type'\t\t: p.type,\n\t\t})\n\t\n\treturn {'slot':active, 'base':base, 'parts':partitions}\n\n\n\ndef getTorusInfo(f):\n\ttorus_md5 = getPartitionMD5(f, 's0_wifi')\n\tsupports_5g = int.from_bytes(getNorData(f, '5G'), 'big')\n\ttorus = Data.TORUS_FW_MD5[torus_md5]['t'] if torus_md5 in Data.TORUS_FW_MD5 else 0\n\t\n\tfor item in TORUS_VERS:\n\t\tif torus == item['code']:\n\t\t\tdata = item\n\t\t\tdata['s5g'] = supports_5g\n\t\t\treturn data\n\t\n\treturn {'code':torus, 'v':'?', 'name':STR_UNKNOWN, 's5g':supports_5g}\n\n\n\ndef getSouthBridge(f):\n\t\n\tslot = getActiveSlot(f)\n\tmd5_emc_a = getNorPartitionMD5(f, 's0_emc_ipl_a')\n\tmd5_emc_b = getNorPartitionMD5(f, 's0_emc_ipl_b')\n\tmd5_eap = getNorPartitionMD5(f, 's0_eap_kbl')\n\t\n\temc_a = Data.EMC_IPL_MD5[md5_emc_a]['t'] if md5_emc_a in Data.EMC_IPL_MD5 else 0\n\temc_b = Data.EMC_IPL_MD5[md5_emc_b]['t'] if md5_emc_b in Data.EMC_IPL_MD5 else 0\n\teap = Data.EAP_KBL_MD5[md5_eap]['t'] if md5_eap in Data.EAP_KBL_MD5 else 0\n\t\n\t# check EAP first\n\tfor k in range(len(SOUTHBRIDGES)):\n\t\tcode = SOUTHBRIDGES[k]['code']\n\t\tif code[1] == eap: return SOUTHBRIDGES[k]\n\t\n\t# check emc (active slot)\n\tfor k in range(len(SOUTHBRIDGES)):\n\t\tcode = SOUTHBRIDGES[k]['code']\n\t\tif code[0] == (emc_a if slot == 'a' else emc_b): return SOUTHBRIDGES[k]\n\t\n\t# check emc (inactive slot) last chance\n\tfor k in range(len(SOUTHBRIDGES)):\n\t\tcode = SOUTHBRIDGES[k]['code']\n\t\tif code[0] == (emc_b if slot == 'a' else emc_a): return SOUTHBRIDGES[k]\n\t\n\t# unknown SB\n\treturn {'code':[emc_a if emc_a else emc_b, eap], 'name':STR_UNKNOWN, 'ic':'XX'}\n\n# NOR Areas data utils\n\ndef getNorAreaName(key):\n\tif key in SFLASH_AREAS:\n\t\treturn SFLASH_AREAS[key]['n']\n\treturn STR_UNKNOWN\n\n\n\ndef setNorData(file, key, val):\n\tif not key in SFLASH_AREAS:\n\t\treturn False\n\treturn Utils.setData(file, SFLASH_AREAS[key]['o'], val)\n\n\n\ndef setNorDataB(file, key, val):\n\tif not key in SFLASH_AREAS:\n\t\treturn False\n\treturn Utils.setData(file, SFLASH_AREAS[key]['o'] + BACKUP_OFFSET, val)\n\n\n\ndef getNorData(file, key, decode = False):\n\tif not key in SFLASH_AREAS:\n\t\treturn 'False' if decode else False\n\tdata = Utils.getData(file, SFLASH_AREAS[key]['o'], SFLASH_AREAS[key]['l'])\n\treturn data.decode('utf-8','ignore').strip('\\x00') if decode else data\n\n\n\ndef getNorDataB(file, key, decode = False):\n\tif not key in SFLASH_AREAS:\n\t\treturn 'False' if decode else False\n\tdata = Utils.getData(file, SFLASH_AREAS[key]['o'] + BACKUP_OFFSET, SFLASH_AREAS[key]['l'])\n\treturn data.decode('utf-8','ignore').strip('\\x00') if decode else data\n\n\n\ndef getModel(f):\n\ttry:\n\t\tmodel = int(getNorData(f, 'SKU', True)[4:6])\n\texcept:\n\t\tmodel = 0\n\treturn model\n\n\n\ndef getMobo(board):\n\t#mb_codes = 0x1c4000\n\tcodes = { 2: 'CV', 3: 'SA', 4: 'HA', 5: 'NV', }\n\t\n\tprefix = codes[board[0]] if board[0] in codes else '??'\n\t\n\t#mb_suffix = 0x1c4002 - All prefix 'CV' is 'N', all 'HA' is 'C', 'NV' is 'A','B' and 'G' no exist 'C'\n\tsuffix = '?'\n\tif prefix == 'CV' and board[2] == 1: suffix = 'N'\n\tif prefix == 'HA' and board[2] == 1: suffix = 'C'\n\tif prefix == 'NV' and board[2] == 3: suffix = 'G'\n\tif prefix == 'SA' or (prefix == 'NV' and board[2] <= 2):\n\t\tsuffix = chr(ord('A')-1+board[2])\n\t\n\t#mb_rev = Revision of board - ??? No exist SAA, SAB, SAC and HAC > 001, all are 001 - if board[0] <= 'HA' and board[2] <= 'C' Revision is 001\n\trev = '001' if board[0] <= 4 and board[2] <= 3 else '00X'\n\t\n\treturn {'name':prefix + suffix + '-' + rev, 'type':'Retail' if board[1] == 2 else 'Non-Retail'}\n\n\n\ndef getInfoForLegitSwitch(f):\n\tdata = {\n\t\t'sn':getNorData(f, 'SN', True),\n\t\t'fw':getNorFW(f)['c'],\n\t\t'slot':getNorData(f, 'ACT_SLOT'),\n\t\t'switch':getNorData(f, 'CORE_SWCH'),\n\t}\n\treturn data\n\n\n\ndef getActiveSlot(f):\n\treturn 'a' if getNorData(f, 'ACT_SLOT')[0] == 0x00 else 'b'\n\n\ndef checkNVS(data, key = 'NVS1'):\n\treturn STR_OK if not all(b == 0xFF or b == 0x00 for b in data) else STR_FAIL\n\n\ndef getOffsetRange(k, backup = False):\n\textra = BACKUP_OFFSET if backup else 0\n\treturn '%X~%X'%(SFLASH_AREAS[k]['o'] + extra, SFLASH_AREAS[k]['o'] + SFLASH_AREAS[k]['l'] + extra)\n\ndef getPartition(f, name):\n\tif not name in SFLASH_PARTITIONS:\n\t\treturn ''\n\treturn Utils.getData(f, SFLASH_PARTITIONS[name]['o'], SFLASH_PARTITIONS[name]['l'])\n\ndef getPartitionMD5(f, name):\n\tdata = getPartition(f, name)\n\tif len(data) > 0:\n\t\treturn hashlib.md5(data).hexdigest()\n\treturn ''\n\ndef getFWInfo(f, active_slot = ''):\n\t\n\tfw = getNorData(f, 'FW_VER')\n\t\n\tif b'\\xFF' in fw:\n\t\tfw = getNorData(f, 'FW_V')\n\t\n\t# EAP holds current FW\n\tif type(fw) == bytes and b'\\xFF' in fw:\n\t\tmd5_eap = getPartitionMD5(f, 's0_eap_kbl')\n\t\tfw_info = Data.EAP_KBL_MD5\n\n\t\tif md5_eap in fw_info:\n\t\t\tfws = fw_info[md5_eap]['fw']\n\t\t\tfw = ' <-> '.join(fws if len(fws) == 1 else [fws[0], fws[-1]])\n\t\n\tif type(fw) == bytes and b'\\xFF' in fw:\n\t\tmd5_emc = getPartitionMD5(f, 's0_emc_ipl_' + active_slot)\n\t\tfw_info = Data.EMC_IPL_MD5\n\t\t\n\t\tif md5_emc in fw_info:\n\t\t\tfws = fw_info[md5_emc]['fw']\n\t\t\tfw = ' <-> '.join(fws if len(fws) == 1 else [fws[0], fws[-1]])\n\t\t\n\tif type(fw) == bytes:\n\t\tfw = '{:X}.{:02X}'.format(fw[1], fw[0])\n\n\t\"\"\"\n\tfw = getNorData(f, 'FW_VER')\n\to_fw = getNorData(f, 'FW_V')\n\tfw = '{:X}.{:02X}'.format(fw[1], fw[0]) + ' {:X}.{:02X}'.format(o_fw[1], o_fw[0])\n\t\"\"\"\n\tmfw = getNorData(f, 'FW_MIN')\n\tmfw = '{:X}.{:02X}'.format(mfw[1], mfw[0]) if mfw[0] != 0xFF else ''\n\t\n\tbfw = ['']\n\tif active_slot:\n\t\tpname = 's0_emc_ipl_' + ('a' if active_slot == 'b' else 'b')\n\t\t\n\t\tmd5 = getPartitionMD5(f, pname)\n\t\tfw_info_data = getDataByPartition(pname)\n\t\t\n\t\tif md5 in fw_info_data:\n\t\t\tfw2 = fw_info_data[md5]['fw']\n\t\t\tbfw = fw2 if len(fw2) == 1 else [fw2[0], fw2[-1]]\n\t\n\treturn {'c':fw, 'b':bfw, 'min':mfw}\n\n\n\ndef getSFlashInfo(file = '-'):\n\twith open(file, 'rb') as f:\n\t\t\n\t\tactive_slot = getActiveSlot(f)\n\t\t\n\t\tsku = getNorData(f, 'SKU', True)\n\t\tfw = getNorFW(f, active_slot)\n\t\tSB = getSouthBridge(f)\n\t\ttorus = getTorusInfo(f)\n\t\t\n\t\tsamu = getNorData(f, 'SAMUBOOT')[0]\n\t\tregion = getConsoleRegion(f)\n\t\tboard = getNorData(f, 'BOARD_ID')\n\t\tmobo = getMobo(board)\n\t\t\n\t\ttry:\n\t\t\thdd = (' / ').join(Utils.swapBytes(getNorData(f, 'HDD')).decode('utf-8').split())\n\t\texcept:\n\t\t\thdd = STR_NO_INFO\n\t\t\n\t\tinfo = {\n\t\t\t'FILE'\t\t\t: os.path.basename(file),\n\t\t\t'MD5'\t\t\t: Utils.getFileMD5(file),\n\t\t\t'SKU / Board ID': sku + ' [' + UI.highlight(Utils.hex(board, ':')) + '] ~' + mobo['name'],\n\t\t\t'Region'\t\t: '[%s] %s / [%s]'%(region[0], region[1], mobo['type']),\n\t\t\t'SN / Mobo SN'\t: getNorData(f, 'SN', True)+' / '+getNorData(f, 'MB_SN', True),\n\t\t\t'Southbridge'\t: '%s [%s] [%02X:%02X]'%(SB['name'], SB['ic'], SB['code'][0], SB['code'][1]),\n\t\t\t'Torus (WiFi)'\t: '%s [0x%02X]'%(torus['name'],torus['code']),\n\t\t\t'MAC'\t\t\t: Utils.hex(getNorData(f, 'MAC'),':'),\n\t\t\t'HDD'\t\t\t: hdd,\n\t\t\t'FW (active)'\t: fw['c'] + ' ['+active_slot.upper()+']' + (' [min '+fw['min']+']' if fw['min'] else ''),\n\t\t\t'FW (backup)'\t: ' <-> '.join(fw['b']),\n\t\t\t'GDDR5'\t\t\t: ('0x{:02X} {:d}MHz | 0x{:02X} {:d}MHz').format(*getMemClock(f)),\n\t\t\t'SAMU BOOT'\t\t: ('%d [0x%02X]')%(samu, samu),\n\t\t\t'UART'\t\t\t: (Lang.STR_ON if getNorData(f, 'UART')[0] == 1 else Lang.STR_OFF),\n\t\t\t'Slot switch'\t: getSlotSwitchInfo(f),\n\t\t}\n\t\n\treturn info\n\n\n\ndef getCanonicalName(fpath):\n\twith open(fpath, 'rb') as f:\n\t\t\n\t\tsku = getNorData(f, 'SKU', True)[:9].replace('-','')\n\t\tsn = getNorData(f, 'SN', True)\n\t\tsn = sn if sn else '0'*10\n\t\tsb = getSouthBridge(f)['ic'][-2:]\n\t\tmobo = getMobo(getNorData(f, 'BOARD_ID'))['name']\n\t\tslot = 'a' if getNorData(f, 'ACT_SLOT') == b'\\x00' else 'b'\n\t\tfw = getNorFW(f, slot)\n\t\tfws = '-'.join(fw['b'])\n\t\n\treturn '_'.join([sku, sn, sb, mobo, fw['c'], slot, fws]).upper()"
  },
  {
    "path": "utils/slb2.py",
    "content": "#==========================================================\n# 2BLS utils\n# part of ps4 wee tools project\n#==========================================================\nimport os, ctypes\n\n\n\nSLB2_HEADER = b'SLB2'\nSLB2_BLOCK_SIZE = 0x200\n\n\n\nclass SLB2Header(ctypes.Structure):\n    _pack_ = 1\n    _fields_ = [\n        (\"magic\",\t\tctypes.c_char * 4),\t\t# \"SLB2\"\n        (\"version\",\t\tctypes.c_uint32),\t\t# ex: 1\n        (\"flags\",\t\tctypes.c_uint32),\t\t# ex: 0\n        (\"entries\",\t\tctypes.c_uint32),\n        (\"blocks\",\t\tctypes.c_uint32),\n        (\"reserved\",\tctypes.c_uint32 * 3), \t# padding for alignment\n    ]\n\nclass SLB2Entry(ctypes.Structure):\n    _pack_ = 1\n    _fields_ = [\n        (\"start\",\t\tctypes.c_uint32),\n        (\"size\",\t\tctypes.c_uint32),\n        (\"reserved\",\tctypes.c_uint8 * 8), \t# padding for alignment\n        (\"name\",\t\tctypes.c_char * 32)\n    ]\n\n\n\ndef align(size, block):\n\treturn size + (0 if size % block == 0 else block - (size % block))\n\n\n\ndef getGet2BLSInfo(data):\n\te = {}\n\th = {}\n\t\n\theader = SLB2Header.from_buffer_copy(data)\n\t\n\th['magic']\t\t= header.magic.decode('utf-8')\n\th['version']\t= header.version\n\th['entries']\t= header.entries\n\th['blocks']\t\t= header.blocks\n\th['data']\t\t= len(data)\n\th['size']\t\t= header.blocks * SLB2_BLOCK_SIZE\n\t\n\tfor i in range(header.entries):\n\t\toffset = ctypes.sizeof(SLB2Header) + ctypes.sizeof(SLB2Entry) * i\n\t\tentry = SLB2Entry.from_buffer_copy(data[offset:offset + ctypes.sizeof(SLB2Entry)])\n\t\t\n\t\te[i] = {\n\t\t\t'name':\t\tentry.name.decode('utf-8'),\n\t\t\t'start':\tentry.start,\n\t\t\t'offset':\tentry.start * SLB2_BLOCK_SIZE,\n\t\t\t'size':\t\tentry.size,\n\t\t}\n\t\n\treturn {'header':h, 'entries':e}\n\n\n\ndef build2BLS(files):\n\t\n\tif len(files) == 0:\n\t\treturn -1\n\t\n\tdata = b''\n\tentries = b''\n\t\n\thsize = ctypes.sizeof(SLB2Header) + ctypes.sizeof(SLB2Entry) * len(files)\n\th_size = align(hsize, SLB2_BLOCK_SIZE)\n\th_blocks = h_size // SLB2_BLOCK_SIZE\n\t\n\tlast_block = h_blocks\n\t\n\tfor i in range(len(files)):\n\t\t\n\t\tfname = os.path.basename(files[i])\n\t\tfsize = os.path.getsize(files[i])\n\t\tf_size = align(fsize,SLB2_BLOCK_SIZE)\n\t\tf_blocks = f_size // SLB2_BLOCK_SIZE\n\t\tf_padding = f_size - fsize\n\t\t\n\t\tentry = SLB2Entry(start=last_block, size=fsize, name=bytes(fname, 'ascii'))\n\t\tentries += bytes(entry)\n\t\t\n\t\tlast_block += f_blocks\n\t\t\n\t\twith open(files[i],'rb') as f:\n\t\t\tdata += f.read()\n\t\t\n\t\tif f_padding > 0:\n\t\t\tdata += b'\\x00'*f_padding\n\t\n\te_padding = h_size - (ctypes.sizeof(SLB2Header) + len(entries))\n\tif e_padding > 0:\n\t\tentries += b'\\x00'*e_padding\n\t\n\theader = SLB2Header()\n\t\n\theader.magic = SLB2_HEADER\n\theader.version = 1\n\theader.flags = 0\n\theader.entries = len(files)\n\theader.blocks = last_block\n\t\n\treturn bytes(header) + entries + data\n\t"
  },
  {
    "path": "utils/spiway.py",
    "content": "#==========================================================\n# SPIWAY (original idea by Judges)\n# https://github.com/hjudges/NORway\n# part of ps4 wee tools project\n# https://github.com/andy-man/ps4-wee-tools\n#==========================================================\nimport time\nfrom lang._i18n_ import *\nfrom utils.serial import WeeSerial\n\n\n\nclass SpiFlasher(WeeSerial):\n\t\n\tVERSION\t\t\t= [0,60] # Teensy programm HW version here\n\tDISABLE_PULLUPS\t= 0\n\t\n\tBUFFER\t\t\t= b''\n\tBUFFER_SIZE\t\t= 0x8000\n\t\n\tICs = [\n\t\t#Ven_ID\tDev_ID\tBrand Type\tBlocks\tAddr_length\t3B_cmd\tSec_per_block\tSec_count\n\t\t[0xC2,\t0x1920,\t'Macronix',\t'MX25L25635F',\t512,\t4,\t0],\n\t\t[0xC2,\t0x1820,\t'Macronix',\t'MX25L12872F',\t256,\t3,\t0],\n\t\t[0xC2,\t0x1120,\t'Macronix',\t'MX25L1006E',\t2,\t\t3,\t0],\n\t\t\n\t\t[0xEF,\t0x10,\t'Winbond',\t'W25X10CL',\t\t2,\t\t3,\t0],\n\t\t[0xEF,\t0x13,\t'Winbond',\t'W25Q80BV',\t\t16,\t\t3,\t0],\n\t\t[0xEF,\t0x1940,\t'Winbond',\t'W25Q256FV',\t512,\t4,\t1],\n\t\t[0xEF,\t0x1570,\t'Winbond',\t'25Q16JVXXM',\t32,\t\t3,\t0],\n\t\t[0xEF,\t0x1540,\t'Winbond',\t'25Q16JVXXQ',\t32,\t\t3,\t0],\n\t\t[0xEF,\t0x60,\t'Winbond',\t'W25Q128JW',\t256,\t3,\t0],\n\t\t\n\t\t[0x01,\t0x1960,\t'Spansion',\t'S25FL256L',\t512,\t4,\t0],\n\t]\n\t\n\t# Main config\n\tclass Config:\n\t\tIC_ID\t\t\t= 0\n\t\tVENDOR_ID\t\t= 0\n\t\tDEVICE_ID\t\t= 0\n\t\tBRAND\t\t\t= STR_UNKNOWN\n\t\tTYPE\t\t\t= STR_UNKNOWN\n\t\tBLOCK_COUNT\t\t= 0\n\t\tADDR_LEN\t\t= 0\n\t\tUSE_3B_CMD\t\t= 0\n\t\tSEC_PER_BLOCK\t= 0\n\t\tSEC_SIZE\t\t= 0\n\t\tBLOCK_SIZE\t\t= 0\n\t\tSEC_COUNT\t\t= 0\n\t\tTOTAL_SIZE\t\t= 0\n\t\t\n\t\t@classmethod\n\t\tdef reset(cls):\n\t\t\tcls.load([0]*12, -1)\n\t\t\n\t\t@classmethod\n\t\tdef load(cls, cfg, id = 0):\n\t\t\t\n\t\t\tcls.IC_ID\t\t\t= id + 1\n\t\t\tcls.VENDOR_ID\t\t= cfg[0]\n\t\t\tcls.DEVICE_ID\t\t= cfg[1]\n\t\t\tcls.BRAND\t\t\t= cfg[2]\n\t\t\tcls.TYPE\t\t\t= cfg[3]\n\t\t\tcls.BLOCK_COUNT\t\t= cfg[4]\n\t\t\tcls.ADDR_LEN\t\t= cfg[5]\n\t\t\tcls.USE_3B_CMD\t\t= cfg[6] if len(cfg) > 6 else 0\n\t\t\tcls.SEC_PER_BLOCK\t= cfg[7] if len(cfg) > 7 else 16\n\t\t\tcls.SEC_SIZE\t\t= cfg[8] if len(cfg) > 8 else 0x1000\n\t\t\t\n\t\t\tcls.BLOCK_SIZE\t\t= cls.SEC_PER_BLOCK\t* cls.SEC_SIZE\n\t\t\tcls.SEC_COUNT\t\t= cls.SEC_PER_BLOCK\t* cls.BLOCK_COUNT\n\t\t\tcls.TOTAL_SIZE\t\t= cls.BLOCK_SIZE\t* cls.BLOCK_COUNT\n\t\n\t# Teensy commands\n\tclass Cmd:\n\t\tPING1\t\t\t\t= 0  # Params: - / Return: VERSION_MAJOR[1]\n\t\tPING2\t\t\t\t= 1  # Params: - / Return: VERSION_MINOR[1] + Freemem[2]\n\t\tBOOTLOADER\t\t\t= 2  # Params: - / Return: - / Exit to bootloader mode\n\t\tIO_LOCK\t\t\t\t= 3  # - not implemented - in spiway fw\n\t\tIO_RELEASE\t\t\t= 4  # - not implemented - in spiway fw\n\t\tPULLUPS_DISABLE\t\t= 5  # Params: - / Return: - / Set IO_PULLUPS to 0x00\n\t\tPULLUPS_ENABLE\t\t= 6  # Params: - / Return: - / Set IO_PULLUPS to 0xFF\n\t\tSPI_ID\t\t\t\t= 7  # Params: - / Return: VENDOR_ID[1] + DEVICE_ID[2]\n\t\tSPI_READBLOCK\t\t= 8  # Params: ADDRESS[4] / Return: STATUS[1] + DATA[BLOCK_SIZE]\n\t\tSPI_WRITESECTOR\t\t= 9  # Params: ADDRESS[4] + DATA[SEC_SIZE] / Return: STATUS[1]\n\t\tSPI_ERASEBLOCK\t\t= 10 # Params: ADDRESS[4] / Return: STATUS[1]\n\t\tSPI_ERASECHIP\t\t= 11 # Params: - / Return: STATUS[1]\n\t\tSPI_3BYTE_ADDRESS\t= 12 # Params: - / Return: - / Set mode: SPI_ADDRESS_LENGTH = 3\n\t\tSPI_4BYTE_ADDRESS\t= 13 # Params: - / Return: - / Set mode: SPI_ADDRESS_LENGTH = 4\n\t\tSPI_3BYTE_CMDS\t\t= 14 # Params: - / Return: - / Set mode: SPI_USE_3B_CMDS = 1\n\t\tSPI_4BYTE_CMDS\t\t= 15 # Params: - / Return: - / Set mode: SPI_USE_3B_CMDS = 0\n\t\t# There is no RESET command. The only way to do it unplug teensy from USB\n\t\n\tdef __init__(self, port, ver = False):\n\t\tif port:\n\t\t\tsuper().__init__(port, {'baudrate':9600, 'timeout':300, 'write_timeout':120})\n\t\t\n\t\tself.BUFFER = b''\n\t\tself.DISABLE_PULLUPS = 0\n\t\tif ver != False:\n\t\t\tself.VERSION = ver\n\t\n\t# Main stuff\n\t\n\tdef __setConfig(self, ven_id = False, dev_id = False):\n\t\t\n\t\tself.Config.reset()\n\t\t\n\t\tif ven_id == False and dev_id == False:\n\t\t\treturn False\n\t\t\n\t\tfor id in range(len(self.ICs)):\n\t\t\tcfg = self.ICs[id]\n\t\t\tif cfg[0] == ven_id and cfg[1] == dev_id:\n\t\t\t\tself.Config.load(cfg, id)\n\t\t\t\treturn id\n\t\t\n\t\tself.Config.VENDOR_ID = ven_id\n\t\tself.Config.DEVICE_ID = dev_id\n\t\tself.error(STR_SPW_ERROR_CHIP)\n\t\t\n\t\treturn False\n\t\n\tdef __setAddress(self, address):\n\t\t# set address (msb first)\n\t\tself._write((address >> 24) & 0xFF)\n\t\tself._write((address >> 16) & 0xFF)\n\t\tself._write((address >> 8) & 0xFF)\n\t\tself._write(address & 0xFF)\n\t\n\tdef __setMode(self):\n\t\tself._write(self.Cmd.SPI_3BYTE_ADDRESS if self.Config.ADDR_LEN == 3 else self.Cmd.SPI_4BYTE_ADDRESS)\n\t\tself._write(self.Cmd.SPI_3BYTE_CMDS if self.Config.USE_3B_CMD == 1 else self.Cmd.SPI_4BYTE_CMDS)\n\t\n\tdef __getStatusByCode(self, code):\n\t\t\n\t\tif code == b'K':\n\t\t\treturn STR_OK\n\t\tif code == b'T':\n\t\t\treturn STR_SPW_ERROR_WRITE\n\t\tif code == b'R':\n\t\t\treturn STR_SPW_ERROR_READ\n\t\tif code == b'V':\n\t\t\treturn STR_SPW_ERROR_VERIFY\n\t\tif code == b'P':\n\t\t\treturn STR_SPW_ERROR_PROTECTED\n\t\tif code == b'U':\n\t\t\treturn STR_SPW_ERROR_UNKNOWN\n\t\t\n\t\treturn STR_SPW_ERROR_UNK_STATUS + ' [0x{:02X}]'.format(code[0])\n\t\n\tdef __getStatus(self):\n\t\t# read status byte\n\t\tres = self._read(1)\n\t\t\n\t\tif (res != b'K'): # K = ok\n\t\t\tself.error('\\n '+self.__getStatusByCode(res))\n\t\t\tself.close()\n\t\t\treturn False\n\t\t\n\t\treturn True\n\t\n\tdef __eraseBlock(self, block):\n\t\t\n\t\tself.__setMode()\n\t\tself._write(self.Cmd.SPI_ERASEBLOCK)\n\t\tself.__setAddress(block * self.Config.BLOCK_SIZE)\n\t\t\n\t\tif self.__getStatus() == False:\n\t\t\tself.error(STR_SPW_ERROR_ERASE_BLK%block)\n\t\t\treturn False\n\t\t\n\t\treturn True\n\t\n\tdef __readBlock(self, block):\n\t\t\n\t\tself.__setMode()\n\t\tself._write(self.Cmd.SPI_READBLOCK)\n\t\tself.__setAddress(block * self.Config.BLOCK_SIZE)\n\t\t\n\t\tif self.__getStatus() == False:\n\t\t\treturn False\n\t\t\n\t\tdata = self._read(self.Config.BLOCK_SIZE)\n\t\treturn data\n\t\n\tdef __writeSector(self, data, sector):\n\t\tif len(data) != self.Config.SEC_SIZE:\n\t\t\tself.error(STR_SPW_ERROR_DATA_SIZE%(len(data)))\n\t\t\n\t\tself.__setMode()\n\t\tself._write(self.Cmd.SPI_WRITESECTOR)\n\t\tself.__setAddress(sector * self.Config.SEC_SIZE)\n\t\t\n\t\tself._write(data)\n\t\t\n\t\treturn self.__getStatus()\n\t\n\tdef __writeBlock(self, data, block, verify):\n\t\tdsize = len(data)\n\t\t\n\t\tif dsize != self.Config.BLOCK_SIZE:\n\t\t\tself.error(STR_SPW_ERROR_LENGTH%(dsize, self.Config.BLOCK_SIZE))\n\t\t\treturn False\n\t\t\n\t\tsector = 0\n\t\twhile sector < self.Config.SEC_PER_BLOCK:\n\t\t\treal_sector = (block * self.Config.SEC_PER_BLOCK) + sector\n\t\t\t# At first erase block\n\t\t\tif sector == 0:\n\t\t\t\tself.__eraseBlock(block)\n\t\t\t\n\t\t\tres = 1\n\t\t\tself.__writeSector(data[sector*self.Config.SEC_SIZE:(sector+1)*self.Config.SEC_SIZE], real_sector)\n\t\t\tif res == False:\n\t\t\t\treturn False\n\t\t\t\n\t\t\tsector += 1\n\t\t\n\t\t# verification\n\t\tif verify == 1:\n\t\t\tres = self.__readBlock(block)\n\t\t\tif res == False or data != res:\n\t\t\t\tself.error(STR_SPW_ERROR_BLK_CHK%block)\n\t\t\t\treturn  -1\n\t\t\n\t\treturn True\n\t\n\tdef __checkBC(self, block, count):\n\t\t\n\t\tif block >= self.Config.BLOCK_COUNT:\n\t\t\tblock = self.Config.BLOCK_COUNT - 1\n\t\t\n\t\tif count == 0 or (block + count) > self.Config.BLOCK_COUNT:\n\t\t\tcount = self.Config.BLOCK_COUNT - block\n\t\t\n\t\treturn [block, count]\n\t\n\t# Public methods\n\t\n\tdef bootloader(self):\n\t\tself._write(self.Cmd.BOOTLOADER)\n\t\tself._flush()\n\t\n\tdef reset(self):\n\t\t# TODO: Find a way to reset, there is no cmd for reset in Teensy FW\n\t\tself._flush()\n\t\tself.BUFFER = b''\n\t\n\tdef ping(self):\n\t\tself._write(self.Cmd.PING1)\n\t\tself._write(self.Cmd.PING2)\n\t\t\n\t\tinfo = self._read(4)\n\t\tinfo = b'\\x00'*4 if len(info) != 4 else info\n\t\t\n\t\tver = [info[0], info[1]]\n\t\tram = (info[2] << 8) | info[3]\n\t\t\n\t\tif ver != self.VERSION:\n\t\t\tmaj, min = self.VERSION\n\t\t\tself.error(STR_SPW_ERROR_VERSION%(maj, min))\n\t\t\tself.close()\n\t\t\n\t\treturn {'RAM':ram, 'VER':ver}\n\t\n\tdef getChipId(self):\n\t\tself._write(self.Cmd.PULLUPS_DISABLE if self.DISABLE_PULLUPS else self.Cmd.PULLUPS_ENABLE)\n\t\tself._write(self.Cmd.SPI_ID)\n\t\t\n\t\tinfo = self._read(3)\n\t\tinfo = b'\\x00'*3 if len(info) != 3 else info\n\t\t\n\t\tven_id = info[0]\n\t\tdev_id = (info[2] << 8) | info[1]\n\t\t\n\t\tself.__setConfig(ven_id, dev_id)\n\t\n\tdef getChipInfo(self):\n\t\tself.getChipId()\n\t\tcfg = self.Config\n\t\t\n\t\tinfo = {\n\t\t\t'Vendor / Device'\t: '0x%02X / 0x%04X'%(cfg.VENDOR_ID, cfg.DEVICE_ID),\n\t\t\t'Brand'\t\t\t\t: cfg.BRAND,\n\t\t\t'Chip type'\t\t\t: cfg.TYPE,\n\t\t\t'Chip size'\t\t\t: '%d MB'%(cfg.TOTAL_SIZE // 1024**2),\n\t\t\t'Sector size'\t\t: '%d bytes'%cfg.SEC_SIZE,\n\t\t\t'Block size'\t\t: '%d bytes'%cfg.BLOCK_SIZE,\n\t\t\t'Flash config'\t\t: '%d:%d | %d | %d | %d'%(cfg.ADDR_LEN, cfg.USE_3B_CMD, cfg.SEC_PER_BLOCK, cfg.BLOCK_COUNT, cfg.SEC_COUNT),\n\t\t}\n\t\t\n\t\treturn info\n\t\n\tdef eraseChip(self, block = 0, count = 0):\n\t\t\n\t\t# Check if chip config is known\n\t\tif self.Config.IC_ID <= 0: return False\n\t\t\n\t\tblock, count = self.__checkBC(block, count)\n\t\t\n\t\t# Doesn't allow to handle progress\n\t\t#self._write(self.Cmd.SPI_ERASECHIP) \n\t\t\n\t\tkb_pb = self.Config.BLOCK_SIZE // 1024\n\t\ttotal = count * kb_pb\n\t\t\n\t\tstart = time.time()\n\t\t\n\t\tfor b in range(block, block+count):\n\t\t\tres = self.__eraseBlock(b)\n\t\t\tif res == False:\n\t\t\t\tself.error(STR_SPW_ERROR_ERASE)\n\t\t\t\treturn False\n\t\t\tprogress = (b - block + 1) * kb_pb\n\t\t\tpercent = 100 if progress == total else progress // (total / 100)\n\t\t\telapsed = UI.cyan(STR_SECONDS%(time.time() - start))\n\t\t\t\n\t\t\tself.printf(STR_SPW_PROGRESS%(b, progress, total, percent, elapsed), True)\n\t\t\n\t\treturn True\n\t\n\tdef readChip(self, block = 0, count = 0):\n\t\t\n\t\t# Check if chip config is known\n\t\tif self.Config.IC_ID <= 0: return False\n\t\t\n\t\tblock, count = self.__checkBC(block, count)\n\t\t\n\t\tdata = bytes()\n\t\tkb_pb = self.Config.BLOCK_SIZE // 1024\n\t\ttotal = count * kb_pb\n\t\t\n\t\tstart = time.time()\n\t\t\n\t\tfor b in range(block, block+count):\n\t\t\tbuf = self.__readBlock(b)\n\t\t\tif buf == False:\n\t\t\t\treturn False\n\t\t\tdata += buf\n\t\t\t\n\t\t\tprogress = (b - block + 1) * kb_pb\n\t\t\tpercent = 100 if progress == total else progress // (total / 100)\n\t\t\telapsed = UI.cyan(STR_SECONDS%(time.time() - start))\n\t\t\t\n\t\t\tself.printf(STR_SPW_PROGRESS%(b, progress, total, percent, elapsed), True)\n\t\t\n\t\treturn data\n\t\n\tdef writeChip(self, data, verify = 0, block = 0, count = 0):\n\t\t\n\t\t# Check if chip config is known\n\t\tif self.Config.IC_ID <= 0: return False\n\t\t\n\t\tdsize = len(data)\n\t\t\n\t\tblock, count = self.__checkBC(block, count)\n\t\t\n\t\tif dsize % self.Config.BLOCK_SIZE:\n\t\t\tself.error(STR_SPW_ERR_BLOCK_ALIGN%self.Config.BLOCK_SIZE)\n\t\t\treturn False\n\t\t\n\t\tif dsize != count * self.Config.BLOCK_SIZE:\n\t\t\tself.error(STR_SPW_ERR_DATA_SIZE%(dsize, count * self.Config.BLOCK_SIZE))\n\t\t\treturn False\n\t\t\n\t\tif block + count > self.Config.BLOCK_COUNT:\n\t\t\tself.error(STR_SPW_ERR_OVERFLOW%self.Config.BLOCK_COUNT)\n\t\t\treturn False\n\t\t\n\t\tkb_pb = self.Config.BLOCK_SIZE // 1024\n\t\ttotal = count * kb_pb\n\t\t\n\t\tstart = time.time()\n\t\t\n\t\tfor b in range(block, block + count):\n\t\t\t\n\t\t\toffset = self.Config.BLOCK_SIZE * (b - block)\n\t\t\t\n\t\t\tres = self.__writeBlock(data[offset:offset + self.Config.BLOCK_SIZE], b, verify)\n\t\t\tif res == False:\n\t\t\t\tself.error(STR_SPW_ERROR_WRITE)\n\t\t\t\treturn False\n\t\t\t\"\"\"\n\t\t\ttime.sleep(0.01)\n\t\t\t\"\"\"\n\t\t\tprogress = (b - block + 1) * kb_pb\n\t\t\tpercent = 100 if progress == total else progress // (total / 100)\n\t\t\telapsed = UI.cyan(STR_SECONDS%(time.time() - start))\n\t\t\t\n\t\t\tself.printf(STR_SPW_PROGRESS%(b, progress, total, percent, elapsed), True)\n\t\t\t\n\t\t\tb += 1\n\t\t\n\t\treturn True"
  },
  {
    "path": "utils/syscon.py",
    "content": "#==========================================================\n# Syscon utils\n# part of ps4 wee tools project\n# https://github.com/andy-man/ps4-wee-tools\n#==========================================================\nfrom utils.utils import *\nimport lang._i18n_ as Lang\n\n\n\nBLOCK_SIZE\t= 0x400\nBLOCK_COUNT\t= 512\nDUMP_SIZE\t= BLOCK_SIZE * BLOCK_COUNT\n\nMD5_SC_FW = {\n\t'125cd5cc2d854e5f2812f060a7031044':'1.00_0',\n\t'baea46d4d5bf6d9b00b51bda40db0f48':'1.0b_0',\n\t'6741017a1499384dd7b07dc6def28d1e':'2.06_1',\n\t'fa4dddb3f17315ecc028bf725b7702b1':'2.06_2',\n\t'1c70248c249f0ac4f0c5555499afa6ef':'2.13_1',\n\t'45ebe778279ca58b6bf200ff1bd2cb9e':'2.13_2',\n\t'581d42d6a6c83992521420a23f02427c':'2.13_3',\n\t\"D72B5263F90BF0A196764F8C8572C952\":\"2.13_4\",\n\t\"D89B1256E2A3B2D4C3044BFB5F44E8A5\":\"2.13_5\",\n\t'39a1bdd270d0dc2bdce8d81e7525af41':'2.23_1',\n\t'a7d36425e5881770b2e9c4f925ced39f':'2.23_2',\n\t'c42c250bbb7b30acd2f3960cfad9c8e3':'2.23_3',\n\t'f7e0a6157fa9c04944b927051b5d4196':'2.23_4',\n\t'263bd07f5b80f64aca8a107fee27ee08':'2.26_0',\n}\n\nSC_AREAS = {\n\t'MAGIC_1':\t{'o':0x00000,\t'l':2,\t\t't':'b',\t'n':b'\\x80\\x01'},\n\t'MAGIC_2':\t{'o':0x000C4,\t'l':10,\t\t't':'s',\t'n':b':Not:Used:'},\n\t'MAGIC_3':\t{'o':0x00132,\t'l':14,\t\t't':'s',\t'n':b' Sony Computer'},\n\t'FW':\t\t{'o':0x00000,\t'l':0x60000,'t':'b',\t'n':'Syscon FW'},\n\t'DEBUG':\t{'o':0x000C3,\t'l':1,\t\t't':'b',\t'n':'Debug flag 0x04=off 0x85/0x84=on'},\n\t'VERSION':\t{'o':0x00100,\t'l':4,\t\t't':'b',\t'n':'FW version'},\n\t'SNVS':\t\t{'o':0x60000,\t'l':0xE000,\t't':'b',\t'n':'SNVS storage'},\n\t'NVS':\t\t{'o':0x6E000,\t'l':0x2000,\t't':'b',\t'n':'NVS storage'},\n}\n\nSC_E_TYPE = {\n\t'MODE0'\t\t: 0x00,\n\t'MODE1'\t\t: 0x01,\n\t'MODE2'\t\t: 0x02,\n\t'MODE3'\t\t: 0x03,\n\t'BOOT0'\t\t: 0x04,\n\t'BOOT1'\t\t: 0x05,\n\t'BOOT2'\t\t: 0x06,\n\t'BOOT3'\t\t: 0x07,\n\t'FW_A'\t\t: 0x08,\n\t'FW_B'\t\t: 0x09,\n\t'LIC1'\t\t: 0x0A,\n\t'LIC2'\t\t: 0x0B,\n\t'PRE0C'\t\t: 0x0C,\n\t'PRE0D'\t\t: 0x0D,\n\t'PRE0E'\t\t: 0x0E,\n\t'PRE0F'\t\t: 0x0F,\n\t'PRE20'\t\t: 0x20,\n\t'PRE21'\t\t: 0x21,\n\t'PRE22'\t\t: 0x22,\n\t'PRE23'\t\t: 0x23,\n\t'SYS24'\t\t: 0x24,\n\t'SYS25'\t\t: 0x25,\n\t'SYS26'\t\t: 0x26,\n\t'SYS27'\t\t: 0x27,\n\t'SYS28'\t\t: 0x28,\n\t'SYS29'\t\t: 0x29,\n\t'SYS2A'\t\t: 0x2A,\n\t'SYS2B'\t\t: 0x2B,\n}\n\nSC_TYPES_BOOT\t= [SC_E_TYPE['BOOT0'], SC_E_TYPE['BOOT1'], SC_E_TYPE['BOOT2'], SC_E_TYPE['BOOT3']]\nSC_TYPES_MODES\t= [SC_E_TYPE['MODE0'], SC_E_TYPE['MODE1'], SC_E_TYPE['MODE2'], SC_E_TYPE['MODE3']]\nSC_TYPES_UPD\t= [SC_E_TYPE['FW_A'], SC_E_TYPE['FW_B'], SC_E_TYPE['LIC1'], SC_E_TYPE['LIC2']]\nSC_TYPES_PRE0\t= [SC_E_TYPE['PRE0C'], SC_E_TYPE['PRE0D'], SC_E_TYPE['PRE0E'], SC_E_TYPE['PRE0F']]\nSC_TYPES_PRE2\t= [SC_E_TYPE['PRE20'], SC_E_TYPE['PRE21'], SC_E_TYPE['PRE22'], SC_E_TYPE['PRE23']]\nSC_TYPES_SYS0\t= [SC_E_TYPE['SYS24'], SC_E_TYPE['SYS25'], SC_E_TYPE['SYS26'], SC_E_TYPE['SYS27']]\nSC_TYPES_SYS2\t= [SC_E_TYPE['SYS28'], SC_E_TYPE['SYS29'], SC_E_TYPE['SYS2A'], SC_E_TYPE['SYS2B']]\n\n# Functions ===============================================\n\ndef setSysconData(file, key, val):\n\tif not key in SC_AREAS:\n\t\treturn False\n\treturn setData(file, SC_AREAS[key]['o'], val)\n\n\n\ndef getSysconData(fod, key):\n\tif not key in SC_AREAS:\n\t\treturn False\n\tif isinstance(fod, bytes):\n\t\treturn getMemData(fod, SC_AREAS[key]['o'], SC_AREAS[key]['l'])\n\telse:\n\t\treturn getData(fod, SC_AREAS[key]['o'], SC_AREAS[key]['l'])\n\n\n\ndef checkSysconData(fod, keys):\n\tfor key in keys:\n\t\tif getSysconData(fod, key) != SC_AREAS[key]['n']:\n\t\t\treturn False\n\treturn True\n\n\n\ndef checkSysconFW(file):\n\tfw = bytearray(getSysconData(file, 'FW'))\n\t# All hashes was calculated for non-debug syscon (0x04)\n\tfw[SC_AREAS['DEBUG']['o']] = 0x04\n\tmd5 = hashlib.md5(fw).hexdigest()\n\t\n\tif md5 in MD5_SC_FW:\n\t\treturn {'md5':md5, 'fw':MD5_SC_FW[md5]}\n\telse:\n\t\treturn {'md5':md5, 'fw':False}\n\n\n\ndef getEntriesByType(type, entries):\n\tindexes = []\n\tfor i in range(len(entries)-len(type)+1):\n\t\tfound = True\n\t\tfor k in range(len(type)):\n\t\t\tif entries[i+k][1] != type[k]:\n\t\t\t\tfound = False\n\t\t\t\tbreak\n\t\tif found:\n\t\t\tindexes.append(i)\n\treturn indexes\n\n\n\ndef getRecordPos(index, nvs):\n\tdata = {}\n\tif index < 0:\n\t\treturn data\n\t\n\tblock_order = nvs.getDataBlocksOrder()\n\trecords_per_block = nvs.cfg.getDataRecordsCount()\n\t\n\tdata['block'] = block_order[len(block_order)-1 - index // records_per_block]\n\tdata['num'] = index % records_per_block\n\tdata['offset'] = nvs.getDataBlockOffset(data['block'], True) + data['num'] * NvsEntry.getEntrySize()\n\t\n\treturn data\n\n\n\ndef isSysconPatchable(records):\n\t\n\tinds = getEntriesByType(SC_TYPES_UPD, records)\n\t\n\tif len(inds) == 0:\n\t\treturn 0\n\t\n\tlast_fw_ind = inds[-1]\n\t\n\ttype = NvsEntry(records[last_fw_ind - len(SC_TYPES_UPD)]).getIndex()\n\tif not type in SC_TYPES_UPD:\n\t\treturn 2\n\t\n\tif last_fw_ind == len(records) - len(SC_TYPES_UPD):\n\t\treturn 1\n\t\n\tfor i in range(last_fw_ind, len(records)):\n\t\ttype = NvsEntry(records[i]).getIndex()\n\t\tif type in SC_TYPES_PRE0 or type in SC_TYPES_PRE2:\n\t\t\treturn 0\n\t\n\treturn 3\n\n# NVS Parser ==============================================\n\nclass NvsConfig:\n\t\n\tcfg = {}\n\t\n\tdef __init__(self, cfg):\n\t\tself.cfg = cfg\n\t\n\tdef getOffset(self):\n\t\treturn self.cfg['offset']\n\t\n\tdef getHeaderLength(self):\n\t\treturn self.cfg['header']['length']\n\t\n\tdef getHeaderCount(self):\n\t\treturn self.cfg['header']['count']\n\t\n\tdef getHeaderSize(self):\n\t\treturn self.getHeaderLength() * self.getHeaderCount()\n\t\n\tdef getDataFlatLength(self):\n\t\treturn self.cfg['data']['flat']\n\t\n\tdef getDataRecordsLength(self):\n\t\treturn self.cfg['data']['records']\n\t\n\tdef getDataCount(self):\n\t\treturn self.cfg['data']['count']\n\t\n\tdef getDataLength(self):\n\t\treturn self.getDataFlatLength() + self.getDataRecordsLength()\n\t\n\tdef getDataSize(self):\n\t\treturn self.getDataLength() * self.getDataCount()\n\t\n\tdef getDataRecordsCount(self):\n\t\treturn self.getDataRecordsLength() // NvsEntry.getEntrySize()\n\n\n\nclass NvsEntry:\n\t\n\tentry = b''\n\t\n\tdef __init__(self, buf=b''):\n\t\tif len(buf) < self.getEntryHeadSize() or self.checkMagic(buf) == 0:\n\t\t\tself.entry = [0x00] * self.getEntryHeadSize()\n\t\telse:\n\t\t\tself.entry = bytearray(buf)\n\t\n\tdef getHeader(self):\n\t\treturn self.entry[:self.getEntryHeadSize()];\n\t\n\tdef getData(self):\n\t\treturn self.entry[self.getEntryHeadSize():self.getEntryHeadSize()+self.getEntryDataSize()];\n\t\n\tdef getEntry(self):\n\t\treturn self.entry\n\t\n\tdef getCounter(self):\n\t\treturn int.from_bytes(self.entry[4:4+3],\"little\")\n\t\n\tdef setCounter(self,val):\n\t\tself.entry[4+0] = val & 0xFF\n\t\tself.entry[4+1] = val >> 8 & 0xFF\n\t\tself.entry[4+2] = val >> 16 & 0xFF\n\t\n\tdef getIndex(self):\n\t\treturn int.from_bytes(self.entry[1:1+2],\"little\")\n\t\n\tdef setIndex(self, val):\n\t\tself.entry[1+0] = val & 0xFF\n\t\tself.entry[1+1] = val >> 8 & 0xFF\n\t\n\tdef getLink(self):\n\t\treturn int.from_bytes(self.entry[3:3+1],\"little\")\n\t\n\tdef setLink(self, val):\n\t\tself.entry[3] = val & 0xFF\n\t\n\tdef hasMagic(self):\n\t\treturn self.checkMagic(self.entry)\n\t\n\t@staticmethod\n\tdef checkMagic(e):\n\t\tm1 = 0b01 if e[0] == 0xA5 else 0\n\t\tm2 = 0b10 if e[7] == 0xC3 else 0\n\t\treturn m1 | m2\n\t\n\t@staticmethod\n\tdef getEntryHeadSize():\n\t\treturn 8\n\t\n\t@staticmethod\n\tdef getEntryDataSize():\n\t\treturn 8\n\t\n\t@staticmethod\n\tdef getEntrySize():\n\t\treturn 16\n\n\n\nclass NVStorage:\n\t\n\tcfg = NvsConfig({})\n\t\n\theader = b''\n\tdata = b''\n\t\n\tactive_volume = 0\n\tactive_volume_entry = NvsEntry('')\n\tactive_volume_entry_num = 1\n\t\n\tdef __init__(self, config, buffer):\n\t\tself.cfg = config\n\t\tif buffer and len(buffer):\n\t\t\tself.load(buffer)\n\t\n\t# General\n\n\tdef load(self, buf):\n\t\tself.header = buf[:self.cfg.getHeaderSize()]\n\t\tself.data = buf[len(self.header):]\n\t\tself.findActiveVolume()\n\t\n\tdef getHeader(self):\n\t\treturn self.header\n\t\n\tdef getData(self):\n\t\treturn self.data\n\t\n\tdef getBytes(self):\n\t\treturn self.header + self.data\n\t\n\t# Volumes\n\n\tdef getVolumeEntry(self, volume = 0, index = 0):\n\t\toffset = (index) * NvsEntry.getEntryHeadSize() + self.cfg.getHeaderLength() * volume;\n\t\treturn self.header[offset:offset + NvsEntry.getEntryHeadSize()]\n\t\n\tdef getLastVolumeEntryOffset(self, real = False):\n\t\treturn self.getVolumeEntryOffset(self.active_volume_entry_num, real)\n\t\n\tdef getVolumeEntryOffset(self, index, real = False):\n\t\toffset = NvsEntry.getEntryHeadSize() * index\n\t\treturn self.cfg.getOffset() + offset if real else offset\n\t\n\tdef getVolumeIndex(self, volume = 0):\n\t\tentry = NvsEntry(self.getVolumeEntry(volume,0))\n\t\treturn entry.getIndex()\n\n\tdef findActiveVolume(self):\n\t\tcounter = 0\n\t\tfor volume in range(0, self.cfg.getHeaderCount()):\n\t\t\t\n\t\t\tentries = self.getVolumeEntries(volume)\n\t\t\t\n\t\t\tif not len(entries): continue\n\t\t\t\n\t\t\tentry = NvsEntry(entries[-1])\n\n\t\t\tif entry.getCounter() > counter:\n\t\t\t\tcounter = entry.getCounter()\n\t\t\t\tself.active_volume = volume\n\t\t\t\tself.active_volume_entry = entry\n\t\t\t\tself.active_volume_entry_num = len(entries)-1\n\t\t\n\t\treturn self.active_volume\n\t\n\tdef getVolumeEntries(self, volume = 0):\n\t\t\n\t\tlength = self.cfg.getHeaderLength()\n\t\tstep = NvsEntry.getEntryHeadSize()\n\t\toffset = length * volume\n\t\tentries = list()\n\t\t\n\t\tfor i in range(0, offset+length, step):\n\t\t\tentry = self.header[i:i+step]\n\t\t\tif NvsEntry.checkMagic(entry) != 0:\n\t\t\t\tentries.append(entry)\n\t\t\n\t\treturn entries\n\t\n\t# Block Data\n\t\n\tdef getLastDataEntries(self):\n\t\treturn self.getDataBlockEntries(self.active_volume_entry.getLink())\n\t\n\tdef getLastDataBlockOffset(self, real = False):\n\t\treturn self.getDataBlockOffset(self.active_volume_entry.getLink(), real)\n\t\n\tdef getDataBlockOffset(self, index = 0, real = False):\n\t\toffset = self.cfg.getDataLength() * index\n\t\treturn self.cfg.getOffset() + self.cfg.getHeaderSize() + offset + self.cfg.getDataFlatLength() if real else offset\n\t\n\tdef getDataBlock(self, index = 0):\n\t\toffset = self.getDataBlockOffset(index)\n\t\treturn self.data[ offset : offset + self.cfg.getDataLength()]\n\t\n\tdef getDataBlockRecords(self, index = 0):\n\t\tblock = self.getDataBlock(index)\n\t\treturn block[self.cfg.getDataFlatLength():]\n\t\n\tdef getDataBlockEntries(self, index = 0):\n\t\t\n\t\tdata = self.getDataBlockRecords(index)\n\t\tentry_size = NvsEntry.getEntrySize()\n\t\tentries = []\n\t\t\n\t\tfor i in range(0, len(data), entry_size):\n\t\t\tentry = data[i:i+entry_size]\n\t\t\tif NvsEntry.checkMagic(entry) != 0:\n\t\t\t\tentries.append(entry)\n\t\t\n\t\treturn entries\n\t\n\tdef getDataBlocksOrder(self):\n\t\tv_entries = self.getVolumeEntries(self.active_volume)\n\t\tmax = len(v_entries) - self.cfg.getDataCount()\n\t\treturn [NvsEntry(v_entries[i-1]).getLink() for i in range(len(v_entries), max if max > 0 else 1, -1)]\n\t\n\tdef getAllDataEntries(self):\n\t\tentries = []\n\t\tfor n in self.getDataBlocksOrder():\n\t\t\tentries = self.getDataBlockEntries(n) + entries\n\t\treturn entries\n\t\n\t# Flat Data (cache)\n\t\n\tdef getLastFlatEntries(self):\n\t\treturn self.getFlatDataEntries(self.active_volume_entry.getLink())\n\t\n\tdef getLastFlatDataOffset(self, real = False):\n\t\treturn self.getFlatDataOffset(self.active_volume_entry.getLink(), real)\n\n\tdef getFlatDataOffset(self, index = 0, real = False):\n\t\toffset = self.cfg.getDataLength() * index\n\t\treturn self.cfg.getOffset() + self.cfg.getHeaderSize() + offset if real else offset\n\n\tdef getDataBlockFlat(self, index = 0):\n\t\tblock = self.getDataBlock(index)\n\t\treturn block[:self.cfg.getDataFlatLength()]\n\n\tdef getAllFlatData(self):\n\t\tflatdata = []\n\t\tfor n in self.getDataBlocksOrder():\n\t\t\tflatdata = [self.getDataBlockFlat(n)] + flatdata\n\t\treturn flatdata\n\t\n\tdef getFlatDataEntries(self, index = 0):\n\t\t\n\t\tflatdata = self.getDataBlockFlat(index)\n\t\tentry_size = NvsEntry.getEntrySize()\n\t\tentries = []\n\t\t\n\t\tfor i in range(0, len(flatdata), entry_size):\n\t\t\tentry = flatdata[i:i+entry_size]\n\t\t\tentries.append(entry)\n\t\t\n\t\tempty = 0\n\t\tfor i in range(len(entries)-1, -1, -1):\n\t\t\tif entries[i] != b'\\xFF'*entry_size:\n\t\t\t\tentries = entries[0:i+1]\n\t\t\t\tbreak\n\t\t\tempty += 1\n\t\t\n\t\tif empty == len(entries): entries = []\n\t\t\n\t\treturn entries\n\n\t# Helpers\n\n\tdef getOWC(self):\n\t\t# overwrite count\n\t\ttotal_entries = 0\n\t\tfor volume in range(0, self.cfg.getHeaderCount()):\n\t\t\tcount = len(self.getVolumeEntries(volume))\n\t\t\tif count > 0: total_entries += count - 1\n\n\t\treturn 0 if total_entries <= self.cfg.getDataCount() else total_entries // self.cfg.getDataCount()\n\n\tdef getRebuilded(self, entries = False, flatdata = False):\n\t\t# get all enties and flatdata\n\t\tentries = self.getAllDataEntries() if entries == False else entries\n\t\tflatdata = self.getAllFlatData() if flatdata == False else flatdata\n\t\tflatlength = self.cfg.getDataFlatLength()\n\t\t\n\t\t# fix counters\n\t\tfor i in range(len(entries)):\n\t\t\tentry = NvsEntry(entries[i])\n\t\t\tentry.setCounter(i+1)\n\t\t\tentries[i] = entry.getEntry()\n\t\t\n\t\t# create new\n\t\theader = b'\\xA5\\x00\\x00\\xFF\\xFF\\xFF\\xFF\\xC3'\n\t\tdata = b''\n\t\tfor i in range(self.cfg.getDataCount()):\n\t\t\tstart = i * self.cfg.getDataRecordsCount()\n\t\t\tif start >= len(entries):\n\t\t\t\tbreak\n\t\t\tdata += b'\\xFF'*flatlength if i >= len(flatdata) or len(flatdata[i]) < flatlength else flatdata[i]\n\t\t\tend = start + self.cfg.getDataRecordsCount()\n\t\t\tfor n in range(start, end if end <= len(entries) else len(entries)):\n\t\t\t\tdata += entries[n]\n\t\t\tfirst = NvsEntry(entries[start])\n\t\t\tfirst.setIndex(i)\n\t\t\tfirst.setLink(i)\n\t\t\theader += first.getHeader()\n\t\t\n\t\t# adjust padding\n\t\thsize = self.cfg.getHeaderSize()\n\t\tif len(header) < hsize:\n\t\t\theader += b'\\xFF'*(hsize - len(header))\n\t\t\n\t\tdsize = self.cfg.getDataSize()\n\t\tif len(data) < dsize:\n\t\t\tdata += b'\\xFF'*(dsize - len(data))\n\t\t\n\t\treturn header + data\n\n\n\nSNVS_CONFIG = NvsConfig({ \n\t\"offset\":\tSC_AREAS['SNVS']['o'],\n\t\"header\":\t{ \"length\":BLOCK_SIZE, \"count\":2 }, \n\t\"data\":\t\t{ \"flat\":BLOCK_SIZE, \"records\":BLOCK_SIZE * 5, \"count\":8 },\n})\n\nNVS_CONFIG = NvsConfig({ \n\t\"offset\":\tSC_AREAS['NVS']['o'],\n\t\"header\":\t{ \"length\":BLOCK_SIZE, \"count\":2 },\n\t\"data\":\t\t{ \"flat\":BLOCK_SIZE, \"records\":BLOCK_SIZE * 2, \"count\":2 },\n})\n\n\n\ndef getCanonicalName(fpath):\n\twith open(fpath, 'rb') as f:\n\t\t\n\t\tfw = getSysconData(f, 'VERSION')\n\t\tSNVS = NVStorage(SNVS_CONFIG, getSysconData(f, 'SNVS'))\n\t\trecords = SNVS.getAllDataEntries()\n\t\torder = ''.join(str(x) for x in SNVS.getDataBlocksOrder())\n\t\tstatus = Lang.MENU_SC_STATUSES[isSysconPatchable(records)].replace(' ','_').lower()\n\t\n\treturn '_'.join(['syscon', '%X.%02X'%(fw[0],fw[2]), '%d'%len(records), '['+order+']', status])"
  },
  {
    "path": "utils/utils.py",
    "content": "#==========================================================\n# Common utils\n# part of ps4 wee tools project\n#==========================================================\nimport hashlib, os, sys, math, random, datetime\nimport lang._i18n_ as Lang\n\n# Common consts\n\nINFO_FILE_SFLASH\t= '_sflash0_.txt'\nINFO_FILE_2BLS\t\t= '_2bls_.txt'\nROOT_PATH\t\t\t= os.path.dirname(sys.executable) if getattr(sys, 'frozen', False) else os.path.dirname(os.path.dirname(__file__))\n\n# Config stuff\n\nclass Config:\n\n\tcfg = {}\n\tfile = ''\n\tpath = ''\n\t\n\tdef __init__(self, file='config.ini'):\n\t\tself.file = file\n\t\tself.path = os.path.realpath(file)\n\t\tself.load()\n\n\tdef load(self, file = False):\n\n\t\tpath = file if file else self.path\n\n\t\tif not os.path.isfile(path):\n\t\t\tself.cfg = {}\n\t\t\treturn False\n\t\t\n\t\twith open(path, 'r') as f:\n\t\t\tlines = f.readlines()\n\t\t\n\t\tfor line in lines:\n\t\t\tline = line.strip()\n\t\t\tif len(line) == 0:\n\t\t\t\tcontinue\n\t\t\titem = line.split('=')\n\t\t\tkey = item[0].strip()\n\t\t\tval = '='.join(item[1:]) if len(item) >= 2 else ''\n\t\t\tif key: self.cfg[key] = val.strip()\n\n\t\treturn len(self.cfg)\n\n\tdef save(self, file = False):\n\t\t\n\t\tpath = file if file else self.path\n\n\t\ttry:\n\t\t\twith open(path, 'w') as f:\n\t\t\t\tfor key in self.cfg:\n\t\t\t\t\tf.write(f'{key} = {self.cfg[key]}\\n')\n\t\texcept Exception as e:\n\t\t\tprint('CFG Error:', e)\n\t\t\treturn False\n\n\t\treturn True\n\t\n\tdef get(self, key, default=''):\n\t\treturn self.cfg.get(key, default)\n\t\n\tdef set(self, key, val):\n\t\tself.cfg[key] = val\n\nAPP_CONFIG = Config()\n\n# Functions\n\ndef getEmcCmd(str):\n\tsum = 0\n\tfor i in range(len(str)):\n\t\tsum += ord(str[i])\n\treturn str + ':%02X'%(sum & 0xFF)\n\n\ndef ceil(a, b):\n\treturn (a // b) + (1 if a % b else 0)\n\n\ndef checkCtrl(s, key):\n\treturn ord(s) + 0x40 == ord(key)\n\n\n\ndef genRandBytes(size):\n\treturn bytearray(random.getrandbits(8) for _ in range(size))\n\n\n\ndef getMemData(data, offset, lenght):\n\tif len(data) >= offset+lenght:\n\t\treturn data[offset : offset+lenght]\n\treturn b''\n\n\n\ndef getData(file, off, len):\n\ttry:\n\t\tif isinstance(file, str):\n\t\t\twith open(file, 'rb') as f:\n\t\t\t\tf.seek(off)\n\t\t\t\treturn f.read(len)\n\t\telse:\n\t\t\tfile.seek(off)\n\t\t\treturn file.read(len)\n\texcept:\n\t\treturn ''\n\n\n\ndef setData(file, off, val):\n\ttry:\n\t\tif isinstance(file, str):\n\t\t\twith open(file, 'r+b') as f:\n\t\t\t\tf.seek(off)\n\t\t\t\treturn f.write(val)\n\t\telse:\n\t\t\tfile.seek(off)\n\t\t\treturn file.write(val)\n\texcept:\n\t\treturn ''\n\n\n\ndef checkFileSize(file, size):\n\tif not file or not os.path.isfile(file):\n\t\tprint(Lang.STR_FILE_NOT_EXISTS%file)\n\t\tinput(Lang.STR_BACK)\n\t\treturn False\n\t\n\tif os.stat(file).st_size != size:\n\t\tprint(Lang.STR_INCORRECT_SIZE%file)\n\t\tinput(Lang.STR_BACK)\n\t\treturn False\n\t\n\treturn True\n\n\n\ndef getFilePathWoExt(file, fix_spaces = False):\n\tfolder = os.path.dirname(file)\n\tname = '.'.join(os.path.basename(file).split('.')[:-1])\n\treturn folder + os.path.sep + (name.replace(' ','_') if fix_spaces else name)\n\n\n\ndef getFileMD5(file):\n    f = open(file, 'rb')\n    f.seek(0)\n    with f:\n        res = f.read()\n        return hashlib.md5(res).hexdigest()\n\n\n\ndef getFilesList(path, ext = ''):\n\tflist = []\n\tfor root, dirs, files in os.walk(path):\n\t\tfor name in files:\n\t\t\tif ext:\n\t\t\t\tif name.lower().endswith(ext):\n\t\t\t\t\tflist.append(os.path.join(root, name))\n\t\t\telse:\n\t\t\t\tflist.append(os.path.join(root, name))\n\t\n\treturn flist\n\n\n\ndef percent(part, whole):\n\treturn 100 * float(part)/float(whole) if whole else 0\n\n\n\ndef compareData(d1, d2, step = 1):\n\tmin = len(d1) if len(d1) < len(d2) else len(d2)\n\tok = 0\n\tfor i in range(0, min, step):\n\t\tif d1[i:i+step] == d2[i:i+step]:\n\t\t\tok += 1\n\treturn percent(ok, min // step)\n\n\n\ndef compareDataWithFiles(data, file_list, buf = 1, show_progress = False):\n\t\n\titems = []\n\tfor i in range(len(file_list)):\n\t\tif show_progress:\n\t\t\tprint('\\r'+Lang.STR_PROGRESS%int(percent(i,len(file_list))),end='')\n\t\twith open(file_list[i], 'rb') as f:\n\t\t\titems.append({'path':file_list[i], 'eq':compareData(data, f.read(), buf)})\n\t\n\titems.sort(key=lambda k: k['eq'], reverse=True)\n\t\n\treturn items\n\n\n\ndef getFileTime(path):\n\tts = os.stat(path).st_mtime\n\tdate = datetime.datetime.utcfromtimestamp(ts).strftime(\"%Y-%m-%d %H:%M:%S\")\n\treturn {'ts':ts, 'date':date}\n\n\n\ndef hex(buf,sep=' '):\n\tstr = \"\"\n\tfor c in buf:\n\t\tstr += '{:02X}'.format(c)+sep\n\treturn str[:len(str)-len(sep)]\n\n\n\ndef swapBytes(arr):\n\tres = [0]*len(arr)\n\tfor i in range(0,len(arr),2):\n\t\tres[i] = arr[i+1]\n\t\tres[i+1] = arr[i]\n\treturn bytes(res)\n\n\n\ndef getFileContents(path):\n\twith open(path, 'rb') as f:\n\t\treturn f.read()\n\n\n\ndef savePatchData(path, data, patch = False):\n\twith open(path, 'wb') as f:\n\t\tf.write(data)\n\tif patch:\n\t\tpatchFile(path, patch)\n\n\n\ndef patchFile(path, patch):\n\twith open(path, 'r+b') as f:\n\t\tfor i in range(len(patch)):\n\t\t\tf.seek(patch[i]['o'],0)\n\t\t\tf.write(patch[i]['d'])\n\n\n\ndef entropy(file):\n\t\n\twith open(file, \"rb\") as f:\n\t\tdata = f.read()\n\t\n\tvals = {byte: 0 for byte in range(2**8)}\n\tsize = len(data)\n\tpp = size // 100\n\t\n\tfor i in range(size):\n\t\tvals[data[i]] += 1\n\t\tif i % pp == 0:\n\t\t\tprint('\\r'+Lang.STR_PROGRESS%(i // pp),end='')\n\t\n\tprobs = [val / size for val in vals.values()]\n\tentropy = -sum(prob * math.log2(prob) for prob in probs if prob > 0)\n\t\n\treturn {'00':probs[0],'ff':probs[0xff],'ent':entropy}\n"
  }
]