Repository: VitalikObject/BrawlStars-Server Branch: master Commit: 4bf6528d4278 Files: 189 Total size: 1.4 MB Directory structure: gitextract_n51eg9bn/ ├── .github/ │ └── workflows/ │ └── dotnet-core.yml ├── LICENSE.txt ├── README.md ├── Server/ │ ├── BrawlStars.Utilities.pdb │ ├── BrawlStars.deps.json │ ├── BrawlStars.pdb │ ├── BrawlStars.runtimeconfig.dev.json │ ├── BrawlStars.runtimeconfig.json │ ├── GameAssets/ │ │ ├── database.sql │ │ └── fingerprint.json │ ├── NLog.config │ └── config.json └── Source/ ├── BrawlStars/ │ ├── BrawlStars.csproj │ ├── BrawlStars.csproj.user │ ├── Core/ │ │ ├── Configuration.cs │ │ └── Network/ │ │ ├── Handlers/ │ │ │ ├── PacketEncoder.cs │ │ │ └── PacketHandler.cs │ │ ├── NettyService.cs │ │ └── Throttler.cs │ ├── Database/ │ │ ├── AllianceDb.cs │ │ ├── Cache/ │ │ │ ├── Alliances.cs │ │ │ └── Players.cs │ │ ├── ObjectCache.cs │ │ └── PlayerDb.cs │ ├── Extensions/ │ │ ├── ChatStreamEntry.cs │ │ ├── CustomWriter.cs │ │ └── GamePlayUtil.cs │ ├── Files/ │ │ ├── Csv.Files.cs │ │ ├── Csv.cs │ │ ├── CsvHelpers/ │ │ │ ├── Data.cs │ │ │ ├── DataTable.cs │ │ │ └── GlobalId.cs │ │ ├── CsvReader/ │ │ │ ├── Column.cs │ │ │ ├── Gamefiles.cs │ │ │ ├── Row.cs │ │ │ └── Table.cs │ │ ├── Fingerprint.cs │ │ ├── GameEvents.cs │ │ └── Logic/ │ │ ├── Accessorie.cs │ │ ├── AllianceBadge.cs │ │ ├── AllianceRole.cs │ │ ├── AreaEffect.cs │ │ ├── Boss.cs │ │ ├── Campaign.cs │ │ ├── Card.cs │ │ ├── Challenge.cs │ │ ├── Character.cs │ │ ├── Emote.cs │ │ ├── GameModeVariations.cs │ │ ├── Global.cs │ │ ├── Item.cs │ │ ├── Locale.cs │ │ ├── Resource.cs │ │ ├── Skill.cs │ │ └── Skin.cs │ ├── GameAssets/ │ │ ├── database.sql │ │ └── fingerprint.json │ ├── Logger.cs │ ├── Logic/ │ │ ├── Brawler.cs │ │ ├── Calendar.cs │ │ ├── Clan/ │ │ │ ├── Alliance.cs │ │ │ ├── AllianceInfo.cs │ │ │ ├── AllianceMember.cs │ │ │ └── StreamEntry/ │ │ │ ├── AllianceStreamEntry.cs │ │ │ └── Entries/ │ │ │ ├── AllianceEventStreamEntry.cs │ │ │ ├── ChallengeStreamEntry.cs │ │ │ ├── ChatStreamEntry.cs │ │ │ ├── DonateStreamEntry.cs │ │ │ └── JoinRequestAllianceStreamEntry.cs │ │ ├── Device.cs │ │ ├── Events.cs │ │ ├── Functions.cs │ │ ├── Home/ │ │ │ ├── Home.cs │ │ │ ├── Slots/ │ │ │ │ ├── DataSlots.cs │ │ │ │ ├── Items/ │ │ │ │ │ └── DataSlot.cs │ │ │ │ └── ResourceSlots.cs │ │ │ └── StreamEntry/ │ │ │ └── AvatarStreamEntry.cs │ │ ├── Player.cs │ │ ├── Sessions/ │ │ │ ├── Location.cs │ │ │ └── Session.cs │ │ ├── Time.cs │ │ └── Timer.cs │ ├── NLog.config │ ├── Program.cs │ ├── Protocol/ │ │ ├── Commands/ │ │ │ └── Server/ │ │ │ ├── LogicChangeAvatarName.cs │ │ │ └── LogicDiamondsAddedCommand.cs │ │ ├── LogicCommand.cs │ │ ├── LogicCommandManager.cs │ │ ├── LogicMagicMessageFactory.cs │ │ ├── Messages/ │ │ │ ├── Client/ │ │ │ │ ├── Alliance/ │ │ │ │ │ ├── ChatToClubMessage.cs │ │ │ │ │ └── ClanInviteLinkMessage.cs │ │ │ │ ├── AnalyticsEventMessage.cs │ │ │ │ ├── BattleEndMessage.cs │ │ │ │ ├── ChangeBrawlerInRoomMessage.cs │ │ │ │ ├── ChangeMapMessage.cs │ │ │ │ ├── ChangeNameMessage.cs │ │ │ │ ├── ClientActionMessage.cs │ │ │ │ ├── CreateGameroomMessage.cs │ │ │ │ ├── DoNotDistrubMessage.cs │ │ │ │ ├── EndClientTurnMessage.cs │ │ │ │ ├── Home/ │ │ │ │ │ ├── ProfileMessage.cs │ │ │ │ │ └── SetNameMessage.cs │ │ │ │ ├── Login/ │ │ │ │ │ ├── ClientHelloMessage.cs │ │ │ │ │ ├── ExitMessage.cs │ │ │ │ │ ├── KeepAliveMessage.cs │ │ │ │ │ └── LoginMessage.cs │ │ │ │ ├── OpenClubMessage.cs │ │ │ │ ├── QuitRoomMessage.cs │ │ │ │ └── UseGadgetInRoomMessage.cs │ │ │ └── Server/ │ │ │ ├── Alliance/ │ │ │ │ └── GenrateClanInviteLinkMessage.cs │ │ │ ├── Battle2_Result.cs │ │ │ ├── Battle_Result.cs │ │ │ ├── ChatBotServerMessage.cs │ │ │ ├── ChatServerMessage.cs │ │ │ ├── ClubOHD.cs │ │ │ ├── ClubServerMessage.cs │ │ │ ├── DoNotDistrubServer.cs │ │ │ ├── Gameroom_Data.cs │ │ │ ├── Home/ │ │ │ │ ├── BotProfileMessage.cs │ │ │ │ ├── OwnHomeDataMessage.cs │ │ │ │ ├── ProfileServerMessage.cs │ │ │ │ └── SetNameServer.cs │ │ │ ├── Login/ │ │ │ │ ├── Copyright.cs │ │ │ │ ├── KeepAliveOkMessage.cs │ │ │ │ ├── LoginFailedMessage.cs │ │ │ │ └── LoginOkMessage.cs │ │ │ ├── RoomDisconnect.cs │ │ │ └── ServerBox.cs │ │ └── PiranhaMessage.cs │ ├── Resources.cs │ └── obj/ │ ├── BrawlStars.csproj.nuget.cache │ ├── BrawlStars.csproj.nuget.dgspec.json │ ├── BrawlStars.csproj.nuget.g.props │ ├── BrawlStars.csproj.nuget.g.targets │ └── Debug/ │ └── netcoreapp3.1/ │ ├── BrawlStars.AssemblyInfo.cs │ ├── BrawlStars.AssemblyInfoInputs.cache │ └── BrawlStars.assets.cache ├── BrawlStars.Utilities/ │ ├── BrawlStars.Utilities.csproj │ ├── Compression/ │ │ └── ZLib/ │ │ ├── CRC32.cs │ │ ├── Deflate.cs │ │ ├── DeflateStream.cs │ │ ├── GZipStream.cs │ │ ├── InfTree.cs │ │ ├── Inflate.cs │ │ ├── Iso8859Dash1Encoding.cs │ │ ├── ParallelDeflateOutputStream.cs │ │ ├── Tree.cs │ │ ├── Zlib.cs │ │ ├── ZlibBaseStream.cs │ │ ├── ZlibCodec.cs │ │ ├── ZlibConstants.cs │ │ └── ZlibStream.cs │ ├── Extensions.cs │ ├── Netty/ │ │ ├── Reader.cs │ │ └── Writer.cs │ ├── Utils/ │ │ ├── GameUtils.cs │ │ ├── ServerUtils.cs │ │ └── TimeUtils.cs │ └── obj/ │ ├── BrawlStars.Utilities.csproj.nuget.cache │ ├── BrawlStars.Utilities.csproj.nuget.dgspec.json │ ├── BrawlStars.Utilities.csproj.nuget.g.props │ ├── BrawlStars.Utilities.csproj.nuget.g.targets │ ├── ClashofClans.Utilities.csproj.nuget.dgspec.json │ ├── ClashofClans.Utilities.csproj.nuget.g.props │ ├── ClashofClans.Utilities.csproj.nuget.g.targets │ ├── Debug/ │ │ └── netstandard2.0/ │ │ ├── BrawlStars.Utilities.AssemblyInfo.cs │ │ ├── BrawlStars.Utilities.AssemblyInfoInputs.cache │ │ ├── BrawlStars.Utilities.assets.cache │ │ ├── BrawlStars.Utilities.csproj.CoreCompileInputs.cache │ │ ├── BrawlStars.Utilities.csproj.FileListAbsolute.txt │ │ ├── BrawlStars.Utilities.csprojAssemblyReference.cache │ │ ├── BrawlStars.Utilities.pdb │ │ ├── ClashofClans.Utilities.AssemblyInfo.cs │ │ ├── ClashofClans.Utilities.AssemblyInfoInputs.cache │ │ ├── ClashofClans.Utilities.assets.cache │ │ ├── ClashofClans.Utilities.csproj.CoreCompileInputs.cache │ │ ├── ClashofClans.Utilities.csproj.FileListAbsolute.txt │ │ ├── ClashofClans.Utilities.csprojAssemblyReference.cache │ │ └── ClashofClans.Utilities.pdb │ ├── Release/ │ │ └── netstandard2.0/ │ │ ├── ClashofClans.Utilities.AssemblyInfo.cs │ │ ├── ClashofClans.Utilities.AssemblyInfoInputs.cache │ │ ├── ClashofClans.Utilities.assets.cache │ │ ├── ClashofClans.Utilities.csproj.CoreCompileInputs.cache │ │ ├── ClashofClans.Utilities.csproj.FileListAbsolute.txt │ │ ├── ClashofClans.Utilities.csprojAssemblyReference.cache │ │ └── ClashofClans.Utilities.pdb │ ├── project.assets.json │ └── project.nuget.cache └── BrawlStars.sln ================================================ FILE CONTENTS ================================================ ================================================ FILE: .github/workflows/dotnet-core.yml ================================================ name: .NET Core on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Setup .NET Core uses: actions/setup-dotnet@v1 with: dotnet-version: 3.1.101 - name: Install dependencies run: dotnet restore ./Source/BrawlStars/ - name: Build run: dotnet build ./Source/BrawlStars/ --configuration Release --no-restore - name: Test run: dotnet test ./Source/BrawlStars/ --no-restore --verbosity normal ================================================ FILE: LICENSE.txt ================================================ GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . ================================================ FILE: README.md ================================================ # ObjectBrawl ![.NET Core](https://github.com/VitalikObject/BrawlStars-Server/workflows/.NET%20Core/badge.svg?branch=master) A first open source .NET Core Brawl Stars Server for version 26! ![ScreenShot](https://cdn.discordapp.com/attachments/728556050285985823/734808267712364687/Screenshot_20200720-192532_BS_v26.jpg) ## Configuration You can change default name in config.json (```"default_name": "YOUR_NAME"```) And you can change the starting resources in config.json ## Client To connect to your server, you need a custom client. Here the only solution is to use a [pre-made client](https://drive.google.com/file/d/13CevFvqsLW2xzjEEOWGSh__1xRSXJmFh/view?usp=sharing). Just edit the IP in the frida-gadget config (```/lib/armeabi-v7a/libgg.config.so```) ```{"interaction":{"interaction":{"type":"script","path":"libscript.so","on_change":"reload","parameters":{"redirectHost":"YOUR_IP","relocate":true}}}``` ### Friendly reminder The server is in a very early state. Right now, it is NOT recommended to run this on a production environment. Please not open issues about missing features, i'm well aware of this. #### Thank you [Incredible](http://github.com/Incr3dible/) for yours [20Clash](https://github.com/Incr3dible/20Clash) #### Need help? Join [My Discord server](https://discord.gg/4FZrUFK4C6) #### My friends Discord servers: [Huza's Discord channel](https://discord.gg/VPWMxWm) and [Antz's Discord channel](https://discord.com/invite/RgYcF3b) ================================================ FILE: Server/BrawlStars.deps.json ================================================ { "runtimeTarget": { "name": ".NETCoreApp,Version=v3.1", "signature": "" }, "compilationOptions": {}, "targets": { ".NETCoreApp,Version=v3.1": { "BrawlStars/1.0.0": { "dependencies": { "BrawlStars.Utilities": "1.0.0", "Colorful.Console": "1.2.10", "DotNetty.Buffers": "0.6.0", "DotNetty.Common": "0.6.0", "DotNetty.Handlers": "0.6.0", "Microsoft.Extensions.Caching.Memory": "3.1.2", "Microsoft.VisualStudio.Azure.Containers.Tools.Targets": "1.9.10", "MySql.Data": "8.0.19", "NLog": "4.6.8", "Newtonsoft.Json": "12.0.3" }, "runtime": { "BrawlStars.dll": {} } }, "BouncyCastle.NetCore/1.8.3": { "dependencies": { "NETStandard.Library": "1.6.1", "System.Reflection": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0" }, "runtime": { "lib/netstandard2.0/BouncyCastle.Crypto.dll": { "assemblyVersion": "1.8.2.0", "fileVersion": "1.8.18099.1" } } }, "Colorful.Console/1.2.10": { "dependencies": { "Microsoft.CSharp": "4.0.1", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Console": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Dynamic.Runtime": "4.0.11", "System.Globalization": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.Linq": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.RegularExpressions": "4.3.0" }, "runtime": { "lib/netstandard2.0/Colorful.Console.dll": { "assemblyVersion": "1.2.10.0", "fileVersion": "1.2.10.0" } } }, "DotNetty.Buffers/0.6.0": { "dependencies": { "DotNetty.Common": "0.6.0", "NETStandard.Library": "1.6.1", "System.Diagnostics.Contracts": "4.3.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2" }, "runtime": { "lib/netstandard1.3/DotNetty.Buffers.dll": { "assemblyVersion": "0.6.0.0", "fileVersion": "0.6.0.0" } } }, "DotNetty.Codecs/0.6.0": { "dependencies": { "DotNetty.Buffers": "0.6.0", "DotNetty.Common": "0.6.0", "DotNetty.Transport": "0.6.0", "NETStandard.Library": "1.6.1", "System.Collections.Immutable": "1.5.0", "System.Diagnostics.Contracts": "4.3.0" }, "runtime": { "lib/netstandard1.3/DotNetty.Codecs.dll": { "assemblyVersion": "0.6.0.0", "fileVersion": "0.6.0.0" } } }, "DotNetty.Common/0.6.0": { "dependencies": { "Microsoft.Extensions.Logging": "1.1.1", "NETStandard.Library": "1.6.1", "System.Diagnostics.Contracts": "4.3.0", "System.Net.NetworkInformation": "4.3.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2" }, "runtime": { "lib/netstandard1.3/DotNetty.Common.dll": { "assemblyVersion": "0.6.0.0", "fileVersion": "0.6.0.0" } } }, "DotNetty.Handlers/0.6.0": { "dependencies": { "DotNetty.Buffers": "0.6.0", "DotNetty.Codecs": "0.6.0", "DotNetty.Common": "0.6.0", "DotNetty.Transport": "0.6.0", "NETStandard.Library": "1.6.1", "System.Diagnostics.Contracts": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.Net.Security": "4.3.2" }, "runtime": { "lib/netstandard1.3/DotNetty.Handlers.dll": { "assemblyVersion": "0.6.0.0", "fileVersion": "0.6.0.0" } } }, "DotNetty.Transport/0.6.0": { "dependencies": { "DotNetty.Buffers": "0.6.0", "DotNetty.Common": "0.6.0", "NETStandard.Library": "1.6.1", "System.Diagnostics.Contracts": "4.3.0", "System.Diagnostics.StackTrace": "4.3.0", "System.Net.NameResolution": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Net.Sockets": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Threading.Tasks.Extensions": "4.5.1" }, "runtime": { "lib/netstandard1.3/DotNetty.Transport.dll": { "assemblyVersion": "0.6.0.0", "fileVersion": "0.6.0.0" } } }, "Google.Protobuf/3.6.1": { "dependencies": { "NETStandard.Library": "1.6.1" }, "runtime": { "lib/netstandard1.0/Google.Protobuf.dll": { "assemblyVersion": "3.6.1.0", "fileVersion": "3.6.1.0" } } }, "Microsoft.CSharp/4.0.1": { "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Dynamic.Runtime": "4.0.11", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Threading": "4.3.0" } }, "Microsoft.Extensions.Caching.Abstractions/3.1.2": { "dependencies": { "Microsoft.Extensions.Primitives": "3.1.2" }, "runtime": { "lib/netcoreapp3.1/Microsoft.Extensions.Caching.Abstractions.dll": { "assemblyVersion": "3.1.2.0", "fileVersion": "3.100.220.6706" } } }, "Microsoft.Extensions.Caching.Memory/3.1.2": { "dependencies": { "Microsoft.Extensions.Caching.Abstractions": "3.1.2", "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.2", "Microsoft.Extensions.Logging.Abstractions": "3.1.2", "Microsoft.Extensions.Options": "3.1.2" }, "runtime": { "lib/netcoreapp3.1/Microsoft.Extensions.Caching.Memory.dll": { "assemblyVersion": "3.1.2.0", "fileVersion": "3.100.220.6706" } } }, "Microsoft.Extensions.DependencyInjection.Abstractions/3.1.2": { "runtime": { "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { "assemblyVersion": "3.1.2.0", "fileVersion": "3.100.220.6706" } } }, "Microsoft.Extensions.Logging/1.1.1": { "dependencies": { "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.2", "Microsoft.Extensions.Logging.Abstractions": "3.1.2", "NETStandard.Library": "1.6.1" }, "runtime": { "lib/netstandard1.1/Microsoft.Extensions.Logging.dll": { "assemblyVersion": "1.1.1.0", "fileVersion": "1.1.1.30217" } } }, "Microsoft.Extensions.Logging.Abstractions/3.1.2": { "runtime": { "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll": { "assemblyVersion": "3.1.2.0", "fileVersion": "3.100.220.6706" } } }, "Microsoft.Extensions.Options/3.1.2": { "dependencies": { "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.2", "Microsoft.Extensions.Primitives": "3.1.2" }, "runtime": { "lib/netcoreapp3.1/Microsoft.Extensions.Options.dll": { "assemblyVersion": "3.1.2.0", "fileVersion": "3.100.220.6706" } } }, "Microsoft.Extensions.Primitives/3.1.2": { "runtime": { "lib/netcoreapp3.1/Microsoft.Extensions.Primitives.dll": { "assemblyVersion": "3.1.2.0", "fileVersion": "3.100.220.6706" } } }, "Microsoft.NETCore.Platforms/3.0.0": {}, "Microsoft.NETCore.Targets/1.1.0": {}, "Microsoft.VisualStudio.Azure.Containers.Tools.Targets/1.9.10": {}, "Microsoft.Win32.Primitives/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "Microsoft.Win32.SystemEvents/4.6.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0" }, "runtime": { "lib/netstandard2.0/Microsoft.Win32.SystemEvents.dll": { "assemblyVersion": "4.0.1.0", "fileVersion": "4.700.19.46214" } }, "runtimeTargets": { "runtimes/win/lib/netcoreapp3.0/Microsoft.Win32.SystemEvents.dll": { "rid": "win", "assetType": "runtime", "assemblyVersion": "4.0.1.0", "fileVersion": "4.700.19.46214" } } }, "MySql.Data/8.0.19": { "dependencies": { "BouncyCastle.NetCore": "1.8.3", "Google.Protobuf": "3.6.1", "SSH.NET": "2016.1.0", "System.Configuration.ConfigurationManager": "4.4.1", "System.Security.Permissions": "4.6.0", "System.Text.Encoding.CodePages": "4.4.0" }, "runtime": { "lib/netstandard2.1/MySql.Data.dll": { "assemblyVersion": "8.0.19.0", "fileVersion": "8.0.19.0" }, "lib/netstandard2.1/Ubiety.Dns.Core.dll": { "assemblyVersion": "2.2.1.0", "fileVersion": "2.2.1.0" } } }, "NETStandard.Library/1.6.1": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.Win32.Primitives": "4.3.0", "System.AppContext": "4.3.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Console": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.Compression.ZipFile": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Net.Http": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Net.Sockets": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Timer": "4.3.0", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XDocument": "4.3.0" } }, "Newtonsoft.Json/12.0.3": { "runtime": { "lib/netstandard2.0/Newtonsoft.Json.dll": { "assemblyVersion": "12.0.0.0", "fileVersion": "12.0.3.23909" } } }, "NLog/4.6.8": { "runtime": { "lib/netstandard2.0/NLog.dll": { "assemblyVersion": "4.0.0.0", "fileVersion": "4.6.8.10751" } } }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, "runtime.native.System/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.IO.Compression/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Http/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Security/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Security.Cryptography.Apple/4.3.0": { "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } }, "runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { "dependencies": { "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {}, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {}, "SSH.NET/2016.1.0": { "dependencies": { "Microsoft.CSharp": "4.0.1", "SshNet.Security.Cryptography": "1.2.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Diagnostics.TraceSource": "4.0.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Linq": "4.3.0", "System.Net.NameResolution": "4.3.0", "System.Net.Sockets": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Thread": "4.3.0", "System.Threading.ThreadPool": "4.3.0", "System.Threading.Timer": "4.3.0", "System.Xml.XPath.XmlDocument": "4.0.1", "System.Xml.XmlDocument": "4.0.1" }, "runtime": { "lib/netstandard1.3/Renci.SshNet.dll": { "assemblyVersion": "2016.1.0.0", "fileVersion": "2016.1.0.0" } } }, "SshNet.Security.Cryptography/1.2.0": { "dependencies": { "System.IO": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0" }, "runtime": { "lib/netstandard1.3/SshNet.Security.Cryptography.dll": { "assemblyVersion": "1.2.0.0", "fileVersion": "1.2.0.0" } } }, "System.AppContext/4.3.0": { "dependencies": { "System.Runtime": "4.3.0" } }, "System.Buffers/4.3.0": { "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Collections/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Concurrent/4.3.0": { "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Collections.Immutable/1.5.0": {}, "System.Configuration.ConfigurationManager/4.4.1": { "dependencies": { "System.Security.Cryptography.ProtectedData": "4.4.0" }, "runtime": { "lib/netstandard2.0/System.Configuration.ConfigurationManager.dll": { "assemblyVersion": "4.0.0.0", "fileVersion": "4.6.25921.2" } } }, "System.Console/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Diagnostics.Contracts/4.3.0": { "dependencies": { "System.Runtime": "4.3.0" } }, "System.Diagnostics.Debug/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.DiagnosticSource/4.3.0": { "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Diagnostics.StackTrace/4.3.0": { "dependencies": { "System.IO.FileSystem": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Metadata": "1.4.1", "System.Runtime": "4.3.0" } }, "System.Diagnostics.Tools/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.TraceSource/4.0.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0" } }, "System.Diagnostics.Tracing/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Drawing.Common/4.6.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.Win32.SystemEvents": "4.6.0" }, "runtime": { "lib/netstandard2.0/System.Drawing.Common.dll": { "assemblyVersion": "4.0.0.1", "fileVersion": "4.6.26919.2" } }, "runtimeTargets": { "runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.dll": { "rid": "unix", "assetType": "runtime", "assemblyVersion": "4.0.1.0", "fileVersion": "4.700.19.46214" }, "runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.dll": { "rid": "win", "assetType": "runtime", "assemblyVersion": "4.0.1.0", "fileVersion": "4.700.19.46214" } } }, "System.Dynamic.Runtime/4.0.11": { "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Globalization/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Calendars/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Extensions/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" } }, "System.IO/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.Compression/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "System.Buffers": "4.3.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.IO.Compression": "4.3.0" } }, "System.IO.Compression.ZipFile/4.3.0": { "dependencies": { "System.Buffers": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.IO.FileSystem/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem.Primitives/4.3.0": { "dependencies": { "System.Runtime": "4.3.0" } }, "System.Linq/4.3.0": { "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions/4.3.0": { "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Net.Http/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Net.NameResolution/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "System.Collections": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Principal.Windows": "4.6.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0" } }, "System.Net.NetworkInformation/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.Win32.Primitives": "4.3.0", "System.Collections": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Linq": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Net.Sockets": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Principal.Windows": "4.6.0", "System.Threading": "4.3.0", "System.Threading.Overlapped": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Thread": "4.3.0", "System.Threading.ThreadPool": "4.3.0", "runtime.native.System": "4.3.0" } }, "System.Net.Primitives/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Net.Security/4.3.2": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.Win32.Primitives": "4.3.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.IO": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Claims": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Security.Principal": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.ThreadPool": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Security": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Net.Sockets/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.ObjectModel/4.3.0": { "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Reflection/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit/4.3.0": { "dependencies": { "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.ILGeneration/4.3.0": { "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight/4.3.0": { "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata/1.4.1": { "dependencies": { "System.Collections": "4.3.0", "System.Collections.Immutable": "1.5.0", "System.Diagnostics.Debug": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.Linq": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Reflection.Primitives/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions/4.3.0": { "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "System.Runtime.CompilerServices.Unsafe/4.5.2": {}, "System.Runtime.Extensions/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.Handles/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.InteropServices/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0" } }, "System.Runtime.Numerics/4.3.0": { "dependencies": { "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Security.AccessControl/4.6.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "System.Security.Principal.Windows": "4.6.0" } }, "System.Security.Claims/4.3.0": { "dependencies": { "System.Collections": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Security.Principal": "4.3.0" } }, "System.Security.Cryptography.Algorithms/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Security.Cryptography.Cng/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Security.Cryptography.Csp/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0" } }, "System.Security.Cryptography.Encoding/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Linq": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Security.Cryptography.OpenSsl/4.3.0": { "dependencies": { "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Security.Cryptography.Primitives/4.3.0": { "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Security.Cryptography.ProtectedData/4.4.0": { "runtime": { "lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": { "assemblyVersion": "4.0.2.0", "fileVersion": "4.6.25519.3" } }, "runtimeTargets": { "runtimes/win/lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": { "rid": "win", "assetType": "runtime", "assemblyVersion": "4.0.2.0", "fileVersion": "4.6.25519.3" } } }, "System.Security.Cryptography.X509Certificates/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Cng": "4.3.0", "System.Security.Cryptography.Csp": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Security.Permissions/4.6.0": { "dependencies": { "System.Security.AccessControl": "4.6.0", "System.Windows.Extensions": "4.6.0" }, "runtime": { "lib/netcoreapp3.0/System.Security.Permissions.dll": { "assemblyVersion": "4.0.2.0", "fileVersion": "4.700.19.46214" } } }, "System.Security.Principal/4.3.0": { "dependencies": { "System.Runtime": "4.3.0" } }, "System.Security.Principal.Windows/4.6.0": {}, "System.Text.Encoding/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages/4.4.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0" } }, "System.Text.Encoding.Extensions/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Text.RegularExpressions/4.3.0": { "dependencies": { "System.Runtime": "4.3.0" } }, "System.Threading/4.3.0": { "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Overlapped/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Threading.Tasks/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions/4.5.1": {}, "System.Threading.Thread/4.3.0": { "dependencies": { "System.Runtime": "4.3.0" } }, "System.Threading.ThreadPool/4.3.0": { "dependencies": { "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Threading.Timer/4.3.0": { "dependencies": { "Microsoft.NETCore.Platforms": "3.0.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Windows.Extensions/4.6.0": { "dependencies": { "System.Drawing.Common": "4.6.0" }, "runtime": { "lib/netcoreapp3.0/System.Windows.Extensions.dll": { "assemblyVersion": "4.0.0.0", "fileVersion": "4.700.19.46214" } }, "runtimeTargets": { "runtimes/win/lib/netcoreapp3.0/System.Windows.Extensions.dll": { "rid": "win", "assetType": "runtime", "assemblyVersion": "4.0.0.0", "fileVersion": "4.700.19.46214" } } }, "System.Xml.ReaderWriter/4.3.0": { "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Tasks.Extensions": "4.5.1" } }, "System.Xml.XDocument/4.3.0": { "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } }, "System.Xml.XmlDocument/4.0.1": { "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } }, "System.Xml.XPath/4.0.1": { "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } }, "System.Xml.XPath.XmlDocument/4.0.1": { "dependencies": { "System.Collections": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XPath": "4.0.1", "System.Xml.XmlDocument": "4.0.1" }, "runtime": { "lib/netstandard1.3/System.Xml.XPath.XmlDocument.dll": { "assemblyVersion": "4.0.1.0", "fileVersion": "1.0.24212.1" } } }, "BrawlStars.Utilities/1.0.0": { "dependencies": { "DotNetty.Buffers": "0.6.0", "MySql.Data": "8.0.19", "Newtonsoft.Json": "12.0.3" }, "runtime": { "BrawlStars.Utilities.dll": {} } } } }, "libraries": { "BrawlStars/1.0.0": { "type": "project", "serviceable": false, "sha512": "" }, "BouncyCastle.NetCore/1.8.3": { "type": "package", "serviceable": true, "sha512": "sha512-jAy3uHN1U9DpoT/TgLqDTEhlccn/4doOVxhSmmNsnoSsGfHT9Lwr634ac9D0YFujAhNw61nWF4UIpHyzv0aQww==", "path": "bouncycastle.netcore/1.8.3", "hashPath": "bouncycastle.netcore.1.8.3.nupkg.sha512" }, "Colorful.Console/1.2.10": { "type": "package", "serviceable": true, "sha512": "sha512-k9PGhscle9U3V/EbRhWLuU1683pteAmD4d+FKFjoK6Fn4Bykl6uWQH5y0qMAAXU5zlHTmEYB7JGxdvsoXlk5Ag==", "path": "colorful.console/1.2.10", "hashPath": "colorful.console.1.2.10.nupkg.sha512" }, "DotNetty.Buffers/0.6.0": { "type": "package", "serviceable": true, "sha512": "sha512-MjxoFMdKsSJ5CLKTFHTKYoFUZUvC6VHGx71vPLSflmR/X4dSm57/hVxhsQY3YU6aASeRjqgNiCHn4II+UNOIWQ==", "path": "dotnetty.buffers/0.6.0", "hashPath": "dotnetty.buffers.0.6.0.nupkg.sha512" }, "DotNetty.Codecs/0.6.0": { "type": "package", "serviceable": true, "sha512": "sha512-gLAVaII7A4er3ZwUJIAZpynDLsxNr7Acw61OoCDfzIAkcB2L6OJ9jPnKy8YtrtTnJXm0lNod5+7aRJTmaBbT0Q==", "path": "dotnetty.codecs/0.6.0", "hashPath": "dotnetty.codecs.0.6.0.nupkg.sha512" }, "DotNetty.Common/0.6.0": { "type": "package", "serviceable": true, "sha512": "sha512-aVD0bWoaH+Ou0wOTFzYEs3hrzsckUEkbdweVgwHsk7q0OTPgmPD/QkGxjNqjZ9diUyeGvHzYn7mFQGG5cgbYUA==", "path": "dotnetty.common/0.6.0", "hashPath": "dotnetty.common.0.6.0.nupkg.sha512" }, "DotNetty.Handlers/0.6.0": { "type": "package", "serviceable": true, "sha512": "sha512-LXj49DSk/PzC5r7MkXKpYit4t5DsUNpEw1m899SoV2gGVs9WooYUVyjOhKwyqBUPie4QgkYc6tsgAHNJUmDhbA==", "path": "dotnetty.handlers/0.6.0", "hashPath": "dotnetty.handlers.0.6.0.nupkg.sha512" }, "DotNetty.Transport/0.6.0": { "type": "package", "serviceable": true, "sha512": "sha512-HLYcbZfLDIVPhtr+x3nv2vvxBxKONWXeP/B1LaXvPeSfdvlOtvoxB0tuv92SaOdqq9NUCjAP59Nn9xofRrt8mA==", "path": "dotnetty.transport/0.6.0", "hashPath": "dotnetty.transport.0.6.0.nupkg.sha512" }, "Google.Protobuf/3.6.1": { "type": "package", "serviceable": true, "sha512": "sha512-741fGeDQjixBJaU2j+0CbrmZXsNJkTn/hWbOh4fLVXndHsCclJmWznCPWrJmPoZKvajBvAz3e8ECJOUvRtwjNQ==", "path": "google.protobuf/3.6.1", "hashPath": "google.protobuf.3.6.1.nupkg.sha512" }, "Microsoft.CSharp/4.0.1": { "type": "package", "serviceable": true, "sha512": "sha512-17h8b5mXa87XYKrrVqdgZ38JefSUqLChUQpXgSnpzsM0nDOhE40FTeNWOJ/YmySGV6tG6T8+hjz6vxbknHJr6A==", "path": "microsoft.csharp/4.0.1", "hashPath": "microsoft.csharp.4.0.1.nupkg.sha512" }, "Microsoft.Extensions.Caching.Abstractions/3.1.2": { "type": "package", "serviceable": true, "sha512": "sha512-UfMC7L+8ha05PUAfVpmMS0kb7C1BoOrWxN70706D50qWohXLYgkUsu22oS7zkd9amCPTCmhRm2z/LisN8SESgg==", "path": "microsoft.extensions.caching.abstractions/3.1.2", "hashPath": "microsoft.extensions.caching.abstractions.3.1.2.nupkg.sha512" }, "Microsoft.Extensions.Caching.Memory/3.1.2": { "type": "package", "serviceable": true, "sha512": "sha512-4O/YgpVhK/ZIYteGy9LyJv+YRcTxLOe7AnMUHBj1m1U40Er1/dbMymFTH1HrRS/fkVB90un24JhG+c1qSWjjjA==", "path": "microsoft.extensions.caching.memory/3.1.2", "hashPath": "microsoft.extensions.caching.memory.3.1.2.nupkg.sha512" }, "Microsoft.Extensions.DependencyInjection.Abstractions/3.1.2": { "type": "package", "serviceable": true, "sha512": "sha512-/CZzCSCIm/3FFoXHfUpsfov/Elo268dcvlz/MMINT0vPgphqg2pAgdEn/EjCDyoAT3NAmsRmjfGwBumC1uYJtA==", "path": "microsoft.extensions.dependencyinjection.abstractions/3.1.2", "hashPath": "microsoft.extensions.dependencyinjection.abstractions.3.1.2.nupkg.sha512" }, "Microsoft.Extensions.Logging/1.1.1": { "type": "package", "serviceable": true, "sha512": "sha512-cxLG416uOEFmnv7w4/rsVKD4dRYFuUY+G5WXpLVLMNIL6VYcQkDe67cx2IWBrtUieA08w9eCuxrd2pxIrJ7Wtg==", "path": "microsoft.extensions.logging/1.1.1", "hashPath": "microsoft.extensions.logging.1.1.1.nupkg.sha512" }, "Microsoft.Extensions.Logging.Abstractions/3.1.2": { "type": "package", "serviceable": true, "sha512": "sha512-cIXPw7VVX3fON4uuHwJFmCi0qDl8uY75xZMKB2oM3In0ZDEB1Ee+p9Ti1DSw92AwRtJ2Zh+QG1joTBednJMzvA==", "path": "microsoft.extensions.logging.abstractions/3.1.2", "hashPath": "microsoft.extensions.logging.abstractions.3.1.2.nupkg.sha512" }, "Microsoft.Extensions.Options/3.1.2": { "type": "package", "serviceable": true, "sha512": "sha512-6F4anwt9yMlnQckac2etjrasRFyqZNIp46p+i9qVps0DXNsOLZIKRkqq4AY4FlxXxKeGkEJC7M77RQEkvd3p8Q==", "path": "microsoft.extensions.options/3.1.2", "hashPath": "microsoft.extensions.options.3.1.2.nupkg.sha512" }, "Microsoft.Extensions.Primitives/3.1.2": { "type": "package", "serviceable": true, "sha512": "sha512-WGtoFWY9yc9HGMG6ObDNQPz9dBP+xz/GqFe2dKjdE/cSdXFEKxCFTyYCzL/e8kxVkc/Bq9qjOsXRWydvn0g9Uw==", "path": "microsoft.extensions.primitives/3.1.2", "hashPath": "microsoft.extensions.primitives.3.1.2.nupkg.sha512" }, "Microsoft.NETCore.Platforms/3.0.0": { "type": "package", "serviceable": true, "sha512": "sha512-TsETIgVJb/AKoYfSP+iCxkuly5d3inZjTdx/ItZLk2CxY85v8083OBS3uai84kK3/baLnS5/b5XGs6zR7SuuHQ==", "path": "microsoft.netcore.platforms/3.0.0", "hashPath": "microsoft.netcore.platforms.3.0.0.nupkg.sha512" }, "Microsoft.NETCore.Targets/1.1.0": { "type": "package", "serviceable": true, "sha512": "sha512-aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==", "path": "microsoft.netcore.targets/1.1.0", "hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512" }, "Microsoft.VisualStudio.Azure.Containers.Tools.Targets/1.9.10": { "type": "package", "serviceable": true, "sha512": "sha512-d5/5CDc4TAjrgO9oyyj+FHUDVumxgrlCMJqDtUX4GyTnr1Q/BP88PhnVunRZ9AQcL2UQkM4EkRNyFelPXunHtw==", "path": "microsoft.visualstudio.azure.containers.tools.targets/1.9.10", "hashPath": "microsoft.visualstudio.azure.containers.tools.targets.1.9.10.nupkg.sha512" }, "Microsoft.Win32.Primitives/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", "path": "microsoft.win32.primitives/4.3.0", "hashPath": "microsoft.win32.primitives.4.3.0.nupkg.sha512" }, "Microsoft.Win32.SystemEvents/4.6.0": { "type": "package", "serviceable": true, "sha512": "sha512-Edg+pFW5C8WJb680Za2kTV8TqUi6Ahl/WldRVoOVJ23UQLpDHFspa+umgFjkWZw24ETsU99Cg+ErZz683M4chg==", "path": "microsoft.win32.systemevents/4.6.0", "hashPath": "microsoft.win32.systemevents.4.6.0.nupkg.sha512" }, "MySql.Data/8.0.19": { "type": "package", "serviceable": true, "sha512": "sha512-zPFSg8rW3PcFIn27d0lEHQ/XWQhBzGIgKYQYFZN8aHLlpen5D6nz3/wb54V9ZRH3zkWlIWQ7FfxqbQdl3vizjQ==", "path": "mysql.data/8.0.19", "hashPath": "mysql.data.8.0.19.nupkg.sha512" }, "NETStandard.Library/1.6.1": { "type": "package", "serviceable": true, "sha512": "sha512-WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", "path": "netstandard.library/1.6.1", "hashPath": "netstandard.library.1.6.1.nupkg.sha512" }, "Newtonsoft.Json/12.0.3": { "type": "package", "serviceable": true, "sha512": "sha512-6mgjfnRB4jKMlzHSl+VD+oUc1IebOZabkbyWj2RiTgWwYPPuaK1H97G1sHqGwPlS5npiF5Q0OrxN1wni2n5QWg==", "path": "newtonsoft.json/12.0.3", "hashPath": "newtonsoft.json.12.0.3.nupkg.sha512" }, "NLog/4.6.8": { "type": "package", "serviceable": true, "sha512": "sha512-LKB0uN5naOTxdNz++iapk6arNYv2asE8FPRBAmQZ1fe8y8C1Zm6sldh/w9TP/w5s7FGK8s0x6ny0og5ytFK1oQ==", "path": "nlog/4.6.8", "hashPath": "nlog.4.6.8.nupkg.sha512" }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { "type": "package", "serviceable": true, "sha512": "sha512-7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==", "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.2", "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" }, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { "type": "package", "serviceable": true, "sha512": "sha512-0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==", "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.2", "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" }, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { "type": "package", "serviceable": true, "sha512": "sha512-G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==", "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.2", "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" }, "runtime.native.System/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", "path": "runtime.native.system/4.3.0", "hashPath": "runtime.native.system.4.3.0.nupkg.sha512" }, "runtime.native.System.IO.Compression/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", "path": "runtime.native.system.io.compression/4.3.0", "hashPath": "runtime.native.system.io.compression.4.3.0.nupkg.sha512" }, "runtime.native.System.Net.Http/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", "path": "runtime.native.system.net.http/4.3.0", "hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512" }, "runtime.native.System.Net.Security/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-M2nN92ePS8BgQ2oi6Jj3PlTUzadYSIWLdZrHY1n1ZcW9o4wAQQ6W+aQ2lfq1ysZQfVCgDwY58alUdowrzezztg==", "path": "runtime.native.system.net.security/4.3.0", "hashPath": "runtime.native.system.net.security.4.3.0.nupkg.sha512" }, "runtime.native.System.Security.Cryptography.Apple/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "path": "runtime.native.system.security.cryptography.apple/4.3.0", "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" }, "runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { "type": "package", "serviceable": true, "sha512": "sha512-QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", "path": "runtime.native.system.security.cryptography.openssl/4.3.2", "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { "type": "package", "serviceable": true, "sha512": "sha512-I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==", "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.2", "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" }, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { "type": "package", "serviceable": true, "sha512": "sha512-1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==", "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.2", "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==", "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0", "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { "type": "package", "serviceable": true, "sha512": "sha512-6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==", "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.2", "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" }, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { "type": "package", "serviceable": true, "sha512": "sha512-vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==", "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.2", "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" }, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { "type": "package", "serviceable": true, "sha512": "sha512-7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==", "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.2", "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" }, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { "type": "package", "serviceable": true, "sha512": "sha512-xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==", "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.2", "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" }, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": { "type": "package", "serviceable": true, "sha512": "sha512-leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==", "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.2", "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512" }, "SSH.NET/2016.1.0": { "type": "package", "serviceable": true, "sha512": "sha512-b0fcFFOE044KNRhq1uGujmK04ab+OzA9xARdeVCoZrY6I4D1IIaR6dn6qBIa+er4bJapGBhznDitwcRQpSRC0w==", "path": "ssh.net/2016.1.0", "hashPath": "ssh.net.2016.1.0.nupkg.sha512" }, "SshNet.Security.Cryptography/1.2.0": { "type": "package", "serviceable": true, "sha512": "sha512-EeFsirrrkIK+cdlYsxukNjBN98cbU7eHfTYZEwxsbOa3dvgR/OhOD06C0sTxvNPhe4UQ6yM0p1sKcT69jqgjTw==", "path": "sshnet.security.cryptography/1.2.0", "hashPath": "sshnet.security.cryptography.1.2.0.nupkg.sha512" }, "System.AppContext/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", "path": "system.appcontext/4.3.0", "hashPath": "system.appcontext.4.3.0.nupkg.sha512" }, "System.Buffers/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==", "path": "system.buffers/4.3.0", "hashPath": "system.buffers.4.3.0.nupkg.sha512" }, "System.Collections/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "path": "system.collections/4.3.0", "hashPath": "system.collections.4.3.0.nupkg.sha512" }, "System.Collections.Concurrent/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", "path": "system.collections.concurrent/4.3.0", "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512" }, "System.Collections.Immutable/1.5.0": { "type": "package", "serviceable": true, "sha512": "sha512-EXKiDFsChZW0RjrZ4FYHu9aW6+P4MCgEDCklsVseRfhoO0F+dXeMSsMRAlVXIo06kGJ/zv+2w1a2uc2+kxxSaQ==", "path": "system.collections.immutable/1.5.0", "hashPath": "system.collections.immutable.1.5.0.nupkg.sha512" }, "System.Configuration.ConfigurationManager/4.4.1": { "type": "package", "serviceable": true, "sha512": "sha512-jz3TWKMAeuDEyrPCK5Jyt4bzQcmzUIMcY9Ud6PkElFxTfnsihV+9N/UCqvxe1z5gc7jMYAnj7V1COMS9QKIuHQ==", "path": "system.configuration.configurationmanager/4.4.1", "hashPath": "system.configuration.configurationmanager.4.4.1.nupkg.sha512" }, "System.Console/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", "path": "system.console/4.3.0", "hashPath": "system.console.4.3.0.nupkg.sha512" }, "System.Diagnostics.Contracts/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-eelRRbnm+OloiQvp9CXS0ixjNQldjjkHO4iIkR5XH2VIP8sUB/SIpa1TdUW6/+HDcQ+MlhP3pNa1u5SbzYuWGA==", "path": "system.diagnostics.contracts/4.3.0", "hashPath": "system.diagnostics.contracts.4.3.0.nupkg.sha512" }, "System.Diagnostics.Debug/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "path": "system.diagnostics.debug/4.3.0", "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512" }, "System.Diagnostics.DiagnosticSource/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==", "path": "system.diagnostics.diagnosticsource/4.3.0", "hashPath": "system.diagnostics.diagnosticsource.4.3.0.nupkg.sha512" }, "System.Diagnostics.StackTrace/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-BiHg0vgtd35/DM9jvtaC1eKRpWZxr0gcQd643ABG7GnvSlf5pOkY2uyd42mMOJoOmKvnpNj0F4tuoS1pacTwYw==", "path": "system.diagnostics.stacktrace/4.3.0", "hashPath": "system.diagnostics.stacktrace.4.3.0.nupkg.sha512" }, "System.Diagnostics.Tools/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "path": "system.diagnostics.tools/4.3.0", "hashPath": "system.diagnostics.tools.4.3.0.nupkg.sha512" }, "System.Diagnostics.TraceSource/4.0.0": { "type": "package", "serviceable": true, "sha512": "sha512-6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==", "path": "system.diagnostics.tracesource/4.0.0", "hashPath": "system.diagnostics.tracesource.4.0.0.nupkg.sha512" }, "System.Diagnostics.Tracing/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", "path": "system.diagnostics.tracing/4.3.0", "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512" }, "System.Drawing.Common/4.6.0": { "type": "package", "serviceable": true, "sha512": "sha512-2A3spjjoPZnvpVh/sDTzd+0H8ZqTdr+hH/6obB8MMfG81EJ85PmxCKDBxhBVQiA25PliKAZ1sKogDcq9mSnFEA==", "path": "system.drawing.common/4.6.0", "hashPath": "system.drawing.common.4.6.0.nupkg.sha512" }, "System.Dynamic.Runtime/4.0.11": { "type": "package", "serviceable": true, "sha512": "sha512-db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==", "path": "system.dynamic.runtime/4.0.11", "hashPath": "system.dynamic.runtime.4.0.11.nupkg.sha512" }, "System.Globalization/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "path": "system.globalization/4.3.0", "hashPath": "system.globalization.4.3.0.nupkg.sha512" }, "System.Globalization.Calendars/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", "path": "system.globalization.calendars/4.3.0", "hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512" }, "System.Globalization.Extensions/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", "path": "system.globalization.extensions/4.3.0", "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512" }, "System.IO/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "path": "system.io/4.3.0", "hashPath": "system.io.4.3.0.nupkg.sha512" }, "System.IO.Compression/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", "path": "system.io.compression/4.3.0", "hashPath": "system.io.compression.4.3.0.nupkg.sha512" }, "System.IO.Compression.ZipFile/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", "path": "system.io.compression.zipfile/4.3.0", "hashPath": "system.io.compression.zipfile.4.3.0.nupkg.sha512" }, "System.IO.FileSystem/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", "path": "system.io.filesystem/4.3.0", "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512" }, "System.IO.FileSystem.Primitives/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", "path": "system.io.filesystem.primitives/4.3.0", "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512" }, "System.Linq/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "path": "system.linq/4.3.0", "hashPath": "system.linq.4.3.0.nupkg.sha512" }, "System.Linq.Expressions/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "path": "system.linq.expressions/4.3.0", "hashPath": "system.linq.expressions.4.3.0.nupkg.sha512" }, "System.Net.Http/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==", "path": "system.net.http/4.3.0", "hashPath": "system.net.http.4.3.0.nupkg.sha512" }, "System.Net.NameResolution/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-AFYl08R7MrsrEjqpQWTZWBadqXyTzNDaWpMqyxhb0d6sGhV6xMDKueuBXlLL30gz+DIRY6MpdgnHWlCh5wmq9w==", "path": "system.net.nameresolution/4.3.0", "hashPath": "system.net.nameresolution.4.3.0.nupkg.sha512" }, "System.Net.NetworkInformation/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-zNVmWVry0pAu7lcrRBhwwU96WUdbsrGL3azyzsbXmVNptae1+Za+UgOe9Z6s8iaWhPn7/l4wQqhC56HZWq7tkg==", "path": "system.net.networkinformation/4.3.0", "hashPath": "system.net.networkinformation.4.3.0.nupkg.sha512" }, "System.Net.Primitives/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", "path": "system.net.primitives/4.3.0", "hashPath": "system.net.primitives.4.3.0.nupkg.sha512" }, "System.Net.Security/4.3.2": { "type": "package", "serviceable": true, "sha512": "sha512-xT2jbYpbBo3ha87rViHoTA6WdvqOAW37drmqyx/6LD8p7HEPT2qgdxoimRzWtPg8Jh4X5G9BV2seeTv4x6FYlA==", "path": "system.net.security/4.3.2", "hashPath": "system.net.security.4.3.2.nupkg.sha512" }, "System.Net.Sockets/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", "path": "system.net.sockets/4.3.0", "hashPath": "system.net.sockets.4.3.0.nupkg.sha512" }, "System.ObjectModel/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "path": "system.objectmodel/4.3.0", "hashPath": "system.objectmodel.4.3.0.nupkg.sha512" }, "System.Reflection/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "path": "system.reflection/4.3.0", "hashPath": "system.reflection.4.3.0.nupkg.sha512" }, "System.Reflection.Emit/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", "path": "system.reflection.emit/4.3.0", "hashPath": "system.reflection.emit.4.3.0.nupkg.sha512" }, "System.Reflection.Emit.ILGeneration/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "path": "system.reflection.emit.ilgeneration/4.3.0", "hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512" }, "System.Reflection.Emit.Lightweight/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "path": "system.reflection.emit.lightweight/4.3.0", "hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512" }, "System.Reflection.Extensions/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "path": "system.reflection.extensions/4.3.0", "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512" }, "System.Reflection.Metadata/1.4.1": { "type": "package", "serviceable": true, "sha512": "sha512-tc2ZyJgweHCLci5oQGuhQn9TD0Ii9DReXkHtZm3aAGp8xe40rpRjiTbMXOtZU+fr0BOQ46goE9+qIqRGjR9wGg==", "path": "system.reflection.metadata/1.4.1", "hashPath": "system.reflection.metadata.1.4.1.nupkg.sha512" }, "System.Reflection.Primitives/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "path": "system.reflection.primitives/4.3.0", "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512" }, "System.Reflection.TypeExtensions/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "path": "system.reflection.typeextensions/4.3.0", "hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512" }, "System.Resources.ResourceManager/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "path": "system.resources.resourcemanager/4.3.0", "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512" }, "System.Runtime/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", "path": "system.runtime/4.3.0", "hashPath": "system.runtime.4.3.0.nupkg.sha512" }, "System.Runtime.CompilerServices.Unsafe/4.5.2": { "type": "package", "serviceable": true, "sha512": "sha512-wprSFgext8cwqymChhrBLu62LMg/1u92bU+VOwyfBimSPVFXtsNqEWC92Pf9ofzJFlk4IHmJA75EDJn1b2goAQ==", "path": "system.runtime.compilerservices.unsafe/4.5.2", "hashPath": "system.runtime.compilerservices.unsafe.4.5.2.nupkg.sha512" }, "System.Runtime.Extensions/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", "path": "system.runtime.extensions/4.3.0", "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512" }, "System.Runtime.Handles/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", "path": "system.runtime.handles/4.3.0", "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512" }, "System.Runtime.InteropServices/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "path": "system.runtime.interopservices/4.3.0", "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512" }, "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", "path": "system.runtime.interopservices.runtimeinformation/4.3.0", "hashPath": "system.runtime.interopservices.runtimeinformation.4.3.0.nupkg.sha512" }, "System.Runtime.Numerics/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", "path": "system.runtime.numerics/4.3.0", "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512" }, "System.Security.AccessControl/4.6.0": { "type": "package", "serviceable": true, "sha512": "sha512-gmlk6khICtVhiUnVBBtlsH0H/5QFDqhTZgtpp3AX14wWE6OIE+BX95NLD+X4AolXnIy/oXpNNmXYnsNfW1KuDQ==", "path": "system.security.accesscontrol/4.6.0", "hashPath": "system.security.accesscontrol.4.6.0.nupkg.sha512" }, "System.Security.Claims/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-P/+BR/2lnc4PNDHt/TPBAWHVMLMRHsyYZbU1NphW4HIWzCggz8mJbTQQ3MKljFE7LS3WagmVFuBgoLcFzYXlkA==", "path": "system.security.claims/4.3.0", "hashPath": "system.security.claims.4.3.0.nupkg.sha512" }, "System.Security.Cryptography.Algorithms/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "path": "system.security.cryptography.algorithms/4.3.0", "hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512" }, "System.Security.Cryptography.Cng/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", "path": "system.security.cryptography.cng/4.3.0", "hashPath": "system.security.cryptography.cng.4.3.0.nupkg.sha512" }, "System.Security.Cryptography.Csp/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", "path": "system.security.cryptography.csp/4.3.0", "hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512" }, "System.Security.Cryptography.Encoding/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", "path": "system.security.cryptography.encoding/4.3.0", "hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512" }, "System.Security.Cryptography.OpenSsl/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", "path": "system.security.cryptography.openssl/4.3.0", "hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512" }, "System.Security.Cryptography.Primitives/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", "path": "system.security.cryptography.primitives/4.3.0", "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512" }, "System.Security.Cryptography.ProtectedData/4.4.0": { "type": "package", "serviceable": true, "sha512": "sha512-cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog==", "path": "system.security.cryptography.protecteddata/4.4.0", "hashPath": "system.security.cryptography.protecteddata.4.4.0.nupkg.sha512" }, "System.Security.Cryptography.X509Certificates/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "path": "system.security.cryptography.x509certificates/4.3.0", "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512" }, "System.Security.Permissions/4.6.0": { "type": "package", "serviceable": true, "sha512": "sha512-W3Uxog9KCZAmGYsOFHgJnb7L2q+SDbxS3vGnFHmErUnXuIjWYpIh1KVTlua7qmPdrlRCkAcTF9dImv+jciBPOQ==", "path": "system.security.permissions/4.6.0", "hashPath": "system.security.permissions.4.6.0.nupkg.sha512" }, "System.Security.Principal/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-I1tkfQlAoMM2URscUtpcRo/hX0jinXx6a/KUtEQoz3owaYwl3qwsO8cbzYVVnjxrzxjHo3nJC+62uolgeGIS9A==", "path": "system.security.principal/4.3.0", "hashPath": "system.security.principal.4.3.0.nupkg.sha512" }, "System.Security.Principal.Windows/4.6.0": { "type": "package", "serviceable": true, "sha512": "sha512-Mdukseovp0YIGaz16FMH6nbfgZkrCFOJbtXQptv0aeBO9h775Ilb9+TDwLVTKikoW7y7CY7lpoXl9zmZ5G3ndA==", "path": "system.security.principal.windows/4.6.0", "hashPath": "system.security.principal.windows.4.6.0.nupkg.sha512" }, "System.Text.Encoding/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "path": "system.text.encoding/4.3.0", "hashPath": "system.text.encoding.4.3.0.nupkg.sha512" }, "System.Text.Encoding.CodePages/4.4.0": { "type": "package", "serviceable": true, "sha512": "sha512-6JX7ZdaceBiLKLkYt8zJcp4xTJd1uYyXXEkPw6mnlUIjh1gZPIVKPtRXPmY5kLf6DwZmf5YLwR3QUrRonl7l0A==", "path": "system.text.encoding.codepages/4.4.0", "hashPath": "system.text.encoding.codepages.4.4.0.nupkg.sha512" }, "System.Text.Encoding.Extensions/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", "path": "system.text.encoding.extensions/4.3.0", "hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512" }, "System.Text.RegularExpressions/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==", "path": "system.text.regularexpressions/4.3.0", "hashPath": "system.text.regularexpressions.4.3.0.nupkg.sha512" }, "System.Threading/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "path": "system.threading/4.3.0", "hashPath": "system.threading.4.3.0.nupkg.sha512" }, "System.Threading.Overlapped/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-m3HQ2dPiX/DSTpf+yJt8B0c+SRvzfqAJKx+QDWi+VLhz8svLT23MVjEOHPF/KiSLeArKU/iHescrbLd3yVgyNg==", "path": "system.threading.overlapped/4.3.0", "hashPath": "system.threading.overlapped.4.3.0.nupkg.sha512" }, "System.Threading.Tasks/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "path": "system.threading.tasks/4.3.0", "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" }, "System.Threading.Tasks.Extensions/4.5.1": { "type": "package", "serviceable": true, "sha512": "sha512-WSKUTtLhPR8gllzIWO2x6l4lmAIfbyMAiTlyXAis4QBDonXK4b4S6F8zGARX4/P8wH3DH+sLdhamCiHn+fTU1A==", "path": "system.threading.tasks.extensions/4.5.1", "hashPath": "system.threading.tasks.extensions.4.5.1.nupkg.sha512" }, "System.Threading.Thread/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==", "path": "system.threading.thread/4.3.0", "hashPath": "system.threading.thread.4.3.0.nupkg.sha512" }, "System.Threading.ThreadPool/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==", "path": "system.threading.threadpool/4.3.0", "hashPath": "system.threading.threadpool.4.3.0.nupkg.sha512" }, "System.Threading.Timer/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", "path": "system.threading.timer/4.3.0", "hashPath": "system.threading.timer.4.3.0.nupkg.sha512" }, "System.Windows.Extensions/4.6.0": { "type": "package", "serviceable": true, "sha512": "sha512-GL4izk0KgeyXklUOHViAk7y1IOYVYcn8nDpJZgcCqNzTGv2xd+8rgGgMKMo8G9nvfEuRCrNxWnGc74EiuYH2YA==", "path": "system.windows.extensions/4.6.0", "hashPath": "system.windows.extensions.4.6.0.nupkg.sha512" }, "System.Xml.ReaderWriter/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", "path": "system.xml.readerwriter/4.3.0", "hashPath": "system.xml.readerwriter.4.3.0.nupkg.sha512" }, "System.Xml.XDocument/4.3.0": { "type": "package", "serviceable": true, "sha512": "sha512-5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", "path": "system.xml.xdocument/4.3.0", "hashPath": "system.xml.xdocument.4.3.0.nupkg.sha512" }, "System.Xml.XmlDocument/4.0.1": { "type": "package", "serviceable": true, "sha512": "sha512-2eZu6IP+etFVBBFUFzw2w6J21DqIN5eL9Y8r8JfJWUmV28Z5P0SNU01oCisVHQgHsDhHPnmq2s1hJrJCFZWloQ==", "path": "system.xml.xmldocument/4.0.1", "hashPath": "system.xml.xmldocument.4.0.1.nupkg.sha512" }, "System.Xml.XPath/4.0.1": { "type": "package", "serviceable": true, "sha512": "sha512-UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==", "path": "system.xml.xpath/4.0.1", "hashPath": "system.xml.xpath.4.0.1.nupkg.sha512" }, "System.Xml.XPath.XmlDocument/4.0.1": { "type": "package", "serviceable": true, "sha512": "sha512-Zm2BdeanuncYs3NhCj4c9e1x3EXFzFBVv2wPEc/Dj4ZbI9R8ecLSR5frAsx4zJCPBtKQreQ7Q/KxJEohJZbfzA==", "path": "system.xml.xpath.xmldocument/4.0.1", "hashPath": "system.xml.xpath.xmldocument.4.0.1.nupkg.sha512" }, "BrawlStars.Utilities/1.0.0": { "type": "project", "serviceable": false, "sha512": "" } } } ================================================ FILE: Server/BrawlStars.runtimeconfig.dev.json ================================================ { "runtimeOptions": { "additionalProbingPaths": [ "C:\\Users\\Vitalik\\.dotnet\\store\\|arch|\\|tfm|", "C:\\Users\\Vitalik\\.nuget\\packages", "E:\\Microsoft\\Xamarin\\NuGet" ] } } ================================================ FILE: Server/BrawlStars.runtimeconfig.json ================================================ { "runtimeOptions": { "tfm": "netcoreapp3.1", "framework": { "name": "Microsoft.NETCore.App", "version": "3.1.0" } } } ================================================ FILE: Server/GameAssets/database.sql ================================================ SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; CREATE TABLE IF NOT EXISTS `player` ( `Id` bigint(20) NOT NULL, `Trophies` bigint(20) NOT NULL, `Language` text CHARACTER SET utf8mb4 NOT NULL, `FacebookId` text CHARACTER SET utf8mb4, `Home` text CHARACTER SET utf8mb4 NOT NULL, `Sessions` text CHARACTER SET utf8mb4 NOT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `clan` ( `Id` bigint(20) NOT NULL, `Trophies` bigint(20) NOT NULL, `RequiredTrophies` bigint(20) NOT NULL, `Type` bigint(20) NOT NULL, `Region` text CHARACTER SET utf8mb4 NOT NULL, `Data` text CHARACTER SET utf8mb4 NOT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ================================================ FILE: Server/GameAssets/fingerprint.json ================================================ {"files":[{"file":"badge\/default.edges","sha":"5a0f1a2906a37ff6ffde2b5ae328b88c6860493e"},{"file":"badge\/default_diffuse.png","sha":"20d078856a32bf496f1ecd40ce5dd90dff9daf65"},{"file":"badge\/default_diffuse_back.png","sha":"8068311784a41627032f1b4b059a7c1faaf36381"},{"file":"badge\/default_diffuse_edge.png","sha":"8068311784a41627032f1b4b059a7c1faaf36381"},{"file":"badge\/default_glossiness.png","sha":"614dd3e27c25dd4c9ae31d3abd7759304c239890"},{"file":"badge\/default_glossiness_back.png","sha":"865c7d52803440ce2c6896758a817b964459f239"},{"file":"badge\/default_glossiness_edge.png","sha":"12f5c636cb99cde7cf1869f4781166d3864df9af"},{"file":"badge\/default_normal.png","sha":"836c2439436055579f860a9a354c09c99c892104"},{"file":"badge\/default_normal_back.png","sha":"836c2439436055579f860a9a354c09c99c892104"},{"file":"badge\/default_normal_edge.png","sha":"836c2439436055579f860a9a354c09c99c892104"},{"file":"badge\/default_specular.png","sha":"fcb9867d8c156ad035b4aa6b0b7d4190c10d37e2"},{"file":"badge\/default_specular_back.png","sha":"059c0014f39246cb05adf0dc54b51df866fe6f16"},{"file":"badge\/default_specular_edge.png","sha":"fcb9867d8c156ad035b4aa6b0b7d4190c10d37e2"},{"file":"csv_client\/animations.csv","sha":"97a9f634eb0911654753c2b72b110bd7f88c64f9"},{"file":"csv_client\/billing_packages.csv","sha":"eec119b6a7bd84101b50d005b72421146fbe9880"},{"file":"csv_client\/client_globals.csv","sha":"94c684a7333aea79fb1ad8cae14dac9247b1f31f"},{"file":"csv_client\/color_gradients.csv","sha":"79eb0edef89f0a38cb0e84d7a3c8588a4d43ec8e"},{"file":"csv_client\/credits.csv","sha":"4a002d5b8187acc72a8742cea4320582676d689b"},{"file":"csv_client\/effects.csv","sha":"267eb5d185c577317122d8374627b8a308a40472"},{"file":"csv_client\/faces.csv","sha":"a21365823c0d52094ddc7d8169954129937d1818"},{"file":"csv_client\/health_bars.csv","sha":"ba83fb73bcd710ed9bd376d77991dc0d35f6b2ba"},{"file":"csv_client\/hints.csv","sha":"86f03fdedda29ba03fe9881bf22ec97984b30b4e"},{"file":"csv_client\/links.csv","sha":"8fcc280ca8ec953a05e4b77d8d349db9d1c875fd"},{"file":"csv_client\/local_notifications.csv","sha":"f2b55e772aac69eac430d178203254d2274dad4e"},{"file":"csv_client\/music.csv","sha":"9c2b20e2efeaef89931b4dce14cba639bed9ae8f"},{"file":"csv_client\/particle_emitters.csv","sha":"250f6099f558cf46ff7a08a3fe4dd0c46937dd15"},{"file":"csv_client\/particle_emitters.json","sha":"2d242c47a2e20692ed447fd79bf85eb6f0ba6d36"},{"file":"csv_client\/shop_items.csv","sha":"8d5a2e4343917054b7b940510b1429f4de771f40"},{"file":"csv_client\/sounds.csv","sha":"772b8874a73e1f4aceea0cf37539f4c0e6974e3f"},{"file":"csv_client\/tutorial.csv","sha":"a057d703932c5f71c20552132115171d3c820e0f"},{"file":"csv_logic\/accessories.csv","sha":"0f9114b9389803990bd29ac1184450bd3888deec"},{"file":"csv_logic\/alliance_badges.csv","sha":"0f05e2a6aa752bcfbf1425348bfcf2d5dbbdd0be"},{"file":"csv_logic\/alliance_roles.csv","sha":"bc11c0632058700168d812c2cd07870624584710"},{"file":"csv_logic\/area_effects.csv","sha":"8406d56c4b9df0be9de7de4b26a954cdaed3662a"},{"file":"csv_logic\/bosses.csv","sha":"123c739bb4598cf1d76a00e5e4a1fec39ffaaf2f"},{"file":"csv_logic\/campaign.csv","sha":"2fb30b9c23dd7b1e87ef009f26453bf0e2f93c60"},{"file":"csv_logic\/cards.csv","sha":"1870e1ab143c3bcac574a93f86a7a69fb115e347"},{"file":"csv_logic\/challenges.csv","sha":"9cfce47b2b7f6a260d622f9105fdafbaa438a633"},{"file":"csv_logic\/characters.csv","sha":"7a24a10de47cd3ba275d5d0ab99368d2575abbd1"},{"file":"csv_logic\/game_mode_variations.csv","sha":"a8fa53263b80c7f0aff820a8d0fc8851b11c210c"},{"file":"csv_logic\/globals.csv","sha":"cb4f4fae4903787e20db0f5fca9734c4e1be9bb9"},{"file":"csv_logic\/items.csv","sha":"2b2dc75dec8c01f92e0325ce0903c289e65383cc"},{"file":"csv_logic\/locales.csv","sha":"1ae24282c0d1ff23717e7d0f12b5ae2c0718cde5"},{"file":"csv_logic\/location_themes.csv","sha":"fac809e9fff14cb86d62854af1a0db889f7a166a"},{"file":"csv_logic\/locations.csv","sha":"5927be4b6c8894d2d5077cea7eab4e14b877b9da"},{"file":"csv_logic\/map_blocks.csv","sha":"411c42c91071e15f00592f5f664477457e89df45"},{"file":"csv_logic\/maps.csv","sha":"b7654719c21e354ad4cf46d7d3e9087f94fdfbe3"},{"file":"csv_logic\/messages.csv","sha":"1f7ab8deab0544a2e9570c37a962f10ddd47feb5"},{"file":"csv_logic\/milestones.csv","sha":"216e850f4798f66f6c1aa895b1014a4a0cdeeef2"},{"file":"csv_logic\/name_colors.csv","sha":"a8282b1fad812d947e1b0b665d7821f46e9dc57e"},{"file":"csv_logic\/pins.csv","sha":"24ef753b5dbcc9475d47ac69edebeb09b521d777"},{"file":"csv_logic\/player_thumbnails.csv","sha":"574e74f15051a8bde30cd58335487a2cd1270aed"},{"file":"csv_logic\/projectiles.csv","sha":"42e4d0e1aa992b4b2745c20cf6aaf5f6c0c910dd"},{"file":"csv_logic\/regions.csv","sha":"50ae49e7358c1c05df74c6ee97be5ffe870d4258"},{"file":"csv_logic\/resources.csv","sha":"cd2d939e64de2fcf7b9c2dd1644931cbc91c1df0"},{"file":"csv_logic\/skills.csv","sha":"3bd4a65394ae36f64913c6e24d7c7fe0a46dcba6"},{"file":"csv_logic\/skin_confs.csv","sha":"65808d43e976aabdc6e1e8fd4b7ef671edd7ee4d"},{"file":"csv_logic\/skins.csv","sha":"70247ce2cf0f61b9a588ed6f27c5e39c3c689712"},{"file":"csv_logic\/skinsrarity.csv","sha":"cc59933ab880cabfa54aca22a84075e55f4df8e9"},{"file":"csv_logic\/themes.csv","sha":"88fbc84a28aac76c182cbf164c8378dc938de4dc"},{"file":"csv_logic\/tiles.csv","sha":"ac783470532750f2fd56134c5fa882ac3d20443a"},{"file":"font\/Brawl_Stars_Deputy.otf","sha":"7bf2c6c950542f35a7359c8676b8296d7255b9c8"},{"file":"font\/LilitaOne-Regular.ttf","sha":"70b4f26a4787952f7f45290cd963049ebd5a6501"},{"file":"font\/NotoNaskhArabic-Bold.ttf","sha":"9515989125309566cf2c4a5a84d7e498f853939f"},{"file":"font\/Pusia-Bold.otf","sha":"47699042537a908ad1187dedcd71d618c6651f31"},{"file":"font\/debug.fnt","sha":"719870d4573b1267eba821b4a5498b5505139ce9"},{"file":"font\/debug.png","sha":"59d01d0c4b1e3566e355422df4599462b1ace9fa"},{"file":"image\/range.png","sha":"0d95f0d1131655db9f2c5841370eb05f762508b9"},{"file":"localization\/ar.csv","sha":"54e518aeb4b684e5ea10698ca269e17c9339fdd9"},{"file":"localization\/cn.csv","sha":"4af6ef2ee032a1dfd8f1b607f0eeb92aa9aec41e"},{"file":"localization\/cnt.csv","sha":"65d1903dbd9f49b4708478f0b98228915dbbe354"},{"file":"localization\/de.csv","sha":"8bf6d9755a67c863e6c7a2ab3a00e4b4ec111ab8"},{"file":"localization\/es.csv","sha":"5a19ff4f9e81ebdb4072c82a699fd035e8141529"},{"file":"localization\/fi.csv","sha":"c99d65961375a175fec5f37aeb2fdeaec0ec9404"},{"file":"localization\/fr.csv","sha":"aff490986f4bf9510f46a6f0c1cc9eed6ffcaf83"},{"file":"localization\/he.csv","sha":"910be12d0798ba633c32aa3f0fc73fe9d6c9fa02"},{"file":"localization\/id.csv","sha":"2b49e70f73542ad133a585e01ee2b529ba99d4b0"},{"file":"localization\/it.csv","sha":"919cca7d7c4438ea86cf4b5b258ef9e8476bae81"},{"file":"localization\/jp.csv","sha":"1b15899eb166604eeee7fff88209649edc61b821"},{"file":"localization\/kr.csv","sha":"c11f6179ce9bf2410f2c729ce6f43527552bb246"},{"file":"localization\/ms.csv","sha":"6eed2ce434a6cbf13151e04ee6442129ce9a1f9b"},{"file":"localization\/nl.csv","sha":"1629a376db4985f82843df8b989f75574bc943e1"},{"file":"localization\/pl.csv","sha":"6357c08144a501b68350a37b3c9ebf48b82df989"},{"file":"localization\/pt.csv","sha":"abab9e920e1d0a7fb8a643c548adb9830a021269"},{"file":"localization\/ru.csv","sha":"4a532f3f6a212d11d131ba39c2b8d4bbbdb08767"},{"file":"localization\/texts.csv","sha":"1c8eeaa2e1e12ea488fdb1abaca522de11fdcae3"},{"file":"localization\/texts_patch.csv","sha":"5ae0a52e22a17b41dc19f7bf8e4456c0f3a021f4"},{"file":"localization\/th.csv","sha":"d116a9e4ba08d148df9d9876d1b56e9e235d799b"},{"file":"localization\/tr.csv","sha":"f78e6c7c2e9c471840c3a33280803965c78023f2"},{"file":"localization\/vi.csv","sha":"e6a07ca46a780bac3270cc5ceb5b613d3738492f"},{"file":"music\/Slugfest_ingame_01.ogg","sha":"84536637053872c4564d1a8e37019852b7900568"},{"file":"music\/Slugfest_ingame_02.ogg","sha":"cc0a2c5987426529f597ce9501e198e8066acfd3"},{"file":"music\/Slugfest_ingame_03.ogg","sha":"6c4a4a372894f724113308023fbe89e95818cf9d"},{"file":"music\/Slugfest_ingame_04.ogg","sha":"61818f7237a7b130a407ae9f1e6194d3404d4fc9"},{"file":"music\/Slugfest_ingame_06.ogg","sha":"7011e1cb2c99044fa575d3ca7e773c4ad39f26f3"},{"file":"music\/Slugfest_ingame_07.ogg","sha":"cd989185da1e385ebef4b856314e9ce69a70f941"},{"file":"music\/Slugfest_ingame_08.ogg","sha":"b290291a1b8000d3a58551f7601079c08a64490d"},{"file":"music\/brawl_goal_02.ogg","sha":"aac9feed6d489a22310174b5fe9702acdd9b9bdd"},{"file":"music\/brawl_other_goal_01.ogg","sha":"275ac274b52ed6fcb394b4b717d1d6c1d6fb6bb7"},{"file":"music\/brawl_panic_time_01.ogg","sha":"5f44a9374743b53d898796def9283fc330d5b0f8"},{"file":"music\/brawl_stars_menu_01.ogg","sha":"2a33604debf7d0a4eb824b3d8bef5181265a194f"},{"file":"music\/brawl_xmas_flag_lose_01.ogg","sha":"988ac2d4d2dd0c6a3a7bcb3c7710cff53f441930"},{"file":"music\/brawl_xmas_flag_win_01.ogg","sha":"81e6aee2f6f49ea2ace32cb510ac8a33fd22c862"},{"file":"music\/brawlcade_ingame_01.ogg","sha":"e5ded36f07e34cd816690d275b87e67ff2721ca1"},{"file":"music\/brawlcade_ingame_02.ogg","sha":"9ebd3ec78af1016dd9c9a17aaf882b82ee187796"},{"file":"music\/brawloween_ingame_01.ogg","sha":"6dec47fd7db80ba012810f78ab71fe90027421be"},{"file":"music\/brawloween_ingame_02.ogg","sha":"7dfd5c9bfcd13cd988578f7cc77a3c186bb8641e"},{"file":"music\/draw_screen_loop_4x_01.ogg","sha":"5688998114012870d73031daf5a0be1457afadf7"},{"file":"music\/footbrawl_ingame_muzak_01.ogg","sha":"09f1fb61738a8f887ab8fa8cd74a3ed9e21b61a1"},{"file":"music\/footbrawl_ingame_muzak_02.ogg","sha":"b4a7c4dc7d28e3f1a0549245c00643765496d907"},{"file":"music\/footbrawl_menu_muzak_01.ogg","sha":"4fef8ab01465b12ce2f99e79e1fce8441ab16ad8"},{"file":"music\/laser_game_draw_01.ogg","sha":"9aac08c3a8c985b9803dc858701c93b6ae3cc8fd"},{"file":"music\/lose_screen_loop_4x_01.ogg","sha":"75413ba39a23526ceb6d4a490a4979a5091118f5"},{"file":"music\/pirate_brawl_ingame_01.ogg","sha":"75c4949ad8fea98924fe10059817ef961c31d435"},{"file":"music\/pirate_brawl_ingame_02.ogg","sha":"77f8a03b78ae1bbde73b94534500c3b80ff51502"},{"file":"music\/retro_brawl_ingame_01.ogg","sha":"0b376465139f10277cd641a5c173bc2a73a2b5d4"},{"file":"music\/retro_brawl_ingame_02.ogg","sha":"a55e911bbc55313b4a6861908d25fe156609574a"},{"file":"music\/slugfest_game_lost_01.ogg","sha":"a9eac8476f2d81e946d2684b73001956f12c2a56"},{"file":"music\/slugfest_game_won_01.ogg","sha":"c1b1e00abeea9f80fbba6ce8887f1529f98ec3ce"},{"file":"music\/win_screen_loop_4x_01.ogg","sha":"04edbe5ff272d24c878c6a6498376c807b60b3c0"},{"file":"sc\/background_basic.sc","sha":"3fd9064fad7888eb44fbbf973895d4faab5872ee"},{"file":"sc\/background_basic_tex.sc","sha":"81f42c70ed2f07d8f5065fc139a00a3e13df75ab"},{"file":"sc\/background_brawlidays.sc","sha":"440930548d135a83bfb46986acdccb861850de3a"},{"file":"sc\/background_brawlidays_tex.sc","sha":"c856e971e1b8b0f54e8afc5f5585707b7613498f"},{"file":"sc\/background_brawloween.sc","sha":"5d3a6e3442e6b8a24b4b825e0062b3c400ca2d31"},{"file":"sc\/background_brawloween_tex.sc","sha":"b55a199a3c521ef70bf3193a6e960b82f021f0ad"},{"file":"sc\/background_golden_week.sc","sha":"ee23c78b6a5af1c4628ef4833c26521f7df65c42"},{"file":"sc\/background_golden_week_tex.sc","sha":"5cec1aa8f49d3bf6c802dd44c863eeb8622ca9b0"},{"file":"sc\/background_lny.sc","sha":"ea48d33f35f65367d580c6378c0b39003e7491bd"},{"file":"sc\/background_lny_20.sc","sha":"0b5e915ff4c99acbcd6f665715b84f0761c6e6ee"},{"file":"sc\/background_lny_20_tex.sc","sha":"f531595dedb8842b3d3309265746a06fac0a330b"},{"file":"sc\/background_lny_tex.sc","sha":"bfd62ea364d7ab4240cc9039a59d8d7b9bd2b050"},{"file":"sc\/background_mecha.sc","sha":"95d2038cea9b2e5351dc5ce1a06611ba568bddc3"},{"file":"sc\/background_mecha_tex.sc","sha":"f6b349210caf68982290f1fcfeace0623287db57"},{"file":"sc\/background_psg.sc","sha":"9ff368975d403b9dbd07bad843f0701d29403403"},{"file":"sc\/background_psg_tex.sc","sha":"34db4a6f71ba06ef3a4eb9fc4ac075fad78a1a32"},{"file":"sc\/background_retropolis.sc","sha":"cf6d09df4c862153962fd991531d3e961d0562d0"},{"file":"sc\/background_retropolis_tex.sc","sha":"0d3e7443440a36bc19831cec36c33352a514c965"},{"file":"sc\/characters.sc","sha":"c83f1eb247db23854d433b8c9e309c2d42032c59"},{"file":"sc\/characters_tex.sc","sha":"ee1b4aa109ed24f12d94071034f29605ea0c44bd"},{"file":"sc\/debug.sc","sha":"72be5665969f8300b8b45574988f787b747a4e68"},{"file":"sc\/debug_tex.sc","sha":"689c009488f4d31739dc5cc374f4f3fcf9bcbc37"},{"file":"sc\/effects.sc","sha":"5d0eaa69ebbf34b61f0d1a9be5e2b1dd493f2465"},{"file":"sc\/effects_brawler.sc","sha":"11e4d2f2b812e707f6ae2cd2fb3e086aa1ce6151"},{"file":"sc\/effects_brawler_tex.sc","sha":"98401f574c2a894d95418b047be9e460389a7350"},{"file":"sc\/effects_tex.sc","sha":"19fbd12b0588a1053737125123639cb91431546d"},{"file":"sc\/events.sc","sha":"35815b4a0a43c61213043b97a25393956f1349e3"},{"file":"sc\/events_tex.sc","sha":"47c071a3aa60083d29d32843f7c12b07f306f618"},{"file":"sc\/level.sc","sha":"0b888928370df8719e20d6741d07bc470393ea60"},{"file":"sc\/level_tex.sc","sha":"f6ce04cbfabe5c4d07a9f58f30c488fa1c948d00"},{"file":"sc\/loading.sc","sha":"aa8751e9990bdc0c31e27db30bc2081edd6627d6"},{"file":"sc\/loading_tex.sc","sha":"9e933c353fb7723a93bdebe76e23d4938a6b126d"},{"file":"sc\/supercell_id.sc","sha":"eca3334e42442b8b683e94fa32361accc190c48b"},{"file":"sc\/supercell_id_tex.sc","sha":"1cafc6c921773d9e287416c7e66e66a608acbfc8"},{"file":"sc\/ui.sc","sha":"50f9e96715ed3e386af055d31de6d226dd198e0b"},{"file":"sc\/ui_tex.sc","sha":"02a4045106eb9d049b0635b3b21cf449bd974356"},{"file":"sc3d\/8bit_attack.scw","sha":"ebaaaf747cee0b271ec875328a2951209f9aef77"},{"file":"sc3d\/8bit_base_cam.scw","sha":"c9f551f476f6166c7d79fc401e1429ce1b9df4e2"},{"file":"sc3d\/8bit_classic_geo.scw","sha":"5c78084a97267af4bb57054e3e924fcac07245aa"},{"file":"sc3d\/8bit_classic_tex.ktx","sha":"166ac8f0eaa7754a8138d0c880efac1b6b91cf16"},{"file":"sc3d\/8bit_classic_tex.pvr","sha":"a605dabd4a00be1d19ceec5a7354be7981c3334e"},{"file":"sc3d\/8bit_geo.scw","sha":"7972d9b1cf40e3d8c55000df4d5172b819c61846"},{"file":"sc3d\/8bit_idle.scw","sha":"0f798a08dda07a06f5755838e3e6603a3cb87123"},{"file":"sc3d\/8bit_lose.scw","sha":"4a2eaadc84497c10c4985aed636b3fe8b8a8cdd1"},{"file":"sc3d\/8bit_pushback.scw","sha":"c137a08aecf0d7ec908ffb6e0acccb9caaa1b332"},{"file":"sc3d\/8bit_reload.scw","sha":"7e0b846ad6395920549f74450e66f5df8a84343a"},{"file":"sc3d\/8bit_tex.ktx","sha":"6a40bdf0cccb6f5f3de2ce65aceb044e21f15c20"},{"file":"sc3d\/8bit_tex.pvr","sha":"d767151d0b37e1f36d68669b2278280047b86c45"},{"file":"sc3d\/8bit_turret_geo.scw","sha":"dc658d917f962bc86dfae6c48199409572b1262e"},{"file":"sc3d\/8bit_turret_idle.scw","sha":"a2346660ac571e50e9a1cc03ff84531252faeaad"},{"file":"sc3d\/8bit_turret_spawn.scw","sha":"6b274563ec6e58149295eb04d709187c2540d946"},{"file":"sc3d\/8bit_virus_attack.scw","sha":"01e4cc1454ecf7d0dfe9030ee9f3823575a54a8c"},{"file":"sc3d\/8bit_virus_geo.scw","sha":"49ddd4bc1f9bc583fb7c353fc6ad4a187cb938f5"},{"file":"sc3d\/8bit_virus_idle.scw","sha":"61d8f5db5c6ebab5e6f820926cb6b19d895473bf"},{"file":"sc3d\/8bit_virus_lose.scw","sha":"adea06a51e8da07fc1fd331614e16bab61c4140a"},{"file":"sc3d\/8bit_virus_portrait.scw","sha":"fe49348762e6a513f3e2f0896ea624e496d660c3"},{"file":"sc3d\/8bit_virus_reload.scw","sha":"d57273406d012e0c11567d9a73fefceab3a2beaa"},{"file":"sc3d\/8bit_virus_tex.ktx","sha":"37c7e6a99ae83ef610c37a5f5397b9d9e4791b4a"},{"file":"sc3d\/8bit_virus_tex.pvr","sha":"d7b74c6b07a509ee65267d6ec5037de87792c9ca"},{"file":"sc3d\/8bit_virus_turret_geo.scw","sha":"22abed84d0c66e6741d2619c418b9d2fc1ed9e9f"},{"file":"sc3d\/8bit_virus_walk.scw","sha":"4bc6aa01ae8d852c571b7f17d246afcc527bb3d3"},{"file":"sc3d\/8bit_virus_win.scw","sha":"3202eff355c197d4e158cb63c3576e23a43233dc"},{"file":"sc3d\/8bit_walk.scw","sha":"a2c6fea8243fc4be722d020e5af60129164ed92a"},{"file":"sc3d\/8bit_win.scw","sha":"90ff48c691d81b26c3f6c570a07ff0880e692516"},{"file":"sc3d\/arcade_002_ulti.ktx","sha":"0ca5627e62a211875307f048632189c741ca9f32"},{"file":"sc3d\/arcade_002_ulti.pvr","sha":"633fe8aec3f2981bc2c0ed3e80ea918dc5e68a41"},{"file":"sc3d\/arcade_002_ulti.scw","sha":"b0b2abb7dfb903335171fc145df83c012325b696"},{"file":"sc3d\/arcade_def_ulti.scw","sha":"63e5301a5d3969cb4a125b0c35d4233ac4570da8"},{"file":"sc3d\/arcade_def_ulti_blue.ktx","sha":"b13430663fb50832f3973faf3819de28e9e0a508"},{"file":"sc3d\/arcade_def_ulti_blue.pvr","sha":"4acd45ed45b685cae2a99f6bb706b2c4e2bef1cb"},{"file":"sc3d\/arcade_def_ulti_red.ktx","sha":"dcb0cda8e677ee595581d1e34904181e87c2fcf3"},{"file":"sc3d\/arcade_def_ulti_red.pvr","sha":"c73e17e1283afff04aa8da67d6310601e18b8590"},{"file":"sc3d\/arcade_def_ulti_red.scw","sha":"c39da976dc7ba9d3f59c2f16cfd25f276bcb3d34"},{"file":"sc3d\/arena_blocker.scw","sha":"b80e6bb154cf1ec19894f463f439ee9cfe673695"},{"file":"sc3d\/ball_cactus.scw","sha":"b835c254af11e5a4729d7a0c000d671af477d2c4"},{"file":"sc3d\/ball_tex.ktx","sha":"e24c7d51573d4ad4ee113a59d6bc7c695ed13aa8"},{"file":"sc3d\/ball_tex.pvr","sha":"8551cf7da1cfd195f37ce848b57f3a154d0bc8c9"},{"file":"sc3d\/barkeep_attack1.scw","sha":"d7e7b0e6fccfd46d581bad1877a5abee518e07f9"},{"file":"sc3d\/barkeep_geo.scw","sha":"3696699d735d8b852ba11a67739ebaf76c94457e"},{"file":"sc3d\/barkeep_gold_tex.ktx","sha":"e6abc38ea8e6afd23c3ff0148a36e2fa574fe446"},{"file":"sc3d\/barkeep_gold_tex.pvr","sha":"1a790040687efb9571b73b2c9d96f7e91bc03812"},{"file":"sc3d\/barkeep_idle.scw","sha":"f1df13f0478521c37505a2190308d86592a44282"},{"file":"sc3d\/barkeep_lose1.scw","sha":"cb5404f0438566e85dc25704f644c321a1ea00a4"},{"file":"sc3d\/barkeep_loseloop1.scw","sha":"da8b93f1704b6dee422097752b635c20ce918619"},{"file":"sc3d\/barkeep_pushback.scw","sha":"307ca1bb066352c11b5a120834344755d0ded219"},{"file":"sc3d\/barkeep_recoil.scw","sha":"d332270009ece9c2f42c88ebbc5a5c013878cbcd"},{"file":"sc3d\/barkeep_reload.scw","sha":"627c7af92441b135ca3099a398a9ac8855e979c3"},{"file":"sc3d\/barkeep_tex.ktx","sha":"c8f023004e788cea866f53e78a72780d63b9ad13"},{"file":"sc3d\/barkeep_tex.pvr","sha":"fae8a6efc8dca887553bba0429187b3dc398a29b"},{"file":"sc3d\/barkeep_walk.scw","sha":"c9e8207e75c55b830e8f5ef2b5f357ecc7ed49eb"},{"file":"sc3d\/barkeep_win1.scw","sha":"5922e70251b55f373cbeac46725108d778684178"},{"file":"sc3d\/barkeep_winidleloop.scw","sha":"1a7449ad7880758b74b0e242086b8e0b8657fcb7"},{"file":"sc3d\/barkeep_winloop1.scw","sha":"fa6e89d263096ec29c39b3176a0fae74eea7ed73"},{"file":"sc3d\/barley_005_atk_blue.ktx","sha":"050723020a32551d64961d05d123ff1dc02e80e0"},{"file":"sc3d\/barley_005_atk_blue.pvr","sha":"c62b6b1ac3075a16a7fc8c29873e07284e87f92b"},{"file":"sc3d\/barley_005_atk_blue.scw","sha":"e7e089e1f4f78ed6066da632ba75a8c7b8a6a34f"},{"file":"sc3d\/barley_005_atk_red.ktx","sha":"6622d061753c91d8b2f4f7630980d95ef1ce32e7"},{"file":"sc3d\/barley_005_atk_red.pvr","sha":"2f00b0acd9215e27cc5a6a96d127d552e5998941"},{"file":"sc3d\/barley_005_atk_red.scw","sha":"25f02f486e1100c9b9d9f137ae2a9c63a54dea07"},{"file":"sc3d\/barley_banker_attack1.scw","sha":"8d5318d3552740856c8dd5097b601c4f711493bb"},{"file":"sc3d\/barley_banker_geo.scw","sha":"148fbd72e5034b3201f8db7bc7a4c4a5457e22ed"},{"file":"sc3d\/barley_banker_idle.scw","sha":"51c35f99f4372833c037a97c9a6626ec6c7de76a"},{"file":"sc3d\/barley_banker_knockback.scw","sha":"0420e4359360a0c16d6822529c5b01b617f4ce7c"},{"file":"sc3d\/barley_banker_lose1.scw","sha":"3f624f14ded8b5517b88126d1123f4bf149e48d5"},{"file":"sc3d\/barley_banker_reload.scw","sha":"ac6cd9d373bcbb9437f8ee3e9fbd157f4cbfaf6c"},{"file":"sc3d\/barley_banker_tex.ktx","sha":"0281d1af7e852d7f5b169cd7a84f43d6e0d46c76"},{"file":"sc3d\/barley_banker_tex.pvr","sha":"058ed374887b54f8ad2ed7a9fb1fed38c618ad56"},{"file":"sc3d\/barley_banker_walk.scw","sha":"1c23ebe71189ee94d00ce292b4489e6e76bc477a"},{"file":"sc3d\/barley_banker_win1.scw","sha":"46eb82a9a6679e223dc3b9a4dec0500770fa925c"},{"file":"sc3d\/barley_banker_winidleloop.scw","sha":"849d71d79256a60b1e11ff33775243e60663d227"},{"file":"sc3d\/barley_base_cam.scw","sha":"51d2aa73d4a56f9c53b5b292c7c020966b6868f8"},{"file":"sc3d\/barley_lumberjack_attack.scw","sha":"bdf75b032c426051a9071c01ac9df4a4dae39a9b"},{"file":"sc3d\/barley_lumberjack_geo.scw","sha":"21088830f9f062f0e76b8f545b6fedd03bd4caeb"},{"file":"sc3d\/barley_lumberjack_idle.scw","sha":"de22c50920d7736cea581635df25f481068e79b5"},{"file":"sc3d\/barley_lumberjack_lose.scw","sha":"1d27cf4c8715cc4653118369c3e2e56c1b9522cc"},{"file":"sc3d\/barley_lumberjack_pushback.scw","sha":"f62984d7ab47487f588088d77975c10fd1bdaabe"},{"file":"sc3d\/barley_lumberjack_run.scw","sha":"de6e2ed16e9d0fb0d0a449df52c4151d942d12bb"},{"file":"sc3d\/barley_lumberjack_tex.ktx","sha":"c01bef33e9a2061ac6579bbeccbce4a7641b65a4"},{"file":"sc3d\/barley_lumberjack_tex.pvr","sha":"546da1ad86033bde04a8715a7420c40d52e37144"},{"file":"sc3d\/barley_lumberjack_win.scw","sha":"4439a542acf95c0b78bff58c93a3c730b85c0548"},{"file":"sc3d\/barley_ms_attack.scw","sha":"9d38789f3f4b9de7c781534a39b6fcebafa2be0f"},{"file":"sc3d\/barley_ms_geo.scw","sha":"f3100109268e5db1f50f1f03f54e6fda3c59b1dc"},{"file":"sc3d\/barley_ms_idle.scw","sha":"db6363940b2c10edb62540f87a3530b2f66bdfdc"},{"file":"sc3d\/barley_ms_lose.scw","sha":"9d3074b6191b74a68dfbf2724b58c3aafce43177"},{"file":"sc3d\/barley_ms_tex.ktx","sha":"f72b38ab3a789e078e52a415a2ccb1b4c2813c61"},{"file":"sc3d\/barley_ms_tex.pvr","sha":"bca170751330d1e90df8f291463b50fb1d1c0e03"},{"file":"sc3d\/barley_ms_walk.scw","sha":"c0bc1d25ba1bca0933b73ff784e431a5dedd787a"},{"file":"sc3d\/barley_ms_win.scw","sha":"59323cb32b88149c58e65a9e313441fb05c663cd"},{"file":"sc3d\/barley_pushback.scw","sha":"865e9743e1a45cf63a42f7dd904e394523a860af"},{"file":"sc3d\/barley_tex.ktx","sha":"58a8f57bab64649a2e0bed8371c1f0303cad10a1"},{"file":"sc3d\/barley_tex.pvr","sha":"f15944dcf5597cd37b23a43d21feae9cfaef97fb"},{"file":"sc3d\/barley_wizard_attack.scw","sha":"850e9312cf639672301f45936871bd69e432a718"},{"file":"sc3d\/barley_wizard_cam.scw","sha":"c43e0f48e61dc1360b1cfcfa21bf513c9ed69617"},{"file":"sc3d\/barley_wizard_geo.scw","sha":"ad883c3797b4494de9f79b400ef60accb83f0126"},{"file":"sc3d\/barley_wizard_idle.scw","sha":"18be53fefb42c15b39d8305fc82d120899a03743"},{"file":"sc3d\/barley_wizard_lose.scw","sha":"2594bdcfb0200b31a2da9f658623574f751706f5"},{"file":"sc3d\/barley_wizard_portrait.scw","sha":"82a6cb7c551b27c464a5269e204a08bf5fe620e9"},{"file":"sc3d\/barley_wizard_pushback.scw","sha":"fca17fcd6027211376b6e8aa06227037d03952ac"},{"file":"sc3d\/barley_wizard_tex.ktx","sha":"9e2a15f4ebbe2a12331730f790ec675b2fbeca7b"},{"file":"sc3d\/barley_wizard_tex.pvr","sha":"6275d15946c29ab427a3efad3122cd5ca267ed54"},{"file":"sc3d\/barley_wizard_walk.scw","sha":"eb93bd0491196019d1cf3e5ef54a52561a309a3f"},{"file":"sc3d\/barley_wizard_win.scw","sha":"a10a4146d7433b573d5d3c964f800542e5f35b9a"},{"file":"sc3d\/barrel1.scw","sha":"d5a1ab5cfa1d8cca26dd0fdaea3ca8e1563f2621"},{"file":"sc3d\/barrel2.scw","sha":"72282ec2f5b5d9155dd09c9d79c88257744a6119"},{"file":"sc3d\/barrel_1.ktx","sha":"2edc3079dc671e4db4954780befa42be203bf36c"},{"file":"sc3d\/barrel_1.pvr","sha":"296d40e700d35fe77b8910527873287625f1fbb3"},{"file":"sc3d\/barrel_2.ktx","sha":"0777a7645fe53f2b7aef03a98a0d89bb87b400c3"},{"file":"sc3d\/barrel_2.pvr","sha":"7c104c4b7f73cc82fff9d99f9b6346fd0b180aac"},{"file":"sc3d\/barrel_arcade.scw","sha":"b60e94652845743c2638b043651c369e6ad37afe"},{"file":"sc3d\/barrel_fishy.ktx","sha":"094b93d2ae04cd0fffce7ea58971c20c6b6f90d8"},{"file":"sc3d\/barrel_fishy.pvr","sha":"f8fbfef08e63bb796ad8769f044d0c07e20d7b2d"},{"file":"sc3d\/barrel_fishy.scw","sha":"09d24443d5d7b3e458e7524fd46a41647c0dde5e"},{"file":"sc3d\/barrel_mortuary.ktx","sha":"adfddbe54c9e59702e34e5ba6be87520578b2ea0"},{"file":"sc3d\/barrel_mortuary.pvr","sha":"d928d95b39d3d4a57eb38c5a01ae74b8fc51f8e8"},{"file":"sc3d\/barrel_mortuary.scw","sha":"139d784559e096925f20e4a979869e21a2050933"},{"file":"sc3d\/barrel_xmas.ktx","sha":"44d6f64f06bc80535c23abba918754a41643a1ef"},{"file":"sc3d\/barrel_xmas.pvr","sha":"d20b9a3e57d8e8abbe30f23f384c880768070779"},{"file":"sc3d\/barrel_xmas.scw","sha":"b0e138c7eab5df0aefcba522d78827b87dad7b0d"},{"file":"sc3d\/barrelbot_charge.scw","sha":"01b306fffbb53e3d005a7b7138327473bf4c2ca2"},{"file":"sc3d\/barrelbot_geo.scw","sha":"a47900512678df788077a8d9504eb245148cb3c9"},{"file":"sc3d\/barrelbot_idle.scw","sha":"b06abde95f5ee7deacd0b5fd20d2989bcf25bf75"},{"file":"sc3d\/barrelbot_lose1.scw","sha":"35e0f327fa70f543fa0e66e5eebafc22fa7bcac2"},{"file":"sc3d\/barrelbot_recoil.scw","sha":"11c1d6211e57f56b63e9e9b60b6d383d42494c73"},{"file":"sc3d\/barrelbot_recoil2.scw","sha":"894711dc6dbbcdd774b35a67f56d67421a1fe17e"},{"file":"sc3d\/barrelbot_signature.scw","sha":"27dc59e479dfd1f426228ce1ce5bd606f37cae38"},{"file":"sc3d\/barrelbot_tex.ktx","sha":"c4d07a3f9192cec5f0b39d80313014051aca3899"},{"file":"sc3d\/barrelbot_tex.pvr","sha":"298d2ee5771df9d0ff05e2d76ee330c3dc0f7091"},{"file":"sc3d\/barrelbot_tex_red.ktx","sha":"05f1615170608f5b163c3dba89580f8470680cec"},{"file":"sc3d\/barrelbot_tex_red.pvr","sha":"724a9eac0615cf3c2056ef06f123b025b908e0fa"},{"file":"sc3d\/barrelbot_walk.scw","sha":"7754bce5682eec066ecba925429922c7f2fd7905"},{"file":"sc3d\/barrelbot_win1.scw","sha":"da50bbe273865349926634c6b35be78e64741bf9"},{"file":"sc3d\/basic_tall_geo.scw","sha":"9936b2565b715f3d4f0ce780cf6c1a7bcc8c4862"},{"file":"sc3d\/bbox_10.scw","sha":"03cd7e8eea8b8464bc139a2cddba2fac4ea64eaa"},{"file":"sc3d\/bbox_11.scw","sha":"17f3cbaa0657dc7f7eeb184a0a69c71bdaeb7cb9"},{"file":"sc3d\/bbox_12.scw","sha":"1224383c360a988c365c989150fbace922dfb113"},{"file":"sc3d\/bbox_diffuse_lightmap.png","sha":"cc18a0637c3cbb294a0c2bc996051f7608a5c023"},{"file":"sc3d\/bbox_glow.ktx","sha":"aba94bd118c38ffdace85b077ded4aaa18e0f4cf"},{"file":"sc3d\/bbox_glow.pvr","sha":"3f57dde49c2bfa95e029ed7124686d3fa08c437f"},{"file":"sc3d\/bbox_l.ktx","sha":"a522297c042389317584b7d6bbae217cb37fff8c"},{"file":"sc3d\/bbox_l.pvr","sha":"b0b9311661b3d1047524886fa09d8aed6c957f90"},{"file":"sc3d\/bbox_m.ktx","sha":"deb1da84405d97e92ae48e03f08d2f05b985b7d9"},{"file":"sc3d\/bbox_m.pvr","sha":"cffabd4cbafc22076de94492a9712e95cc5bf420"},{"file":"sc3d\/bbox_specular_lightmap.png","sha":"9b385ff4340ecdd4c2a871da7990903bb3280248"},{"file":"sc3d\/bea_attack.scw","sha":"7a6353252a76dbeacf1824dd377bd42fbdb27739"},{"file":"sc3d\/bea_gadget_honeypot_geo.scw","sha":"114b0bc0f49dd3ebc0fb4a9adcd542b0ead7af46"},{"file":"sc3d\/bea_gadget_honeypot_tex.ktx","sha":"6ba00aeca8295ee094859ab902b4af21879b879d"},{"file":"sc3d\/bea_gadget_honeypot_tex.pvr","sha":"0c9cef0bac9db0311c96505223a91c3fb5d98d02"},{"file":"sc3d\/bea_geo.scw","sha":"244d77a9cd5379b66b1af16239cc1b304531b554"},{"file":"sc3d\/bea_idle.scw","sha":"9927f075f7527d150cedc9c52cbb71174afcb0f6"},{"file":"sc3d\/bea_ladybug_geo.scw","sha":"2555b7d50093c1decdfae995bcb6d597862014b8"},{"file":"sc3d\/bea_ladybug_tex.ktx","sha":"664726979bf23c652735a34ce570515e714590e6"},{"file":"sc3d\/bea_ladybug_tex.pvr","sha":"4fc6aba664725e457396663d55e8fff673a61380"},{"file":"sc3d\/bea_lose.scw","sha":"7f7a89bb6634c7c208ebb8aa976a341aa940a6b7"},{"file":"sc3d\/bea_portrait.scw","sha":"d4b55437df9b08de01f092a85f9b50e0cf6ff772"},{"file":"sc3d\/bea_pushback.scw","sha":"9329351c2709f0303d516c649b4fb5899ecb90b7"},{"file":"sc3d\/bea_reload.scw","sha":"414cc1a458f49fbb66ca18fbb191aa1e98cc3dd2"},{"file":"sc3d\/bea_tex.ktx","sha":"4ae95ab54edce075550eae0f4b5f06721541cbbf"},{"file":"sc3d\/bea_tex.pvr","sha":"c12cb35030007bf947158886b004275554902e20"},{"file":"sc3d\/bea_walk.scw","sha":"c981153fffd68ef9a5a3c71ecfbcdab0e748fac4"},{"file":"sc3d\/bea_win.scw","sha":"959f8f6a6b447544699b665b7a16628d74b06785"},{"file":"sc3d\/bear_koala_geo.scw","sha":"e8b8f87ff1fdf59143f3d0485cabdd30e90592cb"},{"file":"sc3d\/bear_reindeer_attack.scw","sha":"86e1b8a93ec700777ab37bef86dd1b7ca6edde80"},{"file":"sc3d\/bear_reindeer_geo.scw","sha":"6a4179acc857c36232c24517d4c5deedd0308f1a"},{"file":"sc3d\/bear_reindeer_idle.scw","sha":"727abc577b5669b8887fd2effdc7aa9c3e6b6401"},{"file":"sc3d\/bear_reindeer_walk.scw","sha":"aff798896be09b9971803d3b08f58fddb134a0e1"},{"file":"sc3d\/bear_shiba_geo.scw","sha":"628f4e3b38e9bef54913632b005734ff61ab4959"},{"file":"sc3d\/bear_shiba_idle.scw","sha":"8e589d2f5613e71c8154e5f350f01d0bfc601b03"},{"file":"sc3d\/bee_big_idle.scw","sha":"018c5eed2192325c4812d98c1cf36ebd0c64d5e1"},{"file":"sc3d\/bee_big_reload.scw","sha":"d1a5ed7b8b08ea550da13fd812a922de653d990e"},{"file":"sc3d\/bee_geo.scw","sha":"67e9851fd971ea214f6b52f308d76d54fb16bf03"},{"file":"sc3d\/bee_ladybug_geo.scw","sha":"72b4ed9493b508096eb96fe73c4b6e1debc76b8f"},{"file":"sc3d\/bee_small_idle.scw","sha":"31edaa54ce856a5f8171eee4de293a4239d9446a"},{"file":"sc3d\/bee_small_reload.scw","sha":"d882176324941aa4fc212df79deb4cd26c7100cf"},{"file":"sc3d\/bgr_arcade.ktx","sha":"616b8d666e7320f83d38ba4cc7101f70e73df986"},{"file":"sc3d\/bgr_arcade.pvr","sha":"1e4fd8fc5de5a528cb5094553279736f694eeb00"},{"file":"sc3d\/bgr_arcade.scw","sha":"e2c836ba690d26f381a20e776a157b5b5b2c8e65"},{"file":"sc3d\/bgr_arcade_ground.scw","sha":"d48902dd84ef4ce0fb92fb1eda40203ce0ebfdec"},{"file":"sc3d\/bgr_bb_arena.ktx","sha":"9c509142ffa38a2f3f53f6068ae3685fbbcd2c2d"},{"file":"sc3d\/bgr_bb_arena.pvr","sha":"83cb1c99a282eaa9debfeda41ae60ecf0b398fb6"},{"file":"sc3d\/bgr_bb_arena.scw","sha":"9b46197b30d25e3ab04bc1cc810cb7cb40d37129"},{"file":"sc3d\/bgr_bb_arena_decos_default.scw","sha":"b4fb9d44c52d91e35571cc2e4d842d1df9816c62"},{"file":"sc3d\/bgr_bb_arena_decos_psg.scw","sha":"ac94951d9675f4724a87ac58f8b7db58b5093c6e"},{"file":"sc3d\/bgr_bb_arena_ground.scw","sha":"87313110a4269f254f90a16615f0b875f8e577e7"},{"file":"sc3d\/bgr_bb_arena_ground_decos_psg.scw","sha":"e4347d22aee8763472bd1535bdeaae9e9f78eec4"},{"file":"sc3d\/bgr_bb_arena_psg.ktx","sha":"e56ad3081aa9f17230ef711252bda57fd4d5f375"},{"file":"sc3d\/bgr_bb_arena_psg.pvr","sha":"44992d328187e7df0c13437e8caf15e8cb425b38"},{"file":"sc3d\/bgr_beach.ktx","sha":"04d0dec9a1fee92c35c0483d039d1945744bd539"},{"file":"sc3d\/bgr_beach.pvr","sha":"35b52e75d192da0147d51f7be4ae9a3057e92420"},{"file":"sc3d\/bgr_beach.scw","sha":"5f0089ac35e4f7d6b8b1b341fdc120fcb3e2e945"},{"file":"sc3d\/bgr_beach_brawl_ball.scw","sha":"1a7c6cb9705a483ab83a004dc9101031b51a5dbf"},{"file":"sc3d\/bgr_beach_brawl_ball_ground.scw","sha":"2e005895a827035393403c51a661d0dec6ba617a"},{"file":"sc3d\/bgr_beach_ground.scw","sha":"82a6a8be2dd7592e8b3839ac72ca5c065b8e04aa"},{"file":"sc3d\/bgr_beach_ground_wf19.scw","sha":"9ded47be120a819c24b6d5a70ec7015a3e1507b9"},{"file":"sc3d\/bgr_canyon.scw","sha":"69d7a5f16547c7ba8ef3ee170e53eaac337c59ed"},{"file":"sc3d\/bgr_canyon_cactus.ktx","sha":"c8e680893c01edd798b42a4e49c040f4959a5ebe"},{"file":"sc3d\/bgr_canyon_cactus.pvr","sha":"4f4118107ac251fa660093d88e0cc7fb4537426f"},{"file":"sc3d\/bgr_canyon_ground.scw","sha":"3535a49a55f392dbfc5cd9e6f2747e9577b1294d"},{"file":"sc3d\/bgr_canyon_ground_wf19.scw","sha":"bd8698cb3480856edf3e35f4a1a0091a195884db"},{"file":"sc3d\/bgr_canyon_showdown.scw","sha":"92d1978ec9d33666e0836512a38736f45f67b5c0"},{"file":"sc3d\/bgr_canyon_showdown_ground.scw","sha":"ea714420f2935cfc62c16d65b4bbf592f9ee392a"},{"file":"sc3d\/bgr_canyon_showdown_ground_wf19.scw","sha":"96a0d432095af961af6fb45b6964b0a8b666d4e5"},{"file":"sc3d\/bgr_canyon_terrain.ktx","sha":"251e978936b6ad2b4470779b3d6f0ccf1ef5557b"},{"file":"sc3d\/bgr_canyon_terrain.pvr","sha":"9255f8a57d8865e29eec26f25c85163d7b8f6260"},{"file":"sc3d\/bgr_darryls_ship.ktx","sha":"8a55b6d28fb82811998a0afd4cb0543c620dfd32"},{"file":"sc3d\/bgr_darryls_ship.pvr","sha":"36c86b431109ac0080921e2f6a3cd9b10f4e6bac"},{"file":"sc3d\/bgr_darryls_ship.scw","sha":"95f0b0bb489ffa6e1559a7bcc42d8d503a8efe49"},{"file":"sc3d\/bgr_darryls_ship_decos_xmas.scw","sha":"f93488db919e863709a1db258bb3878c120c8cd6"},{"file":"sc3d\/bgr_darryls_ship_ground.scw","sha":"ca2449d146f0b71aa81475d79954c74b7348f60c"},{"file":"sc3d\/bgr_darryls_ship_hold.ktx","sha":"7ec097f7acb3ff736a74183ae15faf651328598a"},{"file":"sc3d\/bgr_darryls_ship_hold.pvr","sha":"770f00416fe3e3227dc280fef1b03391968b379e"},{"file":"sc3d\/bgr_darryls_ship_hold.scw","sha":"82f0ad6cadd47f5ef8aefbb75fb7ae23fb80d8fb"},{"file":"sc3d\/bgr_grassfield.scw","sha":"ea86477222bc61571c45039049ebf0febb7f2321"},{"file":"sc3d\/bgr_grassfield_ground.scw","sha":"ae6a8bbc04c25fcce57a2b6eb2c125efea138805"},{"file":"sc3d\/bgr_grassfield_ground_wf19.scw","sha":"d369a191f8622fb70ec8a2dfe94c7cb7a04d5168"},{"file":"sc3d\/bgr_island_showdown_ground.scw","sha":"e1599377e95d0122d4b45759d30f73378306be48"},{"file":"sc3d\/bgr_island_showdown_ground_wf19.scw","sha":"c4046ae3bd1b4aa551b3258dccb09bf7c7de5a61"},{"file":"sc3d\/bgr_jungle.scw","sha":"c3a9a82420fd14425fcae77d48683b61bf80b04c"},{"file":"sc3d\/bgr_jungle_ground.scw","sha":"61041e0c8485bfb37943fcb148c68b3cbcd4d805"},{"file":"sc3d\/bgr_jungle_ground_wf19.scw","sha":"9902454e21e0d9a80bd400b0bf7faa22aa865fd8"},{"file":"sc3d\/bgr_jungle_palm.ktx","sha":"51d32d8b532a9984c8531944386f5b7b7f8a5a68"},{"file":"sc3d\/bgr_jungle_palm.pvr","sha":"e08582a1333eba2cc92d81f60951f53ea83ade70"},{"file":"sc3d\/bgr_jungle_terrain.ktx","sha":"86ec1c96946d2c2a79bfedfa7cfee619376ec1c1"},{"file":"sc3d\/bgr_jungle_terrain.pvr","sha":"0edb4d4367a8f834a6be6705c91868f7e25323f8"},{"file":"sc3d\/bgr_mine.scw","sha":"80b1f4543debe6c048e8d1e6b2c78fdde4f8d1ae"},{"file":"sc3d\/bgr_mine_ground.scw","sha":"fc58c6e5f47ed0b0230ad27ff14d96f756e41e06"},{"file":"sc3d\/bgr_mine_ground_tracks_1.scw","sha":"c1e148a6bdbab5406f05d65f82328ffbaac35ebb"},{"file":"sc3d\/bgr_mine_ground_tracks_1_wf19.scw","sha":"1cb3c74f89f925d14044f964acf1f1dc582609f6"},{"file":"sc3d\/bgr_mine_ground_wf19.scw","sha":"c0f92af0a8bffb2d8616d2852c583894fa4bfff8"},{"file":"sc3d\/bgr_mine_terrain.ktx","sha":"af238302ed13b8357305860779214524daf5bc62"},{"file":"sc3d\/bgr_mine_terrain.pvr","sha":"f96871a94c4227a09b78d96754edcbdfed0d582e"},{"file":"sc3d\/bgr_mine_tracks_1.scw","sha":"c47e11161293f207bfba63ae531e0b56d6eea673"},{"file":"sc3d\/bgr_mine_tracks_1_boom_l_bot.scw","sha":"5c4464752083e202b0126c5d84f948c3f722011a"},{"file":"sc3d\/bgr_mine_tracks_1_boom_l_top.scw","sha":"8cba748140fa35dd6233b5c51eee2c0c55c5b19d"},{"file":"sc3d\/bgr_mine_tracks_1_boom_r_bot.scw","sha":"6adeed179e2c441cd8535d4c1790b697c7b831c8"},{"file":"sc3d\/bgr_mine_tracks_1_boom_r_top.scw","sha":"ef24efcc75d6b895b06983e0cf86d5a93fb8cb85"},{"file":"sc3d\/bgr_mine_tracks_1_lights.scw","sha":"1cdbe952465be36246e35597fcd1f2522c41d3ca"},{"file":"sc3d\/bgr_mine_tutorial.scw","sha":"6938e100ece847abf89d9321e47a6ec8c5b21757"},{"file":"sc3d\/bgr_mine_tutorial_ground.scw","sha":"1356bf81bb11894e343c44beb5db57db0a06f6f4"},{"file":"sc3d\/bgr_mortuary.ktx","sha":"43f41b12c9d2cab2d4c619ec797395f7ac39e369"},{"file":"sc3d\/bgr_mortuary.pvr","sha":"8c4c5dc4c87818b2427cdd135772ff5fa2e0d7a0"},{"file":"sc3d\/bgr_mortuary.scw","sha":"7538983a10d47d41509fdfb9b92cf83dc1a0eb95"},{"file":"sc3d\/bgr_mortuary_decos_hw.scw","sha":"a382e258f456163610320f4bc5f2530c398fd1d7"},{"file":"sc3d\/bgr_mortuary_ground.scw","sha":"f95db4645b4c7ef7304ee6f2c96c8ede9dcf0df7"},{"file":"sc3d\/bgr_mortuary_ground_wf19.scw","sha":"a17a7d4fb8f17c3f85ef3235f2d032f58c41d8b2"},{"file":"sc3d\/bgr_mortuary_showdown.scw","sha":"d4cc5cbfcb1829b798988f788719b670a68d058d"},{"file":"sc3d\/bgr_mortuary_showdown_decos_hw.scw","sha":"21bb8fbac70000db13a61ec9d094d5588446a34a"},{"file":"sc3d\/bgr_mortuary_showdown_ground.scw","sha":"16647bdcfc26155faf8dbbe629eaf7fd2005fe94"},{"file":"sc3d\/bgr_mortuary_showdown_ground_wf19.scw","sha":"4a0c34ba5ccd2234e882e09a125c6a74f1cee3a7"},{"file":"sc3d\/bgr_old_town.ktx","sha":"50bf8ca412f47a4eba1166f5d2eec7c633ef5980"},{"file":"sc3d\/bgr_old_town.pvr","sha":"9324bf021db71c1d16e01bde9a2fb9770d7b0690"},{"file":"sc3d\/bgr_old_town.scw","sha":"a6cf19581661a71425d63f89a6545ee98fb43fcc"},{"file":"sc3d\/bgr_old_town_ground.scw","sha":"7478ea17ae683ff145437a58acc5aa6bb0b53395"},{"file":"sc3d\/bgr_old_town_ground_wf19.scw","sha":"1eb45b2236c7d22d562883809f7e97be7081c788"},{"file":"sc3d\/bgr_retropolis.ktx","sha":"63f17b95ae8f2d2066d3ca13f44ed1f64a7adb55"},{"file":"sc3d\/bgr_retropolis.pvr","sha":"58403918b488c3f11964ec408fbcd2c8c03b63aa"},{"file":"sc3d\/bgr_retropolis.scw","sha":"60cc49f63fe215d5d7802c9d8b76c118708c5114"},{"file":"sc3d\/bgr_retropolis_ground.scw","sha":"f2ba6eb8bdc18fde8a3726f6fcffb767bd1903f7"},{"file":"sc3d\/bgr_retropolis_ground_wf19.scw","sha":"faf2c03d25ba8d82167ccb86d44402e082647cb8"},{"file":"sc3d\/bgr_warehouse.ktx","sha":"1b17440ff7d047b9587828a4c7545b9d5aa5367e"},{"file":"sc3d\/bgr_warehouse.pvr","sha":"b53c6bdc573e40e0d374cf894875ed18b924ae66"},{"file":"sc3d\/bgr_warehouse.scw","sha":"67e6dad33f9b11727a9c1041834bfa7697211066"},{"file":"sc3d\/bgr_warehouse_ground.scw","sha":"812aee80b4c6833c134819ab1c0af35d6877f1dd"},{"file":"sc3d\/bgr_warehouse_ground_wf19.scw","sha":"ab2636a82a7c048dce7bb703940f0da7166bc0a7"},{"file":"sc3d\/bibi_attack.scw","sha":"f055a910f250c3fdefa46a43c8b8e7eb478b7d49"},{"file":"sc3d\/bibi_base_cam.scw","sha":"335820b7bfe3460fed6e1715efea3cd50ff43255"},{"file":"sc3d\/bibi_gamer_attack.scw","sha":"7a69a0caeed5f88fbbf8895284aea0b5c415a8f3"},{"file":"sc3d\/bibi_gamer_geo.scw","sha":"64410db3b75aa09ec939a9a0943f77a68f7e3970"},{"file":"sc3d\/bibi_gamer_idle.scw","sha":"b5a25952a65746bbc0df1623514bce46f1b9304b"},{"file":"sc3d\/bibi_gamer_lose.scw","sha":"7780d60a89b4cc9e4c02cfef4c518f427effa57d"},{"file":"sc3d\/bibi_gamer_portrait.scw","sha":"71c96ee21519a3de138cf5d1ca7ef5d059b23462"},{"file":"sc3d\/bibi_gamer_pushback.scw","sha":"44900842260e2d5cd27db354f956024f060ddcee"},{"file":"sc3d\/bibi_gamer_tex.ktx","sha":"3f6a5f24ec8f732d9a3697703d53c319686dd34c"},{"file":"sc3d\/bibi_gamer_tex.pvr","sha":"88a9852bb661945c23bac5eb709a9af72c9d38eb"},{"file":"sc3d\/bibi_gamer_walk.scw","sha":"f15ee66b06dd364121fd64b57665040bf35c3ea7"},{"file":"sc3d\/bibi_gamer_win.scw","sha":"b52d8690c17646612b63105df80d2e9021f910cf"},{"file":"sc3d\/bibi_geo.scw","sha":"d77903a065a032b15f9111cb97af4c5c19b52c6e"},{"file":"sc3d\/bibi_idle.scw","sha":"eeaeca85b6a73de6206c7474683ada2659d3d2e3"},{"file":"sc3d\/bibi_lose.scw","sha":"ae668093f5e846d5c65bfb6d18e5d6dcd0852bc9"},{"file":"sc3d\/bibi_pushback.scw","sha":"544d4020869cd0d21470f304fd78423f9d42f7eb"},{"file":"sc3d\/bibi_run.scw","sha":"c200bae077a72ba2e19554f56661787bfcb21109"},{"file":"sc3d\/bibi_tex.ktx","sha":"9efc42955a96668b68ceb0a85b02381c9787fd97"},{"file":"sc3d\/bibi_tex.pvr","sha":"bb91ebfd2b98f90af28289c9bd71471d78e72701"},{"file":"sc3d\/bibi_win.scw","sha":"f324b18a6c46cf81adb7c44c0792bd1e559bcb85"},{"file":"sc3d\/blocker_arcade.scw","sha":"d5580e430c220edaad79f949b629b5a14e7cca55"},{"file":"sc3d\/blocker_arcade_2.scw","sha":"a3e37a01c5c77db8275318b73ccacec821b6d7e4"},{"file":"sc3d\/bo_002_ulti_projectile_blue.ktx","sha":"df024273d894c78a68b9d0f64c65fcd5b0ba5c26"},{"file":"sc3d\/bo_002_ulti_projectile_blue.pvr","sha":"9f9a031f5b028902ce40b4903b3f0af7a9d8763f"},{"file":"sc3d\/bo_002_ulti_projectile_blue.scw","sha":"e1f0235e3cbe674b9e3bee985872d55995c0a812"},{"file":"sc3d\/bo_002_ulti_projectile_red.ktx","sha":"3a61090518f217f5172138228ae32e0775216dc4"},{"file":"sc3d\/bo_002_ulti_projectile_red.pvr","sha":"39f0177062a69079d6822be2f926703bff36de71"},{"file":"sc3d\/bo_002_ulti_projectile_red.scw","sha":"3eb7c8a894b2b6f3019cd54c0676888fe4749965"},{"file":"sc3d\/bo_003_ulti_projectile_blue.ktx","sha":"45debe6e54d952c3cd25dabde99b5ff223b404b7"},{"file":"sc3d\/bo_003_ulti_projectile_blue.pvr","sha":"59d60cf7565125ffe93d253137ce98c40038454c"},{"file":"sc3d\/bo_003_ulti_projectile_blue.scw","sha":"04bd938624f989da8a98d25e8396d8daccdaa01a"},{"file":"sc3d\/bo_003_ulti_projectile_red.ktx","sha":"d90d1ed8ef18c7e51de624f70120449084cc04a8"},{"file":"sc3d\/bo_003_ulti_projectile_red.pvr","sha":"74eab88b2d0ed6cccf48146b881ffb0a55c476c7"},{"file":"sc3d\/bo_003_ulti_projectile_red.scw","sha":"448f57362ba240011bfe9ecbceee1eb46516ff7c"},{"file":"sc3d\/bo_attack.scw","sha":"49badb009502f9f0bb36fce8f0a5368e7cc47257"},{"file":"sc3d\/bo_base_cam.scw","sha":"3ce1d48f2e7040b44bd1bca0c46dcb155e7a8225"},{"file":"sc3d\/bo_def_ulti_projectile_blue.ktx","sha":"70ac6cfd618856801b9798effdae300865288c40"},{"file":"sc3d\/bo_def_ulti_projectile_blue.pvr","sha":"b2d899c2eee7668936e6219227db03ce5ccc8830"},{"file":"sc3d\/bo_def_ulti_projectile_blue.scw","sha":"19536322438c345fe4476d3239690cc59ff9a8b2"},{"file":"sc3d\/bo_def_ulti_projectile_red.ktx","sha":"56c5867d3eea6c34fdbf9e6bf2c6b9d4031227b5"},{"file":"sc3d\/bo_def_ulti_projectile_red.pvr","sha":"1321f345cc144ef27d88d164eb80af0c87386104"},{"file":"sc3d\/bo_def_ulti_projectile_red.scw","sha":"8d5871aab8a8da0260b41070f8c10d2cfd2c3cbd"},{"file":"sc3d\/bo_falcon_attack.scw","sha":"641be1ed52c1e530c382c0f95a460603c2e0066c"},{"file":"sc3d\/bo_falcon_geo.scw","sha":"047e26f2e72075cbaf99443ed4cc2f114706ed98"},{"file":"sc3d\/bo_falcon_idle.scw","sha":"464e11b5b772dff846b502e0547b75a2014537cf"},{"file":"sc3d\/bo_falcon_lose.scw","sha":"c1d9a3e3bb07f76ea32bdaf112c57b059d78d791"},{"file":"sc3d\/bo_falcon_portrait.scw","sha":"559771b83897b7b918f5fe60bdb3debe77aea59b"},{"file":"sc3d\/bo_falcon_tex.ktx","sha":"4906b337224a2d11514383d0d75c1ecbf3653138"},{"file":"sc3d\/bo_falcon_tex.pvr","sha":"ed0190415ec76d77c9e97fcc6cfa592c8133f72e"},{"file":"sc3d\/bo_falcon_walk.scw","sha":"edb7a56228f90be6ae441c32b95a84819a9d6a65"},{"file":"sc3d\/bo_falcon_win.scw","sha":"cfec16fdfe44f5341551259a56f1002537061ac6"},{"file":"sc3d\/bo_gadget_totem_geo.scw","sha":"ff391d4a5e531d70a935dfaef95c470bed5b22cc"},{"file":"sc3d\/bo_gadget_totem_tex.ktx","sha":"207429f2156f3748a1a36bdc9767ef93f37df311"},{"file":"sc3d\/bo_gadget_totem_tex.pvr","sha":"8ec87f3028ac6ac3eeb3c5a39ab0d5f303f412c9"},{"file":"sc3d\/bo_geo.scw","sha":"c554220e847714570b5fcd9c5d54ad2d76f387d9"},{"file":"sc3d\/bo_idle.scw","sha":"c6ca53590780b4500c6023716e61ea4e9b95487d"},{"file":"sc3d\/bo_lose.scw","sha":"fd8b7f87cd02c720e7d82b1ebc6254458647cbcb"},{"file":"sc3d\/bo_mecha_attack.scw","sha":"eab7df676ca40cb450be01cf3d957f5810f69dbf"},{"file":"sc3d\/bo_mecha_cam.scw","sha":"3c4bf73ccd9eb949f94cff21ba06dfe84924e881"},{"file":"sc3d\/bo_mecha_geo.scw","sha":"e0565f65cbb1e24c00cc827223f65311c3299955"},{"file":"sc3d\/bo_mecha_idle.scw","sha":"3f38c332128c03b407f8c9c525aea3258916601f"},{"file":"sc3d\/bo_mecha_lose.scw","sha":"b77ad9bc50bec7318ff7d933e956f6609809a760"},{"file":"sc3d\/bo_mecha_pushback.scw","sha":"e62e95cd05f494af700ed8b1f8c3725708754d1a"},{"file":"sc3d\/bo_mecha_run.scw","sha":"cc69ec18d215d2f565075c543c22d993d104b437"},{"file":"sc3d\/bo_mecha_tex.png","sha":"9ecac892d94a48e3da6af1620cc512e4f250834a"},{"file":"sc3d\/bo_mecha_ult.scw","sha":"1fe20836d20838b635c3f1ca60bc715b654a00af"},{"file":"sc3d\/bo_mecha_win.scw","sha":"7d2ea825d16ef88c7c3135e93423bdd9ee8730f1"},{"file":"sc3d\/bo_tex.ktx","sha":"769606731a1ba5a1e52aa7be7b4895ca56fb7917"},{"file":"sc3d\/bo_tex.pvr","sha":"df8060c92172f3deb310959525c570fe70ca064b"},{"file":"sc3d\/bo_ult.scw","sha":"ec0cc0005e3971ab873e11b02c03ce32ac97de65"},{"file":"sc3d\/bo_walk.scw","sha":"0b24f7924bfbcb3e40a1c60ff93c537ccf4c1e4c"},{"file":"sc3d\/bo_win.scw","sha":"2aae1d3a7008910dda50d77614434af8212dff5b"},{"file":"sc3d\/bombhead_geo.scw","sha":"8534793dbe987c320f5c3ed15e74e98d56c0ff9c"},{"file":"sc3d\/bombhead_idle.scw","sha":"7e7169df4277952fd1f1bc95ac1048644dbf8d21"},{"file":"sc3d\/bone_pile.png","sha":"d1d869d619a4b7bdefcedcbabc6a054aa1e6f831"},{"file":"sc3d\/bone_pile.scw","sha":"c1b072ae8acdccb7ca16989bab1e9e7ef1ddb471"},{"file":"sc3d\/bone_pile_mortuary.png","sha":"f79d1328e86e51dc6cd1caf26426977c3f62c8be"},{"file":"sc3d\/bone_pile_mortuary.scw","sha":"4ad89fc8ace9fb98835e12265a1dbcf5c2b54ab4"},{"file":"sc3d\/bone_ribs.scw","sha":"ae9663c34f9c53d942a44d87a187f0034a735a4c"},{"file":"sc3d\/bone_ribs_mortuary.scw","sha":"6b598668005dc07a6c7f726f9f950f13888a7fc5"},{"file":"sc3d\/bone_single.scw","sha":"a7fef01e34a961aaa701f42b29d8eec2a2d3bc00"},{"file":"sc3d\/bone_single_mortuary.scw","sha":"f91bb7aba337061a9838bbba77a295f7c878ce2e"},{"file":"sc3d\/bone_skull.scw","sha":"7ab8e91e4592c9b4e11e253629415e8955a941ec"},{"file":"sc3d\/bone_skull_mortuary.scw","sha":"6fd7fc77b61cc41ade19285541de6a828d5fb21d"},{"file":"sc3d\/bossbot_geo.scw","sha":"45df8a0a73b888dc0b2e573952095328a8ac7f5f"},{"file":"sc3d\/bossbot_idle.scw","sha":"c371a8a63bbbdc5b5cd8f7de3e1425236e527ca5"},{"file":"sc3d\/bossbot_recoil_1.scw","sha":"a729edf5d6fc38471912f7b9eb90554b2aa3889d"},{"file":"sc3d\/bossbot_recoil_2.scw","sha":"392d9c7fa1db993a19bc91a7623cc72f37332ce0"},{"file":"sc3d\/bossbot_shoot_recoil.scw","sha":"84ade02979016d8390963402813aa11428dd4bd1"},{"file":"sc3d\/bossbot_tex.ktx","sha":"9686f9f9eb5655efee467a5a7a82aed5fce22c21"},{"file":"sc3d\/bossbot_tex.pvr","sha":"4b1a3a0a391ec2adff2e4bc2a8356f54658d6fd2"},{"file":"sc3d\/bossbot_walk.scw","sha":"4f3c7284dcab8fcb839ac5a82ba43bb75f563b8f"},{"file":"sc3d\/bowdude_attack.scw","sha":"006dd5352268dcc3532aca6df32d5335d2331ab1"},{"file":"sc3d\/bowdude_geo.scw","sha":"3cf0d78de40c56b54d173d21d733e5d6a89ed452"},{"file":"sc3d\/bowdude_idle.scw","sha":"21f62044d0ffd0e69e40c857dfd9ed2da3594442"},{"file":"sc3d\/bowdude_lose1.scw","sha":"b82638958daba6dbde4abb4d53edfe602f2d9339"},{"file":"sc3d\/bowdude_loseloop1.scw","sha":"c466495ed6e909ba2b781ee49125e8c7e8d119fb"},{"file":"sc3d\/bowdude_recoil.scw","sha":"0d1ed78901a8039db16a8b3678c8e06197074390"},{"file":"sc3d\/bowdude_ultiattack1.scw","sha":"81fa0fc620c567bf755e3f5748f44f6923755661"},{"file":"sc3d\/bowdude_ultirecoil1.scw","sha":"3875897f7104a5ca662a6ce40a250832e086ed40"},{"file":"sc3d\/bowdude_walk.scw","sha":"0dc92cbdc12ac80e937a3c05e2c27d44ecd7b1b9"},{"file":"sc3d\/bowdude_win1.scw","sha":"fb1712c2a77bba544d33a06f5ca7ecff53ebd95e"},{"file":"sc3d\/bowdude_winloop1.scw","sha":"4327c511a7481b967744cbf7bcb620cf828e4c64"},{"file":"sc3d\/bowman_blue_tex.ktx","sha":"f14b25ab66999c8e0fcf9235030be7555ed097e1"},{"file":"sc3d\/bowman_blue_tex.pvr","sha":"14a53ee4c915550089ea263a1ae1be1d14597ceb"},{"file":"sc3d\/bowman_tex.ktx","sha":"caa2b6680852cd29ee291b6456d9826ff856ec5e"},{"file":"sc3d\/bowman_tex.pvr","sha":"3ac793d069a3c47f43ec871bb7de0959a86d4d1e"},{"file":"sc3d\/brawl_ball.scw","sha":"ac6d112805e3f3fe04440ee9e93a12624f231e9f"},{"file":"sc3d\/brawl_ball_beach.png","sha":"3344100a10f03e03813b49df6d4a03ba6311b6a7"},{"file":"sc3d\/brawl_ball_beach.scw","sha":"9e0bf5fc6a3d04ae1fc4aeb9f19410ee58c9badc"},{"file":"sc3d\/brawl_ball_football.scw","sha":"c58274e4fe29c907a4e821e3a40a5af13812fbac"},{"file":"sc3d\/brawl_ball_football_psg.scw","sha":"8c7f72116d49f6ae186b6ba690af9b9360ce6242"},{"file":"sc3d\/brick1.scw","sha":"ecb601e487b9dfaf4a6a580c2b1c851d47160c87"},{"file":"sc3d\/brick_1.ktx","sha":"8d8b9e5e1335df4ea90dc377498809f65d43d3b3"},{"file":"sc3d\/brick_1.pvr","sha":"5cf5361f6cb0cae5cf0ab40856c32376f48f2950"},{"file":"sc3d\/brock_003_atk_blue.ktx","sha":"6dca1cc0c0a9747800526c9687219bae037c2d43"},{"file":"sc3d\/brock_003_atk_blue.pvr","sha":"198e896fbcd2e9baf42b0793d1c2d926ee6e955f"},{"file":"sc3d\/brock_003_atk_blue.scw","sha":"4baaf3dafeadc1abb8487c84e3b0053bc8125867"},{"file":"sc3d\/brock_003_atk_red.ktx","sha":"147c2a5d2a5b6a89a7a6c6e9957bc591e44f9286"},{"file":"sc3d\/brock_003_atk_red.pvr","sha":"f4f795600be9ada440126bf2ccca8f44dcd38c35"},{"file":"sc3d\/brock_003_atk_red.scw","sha":"edc98dfd03ba97f07b970f9693a94aa79a151324"},{"file":"sc3d\/brock_004_atk_blue.ktx","sha":"bf3c54f54b0327e6612b787594d2e6faf46e3937"},{"file":"sc3d\/brock_004_atk_blue.pvr","sha":"bfdbb7454d9e2521618424403557546517df59be"},{"file":"sc3d\/brock_004_atk_blue.scw","sha":"d50f5b82f508932f03e2faced207f6d0830399b7"},{"file":"sc3d\/brock_004_atk_red.ktx","sha":"525980a336855f17005e978ec8c2e5126f40784f"},{"file":"sc3d\/brock_004_atk_red.pvr","sha":"ca64f2255c86aa3bc138b8a08cfa374b066fbba6"},{"file":"sc3d\/brock_004_atk_red.scw","sha":"b09fd0d32cfdc7add66eaee313b7c9f1bb61f98b"},{"file":"sc3d\/brock_attack1.scw","sha":"834c5e71998db8967fcf807e5fca7ecc2c4af325"},{"file":"sc3d\/brock_base_cam.scw","sha":"bb02180142c33c170e012b7cf3746d407163372c"},{"file":"sc3d\/brock_beach_blue_tex.ktx","sha":"67ff3257f9cb81e0cbcf26edddb55b3fb5f94a6b"},{"file":"sc3d\/brock_beach_blue_tex.pvr","sha":"832622c0e62f605bad8036f2909838e8b64775fd"},{"file":"sc3d\/brock_beach_geo.scw","sha":"98b46575efbb14952901d3e32e203b9a8d38e6aa"},{"file":"sc3d\/brock_beach_tex.ktx","sha":"7addf5dcd679db9ff49c03b93bbace816d7eba99"},{"file":"sc3d\/brock_beach_tex.pvr","sha":"4a0978e921eee2f29fa2b7c035a1b2b33417f38c"},{"file":"sc3d\/brock_blue_tex.ktx","sha":"842e63a510c92f40e2bc3a39dd6b2e93c059ea6e"},{"file":"sc3d\/brock_blue_tex.pvr","sha":"c13af0a943c0b71dc4368906beb46f2ba02d9d4c"},{"file":"sc3d\/brock_boombox_attack.scw","sha":"bfeb48f9f4d59ae8f36e046b7af963281f4d4e94"},{"file":"sc3d\/brock_boombox_blue_tex.ktx","sha":"eeb2e6217bbdb82add945a8c4f62927201a6cb92"},{"file":"sc3d\/brock_boombox_blue_tex.pvr","sha":"990db91511b004c9ad055d2241bd9be8956a6956"},{"file":"sc3d\/brock_boombox_geo.scw","sha":"61ecd8d4dfbecc9435cb93a7a4145a891815c96d"},{"file":"sc3d\/brock_boombox_idle.scw","sha":"c11a3cb80bbf6dbf8f510c1ce753380a8604ca2a"},{"file":"sc3d\/brock_boombox_lose.scw","sha":"c5edaf5ad565e3faa4ce2b65c444dd8a2ae9dfc0"},{"file":"sc3d\/brock_boombox_tex.ktx","sha":"2e233e18ccad92f75d82636835cfb3aad1262948"},{"file":"sc3d\/brock_boombox_tex.pvr","sha":"76e35fbed9b4fb4fa25b9778c4ee9bde3f9ef525"},{"file":"sc3d\/brock_boombox_walk.scw","sha":"fa7cfe0dfb782c6b00182a97fd05796fb1b933d3"},{"file":"sc3d\/brock_boombox_win.scw","sha":"2598846c414ba00f3f909ca83e3ac2f45cc4d8d6"},{"file":"sc3d\/brock_boombox_win_intro.scw","sha":"417694eb17ae4c593a1cdf16f0bfd721999ffb92"},{"file":"sc3d\/brock_cny_geo.scw","sha":"cd663989866d8db68fccd7be7d3949a1caa889d0"},{"file":"sc3d\/brock_cny_tex.ktx","sha":"bd100d52c565791a4a0b7fb668f49f4480577b46"},{"file":"sc3d\/brock_cny_tex.pvr","sha":"a5ea03307336ccef736d35a34c94b654b563ccb0"},{"file":"sc3d\/brock_cny_walk.scw","sha":"891d4b6d8855b97385fd576f94f64c7b72500484"},{"file":"sc3d\/brock_d_01.ktx","sha":"8e76c0af64938e4c6db8273d8bd0e2f332ba458b"},{"file":"sc3d\/brock_d_01.pvr","sha":"3530b59698bd979031f898b114923c6c66c9d982"},{"file":"sc3d\/brock_d_01_blue.ktx","sha":"b26dee37704685777d497565bb1dc4586660023c"},{"file":"sc3d\/brock_d_01_blue.pvr","sha":"2d2947efcd3e4fe797e441ff755a167dbbb54289"},{"file":"sc3d\/brock_geo.scw","sha":"63c55869e4f273e54e44b5ab344764e66aa5b7e4"},{"file":"sc3d\/brock_hotrod_attack.scw","sha":"5908ed3abfa43450e49ca76a8eb68d3e2971b4e2"},{"file":"sc3d\/brock_hotrod_geo.scw","sha":"e713360f018b48d4ea55d1855b23fa87235f3a22"},{"file":"sc3d\/brock_hotrod_idle.scw","sha":"fe988b38edfc39dde85277b0cf07f7b24d26dceb"},{"file":"sc3d\/brock_hotrod_lose.scw","sha":"ff1a9a120517ed5b63b230711087add2a7edfb27"},{"file":"sc3d\/brock_hotrod_run.scw","sha":"38c0a9b76866498e351dc263f6c53ca53c564183"},{"file":"sc3d\/brock_hotrod_tex.ktx","sha":"51478027147d0a19358eeecff53e934438ad12a2"},{"file":"sc3d\/brock_hotrod_tex.pvr","sha":"e9228bcd027477efeff4e2ab5e4ada3a0b18c1ad"},{"file":"sc3d\/brock_hotrod_win.scw","sha":"a0037426ad6716bce6664c8a5958f1c4ca1e74c1"},{"file":"sc3d\/brock_hotrod_winloop.scw","sha":"6d3bc3d3753adfb7a425d8a6367ebb6d10d611e7"},{"file":"sc3d\/brock_idle1.scw","sha":"ffc8accbba1b166680bc90ace7431aaa8686f7d5"},{"file":"sc3d\/brock_lose1.scw","sha":"4f8c9d05ac8797cdc7db43354ba9b2a09444b553"},{"file":"sc3d\/brock_loseloop1.scw","sha":"87f2b1cc5b51444792c14e4dbc0069af7cb996d8"},{"file":"sc3d\/brock_pushback1.scw","sha":"11c9a52ea1863edebd5001201d99a674bac07b8f"},{"file":"sc3d\/brock_recoil1.scw","sha":"12c74dfc614bb96166e6746e030b2480bafb3b13"},{"file":"sc3d\/brock_rocket_blue.png","sha":"7e4813a2549c9197866ceccada38bdf1042cef46"},{"file":"sc3d\/brock_rocket_blue.scw","sha":"ed1748de90e296d7017fec8a38e1c2430eb9e3a0"},{"file":"sc3d\/brock_rocket_red.png","sha":"d4010b0bcc4f1802e9b60855bf91c795e2087c34"},{"file":"sc3d\/brock_rocket_red.scw","sha":"8410660a6025c90fb5cd09c995e6348dcc13b136"},{"file":"sc3d\/brock_tex.ktx","sha":"9c7d27ef238de43cc6b8d060a81fbc457c6fe641"},{"file":"sc3d\/brock_tex.pvr","sha":"eb8a3b65da88ba6a31f3d6065e4d960260a92e4c"},{"file":"sc3d\/brock_ultiattack1.scw","sha":"d178ca701730ace50df7ddccd0d34c3084d2b2d5"},{"file":"sc3d\/brock_ultirecoil1.scw","sha":"6a29d410fc6d7b5648d1514859e7ab16a13ed24b"},{"file":"sc3d\/brock_walk1.scw","sha":"d8ad285539580f375cb7fa8d2415a99cdf4da4f4"},{"file":"sc3d\/brock_win1.scw","sha":"88e45481e4816e7441146f4d2651cb2fc5537a3f"},{"file":"sc3d\/brock_winloop1.scw","sha":"bad0af58bb456ca2ec9819298179ae894caf231c"},{"file":"sc3d\/bull_attack.scw","sha":"29de7e50f1160c7f8f34fbe4a297c6dc01be649d"},{"file":"sc3d\/bull_base_cam.scw","sha":"0f996d4b07c141527ca2a64294f9174c96b60fd5"},{"file":"sc3d\/bull_footbull_geo.scw","sha":"59d758d6a0a5283d98de3a49fb341b657621a8ec"},{"file":"sc3d\/bull_footbull_lose.scw","sha":"de2c8303b2a7fe28994e2c930799c30a176df1ca"},{"file":"sc3d\/bull_footbull_tex.png","sha":"fbd8a1265282fb36fd4a8b72a8a0e6456bbc31b4"},{"file":"sc3d\/bull_footbull_win.scw","sha":"41bc41af390761375bfed3267073395e78528326"},{"file":"sc3d\/bull_geo.scw","sha":"db7f39bf7bce6a9896ec10070824e07a1549e6ed"},{"file":"sc3d\/bull_idle.scw","sha":"6f6a2c779b11f75a1e8f7e731f5704e83c710313"},{"file":"sc3d\/bull_lose.scw","sha":"8a8aa82fe1c4610c574132a26896266e1be5a2c1"},{"file":"sc3d\/bull_rock_pushback.scw","sha":"d2581e96985057e7bb198b232eb03dbb67ec9b35"},{"file":"sc3d\/bull_super.scw","sha":"3c374c04ce3913ef50fd0d5b365a7ab00aba250c"},{"file":"sc3d\/bull_tex.ktx","sha":"b9a40560cc2a9f53803ad353a45d3ddd7275102f"},{"file":"sc3d\/bull_tex.pvr","sha":"68f5448a577a6ab73b64af0d6c7affbce9596495"},{"file":"sc3d\/bull_tex_01.ktx","sha":"d0b92603efd139f42bb98908f00f1de3b30df99d"},{"file":"sc3d\/bull_tex_01.pvr","sha":"c5d7a7e634c2b777df9183f396374206edf7f7cc"},{"file":"sc3d\/bull_viking_attack.scw","sha":"88a8be643d1e221e5d27c2f3f886e932b37e7466"},{"file":"sc3d\/bull_viking_geo.scw","sha":"5199db8d8c06dacad279fd67128edb815d6f2594"},{"file":"sc3d\/bull_viking_idle.scw","sha":"4befc741f006347d43bab0386afc61d62ebaa047"},{"file":"sc3d\/bull_viking_lose.scw","sha":"c26c21a8e45902f3c32e98e6e9efd155ad8b20b6"},{"file":"sc3d\/bull_viking_lose1.scw","sha":"047d720f20558210e1ab46c5ecff8324b21f4a09"},{"file":"sc3d\/bull_viking_pushback.scw","sha":"fb18239d2bf968765dadaf213564597831f5c996"},{"file":"sc3d\/bull_viking_run.scw","sha":"ac74a13c6d77684cd64259a7db5e804b3b4e992a"},{"file":"sc3d\/bull_viking_super.scw","sha":"e4904b310061356191be4034c7230fbfb2e43c36"},{"file":"sc3d\/bull_viking_tex.ktx","sha":"39a5766cbc64c648bb5a2b5ff7cea31ed8488536"},{"file":"sc3d\/bull_viking_tex.pvr","sha":"995513beb12cf8fd2e69f4c4f36196856c3086bb"},{"file":"sc3d\/bull_viking_walk.scw","sha":"94f49f8934c96789e38fbbd8382e020514ca7724"},{"file":"sc3d\/bull_viking_win.scw","sha":"7644e1a1787a5e82cca886bc0cb9a891345b47d8"},{"file":"sc3d\/bull_walk.scw","sha":"02bc14b2119280d3d7b0f2f5cb6ca28de3797d87"},{"file":"sc3d\/bull_win.scw","sha":"e1e56c0df00c26c43eb83b1121aa488658fb793f"},{"file":"sc3d\/bunny_turret_anim_attack.scw","sha":"f65bb0d8202e03955a73151cf34dcfa250aa4073"},{"file":"sc3d\/bunny_turret_anim_idle.scw","sha":"5e83caa42a0f4d563675284b4229704695a1b66b"},{"file":"sc3d\/bunny_turret_anim_idlemenu.scw","sha":"5e30305b3105e91eaa56752383735242448c9313"},{"file":"sc3d\/bunny_turret_anim_spawn.scw","sha":"e277b1146c0144fab9e2be106ede50b9f2ff2c69"},{"file":"sc3d\/bunny_turret_geo.scw","sha":"78d20390952664f5e238ef21d1ff6ad6ab360a7b"},{"file":"sc3d\/cactus_1.ktx","sha":"512c383ce048615f52c531a0c557b1e89efea0bd"},{"file":"sc3d\/cactus_1.pvr","sha":"ccb9922cd1ee47c1b6fd1530da2d475794321245"},{"file":"sc3d\/cactus_attack1.scw","sha":"8384535628fe742a9650badb459b4be5f532c7ec"},{"file":"sc3d\/cactus_d_01.ktx","sha":"16a93b3b5a69e40616f99a8e702fe6be70b94239"},{"file":"sc3d\/cactus_d_01.pvr","sha":"4be5211ea8bffe9e860d155322ab5bb816a922bc"},{"file":"sc3d\/cactus_geo.scw","sha":"9bf38301f9468e6d99bb84633d75bc75aceef32f"},{"file":"sc3d\/cactus_idle1.scw","sha":"7713c89af8282b0ac8456c587614fb0c669627e4"},{"file":"sc3d\/cactus_lose1.scw","sha":"73884e5ddee21d7b8cf583378178b168f97e5e4a"},{"file":"sc3d\/cactus_loseloop1.scw","sha":"dd93c8069c5e4f41ed55334c77de44b5b11f37fc"},{"file":"sc3d\/cactus_recoil1.scw","sha":"af1e88ec1efb7068c43da1898117f8f509abe036"},{"file":"sc3d\/cactus_ultirecoil1.scw","sha":"3833aebc1123372e25e288559658fab4d04ccb73"},{"file":"sc3d\/cactus_walk1.scw","sha":"eb08d047397d0e294342c8225d92835c1bfea079"},{"file":"sc3d\/cactus_win1.scw","sha":"bd7f5b8c31ca71f50779ad2e98593e8e32a73326"},{"file":"sc3d\/cactus_winloop1.scw","sha":"aa8f8c6da7bafc2dce42e8117705791e61ab9a37"},{"file":"sc3d\/candles_1.scw","sha":"8d5a822b607de5cdb9c220f4b39d58a1dc108310"},{"file":"sc3d\/candy_cane_small.scw","sha":"19a538780e295ec154436e57703f5ae6e4880ce7"},{"file":"sc3d\/cannon_balls.scw","sha":"4a537bc24c25cc7d3864b2abd498c9fbf216f756"},{"file":"sc3d\/car_tires.scw","sha":"39b7275b8e0ac302d9ccb46e1e8b8869befb3094"},{"file":"sc3d\/cargo_block_1.scw","sha":"88a167378cb284c6c63d287c99c38f501a5d7079"},{"file":"sc3d\/carl_attack.scw","sha":"1026b03939b4e7e84676345b661f95f4710177f2"},{"file":"sc3d\/carl_base_cam.scw","sha":"c2ce40c449afa93f4a13e74982434dcb1338ca17"},{"file":"sc3d\/carl_geo.scw","sha":"c0ef67cba078776c654c91244bae996cd9eab380"},{"file":"sc3d\/carl_hogrider_attack.scw","sha":"0becad8f9ab73e33f7ef19178fab8415bf43b88e"},{"file":"sc3d\/carl_hogrider_cam.scw","sha":"6df1d4c13867479296b1c1fd9c23a800c9daf7f1"},{"file":"sc3d\/carl_hogrider_geo.scw","sha":"5a886eb799c052ce6599dab6b61ae40e4be264ee"},{"file":"sc3d\/carl_hogrider_idle.scw","sha":"4d1df63a15d26c9dd4d6b937d1ac20e4cfcdd416"},{"file":"sc3d\/carl_hogrider_lose.scw","sha":"6d819daf1e86f6fc716824c4bcd0ecedca8ec6e5"},{"file":"sc3d\/carl_hogrider_loseloop.scw","sha":"5ff347f2cbeb217571a6b5acb4133f5284c9d15b"},{"file":"sc3d\/carl_hogrider_super.scw","sha":"d09829753ee3a5b8414afd644764c7e0626b0a3f"},{"file":"sc3d\/carl_hogrider_tex.ktx","sha":"2956362eece9683000de61ea4b22c01bc32b61cb"},{"file":"sc3d\/carl_hogrider_tex.pvr","sha":"f6db213851ef528a34d2f496d75d0a2024ca40f6"},{"file":"sc3d\/carl_hogrider_walk.scw","sha":"11ad9c330e537be99aa05dd322a9ac0c9faa69a5"},{"file":"sc3d\/carl_hogrider_win.scw","sha":"a43ff5459c69e4e22e5d8bfca4d22b7d95658772"},{"file":"sc3d\/carl_hogrider_winloop.scw","sha":"e7cf6170a8aec8c7c32542f517ca0c6ddcd39f5e"},{"file":"sc3d\/carl_hotrod_attack.scw","sha":"396ba0a2f699591500bb5e495b866b28b265dfef"},{"file":"sc3d\/carl_hotrod_cam.scw","sha":"e1bb49b24583ffbc5c50cfe40d77b3ea673250b2"},{"file":"sc3d\/carl_hotrod_geo.scw","sha":"bd32f158196f41b489519d2429d2e804b607b6ce"},{"file":"sc3d\/carl_hotrod_idle.scw","sha":"69d182d8a9f3fa00981e6740f421980525fa393b"},{"file":"sc3d\/carl_hotrod_lose.scw","sha":"0d621a578e60cc6021aba066f104e10dc0d62608"},{"file":"sc3d\/carl_hotrod_loseloop.scw","sha":"2b00ff623b4b347058bb3a08073b5127a456dbfe"},{"file":"sc3d\/carl_hotrod_super.scw","sha":"beff0c17c1b84929b3c05602b95d9cc8d857421c"},{"file":"sc3d\/carl_hotrod_tex.ktx","sha":"01683578a347e94c12cc3732c90ed3f7b686b84e"},{"file":"sc3d\/carl_hotrod_tex.pvr","sha":"4a2331c9492a14fa4f3ae557fac42969cdd69dbe"},{"file":"sc3d\/carl_hotrod_walk.scw","sha":"632a0ab59421b93a3cfec2efa33f79fc7e0d502e"},{"file":"sc3d\/carl_hotrod_win.scw","sha":"e60a22322d9b29c4071d6c6d546f290fa6b2478d"},{"file":"sc3d\/carl_hotrod_winloop.scw","sha":"0b63241b1c138bad6edaf568df822002edf0f326"},{"file":"sc3d\/carl_idle.scw","sha":"5cd90c892b7007e7bac0655199e5103691b3092f"},{"file":"sc3d\/carl_leonard_cam.scw","sha":"ec0fe0683fefd5ebae409941405b71b0eb53d81c"},{"file":"sc3d\/carl_leonard_geo.scw","sha":"220c2c84a4112a6587a8190ec28ee36dce777087"},{"file":"sc3d\/carl_leonard_tex.ktx","sha":"676c11080e3e2f55f86a1f8e67754ec96b0e20c7"},{"file":"sc3d\/carl_leonard_tex.pvr","sha":"10ff0f1853e0a7856c83ace4753590c351f9562b"},{"file":"sc3d\/carl_lose.scw","sha":"32c99cd5acb01e7ee153960118ebda50a66fccbd"},{"file":"sc3d\/carl_loseloop.scw","sha":"c972eaed67c37bf136dbb43f5851c0327dd09ca9"},{"file":"sc3d\/carl_pirate_attack.scw","sha":"3ec3e30af2aab4551b4dcb3235bc8694c39ad7d0"},{"file":"sc3d\/carl_pirate_geo.scw","sha":"951a9f7d45497013c745b085dc1684dcf31b1861"},{"file":"sc3d\/carl_pirate_idle.scw","sha":"feb5581ffaf40d166c2bf9ca43adb2ba1b60961a"},{"file":"sc3d\/carl_pirate_lose.scw","sha":"7677274899a995b7081bab7b465933d28fce2489"},{"file":"sc3d\/carl_pirate_pushback.scw","sha":"b3f5ba627da3678f824f4a0d87ae99058c6a168d"},{"file":"sc3d\/carl_pirate_reload.scw","sha":"b63fa21b305de509b65f8051541c669e541fee33"},{"file":"sc3d\/carl_pirate_super.scw","sha":"c683e2dd93d3984c4aa5f009b944615a79793191"},{"file":"sc3d\/carl_pirate_tex.ktx","sha":"b325ee435863e87c9b46f6ac698d50ceb5e7298d"},{"file":"sc3d\/carl_pirate_tex.pvr","sha":"c10ef2591865d5ae352b88f39bd19b82cedf236a"},{"file":"sc3d\/carl_pirate_walk.scw","sha":"162ef7296f9ab467bcb5e4f6201db040f70fadc5"},{"file":"sc3d\/carl_pirate_win.scw","sha":"bd3d3a0e0bdcef02247875ccc8a99489fb9355cb"},{"file":"sc3d\/carl_super.scw","sha":"e5fd8e91879e178508439e31f2d1f14bb9dd732b"},{"file":"sc3d\/carl_tex.ktx","sha":"dc092b6cd840d8bcdbff809fa5b7703838d517fd"},{"file":"sc3d\/carl_tex.pvr","sha":"f4bc0695050e55869e0b4518c1492361c85a7d4a"},{"file":"sc3d\/carl_walk.scw","sha":"94caf3a8e14390fa9607c53488a85d2accedfa94"},{"file":"sc3d\/carl_win.scw","sha":"53f8c40af2fbfd8a4db56f21f74699b8e4fd3682"},{"file":"sc3d\/carl_winloop.scw","sha":"1d10660f72a743d77b4fe37b8d95a44671cd599c"},{"file":"sc3d\/character_materials.scw","sha":"badf4925d017692129cd5fcde5efd58e2a38f33c"},{"file":"sc3d\/colt_attack.scw","sha":"39ceed073810744aa0e3b14b32d23fc394e911e2"},{"file":"sc3d\/colt_base_cam.scw","sha":"853ab3a8f6f585f2febca5ef59c1e1198b3c3fce"},{"file":"sc3d\/colt_geo.scw","sha":"6fc7112de29e7eda527f2ad533e70a256c8d8532"},{"file":"sc3d\/colt_hanbok_geo.scw","sha":"070497213b289ec65d082273d29aa029e2089c15"},{"file":"sc3d\/colt_hanbok_tex.ktx","sha":"9016a7ce80a3154fd14b5b637a185b3bf8d93514"},{"file":"sc3d\/colt_hanbok_tex.pvr","sha":"8e609d230e0b4da5e540924b0044218a6ae09fa2"},{"file":"sc3d\/colt_idle.scw","sha":"caebc1113d20cc81092251b09963cf55fd47eb71"},{"file":"sc3d\/colt_loseloop.scw","sha":"178433ade69086636645becff326a32eb9cd922b"},{"file":"sc3d\/colt_outlaw_tex.ktx","sha":"b84f258bf814a9bd7009d55e1c12f64310149c34"},{"file":"sc3d\/colt_outlaw_tex.pvr","sha":"0fb94663343a807a4b3c03fece710167a929deba"},{"file":"sc3d\/colt_pirate_attack.scw","sha":"ca83ae57c1bd77dfe240029a67bc00a87f14326e"},{"file":"sc3d\/colt_pirate_geo.scw","sha":"642798411e6ca238e07587004b03d81886fc6a20"},{"file":"sc3d\/colt_pirate_idle.scw","sha":"a6485fdb1da84e375c0de2f64b49c580d612666d"},{"file":"sc3d\/colt_pirate_lose.scw","sha":"05e2b846b94043b8326b5961d147febc12f5780e"},{"file":"sc3d\/colt_pirate_pushback.scw","sha":"8351c699c228c3fa61208747139b6c73a7e2a2de"},{"file":"sc3d\/colt_pirate_recoil1.scw","sha":"7c8ce5352fd19e222e67aa7e0d1c12c6dcd3a01b"},{"file":"sc3d\/colt_pirate_recoil2.scw","sha":"a90ff2961edbabffceed200d9678549b4a0479bc"},{"file":"sc3d\/colt_pirate_tex.ktx","sha":"1672a462872f1158138f3e61964c69b8cb2e6b15"},{"file":"sc3d\/colt_pirate_tex.pvr","sha":"cb7345a33b004f8cd74aff92720289eeda55124c"},{"file":"sc3d\/colt_pirate_walk.scw","sha":"cdd68b2fcf446c672457f034b98fe0ff35b05fe0"},{"file":"sc3d\/colt_pirate_win.scw","sha":"e4effa282b39a4ecf43a84fd5687526ec10642cc"},{"file":"sc3d\/colt_pushback.scw","sha":"90930d973f4596884a3dba10a45202e15ad91683"},{"file":"sc3d\/colt_recoil1.scw","sha":"d10d7c71d1cd079df9931c887b27ee7bbe7f5ff0"},{"file":"sc3d\/colt_recoil2.scw","sha":"33e977319ba0dbe4d3e02a1f0b0ce08e27c182f9"},{"file":"sc3d\/colt_rockstar_geo.scw","sha":"af4fcc393b56e2e1bd3d04a9b0c7c41b5e353607"},{"file":"sc3d\/colt_rockstar_tex.ktx","sha":"8d7eebccc77581ce3ce5ac2442dc685dada4c3e7"},{"file":"sc3d\/colt_rockstar_tex.pvr","sha":"62b531b4defd5756fe5be03029558ac95fba94b7"},{"file":"sc3d\/colt_tex.ktx","sha":"e0314427c9021cb7db2b564b69c03eb2ddbfd6f4"},{"file":"sc3d\/colt_tex.pvr","sha":"0e923d632c9b369bf6d32f9968ee85d15b1104e0"},{"file":"sc3d\/colt_walk.scw","sha":"1d0934a72dc2f1a00dc86b59119ce88c3fea51e5"},{"file":"sc3d\/colt_win.scw","sha":"3e954c96d8e7c5bfadbbf74dfb04f2c3a384089d"},{"file":"sc3d\/concrete_block.scw","sha":"041310f4c2c5cfbf2388ee0b68f2a251296cfb2f"},{"file":"sc3d\/construction_sign.scw","sha":"022fbfd024397ea02dce789cad6d8f147ab524b9"},{"file":"sc3d\/crate1.scw","sha":"b7f1707f9c763381b71043573c4deec2b4d92456"},{"file":"sc3d\/crate2.scw","sha":"24c6eb9ca10cbcb173db05420e81adb07e865bd6"},{"file":"sc3d\/crate_1.ktx","sha":"669d154d0eb5a834de8f107f3e1eb9498a157668"},{"file":"sc3d\/crate_1.pvr","sha":"7aa0ba4cf2f8940cbe157db1759a4fca1bfa37f4"},{"file":"sc3d\/crate_2.ktx","sha":"65805c0508875205d8a21dbba4eeaaaced673360"},{"file":"sc3d\/crate_2.pvr","sha":"fd1fa93df3308b12d6bfc8d45149e04130ed6720"},{"file":"sc3d\/crate_mortuary.scw","sha":"fb54dc7cc77fc8d826a2ec075b4f86cdf328aa14"},{"file":"sc3d\/crate_powerup.ktx","sha":"c3eb62926255e1f94d8f62a28aa26b87a4350ac6"},{"file":"sc3d\/crate_powerup.pvr","sha":"557be2ce492fe39cb85f7576089eb3cbed1c253b"},{"file":"sc3d\/crate_powerup.scw","sha":"dda202230cb6f9e549e172e4af6f94c4602ef3ca"},{"file":"sc3d\/crate_powerup_moon_festival.ktx","sha":"176e4235ab2f52dc6207ec9d31587a90bb851802"},{"file":"sc3d\/crate_powerup_moon_festival.pvr","sha":"3d1966f3e157b1d17ef8acd376156d9ceab2af6b"},{"file":"sc3d\/crate_powerup_moon_festival.scw","sha":"104272bb54d621ee854f4a8d8515b168414bae30"},{"file":"sc3d\/crate_powerup_night.scw","sha":"16f0afc151179235ac0e7a1031b4b9101bf6d7aa"},{"file":"sc3d\/crate_tnt.scw","sha":"0d5d6f740064e44644d9621d201de6cf2dff2806"},{"file":"sc3d\/crate_xmas.ktx","sha":"610f0f5d5651f0e0ae121ddce639d5385fd9c29d"},{"file":"sc3d\/crate_xmas.pvr","sha":"9f4c61aab589accd6d47f430253c74da2f492934"},{"file":"sc3d\/crate_xmas.scw","sha":"bd8921c93b37c915d7d17fdeeb2cb419a7745104"},{"file":"sc3d\/crow_attack1.scw","sha":"a421f294d4e60cc16583beec3ba1f55cde8e70ae"},{"file":"sc3d\/crow_attack2.scw","sha":"a5e2c610fae9b470fc15f8b28a2d41106a6f5d2d"},{"file":"sc3d\/crow_base_cam.scw","sha":"29eaca7696c8e5eb5ddbe220f8cd712860e65dfe"},{"file":"sc3d\/crow_d_01.ktx","sha":"2daaf3c9d6eb4ea018f27478571c16861bc0499d"},{"file":"sc3d\/crow_d_01.pvr","sha":"e7b36291f8227c0a61957e19f0b30d06a9798936"},{"file":"sc3d\/crow_geo.scw","sha":"9a8d61622d97f6656ebfca1200fe72c82c7f9169"},{"file":"sc3d\/crow_idle1.scw","sha":"2107e57833105640292150dbc1562ce22b46da37"},{"file":"sc3d\/crow_lose1.scw","sha":"a8fe727fe3f378fcb6c14fc55107cfef9d836f99"},{"file":"sc3d\/crow_loseloop1.scw","sha":"5d590be6ee60d323f1937e5e1963b80a1c6a13a4"},{"file":"sc3d\/crow_mecha_attack.scw","sha":"8f5370f1cc8e0012ffaa73ea71f1fc3de52624bb"},{"file":"sc3d\/crow_mecha_cam.scw","sha":"9521c4e6bd035e3b42a984ee9a2de6f215bc8424"},{"file":"sc3d\/crow_mecha_geo.scw","sha":"383e515739ddb52dd9b41c5b8714b2ffd4c4e371"},{"file":"sc3d\/crow_mecha_idle.scw","sha":"6e405797664d6662b19ca0f3a0056266583c8f03"},{"file":"sc3d\/crow_mecha_lose.scw","sha":"be540e6ce0b73a99d0f662e8289846a38609a71b"},{"file":"sc3d\/crow_mecha_pushback.scw","sha":"edb6d6dc4dab5d4f30c2f19ae24bab2bdd7a7fa3"},{"file":"sc3d\/crow_mecha_run.scw","sha":"96b11e60301898bed22b22f90f19b8cf619ba68f"},{"file":"sc3d\/crow_mecha_tex.png","sha":"ffb5b6d5b60c3ecd9d4bf39b02d9183caed8c68a"},{"file":"sc3d\/crow_mecha_ult.scw","sha":"6bf5f438760b80eafe25617b075783e87f40e29a"},{"file":"sc3d\/crow_mecha_win.scw","sha":"0d2c4598e07145f9ceaf066ef5f5be0e71b04832"},{"file":"sc3d\/crow_mechagold_tex.png","sha":"dbe50001ede10e76da16c0510a14049e554c0638"},{"file":"sc3d\/crow_pheonix_attack.scw","sha":"f5b1014a23f38c6345bb183b4004e4188e7e04b5"},{"file":"sc3d\/crow_pheonix_cam.scw","sha":"4b1ab8d2c46b98213ec455c6a0dfc702c9e2e397"},{"file":"sc3d\/crow_pheonix_geo.scw","sha":"c6795504024220ed44cdb24433780101ed5e71d2"},{"file":"sc3d\/crow_pheonix_idle.scw","sha":"3e7d38f31c0d13aa4bfe62fe43efd4fdf1130dff"},{"file":"sc3d\/crow_pheonix_lose.scw","sha":"4f0805b411ac1c72592f3ea6106b5efdc1ef927d"},{"file":"sc3d\/crow_pheonix_tex.ktx","sha":"5ecbd55be9b09d9e96c3d8bfe03b4be33e8b5565"},{"file":"sc3d\/crow_pheonix_tex.pvr","sha":"55c603a4b30e1a3313f865848dfcec8f7fe58cc6"},{"file":"sc3d\/crow_pheonix_ulti.scw","sha":"41b6e6a503d30b1d35723bed1c3634ab007cdee8"},{"file":"sc3d\/crow_pheonix_walk.scw","sha":"c1b447bde4809853bb108f366c0cb78f6e55c90e"},{"file":"sc3d\/crow_pheonix_win.scw","sha":"43e3c5e90e1b6438df3e8e876b8449befce8e588"},{"file":"sc3d\/crow_recoil1.scw","sha":"16c947bb6b9383014c1dd0c2336ead3f55833788"},{"file":"sc3d\/crow_walk1.scw","sha":"335e0319a734cd20304e4a73a6f9c71698b79cd6"},{"file":"sc3d\/crow_win1.scw","sha":"17ebd841952825a6ff53d130aa9b1114c054595c"},{"file":"sc3d\/crow_winloop1.scw","sha":"c2501741389fbf4949d2f980ce36afe724a4b80d"},{"file":"sc3d\/crowwhite_d_01.ktx","sha":"b4b5ba75d034c612481b67b3483e35a7658f52ca"},{"file":"sc3d\/crowwhite_d_01.pvr","sha":"75129ba47f2fbf938376659ce1c0cee06fdc1847"},{"file":"sc3d\/crystal1.scw","sha":"3426bafccf185db67ceb293594fb71b1b9b67c9b"},{"file":"sc3d\/crystal1_xmas.scw","sha":"ea1344b46e4379665a3d8ffb1399775df6984840"},{"file":"sc3d\/crystal_1.ktx","sha":"ecbe1c9252dd4855294583aa231d800c4545f82a"},{"file":"sc3d\/crystal_1.pvr","sha":"b07d5b20a74697fd5c4e599ca8fb1f7bb7aef302"},{"file":"sc3d\/darryl_anim_idle.scw","sha":"68b477f734a75a3e2e92b935f225050af1af3fd3"},{"file":"sc3d\/darryl_attack.scw","sha":"1c5af41c2076d1a793d1ab85d0b078db72c6f194"},{"file":"sc3d\/darryl_base_cam.scw","sha":"6fa73749c659ed41abb77af3fa12dd09014caada"},{"file":"sc3d\/darryl_cny_attack.scw","sha":"b8ff4d642f61222b56b13b0bcbbab90a123110f2"},{"file":"sc3d\/darryl_cny_geo.scw","sha":"02dcc8f20c73f83e8869b2a61f6a8e41bd5b94e0"},{"file":"sc3d\/darryl_cny_idle.scw","sha":"9dff13551b155f489b942a7dee97363d7cb0687a"},{"file":"sc3d\/darryl_cny_lose.scw","sha":"ebb39d7555e1e23986cba5a191d05c931fb6e8ba"},{"file":"sc3d\/darryl_cny_pushback.scw","sha":"bae108cded4f0b95ebc926c26a84b0539f31aa2c"},{"file":"sc3d\/darryl_cny_recoil1.scw","sha":"c5816613dbb4cc7514ba10ef3051f681f885a809"},{"file":"sc3d\/darryl_cny_recoil2.scw","sha":"7ecef6ebe4339544e179d1c446b33b30d8dd238f"},{"file":"sc3d\/darryl_cny_super.scw","sha":"db71964d15e663496eed55a167d76b5621fe50ef"},{"file":"sc3d\/darryl_cny_tex.ktx","sha":"18071c7398e5eb16b7d17fc3b0746cf8b2f71c27"},{"file":"sc3d\/darryl_cny_tex.pvr","sha":"e1083907ae4d47d132373e4478b84d8cb1491794"},{"file":"sc3d\/darryl_cny_walk.scw","sha":"6342d96073d69bd8038385ef87f1a08ba0ba4253"},{"file":"sc3d\/darryl_cny_win.scw","sha":"8fc29a12a73cbd5ebabe1e1a6354e349eecde9d0"},{"file":"sc3d\/darryl_cny_winloop.scw","sha":"de5b3c47bf8125eb241d94ada91b919efeaae10c"},{"file":"sc3d\/darryl_fb_attack.scw","sha":"50aee4c116f839147d0251c759c6ffec7f539269"},{"file":"sc3d\/darryl_fb_geo.scw","sha":"0b435d3b79a0745702100053988e33cadd382576"},{"file":"sc3d\/darryl_fb_idle.scw","sha":"db63966488a0f134ff3d7b6ede4098213b60653a"},{"file":"sc3d\/darryl_fb_lose.scw","sha":"25beaaa5e6d49199c889cae95bde7d42e3a9bdfc"},{"file":"sc3d\/darryl_fb_recoil_01.scw","sha":"083b6fac70cb29e1aa241f900b2034b9a742935d"},{"file":"sc3d\/darryl_fb_recoil_02.scw","sha":"0c12be993443b34227f60eb911e5875cb574fafb"},{"file":"sc3d\/darryl_fb_super.scw","sha":"2c9b18f07c99e3564a9447382f0cb9ce57414732"},{"file":"sc3d\/darryl_fb_tex.ktx","sha":"43b388d2e05e0171f45e13a423d804e1cd90489b"},{"file":"sc3d\/darryl_fb_tex.pvr","sha":"6f1884c950c8cce50c1758a9cb034f83a40f28c9"},{"file":"sc3d\/darryl_fb_walk.scw","sha":"18a0958d06202f07e62910d65c4c38dfa743f322"},{"file":"sc3d\/darryl_fb_win.scw","sha":"4ab46d9be2906cf4dba0688a7bd830c38fc6f2c4"},{"file":"sc3d\/darryl_geo.scw","sha":"7bb6fbfa2da31411816a5c3847a4f39ed37aadd4"},{"file":"sc3d\/darryl_idle.scw","sha":"64d28119346a0e160a5650abbcbb54e875204adc"},{"file":"sc3d\/darryl_lose.scw","sha":"d520ccb4c0231d016e14a1c09ee08be8e84f786c"},{"file":"sc3d\/darryl_pushback.scw","sha":"2bb5551a4e4c5dfe42f063c2fd427839ed5319e3"},{"file":"sc3d\/darryl_recoil_01.scw","sha":"3e1ded924158388714c9762dc1e235f3bbcbbb23"},{"file":"sc3d\/darryl_recoil_02.scw","sha":"69bbb53f74c187d1b306c9fbec983c1e564ea76b"},{"file":"sc3d\/darryl_ship_loop.scw","sha":"67545c780596530de37aaa15198d43e670b1301d"},{"file":"sc3d\/darryl_super.scw","sha":"2560182644830b99ce0b1ec1f6734ecd5f964053"},{"file":"sc3d\/darryl_tex.ktx","sha":"bce96dbd6ac98755af2eaa36ede03882f7ca36de"},{"file":"sc3d\/darryl_tex.pvr","sha":"bab0ea6f3d446aeae514af9246f9d57abfb7ab27"},{"file":"sc3d\/darryl_walk.scw","sha":"fd367f3bae14a38c46f824dd9c1219a175430951"},{"file":"sc3d\/darryl_win.scw","sha":"d003ffc8f39c3e24fc3495ea0d299e23fa9c381a"},{"file":"sc3d\/darryl_winloop.scw","sha":"fa5c79de842394ced5886596114346f9c141112e"},{"file":"sc3d\/diffuse_lightmap.png","sha":"f7e90742f72b37453ae7b5ba8f62000ba8c9102d"},{"file":"sc3d\/diffuse_lightmap_night.png","sha":"86269386c66a76a09dfb9d9c450e8a9c0fa5c1cd"},{"file":"sc3d\/dogturret.ktx","sha":"ec270d1ab7b0c021220a7d61c48a4c32cc935561"},{"file":"sc3d\/dogturret.pvr","sha":"7cbbc383fe7545237ec74c894e98f10e7fa9b33d"},{"file":"sc3d\/dynamike_003_atk_projectile_blue.ktx","sha":"795e7ec3e5c36ecfd85583edc9ed5fad957ec20c"},{"file":"sc3d\/dynamike_003_atk_projectile_blue.pvr","sha":"c55bcbedd6d87b9bfde016c98b708d95a6e63d92"},{"file":"sc3d\/dynamike_003_atk_projectile_blue.scw","sha":"bc34f99a90994577da85b2ee261883f556e47388"},{"file":"sc3d\/dynamike_003_atk_projectile_red.ktx","sha":"6812ac14cd0fff19ba7a3f7ba440bfa5429e702a"},{"file":"sc3d\/dynamike_003_atk_projectile_red.pvr","sha":"ec517b115db5b1763d7dae5edeab2d5663776f79"},{"file":"sc3d\/dynamike_003_atk_projectile_red.scw","sha":"7201d05fc556f36194a7ed16e08a28332074864e"},{"file":"sc3d\/dynamike_003_ulti_projectile_blue.ktx","sha":"105a46d47959bb495a2e3566a3e3ab30c218095a"},{"file":"sc3d\/dynamike_003_ulti_projectile_blue.pvr","sha":"cb7d6975ae20a766e4477a187d40ea99d0386020"},{"file":"sc3d\/dynamike_003_ulti_projectile_blue.scw","sha":"4758297dec74630d7119c88e4fcd59b811202a27"},{"file":"sc3d\/dynamike_003_ulti_projectile_red.ktx","sha":"2d10dce57baf592ad85e66b43537990b280a4b1b"},{"file":"sc3d\/dynamike_003_ulti_projectile_red.pvr","sha":"8d1f42b56a6c6d06328b8339430776d0d57fd8d2"},{"file":"sc3d\/dynamike_003_ulti_projectile_red.scw","sha":"851ade4ff46f2baab8fef59a6f21a301b9cb0c74"},{"file":"sc3d\/dynamike_attack.scw","sha":"a57f5b6f7b6e9edac0de67d0931bed12b53d2f1b"},{"file":"sc3d\/dynamike_base_cam.scw","sha":"62ef3e1a11b4268d14ac6d2bdf54cbf36906aa4a"},{"file":"sc3d\/dynamike_blue_tex.ktx","sha":"c988e3757f03c1e66a8938c0764654a26b323d8d"},{"file":"sc3d\/dynamike_blue_tex.pvr","sha":"8a5566756ee932ee18ce5860637d958ab8f41f52"},{"file":"sc3d\/dynamike_chef_blue_tex.ktx","sha":"c88b7c3194b1cf37e4ecbeeb53e0fa368481bbe5"},{"file":"sc3d\/dynamike_chef_blue_tex.pvr","sha":"8ddd5d95c57e114a3aabfd32697d79eeb0ee3ba1"},{"file":"sc3d\/dynamike_chef_geo.scw","sha":"c6a4936be652b24efbd5d4c9f8b81eefc81ab7d6"},{"file":"sc3d\/dynamike_chef_tex.ktx","sha":"f20d12a5698a93eb6946effcb5fbf778a53b0667"},{"file":"sc3d\/dynamike_chef_tex.pvr","sha":"3c52a37046b138a2a06e6bc5f7c17788747aeabe"},{"file":"sc3d\/dynamike_coach_attack.scw","sha":"b0432786e3e18d6ce41501d6a09ad099de6d3a2b"},{"file":"sc3d\/dynamike_coach_geo.scw","sha":"053e37bf82cfc28a03cca8088bd2a965b66c439a"},{"file":"sc3d\/dynamike_coach_idle.scw","sha":"20f10ad0afb08457b786347abaf25d093fe72756"},{"file":"sc3d\/dynamike_coach_lose.scw","sha":"6be0c4085db9da026f7aaaf7b2c8270ae24f6dad"},{"file":"sc3d\/dynamike_coach_pushback.scw","sha":"f5f6406e6802f61db101af7bbec2618f73af8660"},{"file":"sc3d\/dynamike_coach_super.scw","sha":"12f4f83a46660da0e4256cf9d5facdf42027c09b"},{"file":"sc3d\/dynamike_coach_tex.ktx","sha":"048f486e93f5d511853226f3e730612ae9560ea4"},{"file":"sc3d\/dynamike_coach_tex.pvr","sha":"8c297ed3df4bfb58cb10998cff02e188c17c9955"},{"file":"sc3d\/dynamike_coach_walk.scw","sha":"1ba493da37b8de05a0114a064afbdfd17fcadfcc"},{"file":"sc3d\/dynamike_coach_win.scw","sha":"6b776c4fc8619dfecd190d5420643acda20647f3"},{"file":"sc3d\/dynamike_geo.scw","sha":"bc46d1a3fcbca76da297ca54c08fe1bfaba4c03d"},{"file":"sc3d\/dynamike_idle.scw","sha":"fa733987c47a9b1a40cf4c45221ec7c71383ed43"},{"file":"sc3d\/dynamike_lose.scw","sha":"291705fa1299e488560477d8733584d3cfcee876"},{"file":"sc3d\/dynamike_mecha_attack.scw","sha":"0575c00776b341879771a2747e908e4a7584abeb"},{"file":"sc3d\/dynamike_mecha_geo.scw","sha":"de3b227a5db491ecad82141d25be6ea40b016b1f"},{"file":"sc3d\/dynamike_mecha_idle.scw","sha":"ad2c979446e4820bb531f3a27bdf575b8583d799"},{"file":"sc3d\/dynamike_mecha_lose.scw","sha":"64f6cc75faed9a79143885afe14526bc1d119bfa"},{"file":"sc3d\/dynamike_mecha_tex.ktx","sha":"227c724bc8e6b0d5a1c94f68c70c4d9818d50fab"},{"file":"sc3d\/dynamike_mecha_tex.pvr","sha":"554364fd66e0a0cf48c2a9f27969656d4a9ca414"},{"file":"sc3d\/dynamike_mecha_ult.scw","sha":"74e4c218399eaf94102cb119e3652a7aa8d9b0f3"},{"file":"sc3d\/dynamike_mecha_walk.scw","sha":"b03bf1dabdcce30d5046cab68ea1983f0bb4eef5"},{"file":"sc3d\/dynamike_mecha_win.scw","sha":"749f6c340f8d55d31cdb02159ccfa54969192acb"},{"file":"sc3d\/dynamike_pushback.scw","sha":"7b11c4fe08291e1ad8ec818131bb06ffd1eb9762"},{"file":"sc3d\/dynamike_santa_blue_tex.ktx","sha":"7e9dce6d94805b8f3fe5398e15a18ce09a244567"},{"file":"sc3d\/dynamike_santa_blue_tex.pvr","sha":"03ef672e8c138d05b945ed098b62c3fb8dec2bd7"},{"file":"sc3d\/dynamike_santa_geo.scw","sha":"2886aab7a9145a4873513a9e3c5fdd264ff6fdd0"},{"file":"sc3d\/dynamike_santa_rope_geo.scw","sha":"6cd87b2ff87140b02904a4303e58ddccf37bcb03"},{"file":"sc3d\/dynamike_santa_rope_loop.scw","sha":"3440cafb9cc40c3576bcce0b4f9f680855d6236e"},{"file":"sc3d\/dynamike_santa_tex.ktx","sha":"7e9dce6d94805b8f3fe5398e15a18ce09a244567"},{"file":"sc3d\/dynamike_santa_tex.pvr","sha":"03ef672e8c138d05b945ed098b62c3fb8dec2bd7"},{"file":"sc3d\/dynamike_super.scw","sha":"ac2357ccf60b432de1ab582645e744d73c152e2a"},{"file":"sc3d\/dynamike_tex.ktx","sha":"d75aeddecc83d3c71f0a5b253241f2591cae5489"},{"file":"sc3d\/dynamike_tex.pvr","sha":"923b278a06c9a1becdfe62520da361ce837812fc"},{"file":"sc3d\/dynamike_walk.scw","sha":"3f3c77826faaaad2a50ec4b2850f469e70c9e2ec"},{"file":"sc3d\/dynamike_win.scw","sha":"39c9e53aa453dc87a9aed3f908cd6b044c50e660"},{"file":"sc3d\/emz_attack.scw","sha":"b6c7fff423dd23d2d97f6a49b832153c5a6c44cb"},{"file":"sc3d\/emz_base_cam.scw","sha":"3ffed6122bd2e63d6129ae09c21b27ede1529b17"},{"file":"sc3d\/emz_college_geo.scw","sha":"9f64106dab40871ac823d4d30874c616ebae1bbd"},{"file":"sc3d\/emz_college_tex.ktx","sha":"28980759960eed83b5cd13341540728b7d9da755"},{"file":"sc3d\/emz_college_tex.pvr","sha":"d353b3c889c3a822b445dd79ee6b8c2227dfe4e8"},{"file":"sc3d\/emz_geo.scw","sha":"52ba7da0ce1959fa4483f27603d40750d7eb676e"},{"file":"sc3d\/emz_idle.scw","sha":"9e1b7553acbbacbb8c651b466fa78aa00dbb65be"},{"file":"sc3d\/emz_lose.scw","sha":"32255bf86d2c72fdd6c7eded25eada4300fd60c2"},{"file":"sc3d\/emz_pushback.scw","sha":"e20b978da5a87f75ae2e7bd300de2b901f0a7721"},{"file":"sc3d\/emz_reload.scw","sha":"600be9bfb641698f3ec1786e89d533ee708ecdcd"},{"file":"sc3d\/emz_tex.ktx","sha":"5653329a6a8005a0884e88df9127c363e69e6d23"},{"file":"sc3d\/emz_tex.pvr","sha":"a23ea70864543ed39c3fd623aa3df3f959ede7dd"},{"file":"sc3d\/emz_walk.scw","sha":"6254f0d78180f603fd44a5442164596e2a6fbf1d"},{"file":"sc3d\/emz_win.scw","sha":"9284a898929842ee24e107586fe82380883e491a"},{"file":"sc3d\/fastmeleebot_geo.scw","sha":"aeb4a581c057a80babaa411cfa4cfcc7c32ca306"},{"file":"sc3d\/fastmeleebot_idle.scw","sha":"8c9bd29493f4a5fbc6a92f5ddda9d268de9f7ec5"},{"file":"sc3d\/fastmeleebot_recoil.scw","sha":"7b25a6670cdb844296ffed57c52eee0fbde4e7a5"},{"file":"sc3d\/fastmeleebot_tex.ktx","sha":"d4b8b70f1dd0ab7e04cae83a4f2d9f364e6fb5f9"},{"file":"sc3d\/fastmeleebot_tex.pvr","sha":"ee7d71f141139850da9c896ec812e10b1c7b10ea"},{"file":"sc3d\/fastmeleebot_walk.scw","sha":"aab5120927d6c9236754d2dae2a1c89b2b2a0da6"},{"file":"sc3d\/fence_arcade.scw","sha":"3337e86f1a36318b9812fbb5acf31e848a0a80da"},{"file":"sc3d\/flame_1.ktx","sha":"1e9972da27c435b6d8b608397adde814a8f6f8dc"},{"file":"sc3d\/flame_1.pvr","sha":"2c4b444e1ddb610e3821bf6571884437724d65e5"},{"file":"sc3d\/frank_attack.scw","sha":"c905574b08e6efe5e651116111b91ffec4559568"},{"file":"sc3d\/frank_base_cam.scw","sha":"8e28dcf4a6d589af37ba6964d940791c40708c7e"},{"file":"sc3d\/frank_caveman_01.ktx","sha":"c02b75870edc0ae3be56f66b967b756ccd525833"},{"file":"sc3d\/frank_caveman_01.pvr","sha":"821f65a4c782b6b94913ef77c49e91b5ed784324"},{"file":"sc3d\/frank_caveman_geo.scw","sha":"4a5bd296256a0dca2ca7d1ac628ba2c0688b7781"},{"file":"sc3d\/frank_dj_geo.scw","sha":"afb88cdbc18a9da6e7ef709759a1c12811fa9572"},{"file":"sc3d\/frank_dj_tex.ktx","sha":"b1f674bbdce8384344174bb6003246ee1755c89a"},{"file":"sc3d\/frank_dj_tex.pvr","sha":"bf63d4cf39ad890e7df8fb9d76a13c0900597134"},{"file":"sc3d\/frank_geo.scw","sha":"335c35bd48c333523947e190665b973938cfd201"},{"file":"sc3d\/frank_idle.scw","sha":"88b9de6312b5ab1f69506aa63033199de3cc4d79"},{"file":"sc3d\/frank_lose.scw","sha":"d468bb203f3d7071302f0a7de4973be6dc59c870"},{"file":"sc3d\/frank_mortuary_env_loop.scw","sha":"c87706136e2cc9d2e180854cadd189ed5fb60dfa"},{"file":"sc3d\/frank_pushback.scw","sha":"9a39791d70fce48de1532d904cd9b8558476af03"},{"file":"sc3d\/frank_tex.ktx","sha":"60afa1e486e49784501b4cda1f16e72f1f4d4b31"},{"file":"sc3d\/frank_tex.pvr","sha":"1ea1ba69b3d8acc9a5eb548a3e1dbcd1ecaeabcd"},{"file":"sc3d\/frank_ulti.scw","sha":"22b5b921d0299def254f988c2a22ccbadaa29cde"},{"file":"sc3d\/frank_walk.scw","sha":"909a817024aeb0df6ba5b883b44ac7f7d1bfdba9"},{"file":"sc3d\/frank_win.scw","sha":"5a1fa2daa6649fb83c6d2a76f534f1c14fbdd4b3"},{"file":"sc3d\/gene_anim_attack.scw","sha":"c84d65260ebbd796f847b2134b9926dcf03fff3f"},{"file":"sc3d\/gene_anim_idle.scw","sha":"35c88066f552a2bd0d0aac306a15820bb50a47a9"},{"file":"sc3d\/gene_anim_lose.scw","sha":"31ea37c0c566e6df629295c121666fdb534d3d1b"},{"file":"sc3d\/gene_anim_loseloop.scw","sha":"394a7775ff1a4b93b0f4a0fd626e4289566e13d4"},{"file":"sc3d\/gene_anim_reload.scw","sha":"4059dd77507e49bf80ccb03d346322969b802961"},{"file":"sc3d\/gene_anim_super.scw","sha":"d1883d7495b690c30f6dd18fe858798c69f7fa22"},{"file":"sc3d\/gene_anim_super2.scw","sha":"979e509c434d999a912157cfe1b13c55a649de34"},{"file":"sc3d\/gene_anim_walk.scw","sha":"c1ddf4169ecfd7b87a6fcabfc8264afa10c6c7f5"},{"file":"sc3d\/gene_anim_win.scw","sha":"f3ae36798db05375afe3b5a851f5c64c4914a4fd"},{"file":"sc3d\/gene_base_cam.scw","sha":"048c935a6adad8d14446b94f01e1ba5846f1a9f9"},{"file":"sc3d\/gene_geo.scw","sha":"04013ec26421176fe04f0f2554ab393c54546f65"},{"file":"sc3d\/gene_pirate_anim_attack.scw","sha":"29e60518a9ada2cfe7cd14dbd0d4188beeb063ca"},{"file":"sc3d\/gene_pirate_anim_idle.scw","sha":"10fb119cd1001119f051f42a15be175e824507ff"},{"file":"sc3d\/gene_pirate_anim_lose.scw","sha":"ba1f4386af5322c364e93c20a3a9945aa6f3beae"},{"file":"sc3d\/gene_pirate_anim_reload.scw","sha":"391f23d3573dab69cab5a3f5fa54d8d62357339a"},{"file":"sc3d\/gene_pirate_anim_super.scw","sha":"eb929a9df777ba13b0fea3e23e70734e940318db"},{"file":"sc3d\/gene_pirate_anim_walk.scw","sha":"9dc6b8e6e109b7ac6a1197863c026503207ff201"},{"file":"sc3d\/gene_pirate_anim_win.scw","sha":"dc3bc70b683149d1898a22040e1ace5a7ab04fb2"},{"file":"sc3d\/gene_pirate_geo.scw","sha":"76e7c3f2eaf44902143fe6da2efc0e23b714981a"},{"file":"sc3d\/gene_pirate_tex.ktx","sha":"5064564b4c03d17e83c7f63855a78a05f272b2c7"},{"file":"sc3d\/gene_pirate_tex.pvr","sha":"530dc5bfedb0c3fa8fa340875326a6b174c8a214"},{"file":"sc3d\/gene_projectile_closed_blue.scw","sha":"d3ea5a1f84e4d9e925d6090f980b0ab53c1d60f0"},{"file":"sc3d\/gene_projectile_closed_red.scw","sha":"235a9018dc997f53689c0d55448983214552232a"},{"file":"sc3d\/gene_projectile_open_blue.scw","sha":"868565826ba45be1ea894be9539acf9d5b61b295"},{"file":"sc3d\/gene_projectile_open_red.scw","sha":"79eaabc3f4faece6693b5e8d9e8e0c124b7dbba3"},{"file":"sc3d\/gene_projectile_tex_alpha.ktx","sha":"eea8a9572c0f3416c2ff33c9f9ee0bc18b4177bf"},{"file":"sc3d\/gene_projectile_tex_alpha.pvr","sha":"5ddd89fb495f4befee7b6ffd2c3002c873b53a62"},{"file":"sc3d\/gene_projectile_tex_blue.ktx","sha":"ff78db3c17155599ae0f342f4d4922a2840fd534"},{"file":"sc3d\/gene_projectile_tex_blue.pvr","sha":"62a4ed593befed8d416c8d877cdcabfe11ac5cd2"},{"file":"sc3d\/gene_projectile_tex_red.ktx","sha":"a600271d59345528c494d52535356ff9c0f85868"},{"file":"sc3d\/gene_projectile_tex_red.pvr","sha":"d8bbb521d4aa95798d08aeea6bf30745fbe3abf8"},{"file":"sc3d\/gene_tex.ktx","sha":"5ee6e3793dbc20d0896047c58a5e88e7eac6e47b"},{"file":"sc3d\/gene_tex.pvr","sha":"9e2e7b5bc04e0240b3c6c6dfdb8093bd727e601d"},{"file":"sc3d\/generic_tilable_1.ktx","sha":"da93465cbbb2ab2daf533e73dca97c895860fa08"},{"file":"sc3d\/generic_tilable_1.pvr","sha":"aae1cdfc8e7497d569472cc1a7c275c7b465b923"},{"file":"sc3d\/generic_wood.ktx","sha":"ff64cbf0618dace10a299b5b3a51452569a4df52"},{"file":"sc3d\/generic_wood.pvr","sha":"fef3408dffb626ffc5f7447cf6aead167fc90ffa"},{"file":"sc3d\/grass1.scw","sha":"d988bebb17cf019362de7ee409855e47aa80c4b4"},{"file":"sc3d\/grass2.scw","sha":"9825b71ba7e2e97ac7647fdd3f546f19c1eefdea"},{"file":"sc3d\/grass3.scw","sha":"de2c4f7b28810f4be89fdfea9bbabb98c2282282"},{"file":"sc3d\/grass4.scw","sha":"4fbc6e9185804e757228bfc1fa3680e8ca56456f"},{"file":"sc3d\/grass5.scw","sha":"a9af8a18cb8a6bcdab8263eadf88930e11ed5676"},{"file":"sc3d\/grass6.scw","sha":"9cf8210276b09aad6af6d6cc910ff4ee185f14bd"},{"file":"sc3d\/grass7.scw","sha":"4498801834d0bf80a86b9cf219d92827b1ec2daf"},{"file":"sc3d\/grass_1.ktx","sha":"88544580cac7afaf2819af1d05c351a5d57e3bbc"},{"file":"sc3d\/grass_1.pvr","sha":"1d664711afd077f610ec91980776cf077c44b42e"},{"file":"sc3d\/grass_2.ktx","sha":"6bd56e25539fca8c01fa0a41dd18a26349ab7461"},{"file":"sc3d\/grass_2.pvr","sha":"586451504dd6fff89460921de2f3d19b19baf35a"},{"file":"sc3d\/grass_3.ktx","sha":"52c894b9fcbcd5e4adbb9dad4a97f394854d13e2"},{"file":"sc3d\/grass_3.pvr","sha":"7ae812cec10e6182045a7a24dd63f7b554d4e82f"},{"file":"sc3d\/grass_4.ktx","sha":"f9abff73e708399889b05d7ca31310d28ee3a129"},{"file":"sc3d\/grass_4.pvr","sha":"16f2c369a93eeab16632d09a32fe84eb6d36b959"},{"file":"sc3d\/grass_5.ktx","sha":"cff410af90613fc63429dc2acb116cde417def6c"},{"file":"sc3d\/grass_5.pvr","sha":"30a59cb69924594697a7876cab2ca0ae12f92766"},{"file":"sc3d\/grass_6.ktx","sha":"6581186b05ffa757c89ef3a08aec61b85e8b1113"},{"file":"sc3d\/grass_6.pvr","sha":"8763990204fac14b9f6a2b643acf7640ca5dd81f"},{"file":"sc3d\/grass_7.ktx","sha":"0bd77b12c3f2401f658f2a6256b70061ada705e9"},{"file":"sc3d\/grass_7.pvr","sha":"a99238448585e0190107b50bc524eb66d1344351"},{"file":"sc3d\/grass_seaweed.ktx","sha":"4a3bd47c3c9021abfceec29e6e8da1b7d8aaa40d"},{"file":"sc3d\/grass_seaweed.pvr","sha":"86f9f1cac308af78e06d51217855a99aefc2ea9f"},{"file":"sc3d\/grass_seaweed.scw","sha":"c0694917ca78478286b0dbcaf9ce807a2287c40e"},{"file":"sc3d\/grass_town.ktx","sha":"6bd56e25539fca8c01fa0a41dd18a26349ab7461"},{"file":"sc3d\/grass_town.pvr","sha":"586451504dd6fff89460921de2f3d19b19baf35a"},{"file":"sc3d\/grass_town.scw","sha":"c1fe16026a75f7d2c82f7d226b619b2afaeda6aa"},{"file":"sc3d\/hair_diffuse_lightmap.png","sha":"cbb89a2dc5def2a9309c7ebe3a197675a809ce73"},{"file":"sc3d\/hair_specular_lightmap.png","sha":"9d095cb3b4fe42a82c85a40512f42c41b45fd647"},{"file":"sc3d\/healstation_geo.scw","sha":"ce548a7dfb3323a7b0d1862b77009f183f2feb7a"},{"file":"sc3d\/healstion_red_tex.ktx","sha":"8345059242c060011934e1bc124cb427056dba82"},{"file":"sc3d\/healstion_red_tex.pvr","sha":"010c6566a9627b17a10260446850845ea0abbca6"},{"file":"sc3d\/healstion_tex.ktx","sha":"a5e741cc7ccb263c13f15e5c3fb75f97f43d0e92"},{"file":"sc3d\/healstion_tex.pvr","sha":"7fbb1ae473538b522eaab2a6ba73e31e33378087"},{"file":"sc3d\/heist_safe.ktx","sha":"22a79d1242c17a02e6f7619283cd299999bc12be"},{"file":"sc3d\/heist_safe.pvr","sha":"04946f3f28a7241192d6a418e58a7db9215f886b"},{"file":"sc3d\/heist_safe.scw","sha":"019f118319dd7a2c297785455e4905ce9d540fa7"},{"file":"sc3d\/ice_cube1.scw","sha":"f6dd542a9f20c1e33192c3e1ba0a2191066aff12"},{"file":"sc3d\/ice_cube_1.ktx","sha":"c2019ac7bbc40f958b9432163d41ebb51501f43c"},{"file":"sc3d\/ice_cube_1.pvr","sha":"9c7c5d4e2f3e76d57613e044acd8d7d82d539502"},{"file":"sc3d\/indestructible_metal_1.ktx","sha":"06f657d9a634fec1d160e8ed486d4ed32d6f6264"},{"file":"sc3d\/indestructible_metal_1.pvr","sha":"7ca3994fb1d81b47f1bfe2fb4bfaf29284600ee1"},{"file":"sc3d\/indestructible_metal_1.scw","sha":"fe2df649521590483f6ff866480b2523169eb609"},{"file":"sc3d\/item_bolt.ktx","sha":"0a8501c744b396d14119e2b33f34975603ccffed"},{"file":"sc3d\/item_bolt.pvr","sha":"3dc60c03b6c8ea4eb470ce2f4e0fda2d7cf00fcf"},{"file":"sc3d\/item_bolt.scw","sha":"0e2dfcf5f4578aa374e078494ea090cce78ca597"},{"file":"sc3d\/item_bolt_crate.ktx","sha":"797106548474c18b20518b98b672490c2d6b69f7"},{"file":"sc3d\/item_bolt_crate.pvr","sha":"2ea9e788c037876c33722b0c4bf0a3cebb6647df"},{"file":"sc3d\/item_bolt_crate.scw","sha":"534f70ce13a5af1b3cf815044875ec24dfad8bc9"},{"file":"sc3d\/item_gem.scw","sha":"ca5e763d87d142db04c0de5aeb7476da937ac06f"},{"file":"sc3d\/item_power_up_bottle.ktx","sha":"c3bfdd0595728586603aa0ac1a4ac971975949c8"},{"file":"sc3d\/item_power_up_bottle.pvr","sha":"93283132c6c33552de504287da25c41a8659141a"},{"file":"sc3d\/item_power_up_bottle.scw","sha":"fdd5d4da05ab2e812b0bc9c8bcaae8be15b0f73d"},{"file":"sc3d\/item_present_blue.ktx","sha":"2becf61a18db014bfecd9c2569d50ed9d3fcf1d5"},{"file":"sc3d\/item_present_blue.pvr","sha":"f91ccc1ad1d0162373b3d6ea204bcf23395617db"},{"file":"sc3d\/item_present_red.ktx","sha":"a3d9deb23ef487158ef8f55a58a99ce0633b28a1"},{"file":"sc3d\/item_present_red.pvr","sha":"1b2b2394859563302b3ca10684c3d4c875bdcd02"},{"file":"sc3d\/item_present_red.scw","sha":"14f02b51844022e9504a4fdc68663315c75ffc14"},{"file":"sc3d\/item_showdown_boost.ktx","sha":"1affcf81c1239fac560a6638132cfe177222408e"},{"file":"sc3d\/item_showdown_boost.pvr","sha":"5f5d7328fe3e7415caf3f39606e3c750ea9de45c"},{"file":"sc3d\/item_showdown_boost.scw","sha":"a5a3fbf081e4fc1b663c24a15164b45ef6cb6019"},{"file":"sc3d\/item_showdown_boost_moon_festival.ktx","sha":"19d497e0cbf7d50cfc88847171ee06b8c8f4a8ac"},{"file":"sc3d\/item_showdown_boost_moon_festival.pvr","sha":"9451900d88c79a35d5e0e5fa698e6803d10822a3"},{"file":"sc3d\/item_showdown_boost_moon_festival.scw","sha":"22a79324b9af8ddb67f57992c91b7991454b1fa8"},{"file":"sc3d\/jacky_attack.scw","sha":"d7dc8a8ed400ef90f712c2d6c938d19e5722ac46"},{"file":"sc3d\/jacky_geo.scw","sha":"72c6eaa7be8b858fc7a3ad0db353e6568d8af79d"},{"file":"sc3d\/jacky_idle.scw","sha":"0171c818cca20058ee3d663871c6786284816ded"},{"file":"sc3d\/jacky_lose.scw","sha":"df270e9cd49baf398b4396afe49b70d2e2baecea"},{"file":"sc3d\/jacky_portrait.scw","sha":"4fa12fd2523f24a113d42754a96350950c32c10c"},{"file":"sc3d\/jacky_super.scw","sha":"77d2d1f828d919a9d666987578eff36f83ea86dc"},{"file":"sc3d\/jacky_tex.ktx","sha":"3c8b03c249595a5cba2ad5e626824b8b18b7a110"},{"file":"sc3d\/jacky_tex.pvr","sha":"8cf4ddc763ea7b94e383518061af2a0d540383e0"},{"file":"sc3d\/jacky_walk.scw","sha":"d14d9d7c8a8fe329f4a86650a35fef40369e029d"},{"file":"sc3d\/jacky_win.scw","sha":"6566834260b9ae700c9777111dfa754698df9cb1"},{"file":"sc3d\/jessie_attack.scw","sha":"8f852a5b6f9605c5f826e371467281f119fa21d3"},{"file":"sc3d\/jessie_base_cam.scw","sha":"4a41c75b541704143a5cdd263c8332a55961e612"},{"file":"sc3d\/jessie_geo.scw","sha":"9cca8300347868e32eab6187c802a6b108010464"},{"file":"sc3d\/jessie_idle.scw","sha":"883ea06faac2d40b5399b17ef76cbefd1b7f8383"},{"file":"sc3d\/jessie_knight_attack.scw","sha":"5484be38320063f8161eb1f315dd09fe0e1db0de"},{"file":"sc3d\/jessie_knight_battlewin.scw","sha":"49576e8e8daf46a0286e78b41871119ef041f025"},{"file":"sc3d\/jessie_knight_geo.scw","sha":"33aeeaeee51abcac4fc23c7d24ff94ecac4b8cc2"},{"file":"sc3d\/jessie_knight_idle.scw","sha":"bc19975549816d94f21f75eeab86f1f68bf304b4"},{"file":"sc3d\/jessie_knight_lose.scw","sha":"e47eb54857207354112d62bc5e880f711fb6c030"},{"file":"sc3d\/jessie_knight_pushback.scw","sha":"fbb17f9fc22e700e5521acb01c90714f42e6b1e7"},{"file":"sc3d\/jessie_knight_tex.ktx","sha":"668e855f87d9fb9cec4b6ddb2292d201208fe535"},{"file":"sc3d\/jessie_knight_tex.pvr","sha":"30d1a85a22d1a6e1c5740fa76d62b1978a8b7857"},{"file":"sc3d\/jessie_knight_walk.scw","sha":"edddea394f1cdbd022f790f6540f8cb63809695f"},{"file":"sc3d\/jessie_knight_win.scw","sha":"c5bbcebbb9c41066e2501eff5faa48e43f1f520e"},{"file":"sc3d\/jessie_knightdark_battlewin.scw","sha":"240a488657b88812aed326db2d0ea7e535aefc2e"},{"file":"sc3d\/jessie_knightdark_idle.scw","sha":"127b45bf364e8a0d3ea2016b47466329ad0d028c"},{"file":"sc3d\/jessie_knightdark_win.scw","sha":"903f7a8d2020ba79ca63b80aa84ae6f4df78fb04"},{"file":"sc3d\/jessie_lose.scw","sha":"a1e5fd131d4e3e1ab35ae65ea5467043e2108490"},{"file":"sc3d\/jessie_portrait.scw","sha":"2b9e7ed90af622d8763910e66dc268df5cec4873"},{"file":"sc3d\/jessie_pushback.scw","sha":"a5d7302e57ccc2f48b7f3fadf542f93c5ecb225f"},{"file":"sc3d\/jessie_summertime_geo.scw","sha":"9cb4982c77fa4ddc02b9880d1d62ccc25e5f18dc"},{"file":"sc3d\/jessie_summertime_tex.ktx","sha":"f6fa7ad7db6bd9eb0e43aee44168ff36cf1b5f22"},{"file":"sc3d\/jessie_summertime_tex.pvr","sha":"fba850b87bbd93b52962a1907a2c106166716f19"},{"file":"sc3d\/jessie_summertime_walk.scw","sha":"f292df5cc54d41f1d32052dfe4aff8ea811b3247"},{"file":"sc3d\/jessie_tanuki_attack.scw","sha":"efdf731a7ea9f5c9a50e15cc0729a2cbe4ab2d55"},{"file":"sc3d\/jessie_tanuki_geo.scw","sha":"88d83289f18495ddca86bf2292d697b4016d36cd"},{"file":"sc3d\/jessie_tanuki_idle.scw","sha":"f666721970ca343b6042fdb2f0f20925d1c25827"},{"file":"sc3d\/jessie_tanuki_lose.scw","sha":"6edb14c99f0d140eca93bda4bb094b6bf8385bda"},{"file":"sc3d\/jessie_tanuki_tex.ktx","sha":"991f6d9b2a24edac3df1d86d4a55619c2f8db7bd"},{"file":"sc3d\/jessie_tanuki_tex.pvr","sha":"d4daa997f51a875dd727c884f382f7e0ec377bb5"},{"file":"sc3d\/jessie_tanuki_walk.scw","sha":"05d361b85f0200608f510855a10d15af9fcbc04d"},{"file":"sc3d\/jessie_tanuki_win.scw","sha":"677b62950f29d7a94bb847371b0a1bdeea986ff0"},{"file":"sc3d\/jessie_tex.ktx","sha":"bef3c424a15f616afaac72fe0e9049389c8c2a66"},{"file":"sc3d\/jessie_tex.pvr","sha":"92c9b7f0868ed554af00c318a4cac9f4536dc116"},{"file":"sc3d\/jessie_walk.scw","sha":"cd1ad62b4c584f2e4e2fc6a6caf9121b6ca7a89a"},{"file":"sc3d\/jessie_win.scw","sha":"25c87c2b614b5807bd986ec0af970661913df900"},{"file":"sc3d\/leon_attack.scw","sha":"6e031e203fda80ad7a534b340924c221f07239d2"},{"file":"sc3d\/leon_base_cam.scw","sha":"d655fd10164e1f1f06924afc5681109c8a5269f4"},{"file":"sc3d\/leon_geo.scw","sha":"1105bdef0643baeea2906f947d203900cafb8171"},{"file":"sc3d\/leon_idle.scw","sha":"ed39232524084922420c5bdec2bd9268afda7ed6"},{"file":"sc3d\/leon_lose.scw","sha":"fa8935960d6b8e0eea91b0a7ab681f78d46fb5d8"},{"file":"sc3d\/leon_pushback.scw","sha":"636f2ff9ce098ec94fb4313f65b23bef9c722869"},{"file":"sc3d\/leon_sally_geo.scw","sha":"55bebdee9b2ed5d9fcd740d00a40f259e65b9b0f"},{"file":"sc3d\/leon_sally_tex.ktx","sha":"f16057bcd7770cffc804de139163833257103e5e"},{"file":"sc3d\/leon_sally_tex.pvr","sha":"8aea1b036353c2d4edbbaee403093e21ad9c515c"},{"file":"sc3d\/leon_sally_win.scw","sha":"e1731e0af62cc3e9452a0718814b4725d2b5ff52"},{"file":"sc3d\/leon_tex.ktx","sha":"2cc67701e8d1271575c58a6e0b4c7446e9f2f722"},{"file":"sc3d\/leon_tex.pvr","sha":"5f50e5a7ccc73ee576e0a19d7c5a53fcfcf53553"},{"file":"sc3d\/leon_walk.scw","sha":"f893503af4d7a9d0024ecc17d8ce28a7b37c4798"},{"file":"sc3d\/leon_win.scw","sha":"c96b9a2bb9e334756592000e3a2b73750e6c7461"},{"file":"sc3d\/leon_wolf_attack.scw","sha":"cf84d2132f9be1c6ac925f58587e051f047ea380"},{"file":"sc3d\/leon_wolf_geo.scw","sha":"44f93a36664134bd51b0a4db9222429e8a2d4ec2"},{"file":"sc3d\/leon_wolf_idle.scw","sha":"13f44fbf6ccd8012ca08301bc6a9c32ed74ba327"},{"file":"sc3d\/leon_wolf_lose.scw","sha":"426bc571d376732dbc4eb8e9f314dbf1654cb0c3"},{"file":"sc3d\/leon_wolf_portrait.scw","sha":"3ee519171983f4b561928c39f0d0c7e526e71af3"},{"file":"sc3d\/leon_wolf_pushback.scw","sha":"c41c395c67fce7a89aa38ad9d15f6385fa34ca2c"},{"file":"sc3d\/leon_wolf_tex.ktx","sha":"6e1a32411201e79638b2c5ab5266e0460411cb52"},{"file":"sc3d\/leon_wolf_tex.pvr","sha":"d56af2b2d03c4454e12b5900af68d4163a466476"},{"file":"sc3d\/leon_wolf_walk.scw","sha":"ccd2732b795369bcf75a71a9cf85ad7162d3f9a7"},{"file":"sc3d\/leon_wolf_win.scw","sha":"a58eef316984413bed46b5bb312699b4d63c025d"},{"file":"sc3d\/light_gradient_1.ktx","sha":"602544d30d04500096c5d0f1b2c56c409fccdc26"},{"file":"sc3d\/light_gradient_1.pvr","sha":"a29d153a720311b9b84a45ea94472033152436bd"},{"file":"sc3d\/mari_attack.scw","sha":"ef440b397c4fec4e4f1f2a123fbd7a1b0342bf1c"},{"file":"sc3d\/mari_geo.scw","sha":"4d463653b34383f158ba292001b9a9d73507e436"},{"file":"sc3d\/mari_idle.scw","sha":"2bfc5eaba96bb1063f470438c0212665dae0f47e"},{"file":"sc3d\/mari_lose.scw","sha":"f8ad5a1cf2dff42b448510400f14fa8c3f7ddcd2"},{"file":"sc3d\/mari_pushback.scw","sha":"915d237ef04bae991c7ba9735ada03654187b700"},{"file":"sc3d\/mari_tex.ktx","sha":"46cc9b502c35ae51b05b9eb6426b4f10d633eba1"},{"file":"sc3d\/mari_tex.pvr","sha":"20704e1d9d91d13c4c9bed4c307ba0459b2b16ff"},{"file":"sc3d\/mari_ult.scw","sha":"0cf4287f3504bcd97387368c0915b547e52127f1"},{"file":"sc3d\/mari_walk.scw","sha":"773d5b2f59b556f994000157d349605e3da88b83"},{"file":"sc3d\/mari_win.scw","sha":"da9723094ecb6009a47b8c862fe1e19bf3c9b1cb"},{"file":"sc3d\/mariachi_attack.scw","sha":"360a87a652073179df62eb6b301d680d5fb22ddd"},{"file":"sc3d\/mariachi_geo.scw","sha":"2556f2b87e0c38fb6883703e21417f491c848a17"},{"file":"sc3d\/mariachi_idle.scw","sha":"c38b8b4f021239c7705532aba36b7c49cbd14b2b"},{"file":"sc3d\/mariachi_lose1.scw","sha":"4bc7beabf2b2a66c47bcb0eda7cd4077ae68abf5"},{"file":"sc3d\/mariachi_loseloop1.scw","sha":"f7c300f1e04b978fb2f8555cea44e5c35e477b3a"},{"file":"sc3d\/mariachi_recoil.scw","sha":"4d6b182257798c17800b15db62efa126bc30a33d"},{"file":"sc3d\/mariachi_reload.scw","sha":"538b433605ed52a966d4def73143dedb5da88a20"},{"file":"sc3d\/mariachi_tex.ktx","sha":"ff00a921ad176a4986cec85e94f10885a64a1752"},{"file":"sc3d\/mariachi_tex.pvr","sha":"b6fb5d5cb68f4d2142b3497327208dc8003d48d4"},{"file":"sc3d\/mariachi_walk.scw","sha":"95c09487f655278231d31869fcc8db694621b185"},{"file":"sc3d\/mariachi_win1.scw","sha":"5691039152bcb7a680022872cdc79a4e6c4ac783"},{"file":"sc3d\/mariachi_winloop1.scw","sha":"945a1e0acda1bab5246e85d5169df2032b82695a"},{"file":"sc3d\/masks\/8bit\/8bit_light_msk.png","sha":"f6d3726d025317f19d4fea01dcfd9f8bf5fd6d1a"},{"file":"sc3d\/masks\/8bit\/8bit_msk.png","sha":"4f0d1dfcef699a841060653c2dfe48654173ec16"},{"file":"sc3d\/masks\/barley\/coat_msk.png","sha":"4b94a675c2be7d14117414ff4407c881da9d6622"},{"file":"sc3d\/masks\/bo\/bo_mecha_ammo_msk.png","sha":"ade295bb43f5c647654bf876108616041a635e2d"},{"file":"sc3d\/masks\/bo\/bo_mecha_colour01_msk.png","sha":"26ead54e7e0c0a116d4640bf5931a06ba28a6426"},{"file":"sc3d\/masks\/bo\/bo_mecha_colour02_msk.png","sha":"a460a7c9c2a9239314c040841e5a91fc6cc1a5cc"},{"file":"sc3d\/masks\/bo\/bo_mecha_eyesvisor_msk.png","sha":"e6e106add5b0d29c538c9dbd19fd5a83082152e5"},{"file":"sc3d\/masks\/bo\/bo_mecha_seams_msk.png","sha":"0f6119566d608f93f2daef941009f377ffe157ce"},{"file":"sc3d\/masks\/bull\/bull_footbull_colour01_msk.png","sha":"56cc3d86a2fc4bba62b18d2a86aeb63961092593"},{"file":"sc3d\/masks\/bull\/bull_footbull_helmet_msk.png","sha":"3a06d13a25d3a113dcf32bd23739416faf8a7317"},{"file":"sc3d\/masks\/bull\/bull_footbull_metal_msk.png","sha":"956b1f1db1119963210663b12feaa9dc72610078"},{"file":"sc3d\/masks\/crow\/crow_mecha_colour01_msk.png","sha":"4ee849e7565c8af455788f3f36f4d09d3203bab9"},{"file":"sc3d\/masks\/crow\/crow_mecha_colour02_msk.png","sha":"3437734700cd38a53a92742783d69280c4b27e7a"},{"file":"sc3d\/masks\/crow\/crow_mecha_colour03_msk.png","sha":"86850fa2eaa00681364efbe713e0c9d64c7826be"},{"file":"sc3d\/masks\/darryl\/darryl_msk.png","sha":"0670de72742896b4fa9b55c6caf66b25a163c26f"},{"file":"sc3d\/masks\/dynamike\/dynamike_mecha_ammo_msk.png","sha":"c92d04de336ff577c096724f2651ae8540c3e4e3"},{"file":"sc3d\/masks\/frank\/frank_dj_coat_msk.png","sha":"26df9bc99c9827739b162653e263ce53199adc51"},{"file":"sc3d\/masks\/jessie\/jessie_knight_fabric_msk.png","sha":"05ddb1f953631b648ff24bfeee4be1baa19b8ed4"},{"file":"sc3d\/masks\/jessie\/jessie_knight_gold_msk.png","sha":"c423f19dae74be449573ea3ae22259ee168c7347"},{"file":"sc3d\/masks\/jessie\/jessie_knight_metal_msk.png","sha":"c82d97c963bea4e4f8ab152bd9c6e792017e1e62"},{"file":"sc3d\/masks\/jessie\/jessie_knight_plume_msk.png","sha":"9256da7fe5f42acb21cee87a21ab54a0a805e4e0"},{"file":"sc3d\/masks\/jessie\/jessie_turrret_dragon_belly_msk.png","sha":"06481d71646fe760fe70f249858da3fd56c43ef4"},{"file":"sc3d\/masks\/jessie\/jessie_turrret_dragon_main_msk.png","sha":"509bdc92dd7d5505e307252f426a2cbee00df1cd"},{"file":"sc3d\/masks\/sprout\/sprout_glass_msk.png","sha":"55597a390eb3a2cfacd6f00c0245d4cdd292e051"},{"file":"sc3d\/max_attack.scw","sha":"b4ecb5d735347bb310d2f390974b62ab4190ae0b"},{"file":"sc3d\/max_geo.scw","sha":"ddcfc1f65b10a26837b50aee52120db795d8c5c1"},{"file":"sc3d\/max_gt_tex.ktx","sha":"f4dfd3199267fc1bce4259c529b689b074408c29"},{"file":"sc3d\/max_gt_tex.pvr","sha":"46781a6b1f74dcbb33bc6c690f3ee152a4765bfd"},{"file":"sc3d\/max_idle.scw","sha":"0471dfdf96aa733b7f859c28eb03352595518a30"},{"file":"sc3d\/max_lose.scw","sha":"83130ec2938c8ab5c92de2f5b453e29779e228f9"},{"file":"sc3d\/max_portrait.scw","sha":"3ddfb5745d45feffb0b5abe50dd92ca62bc29767"},{"file":"sc3d\/max_pushback.scw","sha":"cf6bf4f60e1d37dbb669737933df6374b651999f"},{"file":"sc3d\/max_reload.scw","sha":"7deb29a02e5cc4734454c41cc5a7a7dcd89003a4"},{"file":"sc3d\/max_super.scw","sha":"5748b7abf1eca3ffc06fc3c3baaccad6e0050808"},{"file":"sc3d\/max_tex.ktx","sha":"9f7388d9e8d2c7f6b78d29ff55ede5efc824748d"},{"file":"sc3d\/max_tex.pvr","sha":"a6bd34ba60dd7ca19fe1b8c0151ece03b41f4e7b"},{"file":"sc3d\/max_walk.scw","sha":"edd8c8f40296fa07aa764353b17c076aab5f978c"},{"file":"sc3d\/max_win.scw","sha":"35dd966de5a5e0812bf5c3a17e1772e570cc4f5f"},{"file":"sc3d\/meleebot_geo.scw","sha":"4d81a226390d594c21516eda427f820ee5ebdd24"},{"file":"sc3d\/meleebot_idle.scw","sha":"d1269c954c717165eff21efb3376357cc238bd41"},{"file":"sc3d\/meleebot_tex.ktx","sha":"3f6cbb75e425daa91947c8a7d293e7905676bed1"},{"file":"sc3d\/meleebot_tex.pvr","sha":"ae15a57a43445c1e5537e67f00f9799b7b738367"},{"file":"sc3d\/meleebot_walk.scw","sha":"3de7bfd829850520dfd9bd1f149cb1d91d47c811"},{"file":"sc3d\/menu_diffuse_lightmap.png","sha":"b24c733a99ca2993394b5802dcf79470e367e71d"},{"file":"sc3d\/menu_hair_diffuse_lightmap.png","sha":"5d1a4910aba8882b5fad1967d3eb16fedaadb3e5"},{"file":"sc3d\/menu_hair_specular_lightmap.png","sha":"7e40b0b1fc2085be1d5af924752e731c93bce44d"},{"file":"sc3d\/menu_metal_diffuse_lightmap.png","sha":"52857165ae137a2ff6e6a7cd486e412996c0da2d"},{"file":"sc3d\/menu_metal_specular_lightmap.png","sha":"5c1bda3d2862339bd38e5c3c61d1b7c8f3a145bb"},{"file":"sc3d\/menu_specular_lightmap.png","sha":"f5e7a12b8a827f98bad80af072948820b47f7770"},{"file":"sc3d\/metal2_specular_lightmap.png","sha":"df82a9bd8291300abb233fd6c2d7fe31dd166c9a"},{"file":"sc3d\/metal_diffuse_lightmap.png","sha":"06a27bf1531309e58a6648bba4c033e6da468bb2"},{"file":"sc3d\/metal_diffuse_lightmap_night.png","sha":"efaa328fb9e290e619dca329c6f867f91bf7cea8"},{"file":"sc3d\/metal_specular_lightmap.png","sha":"a095801e8a417b1aa36b159a99ac26744c1a1269"},{"file":"sc3d\/metal_specular_lightmap_night.png","sha":"3a48652eafd64afc6777a95ef96354be4d86692e"},{"file":"sc3d\/mine_cart.scw","sha":"756cf60a3c652259e4433259eac5d97b546dae15"},{"file":"sc3d\/mine_cart_b.scw","sha":"e8fdcd09401a9da6412ada83222be735c67a07cf"},{"file":"sc3d\/mine_cart_c.scw","sha":"c28fa219ba7740b75a4f5fbe68084ba91636bfe7"},{"file":"sc3d\/mine_cart_d.scw","sha":"c28fa219ba7740b75a4f5fbe68084ba91636bfe7"},{"file":"sc3d\/mine_cart_e.scw","sha":"a9b4f1d960f1ddeae8ba6799664f3ab0807c0b54"},{"file":"sc3d\/mine_gem_spawn.ktx","sha":"eb886162fbeda6a919f6d9dd40b1f57620e784e5"},{"file":"sc3d\/mine_gem_spawn.pvr","sha":"14c81ec865148c9a62efc7c449c2bb7a1e0abc09"},{"file":"sc3d\/mine_gem_spawn.scw","sha":"a138d1649643b5b81212efcafbddf8ea99425b66"},{"file":"sc3d\/mine_gem_spawn_darryls_ship.scw","sha":"f343e3fbbdb7d3f01b9a88552ec6fb0c6bea85bc"},{"file":"sc3d\/mine_gem_spawn_glow.ktx","sha":"dda27345166f2a95d69b83c71e44d16df1831179"},{"file":"sc3d\/mine_gem_spawn_glow.pvr","sha":"308905a00280e99367c3c333fc99cd1e43bd8f20"},{"file":"sc3d\/mine_gem_spawn_glow_snowy.ktx","sha":"3eded88e5268f01b63b5b636651f0bccc435ba13"},{"file":"sc3d\/mine_gem_spawn_glow_snowy.pvr","sha":"d09ef9f36f88b0e1bc4a7d48b13e24f10e4f185c"},{"file":"sc3d\/mine_gem_spawn_ice.scw","sha":"c42764e8399b348018b534f0800fdfc522770cd1"},{"file":"sc3d\/mine_gem_spawn_mortuary.scw","sha":"737c9b8ce9c3293bb09b41137059d196535ee278"},{"file":"sc3d\/mine_gem_spawn_retropolis.scw","sha":"d22463714a9d101e794ad0ea22707010c44ded0b"},{"file":"sc3d\/mine_gem_spawn_town.scw","sha":"def739dc2ab46c1af585ef5db62b164413c973bd"},{"file":"sc3d\/minigunner_geo.scw","sha":"7d5ee554d0fd48db61297f5fde95367bb60c8454"},{"file":"sc3d\/minigunner_idle.scw","sha":"49f29bc15ca81b4748d20fe2a6507631ee4d816a"},{"file":"sc3d\/minigunner_lose1.scw","sha":"86df8c31d7172a06b9eede96fb898e3ffe93b832"},{"file":"sc3d\/minigunner_ulti1.scw","sha":"17ceb48d14dd38f82ec006eb404c0d30bca9894e"},{"file":"sc3d\/minigunner_walk.scw","sha":"faec2d1912cf64b7408f6786cdf1a312b685247a"},{"file":"sc3d\/minigunner_win1.scw","sha":"22109e518b144317ff0774463f011f3b7d66394b"},{"file":"sc3d\/mist_1.ktx","sha":"1f6e3a439531511108b8d68b7a3adccbf5d4b6c3"},{"file":"sc3d\/mist_1.pvr","sha":"f5ad17e8694fa252d628b04192250c2d7eb7dc3e"},{"file":"sc3d\/mist_1.scw","sha":"9bce70a1c20a5496ee9f09c6b090adfa68aa6883"},{"file":"sc3d\/mortis_attack.scw","sha":"73b1b3a14380e407c02d0fc2ec942190c6520670"},{"file":"sc3d\/mortis_base_cam.scw","sha":"5cdd0bb21b15b1ce1bb342d936c96294f6c43f3f"},{"file":"sc3d\/mortis_geo.scw","sha":"8261455b616b35ee18d3b62b576b1b7c332cc871"},{"file":"sc3d\/mortis_greaser_geo.scw","sha":"e72667f36733f0bc0fa62f1db97a6ba7db704662"},{"file":"sc3d\/mortis_greaser_idle.scw","sha":"02ab7391aa973b03703a827d399e4b7f43b65a92"},{"file":"sc3d\/mortis_greaser_lose.scw","sha":"f4c26c5a92d4ddeab24da198cee4aa2e41beaea2"},{"file":"sc3d\/mortis_greaser_tex_02.ktx","sha":"c4ef02ed7c6b263ec55b521958b6f975666bdd75"},{"file":"sc3d\/mortis_greaser_tex_02.pvr","sha":"d35025a4aa095dd557677f9c32150e0a0eb0d42a"},{"file":"sc3d\/mortis_greaser_win.scw","sha":"2cd855be5b744cf986567ab8cc6439756a869c22"},{"file":"sc3d\/mortis_idle.scw","sha":"41e327793b804242f42b1c85f4ff30d7aa7ef778"},{"file":"sc3d\/mortis_lose.scw","sha":"903da08e837025d6e97a09dd15a6606e2f92ecb1"},{"file":"sc3d\/mortis_nightwitch_geo.scw","sha":"54e6d6e2e12d3daeff538197b17ac43cc7f9c49e"},{"file":"sc3d\/mortis_nightwitch_tex.ktx","sha":"7e5cb8541403a8b8db6b153493d190b35483e014"},{"file":"sc3d\/mortis_nightwitch_tex.pvr","sha":"221dae56b123fe2028bdc63ab98a9d629a054d11"},{"file":"sc3d\/mortis_nightwitch_win.scw","sha":"0f3d24656513c0503c2061e065a50bc9e56e1323"},{"file":"sc3d\/mortis_pushback.scw","sha":"6ebb2aba5fceaf350bcf1c7fd693506f2b631096"},{"file":"sc3d\/mortis_ulti.scw","sha":"ad2b167c830c5d1d5e8d8b4dca820542229b3ac6"},{"file":"sc3d\/mortis_v2_tex.ktx","sha":"529d105660b9acac363e853ae404f66ff82a147e"},{"file":"sc3d\/mortis_v2_tex.pvr","sha":"898c5380541956635a8f310bde4e19d5602299a6"},{"file":"sc3d\/mortis_walk.scw","sha":"ca9719ce096f73d30d5d4b4eff848f92cfe7f2f7"},{"file":"sc3d\/mortis_win.scw","sha":"df014d2abb085f0477e2d142bf1547b04f7e57c2"},{"file":"sc3d\/mortuary_fence.scw","sha":"64ead70c9e619720320043c9095b5a598fa5cedc"},{"file":"sc3d\/mortuary_tree_stump.scw","sha":"054ab0ced2ace8b3d24cb6d4513fb883fa4b5b5f"},{"file":"sc3d\/mrp_agentp_geo.scw","sha":"94c852899b129308d7ffd396b721f1688c10637d"},{"file":"sc3d\/mrp_agentp_spawner_tex.ktx","sha":"48a2e5616d609162f18f9af86e564dd62ec1f0e5"},{"file":"sc3d\/mrp_agentp_spawner_tex.pvr","sha":"e04dcdef97f550833e00a367e2fc57e14ec5681d"},{"file":"sc3d\/mrp_agentp_tex.ktx","sha":"5fd00447bf2e913dbba90a45692dafd198837429"},{"file":"sc3d\/mrp_agentp_tex.pvr","sha":"297f245b8113e391145e0c0873e22bc869994e51"},{"file":"sc3d\/mrp_agentp_win.scw","sha":"b0fd80fa12cd98271450a373ec640856e0263d22"},{"file":"sc3d\/mrp_attack.scw","sha":"6e23c1b06cab9317fa7d73ed05dfc479b17c5899"},{"file":"sc3d\/mrp_def_atk1.scw","sha":"17adf9b6c667ef92602b4a1ea85c7869fd2c2ab0"},{"file":"sc3d\/mrp_def_atk1_red.scw","sha":"d0dfa994721d641f5f7086835d4df6febefece33"},{"file":"sc3d\/mrp_def_atk1_texture.ktx","sha":"58b517b546fa7925882ea238338b8dad743362e5"},{"file":"sc3d\/mrp_def_atk1_texture.pvr","sha":"95822de5f6fa250085c7b5d413f5d6fbe90158db"},{"file":"sc3d\/mrp_def_atk1_texture_red.ktx","sha":"456631a9977ec6bde9d38f93c67eb6d98048dda3"},{"file":"sc3d\/mrp_def_atk1_texture_red.pvr","sha":"25c7c8b4e0e6538877f75ec1c35a601447c964c9"},{"file":"sc3d\/mrp_def_atk2.scw","sha":"670e64092257388620c0637314995eec11e9f178"},{"file":"sc3d\/mrp_def_atk2_red.scw","sha":"e466b7fb6309b3a1726e05ce7082dec6d2d9cb7d"},{"file":"sc3d\/mrp_def_atk2_texture.ktx","sha":"d27c1449f563427e782350e43154b1887da4ef1f"},{"file":"sc3d\/mrp_def_atk2_texture.pvr","sha":"87ffe922be4fbc9b08731c758cc72d3fe8fb6619"},{"file":"sc3d\/mrp_def_atk2_texture_red.ktx","sha":"b9e1e34027e7c20ae3c519ea50d11fbdb7ce779b"},{"file":"sc3d\/mrp_def_atk2_texture_red.pvr","sha":"13a633a60a73443ddd2ade838df0851fe8995cd0"},{"file":"sc3d\/mrp_geo.scw","sha":"1ded8b030ead61740988bce0f883034cc55e5a92"},{"file":"sc3d\/mrp_idle.scw","sha":"ae4690a7eed4b65f458e1c44123a9eb3e7866845"},{"file":"sc3d\/mrp_lose.scw","sha":"e32e4318c4f2cb09e114cee4588244bda380a55d"},{"file":"sc3d\/mrp_pet_geo.scw","sha":"e5e1d86f4b786c4f896f7fef5df40cbe21509be6"},{"file":"sc3d\/mrp_pet_idle.scw","sha":"46a7968902b7e4e3079eeb9ab96e3af904342430"},{"file":"sc3d\/mrp_pet_walk.scw","sha":"d574e988a8de2e63b4c0720b86d44184e3bd3358"},{"file":"sc3d\/mrp_portrait.scw","sha":"e6c2a4138272d6636d0ebaeb857f444babb6e9e4"},{"file":"sc3d\/mrp_spawner_idle.scw","sha":"67a2c066fa79cdc817accc1ab11391a9a6d01b39"},{"file":"sc3d\/mrp_spawner_spawn.scw","sha":"861bd6a806445779e323469e665802c817484d3d"},{"file":"sc3d\/mrp_spawner_tex.ktx","sha":"a49948c7209442c6f77eb52ddfb4999510b5b31b"},{"file":"sc3d\/mrp_spawner_tex.pvr","sha":"b86cf5ddb571a41e27d0d3eb0e8ac93d81c16d55"},{"file":"sc3d\/mrp_tex.ktx","sha":"164e552bcce00fce88d2db22e4d703bacebeda77"},{"file":"sc3d\/mrp_tex.pvr","sha":"ba1ac86ef0de812318294aff006b9eb0aacbcd89"},{"file":"sc3d\/mrp_walk.scw","sha":"5c309882f0299dd1efc824c3d679e48c0d1446e0"},{"file":"sc3d\/mrp_win.scw","sha":"a082016ddfe8473c8779078b028af1fe3c6814f3"},{"file":"sc3d\/multi_bumper_car.scw","sha":"1c2d151b7223e58acbd1b7c5d5c0f96ca8a40919"},{"file":"sc3d\/mushroom_1.ktx","sha":"32d64619292affcb2851a742d00cc15272860202"},{"file":"sc3d\/mushroom_1.pvr","sha":"9705487bd9380b82d6f7a7b04904f07d12b91b38"},{"file":"sc3d\/mushroom_1.scw","sha":"ebed46067731285bfffb58710c19ae9cc1c04821"},{"file":"sc3d\/mushroom_1_small.scw","sha":"2c079f4cb89645d548e62e8755001ab99eae77c0"},{"file":"sc3d\/ninja_ability_tex.ktx","sha":"49761b0461f87462d0a29e1acf04b67f32253dc9"},{"file":"sc3d\/ninja_ability_tex.pvr","sha":"f9ce899a2eb9fcac1e1c28a1d21f1b8fc457b637"},{"file":"sc3d\/ninja_attack1.scw","sha":"b58753fe44011f23b8690d356a4201c142e6b26b"},{"file":"sc3d\/ninja_geo.scw","sha":"07a678b7c549d746bdefe41cf5bb7aa52a613035"},{"file":"sc3d\/ninja_idle.scw","sha":"5547a3dd2081a71eb05d7f2789d7b05623a411c7"},{"file":"sc3d\/ninja_lose1.scw","sha":"84859c50cd98ab23af67fdfd9d64c1fb3c223075"},{"file":"sc3d\/ninja_red_tex.ktx","sha":"c59c83cef2d4ba69293570ec542997855c9defe8"},{"file":"sc3d\/ninja_red_tex.pvr","sha":"e1159f7c69f6868b016b7de24ab5319b2aef444b"},{"file":"sc3d\/ninja_tex.ktx","sha":"94f58acd753d76ed1d50b47b6cd0d18c5f6431d5"},{"file":"sc3d\/ninja_tex.pvr","sha":"652b2028d98f3f2cfef426f6563c6bf332c81d91"},{"file":"sc3d\/ninja_ulti1.scw","sha":"5e229d95ccc8eee285c2ad03a475f3bcf0117e27"},{"file":"sc3d\/ninja_walk.scw","sha":"7be6502beacf97dbcbd97232147a79887fcf4f52"},{"file":"sc3d\/ninja_win1.scw","sha":"4b99bba384a46698f9ec337da9ddeef7d0dbb074"},{"file":"sc3d\/nita_attack.scw","sha":"eaa31aabbb5ea134d9171ccb5048c170677c64c7"},{"file":"sc3d\/nita_base_cam.scw","sha":"950c24ab7d65f8673bf9df5d5e58abae4fb48177"},{"file":"sc3d\/nita_bear_attack.scw","sha":"0256ca43e21b05b7c88e27d7a83f2ad1e401cac1"},{"file":"sc3d\/nita_bear_geo.scw","sha":"8bc72b7f561467764809655a652c1a6194080010"},{"file":"sc3d\/nita_bear_idle.scw","sha":"ea7432318ed8b1dbb94ce0a36b494e9f81c1f5eb"},{"file":"sc3d\/nita_bear_panda_tex.ktx","sha":"a7b46df904cd9e844fead8ee66afcd24d36f5907"},{"file":"sc3d\/nita_bear_panda_tex.pvr","sha":"f210d926dcccd4718593ce9f65d43c7de9d364ec"},{"file":"sc3d\/nita_bear_reindeer_tex.ktx","sha":"57b08118d36e948a69f7f925ac3fb67f57d8b9e6"},{"file":"sc3d\/nita_bear_reindeer_tex.pvr","sha":"62803466366326648852e696e08e69421329f904"},{"file":"sc3d\/nita_bear_shiba_tex.ktx","sha":"7d304948794b6d5775641ed7931a1826c8ee0ff9"},{"file":"sc3d\/nita_bear_shiba_tex.pvr","sha":"65f061152cff6fed0634583843a0910656b2703e"},{"file":"sc3d\/nita_bear_tex.ktx","sha":"ca03e07fb44cc10d3d9c7cabacf962411b3c7c1f"},{"file":"sc3d\/nita_bear_tex.pvr","sha":"7b77f0adf31a38d0e8b7002e742d7fa05d5faf00"},{"file":"sc3d\/nita_bear_walk.scw","sha":"8ec7dd4aa185fcde8cbdfeddb7a20b717fbfaac9"},{"file":"sc3d\/nita_bear_win.scw","sha":"43bc98797264cac3510738786d4c63fdb696c872"},{"file":"sc3d\/nita_geo.scw","sha":"d5c3fe5fb8bc8d9f0c9308bb1c87775c0aed9eb9"},{"file":"sc3d\/nita_idle.scw","sha":"31e341083f2089d853b680a58d8bfc23b534ed05"},{"file":"sc3d\/nita_koala_bear_tex.ktx","sha":"ce601ecdb776388dee32eb100fde09fc025f315b"},{"file":"sc3d\/nita_koala_bear_tex.pvr","sha":"acf58e12a14789e3d35ac614626fc9a109895ad6"},{"file":"sc3d\/nita_koala_geo.scw","sha":"15e6ea33a51eced43320df24dd69607256aab8ba"},{"file":"sc3d\/nita_koala_tex.ktx","sha":"e0f4496577be3cdd04553dbe41463d5672ea06a5"},{"file":"sc3d\/nita_koala_tex.pvr","sha":"86b2e894aacb277be87127607f82bfd6199ff10b"},{"file":"sc3d\/nita_lose.scw","sha":"a4aec5607c2df4814d8a65eb395be61a6843d80b"},{"file":"sc3d\/nita_panda_tex.ktx","sha":"4e93edec31d7099c6ea614e768508202d9b455ea"},{"file":"sc3d\/nita_panda_tex.pvr","sha":"9c6f486a325e5aec87392483072fdcce61e17604"},{"file":"sc3d\/nita_pushback.scw","sha":"ec9a18aca46adbfa0bd15b7e54c3e41254b34549"},{"file":"sc3d\/nita_reindeer_geo.scw","sha":"d30eee4295f32aacf1cc732af94d8551b16d382e"},{"file":"sc3d\/nita_reindeer_tex.ktx","sha":"05e8ff4f08cc12afc6daf47bc4b043f919f81ef0"},{"file":"sc3d\/nita_reindeer_tex.pvr","sha":"416b7c86e78ffd785626bf632dcb62f1dd6e77cd"},{"file":"sc3d\/nita_shiba_geo.scw","sha":"e5bc4a66ea24bcf62d62a9e47128035c10573370"},{"file":"sc3d\/nita_shiba_idle.scw","sha":"a1b06ba096b3ee9c4a734718d17f0a5827480555"},{"file":"sc3d\/nita_shiba_tex.ktx","sha":"d8a66342d8bdd8e9c33bde86e55f859c50ace7c6"},{"file":"sc3d\/nita_shiba_tex.pvr","sha":"3f8ce1b814d4bffb7e969baae20d2c3ebabf37dc"},{"file":"sc3d\/nita_shiba_walk.scw","sha":"0f4a9a9780fb139ca961e6db44c54a505473a6a3"},{"file":"sc3d\/nita_shiba_win.scw","sha":"c5d49ddad0af96a984a68baaf8f6f6a3bd59abc0"},{"file":"sc3d\/nita_tex.ktx","sha":"6d480fc270c9285682290856821ef16c03dea72b"},{"file":"sc3d\/nita_tex.pvr","sha":"e4c49b1d0ae59f4818ca896d5d89846673152de4"},{"file":"sc3d\/nita_walk.scw","sha":"d5289877c1729bc452179acc4670918b4cef3c81"},{"file":"sc3d\/nita_win.scw","sha":"d47eb798aad626ae517fa2e8d07ebe6e7ff74652"},{"file":"sc3d\/pam_base_cam.scw","sha":"3249c15ca88a1ec9156a690cc4510bc4652ec0cc"},{"file":"sc3d\/pam_tex.ktx","sha":"e74b1d3814d44e8599e958cfb6b70e1f67d37bff"},{"file":"sc3d\/pam_tex.pvr","sha":"fc78e930f69ef927b128de00af52a14b86201bff"},{"file":"sc3d\/park_bench_1.scw","sha":"2b5e837f4af978ab5f754b2db11fbc1bd6c37e2c"},{"file":"sc3d\/penny_base_cam.scw","sha":"f7248f7a32f6519d06cc690d8eb8ca902fa4b351"},{"file":"sc3d\/penny_bunny_geo.scw","sha":"1a2cc6416792a5c0a173db48aadc5475ea3dbc44"},{"file":"sc3d\/penny_bunny_tex.ktx","sha":"27c8af3211d303df05a33cb18514d7cac23a091f"},{"file":"sc3d\/penny_bunny_tex.pvr","sha":"790473ef284c7949012e6559d4b5b3fdbaa063d4"},{"file":"sc3d\/penny_bunny_walk.scw","sha":"54ae430aabfe9271eb97d06549dd7dd064acfce2"},{"file":"sc3d\/penny_bunny_win.scw","sha":"bf85ad5db314d7e5580190d561360595d863a05c"},{"file":"sc3d\/penny_bunnydark_tex.ktx","sha":"463d13f61ff04e377334d3238b218c4d26b549a6"},{"file":"sc3d\/penny_bunnydark_tex.pvr","sha":"17cdebaf009fb665343b59237d3f7271fec3110d"},{"file":"sc3d\/penny_darkbunny_geo.scw","sha":"6dedce6fa8b8f298ff47bc8ec6be5a20b891564b"},{"file":"sc3d\/penny_elf_geo.scw","sha":"7b5b35b1d1212338def1b1900909e9f2c2a343ad"},{"file":"sc3d\/penny_elf_tex.ktx","sha":"0d7d932ac100f738145cd5e6b51cd3caff9833e2"},{"file":"sc3d\/penny_elf_tex.pvr","sha":"25f5e2ec4bb13e448705a62d56d88ba93a30ef72"},{"file":"sc3d\/penny_elf_turret_geo.scw","sha":"1ac3a16d9b8e6ff2957d8bfc32592f6f040da415"},{"file":"sc3d\/pinball_bumper.scw","sha":"4694684c22ded11fe73588dfd1e2a908f6a38d92"},{"file":"sc3d\/piper_attack.scw","sha":"605ff135171fdbae075b87c91c82aab087a88286"},{"file":"sc3d\/piper_base_cam.scw","sha":"2d7ccbe2735feb203d7d29469f10b3f9a6637690"},{"file":"sc3d\/piper_gadget_pistol_attack.scw","sha":"3d5d2be08504aad838db16bb12d546a0ed2924aa"},{"file":"sc3d\/piper_gadget_pistol_geo.scw","sha":"9fd8e39ce40f1db90d8f9a94b4f564d63282a1d3"},{"file":"sc3d\/piper_geo.scw","sha":"7a815e4aabb65210f8876591dbd48a117e3a4ea8"},{"file":"sc3d\/piper_idle.scw","sha":"72be1d8292d5cfae22a168fa8cebd8cca473fc02"},{"file":"sc3d\/piper_lose.scw","sha":"5c9987fd467dac64abb62842b1574ec3b3c168a4"},{"file":"sc3d\/piper_pink_tex.ktx","sha":"6a6d89e6555e2ac2637e48f468ec69498d927fef"},{"file":"sc3d\/piper_pink_tex.pvr","sha":"eb9226e438994fc7198468bf9b5a8085002575aa"},{"file":"sc3d\/piper_portrait.scw","sha":"92b768e71b0bbe55041625f40fd0b7049e1aa1a4"},{"file":"sc3d\/piper_pushback.scw","sha":"793c3ea9b9a02142745dfdc100f57c40f8fb800f"},{"file":"sc3d\/piper_rose.scw","sha":"fb380e62f86d4ea4ba5f86336d71018fddddfeb6"},{"file":"sc3d\/piper_rose_geo.scw","sha":"9687e6ab193bc74c9bc8a3456460d2f28ca88378"},{"file":"sc3d\/piper_rose_tex.ktx","sha":"125c7e9cad529b8c415f6da29599ad7c6b914262"},{"file":"sc3d\/piper_rose_tex.pvr","sha":"9c56f324220f0b5d31c6156dc0f53d47de373ce8"},{"file":"sc3d\/piper_super.scw","sha":"3cea736ddf76e25d3dd8f0fa16d01d47d93e4033"},{"file":"sc3d\/piper_tex.ktx","sha":"82c7bb7acd45c4871ea4516c52e1770e4933920a"},{"file":"sc3d\/piper_tex.pvr","sha":"f132853d76fc7cca11c29cf61bad1a4c9316d0b4"},{"file":"sc3d\/piper_valentines_attack.scw","sha":"68b66b22298adfad4e0b792a218d7b2e774dc930"},{"file":"sc3d\/piper_valentines_cam.scw","sha":"2e5cd5225dcabcc9b42eb42be96db3742917ae29"},{"file":"sc3d\/piper_valentines_geo.scw","sha":"527a57a3d83f5da445192282a17fb2c24e64ad49"},{"file":"sc3d\/piper_valentines_idle.scw","sha":"3de41abe6f0dfa381c65b672d5482b2ff4294ab4"},{"file":"sc3d\/piper_valentines_lose.scw","sha":"35c577cd53174892be68762eccb4db982a843084"},{"file":"sc3d\/piper_valentines_reload.scw","sha":"68b66b22298adfad4e0b792a218d7b2e774dc930"},{"file":"sc3d\/piper_valentines_run.scw","sha":"23f3b460f4e279d49bdd808aa7dbca69b4c93f99"},{"file":"sc3d\/piper_valentines_tex.ktx","sha":"81367b532e8bef21e354fd33ef55be21a4b48ff5"},{"file":"sc3d\/piper_valentines_tex.pvr","sha":"712856c62aa6f7172903e8355d26529857c87961"},{"file":"sc3d\/piper_valentines_win.scw","sha":"07d3572b541066b303d0ba73d5cc1fd205d17be2"},{"file":"sc3d\/piper_walk.scw","sha":"da732d7dbc29e30289e7c6e4b6e88c206fb634b3"},{"file":"sc3d\/piper_win.scw","sha":"609580157cf6c659b523f6bd8b7bfebc19e96c6a"},{"file":"sc3d\/pirate_chest.scw","sha":"b754d21c16116e5be9f10b560af8c1d5ba73a2af"},{"file":"sc3d\/plant_1.ktx","sha":"885acf33e6ca81329f532d3c3dedade6b477221f"},{"file":"sc3d\/plant_1.pvr","sha":"fab446391b0fc6aa3b7c80498a5d0a826752eeef"},{"file":"sc3d\/plant_1_small.scw","sha":"fb7fcd2afae884f6174cbb21ee429edc505a8d5f"},{"file":"sc3d\/plant_retropolis_small.scw","sha":"7ccc506653a0f48ae401986ee5b436fea977e6ad"},{"file":"sc3d\/poco_attack.scw","sha":"5b236d612f1045fc387442107d7a71a4c8aabd08"},{"file":"sc3d\/poco_base_cam.scw","sha":"cf09fd58debd758cad6c28204477e27909bcbc58"},{"file":"sc3d\/poco_geo.scw","sha":"aee7b7e8d003b385faf3cca6535db210df8df9ec"},{"file":"sc3d\/poco_idle.scw","sha":"5612468f1206a16cc0bd0b5404ed60b41e4a1ec8"},{"file":"sc3d\/poco_lose.scw","sha":"d10e8a5b19d2e33345d0a201ee0c2a2013321a62"},{"file":"sc3d\/poco_pirate_geo.scw","sha":"9709edb469ae667246952280079e8ddad3afe7a5"},{"file":"sc3d\/poco_pirate_idle.scw","sha":"cbbdac481247920bb1c6239677a6f819b003b537"},{"file":"sc3d\/poco_pirate_lose.scw","sha":"a3dfa235dd8b3eb0ac0224f00d552b11914d6d5c"},{"file":"sc3d\/poco_pirate_tex.ktx","sha":"33d4e342e85edec4fe2bb9f386e4b2c3108c1983"},{"file":"sc3d\/poco_pirate_tex.pvr","sha":"97fd3a98353d1ea59536c501a90c9cc0032cde4b"},{"file":"sc3d\/poco_pirate_walk.scw","sha":"f73c8f9273a82b376520ccb6d93f8d2d8394916c"},{"file":"sc3d\/poco_pirate_win.scw","sha":"205115c78fc8b6bcb06307c2551c3f9ee713151d"},{"file":"sc3d\/poco_tex.ktx","sha":"e60039a6532060df1d18a8e4db4ceed5427bb90c"},{"file":"sc3d\/poco_tex.pvr","sha":"5690e86a1d0ea278fa727da8df3310d9589a352f"},{"file":"sc3d\/poco_valentine_geo.scw","sha":"426cc1ace15447cac29f4b6ed17acc8d2443ced6"},{"file":"sc3d\/poco_valentine_tex.ktx","sha":"27ec63f393b543dedc08936aa7210e824fd01cdc"},{"file":"sc3d\/poco_valentine_tex.pvr","sha":"36ff34074f2f1db85bf56213bdee7a26fec82261"},{"file":"sc3d\/poco_walk.scw","sha":"fc4215a26a5faaf2188626f30e7d32cf1b15a45e"},{"file":"sc3d\/poco_win.scw","sha":"2c9fedd5693b8525111130eedfdd031f28875574"},{"file":"sc3d\/portrait_cam.scw","sha":"268abca8f84fb597c11ab2f7f1de1118bb1ccaa0"},{"file":"sc3d\/pothole.scw","sha":"3f4f4c9ba6671c9ff3737623930ad85f3b8e5b4b"},{"file":"sc3d\/potted_plant_1.ktx","sha":"8951eeac6ee23d2fbc58976f44830ae5766db8f8"},{"file":"sc3d\/potted_plant_1.pvr","sha":"f7529504cece6e09389af03e7c7903f0d02d52f2"},{"file":"sc3d\/potted_plant_1.scw","sha":"5180465ceb3588226b76039ea3dd19784baf42cd"},{"file":"sc3d\/present_pile_xmas.scw","sha":"bddf15f5427d9efdd34c4b7953d59dfc3df9d744"},{"file":"sc3d\/primo_003_atk_projectile_alpha.ktx","sha":"ed04e725ed66e1a412699b4f9d9c381fd20c0688"},{"file":"sc3d\/primo_003_atk_projectile_alpha.pvr","sha":"dd06a1282784d7824e7539876389103c474b9f0d"},{"file":"sc3d\/primo_003_atk_projectile_blue.ktx","sha":"e92bbca82ac6210ccf0a98cced7e3add47b17f45"},{"file":"sc3d\/primo_003_atk_projectile_blue.pvr","sha":"f8f501e93a062b75767dfdbb83b1935f1aaa91e6"},{"file":"sc3d\/primo_003_atk_projectile_blue.scw","sha":"ae52d484e1a8e15dfc56adc74f4d9969b43e3f49"},{"file":"sc3d\/primo_003_atk_projectile_red.ktx","sha":"21c139b8c67c30b4cbbab286a25c89d4380e37b9"},{"file":"sc3d\/primo_003_atk_projectile_red.pvr","sha":"bf8c3516278037e914012e475222212923daa2eb"},{"file":"sc3d\/primo_003_atk_projectile_red.scw","sha":"1f8f10fceb0fafb6d4321d447bcd8f0a8c6e00d9"},{"file":"sc3d\/primo_attack.scw","sha":"d1e1887523be02baddca7b72a77d07a0936516e5"},{"file":"sc3d\/primo_base_cam.scw","sha":"8858c053470ab30747255e9d674a659ffbd4b3bb"},{"file":"sc3d\/primo_brown_attack.scw","sha":"b69d9493df0c102d17bd97ef01ca33370f7d7409"},{"file":"sc3d\/primo_brown_gadget_flip_attack.scw","sha":"9c45442bb0f6737719f1c786a3de7acc19aceb3c"},{"file":"sc3d\/primo_brown_geo.scw","sha":"9e19cdd12a898f69a775e34c5a96decf58f230ca"},{"file":"sc3d\/primo_brown_idle.scw","sha":"ff94a6eab99df77c655772581cb163df81400d97"},{"file":"sc3d\/primo_brown_lose.scw","sha":"4dfc17a82856ac03a0af22e44a42c7227bbcd181"},{"file":"sc3d\/primo_brown_portrait.scw","sha":"0101e9003436de5b72cbb6ff18e08cdf3a36c2fb"},{"file":"sc3d\/primo_brown_pushback.scw","sha":"1f8d38ba4001a2392c69922e00b6e110e8562776"},{"file":"sc3d\/primo_brown_super.scw","sha":"cc692daadc45be967d78890ab1d7bf3478d8392a"},{"file":"sc3d\/primo_brown_tex.ktx","sha":"a6245ad186297d6ac9bae49f2b6a16258cff2f78"},{"file":"sc3d\/primo_brown_tex.pvr","sha":"a57010e8a8040d93720407cd6d31aff4eafb574f"},{"file":"sc3d\/primo_brown_walk.scw","sha":"e39e05186a883fdb2dac8cb509ed5f0497fc24cb"},{"file":"sc3d\/primo_brown_win.scw","sha":"c0a63969d7334366fc4d807c37f4e4a6213d1078"},{"file":"sc3d\/primo_def_atk_projectile_alpha.ktx","sha":"834a83a8b21f60778a85a44fe7a2a20f429a7a0a"},{"file":"sc3d\/primo_def_atk_projectile_alpha.pvr","sha":"0ca01792eb813bf3d1c4705a05790aa9d78998c3"},{"file":"sc3d\/primo_def_atk_projectile_blue.ktx","sha":"a7890e62fff88830de5232e84739b5b7aa13ec92"},{"file":"sc3d\/primo_def_atk_projectile_blue.pvr","sha":"b9be5561ecbc557bbdcc0ae18a21a1f8b3d5b253"},{"file":"sc3d\/primo_def_atk_projectile_blue.scw","sha":"2f1df967ae7e4293156dbc00f5d4c20cf77d87ba"},{"file":"sc3d\/primo_def_atk_projectile_red.ktx","sha":"b46b9f896e3e5b69b87a9960026e44dabe66bb5d"},{"file":"sc3d\/primo_def_atk_projectile_red.pvr","sha":"23c3d17419e3920c4bd5bbe51bcca4cdd7c97ad7"},{"file":"sc3d\/primo_def_atk_projectile_red.scw","sha":"e1e760b688458ab4ad307bb1c66274f8b7d7d242"},{"file":"sc3d\/primo_elrey_geo.scw","sha":"d8c320581d23dbf5d696f2974251259657c3e987"},{"file":"sc3d\/primo_elrey_tex.ktx","sha":"3a5b4131245e90547680ca44cfbb7e6926384036"},{"file":"sc3d\/primo_elrey_tex.pvr","sha":"1977bd0907a82ba10dc6c74404a964cf6f638d09"},{"file":"sc3d\/primo_elrudo_geo.scw","sha":"ed82096387268f7592610c4e7043d4b2762fdbd8"},{"file":"sc3d\/primo_elrudo_portrait.scw","sha":"ce51ea9f5665fc43021a361c39c2c2d5b0e081c4"},{"file":"sc3d\/primo_elrudo_tex.ktx","sha":"297105cafe04c1f28fc0ba96bd35d9322fdf0628"},{"file":"sc3d\/primo_elrudo_tex.pvr","sha":"dcedc2b78e1c776f48472ecce18cb71cdc8b75b4"},{"file":"sc3d\/primo_elrudo_win.scw","sha":"541e728142396d29e044ce409ffff2199d4a4cb1"},{"file":"sc3d\/primo_gadget_flip_attack.scw","sha":"18284851360e4ca347b19f2492a50cc284b34a7d"},{"file":"sc3d\/primo_geo.scw","sha":"c04ee42e6cf1f027fdb3387e6eef47fa89fceafe"},{"file":"sc3d\/primo_idle.scw","sha":"09a8f55cb8abbf5a3db566cab7c3b139c4c7be52"},{"file":"sc3d\/primo_lose.scw","sha":"556c06b06b7e30fc0ea457e2c2888d674b415798"},{"file":"sc3d\/primo_portrait.scw","sha":"5c615f11bc4358f87e2ac606d9c19c5f3e7574cc"},{"file":"sc3d\/primo_rey_attack.scw","sha":"d818543f30c262f25240ac1358982b475857c2df"},{"file":"sc3d\/primo_rey_idle.scw","sha":"5e967880dd2c389d0322d0fe3413103f81fdabc5"},{"file":"sc3d\/primo_rey_lose.scw","sha":"99466edcff0a6a4bb1ae06ba4a3e57991cf9177c"},{"file":"sc3d\/primo_rey_super.scw","sha":"8640f0f31ff1629bd2ae8c9b1749b151515fca0a"},{"file":"sc3d\/primo_rey_walk.scw","sha":"873046c623be1e37af9629ab6f1d3e5c0421716e"},{"file":"sc3d\/primo_rey_win.scw","sha":"7e59a8f1f4001fa8ca19a0dc56baa248683a8119"},{"file":"sc3d\/primo_super.scw","sha":"f7ad04683ac187ef0f10669551222acb0c794462"},{"file":"sc3d\/primo_tex.ktx","sha":"c6da735a15df81e8e7778e00ceabf0157009494d"},{"file":"sc3d\/primo_tex.pvr","sha":"51480db1a5e10dca97549cf502e85ed91ed082d6"},{"file":"sc3d\/primo_walk.scw","sha":"4188962cde8e88d7b24865802c8c328301c8dc32"},{"file":"sc3d\/primo_win.scw","sha":"cc8072dcdb777430b335e8f6c764b1a915c96cff"},{"file":"sc3d\/rangedbot_attack1.scw","sha":"71a32fb6eaac4f95e3457373d76729d4ab3fa865"},{"file":"sc3d\/rangedbot_geo.scw","sha":"13a56b982844fd903471a90ac4046e4a5d545131"},{"file":"sc3d\/rangedbot_idle.scw","sha":"4d175f027a6f08ff7683a99fbb6afe659b1642be"},{"file":"sc3d\/rangedbot_lose1.scw","sha":"411e1f8d289a31e52cf89a3a9f0e2fedc7c789f5"},{"file":"sc3d\/rangedbot_loseloop1.scw","sha":"34ac8ce4579609abde1da9a1c70c7d50de4b9f6e"},{"file":"sc3d\/rangedbot_recoil.scw","sha":"868563f93af4d4300d2f82d0bf1bf8e042a4fec3"},{"file":"sc3d\/rangedbot_reload.scw","sha":"24e93c5dc48e7ac29b31199ef21518beb77e99c6"},{"file":"sc3d\/rangedbot_tex.ktx","sha":"adde4060b3315906637bf3c603db4f917a311186"},{"file":"sc3d\/rangedbot_tex.pvr","sha":"193fe5ee46fe74d7812b8f1bf92ac4ee399ac660"},{"file":"sc3d\/rangedbot_walk.scw","sha":"bee7abb6651631dbe2fe526ebc77b028b32b0a96"},{"file":"sc3d\/rangedbot_win1.scw","sha":"8844d1ce582227f8ddc59c0d805da38e17056094"},{"file":"sc3d\/rangedbot_winloop1.scw","sha":"a416f4deafb5f45e1ab063370663402153481604"},{"file":"sc3d\/recoil.scw","sha":"b634dc0ec7b834a3c955ca9917d3d1ad5d8ee14e"},{"file":"sc3d\/recoil_2.scw","sha":"bed60e0789b66742e739f2afd3311311d2b05d07"},{"file":"sc3d\/retropolis_fence.scw","sha":"528623c721e13383a299b72ec21b36b04003faa5"},{"file":"sc3d\/rickoshea_attack1.scw","sha":"71a32fb6eaac4f95e3457373d76729d4ab3fa865"},{"file":"sc3d\/rickoshea_geo.scw","sha":"a0395d74ac5024cff5ed30bec4bf87d8a6da6370"},{"file":"sc3d\/rickoshea_gold_tex.ktx","sha":"e3215b2244934df7fb9b389b14295841b98ae7df"},{"file":"sc3d\/rickoshea_gold_tex.pvr","sha":"a11ed91ae5316922553c4a8f85a444969f9f4ffd"},{"file":"sc3d\/rickoshea_idle.scw","sha":"4d175f027a6f08ff7683a99fbb6afe659b1642be"},{"file":"sc3d\/rickoshea_lose1.scw","sha":"411e1f8d289a31e52cf89a3a9f0e2fedc7c789f5"},{"file":"sc3d\/rickoshea_loseloop1.scw","sha":"34ac8ce4579609abde1da9a1c70c7d50de4b9f6e"},{"file":"sc3d\/rickoshea_recoil.scw","sha":"868563f93af4d4300d2f82d0bf1bf8e042a4fec3"},{"file":"sc3d\/rickoshea_reload.scw","sha":"24e93c5dc48e7ac29b31199ef21518beb77e99c6"},{"file":"sc3d\/rickoshea_tex.ktx","sha":"b3b14751d55d57773233ac69cdd35f88ff395d80"},{"file":"sc3d\/rickoshea_tex.pvr","sha":"fd39a361382da6b2c6388f9b46931443cef18deb"},{"file":"sc3d\/rickoshea_walk.scw","sha":"bee7abb6651631dbe2fe526ebc77b028b32b0a96"},{"file":"sc3d\/rickoshea_win1.scw","sha":"8844d1ce582227f8ddc59c0d805da38e17056094"},{"file":"sc3d\/rickoshea_winloop1.scw","sha":"a416f4deafb5f45e1ab063370663402153481604"},{"file":"sc3d\/rico_attack.scw","sha":"c02f945e3779169bfaa6de59a63da546cc7644bb"},{"file":"sc3d\/rico_base_cam.scw","sha":"f08a0e40f726a70c628f9db8b770b3beafd29f7e"},{"file":"sc3d\/rico_geo.scw","sha":"68328c3b75cffc694e62e62779cce487358a6801"},{"file":"sc3d\/rico_gold_attack.scw","sha":"582804f7692e7dd26787d76079b97bebe77fa442"},{"file":"sc3d\/rico_gold_geo.scw","sha":"bfd95ed1f9f14672ced72f6646d73dcb0eadc5e3"},{"file":"sc3d\/rico_gold_idle.scw","sha":"0d7d235ae99b83cf6b217de9a89ac1b8498b1948"},{"file":"sc3d\/rico_gold_lose.scw","sha":"5037f974d8c6c91ceda354390ca622b3641116b3"},{"file":"sc3d\/rico_gold_tex.ktx","sha":"83c1a47ae89664626b5304ad20bd38ce5f830c7d"},{"file":"sc3d\/rico_gold_tex.pvr","sha":"53c094517d49d8046fd384024ba42514158c2d8e"},{"file":"sc3d\/rico_gold_walk.scw","sha":"fa2bf2897f5ed73ed33cacb7f6d1774874f89345"},{"file":"sc3d\/rico_gold_win.scw","sha":"08ae921f068de74a49c0dbcbbe9184e2d7bc70e3"},{"file":"sc3d\/rico_gold_win_test.scw","sha":"13b137717f262c0fe045eb6abe945ee41f3d1117"},{"file":"sc3d\/rico_idle.scw","sha":"96f5a67462a52670b517aabb596661fb01b03748"},{"file":"sc3d\/rico_lose.scw","sha":"a052c7313f11f4a42cf6eafe91e55598cbd198fc"},{"file":"sc3d\/rico_og_geo.scw","sha":"5f0d12631abfe070e313ce5bd0dc109afcb96567"},{"file":"sc3d\/rico_og_tex.ktx","sha":"7689d8a6a163e749eec38bde965604bb493186a1"},{"file":"sc3d\/rico_og_tex.pvr","sha":"6d64af30bc2dd68e7da367ea702f2100e3cc54cf"},{"file":"sc3d\/rico_popcorn_geo.scw","sha":"82e4b03d155328950a904bc6134b8c1f731d820f"},{"file":"sc3d\/rico_popcorn_idle.scw","sha":"e84bc970ab7b2819ce1541ff69b3aed0eb29ec2f"},{"file":"sc3d\/rico_popcorn_lose.scw","sha":"90f49fd632dd6013a16b63144a112ce4336db4f2"},{"file":"sc3d\/rico_popcorn_tex.ktx","sha":"dc716b3c9298cac1957e5970ea80a5c4421efe2f"},{"file":"sc3d\/rico_popcorn_tex.pvr","sha":"91cdc4c8d3299ff7961d0ddbc3bf5ffed8d9abb5"},{"file":"sc3d\/rico_popcorn_win.scw","sha":"606dbeab8919eb1b082e59bc18f4c146a59003b3"},{"file":"sc3d\/rico_tex.ktx","sha":"cc06b823441813b02005791ea0df0ad626fbe853"},{"file":"sc3d\/rico_tex.pvr","sha":"e82b14d56524c1226736a3e6e898d6a329614048"},{"file":"sc3d\/rico_walk.scw","sha":"e0fadb41859b22307a301c26e9cfe0b7ce22e079"},{"file":"sc3d\/rico_win.scw","sha":"f11b45f603c021e1ab092a47a4c1b19311c0f022"},{"file":"sc3d\/rock1.scw","sha":"ecb5855c1d50b48789832eb1524d54fac5adceaa"},{"file":"sc3d\/rock2.scw","sha":"e721d5e500407e984124aab966af0c84be281e32"},{"file":"sc3d\/rock_1.ktx","sha":"310c42d1f503df709ef644526ad59d72f0298748"},{"file":"sc3d\/rock_1.pvr","sha":"9f8ad83768d35eda5fe0fbe49ea0445702d38a9f"},{"file":"sc3d\/rock_2.ktx","sha":"60ed45444086c58e5c387dde4c8c011b2090b5d4"},{"file":"sc3d\/rock_2.pvr","sha":"cd70558e6a6f724f39f4ac0aaf43fc2dced54a51"},{"file":"sc3d\/rock_mortuary_1.scw","sha":"e37c3caad9716e33ade5f8daf2abc52cceb716a4"},{"file":"sc3d\/rock_retropolis_1.scw","sha":"50efe4227c055932b9ee4da4745fa1779834ca75"},{"file":"sc3d\/rock_town_1.scw","sha":"1c80ed49f6d340864d5c09bb050f4c453f0f4bef"},{"file":"sc3d\/rosa_attack.scw","sha":"f9e57446a9d2ee578614839acd4b91915564d485"},{"file":"sc3d\/rosa_attack_transform.scw","sha":"5344dc66facb7d06b17e7b7d941b96b2df6c347b"},{"file":"sc3d\/rosa_base_cam.scw","sha":"966a3b084d149b6f814919d8a3fb6389b77de4b5"},{"file":"sc3d\/rosa_def_atk_projectile_alpha.ktx","sha":"e83628256c30247e27222f95642db24fba09b941"},{"file":"sc3d\/rosa_def_atk_projectile_alpha.pvr","sha":"0996d06c72599f59a8196c8e6070009523d6da9a"},{"file":"sc3d\/rosa_def_atk_projectile_blue.ktx","sha":"c296d1e52b72bc23bc1cd3e3363ccc7957075bb4"},{"file":"sc3d\/rosa_def_atk_projectile_blue.pvr","sha":"b9f8757e00aa8a15727e62ea69bf9029bd6f42d5"},{"file":"sc3d\/rosa_def_atk_projectile_blue.scw","sha":"59ffc0f5d685890981f2ff3250068c72ed636ccc"},{"file":"sc3d\/rosa_def_atk_projectile_red.ktx","sha":"ca6941214429ff7fae347746480c5dc37f8c39db"},{"file":"sc3d\/rosa_def_atk_projectile_red.pvr","sha":"3c75d2e6a7e0dbde5e134b96f30e05b7ddd40dfe"},{"file":"sc3d\/rosa_def_atk_projectile_red.scw","sha":"ba3290b5209e2008e1bf3c232cc255f6160feae5"},{"file":"sc3d\/rosa_detransform.scw","sha":"1f83a90b4485175e0111bd31a525bd0ea9c1f3e0"},{"file":"sc3d\/rosa_geo.scw","sha":"519f798eb860ad48d87be8cd7a3d339b0322d9e9"},{"file":"sc3d\/rosa_idle.scw","sha":"8f2cc369068b5e8d4b6609b5eeafe277ac5b5692"},{"file":"sc3d\/rosa_idle_transform.scw","sha":"cb8eb1338a9c5fcbcd8cff6581de37b67682b353"},{"file":"sc3d\/rosa_lose.scw","sha":"ebca656a78fe9bc68380b503dde11e7ad2396368"},{"file":"sc3d\/rosa_tex.ktx","sha":"a521cf8e5716d96a4054933ba9ef13f75e2d75c2"},{"file":"sc3d\/rosa_tex.pvr","sha":"6f373020474a97767d2f7e5d681d26894a47173c"},{"file":"sc3d\/rosa_transform_tex.ktx","sha":"de19e5bda63b1a3a3b61d303f3485c9a56c64e72"},{"file":"sc3d\/rosa_transform_tex.pvr","sha":"cc592c8b0f3ab6b1fbd27ed7a0029f10412d5246"},{"file":"sc3d\/rosa_ult.scw","sha":"5cd6e947ebd3ad88e1259514ed2bd397614ff7c1"},{"file":"sc3d\/rosa_walk.scw","sha":"cd426b5e9337e80b048cf1a15507310819afb3e4"},{"file":"sc3d\/rosa_walk_transform.scw","sha":"70ec75890c241c70f465f6ce07dcdc241128b486"},{"file":"sc3d\/rosa_win.scw","sha":"ab323118a3cdb053f0b3f709842a78567e95073e"},{"file":"sc3d\/sandy_attack.scw","sha":"fa7257dadc208a02de839410b4d1a09ccd6c7c15"},{"file":"sc3d\/sandy_base_cam.scw","sha":"932c00352a69442be7e672bf5601a2bca69decd9"},{"file":"sc3d\/sandy_def_ulti.ktx","sha":"70561236164db5b9b7894ca2e202b4b4c6fd25b4"},{"file":"sc3d\/sandy_def_ulti.pvr","sha":"b63b4903a968f43197ebc8e85561bdad2d5129ab"},{"file":"sc3d\/sandy_def_ulti.scw","sha":"9043e8ba368463ab61351b2f56258fb744d284df"},{"file":"sc3d\/sandy_geo.scw","sha":"bbd5438fd7af932259d0b199926cd23c7051ecf5"},{"file":"sc3d\/sandy_idle.scw","sha":"ad0823b26d880995b7fdca51b70e3bffa3c4fa20"},{"file":"sc3d\/sandy_pushback.scw","sha":"6486e024951257f6bffba15884e65bc186880770"},{"file":"sc3d\/sandy_tex.ktx","sha":"b6b23446fde77fb9e1815eab19eb2695490e86ba"},{"file":"sc3d\/sandy_tex.pvr","sha":"fa7a0ac6128d24a7e558ec621ed2ceb62310a91c"},{"file":"sc3d\/sandy_walk.scw","sha":"68d905ad8b1fd53d7ac393595a58fc5f84c12956"},{"file":"sc3d\/sandy_win.scw","sha":"6a9e80aa22e615c6a699ab8651293d2051a1ed36"},{"file":"sc3d\/seaweed_small.scw","sha":"a1b535566106800c5ba0639f9ce7793314bec26a"},{"file":"sc3d\/shark_leon_geo.scw","sha":"2d47e978d2dc4dba5338e6f4a24007ada2960f48"},{"file":"sc3d\/shark_leon_tex.ktx","sha":"28ac3d30429413d0af9f95d0d875ccfcd96b9ed6"},{"file":"sc3d\/shark_leon_tex.pvr","sha":"88515b4b1e3b7a0792deff19787bc26b54012f07"},{"file":"sc3d\/shelly_attack.scw","sha":"8e43c75a5be0d49f381ae67cc7b7fa61b1101057"},{"file":"sc3d\/shelly_attack1.scw","sha":"0621a813e20d6ee4047e4a542caf6e179d929805"},{"file":"sc3d\/shelly_bandita_attack.scw","sha":"b243a9bfb276c252ebf6ffd267a0a573880ae9eb"},{"file":"sc3d\/shelly_bandita_geo.scw","sha":"d37403d96ddd422139f1b22d873b535b3590d860"},{"file":"sc3d\/shelly_bandita_idle.scw","sha":"96f6a6b76e2d9dc23f2c399b26a01ac59897574f"},{"file":"sc3d\/shelly_bandita_lose.scw","sha":"d3465c8af2764065a81063fd3a69f272b652b4a1"},{"file":"sc3d\/shelly_bandita_reload.scw","sha":"0c8216c908a848927af82a9ad883b119106aa1f2"},{"file":"sc3d\/shelly_bandita_tex.ktx","sha":"7ede296d2fc926b4a065b4aecb52c61af665f36f"},{"file":"sc3d\/shelly_bandita_tex.pvr","sha":"adf059965110fba7668d9ce908fedf5d8f47ca84"},{"file":"sc3d\/shelly_bandita_walk.scw","sha":"8bda578c41839f3fe2a7c149bf16518e0b2aaa3d"},{"file":"sc3d\/shelly_bandita_win.scw","sha":"f400d2c68ae892e9bf160f75bdca9b47c74cc2ee"},{"file":"sc3d\/shelly_bandito_d_01.ktx","sha":"ec51af85f0a99a7f1e5f0120df0944d05a48389a"},{"file":"sc3d\/shelly_bandito_d_01.pvr","sha":"70e93b46ea1f3ac9ffd68ceb64df357803fd1faa"},{"file":"sc3d\/shelly_base_cam.scw","sha":"0757c59d0a04349a05f4a0f4d1743e027cc2aa34"},{"file":"sc3d\/shelly_fb_geo.scw","sha":"6410986fcc100b9dc9ca2ea4e631a5438c3441ef"},{"file":"sc3d\/shelly_fb_tex.ktx","sha":"84aff5bc110da60f8e6f94b2f4d27b4ba7925a17"},{"file":"sc3d\/shelly_fb_tex.pvr","sha":"ad74b746155c25eb2bf857252e09e2a423d0d13f"},{"file":"sc3d\/shelly_geo.scw","sha":"e39ce4c36d7fc7aad9c89276040dc1c665d95043"},{"file":"sc3d\/shelly_idle.scw","sha":"4755e4761b9490ecfef02d2d6dcd809f65c26248"},{"file":"sc3d\/shelly_lose.scw","sha":"748d1421fdeec671919b1de704b38a036677a1fe"},{"file":"sc3d\/shelly_lose1.scw","sha":"a5f03867994cd419d2b53f6f02cb1da2d8023446"},{"file":"sc3d\/shelly_loseloop1.scw","sha":"08900367f1c97ab932825cc6692ee5d0fda084bd"},{"file":"sc3d\/shelly_prereg_01.ktx","sha":"2acfa1bc9c3691209060b05125410fb4bade1bd8"},{"file":"sc3d\/shelly_prereg_01.pvr","sha":"ba3d48e5adc74d013e747ccf4282e7d92233ee45"},{"file":"sc3d\/shelly_prereg_attack.scw","sha":"43ef489ff938d81a5eed6b60464bccdc69751343"},{"file":"sc3d\/shelly_prereg_geo.scw","sha":"ff563490f928a5bcc49f13acce34d53d3527602c"},{"file":"sc3d\/shelly_prereg_idle.scw","sha":"f345c9f086154301f7685d427d85c31e16e4c66c"},{"file":"sc3d\/shelly_prereg_lose.scw","sha":"471cff016f38043dcf949a7da7685480c238e57d"},{"file":"sc3d\/shelly_prereg_pushback.scw","sha":"61cccddf89e8afdc5aa2ee7a9f9bd214b79cefa7"},{"file":"sc3d\/shelly_prereg_reload.scw","sha":"ef0b6b2a93ca154e9a25a73fd850c068540a867d"},{"file":"sc3d\/shelly_prereg_walk.scw","sha":"b4b26db7b10599a1df3276d55765f87e9f753d59"},{"file":"sc3d\/shelly_prereg_win.scw","sha":"0adfbf3d2ffd5fbc73046101551abb6627fca9ad"},{"file":"sc3d\/shelly_pushback.scw","sha":"de47952f0d45745d2781114f8362b29fba5ce490"},{"file":"sc3d\/shelly_recoil1.scw","sha":"b850005ad7299dea70911413ca5398e8b8c3c540"},{"file":"sc3d\/shelly_reload.scw","sha":"f35eb6a6c2610951eaad7f13572ffcdd49648e35"},{"file":"sc3d\/shelly_tex.ktx","sha":"6ea44f5d2a68ba7bafaa61f960bf4901776754ab"},{"file":"sc3d\/shelly_tex.pvr","sha":"6037b18f5da301549dd68dac9fc96aa28b0c5027"},{"file":"sc3d\/shelly_v2_01.ktx","sha":"3fde9d40e9f0e2259ef10c3d4909d796b124c48c"},{"file":"sc3d\/shelly_v2_01.pvr","sha":"0e437acd1b3dbad698b14878174300d42f9016eb"},{"file":"sc3d\/shelly_walk.scw","sha":"f01e5d0a83b425d1c2d6f3d867b2deb958b0fcb9"},{"file":"sc3d\/shelly_win.scw","sha":"0a0a8101d521359a72ed21710761fc2bd15b6278"},{"file":"sc3d\/shelly_win1.scw","sha":"b61b4ac29f066e3c78a875df5a9f3876555d216e"},{"file":"sc3d\/shelly_winloop1.scw","sha":"2d6a46387dce80370acc18417e74e760e4cc0301"},{"file":"sc3d\/shelly_witch_attack.scw","sha":"3e4c45260b70dbc3af0ee2f79bd9e60736ad90e6"},{"file":"sc3d\/shelly_witch_geo.scw","sha":"45ac77f351edc26a7dcce110ae91ab27145b1ffa"},{"file":"sc3d\/shelly_witch_idle.scw","sha":"85b9fcca5ba9ef1038c0145cfd4f96bcb3835484"},{"file":"sc3d\/shelly_witch_lose.scw","sha":"b90b66bfa96a65b82f03d8313fc6a957dba51698"},{"file":"sc3d\/shelly_witch_reload.scw","sha":"41a455eace993688cf84bc6df009a677cb02ed77"},{"file":"sc3d\/shelly_witch_tex.ktx","sha":"186bc389b734a3b4f42e152eb6680629c02ddd37"},{"file":"sc3d\/shelly_witch_tex.pvr","sha":"e3b6fab218c5e42a86c39f530e8b775f8ef1e2ac"},{"file":"sc3d\/shelly_witch_walk.scw","sha":"b0f9c89cfef6bba987d7feb439653ba713de705c"},{"file":"sc3d\/shelly_witch_win.scw","sha":"5e24b7234d8d17988a6a26bd67faaf50a93dd5f1"},{"file":"sc3d\/shockwave_blue.ktx","sha":"3b7b9a764e530496a749fe8eab0d14377d0be783"},{"file":"sc3d\/shockwave_blue.pvr","sha":"fb684658cdf1820e4af8508930fa97c0c8a1e27f"},{"file":"sc3d\/shockwave_red.ktx","sha":"fbad0123de9f8ea98cf5a05db2d6a1783546451c"},{"file":"sc3d\/shockwave_red.pvr","sha":"fcd3ae35379b721d9753f209bb24054e49b9ac2a"},{"file":"sc3d\/siege_base.ktx","sha":"d5baf54069be3898951bb1bc1466cf4d345405be"},{"file":"sc3d\/siege_base.pvr","sha":"2d112bb58b2eec2bd6166d2ec1ab6c70fd6c3dc5"},{"file":"sc3d\/siege_base.scw","sha":"a269499e5774ad653ad35a0a85ecdf4f3ff81ab4"},{"file":"sc3d\/siege_base_attack.scw","sha":"15a331a2e111b8479d114dd5fdd8c4cd27b0aa38"},{"file":"sc3d\/siege_base_projectile_blue.scw","sha":"191057aa452e5385aaacab996c922aae25eaa033"},{"file":"sc3d\/siege_base_projectile_red.scw","sha":"3bcbf9ea70f43d20bef2e34b979247a040870b72"},{"file":"sc3d\/siege_base_red.ktx","sha":"08b9676d1ac6f681c30bab0f45686a4c2c8e2999"},{"file":"sc3d\/siege_base_red.pvr","sha":"85ba0d2a8adfafc27276b04576535014a2e6ec66"},{"file":"sc3d\/skin_lightmap.png","sha":"98b8d4eb746078f8ac87c526d30c94a5e358106f"},{"file":"sc3d\/skin_specular_lightmap.png","sha":"844e895576ccaf027dfdf0f86a8d8a1b9b3cb601"},{"file":"sc3d\/sleepy_sandy.scw","sha":"130b8d94f3d33bd8990423d60418187e28fc3e29"},{"file":"sc3d\/sleepy_sandy_tex.ktx","sha":"ae6fa848322ed1251c6dcace51ea746a2c4b216a"},{"file":"sc3d\/sleepy_sandy_tex.pvr","sha":"e29b6e72e3cc59183ce2774705a9b0f818fd73b2"},{"file":"sc3d\/sniper_attack1.scw","sha":"783d8b52948f559b1f3ce2a8e20f459be2cc114b"},{"file":"sc3d\/sniper_d_01.ktx","sha":"c81bff5e55b4713ead51166754a5fc34f1d0a4c9"},{"file":"sc3d\/sniper_d_01.pvr","sha":"90bd374dab42e896b4c2574bfbb8fb3a845aa14b"},{"file":"sc3d\/sniper_geo.scw","sha":"29bcd4a5ea7b194c161eeb86e261ae071ebc4cb2"},{"file":"sc3d\/sniper_idle1.scw","sha":"d22b13bb4c388fc89575c05298bf2d9c1194b5d9"},{"file":"sc3d\/sniper_lose1.scw","sha":"b38afab52173ca6f13c2521dbfd6b672d2c76cbc"},{"file":"sc3d\/sniper_recoil1.scw","sha":"9221ee8962cc9f640269f39b47394278e508d392"},{"file":"sc3d\/sniper_ulti1.scw","sha":"00658a89227f6f7ea0a4dc86a9f71e4c1e651632"},{"file":"sc3d\/sniper_walk1.scw","sha":"14b1d0b2adcca8ed1b8e886aebb9bea382d5f83e"},{"file":"sc3d\/sniper_win1.scw","sha":"b499e8b763d49de29f4b38b049b5f6da89d569b6"},{"file":"sc3d\/specular_lightmap.png","sha":"76beef36edaf0d295256ebb11bb9b124431b0e6a"},{"file":"sc3d\/specular_lightmap_night.png","sha":"5079310a27c019af617aecb0c1ecec4b23f71d65"},{"file":"sc3d\/spike_attack.scw","sha":"a08872cce79a75ff56015645f1e7c1c06e142aa5"},{"file":"sc3d\/spike_base_cam.scw","sha":"90ed566bccdf4930b3ef38a7a6f753f3c6b290ee"},{"file":"sc3d\/spike_blossom_geo.scw","sha":"540e6634f1c405edc1f730426d4e087c95815449"},{"file":"sc3d\/spike_blossom_tex.ktx","sha":"41f9dfaaf7ea15eeccc37de40b819fbaa07d85a6"},{"file":"sc3d\/spike_blossom_tex.pvr","sha":"d0e418eb30a452823d4300d81cc55be0cd90b6f8"},{"file":"sc3d\/spike_geo.scw","sha":"bbdf17521d42fa1c71978c4f064abad6905a33ff"},{"file":"sc3d\/spike_idle.scw","sha":"d560c79e1dcee57121a179bc0c788e6c6c9b2add"},{"file":"sc3d\/spike_lose.scw","sha":"b04a7a33f865d7764f92ed37ff4fc404ce53f23a"},{"file":"sc3d\/spike_loseloop.scw","sha":"06fb2be60339ab250ccf00241c352d50b5243135"},{"file":"sc3d\/spike_mecha_geo.scw","sha":"96caf5c5bbb24b8cb4d51a71b29c513c55b3380d"},{"file":"sc3d\/spike_mecha_lose.scw","sha":"7f46da380a69fd780939daaebaf274e2512d9e7d"},{"file":"sc3d\/spike_mecha_tex.ktx","sha":"2168d98451ff82d7fa82472c48bdd3eb95047601"},{"file":"sc3d\/spike_mecha_tex.pvr","sha":"fd1c7b146ba51e986da3e96ee51cfad8e2a6ea22"},{"file":"sc3d\/spike_mecha_walk.scw","sha":"cacd7750c9a59ea6554b45cab60f03ba893988d0"},{"file":"sc3d\/spike_mecha_win.scw","sha":"b2ce131494c1aa1a6b0220558599b98a061149ae"},{"file":"sc3d\/spike_tex.ktx","sha":"af1a6f81d6c9efe27444dbe70f4f5401580370a1"},{"file":"sc3d\/spike_tex.pvr","sha":"ee9bd91ca752cc6eb781ec8bb251aeaaf9401640"},{"file":"sc3d\/spike_walk.scw","sha":"9dd4a63df914d16584ad950dd298e8c7b5257d85"},{"file":"sc3d\/spike_win.scw","sha":"7df19bbc2c0a9207529066ff246e09cfde65d1fe"},{"file":"sc3d\/spring_board.ktx","sha":"341683330e72d6f9fe590fd41d914141ec22785a"},{"file":"sc3d\/spring_board.pvr","sha":"0f0b05db0226c02be643235adbd3e11bc2627193"},{"file":"sc3d\/spring_board.scw","sha":"0b003a6f2ae9191bb62a81a23adeef3327b0ee9f"},{"file":"sc3d\/spring_board_diagonal.scw","sha":"238b24c91c589f00995246afbdc765dc34f0d6af"},{"file":"sc3d\/sprout_attack.scw","sha":"78bc2030fda9c7c4815daea7ede2a6d761aaa3ba"},{"file":"sc3d\/sprout_geo.scw","sha":"4090dff05bc881068a03c12b127f450b0c467c34"},{"file":"sc3d\/sprout_idle.scw","sha":"1597f45d4c1e9e019a1821bfe06046bb564e7c13"},{"file":"sc3d\/sprout_lose.scw","sha":"5e81e9f5f6205a12a80408f3cac131c7d4f62bc4"},{"file":"sc3d\/sprout_portrait.scw","sha":"07aedfda36f6c6d8b951e675471ee2b77b5c0f42"},{"file":"sc3d\/sprout_pushback.scw","sha":"9ce040309268d40f8812a6cdfbc2453746c8a4ef"},{"file":"sc3d\/sprout_reload.scw","sha":"63cc88a3a67d3bc9c580a720e5e65223b514f5f3"},{"file":"sc3d\/sprout_tex.ktx","sha":"287e8b3fc5cd6fc923d065541ddd97bcbadea4f1"},{"file":"sc3d\/sprout_tex.pvr","sha":"dfbe40617a4c2e3123351b1b8e8909a5000422d6"},{"file":"sc3d\/sprout_walk.scw","sha":"10e4cc988e4036fe1516a8069d997eca37000ca5"},{"file":"sc3d\/sprout_win.scw","sha":"dcf9c59a984f9f158aa65bf49f6420a8415b0dad"},{"file":"sc3d\/spruce_snowy.scw","sha":"2d78a3513f936951503e2370f976e54c4698cc62"},{"file":"sc3d\/stack_tire.scw","sha":"a527fb8923f12b9fbfd763b125e62245e4bcdbf3"},{"file":"sc3d\/stone_ruin_1.ktx","sha":"0939a64cc88bc7751cb0193ff70c27ba63ee6af6"},{"file":"sc3d\/stone_ruin_1.pvr","sha":"41f1357eb79ea927ca327010fd0a02aa21855349"},{"file":"sc3d\/stone_ruin_1.scw","sha":"3bcb82e7f388ad375cb4a6ae84dd83b8f73e0e03"},{"file":"sc3d\/tara_attack.scw","sha":"2ca62a791af9b9fb888ec0327c1f90b20b5a827a"},{"file":"sc3d\/tara_base_cam.scw","sha":"345a00cdd28689c4f123fb7463e9d88f9f70c59e"},{"file":"sc3d\/tara_blue_geo.scw","sha":"8e29d7776818c8b23158eaaabb22584d1bec1159"},{"file":"sc3d\/tara_blue_tex.ktx","sha":"52bf008eea31e26e30c331582777b14550ca93ab"},{"file":"sc3d\/tara_blue_tex.pvr","sha":"0527572a43eaa4dc0cd93f80415023341c6b3b41"},{"file":"sc3d\/tara_geo.scw","sha":"287f382bef695b2b2e2de81f7404d4f50822bf49"},{"file":"sc3d\/tara_idle.scw","sha":"df0ad27a580fbe853afa3626ec8f2ba35982cfef"},{"file":"sc3d\/tara_lose.scw","sha":"dbc3e85ac370dc8af426adce4dd6b7c5c3bbe1c4"},{"file":"sc3d\/tara_streetninja_attack.scw","sha":"db4146db4db3a1d4b33bd809e0aa9c4f1b89a09e"},{"file":"sc3d\/tara_streetninja_geo.scw","sha":"cf8c76be41ee0bc9c540dd1a2fa46e4f67277f88"},{"file":"sc3d\/tara_streetninja_idle.scw","sha":"a8b804e24482ffcd4c95caa7135ce474087eb9cf"},{"file":"sc3d\/tara_streetninja_lose.scw","sha":"d0e6c1e22e15948327bbc5055c5e0f835a9cd8ff"},{"file":"sc3d\/tara_streetninja_portrait.scw","sha":"03abbbd2c3025d9e0347ad14e3484e246f13c249"},{"file":"sc3d\/tara_streetninja_tex.ktx","sha":"ed6ca817c18950ad073bb50b552d0801f38ebfcd"},{"file":"sc3d\/tara_streetninja_tex.pvr","sha":"db811b6ecb482c7bcd8f8549fcbbc6dcc0fbd872"},{"file":"sc3d\/tara_streetninja_ult.scw","sha":"423974885592c8e411e13e97724be91dd38bdf4a"},{"file":"sc3d\/tara_streetninja_walk.scw","sha":"936bfb7ba668c89d4e5b280c1d40ab16fad42579"},{"file":"sc3d\/tara_streetninja_win.scw","sha":"8d8795d0b44539b403ddfea35858a6236512da40"},{"file":"sc3d\/tara_tex.ktx","sha":"d0f952ec43bad015a28c4c854060b4c559a81f98"},{"file":"sc3d\/tara_tex.pvr","sha":"809dc736bad8b32faa1a7d27a0907250147a4ed9"},{"file":"sc3d\/tara_ult.scw","sha":"7ab20c87651fb46e23e5e6315aa3bc9f83578761"},{"file":"sc3d\/tara_walk.scw","sha":"1909ec6249e4121d4f830cea2789e70a76a5709b"},{"file":"sc3d\/tara_win.scw","sha":"e3651bb03e9530beee2f65867ee4f9aa69b54c25"},{"file":"sc3d\/test_stack_tile.scw","sha":"1e619c1c2597812dce79c3758d88454b0ced75d4"},{"file":"sc3d\/tick_attack.scw","sha":"01ab193f823c81ead7d397be1486df13a863b68b"},{"file":"sc3d\/tick_base_cam.scw","sha":"a979efefa8a2a55f1175df599243a22305fda596"},{"file":"sc3d\/tick_def_atk_blue.ktx","sha":"c35c75233c2ff281d2717d2e54d8758cc6c79605"},{"file":"sc3d\/tick_def_atk_blue.pvr","sha":"e7fc2b48ec714bdb678840dcfabb478f4e69d696"},{"file":"sc3d\/tick_def_atk_projectile_blue.scw","sha":"1d5fa31bad07c6024aa06f34ae480d01fec6b3e0"},{"file":"sc3d\/tick_def_ulti_blue.ktx","sha":"5a91004fbef40a6d2d9ae3cc51da6c659cc935fd"},{"file":"sc3d\/tick_def_ulti_blue.pvr","sha":"3d73172c79edbc3c3cd5f45806835c57035050f7"},{"file":"sc3d\/tick_def_ulti_projectile_blue.scw","sha":"1292ba74aadfc582009e9c87ce36cf5ea0ba8388"},{"file":"sc3d\/tick_geo.scw","sha":"ceb8ca3caff7f3247ea2812f5f7638438036341f"},{"file":"sc3d\/tick_idle.scw","sha":"74abc3d4186e921c221dee0d4d99645c02b39cc8"},{"file":"sc3d\/tick_lose.scw","sha":"5cc79de1c2b4a9622186ea951a75ebb440d2963e"},{"file":"sc3d\/tick_tex.ktx","sha":"6c110b73bdabe191387dd33e13ec6b9b7ae5a678"},{"file":"sc3d\/tick_tex.pvr","sha":"ef82babb1cbb03694e1a2f2347c3982bbbe66652"},{"file":"sc3d\/tick_ult.scw","sha":"0f964faf255669e9085a5365b5af2e80358d37e1"},{"file":"sc3d\/tick_walk.scw","sha":"78921ccb23cf51c5796c83b0c37976ee12e51154"},{"file":"sc3d\/tick_win.scw","sha":"f3e22a8ef78904cd3f4e4194f451344b3522afa4"},{"file":"sc3d\/tnt_d_01.ktx","sha":"2568b53bb87a4767b5f89d9d14b7905a9ee63354"},{"file":"sc3d\/tnt_d_01.pvr","sha":"5c4c8d46cd1b99ef3726d9f61ec022d4b798c0bf"},{"file":"sc3d\/tnt_d_01_blue.ktx","sha":"4a5e6bc2494e6f76c0b5593847fc9393bfc42db2"},{"file":"sc3d\/tnt_d_01_blue.pvr","sha":"d05d6122eb3b67be8a87560e36706329f7829700"},{"file":"sc3d\/tntguy_attack1.scw","sha":"a7dd04be7100515a84b77d0bbd299334423b95bf"},{"file":"sc3d\/tntguy_geo.scw","sha":"9a0b44fae9848be0991f6d73c416577da0fb2aa3"},{"file":"sc3d\/tntguy_idle1.scw","sha":"595246697e02d8a00370a2a9f0491a28e17d5120"},{"file":"sc3d\/tntguy_lose1.scw","sha":"115bffa59791ee57522e84819d029240ad69b27b"},{"file":"sc3d\/tntguy_loseloop1.scw","sha":"388b6019394b5751d965c9c663ccdeb7b6e90711"},{"file":"sc3d\/tntguy_recoil1.scw","sha":"d6d34dab536da1fda26b14781381ae13cc7df4d0"},{"file":"sc3d\/tntguy_ulti1.scw","sha":"fbfb24eb545bc5432cbb6467e351e13bd6645cd6"},{"file":"sc3d\/tntguy_walk1.scw","sha":"b731ff30d6ffcad6de3c8c73c21fd9f6ad37af9e"},{"file":"sc3d\/tntguy_win1.scw","sha":"241941e1d0754afa242b32ed11857a45100fed90"},{"file":"sc3d\/tntguy_winloop1.scw","sha":"b73ca2cbc7a5d49dff286a301b18acee6563fad3"},{"file":"sc3d\/tombstone_large.scw","sha":"6bac9cf3d595927e501c6146d07ca4949a13be5c"},{"file":"sc3d\/tombstones_1.scw","sha":"e31cecc0f95405809130bae4958d12df8819a8fe"},{"file":"sc3d\/town_gem_spawn.ktx","sha":"7e3b2b37dce2574868c61ce43934333eb410d1dd"},{"file":"sc3d\/town_gem_spawn.pvr","sha":"7cfae7900a0e6c2c57753214cc935c972ef3b1ee"},{"file":"sc3d\/track_wood.ktx","sha":"48b2b96bb795b407dc520728825b41ea1119f797"},{"file":"sc3d\/track_wood.pvr","sha":"80a656718359ebc1229f74c306beaa1a38c7b897"},{"file":"sc3d\/traffic_cone.scw","sha":"a9e1ca4d8326236240d827d3621f10af3b7958e5"},{"file":"sc3d\/turret_attack.scw","sha":"1e75698d68837459d60138814e10e69ae3d7a88b"},{"file":"sc3d\/turret_dragon_geo.scw","sha":"b2078e35fc99f94877202da2a3d16a0e6008a7e5"},{"file":"sc3d\/turret_dragon_tex.ktx","sha":"55be252548779dd1ebbe75c200a2b6c75e13f25d"},{"file":"sc3d\/turret_dragon_tex.pvr","sha":"c2eebecf7f4736c5febdb0be72a0fe5690e972ef"},{"file":"sc3d\/turret_dragon_win.scw","sha":"fc293eb9af95b90012a9e1796832a762cb11457b"},{"file":"sc3d\/turret_geo.scw","sha":"605d64140fa91654edc73d17fd050bd7e5520eb7"},{"file":"sc3d\/turret_idle.scw","sha":"28e2ba12e4ce5cc01091e40a7321fa9a18fb7281"},{"file":"sc3d\/turret_jessie_attack.scw","sha":"0ddba05b904ab42849bf915a720245d9471c3a62"},{"file":"sc3d\/turret_jessie_geo.scw","sha":"1bce78c5265f314cf972a2249b0d7059df3f35f0"},{"file":"sc3d\/turret_jessie_idle.scw","sha":"b992a35bf937ec2fb69fbac6e6909d3d7a74a71b"},{"file":"sc3d\/turret_jessie_red_dragon_attack.scw","sha":"942258e53c6ef786836b9a22a18efc5f925f5dd5"},{"file":"sc3d\/turret_jessie_red_dragon_geo.scw","sha":"69fce49e5b466dc996485cea22d3361ce76a89d8"},{"file":"sc3d\/turret_jessie_red_dragon_idle.scw","sha":"762fafd8077fd5adb5c10665655f682dfe392758"},{"file":"sc3d\/turret_jessie_red_dragon_spawn.scw","sha":"3e27c64f3c30c9a0d9fed4e579298eba26fa2fdd"},{"file":"sc3d\/turret_jessie_spawn.scw","sha":"19a2eebf27a94d574daf8b6f4f0b03f1f3a38d70"},{"file":"sc3d\/turret_jessie_tanuki_geo.scw","sha":"de70a04a6e9998f0d6bb2098ca8a1eed0461cb03"},{"file":"sc3d\/turret_jessie_tanuki_tex.ktx","sha":"274f06b801a09b9672cc00d2c6b87d0d980a6f15"},{"file":"sc3d\/turret_jessie_tanuki_tex.pvr","sha":"e8841c532aed46987955db4b70668a99b5d58f21"},{"file":"sc3d\/turret_spawn.scw","sha":"702d6adcc901d695487dd820c80dfe3fdb04abaa"},{"file":"sc3d\/turret_summertime_geo.scw","sha":"bcb952f221a234288dfd01e373814a6919c08c75"},{"file":"sc3d\/turret_summertime_tex.ktx","sha":"37c1c6478e7a2ad9f8783a5a06bc9aade1ae4e4e"},{"file":"sc3d\/turret_summertime_tex.pvr","sha":"25d299e52a4da566eb6fa3feef1505833b4c947a"},{"file":"sc3d\/undertaker_idle.scw","sha":"63b9371a7d0440eeb68f00b3bb8f5d14735a1d28"},{"file":"sc3d\/undertaker_lose1.scw","sha":"73af4a5ae5a20fba1d61533ecfd190d24fc68611"},{"file":"sc3d\/undertaker_loseloop1.scw","sha":"8fbbac1d2b1f0f376dec82d89128d9aa3c83dacb"},{"file":"sc3d\/undertaker_recoil1.scw","sha":"2b7e7d64c46cf87cccdad4d6100c313a661abc47"},{"file":"sc3d\/undertaker_tex.ktx","sha":"0a34a124b6db69632556652840f07dc3de7c5564"},{"file":"sc3d\/undertaker_tex.pvr","sha":"262c9730061bb64689df3e79e66b9d3382264999"},{"file":"sc3d\/undertaker_ulti_attack.scw","sha":"53d0cd1947c66508ca73ce79e2ae6ab69f173068"},{"file":"sc3d\/undertaker_ulti_recoil1.scw","sha":"d1aca282a26ce2653f6976b8a515c852447dd488"},{"file":"sc3d\/undertaker_walk.scw","sha":"84bc7d22d12d1f578b778628c3683a0f170f3b30"},{"file":"sc3d\/undertaker_win1.scw","sha":"ad02bdc60c43e61c650c1d799030e824ab0553f6"},{"file":"sc3d\/undertaker_winloop1.scw","sha":"a207f68548ef5728e6ad18eccebafa35f0b39ab8"},{"file":"sc3d\/vase_1.ktx","sha":"2f1350b748e6857b74456321d668613c2f12654e"},{"file":"sc3d\/vase_1.pvr","sha":"386796f87b8f7b919a57460aa488647b0739f62b"},{"file":"sc3d\/vase_1.scw","sha":"5769b23154eaab53e17a3a33474a3f6b886061ef"},{"file":"sc3d\/wally_wall.ktx","sha":"0645a2c11c4a398c7892595943a4d7cb3696dee8"},{"file":"sc3d\/wally_wall.pvr","sha":"bff607a5aa4312e90b9848d76c2db19dbea13789"},{"file":"sc3d\/wally_wall.scw","sha":"a76207956219b69709036869f6c0a369cee5850e"},{"file":"sc3d\/water_tile.scw","sha":"9bf6a2a00f1874028a6bac4fc402954a408c5046"},{"file":"sc3d\/water_tile_darryls_ship.scw","sha":"58c99e56fa8b5bb6d2f49f543b23ee6451e79dc6"},{"file":"sc3d\/water_tile_mine.scw","sha":"c5b974c641ec39edff4a55ccc5b53b7c5d99abac"},{"file":"sc3d\/water_tile_mortuary.scw","sha":"92b1b7a657a3ae20fa301e0c20df43e54a5e7282"},{"file":"sc3d\/water_tile_retropolis.scw","sha":"f03548a5c6c7decee3454f151487dd15bbcbfd87"},{"file":"sc3d\/water_tile_snowy.scw","sha":"d724eb1c6eee03e3c08a98581073f7e25dcb8749"},{"file":"sc3d\/water_tile_town.scw","sha":"65c147153b02bbfdd27d621fceecb2dadfa39653"},{"file":"sc3d\/wooden_fence.scw","sha":"bfb52217ba40126d883df391cab5676a96136471"},{"file":"sc3d\/wooden_fence_darryls_ship.scw","sha":"756498b529e4ea54d5928b8825a6d1e643b978f8"},{"file":"sc3d\/wooden_fence_town.scw","sha":"9b8ff89ee0b63a2ad1b5f4f863d0f860250b9198"},{"file":"sfx\/100coins_01.ogg","sha":"f50ec28726c65e910028e94a22c405616d62d965"},{"file":"sfx\/2x_gatcha_double_01.ogg","sha":"6945ec50b65b1186f8e6936536bd0188373f582c"},{"file":"sfx\/8bit_atk_02.ogg","sha":"4ed66202b3105ce6c31777fcd9941f78e9160075"},{"file":"sfx\/8bit_die_vo_01.ogg","sha":"9b71448681400760949fd65a6c9645680a8895e1"},{"file":"sfx\/8bit_die_vo_02.ogg","sha":"80694f17d65293629a2a925a1ae5f56b4fa97de4"},{"file":"sfx\/8bit_die_vo_03.ogg","sha":"ef073991f4cba51abf63a0f5cdb200818cfa7b88"},{"file":"sfx\/8bit_die_vo_04.ogg","sha":"89283d2010a65d5f779774249c263fd10d55ec39"},{"file":"sfx\/8bit_die_vo_05.ogg","sha":"3f601c2a7e8de4da8f898c700f57c26a05eb0104"},{"file":"sfx\/8bit_die_vo_06.ogg","sha":"69debc93b1f08c197ad7d8e8e7cd111529a59bd3"},{"file":"sfx\/8bit_gadget_01.ogg","sha":"a51b2b96d608e43a5a0ee0a333540d1501e8deb3"},{"file":"sfx\/8bit_hurt_vo_01.ogg","sha":"db633e9875fdf5af693f54d10ad4d05b43bff4dd"},{"file":"sfx\/8bit_hurt_vo_02.ogg","sha":"05375937980dbf59db946801f7cefdf3d8c6b7c5"},{"file":"sfx\/8bit_hurt_vo_03.ogg","sha":"641cf91c717a2ea9d07bf54a597b11ceb02c5e00"},{"file":"sfx\/8bit_hurt_vo_04.ogg","sha":"0c682820f3c948ab1397b97ea24ac4fb9539c193"},{"file":"sfx\/8bit_hurt_vo_05.ogg","sha":"e32774927d725b68362a828c9c94509c0b2925b9"},{"file":"sfx\/8bit_kill_vo_01.ogg","sha":"a7d71cf4e8045f7a47167bdbab375d0ea9b80db3"},{"file":"sfx\/8bit_kill_vo_02.ogg","sha":"f4cdad7337e9ac17978e007f9f1372b6d9a066a4"},{"file":"sfx\/8bit_kill_vo_03.ogg","sha":"b554e8b3cd8fb168d3c8d4d1a8447b33022dbf58"},{"file":"sfx\/8bit_kill_vo_04.ogg","sha":"e2ef690eabb58ef1f1ad85cda088826554f93088"},{"file":"sfx\/8bit_lead_vo_01.ogg","sha":"2fc4c2144f59db834b434ed9bbc93af122704036"},{"file":"sfx\/8bit_lead_vo_02.ogg","sha":"836e74b88c54fea3105f62b50b1e3dc7a6d6b1ec"},{"file":"sfx\/8bit_lead_vo_03.ogg","sha":"39a44be8a393500a201056ffb23c16033c592b01"},{"file":"sfx\/8bit_noammo_01.ogg","sha":"9c8ad289be0d3818a4fecce6e95a662af0f6bbeb"},{"file":"sfx\/8bit_reload_01.ogg","sha":"ad026d3417eab0c7a31ae4d3dc21e11c9bafef65"},{"file":"sfx\/8bit_start_vo_01.ogg","sha":"41f762a1a8ee3e4492da5b249b0021531517dcc2"},{"file":"sfx\/8bit_start_vo_02.ogg","sha":"cab6e4d51ed45c8a3ac47c4ae02dd99baa2f4a24"},{"file":"sfx\/8bit_start_vo_03.ogg","sha":"a246b4ee8d2f00b43fca21ecba7a0135decc61b9"},{"file":"sfx\/8bit_ulti_02.ogg","sha":"382a28e9eb476a3b706f02bd511894108a5af1df"},{"file":"sfx\/8bit_ulti_vo_01.ogg","sha":"9c679bd265d697bb34d36d5fd65cf2bccbbb84aa"},{"file":"sfx\/8bitvirus_die_vo_01.ogg","sha":"d65dd134e7c9cf80c3bb4e564110363ac3e0a613"},{"file":"sfx\/8bitvirus_die_vo_02.ogg","sha":"322efc7283b10f72c98061b6d6da1ad0816042cf"},{"file":"sfx\/8bitvirus_die_vo_03.ogg","sha":"72f0d483132da74a8e30bf3bbacf79b982f3bfbc"},{"file":"sfx\/8bitvirus_die_vo_04.ogg","sha":"42ca460dbde30dab8d8da942724111c85f00fd0a"},{"file":"sfx\/8bitvirus_hurt_vo_01.ogg","sha":"b5ceadc2038935029db5a5ea9024cffaa33b537e"},{"file":"sfx\/8bitvirus_hurt_vo_02.ogg","sha":"652b7f26478ef31371a6da97799aebff3064977d"},{"file":"sfx\/8bitvirus_hurt_vo_03.ogg","sha":"ea16995c99c770994962002f8abf334fdf3a9115"},{"file":"sfx\/8bitvirus_kill_vo_01.ogg","sha":"8041f1bece8ff0dfc1642f19671a0cedda463e1b"},{"file":"sfx\/8bitvirus_kill_vo_02.ogg","sha":"ea3648d28d89e316c7a3a4abf84bffec61ed473e"},{"file":"sfx\/8bitvirus_kill_vo_03.ogg","sha":"fe3434d7a7ecf46f27aff8e785e8bdc7fa336ba4"},{"file":"sfx\/8bitvirus_kill_vo_04.ogg","sha":"84f79cb64f14fc75a75bb706f529cf30a4329b87"},{"file":"sfx\/8bitvirus_lead_vo_01.ogg","sha":"c61561f4d54ed57c001124fa2d27e3344aba52bc"},{"file":"sfx\/8bitvirus_lead_vo_02.ogg","sha":"1a3f0caa1bf66d9a55eabad4a682c137a14878ab"},{"file":"sfx\/8bitvirus_lead_vo_03.ogg","sha":"d723faafa56389da4f548ef4f96a1b4fb3cf8c6a"},{"file":"sfx\/8bitvirus_lead_vo_04.ogg","sha":"3d66b8606f40ce2a0e826fe4c8e96a946933184c"},{"file":"sfx\/8bitvirus_start_vo_01.ogg","sha":"e8f7885605d96cc530c16008e7cd8df58ab0bf85"},{"file":"sfx\/8bitvirus_start_vo_02.ogg","sha":"20ceb65340e1f0db0b2e380b3b663b7138513339"},{"file":"sfx\/8bitvirus_start_vo_03.ogg","sha":"deb3512cc98c2826b465cf715ca5ff52bc3b44fe"},{"file":"sfx\/8bitvirus_start_vo_04.ogg","sha":"c5280add1ea5ec379f1540d869c9657cb664ba3c"},{"file":"sfx\/8bitvirus_start_vo_05.ogg","sha":"86516cb6ceea388419bc87d7b9813fc75698041b"},{"file":"sfx\/8bitvirus_start_vo_06.ogg","sha":"f9ec14df98e6727b0d465e72e919c32f8954ca57"},{"file":"sfx\/8bitvirus_ulti_vo_01.ogg","sha":"2cd92a3411927458b0701a8de68c4efc608d7b33"},{"file":"sfx\/8bitvirus_ulti_vo_02.ogg","sha":"4aa6d22304c745f1020922ba7f05dc6f7cbb2af2"},{"file":"sfx\/8bitvirus_ulti_vo_03.ogg","sha":"e70d6463fb90d1fabbc574475fb92963b3229904"},{"file":"sfx\/Nita_dog_summon_01.ogg","sha":"cd2561f14f1538e96570ef2ca8db48e67e2665bb"},{"file":"sfx\/Rosa_punch_01.ogg","sha":"b25385a7f8864fa7bf0f656c45709f5163be1dbf"},{"file":"sfx\/Rosa_reload_01.ogg","sha":"8fdf15a34f94c603c9bb9b559697296313ccbd2d"},{"file":"sfx\/Rosa_ulti_01.ogg","sha":"33c3148d648cb06fb4c14a6574cffe5f3a739c53"},{"file":"sfx\/bad_move_01.ogg","sha":"3ec2061ad4cadd1c503bf97ba8e7fbda23113ed6"},{"file":"sfx\/bandit_reload_01.ogg","sha":"7561564a23a226da76e6eb87a381c4be8dffd576"},{"file":"sfx\/bar_fire_atk_01.ogg","sha":"1dc3b81cc94c1b7a328e69560c7030cdfbc946e4"},{"file":"sfx\/bar_fire_hit_01.ogg","sha":"4759536d6d2e8ed1529f1f551ff533bc5ebf9f80"},{"file":"sfx\/barkeep_bottle_hit_01.ogg","sha":"4ca1bc1d433d57fc5ae9dea1e614f04dd47cde74"},{"file":"sfx\/barkeep_dryfire_01.ogg","sha":"339848424730bcc5cfc750f77e35e9241df7b5dd"},{"file":"sfx\/barkeep_reload_01.ogg","sha":"ac0b6e5b4f83d03b668d94a1c31232ebf499a1bc"},{"file":"sfx\/barkeep_throw_01.ogg","sha":"e11a417261641d99036acaee0a2082958c38f8a2"},{"file":"sfx\/barkeep_throw_ulti_01.ogg","sha":"16716e865732966a01d07873fe37542e1aaa12d1"},{"file":"sfx\/barkeep_ulti_hit_01.ogg","sha":"01586ee110b9b2c173e68f01c8e753fa1ca0c58b"},{"file":"sfx\/barley_die_01.ogg","sha":"b23988dc1a0603d88e59d358def420d482f5f680"},{"file":"sfx\/barley_die_02.ogg","sha":"75c1c3d5bdff951fdcfa51a20772addd6b129010"},{"file":"sfx\/barley_gadget_01.ogg","sha":"2d388acb14c3c0c0149cf264e5d9fa55bb6ac4a6"},{"file":"sfx\/barley_hurt_01.ogg","sha":"b44e50cdcb204c643f1594e456eb37e9ed3f516e"},{"file":"sfx\/barley_hurt_02.ogg","sha":"f2c6542e05ca52ef71528ed532849977a3974bf0"},{"file":"sfx\/barley_hurt_03.ogg","sha":"fb43fd5261d8c94daa0d84c15c02cc78dabc02c2"},{"file":"sfx\/barley_hurt_04.ogg","sha":"12f6ed9089ed5ea7a0ed0fd5f8ed109ff5783a33"},{"file":"sfx\/barley_kill_01.ogg","sha":"97d12f0aeadf577f90a7df17b56b6da07c3b5b38"},{"file":"sfx\/barley_kill_02.ogg","sha":"2bae530c8fc5ba9771741c1a1097cd9cd2754850"},{"file":"sfx\/barley_kill_03.ogg","sha":"8e3df2e7f03bbc3a0b337993c67928d65b78fdd9"},{"file":"sfx\/barley_kill_04.ogg","sha":"e29fffbf0ef78ba88c27b695411868cf854fbd51"},{"file":"sfx\/barley_lead_01.ogg","sha":"da32340cb4ca5390c4217b2a7876aa3eda8a18d3"},{"file":"sfx\/barley_start_01.ogg","sha":"b76060601c160c43c2afffb8a68e61e192f231ab"},{"file":"sfx\/barley_start_02.ogg","sha":"508784c50b1e99aaaded8c31985011ae0f591035"},{"file":"sfx\/barley_start_03.ogg","sha":"aea2e1af712b8a1371101d1ba34043ea4e08b005"},{"file":"sfx\/barley_start_04.ogg","sha":"18fe95427031959b9cc9e01531ba20bacf13c054"},{"file":"sfx\/barley_throw_01.ogg","sha":"c2f9a557331e419bfc9ad3897c7fa6d6a0e8c937"},{"file":"sfx\/barley_throw_02.ogg","sha":"c26b6469b4d8fee9d5a5b0952fa5879af13218f1"},{"file":"sfx\/barley_ulti_01.ogg","sha":"9618ac44364f67d18466b0618135dd1106d4abf2"},{"file":"sfx\/barley_ulti_02.ogg","sha":"3fce7997593713686ba0ac7d79928bf8cc479d1e"},{"file":"sfx\/barrel_roll_02.ogg","sha":"cf26028bdd46f0b46dd4769c416961c655fa962c"},{"file":"sfx\/barrelroll_ulti_01.ogg","sha":"68580882c2a74a234506d55bbcf9252ba90dbbc1"},{"file":"sfx\/bea_atk_01.ogg","sha":"e14a9d681400af2c84a6a3fd66c818c9667a346a"},{"file":"sfx\/bea_atk_hit_01.ogg","sha":"f91a8a3547df13c44ceaecf1d08409aa68e787dd"},{"file":"sfx\/bea_atk_vo_01.ogg","sha":"c605a05a2af783305e920ccee32af3cd9385c235"},{"file":"sfx\/bea_atk_vo_02.ogg","sha":"1cb824829f7693ff3e3db47c8f114d0915bb2194"},{"file":"sfx\/bea_atk_vo_03.ogg","sha":"d5e807dcb252df3ecf0c5ca6398be73c620cedaf"},{"file":"sfx\/bea_die_vo_01.ogg","sha":"cbf31e87c4eb955258669b460c0999ef6d883d8c"},{"file":"sfx\/bea_die_vo_02.ogg","sha":"55c9c2d0c00665de0b22edf578721abbd887919d"},{"file":"sfx\/bea_die_vo_03.ogg","sha":"1f97c03bc3f7311e974dfb65dfbb68465dffde1e"},{"file":"sfx\/bea_gadget_01.ogg","sha":"fba987b3856376fb8cd507a6caff1f62ab918c72"},{"file":"sfx\/bea_hurt_vo_01.ogg","sha":"67ada74e7cec4a9dbd9476abb3ec6c0511daa6ca"},{"file":"sfx\/bea_hurt_vo_02.ogg","sha":"277dc232f2dbafe827456b5a0d5303a0634e1f50"},{"file":"sfx\/bea_hurt_vo_03.ogg","sha":"577aac5449a3e1919c939e2adcf5ad21ca7648aa"},{"file":"sfx\/bea_hurt_vo_04.ogg","sha":"6c579b34cab5e24663fc4100af56982b1973bc71"},{"file":"sfx\/bea_hurt_vo_05.ogg","sha":"2516a40b3f5715feba97c9e13213686960555f53"},{"file":"sfx\/bea_kill_vo_01.ogg","sha":"9367fc905c94e4b7c0e512fdd349e054aeb53f32"},{"file":"sfx\/bea_kill_vo_02.ogg","sha":"147bd1711b468354864a9ccbb017391abf7d30e8"},{"file":"sfx\/bea_kill_vo_03.ogg","sha":"72e294cb45081c0645faa2f0e5ef15172d724a11"},{"file":"sfx\/bea_kill_vo_04.ogg","sha":"3c082dbe5c1d8d49afa1d12af475c5c4ec3cce48"},{"file":"sfx\/bea_lead_vo_01.ogg","sha":"40f2edbc4fd0d236e4ebc4355233dd20314c6dec"},{"file":"sfx\/bea_lead_vo_02.ogg","sha":"3c8229b7dc5439d1df8cdd670d22205c557919d2"},{"file":"sfx\/bea_lead_vo_03.ogg","sha":"32e7b671f7c558a6683371621e8276ff675680e0"},{"file":"sfx\/bea_lead_vo_04.ogg","sha":"7877d92bcd337f9c5d579497644c8c571b027b4b"},{"file":"sfx\/bea_lead_vo_05.ogg","sha":"a4b85a8020b214c72600105515a6c34d0fbf667e"},{"file":"sfx\/bea_no_ammo_01.ogg","sha":"3fff77b063b15ea10917dbc755cdfbe055bd57c7"},{"file":"sfx\/bea_reload_01.ogg","sha":"9634b882bf8f8e9f8ebabb0b5fac28bbbbbc4ef6"},{"file":"sfx\/bea_start_vo_01.ogg","sha":"be22341f2cae3fd109250e1c2e761ddc0d50611d"},{"file":"sfx\/bea_start_vo_02.ogg","sha":"c6428f5fe88d038fa75d8ccf252d30255b492bb0"},{"file":"sfx\/bea_start_vo_03.ogg","sha":"b8bfc6953da79b8b17d19f8030320680bc1a066b"},{"file":"sfx\/bea_start_vo_04.ogg","sha":"739f81b8c18131a29acf00107a98d5b8ce544e41"},{"file":"sfx\/bea_start_vo_05.ogg","sha":"4ef17de2f1a94b759eefec4d407239d4241d0aa9"},{"file":"sfx\/bea_ulti_01.ogg","sha":"a5b5be16bfc01780465930b2b261267e47cbe077"},{"file":"sfx\/bea_ulti_vo_01.ogg","sha":"036e5bf0f038dd24d6914a3f34de865bcd9e3e9c"},{"file":"sfx\/bea_ulti_vo_02.ogg","sha":"33928cea063345edad27c3f6cee98ed4d64f1c41"},{"file":"sfx\/bea_ulti_vo_03.ogg","sha":"bedfc21dd66008b91597ff6c160e78d5ce3af803"},{"file":"sfx\/bea_ulti_vo_04.ogg","sha":"0c125228a15534c26440af9c92a0a8b142f625ac"},{"file":"sfx\/beach_brock_explo_01.ogg","sha":"d4252b2750930cda0afda344efe86cb6c0d53fe2"},{"file":"sfx\/bear_spawn_01.ogg","sha":"7e1b3681c1523163633b10bd49b0005a56fbbc54"},{"file":"sfx\/become_chips_01.ogg","sha":"1462bfc178324c90864dcdc4f348794e54faf5fe"},{"file":"sfx\/bibi_bubble_hit_01.ogg","sha":"b96ecb9d089892f12c30804766535881c40c45da"},{"file":"sfx\/bibi_bubble_pop_01.ogg","sha":"c07e68739fe5d739d13f5224bd50c6c98d96ee12"},{"file":"sfx\/bibi_die_vo_01.ogg","sha":"58e30e2d23a9704df3dd2ef892605146fa387728"},{"file":"sfx\/bibi_die_vo_02.ogg","sha":"acbf09fca8a2a0ba3aab223d09343a9fed0763a8"},{"file":"sfx\/bibi_die_vo_03.ogg","sha":"4d1633b80056a076189757362d0e8c1cefd8171c"},{"file":"sfx\/bibi_die_vo_04.ogg","sha":"02359b415fc0ead50d0bea364c9bd0d2a636f846"},{"file":"sfx\/bibi_hurt_vo_01.ogg","sha":"3028d231875369375883709e0712dd2f4fe4abbe"},{"file":"sfx\/bibi_hurt_vo_02.ogg","sha":"b5de50b6f118f05ab6d21ccd716b0a105ac1b09f"},{"file":"sfx\/bibi_hurt_vo_03.ogg","sha":"444831efcd4061aeb0b4a9fac589d9a478c44818"},{"file":"sfx\/bibi_hurt_vo_04.ogg","sha":"f4bb01523f1716ad75dce2a5e129fb669aaf2afb"},{"file":"sfx\/bibi_kill_vo_01.ogg","sha":"26997303cbfd016f7cf960f4aed7e838cadd40bd"},{"file":"sfx\/bibi_kill_vo_02.ogg","sha":"3c944be9661efc4d3153d57647c058d8280f39c9"},{"file":"sfx\/bibi_kill_vo_03.ogg","sha":"9d0de0d695679e504097562745cd25772c9be9c3"},{"file":"sfx\/bibi_kill_vo_04.ogg","sha":"dee7169ec4bcdf9b19b42a123ba0217a552b57c6"},{"file":"sfx\/bibi_lead_vo_01.ogg","sha":"175baa4410401a3ef8f05be39aa2259eeaff615b"},{"file":"sfx\/bibi_lead_vo_02.ogg","sha":"1fdcd0c5694b12b7492c424706a368624bc01b37"},{"file":"sfx\/bibi_lead_vo_03.ogg","sha":"70c72caa1d3f6e38ef6b2039947e63180f6742ab"},{"file":"sfx\/bibi_lead_vo_04.ogg","sha":"8031a74cba02e019255d9b93f05006a643211187"},{"file":"sfx\/bibi_reload_01.ogg","sha":"b42461a211acece6b69df8daa2b1cde213366c1f"},{"file":"sfx\/bibi_start_vo_01.ogg","sha":"467bbf384d3064e9c970c42018213d98bf43fa6f"},{"file":"sfx\/bibi_start_vo_02.ogg","sha":"f82560515b54a8f5d0e64733bd9feb09664d0f93"},{"file":"sfx\/bibi_start_vo_03.ogg","sha":"2a8b51c3c3f4bb7a056c851f4b75065c60c3ccc8"},{"file":"sfx\/bibi_start_vo_04.ogg","sha":"3c84060ae5972cfe1781285fd6d5d5849b599057"},{"file":"sfx\/bibi_start_vo_05.ogg","sha":"20b9bb4273620137c19dca12eba058931d4f21cd"},{"file":"sfx\/bibi_start_vo_06.ogg","sha":"3a87518bc76f52f743be7c423a52aae91459d648"},{"file":"sfx\/bibi_swing_03.ogg","sha":"d760e5516dc77fa4cd7ce5573c9eddb629dc25ef"},{"file":"sfx\/bibi_ulti_02.ogg","sha":"4888379fd41de9c4e9c98cbd834560a4e23d7ab0"},{"file":"sfx\/bibi_ulti_hit_01.ogg","sha":"d8f424b5bc41e512a5ab36cf8fb86d0c41524f38"},{"file":"sfx\/bibi_ulti_vo_01.ogg","sha":"5fa34e9f8a4464e5048f487be6eca0f3748d353e"},{"file":"sfx\/bibi_ulti_vo_02.ogg","sha":"7b84bc0d5cc6971f0e022fc83ff803c4da60f333"},{"file":"sfx\/bibi_ulti_vo_03.ogg","sha":"3daef6975212182aaaead245d2961de021399c0c"},{"file":"sfx\/bibi_ulti_vo_04.ogg","sha":"b986396600f2d63ad4094efed58f909b171cf0ab"},{"file":"sfx\/bibibat_impact_01.ogg","sha":"7a94cf6eee779985e33b665fbe9fc6db1a880d52"},{"file":"sfx\/bigshotgun01.ogg","sha":"e0a3dc0e7a449a94f7efafe196bcb200c11229f5"},{"file":"sfx\/blink_01.ogg","sha":"f2a9dd801c0f5f618751dc90af7cc3e448bbadb8"},{"file":"sfx\/blink_01v2.ogg","sha":"eca1f53eaf81a639f8a6995de7d6e0d13c673407"},{"file":"sfx\/blue_mine_01.ogg","sha":"550f3731754f9c22da4ae2b3bbe4c29076813c1b"},{"file":"sfx\/bo_die_01.ogg","sha":"e5c60e48c874c73f5e1265da936ba996d8d8987d"},{"file":"sfx\/bo_die_02.ogg","sha":"0432ced9caf74ae526afa53245c12d6cf88e248d"},{"file":"sfx\/bo_die_03.ogg","sha":"eb353c6c470ce316b223514bbfba8626f01dfcbd"},{"file":"sfx\/bo_die_04.ogg","sha":"e92167a71d5fb0219d8ee7a6f16736a1d4a039d5"},{"file":"sfx\/bo_fire_vo_01.ogg","sha":"5d581e35de4a34b06a6ad43db1f550a43b38998f"},{"file":"sfx\/bo_fire_vo_02.ogg","sha":"5051923b86f7622436ed424153b4330dd16a0d75"},{"file":"sfx\/bo_fire_vo_03.ogg","sha":"516b29e779d6c15fdf2b572611d64e5b811eb294"},{"file":"sfx\/bo_fire_vo_04.ogg","sha":"984de812313d6b533238fd101789eee3932004f4"},{"file":"sfx\/bo_gadget_01.ogg","sha":"cf7f787e8b2f263033079ed7b5488a483cd3b48d"},{"file":"sfx\/bo_hurt_01.ogg","sha":"22cd6e733095aff8e218c1b0fe1106db40ffd0db"},{"file":"sfx\/bo_hurt_02.ogg","sha":"8ebdf6f5fcc0dca99d89b687881aae54c033918a"},{"file":"sfx\/bo_hurt_03.ogg","sha":"d4a8d06904c9397d520867a0d37da1cce324d60e"},{"file":"sfx\/bo_hurt_04.ogg","sha":"ed1407a2704fae611bb5ac953df4452f71bf58fb"},{"file":"sfx\/bo_kill_vo_01.ogg","sha":"41de82d27f16b3771eb52245170b2c7dfea02301"},{"file":"sfx\/bo_kill_vo_02.ogg","sha":"a8a8abd07590901600fc4270ad462b36b69aa8e2"},{"file":"sfx\/bo_kill_vo_03.ogg","sha":"d84d49cd59d329f2ea221a0a3736545dbf0ef556"},{"file":"sfx\/bo_kill_vo_04.ogg","sha":"bfaee7fdf8144b2b87064388bb188d8678f68289"},{"file":"sfx\/bo_lead_vo_01.ogg","sha":"e0b6fbcab8de7bc961ce34955d78840ba842f7d3"},{"file":"sfx\/bo_lead_vo_02.ogg","sha":"519694c1b210b06855e44afa37a188d3cd387b44"},{"file":"sfx\/bo_lead_vo_03.ogg","sha":"1016a680399ffa6df50595777be1c3449cf6c100"},{"file":"sfx\/bo_lead_vo_04.ogg","sha":"48d6aea50317bfa85cb910228c0677ec073752d9"},{"file":"sfx\/bo_mine_spawn_01.ogg","sha":"979cc466d68cecff33c1da5881005f155537ee3c"},{"file":"sfx\/bo_start_vo_01.ogg","sha":"1b6da6f039088aebc4c4ae612b90480f467c7690"},{"file":"sfx\/bo_start_vo_02.ogg","sha":"f3bcc31c55c0edcbf3f1d89932eeaa3967bb0888"},{"file":"sfx\/bo_start_vo_03.ogg","sha":"774d113a672369d5f71c83c003a1d1dd0f0fd7a4"},{"file":"sfx\/bo_start_vo_04.ogg","sha":"7d955607ba45815b11757d628609dfd659f8f6fa"},{"file":"sfx\/bo_start_vo_05.ogg","sha":"e7bc8946d96f2b5d636e9d04a3c928e3803e7f6e"},{"file":"sfx\/bo_ulti_vo_01.ogg","sha":"74ce40045ba659d0298b444bbf26ecceb3ae9380"},{"file":"sfx\/bo_ulti_vo_02.ogg","sha":"38ed612442dba16bc8c9cdf0c3d24cb2309b940b"},{"file":"sfx\/bo_ulti_vo_03.ogg","sha":"afc3e58b0b7e3c6ac4e286dfe0836c7427a8f5af"},{"file":"sfx\/bo_ulti_vo_04.ogg","sha":"5092f34a879ffc309733125b6b5f96f2b09f2f99"},{"file":"sfx\/bomb_bleeps_01.ogg","sha":"33144deaabcdb1be18748fc9f9204873cc4ccfa5"},{"file":"sfx\/boss_spawn_seq_01.ogg","sha":"1ad0c68000345367d3ade246a7a76a51aec375f5"},{"file":"sfx\/bounce_fire_01.ogg","sha":"7b999e8669698a2b053eea1e2cd5f4742b03ba11"},{"file":"sfx\/bow_dryfire_01.ogg","sha":"96f5c5155b098219791185e680f319380aa9ff77"},{"file":"sfx\/bow_fire_01.ogg","sha":"dfed27d8391a9cbe0d6ebf03b2b80de446c058b6"},{"file":"sfx\/bow_reload_01.ogg","sha":"b38d6e6f3e4b015208c8e7aaea7e56ec3e07d675"},{"file":"sfx\/brawl_ball_kick_02.ogg","sha":"199a0e64cf7e82bb4af0f7745b6fbb17792615de"},{"file":"sfx\/brawl_button_01.ogg","sha":"9be0c962a2bf445f62f259ecd874e1941071fbc2"},{"file":"sfx\/brawl_go_01.ogg","sha":"4a3916051cfeb1adb20363d14029f5f7ca50de9c"},{"file":"sfx\/brawl_intro_01.ogg","sha":"1cf176718f847ce38bafa9c1586fd009af799534"},{"file":"sfx\/brawl_unlock_01.ogg","sha":"d646d5fe1fa187697c546e8db897228c86f9af68"},{"file":"sfx\/brawl_unlock_02.ogg","sha":"b6ca998d6287bf535bd351325621620b033979a7"},{"file":"sfx\/brawlbuy_01.ogg","sha":"9804734e123294ca05f52224d3041ecdcb92e28e"},{"file":"sfx\/brawlerintro_01.ogg","sha":"f2c9dccfc386806ffc72906d309c101ca5ef783b"},{"file":"sfx\/brock_death_01.ogg","sha":"08a6e826b11ccac715f27ae54bf3ae6ec9cc7b09"},{"file":"sfx\/brock_death_02.ogg","sha":"c273f54922025903b698b5f2eaa066b242bae7ea"},{"file":"sfx\/brock_death_03.ogg","sha":"cf9b83c5b3ea0c3f75de6e2feeedf534d3a214fa"},{"file":"sfx\/brock_death_04.ogg","sha":"c56aec7aee230ee96e3b46fcdeec9ed84af594ca"},{"file":"sfx\/brock_dryfire_01.ogg","sha":"4f72f3b3481a60ff7b3deaf5389b666278761569"},{"file":"sfx\/brock_hurt_01.ogg","sha":"071d1e3aa42a4795b8b9d66aea489e5b0672a289"},{"file":"sfx\/brock_hurt_02.ogg","sha":"065c7bcae55dcc78ea8256636124fa77a1bbbdb1"},{"file":"sfx\/brock_hurt_03.ogg","sha":"addf039a044813fb97ce29bc7abfc7e5c50e5b4b"},{"file":"sfx\/brock_hurt_04.ogg","sha":"7ffe858ca39f2b65b3d93b6b746bc10c75bc5345"},{"file":"sfx\/brock_hurt_05.ogg","sha":"218b34a251f9b30d9b58c8e965610231f655504c"},{"file":"sfx\/brock_kill_vo_01.ogg","sha":"934de5c0b7632fca2b57366f30ae627d137c12ba"},{"file":"sfx\/brock_kill_vo_02.ogg","sha":"82967c2f4d113f19aafc68d16579ea64c895c1e8"},{"file":"sfx\/brock_kill_vo_03.ogg","sha":"d3a19724b9fd6644c4677122b4895931d5db827c"},{"file":"sfx\/brock_kill_vo_04.ogg","sha":"aea5313d74d50e8a8c933023c5bb0be93dab7c99"},{"file":"sfx\/brock_lead_vo_01.ogg","sha":"f72678330d9da164b7db897004115d127e56887d"},{"file":"sfx\/brock_lead_vo_02.ogg","sha":"f8661daf12c089cebe51cd39e83671012c0fcfa6"},{"file":"sfx\/brock_lead_vo_03.ogg","sha":"6a0c21664dfac9d631c5a571cdb808b83e0276c5"},{"file":"sfx\/brock_lead_vo_04.ogg","sha":"ce26ac6ed65d19c20ac30952598087f979db02fa"},{"file":"sfx\/brock_lead_vo_05.ogg","sha":"5e2c7b5e5761feed8b29dba6f007f1d3c46f47fd"},{"file":"sfx\/brock_lead_vo_06.ogg","sha":"74914f6db9c3df490b8219337fd983111fa9c3f6"},{"file":"sfx\/brock_reload_01.ogg","sha":"8dcbf802a6e4c5e2dec1a920f52aeacef71230fe"},{"file":"sfx\/brock_start_vo_01.ogg","sha":"fd8018f66e7a748a2113967e49fee6a3862d7c8a"},{"file":"sfx\/brock_start_vo_02.ogg","sha":"afb6d7c00eefdc7849179b54984129a12a627b5f"},{"file":"sfx\/brock_start_vo_03.ogg","sha":"af59d060d79b6a264009f0a3358d873cfe9193c0"},{"file":"sfx\/brock_start_vo_04.ogg","sha":"2860123e79592daeb38e992c6435d57a6147a10f"},{"file":"sfx\/brock_start_vo_05.ogg","sha":"b0c6acd6cc572e288028ad7fcc59a5dc31a74b5b"},{"file":"sfx\/brock_start_vo_06.ogg","sha":"94e47bddd930fed439d616948c10251cc5613b4f"},{"file":"sfx\/brock_start_vo_07.ogg","sha":"4040d3de72d1ee9356a456935f2e8ee71eaad9f5"},{"file":"sfx\/brock_ulti_vo_01.ogg","sha":"4046d03240feee4783627339fbe3686f3b4943a7"},{"file":"sfx\/brock_ulti_vo_02.ogg","sha":"e99430be3b155efec9eba77a11889d2a5074ea3e"},{"file":"sfx\/brock_ulti_vo_03.ogg","sha":"5631ebd033622ad207b0b564cd876127393aa63c"},{"file":"sfx\/brock_ulti_vo_04.ogg","sha":"74881285e52b5e71c43416ca8002004d9823379d"},{"file":"sfx\/brock_ulti_vo_05.ogg","sha":"e3f1bcb9587f23170e08a895609f99ebf4348d5e"},{"file":"sfx\/bull_berserk_01.ogg","sha":"3d124a98375caac1b575a3512f19de7b4328e2f6"},{"file":"sfx\/bull_die_vo_01.ogg","sha":"ae3e4203161976f62045550cede2dfb600566ced"},{"file":"sfx\/bull_die_vo_02.ogg","sha":"8f64c0e3ff281c8f60daa33d41ce1e90861d5917"},{"file":"sfx\/bull_die_vo_03.ogg","sha":"57d2803a960b54791afa464c01e84d3e17364375"},{"file":"sfx\/bull_die_vo_04.ogg","sha":"d6b8e8cf283d605a492d83ee42639439ec327b6b"},{"file":"sfx\/bull_hurt_vo_01.ogg","sha":"f6446dd1bda4f2ac1ae5b38042b2301dddbc09c0"},{"file":"sfx\/bull_hurt_vo_02.ogg","sha":"ffb46ef94d1028a59255a1a21f93888e2d0d9139"},{"file":"sfx\/bull_hurt_vo_03.ogg","sha":"781e424413cc2f390f5cdb82e8d117f5cc6678a8"},{"file":"sfx\/bull_hurt_vo_04.ogg","sha":"4aa9982e3db4abed342e5d9e9531ddb0383d5a30"},{"file":"sfx\/bull_hurt_vo_05.ogg","sha":"8f73fd849ca3a2a78a72197650c5b5ed7a486bb0"},{"file":"sfx\/bull_kill_vo_01.ogg","sha":"7e8ef88cb2e3afcc9b83bc96297da8feee32dae8"},{"file":"sfx\/bull_kill_vo_02.ogg","sha":"3517b1c5d7531c39de9e2e755b93c936eb1ed4ce"},{"file":"sfx\/bull_kill_vo_03.ogg","sha":"1418715ad1eb8acb4cbcf25e78ac3bf1ff7cdd61"},{"file":"sfx\/bull_kill_vo_04.ogg","sha":"eb1e903efeb1d4d0a28334cf4d8de6e50c3369d1"},{"file":"sfx\/bull_lead_vo_01.ogg","sha":"4c48cdc133e39d17c999f1d7ea9373fd6c0df3ae"},{"file":"sfx\/bull_lead_vo_02.ogg","sha":"67cf5c18c2acbb80f1e2ecc2fe1f96c2a3f6ac2f"},{"file":"sfx\/bull_lead_vo_03.ogg","sha":"cf6e91d1f9702b413a4dbd86427d7ae8c1a1fa5e"},{"file":"sfx\/bull_lead_vo_04.ogg","sha":"2c4cba8d9a0ba5df0da37724b3d7cf7f8f265e5b"},{"file":"sfx\/bull_start_vo_01.ogg","sha":"d016a12a11127a3f547d7f03b519787b4cffc3a7"},{"file":"sfx\/bull_start_vo_02.ogg","sha":"0079ab2d107a018df3a60b732bb40d067ee6c7c4"},{"file":"sfx\/bull_start_vo_03.ogg","sha":"53ad72423ab004d64e10be171a68a86de5b52b3d"},{"file":"sfx\/bull_ulti_vo_01.ogg","sha":"28421a46d26f8576b3152286ca973a6802e2787f"},{"file":"sfx\/bull_ulti_vo_02.ogg","sha":"976fb5f7997446e7437b4e523e537f52341626ee"},{"file":"sfx\/bull_ulti_vo_03.ogg","sha":"331bec996755426acd5393f5921a0fc32a528b9b"},{"file":"sfx\/bull_ulti_vo_04.ogg","sha":"b213f32fcacea6cc6377b69d38a2d545724558f7"},{"file":"sfx\/bullet_rico_grass_02.ogg","sha":"e917b9f2c7f4f9ac7f41970f6d52b7656e648170"},{"file":"sfx\/bullet_rico_metal_01.ogg","sha":"6c0040c09dfa272a6f9d2b9804145fcb42d7f5bf"},{"file":"sfx\/bullet_rico_rock_01.ogg","sha":"b30b155f982aa6d136fdff678a2df8a6afd495ef"},{"file":"sfx\/bullet_rico_wood_01.ogg","sha":"eaa0136db9dbb9b71df83676b3bdc3dd27ead780"},{"file":"sfx\/buy_gems_01.ogg","sha":"1b4aa5ec7778c0ac3bd0e8caa767ce5534801f68"},{"file":"sfx\/carl_atk_01v2.ogg","sha":"ed5a4edcb6d4bf5185bfd0ef32089b2665854308"},{"file":"sfx\/carl_atk_hit_return_01.ogg","sha":"e1b2456c314fee2be9666e90e1f312197772578a"},{"file":"sfx\/carl_atk_return_03.ogg","sha":"d425c8c43e7b623dc9c32d5118ec3644d668f64e"},{"file":"sfx\/carl_atk_vo_01.ogg","sha":"cbe169845f7f9327527a7279b90bb9f46b2ea38d"},{"file":"sfx\/carl_atk_vo_02.ogg","sha":"89dcc7d19e16fd031d2842b9aec73d8056b59d53"},{"file":"sfx\/carl_atk_vo_03.ogg","sha":"d2813436387a547a8912ac09156ab2c7d6903956"},{"file":"sfx\/carl_death_vo_01.ogg","sha":"be42c11c32389f54c3e63efbf66b392d987b82b9"},{"file":"sfx\/carl_death_vo_02.ogg","sha":"485b736c03e09be52d31b3489a7bdc77b02ea088"},{"file":"sfx\/carl_death_vo_03.ogg","sha":"9814d936fbeda4f1b93741490f908ed36c53d6de"},{"file":"sfx\/carl_death_vo_04.ogg","sha":"a756f78343bc9a48dbd26feb38de47981e8c4025"},{"file":"sfx\/carl_hurt_vo_01.ogg","sha":"4748fff958ba312a947a15d9ae28643e11340833"},{"file":"sfx\/carl_hurt_vo_02.ogg","sha":"740d698e24d5e86c88c7e909f36f9db78b20fd01"},{"file":"sfx\/carl_hurt_vo_03.ogg","sha":"1b648a8c09a9ca38cb3784ff22d43b3e82fd28cd"},{"file":"sfx\/carl_hurt_vo_04.ogg","sha":"29371c137c70376fd077084a36a3a4c31d28c5b1"},{"file":"sfx\/carl_hurt_vo_05.ogg","sha":"429d8626a495943ea4ed500027064af83b59f1a9"},{"file":"sfx\/carl_kill_vo_01.ogg","sha":"6a8e28199f5f573246091418a3ded4fa4f8ec7c2"},{"file":"sfx\/carl_kill_vo_02.ogg","sha":"e370d0a1b226ae00853a8f1188ac19c9c44b42b3"},{"file":"sfx\/carl_kill_vo_03.ogg","sha":"db23f8c830510a647539b316a72dfb344db24d1d"},{"file":"sfx\/carl_kill_vo_04.ogg","sha":"ea1c5fd2fdd2ffb1b70ace25f92e9097f4461dfe"},{"file":"sfx\/carl_kill_vo_05.ogg","sha":"990fdc62f409c176a3022bc83d5944fa387ae0e6"},{"file":"sfx\/carl_lead_vo_01.ogg","sha":"717f925aa93bb5b7299462a39cc6da06808bac24"},{"file":"sfx\/carl_lead_vo_02.ogg","sha":"ab3f5e938702b036677cecfeedfc4b26e0dc9c74"},{"file":"sfx\/carl_lead_vo_03.ogg","sha":"8cc47ce53e28048462d184f200aba25ab739e6ee"},{"file":"sfx\/carl_lead_vo_04.ogg","sha":"7a21f7e9d1c18a5c592bae4a2b65c0016dd02490"},{"file":"sfx\/carl_no_ammo.ogg","sha":"6ecfc96fbe22d0c6266995068febaa7ef9f9a0c9"},{"file":"sfx\/carl_reload_01.ogg","sha":"7458c32b543644e5341331592060590ae203b989"},{"file":"sfx\/carl_start_vo_01.ogg","sha":"ec8c950581c9dceb060e09c81797e38c1cf8abe9"},{"file":"sfx\/carl_start_vo_02.ogg","sha":"37b2b14c68580f53758d2cacaa4249732a5f0a46"},{"file":"sfx\/carl_start_vo_03.ogg","sha":"78b42cb2edd6509cd41ce62d195452057f57d72a"},{"file":"sfx\/carl_start_vo_04.ogg","sha":"6eba1850038636be35d9ea25d4e1dfb7eadaa30d"},{"file":"sfx\/carl_start_vo_05.ogg","sha":"74fe495ac4f99e77c58c950c92880bf2d84b923e"},{"file":"sfx\/carl_start_vo_06.ogg","sha":"bf3b343f83232bb74a09e3ced2cbc6aaa74d6d41"},{"file":"sfx\/carl_start_vo_07.ogg","sha":"06045fa68294fc40ddc88893f2b4ae18726ad91b"},{"file":"sfx\/carl_twirl_02.ogg","sha":"c31f1520a63111aa156af03375ac234d1d5580fa"},{"file":"sfx\/carl_ulti_vo_01.ogg","sha":"a3ec8eaa5353d93b8b188df47f0b34782f806663"},{"file":"sfx\/carl_ulti_vo_02.ogg","sha":"2f1e3bb76dbfe024e3019471053dd4f51e2602d9"},{"file":"sfx\/catch_bawl_01.ogg","sha":"e0f2e09f3b9cb51ae74358fe8b7952efda730764"},{"file":"sfx\/char_respawn_01.ogg","sha":"1499669b3d764c1b4311f5cc9759edb8c0586cff"},{"file":"sfx\/char_roll_out_02.ogg","sha":"463cd5fe5f39d166195a58966bf6477e61b9987a"},{"file":"sfx\/coin_count_02.ogg","sha":"d7ca38a63fe2d64a97aa980d4ab1d0e15721518b"},{"file":"sfx\/coin_hit_01.ogg","sha":"1270c21546a6452e4abc26cc912cb8f504bc2ac1"},{"file":"sfx\/collect_coins_01.ogg","sha":"c7db690c363854bff3d82162396774f89ec97d7c"},{"file":"sfx\/count_gems_01.ogg","sha":"75f297d719e4456535d5c1df9dabdc9043460035"},{"file":"sfx\/count_keys_01.ogg","sha":"0f68ac529f3c8a893797c49ec307b6d1715a526e"},{"file":"sfx\/count_powerpoints_01.ogg","sha":"3366851b21041cbf8f5027bcf03eeb676ce228b3"},{"file":"sfx\/count_starkeys_01.ogg","sha":"d8344b876a5b9a5448ea2d10de7fcdad27edba3c"},{"file":"sfx\/count_tickets_01.ogg","sha":"8394eb98b530891e1151b76a5f0df26a91816cf3"},{"file":"sfx\/count_trophies_01.ogg","sha":"6b7dc7dbb8a551bd5b28216dbae63580a7dbdd2a"},{"file":"sfx\/countdown_01.ogg","sha":"472cab6986ace9fe13078909959d08e851313233"},{"file":"sfx\/craft_rarity_01.ogg","sha":"a746da547f4f714a45fe024d6365b08faaba0f33"},{"file":"sfx\/craft_rarity_02.ogg","sha":"bd314e7597f2fae1466631067405c89b1d584e76"},{"file":"sfx\/craft_rarity_03v2.ogg","sha":"d6cdbd475e5d4ce926ea408f4aed63a76748a104"},{"file":"sfx\/craft_rarity_04v2.ogg","sha":"1a3ad12e1e47a136d5b0d06b04f48d353710bd4b"},{"file":"sfx\/craft_rarity_05.ogg","sha":"d65e8da83b27787bcb07c2a6b7c100b3038da488"},{"file":"sfx\/crow_dies_01.ogg","sha":"2499018032b211bac3ec3be67fe292b3869bab2b"},{"file":"sfx\/crow_dryfire_01.ogg","sha":"78b91a2f1ff7d3239a1766ff638839007c7d8e5d"},{"file":"sfx\/crow_get_hit_01.ogg","sha":"c7be89c9412241c846de66988f8e58b51d9f328c"},{"file":"sfx\/crow_get_hit_02.ogg","sha":"72e0489ba4abf557c5a9f3f21d9ce866cd623df8"},{"file":"sfx\/crow_get_hit_03.ogg","sha":"4766514074b0b8f7b6a52ba3199e89e55d50d47f"},{"file":"sfx\/crow_get_hit_04.ogg","sha":"c5366eb809bf746a762606ffa222f5cab19a3c7b"},{"file":"sfx\/crow_get_hit_05.ogg","sha":"f73f3dfa3b949f357e6d9ebe97b9aaca3e993649"},{"file":"sfx\/crow_get_hit_06.ogg","sha":"8e13ab89e1fa6acefad07039cc0fd05d06920cb7"},{"file":"sfx\/crow_kills_01.ogg","sha":"bec13346dd20673372d0860d53775bf81b9743e7"},{"file":"sfx\/crow_kills_02.ogg","sha":"8f518bb4cac52a01e04a21aae4950d82873a89c9"},{"file":"sfx\/crow_kills_03.ogg","sha":"1d7b25b04038671559b07a2aaba176198224c260"},{"file":"sfx\/crow_lead_01.ogg","sha":"2bf988c71f59b91164ed41c6767237c8c6952a3e"},{"file":"sfx\/crow_lead_02.ogg","sha":"088f69f5cb7550933306e11255282d6adf226e32"},{"file":"sfx\/crow_reload_01.ogg","sha":"143b6056a546b0ddf8f065fa41ad91428c426865"},{"file":"sfx\/crow_start_01.ogg","sha":"7ffcc5d14201834a6d4371d491c737173da46941"},{"file":"sfx\/crow_start_02.ogg","sha":"6583e52cb5deef9eded991089377ac7f45fecccd"},{"file":"sfx\/crow_start_03.ogg","sha":"08df7ac43c8185dd00549b0476b1c99856e7a431"},{"file":"sfx\/crow_throw_01.ogg","sha":"ad78c1b1e3ff03bf8af01ebe94d39d360ff8ea62"},{"file":"sfx\/crow_ulti_01.ogg","sha":"71d37626945ca3b01ff09883cdb2cbaf2c5a09db"},{"file":"sfx\/dash_gadget_01.ogg","sha":"9c12b41489e018cffc37f49d48be9a6c72f8a59a"},{"file":"sfx\/deadyey_shot_01.ogg","sha":"aedfea76b8ac21f1d6c1790047b36f4b6271a87c"},{"file":"sfx\/death_plop_01.ogg","sha":"abfc6e34cda790167e26cccb23a37639facace34"},{"file":"sfx\/drink_powerup_01.ogg","sha":"7411ac0a9916a0a8702ce90ec5094caa476e3a35"},{"file":"sfx\/dummy.ogg","sha":"f2b272e3cf735198c0dd043599bb502222887bf5"},{"file":"sfx\/dynamike_gadget_01.ogg","sha":"4dc34ca1b09e6f65b163b883873616306168a4f3"},{"file":"sfx\/dynamike_throw_01.ogg","sha":"a352bc77a7c8224fb9e6941423c6dddbd83f654a"},{"file":"sfx\/dynamike_throw_02.ogg","sha":"ae0740fcae263e7069ceebbb79a6442a708d2b0f"},{"file":"sfx\/earth_atk_01.ogg","sha":"72b4c455f4baf2ecc20f233d3fe6c2053f200e27"},{"file":"sfx\/el_primo_atk_01.ogg","sha":"96d093b50946456b68857860fae8841f63aa8f08"},{"file":"sfx\/el_primo_atk_02.ogg","sha":"51bc0f52545ee1c1ec7c9cbbdb94bc225ecee457"},{"file":"sfx\/el_primo_atk_03.ogg","sha":"7b44059425550ddbfeb71183e98c3e5237ac9099"},{"file":"sfx\/el_primo_atk_04.ogg","sha":"b27022c259d77c38cc9ade7023418d0c18d31796"},{"file":"sfx\/el_primo_atk_05.ogg","sha":"efec73f44c688df6d4cc48b35b26504140196b11"},{"file":"sfx\/el_primo_death_01.ogg","sha":"2990c77ceb3e83506fca708339513dc125871865"},{"file":"sfx\/el_primo_death_02.ogg","sha":"ff0c946f6ec62bccdf68c634f2ba15c714af25dc"},{"file":"sfx\/el_primo_death_03.ogg","sha":"3a1d8679068f1b0ba202bfc59f0a21eac3265fd7"},{"file":"sfx\/el_primo_death_04.ogg","sha":"f161e0de07c6871b7e2d8eed7db683143213dd67"},{"file":"sfx\/el_primo_hurt_01.ogg","sha":"5e7e01623389212b45979b8c7b2dcfa62b593be0"},{"file":"sfx\/el_primo_hurt_02.ogg","sha":"eef055b5c36952ab89da6a763d5f0a478ce65e21"},{"file":"sfx\/el_primo_hurt_03.ogg","sha":"78c9bf4aa6a32bf9c2a36dce15f187525e6c7ce5"},{"file":"sfx\/el_primo_hurt_04.ogg","sha":"ebb9b874b39d25550c5f4d97c17d0ab06528199f"},{"file":"sfx\/el_primo_kill_01.ogg","sha":"b9f19ffc43afc6a83791af50ed4a18fc5669063a"},{"file":"sfx\/el_primo_kill_02.ogg","sha":"4d51ce3f568036748cd699c5013087f15383e63a"},{"file":"sfx\/el_primo_kill_03.ogg","sha":"630348f8cd370e4ff94aa965d6a5afa9b1f6a361"},{"file":"sfx\/el_primo_lead_01.ogg","sha":"08e1724112b39b16ad8d766ccb2c9b4d6aef4f9e"},{"file":"sfx\/el_primo_lead_02.ogg","sha":"bfa37d3959da6cce459915c8078fcc2292b0de64"},{"file":"sfx\/el_primo_lead_03.ogg","sha":"28a273cc5a339cc5ff5219af83f94ca190097309"},{"file":"sfx\/el_primo_start_vo_01.ogg","sha":"5d763fa671067356d1f069c54eb1135a63a415a8"},{"file":"sfx\/el_primo_start_vo_02.ogg","sha":"f94c784b720acafe2c9ae4ba414c3a1b1d4beee7"},{"file":"sfx\/el_primo_start_vo_03.ogg","sha":"e78442e1fe087f817d0f257892060c33ae98a7c9"},{"file":"sfx\/el_primo_start_vo_04.ogg","sha":"2a6a9d2ee8dcadd6574d69a7802f77e20bc42087"},{"file":"sfx\/el_primo_start_vo_05.ogg","sha":"792453a3f0dea09f151ab237eb9906216e8a1d86"},{"file":"sfx\/el_primo_start_vo_06.ogg","sha":"1cb6df6d0d2eeb0f0169bfe80972661b1daa1226"},{"file":"sfx\/el_primo_start_vo_07.ogg","sha":"2ca28adc52f1facd933b76c24352d06339ddf2e1"},{"file":"sfx\/el_primo_ulti_01.ogg","sha":"79c026c98cc203807e490744fdafe0b0d1408efb"},{"file":"sfx\/el_primo_ulti_02.ogg","sha":"cdc00f6f261623938b7510c21fa005f318efd43f"},{"file":"sfx\/emit_coins_01.ogg","sha":"3271683ea7677f12945415ebee947efb4a8c4f3a"},{"file":"sfx\/emit_gems_01.ogg","sha":"86b6befcb5097e10c4f276fa634215e7aa02836a"},{"file":"sfx\/emit_keys_01.ogg","sha":"8868aba0ee5fd839459c2c21fef865e27353f987"},{"file":"sfx\/emit_powerpoints_01.ogg","sha":"22154966b61c199e14b9110b212b962d5f94e315"},{"file":"sfx\/emit_starkeys_01.ogg","sha":"b803e3970b8e7492148edda371bb9da264ed5bc8"},{"file":"sfx\/emit_tickets_01.ogg","sha":"c94f87b11a84d833d83b57e9036a68ae4bf5c2ed"},{"file":"sfx\/emit_trophies_01.ogg","sha":"1895b2ae414e969bb90d7ad731eeab8f045ead37"},{"file":"sfx\/emz_atk_01.ogg","sha":"65deb8750bba25049ceab0786751c411553fb5cd"},{"file":"sfx\/emz_atk_vo_01.ogg","sha":"f249f6858155c5b484e658e4355ad1bb4ce662a1"},{"file":"sfx\/emz_atk_vo_02.ogg","sha":"f0efb8a97e53c1480447446d6a1949def5df907e"},{"file":"sfx\/emz_atk_vo_03.ogg","sha":"0860f1d740b4969df0381faf703cf06c7e7de221"},{"file":"sfx\/emz_atk_vo_04.ogg","sha":"0c123a8a3db6aea5d16fe45439886cc36b782ce6"},{"file":"sfx\/emz_atk_vo_05.ogg","sha":"2ea6097a7ca32f79f60306a1388606bb11efcc96"},{"file":"sfx\/emz_die_vo_02.ogg","sha":"66607f41c764e3fc00b24927c1d6d16007d7680c"},{"file":"sfx\/emz_die_vo_03.ogg","sha":"751cc315e2fe89105c02d9b02b92ed92652240c0"},{"file":"sfx\/emz_die_vo_04.ogg","sha":"de46974452738f17a28cb8138a6a73ea00e64d6e"},{"file":"sfx\/emz_dryfire_01.ogg","sha":"e6f3147ded4f460520ff36ff613f31a053bfaef3"},{"file":"sfx\/emz_gadget_01.ogg","sha":"83ae0ad1e586a9dbd548a8b9b919c679ed6911ed"},{"file":"sfx\/emz_hurt_vo_01.ogg","sha":"09418c6547cc1e8f43ec74e9866702c547acd8d8"},{"file":"sfx\/emz_hurt_vo_02.ogg","sha":"0955defc2ffdd78cb442230d105af5aa9115d26d"},{"file":"sfx\/emz_hurt_vo_03.ogg","sha":"810402085be536491fde548db336f553b5c69e37"},{"file":"sfx\/emz_hurt_vo_04.ogg","sha":"06880d0d32c79724637cc9e30b0ecae0161d784d"},{"file":"sfx\/emz_hurt_vo_05.ogg","sha":"992f837ec1de33d6c239e56668d0298ef52a1a4e"},{"file":"sfx\/emz_hurt_vo_06.ogg","sha":"b8fb20d954901adbd097399221a26beab128a5f2"},{"file":"sfx\/emz_hurt_vo_07.ogg","sha":"b8cc51af30715d59a4867c99952cdf2bd732d96b"},{"file":"sfx\/emz_kill_vo_02.ogg","sha":"1d25aa4b730df6e6625acf97ab41b38952cc65b2"},{"file":"sfx\/emz_kill_vo_03.ogg","sha":"1223d96e9d6742bffc173e98052872032d60fb67"},{"file":"sfx\/emz_kill_vo_04.ogg","sha":"a044a28f1587e52b2b7abbb49ec657628d6b731a"},{"file":"sfx\/emz_kill_vo_05.ogg","sha":"9b57f0f9c112b3114d6448a2a0107bd74c238086"},{"file":"sfx\/emz_kill_vo_06.ogg","sha":"5a7536efab9258b55f9d41f9995da9af5f8918f8"},{"file":"sfx\/emz_kill_vo_07.ogg","sha":"a617ab5d39a6bd230dd7a5728410521aad691ee8"},{"file":"sfx\/emz_lead_vo_02.ogg","sha":"269e0a62c7f7afa578a740aac3eef5065c13ff44"},{"file":"sfx\/emz_lead_vo_03.ogg","sha":"5e9ab873b5bceb1a8e12fbecc0039a519c99f7ef"},{"file":"sfx\/emz_lead_vo_04.ogg","sha":"3548d56c561bab55f8c0b8147d0c7376c39ac6a1"},{"file":"sfx\/emz_reload_01.ogg","sha":"750e6b1e63da6ba8a9ab028818d4831288f56b7e"},{"file":"sfx\/emz_start_vo_01.ogg","sha":"613d6863136663e317d5af164d9a76fc08034e05"},{"file":"sfx\/emz_start_vo_02.ogg","sha":"d2af0c366cc74248fd5105d7d982a4bf04753da4"},{"file":"sfx\/emz_start_vo_03.ogg","sha":"a88292efb3f389bc182765cb9b43cf6d949c6b8c"},{"file":"sfx\/emz_start_vo_04.ogg","sha":"5dc56888b17b4bcc9be7134350c7688d42f0b286"},{"file":"sfx\/emz_start_vo_05.ogg","sha":"75f4bd3451c0ac3bb4762faa95730231dcd26c35"},{"file":"sfx\/emz_ulti_01.ogg","sha":"12a856657723449f8df2fb8c3ab8a27772c16935"},{"file":"sfx\/emz_ulti_vo_01.ogg","sha":"8143a305676c23067c1f6a6954f3a05b7e2f20a0"},{"file":"sfx\/emz_ulti_vo_02.ogg","sha":"6b49aa2fcfa7492b448973f62b995fb1370072c0"},{"file":"sfx\/enemy_char_respawn_01.ogg","sha":"af61b7414b91343a0917015d2ca1875d66b2b3d3"},{"file":"sfx\/enemy_gadget_button_01.ogg","sha":"140a1b6d539d8448d5763913bdb769667c646726"},{"file":"sfx\/flowerrocket_01.ogg","sha":"45c27cd67f860e92e44b894c53cb60aadfeb805f"},{"file":"sfx\/footbrawl_load_01.ogg","sha":"b4e20f809da31e42c7eb1184f617c0976f31bb5a"},{"file":"sfx\/frank_gadget_01.ogg","sha":"00e8341c1e40403c672639461d85341554a8ed0d"},{"file":"sfx\/frank_hit_01.ogg","sha":"88b88376165fa8b42b4a31bb34351814cfb6b619"},{"file":"sfx\/frank_swing_01.ogg","sha":"ff12006164b71b9399ba2235eea6b80ef1e5d44c"},{"file":"sfx\/frank_ulti_hit_01.ogg","sha":"278dbb1bef07d903364ed293cb6cc5f78db8849d"},{"file":"sfx\/frank_ulti_swing_01.ogg","sha":"22575bb44154df8bb48493e68aa691d92688a07f"},{"file":"sfx\/frank_vo_01.ogg","sha":"75d8c03f0ab3a3a43edf7a43bf55c52dcf6a15b1"},{"file":"sfx\/frank_vo_02.ogg","sha":"aea5952068e3b6bf877d1a3cb76d4bc26fd300fa"},{"file":"sfx\/frank_vo_03.ogg","sha":"860be5704919b274873272c6e13cfa5289f3c497"},{"file":"sfx\/frank_vo_04.ogg","sha":"447794ebabf3f9b7f4235c1c2cce29222161d300"},{"file":"sfx\/frank_vo_05.ogg","sha":"0d3f534c848217f9a70909a0e8c860444d3189d6"},{"file":"sfx\/frank_vo_06.ogg","sha":"f68fce34c25914a43bad927706fd8e1710c011c4"},{"file":"sfx\/friend_online_01.ogg","sha":"4fb8d51160c8a4b7ae29a6430f1655812aa27807"},{"file":"sfx\/gatcha_summary_01.ogg","sha":"0bb494aa7511faeb74dd1e9633fee1bfdf4e5aba"},{"file":"sfx\/gems_gatcha_01.ogg","sha":"f9f2eff61c8b842d4841fb77ca7ab2c99d108f4a"},{"file":"sfx\/gen_small_explo_02.ogg","sha":"c25608e389f81c3831f3d919dc7337ebe83cb4df"},{"file":"sfx\/gene_atk_02.ogg","sha":"ca2ba674ebac1eacda8fc1e0a5da9f5dbb5f67ed"},{"file":"sfx\/gene_atk_dry_01.ogg","sha":"dfe4fa3876b8cc803fc1987c347d1bd648251835"},{"file":"sfx\/gene_atk_hit_01.ogg","sha":"3ab8fea80a5d67e0b0211aa6c241e4cacbffbd95"},{"file":"sfx\/gene_atk_hit_02.ogg","sha":"62ee8cbbfaf403e8e0afa37781b6b9016b39d450"},{"file":"sfx\/gene_atk_reload_01.ogg","sha":"9675906fb5f9207994fdba309fc0906a48539048"},{"file":"sfx\/gene_atk_split_01.ogg","sha":"1137fdad71a8f637bd3db7ed3d25042e83050ed2"},{"file":"sfx\/gene_atk_ulti_01.ogg","sha":"f45e3c3fc562789d93eb1e273b132569051df984"},{"file":"sfx\/gene_gadget_01.ogg","sha":"45c285453dd15f24d417372e94b492a7457418f5"},{"file":"sfx\/gene_hit_01.ogg","sha":"7a06db3f920f5fbc092a896e7ff9cb78114857a3"},{"file":"sfx\/gene_vo_01.ogg","sha":"e85dae39f54dc799ddff0f3e0059498f1984d260"},{"file":"sfx\/gene_vo_02.ogg","sha":"a0d399106a918c2a0bbda46b45060f39d077e505"},{"file":"sfx\/gene_vo_03.ogg","sha":"f659626e45910bc359864a46d93e562dd650036d"},{"file":"sfx\/gene_vo_04.ogg","sha":"200a53dd2073019ac7e5538c274c5d4698923e82"},{"file":"sfx\/gene_vo_05.ogg","sha":"2ec8983ca605d96f0333a0edc159d8f91aa710df"},{"file":"sfx\/gene_vo_06.ogg","sha":"2d3854b2e423b765d4d97c5c470d58199fcab3d7"},{"file":"sfx\/gene_vo_07.ogg","sha":"d998fbf1186b76a94416c58c33cf949c45be9980"},{"file":"sfx\/gene_vo_08.ogg","sha":"8e500ede9bcf3e700133cb3e7b532a7451967972"},{"file":"sfx\/gene_vo_09.ogg","sha":"05b75becc513ee2b5172dae6e5a86b04a895a140"},{"file":"sfx\/gene_vo_10.ogg","sha":"afb6b64f02fd034ff592904391074e874c8ecc06"},{"file":"sfx\/gene_vo_11.ogg","sha":"f1f6086ad2ed55b3eac5143974e9ac609f882f99"},{"file":"sfx\/gene_vo_12.ogg","sha":"ab256098e6b96737cb0b4ca07a011efb3e454464"},{"file":"sfx\/gene_vo_13.ogg","sha":"2b90210bf5f8a5aab26b9aa8c023ed4305e47382"},{"file":"sfx\/gene_vo_14.ogg","sha":"e29b25ec31da1c5e885c2b9511d240f0151a8ff7"},{"file":"sfx\/get_coins_01.ogg","sha":"148f04741943c66588ab70af0b8219a4d6d0fb4a"},{"file":"sfx\/get_pickup_02.ogg","sha":"e31b29b5bb025b322fd29f7c5f65d0d66ddcedb2"},{"file":"sfx\/get_pickup_06.ogg","sha":"69e1fafb0cbb227cf6257ab47b5496c66f36edb7"},{"file":"sfx\/get_powerpoints_01v2.ogg","sha":"e4629a5155516755a3b71697a9e274799893973d"},{"file":"sfx\/get_powerpoints_02v2.ogg","sha":"a757fccf7e9fc72dccea730d413b63bdd188a2a1"},{"file":"sfx\/get_powerpoints_03v2.ogg","sha":"e8c74224a55a1c7fb0547563a537c5307e075274"},{"file":"sfx\/get_pp_2_accent_01.ogg","sha":"19e48b89b555d51047588d1f65cacc44982b80e1"},{"file":"sfx\/get_pp_accent_01.ogg","sha":"17589193e55f414d537bfbbadf293cb6a6dbf51c"},{"file":"sfx\/get_star_points_01.ogg","sha":"b3ab4ba958c03a1fa451d480e4fc9de2588d456d"},{"file":"sfx\/get_tickets_01.ogg","sha":"882b0d6628185b7816824fe99e808e7b1c48826c"},{"file":"sfx\/get_trophies_01.ogg","sha":"c43f7a34da78f6b45f5513a12f0bbc793bdfe213"},{"file":"sfx\/get_xp_01.ogg","sha":"2fcee6182bf2056cc1bfb715857fd2bb2fadcd9f"},{"file":"sfx\/gr_launch02.ogg","sha":"f352299626e9aeea3b9dfbc93669a651d8392927"},{"file":"sfx\/guntown_select_char_01.ogg","sha":"d5fd8878e591ad65927a3fd0604d133e867b5eb6"},{"file":"sfx\/heal01.ogg","sha":"08c5deea7be785039afce51790f70add3c75431c"},{"file":"sfx\/heal_loop_01.ogg","sha":"4492ee8efd05418c39ad06fbfc2be8ba0c766509"},{"file":"sfx\/hotshot_die_01.ogg","sha":"a98a093761c7144ae995a14ac7d9f8947369d786"},{"file":"sfx\/hotshot_die_02.ogg","sha":"35e2afdb7fbb1349ab1b135e284333173e689092"},{"file":"sfx\/hotshot_die_03.ogg","sha":"171473df0264151c95bbaf851151808e07a022fb"},{"file":"sfx\/hotshot_die_04.ogg","sha":"b1257bcda54816e967831b3195485fac5c7b2148"},{"file":"sfx\/hotshot_hurt_01.ogg","sha":"2bab9f4e19d9f3d08d9a34f3a507b17fb19dca99"},{"file":"sfx\/hotshot_hurt_02.ogg","sha":"fa1d18704b975aa18318860bd7e833ba9ddc366f"},{"file":"sfx\/hotshot_hurt_03.ogg","sha":"1bdae712078b77033f981403a0b6df862185bba7"},{"file":"sfx\/hotshot_hurt_04.ogg","sha":"092211a4218e055ca2d371def882bf8b9e42e4e0"},{"file":"sfx\/hotshot_hurt_05.ogg","sha":"2b1797a54cc0414383aefc0626efc6ed561e7e22"},{"file":"sfx\/hotshot_hurt_06.ogg","sha":"b152778d574613a86f5afe7ebf905cb94b95265c"},{"file":"sfx\/hotshot_hurt_07.ogg","sha":"6dbd8571a8df16698099520ee534db848c25e4b4"},{"file":"sfx\/hotshot_hurt_08.ogg","sha":"7620d5369cc91ac385e1fa1f40db9c131d695a66"},{"file":"sfx\/hotshot_kill_01.ogg","sha":"80b86b6e0f3a8a0eae378944dfcdd98ff2c7cb6e"},{"file":"sfx\/hotshot_kill_02.ogg","sha":"e8f86fc77b325013988ed7c52b64e3795c946941"},{"file":"sfx\/hotshot_kill_03.ogg","sha":"b7f15507779d1be49f1b3df88b41f2a056a9b108"},{"file":"sfx\/hotshot_kill_04.ogg","sha":"e99af5b4bee225617bc4ed2ab8a900e26eaf5b3b"},{"file":"sfx\/hotshot_kill_05.ogg","sha":"83c0b5bbc6780d856bb64482321125c220e223c2"},{"file":"sfx\/hotshot_kill_06.ogg","sha":"c719aec18f5bd4ccfb69684f0c57391b7ca1b144"},{"file":"sfx\/hotshot_kill_07.ogg","sha":"77d6a5161de040be1f81264a74fe6d92830624ac"},{"file":"sfx\/hotshot_lead_01.ogg","sha":"cc932e98ea8cf66a86a3ed34bfb011cacf975d3a"},{"file":"sfx\/hotshot_lead_02.ogg","sha":"4a4c1b9f0790204423c9b6b4817470fd8ec4bd17"},{"file":"sfx\/hotshot_lead_03.ogg","sha":"a48e2258c30b7d0b146697e49d6d3081564473e5"},{"file":"sfx\/hotshot_lead_04.ogg","sha":"2989e77457504b47ea3f874728ede9b9e4f3304d"},{"file":"sfx\/hotshot_lead_05.ogg","sha":"d3d60a25f30b16997e05bbcbe8af04656bc82f69"},{"file":"sfx\/hotshot_start_01.ogg","sha":"0eba7c66599caedf54fcc834be11c5a3e6c318da"},{"file":"sfx\/hotshot_start_02.ogg","sha":"b967bb16f19581cc1d791dfafba4d16560a8bd9e"},{"file":"sfx\/hotshot_start_03.ogg","sha":"130a1c83af85d67a546bca7707b4b7a8a1c38f5b"},{"file":"sfx\/hotshot_start_04.ogg","sha":"7640749b4e97e5aec89bbd159d1d9f4f39dd553c"},{"file":"sfx\/hotshot_ulti_01.ogg","sha":"bc8c6cab0713407f02be42df0ab6016864bc1ca7"},{"file":"sfx\/hotshot_ulti_02.ogg","sha":"a11a9f95e61f60c3331c6cc23f55d07e0715eb00"},{"file":"sfx\/hotshot_ulti_03.ogg","sha":"b9cb578d6d5f4ee6e66f400d1d3cd835bafcc099"},{"file":"sfx\/hotshot_ulti_04.ogg","sha":"cd06ed91b03d13554bbb21bbae4daee3c99578c2"},{"file":"sfx\/item_swirl_01.ogg","sha":"d6441c32a83b5a821bb40a5178e7af6bafb3499a"},{"file":"sfx\/jackie_atk_01.ogg","sha":"932f48fc6fbc1de4cb5498b88651fc4967628d68"},{"file":"sfx\/jackie_atk_02.ogg","sha":"b93d446e1e3b9c57b57408474f206de787a03295"},{"file":"sfx\/jackie_atk_ulti_01.ogg","sha":"9f1958cf934f5dd651b68046f22f6576d8cc81e4"},{"file":"sfx\/jackie_atk_ulti_02.ogg","sha":"1474f538491406545e23359ebc2a7385d30839ee"},{"file":"sfx\/jackie_atk_ulti_03.ogg","sha":"cb3e486825706e1bc004159245018bafb4cbaf89"},{"file":"sfx\/jackie_die_vo_01.ogg","sha":"ff2535b7571d47caa150bca260f76563cc1655a8"},{"file":"sfx\/jackie_die_vo_02.ogg","sha":"6b9f3f5ef56bc150eec0c5b790bf2969a40b4896"},{"file":"sfx\/jackie_die_vo_03.ogg","sha":"e93c958adae80f3c7062aeb7412851984af927d9"},{"file":"sfx\/jackie_die_vo_04.ogg","sha":"91dd9e303040e78841feeb3f7d2f452a39a50545"},{"file":"sfx\/jackie_dryfire_01.ogg","sha":"2e75de281ae23be4ecdab67b854d5aa4d1a71999"},{"file":"sfx\/jackie_hurt_vo_01.ogg","sha":"392f10e4a62215e250de95da52f1689373e9e64c"},{"file":"sfx\/jackie_hurt_vo_02.ogg","sha":"69cb8257f89731824dfc3529451068becd6fb302"},{"file":"sfx\/jackie_hurt_vo_03.ogg","sha":"82a7d038b0871d53c43ccd2e126fcb07c23527b4"},{"file":"sfx\/jackie_hurt_vo_04.ogg","sha":"8e3d1e9085674fda1a92aed239ea10dbf6023792"},{"file":"sfx\/jackie_hurt_vo_05.ogg","sha":"7902a0cc4d1d80085c9dc402d6cd7f007b8d7e7c"},{"file":"sfx\/jackie_hurt_vo_06.ogg","sha":"abe19becadb221d21746c305d4d4c9fbabe560bb"},{"file":"sfx\/jackie_kill_vo_01.ogg","sha":"bc95ceebfaf0cc6cd213d818a6cef5542b2a18fa"},{"file":"sfx\/jackie_kill_vo_02.ogg","sha":"d021196ba18d6cb21c0e897ad054ca0c1057561d"},{"file":"sfx\/jackie_kill_vo_03.ogg","sha":"b53fcbc880312dd6da5d0f26e56b367403be4838"},{"file":"sfx\/jackie_kill_vo_04.ogg","sha":"627ba75e28f3b4a5c1ad66ad426628dc4274dabb"},{"file":"sfx\/jackie_kill_vo_05.ogg","sha":"ef37b6d61d38f59ae51c66b3f192c5c6f10cb8dc"},{"file":"sfx\/jackie_lead_vo_01.ogg","sha":"1a3cd657396ec02f5598419e13ee3b14dc8e5b1c"},{"file":"sfx\/jackie_lead_vo_02.ogg","sha":"c103a91d77452fead3da6dd22bbd939f278e1582"},{"file":"sfx\/jackie_lead_vo_03.ogg","sha":"02898adec2a2d23d1c74175d4ab9e840c0b7f5a2"},{"file":"sfx\/jackie_lead_vo_04.ogg","sha":"2a8f8bbda19d2a180c5058cee6ae4c9ad22b2f17"},{"file":"sfx\/jackie_reload_01.ogg","sha":"8ccaa58d7e13fde357a2d89bafffbab6a7e50c59"},{"file":"sfx\/jackie_start_vo_01.ogg","sha":"ceac52a57e3dcc46b112672a9ebae8ba452a2009"},{"file":"sfx\/jackie_start_vo_02.ogg","sha":"533e495a2bd18c60167440fa92f3c4fb5b9674fb"},{"file":"sfx\/jackie_start_vo_03.ogg","sha":"5ab586ccb3ffad39707a335608943627d1018592"},{"file":"sfx\/jackie_start_vo_04.ogg","sha":"cbc89a7cf535c688eae3d99999b9c3cf6f450bd6"},{"file":"sfx\/jackie_ulti_vo_01.ogg","sha":"6aa7f4788df7ff8cdab24e8f35be350e4ca8f170"},{"file":"sfx\/jackie_ulti_vo_02.ogg","sha":"7fdcfc023cd3fca8b0beef4fa95df53d66bb7323"},{"file":"sfx\/jackie_ulti_vo_03.ogg","sha":"ca867110a690484bfb1f9643cecdef55a1d38ad3"},{"file":"sfx\/jackie_ulti_vo_04.ogg","sha":"79e6fb26dad58a96dca7e8a7b9ab5aa8537855d5"},{"file":"sfx\/jackie_ulti_vo_05.ogg","sha":"32981a401c298ab4fc1db5b2d8c598fb06fc1ba3"},{"file":"sfx\/jackie_ulti_vo_06.ogg","sha":"071ca3b5d8a2c3f8473c22e25738f435063acdd6"},{"file":"sfx\/jess_die_01.ogg","sha":"83906d5e00324f812d981724d2e61f490509474b"},{"file":"sfx\/jess_die_02.ogg","sha":"13a94fc1d4150b51540b5a5b7635ac89a279d4a2"},{"file":"sfx\/jess_die_03.ogg","sha":"81732733d5dd8cb44ea2a11c153f96f8b3c4eaa6"},{"file":"sfx\/jess_die_04.ogg","sha":"ed9edc4bf470cdccc8ed3af7c7ac87d7ef57bec3"},{"file":"sfx\/jess_dry_fire_01.ogg","sha":"e73ca02985e7c5b13ca3c91a0a2c7122af516bb5"},{"file":"sfx\/jess_gadget_01.ogg","sha":"64bcfdd8babf65e2a68bb0dffbf0aa01031cba44"},{"file":"sfx\/jess_hit_01.ogg","sha":"115f2d176e29b6c75c6771672f0658f9bacc710a"},{"file":"sfx\/jess_hurt_01.ogg","sha":"faee7dcd8895fe2daaff82830e8131658a519986"},{"file":"sfx\/jess_hurt_02.ogg","sha":"b1c5f39be7f4ba1f7c28c14dd51cdc6d19316f4e"},{"file":"sfx\/jess_hurt_03.ogg","sha":"b6df83f22a29741519a8b095e34b32cb88f8c4c4"},{"file":"sfx\/jess_hurt_04.ogg","sha":"ac4179c302b695af043560efb08543f66ea802e3"},{"file":"sfx\/jess_hurt_05.ogg","sha":"35959926d1b0ba99c4e4e98f8440bf3bf4c964a9"},{"file":"sfx\/jess_hurt_06.ogg","sha":"df4a84a5df34d4c0e1ae0c26e433db231c631a19"},{"file":"sfx\/jess_kill_01.ogg","sha":"0a007cc98a0cc1b8b7b932a3cf0bc38de153c192"},{"file":"sfx\/jess_kill_02.ogg","sha":"c0db173978ace1c9f407ec0890e040c022622fd0"},{"file":"sfx\/jess_kill_03.ogg","sha":"b089968b24cd46a2b77b20bf5664c0f4a5087fb0"},{"file":"sfx\/jess_kill_04.ogg","sha":"77be36d1b5486ae46cec9ad0e9a644e7efeade81"},{"file":"sfx\/jess_kill_05.ogg","sha":"aff84c8c54c1855d23c361bfbf4ae5f59006f08f"},{"file":"sfx\/jess_kill_06.ogg","sha":"c5fc55b2729c33d63f55da7598b0c6d39cf26eb1"},{"file":"sfx\/jess_kill_07.ogg","sha":"a7803b9b7dbb54ca9695db568a3d66459236af7b"},{"file":"sfx\/jess_lead_01.ogg","sha":"84df096ea4fce5b156db706a80b68684578bb6d1"},{"file":"sfx\/jess_lead_02.ogg","sha":"8107210b19bee3bf35bfc112a0a5b8e88b2d3408"},{"file":"sfx\/jess_lead_03.ogg","sha":"df8c109ea73b411b05d4020ad065b4d1e126dac0"},{"file":"sfx\/jess_lead_04.ogg","sha":"feb36dd6ab092dcb6dd3e60ea41b5669c48908f7"},{"file":"sfx\/jess_lead_05.ogg","sha":"0b52c963489a435a15e58b829ef4c385fcd808b7"},{"file":"sfx\/jess_reload_02.ogg","sha":"0ba7db2b27098c4145da5381e3939a6905437a60"},{"file":"sfx\/jess_shoot_01.ogg","sha":"378f70b27cf4c10fa8ae8c3a5e02410567c43d85"},{"file":"sfx\/jess_start_vo_01.ogg","sha":"5a0f62a0ee035b3e9a176361eadbee358fe27955"},{"file":"sfx\/jess_start_vo_02.ogg","sha":"5ff7a79b021ea8ef2c0c351dc2ddfd1ecbe5fa89"},{"file":"sfx\/jess_start_vo_03.ogg","sha":"2b89fdd3b906706cbc17b5880f3b849fcca3d830"},{"file":"sfx\/jess_start_vo_04.ogg","sha":"4ae84a576426aafd6b56e8fbc6f9590f417a99a5"},{"file":"sfx\/jess_start_vo_05.ogg","sha":"dcfa91c1fef5a9e61cdd6c433ae1ab7a19ab8c45"},{"file":"sfx\/jess_throw_01.ogg","sha":"56eea49674a87aac9fa2aca7ebc089fe314db027"},{"file":"sfx\/jess_ulti_01.ogg","sha":"27d95e671efc052e03c352d5f7473f3545ce5604"},{"file":"sfx\/jess_ulti_02.ogg","sha":"096e4e4dbd0255dc685ec4dcdf2119b511a50fba"},{"file":"sfx\/jess_ulti_03.ogg","sha":"e85a4ca240bc093a93c799c78ac3cae667de8fb1"},{"file":"sfx\/jess_ulti_04.ogg","sha":"6c38616f07fdc7f4040c0ca1b08dc08ae00c93ff"},{"file":"sfx\/jess_ulti_05.ogg","sha":"634d8c1d3a1feeac7513c727b7b5438f57ee2385"},{"file":"sfx\/jess_ulti_06.ogg","sha":"5ded241e5de5a84c56f6766f90ffb4b3d881af49"},{"file":"sfx\/join_game_room_01.ogg","sha":"9fd0d21cc8a2c2a17ea6daf36f3501a120c82dd4"},{"file":"sfx\/laser_04.ogg","sha":"4189978114aacb5558feb8291962b2c7e374ea9a"},{"file":"sfx\/laser_explo_01.ogg","sha":"8586a32ac2b947c0cc98471bf37c2c0ac7f96d18"},{"file":"sfx\/laser_load_01.ogg","sha":"c36246a78ea7fd6dd2788a197483da18db7b1636"},{"file":"sfx\/laser_panic_01.ogg","sha":"5d034774472831ed7e5e435bedf27bf62ae1a856"},{"file":"sfx\/laser_panic_bad_01.ogg","sha":"443934e3932d4539742a77aab39a0cbccca7731e"},{"file":"sfx\/laser_upgrade_char_01.ogg","sha":"da4dfaff25956e1e4cd976b94e124b136a8e1c05"},{"file":"sfx\/leave_game_room_01.ogg","sha":"6b65cd1ab7204b5d6363d5b64963d08bfe366d69"},{"file":"sfx\/leon_die_vo_01.ogg","sha":"fb636919138486ebfe102951d7436c9b68735603"},{"file":"sfx\/leon_die_vo_02.ogg","sha":"a5d23f6c406666ee965d12ee7e4980cf9a76d613"},{"file":"sfx\/leon_die_vo_03.ogg","sha":"4c4f15d4720bd84128027b2bfecf06bb35dc3e0d"},{"file":"sfx\/leon_die_vo_04.ogg","sha":"b4fdc42148da140b347b8419cbc0da81ffd0f07b"},{"file":"sfx\/leon_hurt_vo_01.ogg","sha":"0c3eb0e7251c6e5d8f09bf5b7915e5b6ec7dc68b"},{"file":"sfx\/leon_hurt_vo_02.ogg","sha":"3410d3502000d0ea17bc701cb6b733b25babab71"},{"file":"sfx\/leon_hurt_vo_03.ogg","sha":"87c6ff3d79b59ba60a2b9eec81a7db8c61ffb190"},{"file":"sfx\/leon_hurt_vo_04.ogg","sha":"4ae6b367e8cdb9a63eb25ae158a5a5dd73a05404"},{"file":"sfx\/leon_hurt_vo_05.ogg","sha":"f119d3b779e7449a314aed9b7b7e8bc213593eec"},{"file":"sfx\/leon_kill_vo_01.ogg","sha":"d2720e0eff1a89c87c967a1c804bea2c1b7166f6"},{"file":"sfx\/leon_kill_vo_02.ogg","sha":"02d503a5ed69945d2285c5659e09eef97a09ca59"},{"file":"sfx\/leon_kill_vo_03.ogg","sha":"6b326531b94386a96562d4bf0c1f7d7118236df3"},{"file":"sfx\/leon_kill_vo_04.ogg","sha":"a256b97cf23600b9387fa344045ca7d35a4bd812"},{"file":"sfx\/leon_kill_vo_05.ogg","sha":"ac4d7b426d10d953d783649a08fec7c1b9decb62"},{"file":"sfx\/leon_kill_vo_06.ogg","sha":"4cad6787a4494127ee4d07972930a1886c5776a7"},{"file":"sfx\/leon_lead_vo_01.ogg","sha":"33d7350b2de78704121157c0803b03cdceb0e353"},{"file":"sfx\/leon_lead_vo_02.ogg","sha":"db121fcead6fb3e4d150e222f91ef00aea6b3ae3"},{"file":"sfx\/leon_lead_vo_03.ogg","sha":"bf1fd31a94023de76d0b9dc525b7e5028567e03b"},{"file":"sfx\/leon_lead_vo_04.ogg","sha":"b55be2fc5eee7aa29fbdb1b6c4c3ec12de5c3417"},{"file":"sfx\/leon_lead_vo_05.ogg","sha":"def49df85888741d17f92736d47dbf4e7a5bf81f"},{"file":"sfx\/leon_reload_01.ogg","sha":"bb02ea6c4ac87120f4b0e95bae997e84fb050da0"},{"file":"sfx\/leon_start_vo_01.ogg","sha":"454a18ec953aa7109b2e941a1ab24a17a3fe8f21"},{"file":"sfx\/leon_start_vo_02.ogg","sha":"0f55109f9534aa969a74556e1abd657b37bdd6ec"},{"file":"sfx\/leon_start_vo_03.ogg","sha":"15dc0eb1713ca880484cedb3fddbe6a9d51d70b9"},{"file":"sfx\/leon_start_vo_04.ogg","sha":"19bfb39e8db894ccd6e60fb1fd856db607224055"},{"file":"sfx\/leon_start_vo_05.ogg","sha":"7d7b1434b2f4fab3ce78b8394ce5f596efb7472d"},{"file":"sfx\/leon_ulti_vo_01.ogg","sha":"285a83133868f2308589f102029a8ab75e42edf7"},{"file":"sfx\/leon_ulti_vo_02.ogg","sha":"12b1afa89dd2601f0b7d8ff8b1aa6759b1152697"},{"file":"sfx\/leon_ulti_vo_04.ogg","sha":"ab06faa82a270ca020c2bb3b3beef061bd9a7c04"},{"file":"sfx\/leon_ulti_vo_05.ogg","sha":"02b0097fecdcb4891c0801c66f08b3314e21f626"},{"file":"sfx\/leon_wolf_ulti_vo_01.ogg","sha":"1076399d1db3e1b9d78909b2ae6aaaf0d8948e78"},{"file":"sfx\/leon_wolf_ulti_vo_02.ogg","sha":"d3bc379acf8e446c78a0dc1b043b8899a0a23c09"},{"file":"sfx\/level_up_01.ogg","sha":"5e1108d3f86d818310311c42681542e3c8c6745d"},{"file":"sfx\/ll_atk_01.ogg","sha":"55c765070b5f7b73e730132b484be23cd9e4981c"},{"file":"sfx\/ll_die_01.ogg","sha":"980406c4ed078c90bef86401673ed5ea9d218e59"},{"file":"sfx\/ll_hurt_01.ogg","sha":"53d9a545655d85ffa03eabb880c8b30da3cae165"},{"file":"sfx\/ll_kill_01.ogg","sha":"9d37b34a1021ab716ae8a0e4c4c93c9bb8dd4b2b"},{"file":"sfx\/ll_start_01.ogg","sha":"f0b0af0c5ee50ad8662c96fb93a4d144be57681d"},{"file":"sfx\/ll_ulti_01.ogg","sha":"85cfa7d10a0f8f894f835ab24339885e8eea4346"},{"file":"sfx\/ll_ulti_hit_01.ogg","sha":"f84603e21c6f1fcf3ca312e433dce72c41f37c20"},{"file":"sfx\/lose_trophies_01.ogg","sha":"4acb1ca6c8fa868485d5abd926d0ab23549094ad"},{"file":"sfx\/low_health_beep_03.ogg","sha":"a1f8d9c41778f119ec70fe8d620d74fb1cdce730"},{"file":"sfx\/lucha_punch_01.ogg","sha":"7226941572dd8cf12fd18b960eeedd8a2bb1994f"},{"file":"sfx\/lucha_ulti_01.ogg","sha":"d6a275d4eb9501bc4dcf56624d5347a46a956b7d"},{"file":"sfx\/marig_fire_01.ogg","sha":"d5c41c1bbd114cdd5f76f6cde82dca0f18cb707f"},{"file":"sfx\/marig_hit_01.ogg","sha":"0098b0f6b079ce5866d657c811c983e7f2370013"},{"file":"sfx\/marig_miss_01.ogg","sha":"c73b8ec6772bb6e9c4722be0c433a51bf46bee92"},{"file":"sfx\/marig_turret_02.ogg","sha":"4fbbb4ffe5a2009fb8935153713e9025d4770af8"},{"file":"sfx\/marig_turret_spawn_01.ogg","sha":"8f0e4df94c4aeaa700e6893dae4314572e018098"},{"file":"sfx\/max_atk_01.ogg","sha":"51f92b576de80e39e098b257e5a1b58d59f767de"},{"file":"sfx\/max_atk_impact_01.ogg","sha":"610fa3fba656b18b317ca80cb686ecda5fa15203"},{"file":"sfx\/max_die_vo_01.ogg","sha":"b91949a273a2c9d7967385d15b788a175dbfaab9"},{"file":"sfx\/max_die_vo_02.ogg","sha":"ade356be7935c45f3d514c6981c3a3103385c7cb"},{"file":"sfx\/max_die_vo_03.ogg","sha":"30669f92313d5cc28267d5930e134998bbbc68cd"},{"file":"sfx\/max_die_vo_04.ogg","sha":"16c28fd72322bbaea7d11e520f3899d752f38fb8"},{"file":"sfx\/max_die_vo_05.ogg","sha":"b1de6243e346540548464f81f9c8eba5f94e0664"},{"file":"sfx\/max_dryfire_01.ogg","sha":"a2422a140de7178d16757a2512fffda2abe47b10"},{"file":"sfx\/max_hurt_vo_01.ogg","sha":"924e0a98b081b9b21f84af79b3a2511e113925b8"},{"file":"sfx\/max_hurt_vo_02.ogg","sha":"b6b223b9d7ff8bda4a25b77e6268ca557c9fc35b"},{"file":"sfx\/max_hurt_vo_03.ogg","sha":"da2226068151b22f1a6082d273161c006ea9bc41"},{"file":"sfx\/max_hurt_vo_04.ogg","sha":"e5e06cc22f361e0f2e72eab589fd217ae5f5b967"},{"file":"sfx\/max_kill_vo_01.ogg","sha":"8638a145177746c5e3ff5664fb6ef8fb8171ffcb"},{"file":"sfx\/max_kill_vo_02.ogg","sha":"4ab170da533c7e41da923b7f42635f2ff7ef3524"},{"file":"sfx\/max_kill_vo_03.ogg","sha":"d9a29fa673ee50286cb3b1d6235b316752ffe3a1"},{"file":"sfx\/max_kill_vo_04.ogg","sha":"ff8ca4503e1365f1545f941f070ac7eff731dcee"},{"file":"sfx\/max_kill_vo_05.ogg","sha":"f9014fe3997edc550044a56080fd6d32c47b22c5"},{"file":"sfx\/max_lead_vo_01.ogg","sha":"9613b3361fdd3fabee8616e9fbe47e438a2860fc"},{"file":"sfx\/max_lead_vo_02.ogg","sha":"3e419149928921c4d2ac632fcf7af54eaa17a0d0"},{"file":"sfx\/max_lead_vo_03.ogg","sha":"a1faee5a7b043a27ee9a66066c1c9e9ab6eec4cd"},{"file":"sfx\/max_lead_vo_04.ogg","sha":"3013e66317b88e47cd270ab78686798f0120e33d"},{"file":"sfx\/max_lead_vo_05.ogg","sha":"d668ad0f704baa425dda0d631845dc17dc4ca895"},{"file":"sfx\/max_reload_01.ogg","sha":"26613a2683027cb704b432c55fb52a5dea4ff639"},{"file":"sfx\/max_start_vo_01.ogg","sha":"478e39a6aec7948b759cdf86cce60bbd0a40cd4c"},{"file":"sfx\/max_start_vo_02.ogg","sha":"ca2715ad2a72d336fe28c7b7503a6a71cf6337c5"},{"file":"sfx\/max_start_vo_03.ogg","sha":"412ec330ad799e27f47b22c9ead4b32eb46bf73c"},{"file":"sfx\/max_start_vo_04.ogg","sha":"eed1f361cf503ad6d2f2832c2d1e0b11cef867f8"},{"file":"sfx\/max_start_vo_05.ogg","sha":"cc0218849b97f0d7a2c35ffc94135e7b6cdff796"},{"file":"sfx\/max_ulti_01.ogg","sha":"45132115be234b8dcf3c349dc0ceb8f249f1f572"},{"file":"sfx\/max_ulti_vo_01.ogg","sha":"e20dc069275c6cdf05d8f32627a346e809a5ecfd"},{"file":"sfx\/max_ulti_vo_02.ogg","sha":"627886f70121c8d8ffd52b3fcffcd3f62c060a5e"},{"file":"sfx\/max_ulti_vo_03.ogg","sha":"7f2edc5f09aefe16444dae6bacb9167600fc5b9f"},{"file":"sfx\/max_ulti_vo_04.ogg","sha":"dbdc1b156cc3877f3a515bd877a96eff8885ba67"},{"file":"sfx\/mech_bo_fire_01.ogg","sha":"50259bc0a22a6b9402f1f94e58ea154934e9a0f7"},{"file":"sfx\/mech_bo_reload_01.ogg","sha":"22ef4034cde7d649598e1906b0a5f7fa54f318df"},{"file":"sfx\/mech_bo_ulti_01.ogg","sha":"9b63ce8d4ded44eee156767d43eae5a997e12cf2"},{"file":"sfx\/mech_crow_atk_01.ogg","sha":"889777639cda90d9dce18e647a865e319463fee4"},{"file":"sfx\/mech_crow_dies_01.ogg","sha":"8debbe5903b3fe5dcb917bf01d9abcfd2e48f51a"},{"file":"sfx\/mech_crow_get_hit_01.ogg","sha":"8af6222bad99d6f30da689bd5c261036bab9b6c1"},{"file":"sfx\/mech_crow_get_hit_02.ogg","sha":"925f094b85144d1303643cadc6677637971f1976"},{"file":"sfx\/mech_crow_get_hit_03.ogg","sha":"f0e8249c8c184fa30c16dca3bac1a04856f0bdf9"},{"file":"sfx\/mech_crow_get_hit_04.ogg","sha":"b9b5873a2660bc1e8c615a26259e67dd3035322a"},{"file":"sfx\/mech_crow_get_hit_05.ogg","sha":"afbbde3178d95703b950fc143f3e3e2c3e4aaef4"},{"file":"sfx\/mech_crow_get_hit_06.ogg","sha":"aa34899a602efea86b3b96c06bdc8e1ad2619fbe"},{"file":"sfx\/mech_crow_kills_01.ogg","sha":"c208ba8d7365db58f09dfd72c5b62fffaa814b6e"},{"file":"sfx\/mech_crow_kills_02.ogg","sha":"8f0b24e8b30f9c89957ee645ebaaae0477346039"},{"file":"sfx\/mech_crow_kills_03.ogg","sha":"ce5ca4e04bf2a32052e16360cdb4384a86e8dd84"},{"file":"sfx\/mech_crow_lead_01.ogg","sha":"e27514b30c160203b7b984e43f781b0f92a67546"},{"file":"sfx\/mech_crow_lead_02.ogg","sha":"107116631c677bdc90b0d912a49ebcc646ab63c0"},{"file":"sfx\/mech_crow_start_01.ogg","sha":"d9eb5f155cd2b486ab7e65908d79fbe356c77370"},{"file":"sfx\/mech_crow_start_02.ogg","sha":"d00d2518fd4ca516b8105286a110066042868f7e"},{"file":"sfx\/mech_crow_start_03.ogg","sha":"3082ae1c9f09d4c5431bcf390743a3fa08e72f4c"},{"file":"sfx\/mech_crow_ulti_01.ogg","sha":"3c3281eb5362ed85b73931bf73be342497188d9a"},{"file":"sfx\/mech_crow_ulti_vo_01.ogg","sha":"9a1809b59cf8896f9d1047bd285d1ea86647bc44"},{"file":"sfx\/mech_mike_atk_01.ogg","sha":"b888090c804d1f973df067b22e23a8062fea3f82"},{"file":"sfx\/mech_mike_die_vo_01.ogg","sha":"c166a0bb4f947456a0c77d6307301b17fde9fc2b"},{"file":"sfx\/mech_mike_die_vo_02.ogg","sha":"9e77b257bf7e5c648fa66d16d0780eacb63e5d09"},{"file":"sfx\/mech_mike_die_vo_03.ogg","sha":"6c415d6793e551b33132763d1d4f9bd1875c6c90"},{"file":"sfx\/mech_mike_die_vo_04.ogg","sha":"f8bbd5ccb57ca078f4f26aaf7a1b608286aa16f1"},{"file":"sfx\/mech_mike_die_vo_05.ogg","sha":"5e32bd3992820ea62f6f1cc1dc01432ab28f7b1d"},{"file":"sfx\/mech_mike_hurt_vo_01.ogg","sha":"9573b5cd62f523c1861308c69fbf80eb2978f5bf"},{"file":"sfx\/mech_mike_hurt_vo_02.ogg","sha":"7b1607090385d67c41d1eb03225357f616df92cf"},{"file":"sfx\/mech_mike_hurt_vo_03.ogg","sha":"ed9c643876705ec47edf4ee4af108ec4ef46f2f2"},{"file":"sfx\/mech_mike_hurt_vo_04.ogg","sha":"6485e15de085f0d62f9b59386bac07f224225859"},{"file":"sfx\/mech_mike_hurt_vo_05.ogg","sha":"47e07ac1265ec5e4ca0acd358f9662bd6eff192b"},{"file":"sfx\/mech_mike_kill_vo_01.ogg","sha":"4efed04783d09a8aed49621765e9b8781046f329"},{"file":"sfx\/mech_mike_kill_vo_02.ogg","sha":"894c247bbe6b3b49e9b06f5c5c398cdf2402ce05"},{"file":"sfx\/mech_mike_kill_vo_03.ogg","sha":"090b054272150424735b98f0322b1a96873db45d"},{"file":"sfx\/mech_mike_kill_vo_04.ogg","sha":"fe3b8c7046c16488784e4aa1abcb5277137a5335"},{"file":"sfx\/mech_mike_lead_vo_01.ogg","sha":"230a1a8a372179160e754c17d92125bb8894f8ae"},{"file":"sfx\/mech_mike_lead_vo_02.ogg","sha":"d77978f05e85c31d0787029568a82899fdb39dad"},{"file":"sfx\/mech_mike_start_vo_01.ogg","sha":"ad06a0f0d797dcd1eca10c273b2fdd369cdac2a6"},{"file":"sfx\/mech_mike_start_vo_02.ogg","sha":"78b7b73f6c36a84bca0d04d729337a32607ac886"},{"file":"sfx\/mech_mike_start_vo_03.ogg","sha":"b1540a71feb5a9ab06bc35e95ff67ea1b8f24ef6"},{"file":"sfx\/mech_mike_start_vo_04.ogg","sha":"3da0a625b594b53dad1db56752141971d76ed020"},{"file":"sfx\/mech_mike_ulti_01.ogg","sha":"7c6fb1ba7e342ae79577ad9483f3b00b3bb3a1db"},{"file":"sfx\/mech_mike_ulti_vo_01.ogg","sha":"34d06780fa3d8551bee9d439a964b2f5577d43e3"},{"file":"sfx\/mech_mike_ulti_vo_02.ogg","sha":"02ea1c1ae23305840568aa52dc31d51841e63c59"},{"file":"sfx\/mech_spike_atk_01.ogg","sha":"70b14e32d0ca32f6785d6c79206decbb3d31c129"},{"file":"sfx\/mech_spike_ulti_01.ogg","sha":"369d6dd90b963ea2e4030b10037a29618dbe1b47"},{"file":"sfx\/menu_click_08.ogg","sha":"ac9d8a6108f95aabad7c0c7e924aaea4022caba1"},{"file":"sfx\/menu_dismiss_01.ogg","sha":"536414a202f14099a3c19770c8ff0e31d71250a9"},{"file":"sfx\/menu_go_back_01.ogg","sha":"996dc6037f4d2b1251fc585170de80f6f478d00f"},{"file":"sfx\/meteor_01.ogg","sha":"de0a00312aa03f726ebe63941f330ca7d33a7381"},{"file":"sfx\/meteor_02.ogg","sha":"213cfe7be91b9f095940e9a60ade32dacc399de0"},{"file":"sfx\/meteor_03.ogg","sha":"7ee53c85348fadbbd11e7da184db6d2d041d6795"},{"file":"sfx\/minig_dryfire_01.ogg","sha":"6d6d56d7df50a599e331275357ba6160417e1cc2"},{"file":"sfx\/minig_fire_01.ogg","sha":"94ddfaa44eb2cdbb8f94b2440786eeb4b542b0c6"},{"file":"sfx\/minig_reload_01.ogg","sha":"5ce09a6c71f113423b33345ef13fdddb1cbaab2c"},{"file":"sfx\/minig_ulti_01.ogg","sha":"ec856f063d86fc5935e7588dca329a9ac5ff603e"},{"file":"sfx\/mortis_atk_01.ogg","sha":"aef5480536f04b1e9544a6f3a304d4e579f64597"},{"file":"sfx\/mortis_atk_vo_01.ogg","sha":"8ed71415ea3cd9d2f986e5bea5d3df1b53de660a"},{"file":"sfx\/mortis_atk_vo_02.ogg","sha":"749fab07c2f5be73f8958e4abed909a773f6cb42"},{"file":"sfx\/mortis_atk_vo_03.ogg","sha":"76f41aeb4a87878271b7f7f7316586162760f833"},{"file":"sfx\/mortis_atk_vo_04.ogg","sha":"4a69bd1440f14bbc3ba2f30c05dcbb514067a1a6"},{"file":"sfx\/mortis_die_01.ogg","sha":"6fea2c82c13c5d06cb89dd539b37ffc6d766ab71"},{"file":"sfx\/mortis_die_02.ogg","sha":"a6613477820be8dd367f8007b399b927499bddf4"},{"file":"sfx\/mortis_die_03.ogg","sha":"e1f63a1ce7b07a7afcbe1a98cf6cc10a2b75e023"},{"file":"sfx\/mortis_die_04.ogg","sha":"62beb7ebe71a9009522b53025d2560789d593f4b"},{"file":"sfx\/mortis_die_05.ogg","sha":"9307971a00c795440647cd786ef658237bbec76e"},{"file":"sfx\/mortis_gadget_01.ogg","sha":"6942dd6796293d248852c0876705cd2f39ec25f7"},{"file":"sfx\/mortis_hurt_01.ogg","sha":"73a9cb0cac94144e462236d8a03520d408e0431e"},{"file":"sfx\/mortis_hurt_02.ogg","sha":"b0d1941afcec4979a40062310a9a358a6df51738"},{"file":"sfx\/mortis_hurt_03.ogg","sha":"3ecc7729b55fffcfb1d3578d8a7b40ebbd2e20ba"},{"file":"sfx\/mortis_hurt_04.ogg","sha":"6a869373fc11fdc066c3cfd6ad4f3ff81de52407"},{"file":"sfx\/mortis_kill_01.ogg","sha":"c177436e5027e35e2be9daf252bf93f438ee99f8"},{"file":"sfx\/mortis_kill_02.ogg","sha":"7537751efa97132bec29f05bac61126952e94e8a"},{"file":"sfx\/mortis_kill_03.ogg","sha":"039e2a9d402265e110bc084b979e7a8fa64ea1c7"},{"file":"sfx\/mortis_kill_04.ogg","sha":"163e98b1412cb8cf81ff49a1614dee353b45ab4d"},{"file":"sfx\/mortis_lead_01.ogg","sha":"3ff7759aae9b62cf07f1457f429f7a9f19a26130"},{"file":"sfx\/mortis_lead_02.ogg","sha":"0969c9477f685210b3e1799df5533e6a1fa1c771"},{"file":"sfx\/mortis_lead_03.ogg","sha":"3a057d1822a3cc1a466cff13e009086f37246d39"},{"file":"sfx\/mortis_lead_04.ogg","sha":"ea564002cabf115f176e685cbd969aee2291cef1"},{"file":"sfx\/mortis_lead_05.ogg","sha":"b4970b47e2047c587a2463b41f1fa00740a833f9"},{"file":"sfx\/mortis_reload_02.ogg","sha":"825a64b80e3c74c6db6a430aacf9bc818786df77"},{"file":"sfx\/mortis_start_01.ogg","sha":"16c5438b309794ee9a48b0a0653cdab7703f6dc6"},{"file":"sfx\/mortis_start_02.ogg","sha":"218abc046b7a4de49b4b921055bfc32c70a5b792"},{"file":"sfx\/mortis_start_03.ogg","sha":"d75ee3b03086d4eeb0e9454ff00852a76fe051d0"},{"file":"sfx\/mortis_start_04.ogg","sha":"3c5a51510049cb5fe0993ff39f81ac1679cea620"},{"file":"sfx\/mortis_ulti_01.ogg","sha":"56183cc745b211152939f0ddedd8d4d588a03866"},{"file":"sfx\/mortis_ulti_vo_01.ogg","sha":"bdda18e925b542978ce057c76500adfdf485c02d"},{"file":"sfx\/mortis_ulti_vo_02.ogg","sha":"9938494fc376beb9df850b8170f649d12016b612"},{"file":"sfx\/mortis_ulti_vo_03.ogg","sha":"4a01dd34ca92367ae0872b599aab4052466330fb"},{"file":"sfx\/mortis_ulti_vo_04.ogg","sha":"b4484137b0d9c46cb18847ca21f8885c41b4fe09"},{"file":"sfx\/mortis_ulti_vo_05.ogg","sha":"520f48597136994197304d35300a1a258965db5c"},{"file":"sfx\/mrp_atk_01.ogg","sha":"5a49e8948fc46528b32c5b0eb1aef0fc278b7602"},{"file":"sfx\/mrp_atk_vo_01.ogg","sha":"753370fc8043abe9989cc27d2804d13a21c054e2"},{"file":"sfx\/mrp_atk_vo_02.ogg","sha":"a9eb8258ba4809cd783921d3e8d85c21777b7f52"},{"file":"sfx\/mrp_atk_vo_03.ogg","sha":"280fc0820936458734df68561b0bfa53eef1d65e"},{"file":"sfx\/mrp_atk_vo_04.ogg","sha":"2ea8b75fc785492e8c7c427cf02938fc582730ae"},{"file":"sfx\/mrp_die_vo_01.ogg","sha":"1ea4341a974c7b7725487779ce6a1227670bd311"},{"file":"sfx\/mrp_die_vo_02.ogg","sha":"87cc94000380ae1c8da82d171db81f174c34ced7"},{"file":"sfx\/mrp_die_vo_03.ogg","sha":"21cca72a0a277f4894a55b55cfd12d740c4b4e33"},{"file":"sfx\/mrp_dryfire_01.ogg","sha":"b728ecd22b805e17cbb6348430c9a4374f4c70f9"},{"file":"sfx\/mrp_get_hurt_vo_01.ogg","sha":"99d55db31f320b7e2bf290f20d83f4e4ee0f5da4"},{"file":"sfx\/mrp_get_hurt_vo_02.ogg","sha":"c2d5674dee18f17c0c946ef52db02a34f3c09ff6"},{"file":"sfx\/mrp_get_hurt_vo_03.ogg","sha":"2272d408828ce67e139efeed8d310726e810f8e8"},{"file":"sfx\/mrp_get_hurt_vo_04.ogg","sha":"8ed301c062cc748c07a53b1f0cea8e2dbb6812dd"},{"file":"sfx\/mrp_kill_vo_01.ogg","sha":"4b120a4719827b5450feca089d3efcf06345a2c5"},{"file":"sfx\/mrp_kill_vo_02.ogg","sha":"c297ebd1f0e137bc62cbb8d561720bbd0d9e0665"},{"file":"sfx\/mrp_kill_vo_03.ogg","sha":"386fedd90de1a743b4c94e3a92897b91bcb1b7cb"},{"file":"sfx\/mrp_kill_vo_04.ogg","sha":"558637c320f73c4f56407341ec7f68f6f623ac5a"},{"file":"sfx\/mrp_kill_vo_05.ogg","sha":"0e01466d6fc18c6a05e714192eaa8a62abcafc66"},{"file":"sfx\/mrp_lead_vo_01.ogg","sha":"02fad02c934629329af63812a0484837a2d24f9b"},{"file":"sfx\/mrp_lead_vo_02.ogg","sha":"a596336f13486c13ad908f9af586b3a3d3bf5afa"},{"file":"sfx\/mrp_lead_vo_03.ogg","sha":"7dee5b5cee19452054635f344095b77cd9db80c8"},{"file":"sfx\/mrp_minip_atk_01.ogg","sha":"cf193112955d719c23c431f0b56fab30c4f9745e"},{"file":"sfx\/mrp_minip_atk_02.ogg","sha":"ca295a059713969851c7c191879d3a8279341b90"},{"file":"sfx\/mrp_minip_bell_01.ogg","sha":"5f4681481ea234db6d7a99a39958a141be6bb9a0"},{"file":"sfx\/mrp_minip_die_01.ogg","sha":"6904d6e0836231e8f0d8f79bc36c598fd84d0177"},{"file":"sfx\/mrp_minip_die_02.ogg","sha":"bb851a2b187f4c323c35f37a489773e3808bd3a8"},{"file":"sfx\/mrp_minip_die_03.ogg","sha":"f814619d519b443134e9df52f5ee3816a262f01d"},{"file":"sfx\/mrp_minip_spawn_01.ogg","sha":"5753907c73f7b49dce3e914e0e0315400ca7509d"},{"file":"sfx\/mrp_minip_spawn_02.ogg","sha":"d29be0fe7d017f051b42804698819483d62350eb"},{"file":"sfx\/mrp_minip_spawn_03.ogg","sha":"a2e62d0349cef0b2efb3c35d9ec11965ab9c9ed7"},{"file":"sfx\/mrp_reload_01.ogg","sha":"19dab272723784de360536f262154a14304dfed4"},{"file":"sfx\/mrp_start_vo_01.ogg","sha":"5ec0a87114507cbde231920004c59f4bbcd04b33"},{"file":"sfx\/mrp_start_vo_02.ogg","sha":"9b635737ee7ebc9c5f1b9d19ae1880eda742d312"},{"file":"sfx\/mrp_start_vo_03.ogg","sha":"8b344dea057bfdf7d77a6f528b06b37842fcd980"},{"file":"sfx\/mrp_start_vo_04.ogg","sha":"bbcfce67d0610c193413c17584a9cfbbb7f9bea6"},{"file":"sfx\/mrp_start_vo_05.ogg","sha":"bbc6722d622dd73ee5789b3874a8e7dd53fbb021"},{"file":"sfx\/mrp_ulti_vo_01.ogg","sha":"14eb5786a2e45a0dd44c51b55f50e125e2ac09cd"},{"file":"sfx\/mrp_ulti_vo_02.ogg","sha":"2b85acfd14a9aee3655d8590729c4a09f57132e8"},{"file":"sfx\/mrp_ulti_vo_03.ogg","sha":"9e5f591d94234c73a2996eeea53a73d038710157"},{"file":"sfx\/mrp_ulti_vo_04.ogg","sha":"3d21fba62b333fa27704fe6eb95923a440d9b4c3"},{"file":"sfx\/mvp_jingle_01.ogg","sha":"c1983e5042cce7ea7650b4c1f539405bc223d850"},{"file":"sfx\/mystic_atk_01.ogg","sha":"c91d06312e5439587337057ef31f2b1860653725"},{"file":"sfx\/mystic_dryfire_01.ogg","sha":"d010300e4db99acd4ced218fea63988a66eee5da"},{"file":"sfx\/mystic_hole_01.ogg","sha":"a12d5c634d50ef6e8e7eabf98b9448e9041f4fd7"},{"file":"sfx\/mystic_reload_01.ogg","sha":"467f2379667501963fdb36b4a94c9a27cfa3e115"},{"file":"sfx\/mystic_ulti_deploy_01.ogg","sha":"138dad1aebe3955deaa73ee0e1a0ed1d59e4e7b3"},{"file":"sfx\/ninja_invis_01.ogg","sha":"b7576c11af9ef4ac34e2872ad5df00d299b8b84e"},{"file":"sfx\/ninja_invis_end_01.ogg","sha":"7ca535baafb7b9edcb806fba37f7b15556c021ce"},{"file":"sfx\/ninja_star_01.ogg","sha":"9774a4421766b2fd2e8a148a1481c836e1ec6cbb"},{"file":"sfx\/ninja_star_dry_01.ogg","sha":"c24ed981f2162058cb7dfb6cd9e20d884930abe1"},{"file":"sfx\/nita_atk_01.ogg","sha":"d4fde066779177e22b67accc86c5453636b1b8f9"},{"file":"sfx\/nita_atk_02.ogg","sha":"436ff334189499f71ad98ef4cb7339ec5c790e7f"},{"file":"sfx\/nita_atk_03.ogg","sha":"9bbbbea41f6fb02d577d571edfe3698a0c42d299"},{"file":"sfx\/nita_atk_04.ogg","sha":"0d576fb97f1af31cb63eb2d8cb5aea8390963a2e"},{"file":"sfx\/nita_atk_05.ogg","sha":"8b3c3c15054573d864632e79707368cf28ee1103"},{"file":"sfx\/nita_die_01.ogg","sha":"57b5d1b5d60183c84938d29c39545783537472ea"},{"file":"sfx\/nita_die_02.ogg","sha":"149ca06123db642b1862b380732cd5111846a031"},{"file":"sfx\/nita_gadget_01.ogg","sha":"71a344e16fe4c7d35b9e4930b82c16f9e350af6a"},{"file":"sfx\/nita_hurt_01.ogg","sha":"af884b1ca64b386d79ceec1ef24c901d426d2e28"},{"file":"sfx\/nita_hurt_02.ogg","sha":"1d922a529a8118ecb9af0763159209332098bfbe"},{"file":"sfx\/nita_hurt_03.ogg","sha":"f9962e1949ec8e1f1c1e627f31328f9e695a33a2"},{"file":"sfx\/nita_hurt_04.ogg","sha":"6d415b8dc727b8ed49515fa47ea6b71b16dcd39d"},{"file":"sfx\/nita_hurt_05.ogg","sha":"908972b93021986c4ef3d5a8771cb75b7d74b190"},{"file":"sfx\/nita_kill_vo_01.ogg","sha":"2dbc38b1a52d96425847853ce4491f8c5a38b9f2"},{"file":"sfx\/nita_kill_vo_02.ogg","sha":"9fdebd6a760c78dd9e813f411c28fc1f3ad99f7e"},{"file":"sfx\/nita_kill_vo_03.ogg","sha":"e41085bc11fe91458fb72bf0b29d08ed44bca524"},{"file":"sfx\/nita_lead_01.ogg","sha":"e94d5e7ed54bf9833dde6d402bf4725a0f7286e9"},{"file":"sfx\/nita_lead_02.ogg","sha":"f4a7a880ad238ab6af5428c008c330f45a48af1b"},{"file":"sfx\/nita_lead_03.ogg","sha":"689a92cb784579c5f8f5176a11b1ba9a2bafd2cd"},{"file":"sfx\/nita_start_vo_01.ogg","sha":"3d6bfc6058edbbf20db3a7043bc470e33fe78de0"},{"file":"sfx\/nita_start_vo_02.ogg","sha":"064ac733376b57dcbf42cbca3501592138c32594"},{"file":"sfx\/nita_start_vo_03.ogg","sha":"1b33d6e53734921a7aeb0cfec5701ed15c3be918"},{"file":"sfx\/nita_ulti_01.ogg","sha":"45c308387d0bd245520b13a2f17de18ad475bc93"},{"file":"sfx\/nita_ulti_vo_01.ogg","sha":"078857280aa02bc974fdadde0d4d0cfe600ec156"},{"file":"sfx\/nita_ulti_vo_02.ogg","sha":"ca2f00f7c2ba42569efcaba540433dc2d2163fa9"},{"file":"sfx\/nita_ulti_vo_03.ogg","sha":"30cb6ce2f2093f9b60810d8d6ae2486b8b6068e6"},{"file":"sfx\/orb_glow_03.ogg","sha":"a6f09618ce7e6e15db6ead97a509c276c9737ab7"},{"file":"sfx\/overtime_02.ogg","sha":"8b763d1fc20a4a2c30e7c6377ecf71836d3ef980"},{"file":"sfx\/pam_die_vo_01.ogg","sha":"f1b6c9cb0eefb05c180d3120d2c072482d82e0ef"},{"file":"sfx\/pam_die_vo_02.ogg","sha":"d23a26aff6a0110502cd976c4564cf442f3f9331"},{"file":"sfx\/pam_die_vo_03.ogg","sha":"c32728d3621b37311e51f21a2fb50f12e298c338"},{"file":"sfx\/pam_die_vo_04.ogg","sha":"204546ecbfa822a695ee98ca5c79dd94e430e896"},{"file":"sfx\/pam_hurt_vo_01.ogg","sha":"9f2963d447fd31d5d80313861652a538eb2b0313"},{"file":"sfx\/pam_hurt_vo_02.ogg","sha":"d253d3663bf7b941185b47a53c1b64e19b4f6b67"},{"file":"sfx\/pam_hurt_vo_03.ogg","sha":"919336bfa6cdee8875eda486b64eb405b4a1ff44"},{"file":"sfx\/pam_hurt_vo_04.ogg","sha":"c4377206275a561b5a19dd0c1e9de5e60fb6c679"},{"file":"sfx\/pam_hurt_vo_05.ogg","sha":"9f90505807848ddb4afb43097b9dd9db33facaee"},{"file":"sfx\/pam_kill_vo_01.ogg","sha":"00fbe1853cde4faffb18a5576d732ff9c47c8020"},{"file":"sfx\/pam_kill_vo_02.ogg","sha":"d8ff75cba3d4b8180cf7ec77cfd6e2ecb474f7c0"},{"file":"sfx\/pam_kill_vo_03.ogg","sha":"1edbbcbb77f17706c1fd5e4ebfae0ab1a0f1288c"},{"file":"sfx\/pam_kill_vo_04.ogg","sha":"3eb4af7c6a3df87d5d675dc6e6fb09402db76117"},{"file":"sfx\/pam_lead_vo_01.ogg","sha":"408235fba2e637a0927697794ae368e4e18ca564"},{"file":"sfx\/pam_lead_vo_02.ogg","sha":"6d5ff8bffd9eb8d8dafe77b256104b1093b264de"},{"file":"sfx\/pam_lead_vo_03.ogg","sha":"c3ad5694878db839f0854c1285ab9c85b7034ca4"},{"file":"sfx\/pam_lead_vo_04.ogg","sha":"83ca51665a98930be74ee32476d616efc1f1b025"},{"file":"sfx\/pam_start_vo_01.ogg","sha":"97734b9cac1e11714ca20d969c7bbf6ca5d4ba86"},{"file":"sfx\/pam_start_vo_02.ogg","sha":"72d3209dc8cd36645db60f25742f369b325febac"},{"file":"sfx\/pam_start_vo_03.ogg","sha":"fd5e2aa441c8d78978e68d68403900cd6ddc78d3"},{"file":"sfx\/pam_start_vo_04.ogg","sha":"4fcffd798e69d1c5b67bb310dc259559f0f1aca0"},{"file":"sfx\/pam_ulti_vo_01.ogg","sha":"ce541f4d3bfdfbd54eddc754855427e7244269e5"},{"file":"sfx\/pam_ulti_vo_02.ogg","sha":"7bb0116b411ea50d8544189768ffdfa8acdee4c7"},{"file":"sfx\/pam_ulti_vo_03.ogg","sha":"53000a7b3b88603e835d2533266df7d826dc6a4f"},{"file":"sfx\/pam_ulti_vo_04.ogg","sha":"ebef58b5615e52ebfb660b2570c23cbffe646ab2"},{"file":"sfx\/penny_die_vo_01.ogg","sha":"13487367380a832ba83b189a28754fff801e7a29"},{"file":"sfx\/penny_die_vo_02.ogg","sha":"67c8b38bea8caf4945e7189a5909e757b2ddceb5"},{"file":"sfx\/penny_die_vo_03.ogg","sha":"7cec2c92eff4794581ab17cc3c2dcfb5074fd06c"},{"file":"sfx\/penny_hurt_vo_01.ogg","sha":"0a9c30846a8810b3f4cad915532a08f48184fd83"},{"file":"sfx\/penny_hurt_vo_02.ogg","sha":"dbe589b19c75b781650bcba98798b5b65ccb9832"},{"file":"sfx\/penny_hurt_vo_03.ogg","sha":"94bc7b1399d173dcd76b1b6ba215ad1560e5adcd"},{"file":"sfx\/penny_kill_vo_01.ogg","sha":"8af72fc659dd88807abe730e4b1003fdd480bc2d"},{"file":"sfx\/penny_kill_vo_02.ogg","sha":"28ed78b29163e62cf1cc555b5b37553be079a9ec"},{"file":"sfx\/penny_kill_vo_03.ogg","sha":"7b16b1034a5a6144c66a542b5e47f183ad62be46"},{"file":"sfx\/penny_kill_vo_04.ogg","sha":"ec98454dc062f23302cb8581f4cbfae0d1b6a48c"},{"file":"sfx\/penny_kill_vo_05.ogg","sha":"ecd81cae910bac2195c9715ee443e1b48980323c"},{"file":"sfx\/penny_lead_vo_01.ogg","sha":"ee8da27d2a4b5ec3f4fc01c3d056bf77f989b497"},{"file":"sfx\/penny_lead_vo_02.ogg","sha":"ca6ba43a1bd5f46b5be15747fa5d17a01b213543"},{"file":"sfx\/penny_lead_vo_03.ogg","sha":"1de6b0402eef39ecba150e379f727c785d82959f"},{"file":"sfx\/penny_start_vo_01.ogg","sha":"1d14237be2f65f2b5a2f8efe488039037fcfdfa2"},{"file":"sfx\/penny_start_vo_02.ogg","sha":"f6dc8179764769c9a1261a14324fd9186b728590"},{"file":"sfx\/penny_start_vo_03.ogg","sha":"ae3954d5fe89c9848f75a52df8916090eb836339"},{"file":"sfx\/penny_ulti_vo_01.ogg","sha":"6dbacdbc104a59d6aeee3143dc11c49543dbca48"},{"file":"sfx\/penny_ulti_vo_02.ogg","sha":"bdd69655fea9eb5fffcdce3397c4c657005bbe2c"},{"file":"sfx\/penny_ulti_vo_03.ogg","sha":"12544317d698053c4d753aa612666eb06baee39e"},{"file":"sfx\/pickup_spawn_03.ogg","sha":"233af5c2c78210d0ac82c2baf671529c3a955ed1"},{"file":"sfx\/piper_die_01.ogg","sha":"5284a646fde698cf9f87130fba64f161bf57263e"},{"file":"sfx\/piper_die_02.ogg","sha":"3fcbe58499a234c9969927ff0b74c0543608230f"},{"file":"sfx\/piper_die_03.ogg","sha":"b480a1e1a97c01b6fd5b2fdd6b52d85964d314fd"},{"file":"sfx\/piper_gadget_01.ogg","sha":"1e9d2cb140811e1ec8f5d189a51c03171ff4f678"},{"file":"sfx\/piper_hurt_01.ogg","sha":"ac3c1bdcbc2285efdaea358dacdc4242806f78c0"},{"file":"sfx\/piper_hurt_02.ogg","sha":"18327dd1e5e3f051eabcb3e2fec021d4c5d8ff77"},{"file":"sfx\/piper_hurt_03.ogg","sha":"2b29fd5dcdd92ea08ac1a18c0e069334d54e48fd"},{"file":"sfx\/piper_hurt_04.ogg","sha":"ee6b8fbe11ba38e1b4048bec1fabcf2bd519f3f5"},{"file":"sfx\/piper_hurt_05.ogg","sha":"5a43f0f4b99ac10afffc1cd00466104ea079843d"},{"file":"sfx\/piper_hurt_06.ogg","sha":"59ec9817dbe5f4072bd768186bc7a632ced3fc1b"},{"file":"sfx\/piper_kill_01.ogg","sha":"be782e89e90d5a7a7b7f59f0a2147bdd9a6ffddd"},{"file":"sfx\/piper_kill_02.ogg","sha":"8e61e5d3758a6ee5b76dae3ac3737075b9940518"},{"file":"sfx\/piper_kill_03.ogg","sha":"b58b2a07a9308a0c27b179ad91a7dc688b888e6b"},{"file":"sfx\/piper_kill_04.ogg","sha":"dff8d9ebf3d37811782a131786ff563b7dfdb58f"},{"file":"sfx\/piper_lead_01.ogg","sha":"c05a1ba5b5cd44ed6f62ddeee31248c9b3062d1d"},{"file":"sfx\/piper_lead_02.ogg","sha":"f4b5394f25e638c3f7c7ac5dd18b1c3c5d9167b1"},{"file":"sfx\/piper_lead_03.ogg","sha":"23f36bf4b53e397de82ffe20498fbb51251ea2b5"},{"file":"sfx\/piper_mine_drop_02.ogg","sha":"cc35b4f35bf452d0def312500007c668ce314628"},{"file":"sfx\/piper_start_01.ogg","sha":"6c0cc8cf062e195c43ed870c01a29765167e07de"},{"file":"sfx\/piper_start_02.ogg","sha":"679df62e42658c2e1785fd8a5e4152ca4a376084"},{"file":"sfx\/piper_start_03.ogg","sha":"4bf11a7fc64707f26869909725565bd181392983"},{"file":"sfx\/piper_start_04.ogg","sha":"b1e595958ce740860cf64caa13460beafb0233cb"},{"file":"sfx\/piper_ulti_01.ogg","sha":"6dc1d7e984e2935be38d1322584315e464284be1"},{"file":"sfx\/piper_ulti_02.ogg","sha":"6d81ba8eec4b32f7c04a1e3ce63863ef4c07532c"},{"file":"sfx\/pistol_fire_01.ogg","sha":"c07db786f9e52e4a44763156bda352356499695a"},{"file":"sfx\/pistol_fire_ulti_01.ogg","sha":"508d393a61100d29ac052d30f6c0efbd9b5a3e34"},{"file":"sfx\/planet_whoosh_03.ogg","sha":"e9554ae99c58000d0667470f4b085f7ba0fc3ebb"},{"file":"sfx\/player_gadget_button_01.ogg","sha":"e59427f3c63fe9c4cba353cc5805d26337db5d89"},{"file":"sfx\/poco_die_01.ogg","sha":"53ddfa51dbf287efc1cd16a39a5ccaba90e6be4e"},{"file":"sfx\/poco_die_02.ogg","sha":"a715eb126c9f84bf2f4d91b333f55231a8f6d0e8"},{"file":"sfx\/poco_die_03.ogg","sha":"19a4a1fcc1929e3c48acb05981916dbc27dd9679"},{"file":"sfx\/poco_gadget_01.ogg","sha":"0db15f5892626257a5606063e89513a6d47518d4"},{"file":"sfx\/poco_hurt_01.ogg","sha":"20685455546254f820d8fac8261dba873e5bdd55"},{"file":"sfx\/poco_hurt_02.ogg","sha":"fcfa50827daf493a557ac530a58faf94847be17b"},{"file":"sfx\/poco_hurt_03.ogg","sha":"d9516d18dfbe33a381ff11210682ecb478d4965d"},{"file":"sfx\/poco_hurt_04.ogg","sha":"98971883794f38b51cb79e359e1e2f382846a09f"},{"file":"sfx\/poco_kill_01.ogg","sha":"57eccfd8d7c21926e71e7b0f78f83d9b2699e4ef"},{"file":"sfx\/poco_kill_02.ogg","sha":"1e8ec29f58a0d8066d636076f58fe658fc644dd9"},{"file":"sfx\/poco_kill_03.ogg","sha":"ffb590c14fd87d05b1bcf4580dc831499f61fe42"},{"file":"sfx\/poco_lead_01.ogg","sha":"3f3b339963b5777f71dc29ad29c0f2af5ec636fe"},{"file":"sfx\/poco_lead_02.ogg","sha":"cb24f12650119a187818981aa69f0baeff70353c"},{"file":"sfx\/poco_lead_03.ogg","sha":"69e067c9d8069a14a91383e6a2af7d44d0e841f2"},{"file":"sfx\/poco_new_atk_01.ogg","sha":"9091c2e3582f3d5260d53fcfadf1ca49f9674e93"},{"file":"sfx\/poco_new_reload_02.ogg","sha":"014a94fb496c814e4eb826de07474ae8cacfe868"},{"file":"sfx\/poco_start_01.ogg","sha":"3490f59fb9ddb5b61a30015bdf0d9df74bbd714f"},{"file":"sfx\/poco_start_02.ogg","sha":"725ac07ab023343a5a6a055df0ab6e8500a4f80d"},{"file":"sfx\/poco_start_03.ogg","sha":"7a45beb2a434c86f58f39d1852edd111369da31d"},{"file":"sfx\/poco_start_04.ogg","sha":"80c91f3027ae7b95c68e0d891be2567a43ca0040"},{"file":"sfx\/poco_ulti_01.ogg","sha":"5b03489d9f68c4b5fc0e8a9be70ae1883fdbb779"},{"file":"sfx\/poco_ulti_02.ogg","sha":"e235fd581b11a4dcb9ed87993860a35927abbc52"},{"file":"sfx\/poco_ulti_03.ogg","sha":"7f91dcc30c123cef00e17e7c7ed684226c709f9c"},{"file":"sfx\/poco_ulti_04.ogg","sha":"4bb128de2e598d45979bff7096a4aab4e5a79ef2"},{"file":"sfx\/poco_ulti_sfx.ogg","sha":"67aecbbd0e2582dac1a465debbb6f4beac64398f"},{"file":"sfx\/post_match_draw_cheer_02.ogg","sha":"0a7686f5b30eb10386119bc727de040c7b5cbe5a"},{"file":"sfx\/post_match_lose_cheer_01.ogg","sha":"615f23585e855b1540a01b4fa893dfaa94006434"},{"file":"sfx\/post_match_win_cheer_01.ogg","sha":"f34e4058907592ca9ce7e4c526178c60db125690"},{"file":"sfx\/power_up_spawn_01.ogg","sha":"4898a25f8611120f71f1184caad313cce7ef2600"},{"file":"sfx\/princess_land_01.ogg","sha":"9389363c7c2a95985338cdef962b996eb5c25e62"},{"file":"sfx\/princess_shoot_01.ogg","sha":"aee8f54088de59187fabaeca107eee631dd9cb7f"},{"file":"sfx\/punch_impact_01.ogg","sha":"d3115f435e9e40f9ac734550eae6bcdd63cdf8fc"},{"file":"sfx\/punch_impact_02.ogg","sha":"5e961e24bf6ebf9491fcf9452433e61efc832b68"},{"file":"sfx\/rank_up_01.ogg","sha":"679908e9e7ac96bf6e207abdefa4d40b8179ab1a"},{"file":"sfx\/respawn_count_01.ogg","sha":"7c6de5988b917026d1f93e779a0506a4c80dfe6f"},{"file":"sfx\/reveal_common_card_01.ogg","sha":"67758a9c4dc48bd10280dfc0d3cc36e347fdc34d"},{"file":"sfx\/reveal_epic_card_01.ogg","sha":"8019ec8ea53e7ea8bbbd704ffcbd7c3851ad2687"},{"file":"sfx\/reveal_legendary_card_01.ogg","sha":"4c87e8621d63ea8dfc6ad6db0b8cb47915517b2b"},{"file":"sfx\/reveal_rare_card_01.ogg","sha":"9da7345ea2d35954eae9ce204dba666f51dc2d04"},{"file":"sfx\/rhino_fire_01.ogg","sha":"825822edc092322f54e498ab6a384c00d37033da"},{"file":"sfx\/rhinostep_01.ogg","sha":"d1c7caf085fc79054e0b30f8217acf2b1cc0fc33"},{"file":"sfx\/rick_bullet_01.ogg","sha":"b461689bde6fa83d086213668fe81bf5f12bc853"},{"file":"sfx\/rick_die_01.ogg","sha":"91e6c19943cfedcd5dca622498e28525ab538598"},{"file":"sfx\/rick_die_02.ogg","sha":"e3c58ef246eb2800a8254888ff00a82fe69abc5d"},{"file":"sfx\/rick_die_03.ogg","sha":"c790f5cea2fece5399ee3e44cf6e1a4dfb307492"},{"file":"sfx\/rick_die_04.ogg","sha":"21502e77d25b3fe2187c3530ef15e81d420270c9"},{"file":"sfx\/rick_die_05.ogg","sha":"575543d93752db9d0a20596d8f312269ba45921f"},{"file":"sfx\/rick_hurt_01.ogg","sha":"aea13d6286c696d6ec85b20befe33d72f99ad54e"},{"file":"sfx\/rick_hurt_02.ogg","sha":"a25e329ad322dcc91ac6618826abc453064094de"},{"file":"sfx\/rick_hurt_03.ogg","sha":"ffc0ee000eb60f5920b93ffe3c5f431c74cebe48"},{"file":"sfx\/rick_hurt_04.ogg","sha":"c0bf6a635d6ba6ff905dffc5cf8899a6e865e1be"},{"file":"sfx\/rick_hurt_05.ogg","sha":"e1526e62cc55d131cc319aaf2e5963f3834a418e"},{"file":"sfx\/rick_kill_vo_01.ogg","sha":"2e385b4159b8de2513c6d493183466af17867b58"},{"file":"sfx\/rick_kill_vo_02.ogg","sha":"a807e712ad5b69d1e06b0c4f6ad1be4e3c30e1ba"},{"file":"sfx\/rick_kill_vo_03.ogg","sha":"238e4c76096c53995c2f29842737e02a02c04ef5"},{"file":"sfx\/rick_kill_vo_04.ogg","sha":"3073252f22230bd8b9f4271e172671159e173117"},{"file":"sfx\/rick_kill_vo_05.ogg","sha":"11a3a74c5d903899303da7804d8bb8428bec1f97"},{"file":"sfx\/rick_kill_vo_06.ogg","sha":"8247408409f508da42c9a5c8a99aea104191111c"},{"file":"sfx\/rick_kill_vo_07.ogg","sha":"1960f3e9c1a2ac0ab5ddb8eacdf7f24ffde2274e"},{"file":"sfx\/rick_lead_01.ogg","sha":"a86ca2567284f1619de604599128ac86541caf37"},{"file":"sfx\/rick_lead_02.ogg","sha":"68555c002a8db86212194bbadde9aec136be3cc6"},{"file":"sfx\/rick_lead_03.ogg","sha":"32c74ca2e84eb7b0ea40bbedf5197a90497a4676"},{"file":"sfx\/rick_lead_04.ogg","sha":"4f26f406cd0e5b4301ad102a0b778e6cd45bb5d6"},{"file":"sfx\/rick_lead_05.ogg","sha":"d44412c682eef30a6a13ab81d57a8e70c1fdc430"},{"file":"sfx\/rick_start_vo_01.ogg","sha":"69046f47145982957ec72e35a2d26299b06f6b32"},{"file":"sfx\/rick_start_vo_02.ogg","sha":"d49a0fb72c17a24c362c564e0028d6c97a3d97cc"},{"file":"sfx\/rick_start_vo_03.ogg","sha":"5ee8c6cf539117328ed551a7edf28f07ef65865a"},{"file":"sfx\/rick_start_vo_04.ogg","sha":"7e4f811487de6550f639fdb1734867d1019f4ff5"},{"file":"sfx\/rick_start_vo_05.ogg","sha":"344ad7f75ee763ef30b648710f3bcc5f521854cd"},{"file":"sfx\/rick_start_vo_06.ogg","sha":"18219e6048f9666f7406d9bb07ccb20512896b2c"},{"file":"sfx\/rick_ulti_01.ogg","sha":"3f74cf55168d95d43670be31cf772c0c7edfb560"},{"file":"sfx\/rick_ulti_02.ogg","sha":"10a59368d9f2bb9a60da2a1602980e61867c690f"},{"file":"sfx\/rick_ulti_03.ogg","sha":"2ed365d18c931e984628a5e9ab50ce1d7b620366"},{"file":"sfx\/rick_ulti_04.ogg","sha":"309f4a5ee70c6a2da4662eb6a66fdeaa0f6babf6"},{"file":"sfx\/rick_ulti_05.ogg","sha":"ba0f2d514ae0acb109bdf18d56acfd1571ef9477"},{"file":"sfx\/rick_ulti_06.ogg","sha":"7e7bf6420ebdf34b4569a9013fe37d2c6996f88f"},{"file":"sfx\/robo_bo_die_01.ogg","sha":"34e11fe2415102099ab33cf3e2e7e1b67a4f3b6f"},{"file":"sfx\/robo_bo_die_02.ogg","sha":"bedfc4d1cedc95e037e163d5863f832461ed50a8"},{"file":"sfx\/robo_bo_die_03.ogg","sha":"b5fbd752379e0f09ef17489846fe3df17f51db37"},{"file":"sfx\/robo_bo_die_04.ogg","sha":"5893bf0d35d61812d87d3ced856ab81b1cb59967"},{"file":"sfx\/robo_bo_die_05.ogg","sha":"6e9b031ead0fc4cd916a2408e909683d470b84ab"},{"file":"sfx\/robo_bo_fire_vo_01.ogg","sha":"cdaf709dc647987b393b5669eb813d2c0501bc3c"},{"file":"sfx\/robo_bo_fire_vo_02.ogg","sha":"d586dc619f4424369e52a61535f812057669881d"},{"file":"sfx\/robo_bo_fire_vo_03.ogg","sha":"7ed9859973514ee682750978ed1e9bd0ee7cd48a"},{"file":"sfx\/robo_bo_fire_vo_04.ogg","sha":"52dfa02f08d716e2f33bd5d1a18c9df93d86348f"},{"file":"sfx\/robo_bo_hurt_01.ogg","sha":"1b215261e764880ee2a988eeb04aa4231cbc7122"},{"file":"sfx\/robo_bo_hurt_02.ogg","sha":"cb2a4084a898122683a8199d85685a6b5ce400cd"},{"file":"sfx\/robo_bo_hurt_03.ogg","sha":"ed6d024699869c06f246fa490573902acc142d7f"},{"file":"sfx\/robo_bo_hurt_04.ogg","sha":"b574baccf4590cb9e2d94e0f88afb18a71352e7e"},{"file":"sfx\/robo_bo_kill_01.ogg","sha":"2e666075bb7bab0d3b976c36fcaef2d7d9db081e"},{"file":"sfx\/robo_bo_kill_02.ogg","sha":"aa2111d1e42ceb6cd180198a9536527881978e60"},{"file":"sfx\/robo_bo_kill_03.ogg","sha":"7172994b76ee7141e48f5f251a1a1b2ff7c80ac9"},{"file":"sfx\/robo_bo_kill_04.ogg","sha":"02bd3a68fd30d055a3c16fac0d19e3c6a50317ee"},{"file":"sfx\/robo_bo_lead_vo_01.ogg","sha":"dc6bba72554bca4bc6355ee308c6fc14f25c1b7b"},{"file":"sfx\/robo_bo_lead_vo_02.ogg","sha":"a6bc0181357c78f43f20c395c5b470acf0d72fbc"},{"file":"sfx\/robo_bo_lead_vo_03.ogg","sha":"097f30a01768c6fcb516a53f62322e124d2f274f"},{"file":"sfx\/robo_bo_lead_vo_04.ogg","sha":"b3e3f30dcf050236c22468ab789e298ac7edc984"},{"file":"sfx\/robo_bo_start_vo_01.ogg","sha":"899f8a9b978e748ab091df79e905d7dcf5fc3647"},{"file":"sfx\/robo_bo_start_vo_02.ogg","sha":"011cc2d08e54500f1ac53122b5328e0e12ea56b0"},{"file":"sfx\/robo_bo_start_vo_03.ogg","sha":"c162e1636fec4de522ce0651107e99521d739dfc"},{"file":"sfx\/robo_bo_start_vo_04.ogg","sha":"2ac54be3df0c1ff031aa468003c3e51376657f5a"},{"file":"sfx\/robo_bo_start_vo_05.ogg","sha":"a864f848bbf3e71177a95547c68887671bd027d7"},{"file":"sfx\/robo_bo_ulti_vo_01.ogg","sha":"c9da37b701fefad356cbc0083e0f504fbd29a731"},{"file":"sfx\/robo_bo_ulti_vo_02.ogg","sha":"c20e3a3d40112f83eb317392fc38e7f2616d3821"},{"file":"sfx\/robo_bo_ulti_vo_03.ogg","sha":"bc8c9d5fd58a326ac7586690b306b955aadc2b04"},{"file":"sfx\/robo_bo_ulti_vo_04.ogg","sha":"e45980f5b99d427dd47d77bc5f9c2386aa6f83c3"},{"file":"sfx\/robo_death_01.ogg","sha":"b952b89d9efd0d15308252fd44a27c8d7634bc80"},{"file":"sfx\/robo_death_02.ogg","sha":"5c089652b790373e0432e84f5af7a9c705b50e5c"},{"file":"sfx\/robocon_01.ogg","sha":"b241d9f0ed6a82d9a6bef88da8e9a176b9c48d97"},{"file":"sfx\/roborocket01.ogg","sha":"be515d3f99ad2ea30cc7ed30eb4281ddb5a0ed74"},{"file":"sfx\/robotshoot_01.ogg","sha":"9c0d98af51affd6e6e3300048d8d8928ea97a2de"},{"file":"sfx\/roboturret01.ogg","sha":"86b06e223495b8286fce7fd2ccbd471546259fa7"},{"file":"sfx\/rocket_rose_atk_02.ogg","sha":"94d33fb18bff6a95cf9f03cbb5c17b219d20f00d"},{"file":"sfx\/rosa_death_01.ogg","sha":"48c354fbf01e62dc37dd74b2622715eb522b3d1f"},{"file":"sfx\/rosa_death_02.ogg","sha":"0dbd4e28e1a77206d84d69b5e70c7c18eec75b79"},{"file":"sfx\/rosa_death_03.ogg","sha":"19ce86073a8421ec8b7093c33d9493134242e069"},{"file":"sfx\/rosa_death_04.ogg","sha":"88869bce431cf494840c0abc211afd8629bfdc75"},{"file":"sfx\/rosa_gadget_01.ogg","sha":"a4105e956890d25dc53e16e935527b819735893c"},{"file":"sfx\/rosa_hit_01.ogg","sha":"31ac9a7dacd44f1e178d0e15f594af7d96e41665"},{"file":"sfx\/rosa_hit_02.ogg","sha":"a174c76adac1038b6d579d14ed0d6ee908cdc24d"},{"file":"sfx\/rosa_hit_03.ogg","sha":"4ac354ce3aa666618aaca9bc237a8a653a8ba154"},{"file":"sfx\/rosa_hit_04.ogg","sha":"37fdc54262d53fc8c2a9db9370fdeb19f6f14f59"},{"file":"sfx\/rosa_hit_05.ogg","sha":"4dd04bad8265f2bfbe8d1098ed98fdac0adf60f8"},{"file":"sfx\/rosa_hit_06.ogg","sha":"54aa113d97e6fb901fdb7a9f74835adb6976307e"},{"file":"sfx\/rosa_hit_07.ogg","sha":"7da7d162fea9db794e65a42e9b3a0df4c9cb8f87"},{"file":"sfx\/rosa_kill_01.ogg","sha":"e767979301c80936b7cc7193733d72d3fbfa6e35"},{"file":"sfx\/rosa_kill_02.ogg","sha":"51b5e6945925fbce5d26ee0686e42d5543fa155b"},{"file":"sfx\/rosa_kill_03.ogg","sha":"e8c496f1fd33cf67f29efbd308a28513387e6e48"},{"file":"sfx\/rosa_kill_04.ogg","sha":"a664f4de9e23e2de5d91c2946582ab692f019ba1"},{"file":"sfx\/rosa_kill_05.ogg","sha":"53adaa2aeb133b6261c1faa29873f7b6fbbed172"},{"file":"sfx\/rosa_lead_01.ogg","sha":"92994e1a118fd484873fecf983349b9fa103176c"},{"file":"sfx\/rosa_lead_02.ogg","sha":"af5b51059697f6225196e7478b52f6944cb0ee0c"},{"file":"sfx\/rosa_lead_03.ogg","sha":"a8ec28343f348e974b0dd97881de8a8a37bfc76d"},{"file":"sfx\/rosa_start_01.ogg","sha":"e88870fb8ec8423d06a1e0a01e48c10679926970"},{"file":"sfx\/rosa_start_02.ogg","sha":"501246e776d09775d4d955b078af7f9454f7f0fd"},{"file":"sfx\/rosa_start_03.ogg","sha":"6e4df12d56ab0525f96f9d1258dd8a7bde12a6b4"},{"file":"sfx\/rosa_start_04.ogg","sha":"011e8648224351a0ff4702818c8504e69a901d7c"},{"file":"sfx\/rosa_ulti_vo_01.ogg","sha":"309237abf0f3da6ebe7339a53fe41834cfa7bba3"},{"file":"sfx\/rosa_ulti_vo_02.ogg","sha":"6169bf1b45eb22117b259d62558e751df36f5907"},{"file":"sfx\/rosa_ulti_vo_03.ogg","sha":"63916c4c5d95d410b33717c43c8ceb429fa6b572"},{"file":"sfx\/rosa_ulti_vo_04.ogg","sha":"10db87593f293de35ac366bad9dec3298109997a"},{"file":"sfx\/rose_rocket_explo_01.ogg","sha":"e5cd00c40d9b3b71ee2064add19c8afb7060eb12"},{"file":"sfx\/rose_rocket_ulti_explo_01.ogg","sha":"3332df1b4bfc52abb85fa12623b4ea266d32ddb2"},{"file":"sfx\/safe_drop_01.ogg","sha":"35f7f1b630b1da6e1e7615b9155fd7932391e22d"},{"file":"sfx\/safe_open_char_01.ogg","sha":"ebc86498592f9b227d45a7cb38f42185cbf4b595"},{"file":"sfx\/sandy_atk_01.ogg","sha":"d14bd7ad86930c40f317c09553dde59888a97e30"},{"file":"sfx\/sandy_die_vo_01.ogg","sha":"ad5e660b06caa0b3c0c04a8d685b528df9f55758"},{"file":"sfx\/sandy_die_vo_02.ogg","sha":"69989ccf4d5f8c24439e4e01ac5721fbf251b7b8"},{"file":"sfx\/sandy_die_vo_03.ogg","sha":"b3dfe828eee2ae7f0a3c8b534704eeb71c054417"},{"file":"sfx\/sandy_die_vo_04.ogg","sha":"17e7eb51a92f2faf410264f61f4d49500fc2233f"},{"file":"sfx\/sandy_hurt_vo_01.ogg","sha":"dfd571db46ff2219b2b9c56220958e29d1af2271"},{"file":"sfx\/sandy_hurt_vo_02.ogg","sha":"e676e3c066bff0716216e64d612c62fe3294ce91"},{"file":"sfx\/sandy_hurt_vo_03.ogg","sha":"a4c32dd7132f4d3e009b40cc97176a7b7e3ae41e"},{"file":"sfx\/sandy_hurt_vo_04.ogg","sha":"85ca36495121f708a360dbfc16b9edbb200bb942"},{"file":"sfx\/sandy_hurt_vo_05.ogg","sha":"d9891b0444c7f71c7b516a8a02c41c77fb314099"},{"file":"sfx\/sandy_hurt_vo_06.ogg","sha":"416afd2e9bcb2f08fe103da7f5e3acdef8b13e1d"},{"file":"sfx\/sandy_kill_vo_01.ogg","sha":"46a13c47ff6348faaedf0bf865b81c6067e89f33"},{"file":"sfx\/sandy_kill_vo_02.ogg","sha":"cb20e80f8bd7c24c2960b9f72ca3c0ebdd6f548b"},{"file":"sfx\/sandy_kill_vo_03.ogg","sha":"020ae1616a5d03e6b938cff77fddb90793013bde"},{"file":"sfx\/sandy_kill_vo_04.ogg","sha":"ff9e2957a505147b0e63c0939fd9181a8b4951dc"},{"file":"sfx\/sandy_kill_vo_05.ogg","sha":"d8116733afe4e1fc7f6877324108f578ca8cda7b"},{"file":"sfx\/sandy_lead_vo_01.ogg","sha":"050e904395607eacc04f560944c8a22ac3f13fec"},{"file":"sfx\/sandy_lead_vo_02.ogg","sha":"f6c236d7a847e03f56ca1a2ea0e2daa481c8c294"},{"file":"sfx\/sandy_lead_vo_03.ogg","sha":"13c84b6af31167b8efa509241c38b022256ebfd5"},{"file":"sfx\/sandy_lead_vo_04.ogg","sha":"9b025a2ab80af3441c0d69f0fcd88add9f044b03"},{"file":"sfx\/sandy_lead_vo_05.ogg","sha":"ba9b35872dc6b96ae24dceae2eefaf37f56e30c7"},{"file":"sfx\/sandy_no_ammo_01.ogg","sha":"b83c25ea91b95c11dbb49fa6fd09e4e0dc385554"},{"file":"sfx\/sandy_reload_01.ogg","sha":"ce8ac176d2746cf041c7b8d09fc79154dd24a91b"},{"file":"sfx\/sandy_start_vo_01.ogg","sha":"9d09de2789002fc55af34cbbcc96cf289f3a565e"},{"file":"sfx\/sandy_start_vo_02.ogg","sha":"a8b4c134095fbe5639af947d61ed09ac4961db85"},{"file":"sfx\/sandy_start_vo_03.ogg","sha":"78ad8cbf8348ebb96bf8341a228a1d0679fb8ec4"},{"file":"sfx\/sandy_start_vo_04.ogg","sha":"d7057754ae59b0c5753c123b1a8e6be7e214d773"},{"file":"sfx\/sandy_start_vo_05.ogg","sha":"394b2411d4478aea14c428efb00d259166d0e1e3"},{"file":"sfx\/sandy_start_vo_06.ogg","sha":"c21477d0ea07a60de854ec0fa9c1b2575199d34f"},{"file":"sfx\/sandy_ulti_01.ogg","sha":"3315245d2cac234941727c695000a0ad52903dae"},{"file":"sfx\/sandy_ulti_vo_01.ogg","sha":"cf92aa729a11b8ea000cadaf2f9594a7f367d9fb"},{"file":"sfx\/sandy_ulti_vo_02.ogg","sha":"dbabc175e09c8c4f76e8a96e357a38c2ea72ea3d"},{"file":"sfx\/select_brawler_01.ogg","sha":"16511d104e8c2121459d58e616c8c0e8959b87b6"},{"file":"sfx\/sgg_dryfire_01.ogg","sha":"9ec0e616eeb600a1f6427000b42739906da0b992"},{"file":"sfx\/sgg_out_of_ammo_02.ogg","sha":"80b6ca2e781f132f66c8304c42a172815c748560"},{"file":"sfx\/shelly_die_01.ogg","sha":"0a5011177a93e74cbcc1ecbf03f173eb2fec0ec4"},{"file":"sfx\/shelly_die_02.ogg","sha":"1fd0d9ec5535a40cd57a1c1da31f4e116a78ef99"},{"file":"sfx\/shelly_die_03.ogg","sha":"0a91f5c2e9ff0732105b137f41c7fae5ac287aa3"},{"file":"sfx\/shelly_die_04.ogg","sha":"1ed70949ffdb339562dac2bb911e1eaef7049a6d"},{"file":"sfx\/shelly_hurt_01.ogg","sha":"a4db4470185cbdbe36aad2735d5ee555b8c66bd2"},{"file":"sfx\/shelly_hurt_02.ogg","sha":"f388022bb8f99b89607d118e08bd9bedf9d74789"},{"file":"sfx\/shelly_hurt_03.ogg","sha":"2c71910f18152b71bccf4e50c69e6782c2b9cea3"},{"file":"sfx\/shelly_hurt_04.ogg","sha":"857efaf860e9294ada0896901e63b4ce5d89e23e"},{"file":"sfx\/shelly_hurt_05.ogg","sha":"91b430f267ac6842584593da48040d1399708cb7"},{"file":"sfx\/shelly_kill_01.ogg","sha":"01649ddc2ae8e147ec1bb10b2895f7418d96a1b4"},{"file":"sfx\/shelly_kill_02.ogg","sha":"b0dd39533aaf20a84d39d544af7877bb2085f0ea"},{"file":"sfx\/shelly_kill_03.ogg","sha":"e2af115e57859e65f137d8125ea12ec64483fcf9"},{"file":"sfx\/shelly_kill_04.ogg","sha":"b8a9b87e7245c1f249e57acdca74faf91a01224f"},{"file":"sfx\/shelly_kill_05.ogg","sha":"86cff3d39074a86bee04f3eb8dab429fc14aafeb"},{"file":"sfx\/shelly_lead_01.ogg","sha":"e82e5bf9d63bde1f669532c23200487205531c9b"},{"file":"sfx\/shelly_lead_02.ogg","sha":"1b813cdec39a2764a610fe838d7b31312f60d620"},{"file":"sfx\/shelly_lead_03.ogg","sha":"7ca23febb33dc1532c153b06f8c263e029d8e688"},{"file":"sfx\/shelly_lead_04.ogg","sha":"3b86dab85f6a06c237eb39b2ff2b80d9824bd178"},{"file":"sfx\/shelly_start_01.ogg","sha":"85cbaa55a6904b147871572c8904b20b41096b16"},{"file":"sfx\/shelly_start_02.ogg","sha":"0701cb9b59ee094561c85389494ae85df1f0424b"},{"file":"sfx\/shelly_start_03.ogg","sha":"ecc44fda6fdeb4cae365c28a93b8b732aae500e9"},{"file":"sfx\/shelly_start_04.ogg","sha":"101013b5c67f2e759e0b0d46ac869b924e9e06cb"},{"file":"sfx\/shelly_ulti_01.ogg","sha":"509cb1f21ed7f694d051b71a49b718a42479ea98"},{"file":"sfx\/shelly_ulti_02.ogg","sha":"92cc1126d2d7703feb21aaa2377b6d41c708282a"},{"file":"sfx\/shelly_ulti_03.ogg","sha":"6a46a37687b8edc06944f1289f703bd809fa88e1"},{"file":"sfx\/shelly_ulti_04.ogg","sha":"ad504d8a582f8c4a833b548a7f685aa2230dccb4"},{"file":"sfx\/shield_03.ogg","sha":"630186425958779c0749a8ea03d2da745d70da7c"},{"file":"sfx\/shotgun_fire_01.ogg","sha":"7ab6b8a4bc57189ec49bd2c9f758427466e741f8"},{"file":"sfx\/shroomz.ogg","sha":"0297f50e99f6cb3c2e8078bedfc0b82ce91124af"},{"file":"sfx\/skill_used_03.ogg","sha":"ba37c239847c33ecffdcdfd04ace2f408646c222"},{"file":"sfx\/slider_tick_01.ogg","sha":"141dc928e3453aea5ffa0d6fc207db12a417f9e8"},{"file":"sfx\/slimey_shotgun_01.ogg","sha":"60d9976a5e87366249b7b5ce8fe66dc9e555a2b7"},{"file":"sfx\/slimey_shotgun_ulti_01.ogg","sha":"181138ac38a360b84a6e0d6ec5ae2f69b0879c80"},{"file":"sfx\/slug_bad_kill_01.ogg","sha":"82cc1c0883864a95d6c417f557985fb52d4c7cfb"},{"file":"sfx\/slug_good_kill_01.ogg","sha":"f3828d0a77ebfd224bdf22ef70e4a5f1ec634bf4"},{"file":"sfx\/slugfest_clock_01.ogg","sha":"6549d12e4c4ea62648b86e26ffea80705b92d227"},{"file":"sfx\/sniper_reload_01.ogg","sha":"a1464481765e0b1722058b1902053735422308fa"},{"file":"sfx\/sniper_trail_02.ogg","sha":"558115f832f168ed8fb7ce4e783b360fda3bd2e6"},{"file":"sfx\/sniper_ulti_01.ogg","sha":"a940357d4eaffdd27140ee456ff639d0eb5d290e"},{"file":"sfx\/solgrenade01.ogg","sha":"ce15ab0fe6cbd7949a741a63a9205b2a30bb9fc8"},{"file":"sfx\/spike_atk_01.ogg","sha":"6b3ec159a3b9e6843b43739147e46cb4aedbb33a"},{"file":"sfx\/spike_reload_03.ogg","sha":"6c5b8307d553f5fb1f11f781a01921eb1b3f2ec4"},{"file":"sfx\/spike_ulti_explo_01.ogg","sha":"b827597a2fc7530137b374d48e80dfa4ce25c247"},{"file":"sfx\/springboard_charge_01.ogg","sha":"95dcc001b1628e818d8187422df5fc43fe6622a3"},{"file":"sfx\/springboard_jump_01.ogg","sha":"6f02696572e19c735829f85d64d03ff0420b9159"},{"file":"sfx\/sprout_atk_01.ogg","sha":"9cf7e103e7998e9affb4ba0ecc54d908cb125534"},{"file":"sfx\/sprout_atk_explo_01.ogg","sha":"829a176a8a15aac6a1230daab2922ffd32bdf17d"},{"file":"sfx\/sprout_atk_ulti_01.ogg","sha":"63e78d5bf0c35741246067d0a1222dbb6aa680ed"},{"file":"sfx\/sprout_atk_ulti_explo_01.ogg","sha":"f3099e30bc68e7225ec660b507bb9aa1887dc58d"},{"file":"sfx\/sprout_atk_ulti_explo_02.ogg","sha":"04d9877c869cb94df5c6a73b294273a4606b6f62"},{"file":"sfx\/sprout_die_vo_01.ogg","sha":"544e1c4c34bb71ed21b22678771afcedd5f3a7b6"},{"file":"sfx\/sprout_die_vo_02.ogg","sha":"1bca05884207418c139a20ecac57a9edf25dc7d3"},{"file":"sfx\/sprout_die_vo_03.ogg","sha":"e288b01b92d70e5f6006a10550cca992604cb6c3"},{"file":"sfx\/sprout_die_vo_04.ogg","sha":"841ed5e59c868b5c17a9b2880507ed2ae1f400f3"},{"file":"sfx\/sprout_die_vo_05.ogg","sha":"be2b1d8e546550ddf9867dcc312b137d503a3b9d"},{"file":"sfx\/sprout_dryfire_01.ogg","sha":"30fecee3d6ad201b46ce7c9ac8c7cff71bb22752"},{"file":"sfx\/sprout_hurt_vo_01.ogg","sha":"0dd231aa07a84011af8e42b2d7b4a3c288814a2c"},{"file":"sfx\/sprout_hurt_vo_02.ogg","sha":"db5cc344042d79165e7414b10142eb63c1de6c01"},{"file":"sfx\/sprout_hurt_vo_03.ogg","sha":"49e90e3b6e5b5b827d2a409dd010d7a624d82c3d"},{"file":"sfx\/sprout_hurt_vo_04.ogg","sha":"f613f23acd9231b2e3b32bb0c34ff6269c183e7d"},{"file":"sfx\/sprout_kill_vo_01.ogg","sha":"a971574332de705b4735edca6028b3c9d26f2faa"},{"file":"sfx\/sprout_kill_vo_02.ogg","sha":"9b808ca195f828b430d105b55561de2993e5a103"},{"file":"sfx\/sprout_kill_vo_03.ogg","sha":"c63817c83563b0d11253df17103c9debdbcc32e4"},{"file":"sfx\/sprout_kill_vo_04.ogg","sha":"50717e0b62e9511ac56b48ecb32c877c9639a801"},{"file":"sfx\/sprout_kill_vo_05.ogg","sha":"43be79ca137c86c60351a7dadab61067030b0455"},{"file":"sfx\/sprout_lead_vo_01.ogg","sha":"ae9f91c52c0c3a519f5815a7153ab285a8e8d50b"},{"file":"sfx\/sprout_lead_vo_02.ogg","sha":"3aa7c4b880b15019cf7d411a9965f03021cf3591"},{"file":"sfx\/sprout_lead_vo_03.ogg","sha":"d5fe825c9a815ff3d72e65ae3589566517d9b5ce"},{"file":"sfx\/sprout_lead_vo_04.ogg","sha":"d164f63d05412549f0ef01b1142018be6d566d27"},{"file":"sfx\/sprout_reload_01.ogg","sha":"d9645497feb10ee2adfad3f806c6becae17064f0"},{"file":"sfx\/sprout_start_vo_01.ogg","sha":"7121911c26d602dd86c4bc10665ade25f35b6ade"},{"file":"sfx\/sprout_start_vo_02.ogg","sha":"02bb68a4c9cded3e7acf3e9511025302df4634d4"},{"file":"sfx\/sprout_start_vo_03.ogg","sha":"5dcc5a7941c4c1ee5af2716e33bde8f80f658295"},{"file":"sfx\/sprout_start_vo_04.ogg","sha":"de0b45a7452fc63354d6907a7e7210839620590c"},{"file":"sfx\/sprout_ulti_vo_01.ogg","sha":"71166d0a9bb6b09dd8387e4a355f5bb0553f3378"},{"file":"sfx\/sprout_ulti_vo_02.ogg","sha":"deaafbfdab9f860230330824e198efb27f98732e"},{"file":"sfx\/sprout_ulti_vo_03.ogg","sha":"07a04b1598eb23a8b4d4645d5f91ce61abeabc7d"},{"file":"sfx\/sprout_ulti_vo_04.ogg","sha":"059f66df254c83ba9372f38eb59b92bd4c550573"},{"file":"sfx\/star_power_equip_01.ogg","sha":"a62fcdff19ea21c882afe2c98f9c53ec5b2cefeb"},{"file":"sfx\/starpower_shield_01.ogg","sha":"481cc775efbc368b3f0690cf165c4e5d90edfa93"},{"file":"sfx\/starpower_speed_01.ogg","sha":"b3a7ad29e690ef37f12be2f4833e507476f068eb"},{"file":"sfx\/startwirl_01.ogg","sha":"5bea3b25102cfe0f0b3e47ff62798a06c280f9d7"},{"file":"sfx\/supercell_jingle.ogg","sha":"030b22dec66f329e04fcc428232cc2a22d91e339"},{"file":"sfx\/tanuki_jess_fire_01.ogg","sha":"7765ebd571b4195324f02dbaa334944d17c25a59"},{"file":"sfx\/tanuki_turret_fire_01.ogg","sha":"d1dea0ceba14d8c8aad38a04a804b4941d11151a"},{"file":"sfx\/tap_guns_02.ogg","sha":"08131fd3c18ef09999714b3728647741c7c642cb"},{"file":"sfx\/tap_normal_02.ogg","sha":"b7a25e6f1ff348d9c778c7c9508f76772cd742c2"},{"file":"sfx\/tara_die_vo_01.ogg","sha":"91a9ae5986199c508cdeb6a03307f11bd65c90a2"},{"file":"sfx\/tara_die_vo_02.ogg","sha":"2a87f9140250772fdbe8736e12a020692478a61c"},{"file":"sfx\/tara_die_vo_03.ogg","sha":"6362e77f4046479e08e819ce89431844891e498a"},{"file":"sfx\/tara_die_vo_04.ogg","sha":"6b150703b0be885a90bb78a0f030eda6c877d51a"},{"file":"sfx\/tara_gagdet_01.ogg","sha":"5264fe0012baab8bf47ad90ef42fff1f9931e689"},{"file":"sfx\/tara_hurt_vo_01.ogg","sha":"6a67eb05c0560743fa3d926274f358fb2f8cefb9"},{"file":"sfx\/tara_hurt_vo_02.ogg","sha":"ed4524401f9481e20a5dd7268bcf2aa83367328e"},{"file":"sfx\/tara_hurt_vo_03.ogg","sha":"9504aa712560d809125d0a27638db8ff217910c9"},{"file":"sfx\/tara_kill_vo_01.ogg","sha":"b0136e90023e09009dc7f25741319bc4916ee517"},{"file":"sfx\/tara_kill_vo_02.ogg","sha":"06a05840f34007015628d994dca52f872ba7bffc"},{"file":"sfx\/tara_kill_vo_03.ogg","sha":"037dcad60f3b0a71db7e2a7328b6657ee0d0fd96"},{"file":"sfx\/tara_kill_vo_04.ogg","sha":"69f1cfab3b918c5c9884688371992b7f55ec425d"},{"file":"sfx\/tara_lead_vo_01.ogg","sha":"a506b7ed911b30cea7dc1d241a75e71de2d9c1f5"},{"file":"sfx\/tara_lead_vo_02.ogg","sha":"1ae6376c9b583c84f4d5c220ea593c9e41a6401b"},{"file":"sfx\/tara_lead_vo_03.ogg","sha":"bd3e9c73eba8c833dce5f3ebd87a1ec0c4126c8d"},{"file":"sfx\/tara_start_vo_01.ogg","sha":"5f535443bb017abb0f29b11d43975dd6d5e76570"},{"file":"sfx\/tara_start_vo_02.ogg","sha":"27e53ea295801ec1fd3cd43a68afe3520a58b205"},{"file":"sfx\/tara_start_vo_03.ogg","sha":"a0f268bb6ef5542103491e90296a85dfa1852776"},{"file":"sfx\/throw_bawl_ulti_01.ogg","sha":"370a0d3b18dce04019daeebeb7fc0d9953aeacec"},{"file":"sfx\/tick_atk_01.ogg","sha":"fe24e87c16672315650220564210e3a650b9c134"},{"file":"sfx\/tick_atk_split_02.ogg","sha":"da7c956a2558e571ffe75b7a86f38921dad70572"},{"file":"sfx\/tick_reload_01.ogg","sha":"3741fa1b37a060aedcebfb98fb73a9c8fb7b6c42"},{"file":"sfx\/tick_ulti_01.ogg","sha":"b6e7c155d816addad69fe0ad0d2055fff9440c6b"},{"file":"sfx\/tick_vo_01v2.ogg","sha":"daf7c88cee1cfca52588b0041804444159221f02"},{"file":"sfx\/tick_vo_02v2.ogg","sha":"823f4502d6a5fafb6a9b76d6be407393b89498fe"},{"file":"sfx\/tick_vo_03v2.ogg","sha":"2aa88dd06600610c9522ad0a56c6dca2dc507edd"},{"file":"sfx\/tick_vo_04v2.ogg","sha":"c34ad40737f96a0b206c533fbd7e667daecd787a"},{"file":"sfx\/tick_vo_05hurt.ogg","sha":"e1518de841200990da8c2a9a945263e38c086cc2"},{"file":"sfx\/tick_vo_05v2.ogg","sha":"1e86fc7ca5726ef964d95b0d1c9e8e92aa36ea7f"},{"file":"sfx\/tick_vo_06hurt.ogg","sha":"674b8ba61199ec5e06dc3abd2629502fb15656c4"},{"file":"sfx\/tick_vo_06v2.ogg","sha":"26aeac5faed4cdf697298fe48929d836903b4c6d"},{"file":"sfx\/tick_vo_07hurt.ogg","sha":"07ece5fb5b2d4ed3f4719026ae715cfce2cf06ca"},{"file":"sfx\/tick_vo_08die.ogg","sha":"5921c3bb6d51747eb6255f8b9b0e87a5dfc87d8b"},{"file":"sfx\/tnt_guy_die_01.ogg","sha":"ec3c8b98cc1a1eb3fc1861723aac2421ca9bd541"},{"file":"sfx\/tnt_guy_die_02.ogg","sha":"ec04a55d4b4f35f1c5fab0d41b4f6fdb7d867708"},{"file":"sfx\/tnt_guy_die_03.ogg","sha":"7a37322bc75282c5a9848df025c84b2f8237d78b"},{"file":"sfx\/tnt_guy_die_04.ogg","sha":"5249f5825b6b392056dfe50116280da6fc6faea2"},{"file":"sfx\/tnt_guy_die_05.ogg","sha":"d8a068da13d15bbffc06b7d33bab5de9602d5c8c"},{"file":"sfx\/tnt_guy_hurt_01.ogg","sha":"ca7aaa6584ff001a934a637a7a14017549bfd6c9"},{"file":"sfx\/tnt_guy_hurt_02.ogg","sha":"5c0e32440dae0217b92a292295fb79b68556382c"},{"file":"sfx\/tnt_guy_hurt_03.ogg","sha":"058d11e6d35eebd0103d184461ef1a2303e33c45"},{"file":"sfx\/tnt_guy_hurt_04.ogg","sha":"4a03b700941abebb0e87653d1db3c6f7a1a23c15"},{"file":"sfx\/tnt_guy_hurt_05.ogg","sha":"f45ee3f0efe81a7ea69f7ed9f9fcb0e316ad6a6a"},{"file":"sfx\/tnt_guy_kill_01.ogg","sha":"43580a4a4d084fb4d4990793864dba63092c152a"},{"file":"sfx\/tnt_guy_kill_02.ogg","sha":"3cd3c2ffd5b1117544c5cbdf7f461d78883b15b3"},{"file":"sfx\/tnt_guy_kill_03.ogg","sha":"9db959c77881d5c8a8fa60c81d948aebb892a34f"},{"file":"sfx\/tnt_guy_kill_04.ogg","sha":"cbb9fec905be047e4dc038821dc78c276d96e186"},{"file":"sfx\/tnt_guy_lead_01.ogg","sha":"4196e294e6b5f475bf2d2adb5b797f73ad1b1371"},{"file":"sfx\/tnt_guy_lead_02.ogg","sha":"2855ab2e16a8e2e9665c901b8954b162f2bd6961"},{"file":"sfx\/tnt_guy_start_vo_01.ogg","sha":"1befb093d3f87cc0893da8b5ecc8a058797002ce"},{"file":"sfx\/tnt_guy_start_vo_02.ogg","sha":"0cd1f61a216b0ff84fa2a70267aabcb1eb913a02"},{"file":"sfx\/tnt_guy_start_vo_03.ogg","sha":"745b16ba345c069354514851eb11b1a4d3b412e2"},{"file":"sfx\/tnt_guy_start_vo_04.ogg","sha":"0791467e349b4ae057a9a3c47b3ccbc4fb4af07c"},{"file":"sfx\/tnt_guy_ulti_01.ogg","sha":"4ebff8e1ac81a4f883dc67b99a9b32e9cdad6c7a"},{"file":"sfx\/tnt_guy_ulti_02.ogg","sha":"55caa9d12afb4b89490cef14bd51db9f4179674e"},{"file":"sfx\/tnt_reload_03.ogg","sha":"27ebb9415893239f7aa159221b9492c8f0b18928"},{"file":"sfx\/tnt_ulti_01.ogg","sha":"5a20d30a57891de53d2cc01692df8d5a796b720b"},{"file":"sfx\/troll_train_warn_01.ogg","sha":"26e92e6b35703909fa1e08be3ee639248242e32c"},{"file":"sfx\/trophy_rank_up_01v2.ogg","sha":"1a1b6c0b4e2b29388ba83f6294305eab7fc41377"},{"file":"sfx\/tut_speech_01.ogg","sha":"1c16dff0a00ab3e5e6be03e7fec021351481697f"},{"file":"sfx\/tutorial_enter_circle_01.ogg","sha":"a9fb3f4b1d73038d057013d321070d07ac2ea4eb"},{"file":"sfx\/ulti_button_cancel_01.ogg","sha":"473eba865ed1b5a389ad362ef221695f7dbb729c"},{"file":"sfx\/ulti_button_press_01.ogg","sha":"beab9e495cf4956d343b41fe113fc136270a51ac"},{"file":"sfx\/ulti_gain_03.ogg","sha":"a721af4312f479b99e2a7e45fee20629d3654ae6"},{"file":"sfx\/ulti_ready_01.ogg","sha":"fa47902196aedd208834dd0ce67654f261321a4a"},{"file":"sfx\/unlock_new_power_lvl_01.ogg","sha":"d5c6032b5ccc4b199189fae3f606b2a410ec3ae0"},{"file":"sfx\/upgrade_count_01.ogg","sha":"e97f481fb825f2f90a0ea8e6c53bdcf217c88934"},{"file":"sfx\/water_brock_atk_01.ogg","sha":"978bd8fb0b863d9014ebd46e99d017349b0f3312"},{"file":"sfx\/water_jess_atk_01.ogg","sha":"54f28419dadab421819482a8f0b893f92512e000"},{"file":"sfx\/water_jess_hit_01.ogg","sha":"107f302f4625047232266e424edbfd09a31308b7"},{"file":"sfx\/water_jess_turret_atk_01.ogg","sha":"db5ffd55a4fffbadf3dfb78324b7d381d7dd960c"},{"file":"sfx\/water_jess_ulti_01.ogg","sha":"ff8ad1af9360eee8efa934a80964a3a546274c23"},{"file":"sfx\/wave_boss_fight_01.ogg","sha":"0c7aaf012bf760fb9ebb84527b33c995d7179e70"},{"file":"sfx\/wave_fight_01v2.ogg","sha":"22646ed71f2078a39a1a52cc459b5add003588d3"},{"file":"sfx\/wind_gust_01.ogg","sha":"d143ad934cfa88db6a58f0f757e87ff2d741b32f"},{"file":"shader\/badge.fsh","sha":"36a6cdeb710a4637c55739abbfe06606e03619b4"},{"file":"shader\/badge.vsh","sha":"3b17fe627fafcbb9095ac3065e5c248904025694"},{"file":"shader\/ghost.fsh","sha":"dfa263bd2a88509c82707cb0c314f1688d716b01"},{"file":"shader\/ghost.vsh","sha":"1c075f951d70b1eb8ff06590978891cab0b1c322"},{"file":"shader\/hologram.fsh","sha":"813618fdf152a1c7fc323e296f581c77819891ab"},{"file":"shader\/hologram.vsh","sha":"eb3856d82380a9724df8a4d049331cef7e975c66"},{"file":"shader\/impostor.fsh","sha":"0f2f959cb0ece052799310549b0644b4dd393703"},{"file":"shader\/impostor.vsh","sha":"5f7c4cdf09a080e048162452f2a5e74fe36612e5"},{"file":"shader\/impostor_outline.fsh","sha":"c41ff174995908ba8824eb2e0a23f186ca05eea6"},{"file":"shader\/impostor_outline.vsh","sha":"5f7c4cdf09a080e048162452f2a5e74fe36612e5"},{"file":"shader\/impostor_outline_mask.fsh","sha":"f77099206e2be541156b8eca21f84466f7605838"},{"file":"shader\/impostor_outline_mask.vsh","sha":"5f7c4cdf09a080e048162452f2a5e74fe36612e5"},{"file":"shader\/impostor_outline_opaque.fsh","sha":"86c2a7b68970f154f475ca170641fe92800a94fc"},{"file":"shader\/impostor_outline_opaque.vsh","sha":"5f7c4cdf09a080e048162452f2a5e74fe36612e5"},{"file":"shader\/mask.fsh","sha":"604401258c83a9e88c66c4c325d7a1bf905485ce"},{"file":"shader\/mask.vsh","sha":"d24e0bbdb372eb8a4d73f17e95e6c09c8243047f"},{"file":"shader\/seaweed.fsh","sha":"5160f70a5b764e82c9e3174e6df6de907fa84160"},{"file":"shader\/seaweed.vsh","sha":"49922f8284a10cfd5eee3464643e5579e4c97c5c"},{"file":"shader\/shadow.fsh","sha":"d2fa6e6ac2190ea9b5bea00cdf5c04acfd87349b"},{"file":"shader\/shadow.vsh","sha":"428963e8e8b323fb153ba931385d46b716dadef3"},{"file":"shader\/uber.fsh","sha":"5160f70a5b764e82c9e3174e6df6de907fa84160"},{"file":"shader\/uber.vsh","sha":"51d83297dee2f17c2e02193d4682aab0748387ab"},{"file":"supercell_id_config.json","sha":"89be9c166ec1eb810ae3511c72f3f574f1ff8d62"}],"sha":"1660a966daa31a498bee59a78670c89ef4364b05","version":"26.165.1"} ================================================ FILE: Server/NLog.config ================================================  ================================================ FILE: Server/config.json ================================================ { "mysql_database": "bsdb", "mysql_password": "", "mysql_server": "127.0.0.1", "mysql_user": "root", "server_port": 9339, "default_name": "Mr Vitalik", "default_region": "IL", "default_trophies": 99999, "patch_url": "", "use_content_patch": false } ================================================ FILE: Source/BrawlStars/BrawlStars.csproj ================================================ Exe netcoreapp3.1 Linux 7.3 OnBuildSuccess server.ico BrawlStars PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest PreserveNewest ================================================ FILE: Source/BrawlStars/BrawlStars.csproj.user ================================================  ProjectDebugger BrawlStars ================================================ FILE: Source/BrawlStars/Core/Configuration.cs ================================================ using System; using System.IO; using Newtonsoft.Json; namespace BrawlStars.Core { public class Configuration { [JsonIgnore] public static JsonSerializerSettings JsonSettings = new JsonSerializerSettings { ObjectCreationHandling = ObjectCreationHandling.Auto, MissingMemberHandling = MissingMemberHandling.Ignore, DefaultValueHandling = DefaultValueHandling.Ignore, NullValueHandling = NullValueHandling.Ignore, TypeNameHandling = TypeNameHandling.Auto, Formatting = Formatting.None }; [JsonProperty("mysql_database")] public string MySqlDatabase = "bsdb"; [JsonProperty("mysql_password")] public string MySqlPassword = ""; [JsonProperty("mysql_server")] public string MySqlServer = "127.0.0.1"; [JsonProperty("mysql_user")] public string MySqlUserId = "root"; [JsonProperty("server_port")] public int ServerPort = 9339; [JsonProperty("default_name")] public string Name = ""; [JsonProperty("default_region")] public string Region = ""; [JsonProperty("default_trophies")] public int Trophies = 99999; [JsonProperty("patch_url")] public string PatchUrl = ""; [JsonProperty("use_content_patch")] public bool UseContentPatch; /// /// Loads the configuration /// public void Initialize() { if (File.Exists("config.json")) try { var config = JsonConvert.DeserializeObject(File.ReadAllText("config.json")); MySqlUserId = config.MySqlUserId; MySqlServer = config.MySqlServer; MySqlPassword = config.MySqlPassword; MySqlDatabase = config.MySqlDatabase; ServerPort = config.ServerPort; Name = config.Name; Region = config.Region; Trophies = config.Trophies; PatchUrl = config.PatchUrl; UseContentPatch = config.UseContentPatch; } catch (Exception) { Console.WriteLine("Couldn't load configuration."); Console.ReadKey(true); Environment.Exit(0); } else try { Save(); Console.ForegroundColor = ConsoleColor.DarkGreen; Console.WriteLine("Server configuration has been created.\nNow update the config.json for your needs."); Console.ReadKey(); Environment.Exit(0); } catch (Exception) { Console.ForegroundColor = ConsoleColor.DarkRed; Console.WriteLine("Couldn't create config file."); Console.ReadKey(); Environment.Exit(0); } } public void Save() { File.WriteAllText("config.json", JsonConvert.SerializeObject(this, Formatting.Indented)); } } } ================================================ FILE: Source/BrawlStars/Core/Network/Handlers/PacketEncoder.cs ================================================ using System.Threading.Tasks; using BrawlStars.Protocol; using DotNetty.Buffers; using DotNetty.Transport.Channels; namespace BrawlStars.Core.Network.Handlers { public class PacketEncoder : ChannelHandlerAdapter { public override Task WriteAsync(IChannelHandlerContext context, object msg) { var message = (PiranhaMessage) msg; message.Encode(); var header = PooledByteBufferAllocator.Default.Buffer(7); header.WriteUnsignedShort(message.Id); header.WriteMedium(message.Writer.ReadableBytes); header.WriteUnsignedShort(message.Version); message.EncodeCryptoBytes(); base.WriteAsync(context, header); return base.WriteAsync(context, message.Writer); } } } ================================================ FILE: Source/BrawlStars/Core/Network/Handlers/PacketHandler.cs ================================================ using System; using System.Net; using BrawlStars.Logic; using DotNetty.Buffers; using DotNetty.Handlers.Timeout; using DotNetty.Transport.Channels; namespace BrawlStars.Core.Network.Handlers { public class PacketHandler : ChannelHandlerAdapter { public PacketHandler() { Throttler = new Throttler(10, 500); Device = new Device(this); } public Device Device { get; set; } public IChannel Channel { get; set; } public Throttler Throttler { get; set; } public override void ChannelRead(IChannelHandlerContext context, object message) { var buffer = (IByteBuffer) message; if (buffer == null) return; if (Throttler.CanProcess()) { Device.Process(buffer); } else { Logger.Log("Client reached ratelimit. Disconnecting...", GetType(), Logger.ErrorLevel.Warning); Device.Disconnect(); } } public override void ChannelRegistered(IChannelHandlerContext context) { Channel = context.Channel; var remoteAddress = (IPEndPoint) Channel.RemoteAddress; Logger.Log($"Client {remoteAddress.Address.MapToIPv4()}:{remoteAddress.Port} connected.", GetType(), Logger.ErrorLevel.Debug); base.ChannelRegistered(context); } public override async void ChannelUnregistered(IChannelHandlerContext context) { if (Device?.Player?.Home != null) { var player = await Resources.Players.GetPlayerAsync(Device.Player.Home.Id, true); if (player != null) if (player.Device.Session.SessionId == Device.Session.SessionId) Resources.Players.LogoutById(player.Home.Id); } var remoteAddress = (IPEndPoint) Channel.RemoteAddress; Logger.Log($"Client {remoteAddress.Address.MapToIPv4()}:{remoteAddress.Port} disconnected.", GetType(), Logger.ErrorLevel.Debug); base.ChannelUnregistered(context); } public override void ExceptionCaught(IChannelHandlerContext context, Exception exception) { if (exception.GetType() != typeof(ReadTimeoutException) && exception.GetType() != typeof(WriteTimeoutException)) Logger.Log(exception, GetType(), Logger.ErrorLevel.Error); context.CloseAsync(); } } } ================================================ FILE: Source/BrawlStars/Core/Network/NettyService.cs ================================================ using System.Net; using System.Threading.Tasks; using BrawlStars.Core.Network.Handlers; using DotNetty.Codecs; using DotNetty.Handlers.Logging; using DotNetty.Handlers.Timeout; using DotNetty.Transport.Bootstrapping; using DotNetty.Transport.Channels; using DotNetty.Transport.Channels.Sockets; namespace BrawlStars.Core.Network { public class NettyService { public MultithreadEventLoopGroup BossGroup { get; set; } public MultithreadEventLoopGroup WorkerGroup { get; set; } public ServerBootstrap ServerBootstrap { get; set; } public IChannel ServerChannel { get; set; } /// /// Run the server /// /// public async Task RunServerAsync() { BossGroup = new MultithreadEventLoopGroup(); WorkerGroup = new MultithreadEventLoopGroup(); ServerBootstrap = new ServerBootstrap(); ServerBootstrap.Group(BossGroup, WorkerGroup); ServerBootstrap.Channel(); ServerBootstrap .Option(ChannelOption.SoBacklog, 100) .Option(ChannelOption.TcpNodelay, true) .Option(ChannelOption.SoKeepalive, true) .Handler(new LoggingHandler("SRV-ICR")) .ChildHandler(new ActionChannelInitializer(channel => { var pipeline = channel.Pipeline; pipeline.AddFirst("FrameDecoder", new LengthFieldBasedFrameDecoder(4096, 2, 3, 2, 0)); pipeline.AddFirst("ReadTimeoutHandler", new ReadTimeoutHandler(30)); pipeline.AddLast("PacketHandler", new PacketHandler()); pipeline.AddLast("WriteTimeoutHandler", new WriteTimeoutHandler(30)); pipeline.AddLast("PacketEncoder", new PacketEncoder()); })); ServerChannel = await ServerBootstrap.BindAsync(Resources.Configuration.ServerPort); var endpoint = (IPEndPoint) ServerChannel.LocalAddress; Logger.Log( $"Listening on {endpoint.Address.MapToIPv4()}:{endpoint.Port}. Let's play Brawl Stars!", GetType()); } /// /// Close all channels and disconnects clients /// /// public async Task Shutdown() { await ServerChannel.CloseAsync(); } /// /// Shutdown all workers of netty /// /// public async Task ShutdownWorkers() { await WorkerGroup.ShutdownGracefullyAsync(); await BossGroup.ShutdownGracefullyAsync(); } } } ================================================ FILE: Source/BrawlStars/Core/Network/Throttler.cs ================================================ using System; namespace BrawlStars.Core.Network { public class Throttler { private readonly int _interval; private readonly int _maxPackets; private int _count; private DateTime _lastReset = DateTime.UtcNow; /// /// Throttle packets by checking if we can process it or if the ratelimit is reached /// /// /// public Throttler(int maxPackets, int interval) { _maxPackets = maxPackets; _interval = interval; } public bool CanProcess() { if (_count++ < _maxPackets) return true; if (GetMillisecondsSinceLastReset() < _interval) return false; _count = 1; _lastReset = DateTime.UtcNow; return true; } private int GetMillisecondsSinceLastReset() { return (int) DateTime.UtcNow.Subtract(_lastReset).TotalMilliseconds; } } } ================================================ FILE: Source/BrawlStars/Database/AllianceDb.cs ================================================ using System; using System.Collections.Generic; using System.Threading.Tasks; using BrawlStars.Core; using BrawlStars.Logic.Clan; using MySql.Data.MySqlClient; using Newtonsoft.Json; namespace BrawlStars.Database { public class AllianceDb { private const string Name = "clan"; private static string _connectionString; private static long _allianceSeed; public AllianceDb() { _connectionString = new MySqlConnectionStringBuilder { Server = Resources.Configuration.MySqlServer, Database = Resources.Configuration.MySqlDatabase, UserID = Resources.Configuration.MySqlUserId, Password = Resources.Configuration.MySqlPassword, SslMode = MySqlSslMode.None, MinimumPoolSize = 4, MaximumPoolSize = 20, CharacterSet = "utf8mb4" }.ToString(); _allianceSeed = MaxAllianceId(); if (_allianceSeed > -1) return; Logger.Log($"MysqlConnection for clans failed [{Resources.Configuration.MySqlServer}]!", GetType()); Program.Exit(); } public static async Task ExecuteAsync(MySqlCommand cmd) { #region Execute try { cmd.Connection = new MySqlConnection(_connectionString); await cmd.Connection.OpenAsync(); await cmd.ExecuteNonQueryAsync(); } catch (MySqlException exception) { Logger.Log(exception, null, Logger.ErrorLevel.Error); } finally { cmd.Connection?.Close(); } #endregion } public static long MaxAllianceId() { #region MaxId try { long seed; using (var connection = new MySqlConnection(_connectionString)) { connection.Open(); using (var cmd = new MySqlCommand($"SELECT coalesce(MAX(Id), 0) FROM {Name}", connection)) { seed = Convert.ToInt64(cmd.ExecuteScalar()); } connection.Close(); } return seed; } catch (Exception exception) { Logger.Log(exception, null, Logger.ErrorLevel.Error); return -1; } #endregion } public static async Task CountAsync() { #region Count try { long seed; using (var connection = new MySqlConnection(_connectionString)) { await connection.OpenAsync(); using (var cmd = new MySqlCommand($"SELECT COUNT(*) FROM {Name}", connection)) { seed = Convert.ToInt64(await cmd.ExecuteScalarAsync()); } await connection.CloseAsync(); } return seed; } catch (Exception exception) { Logger.Log(exception, null, Logger.ErrorLevel.Error); return 0; } #endregion } public static async Task CreateAsync() { #region Create try { var id = _allianceSeed++; if (id <= -1) return null; var alliance = new Alliance(id + 1); using (var cmd = new MySqlCommand( $"INSERT INTO {Name} (`Id`, `Trophies`, `RequiredTrophies`, `Type`, `Region`, `Data`) VALUES ({id + 1}, {alliance.Score}, {alliance.RequiredScore}, {alliance.Type}, {alliance.Region}, @data)") ) { #pragma warning disable 618 cmd.Parameters?.AddWithValue("@data", JsonConvert.SerializeObject(alliance, Configuration.JsonSettings)); #pragma warning restore 618 await ExecuteAsync(cmd); } return alliance; } catch (Exception exception) { Logger.Log(exception, null, Logger.ErrorLevel.Error); return null; } #endregion } public static async Task GetAsync(long id) { #region Get try { using (var connection = new MySqlConnection(_connectionString)) { await connection.OpenAsync(); Alliance alliance = null; using (var cmd = new MySqlCommand($"SELECT * FROM {Name} WHERE Id = '{id}'", connection)) { var reader = await cmd.ExecuteReaderAsync(); while (await reader.ReadAsync()) { alliance = JsonConvert.DeserializeObject((string) reader["Data"], Configuration.JsonSettings); break; } } await connection.CloseAsync(); return alliance; } } catch (Exception exception) { Logger.Log(exception, null, Logger.ErrorLevel.Error); return null; } #endregion } public static async Task SaveAsync(Alliance alliance) { #region Save try { using (var cmd = new MySqlCommand( $"UPDATE {Name} SET `Trophies`='{alliance.Score}', `RequiredTrophies`='{alliance.RequiredScore}', `Type`='{alliance.Type}', `Region`='{alliance.Region}', `Data`=@data WHERE Id = '{alliance.Id}'") ) { #pragma warning disable 618 cmd.Parameters?.AddWithValue("@data", JsonConvert.SerializeObject(alliance, Configuration.JsonSettings)); #pragma warning restore 618 await ExecuteAsync(cmd); } } catch (Exception exception) { Logger.Log(exception, null, Logger.ErrorLevel.Error); } #endregion } public static async Task DeleteAsync(long id) { #region Delete try { using (var cmd = new MySqlCommand( $"DELETE FROM {Name} WHERE Id = '{id}'") ) { await ExecuteAsync(cmd); /*if (Redis.IsConnected) await Redis.UncacheAllianceAsync(id);*/ } } catch (Exception exception) { Logger.Log(exception, null, Logger.ErrorLevel.Error); } #endregion } public static async Task> GetGlobalAlliancesAsync() { #region Global var list = new List(); try { using (var connection = new MySqlConnection(_connectionString)) { await connection.OpenAsync(); using (var cmd = new MySqlCommand($"SELECT * FROM {Name} ORDER BY `Trophies` DESC LIMIT 200", connection)) { var reader = await cmd.ExecuteReaderAsync(); while (await reader.ReadAsync()) list.Add(JsonConvert.DeserializeObject((string) reader["Data"], Configuration.JsonSettings)); } await connection.CloseAsync(); } return list; } catch (Exception exception) { Logger.Log(exception, null, Logger.ErrorLevel.Error); return list; } #endregion } } } ================================================ FILE: Source/BrawlStars/Database/Cache/Alliances.cs ================================================ using System.Collections.Generic; using BrawlStars.Logic.Clan; using System.Threading.Tasks; namespace BrawlStars.Database.Cache { public class Alliances : Dictionary { private readonly object _syncObject = new object(); /// /// Add an alliance to the server /// /// public void Add(Alliance alliance) { lock (_syncObject) { if (!ContainsKey(alliance.Id)) Add(alliance.Id, alliance); } } /// /// Remove an alliance from the server and save it /// /// public new void Remove(long allianceId) { lock (_syncObject) { if (ContainsKey(allianceId)) { var alliance = this[allianceId]; alliance.Save(); var result = base.Remove(allianceId); if (!result) Logger.Log($"Couldn't remove alliance {allianceId}", GetType(), Logger.ErrorLevel.Error); } } } public async Task GetAllianceAsync(long allianceId, bool onlineOnly = false) { lock (_syncObject) { if (ContainsKey(allianceId)) return this[allianceId]; } if (onlineOnly) return null; var alliance = Resources.ObjectCache.GetCachedAlliance(allianceId); if (alliance != null) return alliance; alliance = await AllianceDb.GetAsync(allianceId); Resources.ObjectCache.CacheAlliance(alliance); return alliance; } /// /// Get an alliance from cache or database /// /// /// /// /*public async Task GetAllianceAsync(long allianceId, bool onlineOnly = false) { lock (_syncObject) { if (ContainsKey(allianceId)) return this[allianceId]; } if (onlineOnly) return null; if (!Redis.IsConnected) return await AllianceDb.GetAsync(allianceId); var alliance = await Redis.GetAllianceAsync(allianceId); if (alliance != null) return alliance; alliance = await AllianceDb.GetAsync(allianceId); await Redis.CacheAsync(alliance); return alliance; } /// /// Returns a list of random cached Alliances /// /// /// public async Task> GetRandomAlliancesAsync(int count = 40, bool notFull = true) { var alliances = new List(count); for (var i = 0; i < count; i++) { var alliance = await Redis.GetRandomAllianceAsync(); if (alliance != null && alliances.FindIndex(a => a.Id == alliance.Id) == -1) { if (notFull) { if (alliance.Members.Count < 50) alliances.Add(alliance); } else { alliances.Add(alliance); } } } return alliances; }*/ } } ================================================ FILE: Source/BrawlStars/Database/Cache/Players.cs ================================================ using System.Collections.Generic; using System.Threading.Tasks; using BrawlStars.Logic; namespace BrawlStars.Database.Cache { public class Players : Dictionary { public readonly object SyncObject = new object(); /// /// Login a player /// /// /// public async Task Login(long userId, string token) { Player player; if (userId <= 0 && string.IsNullOrEmpty(token)) { player = await PlayerDb.CreateAsync(); } else { //var p = await Redis.GetPlayerAsync(userId); var p = Resources.ObjectCache.GetCachedPlayer(userId); if (p != null) player = p; else player = await PlayerDb.GetAsync(userId); if (player == null) return null; if (player.Home.UserToken != token) return null; } lock (SyncObject) { if (player == null) return null; Logout(ref player); var result = TryAdd(player.Home.Id, player); if (!result) return null; //Logger.Log($"User {player.Home.Id} logged in.", GetType(), ErrorLevel.Debug); return player; } } /// /// Called when a player logs out /// /// public void Logout(ref Player player) { lock (SyncObject) { if (!ContainsKey(player.Home.Id)) return; var p = this[player.Home.Id]; p.ValidateSession(); p.Save(); player = p; var result = Remove(p.Home.Id); if (!result) Logger.Log($"Couldn't logout player {p.Home.Id}", GetType(), Logger.ErrorLevel.Error); //else Logger.Log($"User {player.UserId} logged out.", GetType(), ErrorLevel.Debug); } } /// /// Log out a player by the UserId /// /// /// public bool LogoutById(long userId) { lock (SyncObject) { if (!ContainsKey(userId)) return true; var player = this[userId]; player.ValidateSession(); player.Save(); var result = Remove(userId); if (!result) Logger.Log($"Couldn't logout player {userId}", GetType(), Logger.ErrorLevel.Error); return result; } } /// /// Get a player from cache or database /// /// /// /// public async Task GetPlayerAsync(long userId, bool onlineOnly = false) { lock (SyncObject) { if (ContainsKey(userId)) return this[userId]; } if (onlineOnly) return null; var player = Resources.ObjectCache.GetCachedPlayer(userId); if (player != null) return player; player = await PlayerDb.GetAsync(userId); Resources.ObjectCache.CachePlayer(player); return player; } } } ================================================ FILE: Source/BrawlStars/Database/ObjectCache.cs ================================================ using System; using System.Diagnostics; using BrawlStars.Logic; using BrawlStars.Logic.Home; using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.Logging.Abstractions; using BrawlStars.Logic.Clan; namespace BrawlStars.Database { public class ObjectCache { private readonly TimeSpan _expirationTimeSpan; private readonly MemoryCache _objectCache; private readonly MemoryCache _playerCache; private readonly MemoryCache _allianceCache; public ObjectCache() { var options = new MemoryCacheOptions { ExpirationScanFrequency = TimeSpan.FromMinutes(5) }; _expirationTimeSpan = TimeSpan.FromHours(2); _playerCache = new MemoryCache(options, new NullLoggerFactory()); _objectCache = new MemoryCache(options, new NullLoggerFactory()); _allianceCache = new MemoryCache(options, new NullLoggerFactory()); Logger.Log("Successfully loaded caches", null); } /// /// Cache a player to access it from memory /// /// public void CachePlayer(Player player) { try { var home = player.Home; var playerEntry = _playerCache.CreateEntry(home.Id); playerEntry.Value = home; _playerCache.Set(home.Id, playerEntry, _expirationTimeSpan); var objectEntry = _objectCache.CreateEntry(home.Id); _objectCache.Set(home.Id, objectEntry, _expirationTimeSpan); } catch (Exception) { Logger.Log("Failed to cache player.", GetType(), Logger.ErrorLevel.Error); } } public void CacheAlliance(Alliance alliance) { try { var allianceEntry = _allianceCache.CreateEntry(alliance.Id); allianceEntry.Value = alliance; _allianceCache.Set(alliance.Id, allianceEntry, _expirationTimeSpan); } catch (Exception) { Logger.Log("Failed to cache player.", GetType(), Logger.ErrorLevel.Error); } } public Player GetCachedPlayer(long id) { try { var st = new Stopwatch(); st.Start(); if (_playerCache.Get(id) is ICacheEntry playerEntry) if (_objectCache.Get(id) is ICacheEntry objectEntry) if (playerEntry.Value is Home home) if (objectEntry.Value is string json) { home.Time.SubTick = 0; st.Stop(); Logger.Log($"Successfully got player {id} from cache in {st.ElapsedMilliseconds}ms", null, Logger.ErrorLevel.Debug); return new Player { Home = home }; } } catch (Exception) { Logger.Log("Failed to fetch player from cache.", GetType(), Logger.ErrorLevel.Error); } return null; } public Alliance GetCachedAlliance(long id) { try { var st = new Stopwatch(); st.Start(); if (_allianceCache.Get(id) is ICacheEntry allianceEntry) { if (allianceEntry.Value is Alliance alliance) { st.Stop(); Logger.Log($"Successfully got alliance {id} from cache in {st.ElapsedMilliseconds}ms", null, Logger.ErrorLevel.Debug); return alliance; } } } catch (Exception) { Logger.Log("Failed to fetch alliance from cache.", GetType(), Logger.ErrorLevel.Error); } return null; } public long CachedPlayers() { return _playerCache.Count; } } } ================================================ FILE: Source/BrawlStars/Database/PlayerDb.cs ================================================ using System; using System.Collections.Generic; using System.Threading.Tasks; using BrawlStars.Core; using BrawlStars.Logic; using BrawlStars.Logic.Home; using BrawlStars.Logic.Sessions; using MySql.Data.MySqlClient; using Newtonsoft.Json; namespace BrawlStars.Database { public class PlayerDb { private const string Name = "player"; private static string _connectionString; private static long _playerSeed; public PlayerDb() { _connectionString = new MySqlConnectionStringBuilder { Server = Resources.Configuration.MySqlServer, Database = Resources.Configuration.MySqlDatabase, UserID = Resources.Configuration.MySqlUserId, Password = Resources.Configuration.MySqlPassword, SslMode = MySqlSslMode.None, MinimumPoolSize = 4, MaximumPoolSize = 20, CharacterSet = "utf8mb4" }.ToString(); _playerSeed = MaxPlayerId(); if (_playerSeed > -1) return; Logger.Log($"MysqlConnection for players failed [{Resources.Configuration.MySqlServer}]!", GetType()); Program.Exit(); } public static async Task ExecuteAsync(MySqlCommand cmd) { #region Execute try { cmd.Connection = new MySqlConnection(_connectionString); await cmd.Connection.OpenAsync(); await cmd.ExecuteNonQueryAsync(); } catch (MySqlException exception) { Logger.Log(exception, null, Logger.ErrorLevel.Error); } finally { cmd.Connection?.Close(); } #endregion } public static long MaxPlayerId() { #region MaxId try { long seed; using (var connection = new MySqlConnection(_connectionString)) { connection.Open(); using (var cmd = new MySqlCommand($"SELECT coalesce(MAX(Id), 0) FROM {Name}", connection)) { seed = Convert.ToInt64(cmd.ExecuteScalar()); } connection.Close(); } return seed; } catch (Exception exception) { Logger.Log(exception, null, Logger.ErrorLevel.Error); return -1; } #endregion } public static async Task CountAsync() { #region Count try { long seed; using (var connection = new MySqlConnection(_connectionString)) { await connection.OpenAsync(); using (var cmd = new MySqlCommand($"SELECT COUNT(*) FROM {Name}", connection)) { seed = Convert.ToInt64(await cmd.ExecuteScalarAsync()); } await connection.CloseAsync(); } return seed; } catch (Exception exception) { Logger.Log(exception, null, Logger.ErrorLevel.Error); return 0; } #endregion } public static async Task CreateAsync() { #region Create try { var id = _playerSeed++; if (id <= -1) return null; var player = new Player(id + 1); var home = player.Home; using (var cmd = new MySqlCommand( $"INSERT INTO {Name} (`Id`, `Trophies`, `Language`, `FacebookId`, `Home`, `Sessions`) VALUES ({id + 1}, {home.Trophies}, @language, @fb, @home, @sessions)") ) { #pragma warning disable 618 cmd.Parameters?.AddWithValue("@language", home.PreferredDeviceLanguage); cmd.Parameters?.AddWithValue("@fb", home.FacebookId); cmd.Parameters?.AddWithValue("@home", JsonConvert.SerializeObject(home, Configuration.JsonSettings)); cmd.Parameters?.AddWithValue("@sessions", JsonConvert.SerializeObject(home.Sessions, Configuration.JsonSettings)); #pragma warning restore 618 await ExecuteAsync(cmd); } return player; } catch (Exception exception) { Logger.Log(exception, null, Logger.ErrorLevel.Error); return null; } #endregion } public static async Task GetAsync(long id) { #region Get try { using (var connection = new MySqlConnection(_connectionString)) { await connection.OpenAsync(); Player player = null; using (var cmd = new MySqlCommand($"SELECT * FROM {Name} WHERE Id = '{id}'", connection)) { var reader = await cmd.ExecuteReaderAsync(); while (await reader.ReadAsync()) { player = new Player { Home = JsonConvert.DeserializeObject((string) reader["Home"], Configuration.JsonSettings) }; player.Home.Sessions = JsonConvert.DeserializeObject>( (string) reader["Sessions"], Configuration.JsonSettings) ?? new List(50); break; } } await connection.CloseAsync(); return player; } } catch (Exception exception) { Logger.Log(exception, null, Logger.ErrorLevel.Error); return null; } #endregion } public static async Task SaveAsync(Player player) { #region Save try { var home = player.Home; using (var cmd = new MySqlCommand( $"UPDATE {Name} SET `Trophies`='{home.Trophies}', `Language`=@language, `FacebookId`=@fb, `Home`=@home, `Sessions`=@sessions WHERE Id = '{home.Id}'") ) { #pragma warning disable 618 cmd.Parameters?.AddWithValue("@language", home.PreferredDeviceLanguage); cmd.Parameters?.AddWithValue("@fb", home.FacebookId); cmd.Parameters?.AddWithValue("@home", JsonConvert.SerializeObject(home, Configuration.JsonSettings)); cmd.Parameters?.AddWithValue("@sessions", JsonConvert.SerializeObject(home.Sessions, Configuration.JsonSettings)); #pragma warning restore 618 await ExecuteAsync(cmd); } } catch (Exception exception) { Logger.Log(exception, null, Logger.ErrorLevel.Error); } #endregion } public static async Task DeleteAsync(long id) { #region Delete try { using (var cmd = new MySqlCommand( $"DELETE FROM {Name} WHERE Id = '{id}'") ) { await ExecuteAsync(cmd); /*if (Redis.IsConnected) await Redis.UncachePlayerAsync(id);*/ } } catch (Exception exception) { Logger.Log(exception, null, Logger.ErrorLevel.Error); } #endregion } public static async Task> GetGlobalPlayerRankingAsync() { #region GetGlobal var list = new List(); try { using (var connection = new MySqlConnection(_connectionString)) { await connection.OpenAsync(); using (var cmd = new MySqlCommand($"SELECT * FROM {Name} ORDER BY `Trophies` DESC LIMIT 200", connection)) { var reader = await cmd.ExecuteReaderAsync(); while (await reader.ReadAsync()) list.Add(JsonConvert.DeserializeObject((string) reader["Home"], Configuration.JsonSettings)); } await connection.CloseAsync(); } return list; } catch (Exception exception) { Logger.Log(exception, null, Logger.ErrorLevel.Error); return list; } #endregion } public static async Task> GetLocalPlayerRankingAsync(string language) { #region GetLocal var list = new List(); try { using (var connection = new MySqlConnection(_connectionString)) { await connection.OpenAsync(); using (var cmd = new MySqlCommand( $"SELECT * FROM {Name} WHERE Language = '{language}' ORDER BY `Trophies` DESC LIMIT 200", connection)) { var reader = await cmd.ExecuteReaderAsync(); while (await reader.ReadAsync()) list.Add(JsonConvert.DeserializeObject((string) reader["Home"], Configuration.JsonSettings)); } await connection.CloseAsync(); } return list; } catch (Exception exception) { Logger.Log(exception, null, Logger.ErrorLevel.Error); return list; } #endregion } } } ================================================ FILE: Source/BrawlStars/Extensions/ChatStreamEntry.cs ================================================ using BrawlStars.Logic.Clan.StreamEntry; using BrawlStars.Utilities.Netty; using DotNetty.Buffers; using Newtonsoft.Json; namespace BrawlStars.Extensions { public class ChatStreamEntry : AllianceStreamEntry { public ChatStreamEntry() { StreamEntryType = 2; } [JsonProperty("msg")] public string Message { get; set; } public override void Encode(IByteBuffer packet) { base.Encode(packet); packet.WriteScString(Message); } } } ================================================ FILE: Source/BrawlStars/Extensions/CustomWriter.cs ================================================ using BrawlStars.Files.CsvHelpers; using DotNetty.Buffers; namespace BrawlStars.Extensions { /// /// This implements a few extensions for games from supercell /// public static class CustomWriter { /// /// Encodes CsvData /// /// /// public static void WriteData(this IByteBuffer buffer, Data value) { buffer.WriteInt(value.GetDataType()); buffer.WriteInt(value.GetInstanceId()); } } } ================================================ FILE: Source/BrawlStars/Extensions/GamePlayUtil.cs ================================================ using System; using BrawlStars.Files; using BrawlStars.Files.Logic; namespace BrawlStars.Extensions { public class GamePlayUtil { public int GetResourceDiamondCost(int resourceCount, string resource) { int result = 0; var globals = Csv.Tables.Get(Csv.Files.Globals); if (resourceCount >= 1) { if (resourceCount >= 100) { if (resourceCount >= 1000) { if (resourceCount >= 10000) { if (resourceCount >= 100000) { if (resourceCount >= 1000000) { var supCost = globals.GetData("RESOURCE_DIAMOND_COST_10000000") .NumberValue; var infCost = globals.GetData("RESOURCE_DIAMOND_COST_1000000") .NumberValue; result = CalculateResourceCost(10000000, 1000000, supCost, infCost, resourceCount); } else { var supCost = globals.GetData("RESOURCE_DIAMOND_COST_1000000") .NumberValue; var infCost = globals.GetData("RESOURCE_DIAMOND_COST_100000") .NumberValue; result = CalculateResourceCost(1000000, 100000, supCost, infCost, resourceCount); } } else { var supCost = globals.GetData("RESOURCE_DIAMOND_COST_100000").NumberValue; var infCost = globals.GetData("RESOURCE_DIAMOND_COST_10000").NumberValue; result = CalculateResourceCost(100000, 10000, supCost, infCost, resourceCount); } } else { var supCost = globals.GetData("RESOURCE_DIAMOND_COST_10000").NumberValue; var infCost = globals.GetData("RESOURCE_DIAMOND_COST_1000").NumberValue; result = CalculateResourceCost(10000, 1000, supCost, infCost, resourceCount); } } else { var supCost = globals.GetData("RESOURCE_DIAMOND_COST_1000").NumberValue; var infCost = globals.GetData("RESOURCE_DIAMOND_COST_100").NumberValue; result = CalculateResourceCost(1000, 100, supCost, infCost, resourceCount); } } else { result = globals.GetData("RESOURCE_DIAMOND_COST_100") .NumberValue; } } return result; } public static int GetSpeedUpCost(int seconds) { var globals = Csv.Tables.Get(Csv.Files.Globals); var cost = 0; if (seconds >= 1) { if (seconds >= 60) { if (seconds >= 3600) { if (seconds >= 86400) { var supCost = globals.GetData("SPEED_UP_DIAMOND_COST_1_WEEK").NumberValue; var infCost = globals.GetData("SPEED_UP_DIAMOND_COST_24_HOURS").NumberValue; cost = CalculateSpeedUpCost(604800, 86400, supCost, infCost, seconds); } else { var supCost = globals.GetData("SPEED_UP_DIAMOND_COST_24_HOURS").NumberValue; var infCost = globals.GetData("SPEED_UP_DIAMOND_COST_1_HOUR").NumberValue; cost = CalculateSpeedUpCost(86400, 3600, supCost, infCost, seconds); } } else { var supCost = globals.GetData("SPEED_UP_DIAMOND_COST_1_HOUR") .NumberValue; var infCost = globals.GetData("SPEED_UP_DIAMOND_COST_1_MIN") .NumberValue; cost = CalculateSpeedUpCost(3600, 60, supCost, infCost, seconds); } } else { cost = globals.GetData("SPEED_UP_DIAMOND_COST_1_MIN") .NumberValue; } } return cost; } public static int CalculateResourceCost(int sup, int inf, int supCost, int infCost, int amount) { return (int) Math.Round((supCost - infCost) * (long) (amount - inf) / (sup - inf * 1.0)) + infCost; } public static int CalculateSpeedUpCost(int sup, int inf, int supCost, int infCost, int amount) { return (int) Math.Round((supCost - infCost) * (long) (amount - inf) / (sup - inf * 1.0)) + infCost; } } } ================================================ FILE: Source/BrawlStars/Files/Csv.Files.cs ================================================ using System; using System.Collections.Generic; using BrawlStars.Files.CsvHelpers; using BrawlStars.Files.CsvReader; using BrawlStars.Files.Logic; namespace BrawlStars.Files { public partial class Csv { public enum Files { Locales = 1, Globals = 3, Resources = 5, AllianceBadges = 8, Characters = 16, AreaEffects = 17, Items = 18, Skills = 20, Campaign = 21, Bosses = 22, Cards = 23, AllianceRoles = 25, Skins = 29, } public static Dictionary DataTypes = new Dictionary(); static Csv() { DataTypes.Add(Files.Locales, typeof(Locale)); DataTypes.Add(Files.Globals, typeof(Global)); DataTypes.Add(Files.Resources, typeof(Resource)); DataTypes.Add(Files.AllianceBadges, typeof(AllianceBadge)); DataTypes.Add(Files.Characters, typeof(Character)); DataTypes.Add(Files.AreaEffects, typeof(AreaEffect)); DataTypes.Add(Files.Items, typeof(Item)); DataTypes.Add(Files.Skills, typeof(Skill)); DataTypes.Add(Files.Campaign, typeof(Campaign)); DataTypes.Add(Files.Bosses, typeof(Bosses)); DataTypes.Add(Files.Cards, typeof(Card)); DataTypes.Add(Files.AllianceRoles, typeof(AllianceRole)); DataTypes.Add(Files.Skins, typeof(Skin)); } public static Data Create(Files file, Row row, DataTable dataTable) { if (DataTypes.ContainsKey(file)) return Activator.CreateInstance(DataTypes[file], row, dataTable) as Data; return null; } } } ================================================ FILE: Source/BrawlStars/Files/Csv.cs ================================================ using System.Collections.Generic; using System.Threading.Tasks; using BrawlStars.Files.CsvReader; namespace BrawlStars.Files { public partial class Csv { public static readonly List Gamefiles = new List(); public static Gamefiles Tables; public Csv() { /*Gamefiles.Add("GameAssets/csv_logic/locales.csv"); Gamefiles.Add("GameAssets/csv_logic/globals.csv"); Gamefiles.Add("GameAssets/csv_logic/resources.csv"); Gamefiles.Add("GameAssets/csv_logic/alliance_badges.csv"); Gamefiles.Add("GameAssets/csv_logic/characters.csv"); Gamefiles.Add("GameAssets/csv_logic/area_effects.csv"); Gamefiles.Add("GameAssets/csv_logic/items.csv"); Gamefiles.Add("GameAssets/csv_logic/skills.csv"); Gamefiles.Add("GameAssets/csv_logic/campaign.csv"); Gamefiles.Add("GameAssets/csv_logic/bosses.csv"); Gamefiles.Add("GameAssets/csv_logic/cards.csv"); Gamefiles.Add("GameAssets/csv_logic/alliance_roles.csv"); Gamefiles.Add("GameAssets/csv_logic/skins.csv");*/ Tables = new Gamefiles(); Parallel.ForEach(Gamefiles, file => { Tables.Initialize(new Table(file), (Files) Gamefiles.IndexOf(file) + 1); }); Logger.Log($"{Gamefiles.Count} Gamefile(s) loaded.", GetType()); } } } ================================================ FILE: Source/BrawlStars/Files/CsvHelpers/Data.cs ================================================ using System; using BrawlStars.Files.CsvReader; namespace BrawlStars.Files.CsvHelpers { public class Data { private int _dataType; private int _id; protected DataTable DataTable; protected Row Row; public Data(Row row, DataTable dataTable) { Row = row; DataTable = dataTable; } public void LoadData(Data data, Type type, Row row, int dataType = 0) { _dataType = dataType; _id = GlobalId.CreateGlobalId(_dataType, DataTable.Count()); Row = row; Row.LoadData(data); } public int GetDataType() { return _dataType; } public int GetGlobalId() { return _id; } public int GetInstanceId() { return GlobalId.GetInstanceId(_id); } public string GetName() { return Row.GetName(); } } } ================================================ FILE: Source/BrawlStars/Files/CsvHelpers/DataTable.cs ================================================ using System.Collections.Generic; using BrawlStars.Files.CsvReader; namespace BrawlStars.Files.CsvHelpers { public class DataTable { public List Datas; public Csv.Files Index; public DataTable() { Datas = new List(); } public DataTable(Table table, Csv.Files index) { Index = index; Datas = new List(); for (var i = 0; i < table.GetRowCount(); i += 2) { var row = table.GetRowAt(i); var data = Csv.Create(Index, row, this); Datas.Add(data); } } public int Count() { return Datas?.Count ?? 0; } public List GetDatas() { return Datas; } public Data GetDataWithId(int id) { return Datas[GlobalId.GetInstanceId(id)]; } public T GetDataWithId(int id) where T : Data { return Datas[GlobalId.GetInstanceId(id)] as T; } public T GetDataWithInstanceId(int id) where T : Data { if (Datas.Count < id) return null; return Datas[id] as T; } public T GetData(string name) where T : Data { return Datas.Find(data => data.GetName() == name) as T; } public int GetIndex() { return (int) Index; } } } ================================================ FILE: Source/BrawlStars/Files/CsvHelpers/GlobalId.cs ================================================ namespace BrawlStars.Files.CsvHelpers { public static class GlobalId { public static int CreateGlobalId(int classId, int instanceId) { return classId <= 0 ? 1000000 + instanceId : classId * 1000000 + instanceId; } public static int GetClassId(int globalId) { return globalId / 1000000; } public static int GetInstanceId(int globalId) { return globalId % 1000000; } } } ================================================ FILE: Source/BrawlStars/Files/CsvReader/Column.cs ================================================ using System.Collections.Generic; using System.Linq; namespace BrawlStars.Files.CsvReader { public class Column { private readonly List _values; public Column() { _values = new List(); } public static int GetArraySize(int offset, int nOffset) { return nOffset - offset; } public void Add(string value) { if (value == null) _values.Add(_values.Count > 0 ? _values.Last() : string.Empty); else _values.Add(value); } public string Get(int row) { return _values[row]; } public int GetSize() { return _values.Count; } } } ================================================ FILE: Source/BrawlStars/Files/CsvReader/Gamefiles.cs ================================================ using System; using System.Collections.Generic; using BrawlStars.Files.CsvHelpers; namespace BrawlStars.Files.CsvReader { public class Gamefiles : IDisposable { private readonly List _dataTables = new List(); public Gamefiles() { if (Csv.Gamefiles.Count <= 0) return; for (var i = 0; i < Csv.Gamefiles.Count; i++) _dataTables.Add(new DataTable()); } public void Dispose() { _dataTables.Clear(); } public DataTable Get(Csv.Files index) { return _dataTables[(int) index - 1]; } public DataTable Get(int index) { return _dataTables[index - 1]; } public void Initialize(Table table, Csv.Files index) { _dataTables[(int) index - 1] = new DataTable(table, index); } } } ================================================ FILE: Source/BrawlStars/Files/CsvReader/Row.cs ================================================ using System; using System.Collections.Generic; using System.Reflection; using BrawlStars.Files.CsvHelpers; namespace BrawlStars.Files.CsvReader { public class Row { private readonly Table _table; public readonly int RowStart; public Row(Table table) { _table = table; RowStart = _table.GetColumnRowCount(); _table.AddRow(this); } public int Offset => RowStart; public void LoadData(Data data) { foreach (var property in data.GetType().GetProperties(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public)) if (property.CanRead && property.CanWrite) { if (property.PropertyType.IsArray) { var elementType = property.PropertyType.GetElementType(); if (elementType == typeof(byte)) property.SetValue(data, LoadBoolArray(property.Name)); else if (elementType == typeof(int)) property.SetValue(data, LoadIntArray(property.Name)); else if (elementType == typeof(string)) property.SetValue(data, LoadStringArray(property.Name)); } else if (property.PropertyType.IsGenericType) { if (property.PropertyType == typeof(List<>)) { var listType = typeof(List<>); var generic = property.PropertyType.GetGenericArguments(); var concreteType = listType.MakeGenericType(generic); var newList = Activator.CreateInstance(concreteType); var add = concreteType.GetMethod("Add"); var indexerName = ((DefaultMemberAttribute) newList.GetType() .GetCustomAttributes(typeof(DefaultMemberAttribute), true)[0]).MemberName; var indexProperty = newList.GetType().GetProperty(indexerName); for (var i = Offset; i < Offset + GetArraySize(property.Name); i++) { var value = GetValue(property.Name, i - Offset); if (value == string.Empty && i != Offset) if (indexProperty != null) value = indexProperty.GetValue(newList, new object[] { i - Offset - 1 }).ToString(); if (string.IsNullOrEmpty(value)) { var Object = generic[0].IsValueType ? Activator.CreateInstance(generic[0]) : string.Empty; if (add != null) add.Invoke(newList, new[] { Object }); } else { if (add != null) add.Invoke(newList, new[] { Convert.ChangeType(value, generic[0]) }); } } property.SetValue(data, newList); } else if (property.PropertyType == typeof(Data) || property.PropertyType.BaseType == typeof(Data)) { var pData = (Data) Activator.CreateInstance(property.PropertyType); LoadData(pData); property.SetValue(data, pData); } } else { var value = GetValue(property.Name, 0); if (!string.IsNullOrEmpty(value)) property.SetValue(data, Convert.ChangeType(value, property.PropertyType)); } } } public int GetArraySize(string name) { var index = _table.GetColumnIndexByName(name); return index != -1 ? _table.GetArraySizeAt(this, index) : 0; } public string GetName() { return _table.GetValueAt(0, RowStart); } public string GetValue(string name, int level) { return _table.GetValue(name, level + RowStart); } private bool[] LoadBoolArray(string column) { var array = new bool[GetArraySize(column)]; for (var i = 0; i < array.Length; i++) { var value = GetValue(column, i); if (string.IsNullOrEmpty(value)) continue; if (bool.TryParse(value, out var boolean)) array[i] = boolean; } return array; } private int[] LoadIntArray(string column) { var array = new int[GetArraySize(column)]; for (var i = 0; i < array.Length; i++) { var value = GetValue(column, i); if (string.IsNullOrEmpty(value)) continue; if (int.TryParse(value, out var number)) array[i] = number; } return array; } private string[] LoadStringArray(string column) { var array = new string[GetArraySize(column)]; for (var i = 0; i < array.Length; i++) array[i] = GetValue(column, i); return array; } } } ================================================ FILE: Source/BrawlStars/Files/CsvReader/Table.cs ================================================ using System.Collections.Generic; using Microsoft.VisualBasic.FileIO; namespace BrawlStars.Files.CsvReader { public class Table { private readonly List _columns; private readonly List _headers; private readonly List _rows; private readonly List _types; public Table(string path) { _rows = new List(); _headers = new List(); _types = new List(); _columns = new List(); using (var reader = new TextFieldParser(path)) { reader.SetDelimiters(","); var columns = reader.ReadFields(); foreach (var column in columns) { _headers.Add(column); _columns.Add(new Column()); } var types = reader.ReadFields(); foreach (var type in types) _types.Add(type); while (!reader.EndOfData) { var values = reader.ReadFields(); if (!string.IsNullOrEmpty(values[0])) AddRow(new Row(this)); for (var i = 0; i < _headers.Count; i++) _columns[i].Add(values[i]); } } } public void AddRow(Row row) { _rows.Add(row); } public int GetArraySizeAt(Row row, int columnIndex) { var index = _rows.IndexOf(row) + 1; if (index == -1) return 0; int nextOffset; if (index + 1 >= _rows.Count) { nextOffset = _columns[columnIndex].GetSize(); } else { var nextRow = _rows[index + 1]; nextOffset = nextRow.Offset; } return Column.GetArraySize(row.Offset, nextOffset); } public int GetColumnIndexByName(string name) { return _headers.IndexOf(name); } public string GetColumnName(int index) { return _headers[index]; } public int GetColumnRowCount() { return _columns.Count > 0 ? _columns[0].GetSize() : 0; } public Row GetRowAt(int index) { return _rows[index]; } public int GetRowCount() { return _rows.Count; } public string GetValue(string name, int level) { var index = _headers.IndexOf(name); return GetValueAt(index, level); } public string GetValueAt(int column, int row) { return _columns[column].Get(row); } } } ================================================ FILE: Source/BrawlStars/Files/Fingerprint.cs ================================================ using System; using System.Collections.Generic; using System.IO; using System.Linq; using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace BrawlStars.Files { public class Fingerprint { public const string Path = "GameAssets/fingerprint.json"; public Fingerprint() { try { if (File.Exists(Path)) { Json = File.ReadAllText(Path); Files = new List(); var json = JObject.Parse(Json); { Sha = json["sha"].ToObject(); Version = json["version"].ToObject().Split('.').Select(int.Parse).ToArray(); foreach (var file in json["files"]) Files.Add(file.ToObject()); Logger.Log($"Fingerprint [v{GetVersion}] loaded.", GetType()); } } else { Console.WriteLine("The Fingerprint cannot be loaded, the file does not exist."); Program.Exit(); } } catch (Exception) { Console.WriteLine("Failed to load the Fingerprint."); Program.Exit(); } } [JsonIgnore] public string Json { get; set; } [JsonIgnore] public int[] Version { get; set; } [JsonIgnore] public int GetMajorVersion => Version?[0] ?? 3; [JsonIgnore] public int GetBuildVersion => Version?[1] ?? 377; [JsonIgnore] public int GetContentVersion => Version?[2] ?? 1; [JsonProperty("files")] public List Files { get; set; } [JsonProperty("sha")] public string Sha { get; set; } [JsonProperty("version")] public string GetVersion => $"{GetMajorVersion}.{GetBuildVersion}.{GetContentVersion}"; public void Save() { var json = JsonConvert.SerializeObject(this, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Include, Formatting = Formatting.None }); Json = json.Replace("/", "\\/").TrimEnd(); File.WriteAllText(Path, Json); } } public class Asset { [JsonProperty("file")] public string File { get; set; } [JsonProperty("sha")] public string Sha { get; set; } } } ================================================ FILE: Source/BrawlStars/Files/GameEvents.cs ================================================ using System; using System.IO; using System.Text; using System.Text.RegularExpressions; using BrawlStars.Logic; using Newtonsoft.Json; namespace BrawlStars.Files { internal static class GameEvents { internal static string Events_Json = string.Empty; internal static Calendar Events_Calendar = new Calendar(); internal static string JsonPath = "Gamefiles/events.json"; internal static void Initialize() { if (!Directory.Exists("Gamefiles/")) { throw new DirectoryNotFoundException("Directory Gamefiles does not exist!"); } if (!File.Exists(GameEvents.JsonPath)) { throw new Exception($"{GameEvents.JsonPath} does not exist in current directory!"); } GameEvents.Events_Json = Regex.Replace(File.ReadAllText(GameEvents.JsonPath, Encoding.UTF8), "(\"(?:[^\"\\\\]|\\\\.)*\")|\\s+", "$1"); JsonConvert.PopulateObject(GameEvents.Events_Json, GameEvents.Events_Calendar); Console.WriteLine("Game Events successfully loaded and stored in memory."); } } } ================================================ FILE: Source/BrawlStars/Files/Logic/Accessorie.cs ================================================ using BrawlStars.Files.CsvHelpers; using BrawlStars.Files.CsvReader; namespace BrawlStars.Files.Logic { public class Accessorie : Data { public Accessorie(Row row, DataTable datatable) : base(row, datatable) { LoadData(this, GetType(), row); } public string Name { get; set; } public string Type { get; set; } public int ChargeCount { get; set; } public int Cooldown { get; set; } public string UseEffect { get; set; } public string LoopingEffect { get; set; } public int ActivationDelay { get; set; } public int ActiveTicks { get; set; } public bool StopMovement { get; set; } public bool SetAttackAngle { get; set; } public int AimGuideType { get; set; } public bool ConsumesAmmo { get; set; } public string AreaEffect { get; set; } public string PetAreaEffect { get; set; } public bool InterruptsAction { get; set; } public bool AllowStunActivation { get; set; } public bool RequirePet { get; set; } public bool DestroyPet { get; set; } public int RequireEnemyDistance { get; set; } public int ShieldPercent { get; set; } public int ShieldTicks { get; set; } public bool SkipTypeCondition { get; set; } public string CustomObject { get; set; } public int CustomValue1 { get; set; } public int CustomValue2 { get; set; } public int CustomValue3 { get; set; } public int CustomValue4 { get; set; } public int CustomValue5 { get; set; } public int CustomValue6 { get; set; } public string MissingTargetText { get; set; } public string TargetTooFarText { get; set; } public string TargetAlreadyActiveText { get; set; } } } ================================================ FILE: Source/BrawlStars/Files/Logic/AllianceBadge.cs ================================================ using BrawlStars.Files.CsvHelpers; using BrawlStars.Files.CsvReader; namespace BrawlStars.Files.Logic { public class AllianceBadge : Data { public AllianceBadge(Row row, DataTable datatable) : base(row, datatable) { LoadData(this, GetType(), row); } public string Name { get; set; } public string IconSWF { get; set; } public string IconExportName { get; set; } public string Category { get; set; } } } ================================================ FILE: Source/BrawlStars/Files/Logic/AllianceRole.cs ================================================ using BrawlStars.Files.CsvHelpers; using BrawlStars.Files.CsvReader; namespace BrawlStars.Files.Logic { public class AllianceRole : Data { public AllianceRole(Row row, DataTable datatable) : base(row, datatable) { LoadData(this, GetType(), row); } public string Name { get; set; } public int Level { get; set; } public string TID { get; set; } public bool CanInvite { get; set; } public bool CanSendMail { get; set; } public bool CanChangeAllianceSettings { get; set; } public bool CanAcceptJoinRequest { get; set; } public bool CanKick { get; set; } public bool CanBePromotedToLeader { get; set; } public int PromoteSkill { get; set; } } } ================================================ FILE: Source/BrawlStars/Files/Logic/AreaEffect.cs ================================================ using BrawlStars.Files.CsvHelpers; using BrawlStars.Files.CsvReader; namespace BrawlStars.Files.Logic { public class AreaEffect : Data { public AreaEffect(Row row, DataTable datatable) : base(row, datatable) { LoadData(this, GetType(), row); } public string Name { get; set; } public string ParentAreaEffectForSkin { get; set; } public string FileName { get; set; } public string OwnExportName { get; set; } public string BlueExportName { get; set; } public string RedExportName { get; set; } public string NeutralExportName { get; set; } public string Layer { get; set; } public string ExportNameTop { get; set; } public string ExportNameObject { get; set; } public string Effect { get; set; } public string LoopingEffect { get; set; } public bool AllowEffectInterrupt { get; set; } public bool ServerControlsFrame { get; set; } public int Scale { get; set; } public int TimeMs { get; set; } public int Radius { get; set; } public int Damage { get; set; } public int CustomValue { get; set; } public string Type { get; set; } public bool IsPersonal { get; set; } public string BulletExplosionBullet { get; set; } public int BulletExplosionBulletDistance { get; set; } public string BulletExplosionItem { get; set; } public bool DestroysEnvironment { get; set; } public int PushbackStrength { get; set; } public int PushbackStrengthSelf { get; set; } public int PushbackDeadzone { get; set; } public bool CanStopGrapple { get; set; } public int FreezeStrength { get; set; } public int FreezeTicks { get; set; } public bool ShouldShowEvenIfOutsideScreen { get; set; } public int SameAreaEffectCanNotDamageMs { get; set; } public bool DontShowToEnemy { get; set; } public bool RequireLineOfSight { get; set; } } } ================================================ FILE: Source/BrawlStars/Files/Logic/Boss.cs ================================================ using BrawlStars.Files.CsvHelpers; using BrawlStars.Files.CsvReader; namespace BrawlStars.Files.Logic { public class Bosses : Data { public Bosses(Row row, DataTable datatable) : base(row, datatable) { LoadData(this, GetType(), row); } public string Name { get; set; } public string TID { get; set; } public int PlayerCount { get; set; } public int RequiredCampaignProgressToUnlock { get; set; } public string Location { get; set; } public string AllowedHeroes { get; set; } public string Reward { get; set; } public int LevelGenerationSeed { get; set; } public string Map { get; set; } public string Boss { get; set; } public int BossLevel { get; set; } } } ================================================ FILE: Source/BrawlStars/Files/Logic/Campaign.cs ================================================ using BrawlStars.Files.CsvHelpers; using BrawlStars.Files.CsvReader; namespace BrawlStars.Files.Logic { public class Campaign : Data { public Campaign(Row row, DataTable datatable) : base(row, datatable) { LoadData(this, GetType(), row); } public string Name { get; set; } public string TID { get; set; } public string Location { get; set; } public string AllowedHeroes { get; set; } public string Reward { get; set; } public int LevelGenerationSeed { get; set; } public string Map { get; set; } public string Enemies { get; set; } public int EnemyLevel { get; set; } public string Boss { get; set; } public int BossLevel { get; set; } public string Base { get; set; } public int NumBases { get; set; } public int BaseLevel { get; set; } public string Tower { get; set; } public int NumTowers { get; set; } public int TowerLevel { get; set; } public int RequiredStars { get; set; } } } ================================================ FILE: Source/BrawlStars/Files/Logic/Card.cs ================================================ using BrawlStars.Files.CsvHelpers; using BrawlStars.Files.CsvReader; namespace BrawlStars.Files.Logic { public class Card : Data { public Card(Row row, DataTable datatable) : base(row, datatable) { LoadData(this, GetType(), row); } public string Name { get; set; } public string IconSWF { get; set; } public string IconExportName { get; set; } public string Target { get; set; } public bool LockedForChronos { get; set; } public int DynamicRarityStartSeason { get; set; } public int MetaType { get; set; } public string RequiresCard { get; set; } public string Type { get; set; } public string Skill { get; set; } public int Value { get; set; } public int Value2 { get; set; } public int Value3 { get; set; } public string Rarity { get; set; } public string TID { get; set; } public string PowerNumberTID { get; set; } public string PowerNumber2TID { get; set; } public string PowerNumber3TID { get; set; } public string PowerIcon1ExportName { get; set; } public string PowerIcon2ExportName { get; set; } public int SortOrder { get; set; } public bool DontUpgradeStat { get; set; } public bool HideDamageStat { get; set; } } } ================================================ FILE: Source/BrawlStars/Files/Logic/Challenge.cs ================================================ using BrawlStars.Files.CsvHelpers; using BrawlStars.Files.CsvReader; namespace BrawlStars.Files.Logic { public class Challenge : Data { public Challenge(Row row, DataTable datatable) : base(row, datatable) { LoadData(this, GetType(), row); } public string Name { get; set; } public int ChallengeId { get; set; } public string FileName { get; set; } public string EventAsset { get; set; } public string BannerSWF { get; set; } public string EventBanner { get; set; } public string RewardItem { get; set; } public string RewardUnlockedItem { get; set; } public string HeaderFrame { get; set; } public string TID { get; set; } public string StageTID { get; set; } public string RewardTID { get; set; } public string CompletedTID { get; set; } public string RewardPopupTID { get; set; } public string BattleEndHeaderTID { get; set; } public string BattleEndWinLabelTID { get; set; } public string BattleEndWinTID { get; set; } public string StartNotification { get; set; } public string ReminderNotification { get; set; } public string TeaserTitleTID { get; set; } public string TeaserInfoTID { get; set; } } } ================================================ FILE: Source/BrawlStars/Files/Logic/Character.cs ================================================ using BrawlStars.Files.CsvHelpers; using BrawlStars.Files.CsvReader; namespace BrawlStars.Files.Logic { public class Character : Data { public Character(Row row, DataTable datatable) : base(row, datatable) { LoadData(this, GetType(), row); } public string Name { get; set; } public bool LockedForChronos { get; set; } public bool Disabled { get; set; } public string ItemName { get; set; } public string WeaponSkill { get; set; } public string UltimateSkill { get; set; } public string Pet { get; set; } public int Speed { get; set; } public int Hitpoints { get; set; } public bool MeleeAutoAttackSplashDamage { get; set; } public int AutoAttackSpeedMs { get; set; } public int AutoAttackDamage { get; set; } public int AutoAttackBulletsPerShot { get; set; } public string AutoAttackMode { get; set; } public int AutoAttackProjectileSpread { get; set; } public string AutoAttackProjectile { get; set; } public int AutoAttackRange { get; set; } public int RegeneratePerSecond { get; set; } public int UltiChargeMul { get; set; } public int UltiChargeUltiMul { get; set; } public string Type { get; set; } public int DamagerPercentFromAliens { get; set; } public string DefaultSkin { get; set; } public string FileName { get; set; } public string BlueExportName { get; set; } public string RedExportName { get; set; } public string ShadowExportName { get; set; } public string AreaEffect { get; set; } public string DeathAreaEffect { get; set; } public string TakeDamageEffect { get; set; } public string DeathEffect { get; set; } public string MoveEffect { get; set; } public string ReloadEffect { get; set; } public string OutOfAmmoEffect { get; set; } public string DryFireEffect { get; set; } public string SpawnEffect { get; set; } public string MeleeHitEffect { get; set; } public string AutoAttackStartEffect { get; set; } public string BoneEffect1 { get; set; } public string BoneEffect2 { get; set; } public string BoneEffect3 { get; set; } public string BoneEffect4 { get; set; } public string BoneEffectUse { get; set; } public string LoopedEffect { get; set; } public string LoopedEffect2 { get; set; } public string KillCelebrationSoundVO { get; set; } public string InLeadCelebrationSoundVO { get; set; } public string StartSoundVO { get; set; } public string UseUltiSoundVO { get; set; } public string TakeDamageSoundVO { get; set; } public string DeathSoundVO { get; set; } public string AttackSoundVO { get; set; } public int AttackStartEffectOffset { get; set; } public int TwoWeaponAttackEffectOffset { get; set; } public int ShadowScaleX { get; set; } public int ShadowScaleY { get; set; } public int ShadowX { get; set; } public int ShadowY { get; set; } public int ShadowSkew { get; set; } public int Scale { get; set; } public int HeroScreenScale { get; set; } public int FitToBoxScale { get; set; } public int EndScreenScale { get; set; } public int GatchaScreenScale { get; set; } public int HomeScreenScale { get; set; } public int HeroScreenXOffset { get; set; } public int HeroScreenZOffset { get; set; } public int CollisionRadius { get; set; } public string HealthBar { get; set; } public int HealthBarOffsetY { get; set; } public int FlyingHeight { get; set; } public int ProjectileStartZ { get; set; } public int StopMovementAfterMS { get; set; } public int WaitMS { get; set; } public string TID { get; set; } public bool ForceAttackAnimationToEnd { get; set; } public string IconSWF { get; set; } public string IconExportName { get; set; } public int RecoilAmount { get; set; } public string Homeworld { get; set; } public string FootstepClip { get; set; } public int DifferentFootstepOffset { get; set; } public int FootstepIntervalMS { get; set; } public int AttackingWeaponScale { get; set; } public bool UseThrowingLeftWeaponBoneScaling { get; set; } public bool UseThrowingRightWeaponBoneScaling { get; set; } public int CommonSetUpgradeBonus { get; set; } public int RareSetUpgradeBonus { get; set; } public int SuperRareSetUpgradeBonus { get; set; } public bool CanWalkOverWater { get; set; } public bool UseColorMod { get; set; } public int RedAdd { get; set; } public int GreenAdd { get; set; } public int BlueAdd { get; set; } public int RedMul { get; set; } public int GreenMul { get; set; } public int BlueMul { get; set; } public int ChargeUltiAutomatically { get; set; } public string VideoLink { get; set; } public bool ShouldEncodePetStatus { get; set; } public bool SecondaryPet { get; set; } public int ExtraMinions { get; set; } public int PetAutoSpawnDelay { get; set; } public int OffenseRating { get; set; } public int DefenseRating { get; set; } public int UtilityRating { get; set; } } } ================================================ FILE: Source/BrawlStars/Files/Logic/Emote.cs ================================================ using BrawlStars.Files.CsvHelpers; using BrawlStars.Files.CsvReader; namespace BrawlStars.Files.Logic { public class Emote : Data { public Emote(Row row, DataTable datatable) : base(row, datatable) { LoadData(this, GetType(), row); } public string Name { get; set; } public bool Disabled { get; set; } public string FileName { get; set; } public string ExportName { get; set; } public string Character { get; set; } public string Skin { get; set; } public int Type { get; set; } public int Rarity { get; set; } public bool LockedForChronos { get; set; } public int BundleCode { get; set; } public bool IsDefaultBattleEmote { get; set; } } } ================================================ FILE: Source/BrawlStars/Files/Logic/GameModeVariations.cs ================================================ using BrawlStars.Files.CsvHelpers; using BrawlStars.Files.CsvReader; namespace BrawlStars.Files.Logic { public class GameModeVariation : Data { public GameModeVariation(Row row, DataTable datatable) : base(row, datatable) { LoadData(this, GetType(), row); } public string Name { get; set; } public int Variation { get; set; } public bool Disabled { get; set; } public string TID { get; set; } public string ChatSuggestionItemName { get; set; } public string GameModeRoomIconName { get; set; } public string GameModeIconName { get; set; } public string ScoreSfx { get; set; } public string OpponentScoreSfx { get; set; } public string ScoreText { get; set; } public string ScoreTextEnd { get; set; } public int FriendlyMenuOrder { get; set; } public string IntroText { get; set; } public string IntroDescText { get; set; } public string IntroDescText2 { get; set; } public string StartNotification { get; set; } public string EndNotification { get; set; } } } ================================================ FILE: Source/BrawlStars/Files/Logic/Global.cs ================================================ using BrawlStars.Files.CsvHelpers; using BrawlStars.Files.CsvReader; namespace BrawlStars.Files.Logic { public class Global : Data { public Global(Row row, DataTable datatable) : base(row, datatable) { LoadData(this, GetType(), row); } public string Name { get; set; } public int NumberValue { get; set; } public bool BooleanValue { get; set; } public string TextValue { get; set; } public string[] StringArray { get; set; } public int[] NumberArray { get; set; } } } ================================================ FILE: Source/BrawlStars/Files/Logic/Item.cs ================================================ using BrawlStars.Files.CsvHelpers; using BrawlStars.Files.CsvReader; namespace BrawlStars.Files.Logic { public class Item : Data { public Item(Row row, DataTable datatable) : base(row, datatable) { LoadData(this, GetType(), row); } public string Name { get; set; } public string ParentItemForSkin { get; set; } public string FileName { get; set; } public string ExportName { get; set; } public string ExportNameEnemy { get; set; } public string ShadowExportName { get; set; } public string GroundGlowExportName { get; set; } public string LoopingEffect { get; set; } public int Value { get; set; } public int Value2 { get; set; } public int TriggerRangeSubTiles { get; set; } public string TriggerAreaEffect { get; set; } public bool CanBePickedUp { get; set; } public string SpawnEffect { get; set; } public string ActivateEffect { get; set; } public string SCW { get; set; } public string SCWEnemy { get; set; } public string Layer { get; set; } } } ================================================ FILE: Source/BrawlStars/Files/Logic/Locale.cs ================================================ using BrawlStars.Files.CsvHelpers; using BrawlStars.Files.CsvReader; namespace BrawlStars.Files.Logic { public class Locale : Data { public Locale(Row row, DataTable datatable) : base(row, datatable) { LoadData(this, GetType(), row); } public string Name { get; set; } public string IconSWF { get; set; } public string IconExportName { get; set; } public string LocalizedName { get; set; } public int SortOrder { get; set; } public bool Enabled { get; set; } public string FileName { get; set; } public bool TestLanguage { get; set; } public string UsedSystemFont { get; set; } public string PreferedFallbackFont { get; set; } public string ForcedFontFullName { get; set; } public string HelpshiftSDKLanguage { get; set; } public string HelpshiftSDKLanguageAndroid { get; set; } public string[] TestExcludes { get; set; } public bool LoadAllLanguages { get; set; } public string ChampionshipRegisterUrl { get; set; } public string ChampionshipRegisterUrl_cn { get; set; } public string TermsAndServiceUrl { get; set; } public string ParentsGuideUrl { get; set; } public string PrivacyPolicyUrl { get; set; } public string LaserboxUrl { get; set; } public string LaserboxUrlCN { get; set; } public string LaserboxStagingUrl { get; set; } public string LaserboxStagingUrlCN { get; set; } public string LaserboxCommunityUrl { get; set; } public string LaserboxCommunityUrlCN { get; set; } public string LaserboxCommunityStagingUrl { get; set; } public string LaserboxCommunityStagingUrlCN { get; set; } public string LaserboxLangCode { get; set; } public string FaqUrl_ios { get; set; } public string FaqUrl_ios_cn { get; set; } public string FaqUrl_android { get; set; } public string FaqUrl_android_cn { get; set; } public string ContactUsUrl_ios { get; set; } public string ContactUsUrl_ios_cn { get; set; } public string ContactUsUrl_android { get; set; } public string ContactUsUrl_android_cn { get; set; } public bool LaserboxEnabled { get; set; } public bool IsRTL { get; set; } public bool isNounAdj { get; set; } public bool SeparateThousandsWithSpaces { get; set; } public string SelfHelpUrl { get; set; } public bool FallbackToHelpshift { get; set; } public bool FallbackToHelpshiftCN { get; set; } } } ================================================ FILE: Source/BrawlStars/Files/Logic/Resource.cs ================================================ using BrawlStars.Files.CsvHelpers; using BrawlStars.Files.CsvReader; namespace BrawlStars.Files.Logic { public class Resource : Data { public Resource(Row row, DataTable datatable) : base(row, datatable) { LoadData(this, GetType(), row); } public string Name { get; set; } public string TID { get; set; } public string IconSWF { get; set; } public string CollectEffect { get; set; } public string IconExportName { get; set; } public string Type { get; set; } public string Rarity { get; set; } public bool PremiumCurrency { get; set; } public int TextRed { get; set; } public int TextGreen { get; set; } public int TextBlue { get; set; } public int Cap { get; set; } } } ================================================ FILE: Source/BrawlStars/Files/Logic/Skill.cs ================================================ using BrawlStars.Files.CsvHelpers; using BrawlStars.Files.CsvReader; namespace BrawlStars.Files.Logic { public class Skill : Data { public Skill(Row row, DataTable datatable) : base(row, datatable) { LoadData(this, GetType(), row); } public string Name { get; set; } public string BehaviorType { get; set; } public bool CanMoveAtSameTime { get; set; } public bool Targeted { get; set; } public bool CanAutoShoot { get; set; } public bool FaceMovement { get; set; } public int Cooldown { get; set; } public int ActiveTime { get; set; } public int CastingTime { get; set; } public int CastingRange { get; set; } public int RangeVisual { get; set; } public int RangeInputScale { get; set; } public int MaxCastingRange { get; set; } public int ForceValidTile { get; set; } public int RechargeTime { get; set; } public int MaxCharge { get; set; } public int Damage { get; set; } public int MsBetweenAttacks { get; set; } public int Spread { get; set; } public int AttackPattern { get; set; } public int NumBulletsInOneAttack { get; set; } public bool TwoGuns { get; set; } public bool ExecuteFirstAttackImmediately { get; set; } public int ChargePushback { get; set; } public int ChargeSpeed { get; set; } public int ChargeType { get; set; } public int NumSpawns { get; set; } public int MaxSpawns { get; set; } public bool BreakInvisibilityOnAttack { get; set; } public int SeeInvisibilityDistance { get; set; } public bool AlwaysCastAtMaxRange { get; set; } public string Projectile { get; set; } public string SummonedCharacter { get; set; } public string AreaEffectObject { get; set; } public string AreaEffectObject2 { get; set; } public string SpawnedItem { get; set; } public string IconSWF { get; set; } public string IconExportName { get; set; } public string LargeIconSWF { get; set; } public string LargeIconExportName { get; set; } public string ButtonSWF { get; set; } public string ButtonExportName { get; set; } public string AttackEffect { get; set; } public string UseEffect { get; set; } public string EndEffect { get; set; } public string LoopEffect { get; set; } public string LoopEffect2 { get; set; } public string ChargeMoveSound { get; set; } public bool MultiShot { get; set; } public bool SkillCanChange { get; set; } public bool ShowTimerBar { get; set; } public string SecondaryProjectile { get; set; } public int ChargedShotCount { get; set; } public int DamageModifier { get; set; } } } ================================================ FILE: Source/BrawlStars/Files/Logic/Skin.cs ================================================ using BrawlStars.Files.CsvHelpers; using BrawlStars.Files.CsvReader; namespace BrawlStars.Files.Logic { public class Skin : Data { public Skin(Row row, DataTable datatable) : base(row, datatable) { LoadData(this, GetType(), row); } public string Name { get; set; } public string Conf { get; set; } public int Campaign { get; set; } public int ObtainType { get; set; } public int ObtainTypeCN { get; set; } public string PetSkin { get; set; } public string PetSkin2 { get; set; } public int CostLegendaryTrophies { get; set; } public int CostGems { get; set; } public string TID { get; set; } public string ShopTID { get; set; } public string Features { get; set; } public string CommunityCredit { get; set; } public string MaterialsFile { get; set; } public string BlueTexture { get; set; } public string RedTexture { get; set; } public string BlueSpecular { get; set; } public string RedSpecular { get; set; } } } ================================================ FILE: Source/BrawlStars/GameAssets/database.sql ================================================ SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; CREATE TABLE IF NOT EXISTS `player` ( `Id` bigint(20) NOT NULL, `Trophies` bigint(20) NOT NULL, `Language` text CHARACTER SET utf8mb4 NOT NULL, `FacebookId` text CHARACTER SET utf8mb4, `Home` text CHARACTER SET utf8mb4 NOT NULL, `Sessions` text CHARACTER SET utf8mb4 NOT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `clan` ( `Id` bigint(20) NOT NULL, `Trophies` bigint(20) NOT NULL, `RequiredTrophies` bigint(20) NOT NULL, `Type` bigint(20) NOT NULL, `Region` text CHARACTER SET utf8mb4 NOT NULL, `Data` text CHARACTER SET utf8mb4 NOT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ================================================ FILE: Source/BrawlStars/GameAssets/fingerprint.json ================================================ {"files":[{"file":"badge\/default.edges","sha":"5a0f1a2906a37ff6ffde2b5ae328b88c6860493e"},{"file":"badge\/default_diffuse.png","sha":"20d078856a32bf496f1ecd40ce5dd90dff9daf65"},{"file":"badge\/default_diffuse_back.png","sha":"8068311784a41627032f1b4b059a7c1faaf36381"},{"file":"badge\/default_diffuse_edge.png","sha":"8068311784a41627032f1b4b059a7c1faaf36381"},{"file":"badge\/default_glossiness.png","sha":"614dd3e27c25dd4c9ae31d3abd7759304c239890"},{"file":"badge\/default_glossiness_back.png","sha":"865c7d52803440ce2c6896758a817b964459f239"},{"file":"badge\/default_glossiness_edge.png","sha":"12f5c636cb99cde7cf1869f4781166d3864df9af"},{"file":"badge\/default_normal.png","sha":"836c2439436055579f860a9a354c09c99c892104"},{"file":"badge\/default_normal_back.png","sha":"836c2439436055579f860a9a354c09c99c892104"},{"file":"badge\/default_normal_edge.png","sha":"836c2439436055579f860a9a354c09c99c892104"},{"file":"badge\/default_specular.png","sha":"fcb9867d8c156ad035b4aa6b0b7d4190c10d37e2"},{"file":"badge\/default_specular_back.png","sha":"059c0014f39246cb05adf0dc54b51df866fe6f16"},{"file":"badge\/default_specular_edge.png","sha":"fcb9867d8c156ad035b4aa6b0b7d4190c10d37e2"},{"file":"csv_client\/animations.csv","sha":"97a9f634eb0911654753c2b72b110bd7f88c64f9"},{"file":"csv_client\/billing_packages.csv","sha":"eec119b6a7bd84101b50d005b72421146fbe9880"},{"file":"csv_client\/client_globals.csv","sha":"94c684a7333aea79fb1ad8cae14dac9247b1f31f"},{"file":"csv_client\/color_gradients.csv","sha":"79eb0edef89f0a38cb0e84d7a3c8588a4d43ec8e"},{"file":"csv_client\/credits.csv","sha":"4a002d5b8187acc72a8742cea4320582676d689b"},{"file":"csv_client\/effects.csv","sha":"267eb5d185c577317122d8374627b8a308a40472"},{"file":"csv_client\/faces.csv","sha":"a21365823c0d52094ddc7d8169954129937d1818"},{"file":"csv_client\/health_bars.csv","sha":"ba83fb73bcd710ed9bd376d77991dc0d35f6b2ba"},{"file":"csv_client\/hints.csv","sha":"86f03fdedda29ba03fe9881bf22ec97984b30b4e"},{"file":"csv_client\/links.csv","sha":"8fcc280ca8ec953a05e4b77d8d349db9d1c875fd"},{"file":"csv_client\/local_notifications.csv","sha":"f2b55e772aac69eac430d178203254d2274dad4e"},{"file":"csv_client\/music.csv","sha":"9c2b20e2efeaef89931b4dce14cba639bed9ae8f"},{"file":"csv_client\/particle_emitters.csv","sha":"250f6099f558cf46ff7a08a3fe4dd0c46937dd15"},{"file":"csv_client\/particle_emitters.json","sha":"2d242c47a2e20692ed447fd79bf85eb6f0ba6d36"},{"file":"csv_client\/shop_items.csv","sha":"8d5a2e4343917054b7b940510b1429f4de771f40"},{"file":"csv_client\/sounds.csv","sha":"772b8874a73e1f4aceea0cf37539f4c0e6974e3f"},{"file":"csv_client\/tutorial.csv","sha":"a057d703932c5f71c20552132115171d3c820e0f"},{"file":"csv_logic\/accessories.csv","sha":"0f9114b9389803990bd29ac1184450bd3888deec"},{"file":"csv_logic\/alliance_badges.csv","sha":"0f05e2a6aa752bcfbf1425348bfcf2d5dbbdd0be"},{"file":"csv_logic\/alliance_roles.csv","sha":"bc11c0632058700168d812c2cd07870624584710"},{"file":"csv_logic\/area_effects.csv","sha":"8406d56c4b9df0be9de7de4b26a954cdaed3662a"},{"file":"csv_logic\/bosses.csv","sha":"123c739bb4598cf1d76a00e5e4a1fec39ffaaf2f"},{"file":"csv_logic\/campaign.csv","sha":"2fb30b9c23dd7b1e87ef009f26453bf0e2f93c60"},{"file":"csv_logic\/cards.csv","sha":"1870e1ab143c3bcac574a93f86a7a69fb115e347"},{"file":"csv_logic\/challenges.csv","sha":"9cfce47b2b7f6a260d622f9105fdafbaa438a633"},{"file":"csv_logic\/characters.csv","sha":"7a24a10de47cd3ba275d5d0ab99368d2575abbd1"},{"file":"csv_logic\/game_mode_variations.csv","sha":"a8fa53263b80c7f0aff820a8d0fc8851b11c210c"},{"file":"csv_logic\/globals.csv","sha":"cb4f4fae4903787e20db0f5fca9734c4e1be9bb9"},{"file":"csv_logic\/items.csv","sha":"2b2dc75dec8c01f92e0325ce0903c289e65383cc"},{"file":"csv_logic\/locales.csv","sha":"1ae24282c0d1ff23717e7d0f12b5ae2c0718cde5"},{"file":"csv_logic\/location_themes.csv","sha":"fac809e9fff14cb86d62854af1a0db889f7a166a"},{"file":"csv_logic\/locations.csv","sha":"5927be4b6c8894d2d5077cea7eab4e14b877b9da"},{"file":"csv_logic\/map_blocks.csv","sha":"411c42c91071e15f00592f5f664477457e89df45"},{"file":"csv_logic\/maps.csv","sha":"b7654719c21e354ad4cf46d7d3e9087f94fdfbe3"},{"file":"csv_logic\/messages.csv","sha":"1f7ab8deab0544a2e9570c37a962f10ddd47feb5"},{"file":"csv_logic\/milestones.csv","sha":"216e850f4798f66f6c1aa895b1014a4a0cdeeef2"},{"file":"csv_logic\/name_colors.csv","sha":"a8282b1fad812d947e1b0b665d7821f46e9dc57e"},{"file":"csv_logic\/pins.csv","sha":"24ef753b5dbcc9475d47ac69edebeb09b521d777"},{"file":"csv_logic\/player_thumbnails.csv","sha":"574e74f15051a8bde30cd58335487a2cd1270aed"},{"file":"csv_logic\/projectiles.csv","sha":"42e4d0e1aa992b4b2745c20cf6aaf5f6c0c910dd"},{"file":"csv_logic\/regions.csv","sha":"50ae49e7358c1c05df74c6ee97be5ffe870d4258"},{"file":"csv_logic\/resources.csv","sha":"cd2d939e64de2fcf7b9c2dd1644931cbc91c1df0"},{"file":"csv_logic\/skills.csv","sha":"3bd4a65394ae36f64913c6e24d7c7fe0a46dcba6"},{"file":"csv_logic\/skin_confs.csv","sha":"65808d43e976aabdc6e1e8fd4b7ef671edd7ee4d"},{"file":"csv_logic\/skins.csv","sha":"70247ce2cf0f61b9a588ed6f27c5e39c3c689712"},{"file":"csv_logic\/skinsrarity.csv","sha":"cc59933ab880cabfa54aca22a84075e55f4df8e9"},{"file":"csv_logic\/themes.csv","sha":"88fbc84a28aac76c182cbf164c8378dc938de4dc"},{"file":"csv_logic\/tiles.csv","sha":"ac783470532750f2fd56134c5fa882ac3d20443a"},{"file":"font\/Brawl_Stars_Deputy.otf","sha":"7bf2c6c950542f35a7359c8676b8296d7255b9c8"},{"file":"font\/LilitaOne-Regular.ttf","sha":"70b4f26a4787952f7f45290cd963049ebd5a6501"},{"file":"font\/NotoNaskhArabic-Bold.ttf","sha":"9515989125309566cf2c4a5a84d7e498f853939f"},{"file":"font\/Pusia-Bold.otf","sha":"47699042537a908ad1187dedcd71d618c6651f31"},{"file":"font\/debug.fnt","sha":"719870d4573b1267eba821b4a5498b5505139ce9"},{"file":"font\/debug.png","sha":"59d01d0c4b1e3566e355422df4599462b1ace9fa"},{"file":"image\/range.png","sha":"0d95f0d1131655db9f2c5841370eb05f762508b9"},{"file":"localization\/ar.csv","sha":"54e518aeb4b684e5ea10698ca269e17c9339fdd9"},{"file":"localization\/cn.csv","sha":"4af6ef2ee032a1dfd8f1b607f0eeb92aa9aec41e"},{"file":"localization\/cnt.csv","sha":"65d1903dbd9f49b4708478f0b98228915dbbe354"},{"file":"localization\/de.csv","sha":"8bf6d9755a67c863e6c7a2ab3a00e4b4ec111ab8"},{"file":"localization\/es.csv","sha":"5a19ff4f9e81ebdb4072c82a699fd035e8141529"},{"file":"localization\/fi.csv","sha":"c99d65961375a175fec5f37aeb2fdeaec0ec9404"},{"file":"localization\/fr.csv","sha":"aff490986f4bf9510f46a6f0c1cc9eed6ffcaf83"},{"file":"localization\/he.csv","sha":"910be12d0798ba633c32aa3f0fc73fe9d6c9fa02"},{"file":"localization\/id.csv","sha":"2b49e70f73542ad133a585e01ee2b529ba99d4b0"},{"file":"localization\/it.csv","sha":"919cca7d7c4438ea86cf4b5b258ef9e8476bae81"},{"file":"localization\/jp.csv","sha":"1b15899eb166604eeee7fff88209649edc61b821"},{"file":"localization\/kr.csv","sha":"c11f6179ce9bf2410f2c729ce6f43527552bb246"},{"file":"localization\/ms.csv","sha":"6eed2ce434a6cbf13151e04ee6442129ce9a1f9b"},{"file":"localization\/nl.csv","sha":"1629a376db4985f82843df8b989f75574bc943e1"},{"file":"localization\/pl.csv","sha":"6357c08144a501b68350a37b3c9ebf48b82df989"},{"file":"localization\/pt.csv","sha":"abab9e920e1d0a7fb8a643c548adb9830a021269"},{"file":"localization\/ru.csv","sha":"4a532f3f6a212d11d131ba39c2b8d4bbbdb08767"},{"file":"localization\/texts.csv","sha":"1c8eeaa2e1e12ea488fdb1abaca522de11fdcae3"},{"file":"localization\/texts_patch.csv","sha":"5ae0a52e22a17b41dc19f7bf8e4456c0f3a021f4"},{"file":"localization\/th.csv","sha":"d116a9e4ba08d148df9d9876d1b56e9e235d799b"},{"file":"localization\/tr.csv","sha":"f78e6c7c2e9c471840c3a33280803965c78023f2"},{"file":"localization\/vi.csv","sha":"e6a07ca46a780bac3270cc5ceb5b613d3738492f"},{"file":"music\/Slugfest_ingame_01.ogg","sha":"84536637053872c4564d1a8e37019852b7900568"},{"file":"music\/Slugfest_ingame_02.ogg","sha":"cc0a2c5987426529f597ce9501e198e8066acfd3"},{"file":"music\/Slugfest_ingame_03.ogg","sha":"6c4a4a372894f724113308023fbe89e95818cf9d"},{"file":"music\/Slugfest_ingame_04.ogg","sha":"61818f7237a7b130a407ae9f1e6194d3404d4fc9"},{"file":"music\/Slugfest_ingame_06.ogg","sha":"7011e1cb2c99044fa575d3ca7e773c4ad39f26f3"},{"file":"music\/Slugfest_ingame_07.ogg","sha":"cd989185da1e385ebef4b856314e9ce69a70f941"},{"file":"music\/Slugfest_ingame_08.ogg","sha":"b290291a1b8000d3a58551f7601079c08a64490d"},{"file":"music\/brawl_goal_02.ogg","sha":"aac9feed6d489a22310174b5fe9702acdd9b9bdd"},{"file":"music\/brawl_other_goal_01.ogg","sha":"275ac274b52ed6fcb394b4b717d1d6c1d6fb6bb7"},{"file":"music\/brawl_panic_time_01.ogg","sha":"5f44a9374743b53d898796def9283fc330d5b0f8"},{"file":"music\/brawl_stars_menu_01.ogg","sha":"2a33604debf7d0a4eb824b3d8bef5181265a194f"},{"file":"music\/brawl_xmas_flag_lose_01.ogg","sha":"988ac2d4d2dd0c6a3a7bcb3c7710cff53f441930"},{"file":"music\/brawl_xmas_flag_win_01.ogg","sha":"81e6aee2f6f49ea2ace32cb510ac8a33fd22c862"},{"file":"music\/brawlcade_ingame_01.ogg","sha":"e5ded36f07e34cd816690d275b87e67ff2721ca1"},{"file":"music\/brawlcade_ingame_02.ogg","sha":"9ebd3ec78af1016dd9c9a17aaf882b82ee187796"},{"file":"music\/brawloween_ingame_01.ogg","sha":"6dec47fd7db80ba012810f78ab71fe90027421be"},{"file":"music\/brawloween_ingame_02.ogg","sha":"7dfd5c9bfcd13cd988578f7cc77a3c186bb8641e"},{"file":"music\/draw_screen_loop_4x_01.ogg","sha":"5688998114012870d73031daf5a0be1457afadf7"},{"file":"music\/footbrawl_ingame_muzak_01.ogg","sha":"09f1fb61738a8f887ab8fa8cd74a3ed9e21b61a1"},{"file":"music\/footbrawl_ingame_muzak_02.ogg","sha":"b4a7c4dc7d28e3f1a0549245c00643765496d907"},{"file":"music\/footbrawl_menu_muzak_01.ogg","sha":"4fef8ab01465b12ce2f99e79e1fce8441ab16ad8"},{"file":"music\/laser_game_draw_01.ogg","sha":"9aac08c3a8c985b9803dc858701c93b6ae3cc8fd"},{"file":"music\/lose_screen_loop_4x_01.ogg","sha":"75413ba39a23526ceb6d4a490a4979a5091118f5"},{"file":"music\/pirate_brawl_ingame_01.ogg","sha":"75c4949ad8fea98924fe10059817ef961c31d435"},{"file":"music\/pirate_brawl_ingame_02.ogg","sha":"77f8a03b78ae1bbde73b94534500c3b80ff51502"},{"file":"music\/retro_brawl_ingame_01.ogg","sha":"0b376465139f10277cd641a5c173bc2a73a2b5d4"},{"file":"music\/retro_brawl_ingame_02.ogg","sha":"a55e911bbc55313b4a6861908d25fe156609574a"},{"file":"music\/slugfest_game_lost_01.ogg","sha":"a9eac8476f2d81e946d2684b73001956f12c2a56"},{"file":"music\/slugfest_game_won_01.ogg","sha":"c1b1e00abeea9f80fbba6ce8887f1529f98ec3ce"},{"file":"music\/win_screen_loop_4x_01.ogg","sha":"04edbe5ff272d24c878c6a6498376c807b60b3c0"},{"file":"sc\/background_basic.sc","sha":"3fd9064fad7888eb44fbbf973895d4faab5872ee"},{"file":"sc\/background_basic_tex.sc","sha":"81f42c70ed2f07d8f5065fc139a00a3e13df75ab"},{"file":"sc\/background_brawlidays.sc","sha":"440930548d135a83bfb46986acdccb861850de3a"},{"file":"sc\/background_brawlidays_tex.sc","sha":"c856e971e1b8b0f54e8afc5f5585707b7613498f"},{"file":"sc\/background_brawloween.sc","sha":"5d3a6e3442e6b8a24b4b825e0062b3c400ca2d31"},{"file":"sc\/background_brawloween_tex.sc","sha":"b55a199a3c521ef70bf3193a6e960b82f021f0ad"},{"file":"sc\/background_golden_week.sc","sha":"ee23c78b6a5af1c4628ef4833c26521f7df65c42"},{"file":"sc\/background_golden_week_tex.sc","sha":"5cec1aa8f49d3bf6c802dd44c863eeb8622ca9b0"},{"file":"sc\/background_lny.sc","sha":"ea48d33f35f65367d580c6378c0b39003e7491bd"},{"file":"sc\/background_lny_20.sc","sha":"0b5e915ff4c99acbcd6f665715b84f0761c6e6ee"},{"file":"sc\/background_lny_20_tex.sc","sha":"f531595dedb8842b3d3309265746a06fac0a330b"},{"file":"sc\/background_lny_tex.sc","sha":"bfd62ea364d7ab4240cc9039a59d8d7b9bd2b050"},{"file":"sc\/background_mecha.sc","sha":"95d2038cea9b2e5351dc5ce1a06611ba568bddc3"},{"file":"sc\/background_mecha_tex.sc","sha":"f6b349210caf68982290f1fcfeace0623287db57"},{"file":"sc\/background_psg.sc","sha":"9ff368975d403b9dbd07bad843f0701d29403403"},{"file":"sc\/background_psg_tex.sc","sha":"34db4a6f71ba06ef3a4eb9fc4ac075fad78a1a32"},{"file":"sc\/background_retropolis.sc","sha":"cf6d09df4c862153962fd991531d3e961d0562d0"},{"file":"sc\/background_retropolis_tex.sc","sha":"0d3e7443440a36bc19831cec36c33352a514c965"},{"file":"sc\/characters.sc","sha":"c83f1eb247db23854d433b8c9e309c2d42032c59"},{"file":"sc\/characters_tex.sc","sha":"ee1b4aa109ed24f12d94071034f29605ea0c44bd"},{"file":"sc\/debug.sc","sha":"72be5665969f8300b8b45574988f787b747a4e68"},{"file":"sc\/debug_tex.sc","sha":"689c009488f4d31739dc5cc374f4f3fcf9bcbc37"},{"file":"sc\/effects.sc","sha":"5d0eaa69ebbf34b61f0d1a9be5e2b1dd493f2465"},{"file":"sc\/effects_brawler.sc","sha":"11e4d2f2b812e707f6ae2cd2fb3e086aa1ce6151"},{"file":"sc\/effects_brawler_tex.sc","sha":"98401f574c2a894d95418b047be9e460389a7350"},{"file":"sc\/effects_tex.sc","sha":"19fbd12b0588a1053737125123639cb91431546d"},{"file":"sc\/events.sc","sha":"35815b4a0a43c61213043b97a25393956f1349e3"},{"file":"sc\/events_tex.sc","sha":"47c071a3aa60083d29d32843f7c12b07f306f618"},{"file":"sc\/level.sc","sha":"0b888928370df8719e20d6741d07bc470393ea60"},{"file":"sc\/level_tex.sc","sha":"f6ce04cbfabe5c4d07a9f58f30c488fa1c948d00"},{"file":"sc\/loading.sc","sha":"aa8751e9990bdc0c31e27db30bc2081edd6627d6"},{"file":"sc\/loading_tex.sc","sha":"9e933c353fb7723a93bdebe76e23d4938a6b126d"},{"file":"sc\/supercell_id.sc","sha":"eca3334e42442b8b683e94fa32361accc190c48b"},{"file":"sc\/supercell_id_tex.sc","sha":"1cafc6c921773d9e287416c7e66e66a608acbfc8"},{"file":"sc\/ui.sc","sha":"50f9e96715ed3e386af055d31de6d226dd198e0b"},{"file":"sc\/ui_tex.sc","sha":"02a4045106eb9d049b0635b3b21cf449bd974356"},{"file":"sc3d\/8bit_attack.scw","sha":"ebaaaf747cee0b271ec875328a2951209f9aef77"},{"file":"sc3d\/8bit_base_cam.scw","sha":"c9f551f476f6166c7d79fc401e1429ce1b9df4e2"},{"file":"sc3d\/8bit_classic_geo.scw","sha":"5c78084a97267af4bb57054e3e924fcac07245aa"},{"file":"sc3d\/8bit_classic_tex.ktx","sha":"166ac8f0eaa7754a8138d0c880efac1b6b91cf16"},{"file":"sc3d\/8bit_classic_tex.pvr","sha":"a605dabd4a00be1d19ceec5a7354be7981c3334e"},{"file":"sc3d\/8bit_geo.scw","sha":"7972d9b1cf40e3d8c55000df4d5172b819c61846"},{"file":"sc3d\/8bit_idle.scw","sha":"0f798a08dda07a06f5755838e3e6603a3cb87123"},{"file":"sc3d\/8bit_lose.scw","sha":"4a2eaadc84497c10c4985aed636b3fe8b8a8cdd1"},{"file":"sc3d\/8bit_pushback.scw","sha":"c137a08aecf0d7ec908ffb6e0acccb9caaa1b332"},{"file":"sc3d\/8bit_reload.scw","sha":"7e0b846ad6395920549f74450e66f5df8a84343a"},{"file":"sc3d\/8bit_tex.ktx","sha":"6a40bdf0cccb6f5f3de2ce65aceb044e21f15c20"},{"file":"sc3d\/8bit_tex.pvr","sha":"d767151d0b37e1f36d68669b2278280047b86c45"},{"file":"sc3d\/8bit_turret_geo.scw","sha":"dc658d917f962bc86dfae6c48199409572b1262e"},{"file":"sc3d\/8bit_turret_idle.scw","sha":"a2346660ac571e50e9a1cc03ff84531252faeaad"},{"file":"sc3d\/8bit_turret_spawn.scw","sha":"6b274563ec6e58149295eb04d709187c2540d946"},{"file":"sc3d\/8bit_virus_attack.scw","sha":"01e4cc1454ecf7d0dfe9030ee9f3823575a54a8c"},{"file":"sc3d\/8bit_virus_geo.scw","sha":"49ddd4bc1f9bc583fb7c353fc6ad4a187cb938f5"},{"file":"sc3d\/8bit_virus_idle.scw","sha":"61d8f5db5c6ebab5e6f820926cb6b19d895473bf"},{"file":"sc3d\/8bit_virus_lose.scw","sha":"adea06a51e8da07fc1fd331614e16bab61c4140a"},{"file":"sc3d\/8bit_virus_portrait.scw","sha":"fe49348762e6a513f3e2f0896ea624e496d660c3"},{"file":"sc3d\/8bit_virus_reload.scw","sha":"d57273406d012e0c11567d9a73fefceab3a2beaa"},{"file":"sc3d\/8bit_virus_tex.ktx","sha":"37c7e6a99ae83ef610c37a5f5397b9d9e4791b4a"},{"file":"sc3d\/8bit_virus_tex.pvr","sha":"d7b74c6b07a509ee65267d6ec5037de87792c9ca"},{"file":"sc3d\/8bit_virus_turret_geo.scw","sha":"22abed84d0c66e6741d2619c418b9d2fc1ed9e9f"},{"file":"sc3d\/8bit_virus_walk.scw","sha":"4bc6aa01ae8d852c571b7f17d246afcc527bb3d3"},{"file":"sc3d\/8bit_virus_win.scw","sha":"3202eff355c197d4e158cb63c3576e23a43233dc"},{"file":"sc3d\/8bit_walk.scw","sha":"a2c6fea8243fc4be722d020e5af60129164ed92a"},{"file":"sc3d\/8bit_win.scw","sha":"90ff48c691d81b26c3f6c570a07ff0880e692516"},{"file":"sc3d\/arcade_002_ulti.ktx","sha":"0ca5627e62a211875307f048632189c741ca9f32"},{"file":"sc3d\/arcade_002_ulti.pvr","sha":"633fe8aec3f2981bc2c0ed3e80ea918dc5e68a41"},{"file":"sc3d\/arcade_002_ulti.scw","sha":"b0b2abb7dfb903335171fc145df83c012325b696"},{"file":"sc3d\/arcade_def_ulti.scw","sha":"63e5301a5d3969cb4a125b0c35d4233ac4570da8"},{"file":"sc3d\/arcade_def_ulti_blue.ktx","sha":"b13430663fb50832f3973faf3819de28e9e0a508"},{"file":"sc3d\/arcade_def_ulti_blue.pvr","sha":"4acd45ed45b685cae2a99f6bb706b2c4e2bef1cb"},{"file":"sc3d\/arcade_def_ulti_red.ktx","sha":"dcb0cda8e677ee595581d1e34904181e87c2fcf3"},{"file":"sc3d\/arcade_def_ulti_red.pvr","sha":"c73e17e1283afff04aa8da67d6310601e18b8590"},{"file":"sc3d\/arcade_def_ulti_red.scw","sha":"c39da976dc7ba9d3f59c2f16cfd25f276bcb3d34"},{"file":"sc3d\/arena_blocker.scw","sha":"b80e6bb154cf1ec19894f463f439ee9cfe673695"},{"file":"sc3d\/ball_cactus.scw","sha":"b835c254af11e5a4729d7a0c000d671af477d2c4"},{"file":"sc3d\/ball_tex.ktx","sha":"e24c7d51573d4ad4ee113a59d6bc7c695ed13aa8"},{"file":"sc3d\/ball_tex.pvr","sha":"8551cf7da1cfd195f37ce848b57f3a154d0bc8c9"},{"file":"sc3d\/barkeep_attack1.scw","sha":"d7e7b0e6fccfd46d581bad1877a5abee518e07f9"},{"file":"sc3d\/barkeep_geo.scw","sha":"3696699d735d8b852ba11a67739ebaf76c94457e"},{"file":"sc3d\/barkeep_gold_tex.ktx","sha":"e6abc38ea8e6afd23c3ff0148a36e2fa574fe446"},{"file":"sc3d\/barkeep_gold_tex.pvr","sha":"1a790040687efb9571b73b2c9d96f7e91bc03812"},{"file":"sc3d\/barkeep_idle.scw","sha":"f1df13f0478521c37505a2190308d86592a44282"},{"file":"sc3d\/barkeep_lose1.scw","sha":"cb5404f0438566e85dc25704f644c321a1ea00a4"},{"file":"sc3d\/barkeep_loseloop1.scw","sha":"da8b93f1704b6dee422097752b635c20ce918619"},{"file":"sc3d\/barkeep_pushback.scw","sha":"307ca1bb066352c11b5a120834344755d0ded219"},{"file":"sc3d\/barkeep_recoil.scw","sha":"d332270009ece9c2f42c88ebbc5a5c013878cbcd"},{"file":"sc3d\/barkeep_reload.scw","sha":"627c7af92441b135ca3099a398a9ac8855e979c3"},{"file":"sc3d\/barkeep_tex.ktx","sha":"c8f023004e788cea866f53e78a72780d63b9ad13"},{"file":"sc3d\/barkeep_tex.pvr","sha":"fae8a6efc8dca887553bba0429187b3dc398a29b"},{"file":"sc3d\/barkeep_walk.scw","sha":"c9e8207e75c55b830e8f5ef2b5f357ecc7ed49eb"},{"file":"sc3d\/barkeep_win1.scw","sha":"5922e70251b55f373cbeac46725108d778684178"},{"file":"sc3d\/barkeep_winidleloop.scw","sha":"1a7449ad7880758b74b0e242086b8e0b8657fcb7"},{"file":"sc3d\/barkeep_winloop1.scw","sha":"fa6e89d263096ec29c39b3176a0fae74eea7ed73"},{"file":"sc3d\/barley_005_atk_blue.ktx","sha":"050723020a32551d64961d05d123ff1dc02e80e0"},{"file":"sc3d\/barley_005_atk_blue.pvr","sha":"c62b6b1ac3075a16a7fc8c29873e07284e87f92b"},{"file":"sc3d\/barley_005_atk_blue.scw","sha":"e7e089e1f4f78ed6066da632ba75a8c7b8a6a34f"},{"file":"sc3d\/barley_005_atk_red.ktx","sha":"6622d061753c91d8b2f4f7630980d95ef1ce32e7"},{"file":"sc3d\/barley_005_atk_red.pvr","sha":"2f00b0acd9215e27cc5a6a96d127d552e5998941"},{"file":"sc3d\/barley_005_atk_red.scw","sha":"25f02f486e1100c9b9d9f137ae2a9c63a54dea07"},{"file":"sc3d\/barley_banker_attack1.scw","sha":"8d5318d3552740856c8dd5097b601c4f711493bb"},{"file":"sc3d\/barley_banker_geo.scw","sha":"148fbd72e5034b3201f8db7bc7a4c4a5457e22ed"},{"file":"sc3d\/barley_banker_idle.scw","sha":"51c35f99f4372833c037a97c9a6626ec6c7de76a"},{"file":"sc3d\/barley_banker_knockback.scw","sha":"0420e4359360a0c16d6822529c5b01b617f4ce7c"},{"file":"sc3d\/barley_banker_lose1.scw","sha":"3f624f14ded8b5517b88126d1123f4bf149e48d5"},{"file":"sc3d\/barley_banker_reload.scw","sha":"ac6cd9d373bcbb9437f8ee3e9fbd157f4cbfaf6c"},{"file":"sc3d\/barley_banker_tex.ktx","sha":"0281d1af7e852d7f5b169cd7a84f43d6e0d46c76"},{"file":"sc3d\/barley_banker_tex.pvr","sha":"058ed374887b54f8ad2ed7a9fb1fed38c618ad56"},{"file":"sc3d\/barley_banker_walk.scw","sha":"1c23ebe71189ee94d00ce292b4489e6e76bc477a"},{"file":"sc3d\/barley_banker_win1.scw","sha":"46eb82a9a6679e223dc3b9a4dec0500770fa925c"},{"file":"sc3d\/barley_banker_winidleloop.scw","sha":"849d71d79256a60b1e11ff33775243e60663d227"},{"file":"sc3d\/barley_base_cam.scw","sha":"51d2aa73d4a56f9c53b5b292c7c020966b6868f8"},{"file":"sc3d\/barley_lumberjack_attack.scw","sha":"bdf75b032c426051a9071c01ac9df4a4dae39a9b"},{"file":"sc3d\/barley_lumberjack_geo.scw","sha":"21088830f9f062f0e76b8f545b6fedd03bd4caeb"},{"file":"sc3d\/barley_lumberjack_idle.scw","sha":"de22c50920d7736cea581635df25f481068e79b5"},{"file":"sc3d\/barley_lumberjack_lose.scw","sha":"1d27cf4c8715cc4653118369c3e2e56c1b9522cc"},{"file":"sc3d\/barley_lumberjack_pushback.scw","sha":"f62984d7ab47487f588088d77975c10fd1bdaabe"},{"file":"sc3d\/barley_lumberjack_run.scw","sha":"de6e2ed16e9d0fb0d0a449df52c4151d942d12bb"},{"file":"sc3d\/barley_lumberjack_tex.ktx","sha":"c01bef33e9a2061ac6579bbeccbce4a7641b65a4"},{"file":"sc3d\/barley_lumberjack_tex.pvr","sha":"546da1ad86033bde04a8715a7420c40d52e37144"},{"file":"sc3d\/barley_lumberjack_win.scw","sha":"4439a542acf95c0b78bff58c93a3c730b85c0548"},{"file":"sc3d\/barley_ms_attack.scw","sha":"9d38789f3f4b9de7c781534a39b6fcebafa2be0f"},{"file":"sc3d\/barley_ms_geo.scw","sha":"f3100109268e5db1f50f1f03f54e6fda3c59b1dc"},{"file":"sc3d\/barley_ms_idle.scw","sha":"db6363940b2c10edb62540f87a3530b2f66bdfdc"},{"file":"sc3d\/barley_ms_lose.scw","sha":"9d3074b6191b74a68dfbf2724b58c3aafce43177"},{"file":"sc3d\/barley_ms_tex.ktx","sha":"f72b38ab3a789e078e52a415a2ccb1b4c2813c61"},{"file":"sc3d\/barley_ms_tex.pvr","sha":"bca170751330d1e90df8f291463b50fb1d1c0e03"},{"file":"sc3d\/barley_ms_walk.scw","sha":"c0bc1d25ba1bca0933b73ff784e431a5dedd787a"},{"file":"sc3d\/barley_ms_win.scw","sha":"59323cb32b88149c58e65a9e313441fb05c663cd"},{"file":"sc3d\/barley_pushback.scw","sha":"865e9743e1a45cf63a42f7dd904e394523a860af"},{"file":"sc3d\/barley_tex.ktx","sha":"58a8f57bab64649a2e0bed8371c1f0303cad10a1"},{"file":"sc3d\/barley_tex.pvr","sha":"f15944dcf5597cd37b23a43d21feae9cfaef97fb"},{"file":"sc3d\/barley_wizard_attack.scw","sha":"850e9312cf639672301f45936871bd69e432a718"},{"file":"sc3d\/barley_wizard_cam.scw","sha":"c43e0f48e61dc1360b1cfcfa21bf513c9ed69617"},{"file":"sc3d\/barley_wizard_geo.scw","sha":"ad883c3797b4494de9f79b400ef60accb83f0126"},{"file":"sc3d\/barley_wizard_idle.scw","sha":"18be53fefb42c15b39d8305fc82d120899a03743"},{"file":"sc3d\/barley_wizard_lose.scw","sha":"2594bdcfb0200b31a2da9f658623574f751706f5"},{"file":"sc3d\/barley_wizard_portrait.scw","sha":"82a6cb7c551b27c464a5269e204a08bf5fe620e9"},{"file":"sc3d\/barley_wizard_pushback.scw","sha":"fca17fcd6027211376b6e8aa06227037d03952ac"},{"file":"sc3d\/barley_wizard_tex.ktx","sha":"9e2a15f4ebbe2a12331730f790ec675b2fbeca7b"},{"file":"sc3d\/barley_wizard_tex.pvr","sha":"6275d15946c29ab427a3efad3122cd5ca267ed54"},{"file":"sc3d\/barley_wizard_walk.scw","sha":"eb93bd0491196019d1cf3e5ef54a52561a309a3f"},{"file":"sc3d\/barley_wizard_win.scw","sha":"a10a4146d7433b573d5d3c964f800542e5f35b9a"},{"file":"sc3d\/barrel1.scw","sha":"d5a1ab5cfa1d8cca26dd0fdaea3ca8e1563f2621"},{"file":"sc3d\/barrel2.scw","sha":"72282ec2f5b5d9155dd09c9d79c88257744a6119"},{"file":"sc3d\/barrel_1.ktx","sha":"2edc3079dc671e4db4954780befa42be203bf36c"},{"file":"sc3d\/barrel_1.pvr","sha":"296d40e700d35fe77b8910527873287625f1fbb3"},{"file":"sc3d\/barrel_2.ktx","sha":"0777a7645fe53f2b7aef03a98a0d89bb87b400c3"},{"file":"sc3d\/barrel_2.pvr","sha":"7c104c4b7f73cc82fff9d99f9b6346fd0b180aac"},{"file":"sc3d\/barrel_arcade.scw","sha":"b60e94652845743c2638b043651c369e6ad37afe"},{"file":"sc3d\/barrel_fishy.ktx","sha":"094b93d2ae04cd0fffce7ea58971c20c6b6f90d8"},{"file":"sc3d\/barrel_fishy.pvr","sha":"f8fbfef08e63bb796ad8769f044d0c07e20d7b2d"},{"file":"sc3d\/barrel_fishy.scw","sha":"09d24443d5d7b3e458e7524fd46a41647c0dde5e"},{"file":"sc3d\/barrel_mortuary.ktx","sha":"adfddbe54c9e59702e34e5ba6be87520578b2ea0"},{"file":"sc3d\/barrel_mortuary.pvr","sha":"d928d95b39d3d4a57eb38c5a01ae74b8fc51f8e8"},{"file":"sc3d\/barrel_mortuary.scw","sha":"139d784559e096925f20e4a979869e21a2050933"},{"file":"sc3d\/barrel_xmas.ktx","sha":"44d6f64f06bc80535c23abba918754a41643a1ef"},{"file":"sc3d\/barrel_xmas.pvr","sha":"d20b9a3e57d8e8abbe30f23f384c880768070779"},{"file":"sc3d\/barrel_xmas.scw","sha":"b0e138c7eab5df0aefcba522d78827b87dad7b0d"},{"file":"sc3d\/barrelbot_charge.scw","sha":"01b306fffbb53e3d005a7b7138327473bf4c2ca2"},{"file":"sc3d\/barrelbot_geo.scw","sha":"a47900512678df788077a8d9504eb245148cb3c9"},{"file":"sc3d\/barrelbot_idle.scw","sha":"b06abde95f5ee7deacd0b5fd20d2989bcf25bf75"},{"file":"sc3d\/barrelbot_lose1.scw","sha":"35e0f327fa70f543fa0e66e5eebafc22fa7bcac2"},{"file":"sc3d\/barrelbot_recoil.scw","sha":"11c1d6211e57f56b63e9e9b60b6d383d42494c73"},{"file":"sc3d\/barrelbot_recoil2.scw","sha":"894711dc6dbbcdd774b35a67f56d67421a1fe17e"},{"file":"sc3d\/barrelbot_signature.scw","sha":"27dc59e479dfd1f426228ce1ce5bd606f37cae38"},{"file":"sc3d\/barrelbot_tex.ktx","sha":"c4d07a3f9192cec5f0b39d80313014051aca3899"},{"file":"sc3d\/barrelbot_tex.pvr","sha":"298d2ee5771df9d0ff05e2d76ee330c3dc0f7091"},{"file":"sc3d\/barrelbot_tex_red.ktx","sha":"05f1615170608f5b163c3dba89580f8470680cec"},{"file":"sc3d\/barrelbot_tex_red.pvr","sha":"724a9eac0615cf3c2056ef06f123b025b908e0fa"},{"file":"sc3d\/barrelbot_walk.scw","sha":"7754bce5682eec066ecba925429922c7f2fd7905"},{"file":"sc3d\/barrelbot_win1.scw","sha":"da50bbe273865349926634c6b35be78e64741bf9"},{"file":"sc3d\/basic_tall_geo.scw","sha":"9936b2565b715f3d4f0ce780cf6c1a7bcc8c4862"},{"file":"sc3d\/bbox_10.scw","sha":"03cd7e8eea8b8464bc139a2cddba2fac4ea64eaa"},{"file":"sc3d\/bbox_11.scw","sha":"17f3cbaa0657dc7f7eeb184a0a69c71bdaeb7cb9"},{"file":"sc3d\/bbox_12.scw","sha":"1224383c360a988c365c989150fbace922dfb113"},{"file":"sc3d\/bbox_diffuse_lightmap.png","sha":"cc18a0637c3cbb294a0c2bc996051f7608a5c023"},{"file":"sc3d\/bbox_glow.ktx","sha":"aba94bd118c38ffdace85b077ded4aaa18e0f4cf"},{"file":"sc3d\/bbox_glow.pvr","sha":"3f57dde49c2bfa95e029ed7124686d3fa08c437f"},{"file":"sc3d\/bbox_l.ktx","sha":"a522297c042389317584b7d6bbae217cb37fff8c"},{"file":"sc3d\/bbox_l.pvr","sha":"b0b9311661b3d1047524886fa09d8aed6c957f90"},{"file":"sc3d\/bbox_m.ktx","sha":"deb1da84405d97e92ae48e03f08d2f05b985b7d9"},{"file":"sc3d\/bbox_m.pvr","sha":"cffabd4cbafc22076de94492a9712e95cc5bf420"},{"file":"sc3d\/bbox_specular_lightmap.png","sha":"9b385ff4340ecdd4c2a871da7990903bb3280248"},{"file":"sc3d\/bea_attack.scw","sha":"7a6353252a76dbeacf1824dd377bd42fbdb27739"},{"file":"sc3d\/bea_gadget_honeypot_geo.scw","sha":"114b0bc0f49dd3ebc0fb4a9adcd542b0ead7af46"},{"file":"sc3d\/bea_gadget_honeypot_tex.ktx","sha":"6ba00aeca8295ee094859ab902b4af21879b879d"},{"file":"sc3d\/bea_gadget_honeypot_tex.pvr","sha":"0c9cef0bac9db0311c96505223a91c3fb5d98d02"},{"file":"sc3d\/bea_geo.scw","sha":"244d77a9cd5379b66b1af16239cc1b304531b554"},{"file":"sc3d\/bea_idle.scw","sha":"9927f075f7527d150cedc9c52cbb71174afcb0f6"},{"file":"sc3d\/bea_ladybug_geo.scw","sha":"2555b7d50093c1decdfae995bcb6d597862014b8"},{"file":"sc3d\/bea_ladybug_tex.ktx","sha":"664726979bf23c652735a34ce570515e714590e6"},{"file":"sc3d\/bea_ladybug_tex.pvr","sha":"4fc6aba664725e457396663d55e8fff673a61380"},{"file":"sc3d\/bea_lose.scw","sha":"7f7a89bb6634c7c208ebb8aa976a341aa940a6b7"},{"file":"sc3d\/bea_portrait.scw","sha":"d4b55437df9b08de01f092a85f9b50e0cf6ff772"},{"file":"sc3d\/bea_pushback.scw","sha":"9329351c2709f0303d516c649b4fb5899ecb90b7"},{"file":"sc3d\/bea_reload.scw","sha":"414cc1a458f49fbb66ca18fbb191aa1e98cc3dd2"},{"file":"sc3d\/bea_tex.ktx","sha":"4ae95ab54edce075550eae0f4b5f06721541cbbf"},{"file":"sc3d\/bea_tex.pvr","sha":"c12cb35030007bf947158886b004275554902e20"},{"file":"sc3d\/bea_walk.scw","sha":"c981153fffd68ef9a5a3c71ecfbcdab0e748fac4"},{"file":"sc3d\/bea_win.scw","sha":"959f8f6a6b447544699b665b7a16628d74b06785"},{"file":"sc3d\/bear_koala_geo.scw","sha":"e8b8f87ff1fdf59143f3d0485cabdd30e90592cb"},{"file":"sc3d\/bear_reindeer_attack.scw","sha":"86e1b8a93ec700777ab37bef86dd1b7ca6edde80"},{"file":"sc3d\/bear_reindeer_geo.scw","sha":"6a4179acc857c36232c24517d4c5deedd0308f1a"},{"file":"sc3d\/bear_reindeer_idle.scw","sha":"727abc577b5669b8887fd2effdc7aa9c3e6b6401"},{"file":"sc3d\/bear_reindeer_walk.scw","sha":"aff798896be09b9971803d3b08f58fddb134a0e1"},{"file":"sc3d\/bear_shiba_geo.scw","sha":"628f4e3b38e9bef54913632b005734ff61ab4959"},{"file":"sc3d\/bear_shiba_idle.scw","sha":"8e589d2f5613e71c8154e5f350f01d0bfc601b03"},{"file":"sc3d\/bee_big_idle.scw","sha":"018c5eed2192325c4812d98c1cf36ebd0c64d5e1"},{"file":"sc3d\/bee_big_reload.scw","sha":"d1a5ed7b8b08ea550da13fd812a922de653d990e"},{"file":"sc3d\/bee_geo.scw","sha":"67e9851fd971ea214f6b52f308d76d54fb16bf03"},{"file":"sc3d\/bee_ladybug_geo.scw","sha":"72b4ed9493b508096eb96fe73c4b6e1debc76b8f"},{"file":"sc3d\/bee_small_idle.scw","sha":"31edaa54ce856a5f8171eee4de293a4239d9446a"},{"file":"sc3d\/bee_small_reload.scw","sha":"d882176324941aa4fc212df79deb4cd26c7100cf"},{"file":"sc3d\/bgr_arcade.ktx","sha":"616b8d666e7320f83d38ba4cc7101f70e73df986"},{"file":"sc3d\/bgr_arcade.pvr","sha":"1e4fd8fc5de5a528cb5094553279736f694eeb00"},{"file":"sc3d\/bgr_arcade.scw","sha":"e2c836ba690d26f381a20e776a157b5b5b2c8e65"},{"file":"sc3d\/bgr_arcade_ground.scw","sha":"d48902dd84ef4ce0fb92fb1eda40203ce0ebfdec"},{"file":"sc3d\/bgr_bb_arena.ktx","sha":"9c509142ffa38a2f3f53f6068ae3685fbbcd2c2d"},{"file":"sc3d\/bgr_bb_arena.pvr","sha":"83cb1c99a282eaa9debfeda41ae60ecf0b398fb6"},{"file":"sc3d\/bgr_bb_arena.scw","sha":"9b46197b30d25e3ab04bc1cc810cb7cb40d37129"},{"file":"sc3d\/bgr_bb_arena_decos_default.scw","sha":"b4fb9d44c52d91e35571cc2e4d842d1df9816c62"},{"file":"sc3d\/bgr_bb_arena_decos_psg.scw","sha":"ac94951d9675f4724a87ac58f8b7db58b5093c6e"},{"file":"sc3d\/bgr_bb_arena_ground.scw","sha":"87313110a4269f254f90a16615f0b875f8e577e7"},{"file":"sc3d\/bgr_bb_arena_ground_decos_psg.scw","sha":"e4347d22aee8763472bd1535bdeaae9e9f78eec4"},{"file":"sc3d\/bgr_bb_arena_psg.ktx","sha":"e56ad3081aa9f17230ef711252bda57fd4d5f375"},{"file":"sc3d\/bgr_bb_arena_psg.pvr","sha":"44992d328187e7df0c13437e8caf15e8cb425b38"},{"file":"sc3d\/bgr_beach.ktx","sha":"04d0dec9a1fee92c35c0483d039d1945744bd539"},{"file":"sc3d\/bgr_beach.pvr","sha":"35b52e75d192da0147d51f7be4ae9a3057e92420"},{"file":"sc3d\/bgr_beach.scw","sha":"5f0089ac35e4f7d6b8b1b341fdc120fcb3e2e945"},{"file":"sc3d\/bgr_beach_brawl_ball.scw","sha":"1a7c6cb9705a483ab83a004dc9101031b51a5dbf"},{"file":"sc3d\/bgr_beach_brawl_ball_ground.scw","sha":"2e005895a827035393403c51a661d0dec6ba617a"},{"file":"sc3d\/bgr_beach_ground.scw","sha":"82a6a8be2dd7592e8b3839ac72ca5c065b8e04aa"},{"file":"sc3d\/bgr_beach_ground_wf19.scw","sha":"9ded47be120a819c24b6d5a70ec7015a3e1507b9"},{"file":"sc3d\/bgr_canyon.scw","sha":"69d7a5f16547c7ba8ef3ee170e53eaac337c59ed"},{"file":"sc3d\/bgr_canyon_cactus.ktx","sha":"c8e680893c01edd798b42a4e49c040f4959a5ebe"},{"file":"sc3d\/bgr_canyon_cactus.pvr","sha":"4f4118107ac251fa660093d88e0cc7fb4537426f"},{"file":"sc3d\/bgr_canyon_ground.scw","sha":"3535a49a55f392dbfc5cd9e6f2747e9577b1294d"},{"file":"sc3d\/bgr_canyon_ground_wf19.scw","sha":"bd8698cb3480856edf3e35f4a1a0091a195884db"},{"file":"sc3d\/bgr_canyon_showdown.scw","sha":"92d1978ec9d33666e0836512a38736f45f67b5c0"},{"file":"sc3d\/bgr_canyon_showdown_ground.scw","sha":"ea714420f2935cfc62c16d65b4bbf592f9ee392a"},{"file":"sc3d\/bgr_canyon_showdown_ground_wf19.scw","sha":"96a0d432095af961af6fb45b6964b0a8b666d4e5"},{"file":"sc3d\/bgr_canyon_terrain.ktx","sha":"251e978936b6ad2b4470779b3d6f0ccf1ef5557b"},{"file":"sc3d\/bgr_canyon_terrain.pvr","sha":"9255f8a57d8865e29eec26f25c85163d7b8f6260"},{"file":"sc3d\/bgr_darryls_ship.ktx","sha":"8a55b6d28fb82811998a0afd4cb0543c620dfd32"},{"file":"sc3d\/bgr_darryls_ship.pvr","sha":"36c86b431109ac0080921e2f6a3cd9b10f4e6bac"},{"file":"sc3d\/bgr_darryls_ship.scw","sha":"95f0b0bb489ffa6e1559a7bcc42d8d503a8efe49"},{"file":"sc3d\/bgr_darryls_ship_decos_xmas.scw","sha":"f93488db919e863709a1db258bb3878c120c8cd6"},{"file":"sc3d\/bgr_darryls_ship_ground.scw","sha":"ca2449d146f0b71aa81475d79954c74b7348f60c"},{"file":"sc3d\/bgr_darryls_ship_hold.ktx","sha":"7ec097f7acb3ff736a74183ae15faf651328598a"},{"file":"sc3d\/bgr_darryls_ship_hold.pvr","sha":"770f00416fe3e3227dc280fef1b03391968b379e"},{"file":"sc3d\/bgr_darryls_ship_hold.scw","sha":"82f0ad6cadd47f5ef8aefbb75fb7ae23fb80d8fb"},{"file":"sc3d\/bgr_grassfield.scw","sha":"ea86477222bc61571c45039049ebf0febb7f2321"},{"file":"sc3d\/bgr_grassfield_ground.scw","sha":"ae6a8bbc04c25fcce57a2b6eb2c125efea138805"},{"file":"sc3d\/bgr_grassfield_ground_wf19.scw","sha":"d369a191f8622fb70ec8a2dfe94c7cb7a04d5168"},{"file":"sc3d\/bgr_island_showdown_ground.scw","sha":"e1599377e95d0122d4b45759d30f73378306be48"},{"file":"sc3d\/bgr_island_showdown_ground_wf19.scw","sha":"c4046ae3bd1b4aa551b3258dccb09bf7c7de5a61"},{"file":"sc3d\/bgr_jungle.scw","sha":"c3a9a82420fd14425fcae77d48683b61bf80b04c"},{"file":"sc3d\/bgr_jungle_ground.scw","sha":"61041e0c8485bfb37943fcb148c68b3cbcd4d805"},{"file":"sc3d\/bgr_jungle_ground_wf19.scw","sha":"9902454e21e0d9a80bd400b0bf7faa22aa865fd8"},{"file":"sc3d\/bgr_jungle_palm.ktx","sha":"51d32d8b532a9984c8531944386f5b7b7f8a5a68"},{"file":"sc3d\/bgr_jungle_palm.pvr","sha":"e08582a1333eba2cc92d81f60951f53ea83ade70"},{"file":"sc3d\/bgr_jungle_terrain.ktx","sha":"86ec1c96946d2c2a79bfedfa7cfee619376ec1c1"},{"file":"sc3d\/bgr_jungle_terrain.pvr","sha":"0edb4d4367a8f834a6be6705c91868f7e25323f8"},{"file":"sc3d\/bgr_mine.scw","sha":"80b1f4543debe6c048e8d1e6b2c78fdde4f8d1ae"},{"file":"sc3d\/bgr_mine_ground.scw","sha":"fc58c6e5f47ed0b0230ad27ff14d96f756e41e06"},{"file":"sc3d\/bgr_mine_ground_tracks_1.scw","sha":"c1e148a6bdbab5406f05d65f82328ffbaac35ebb"},{"file":"sc3d\/bgr_mine_ground_tracks_1_wf19.scw","sha":"1cb3c74f89f925d14044f964acf1f1dc582609f6"},{"file":"sc3d\/bgr_mine_ground_wf19.scw","sha":"c0f92af0a8bffb2d8616d2852c583894fa4bfff8"},{"file":"sc3d\/bgr_mine_terrain.ktx","sha":"af238302ed13b8357305860779214524daf5bc62"},{"file":"sc3d\/bgr_mine_terrain.pvr","sha":"f96871a94c4227a09b78d96754edcbdfed0d582e"},{"file":"sc3d\/bgr_mine_tracks_1.scw","sha":"c47e11161293f207bfba63ae531e0b56d6eea673"},{"file":"sc3d\/bgr_mine_tracks_1_boom_l_bot.scw","sha":"5c4464752083e202b0126c5d84f948c3f722011a"},{"file":"sc3d\/bgr_mine_tracks_1_boom_l_top.scw","sha":"8cba748140fa35dd6233b5c51eee2c0c55c5b19d"},{"file":"sc3d\/bgr_mine_tracks_1_boom_r_bot.scw","sha":"6adeed179e2c441cd8535d4c1790b697c7b831c8"},{"file":"sc3d\/bgr_mine_tracks_1_boom_r_top.scw","sha":"ef24efcc75d6b895b06983e0cf86d5a93fb8cb85"},{"file":"sc3d\/bgr_mine_tracks_1_lights.scw","sha":"1cdbe952465be36246e35597fcd1f2522c41d3ca"},{"file":"sc3d\/bgr_mine_tutorial.scw","sha":"6938e100ece847abf89d9321e47a6ec8c5b21757"},{"file":"sc3d\/bgr_mine_tutorial_ground.scw","sha":"1356bf81bb11894e343c44beb5db57db0a06f6f4"},{"file":"sc3d\/bgr_mortuary.ktx","sha":"43f41b12c9d2cab2d4c619ec797395f7ac39e369"},{"file":"sc3d\/bgr_mortuary.pvr","sha":"8c4c5dc4c87818b2427cdd135772ff5fa2e0d7a0"},{"file":"sc3d\/bgr_mortuary.scw","sha":"7538983a10d47d41509fdfb9b92cf83dc1a0eb95"},{"file":"sc3d\/bgr_mortuary_decos_hw.scw","sha":"a382e258f456163610320f4bc5f2530c398fd1d7"},{"file":"sc3d\/bgr_mortuary_ground.scw","sha":"f95db4645b4c7ef7304ee6f2c96c8ede9dcf0df7"},{"file":"sc3d\/bgr_mortuary_ground_wf19.scw","sha":"a17a7d4fb8f17c3f85ef3235f2d032f58c41d8b2"},{"file":"sc3d\/bgr_mortuary_showdown.scw","sha":"d4cc5cbfcb1829b798988f788719b670a68d058d"},{"file":"sc3d\/bgr_mortuary_showdown_decos_hw.scw","sha":"21bb8fbac70000db13a61ec9d094d5588446a34a"},{"file":"sc3d\/bgr_mortuary_showdown_ground.scw","sha":"16647bdcfc26155faf8dbbe629eaf7fd2005fe94"},{"file":"sc3d\/bgr_mortuary_showdown_ground_wf19.scw","sha":"4a0c34ba5ccd2234e882e09a125c6a74f1cee3a7"},{"file":"sc3d\/bgr_old_town.ktx","sha":"50bf8ca412f47a4eba1166f5d2eec7c633ef5980"},{"file":"sc3d\/bgr_old_town.pvr","sha":"9324bf021db71c1d16e01bde9a2fb9770d7b0690"},{"file":"sc3d\/bgr_old_town.scw","sha":"a6cf19581661a71425d63f89a6545ee98fb43fcc"},{"file":"sc3d\/bgr_old_town_ground.scw","sha":"7478ea17ae683ff145437a58acc5aa6bb0b53395"},{"file":"sc3d\/bgr_old_town_ground_wf19.scw","sha":"1eb45b2236c7d22d562883809f7e97be7081c788"},{"file":"sc3d\/bgr_retropolis.ktx","sha":"63f17b95ae8f2d2066d3ca13f44ed1f64a7adb55"},{"file":"sc3d\/bgr_retropolis.pvr","sha":"58403918b488c3f11964ec408fbcd2c8c03b63aa"},{"file":"sc3d\/bgr_retropolis.scw","sha":"60cc49f63fe215d5d7802c9d8b76c118708c5114"},{"file":"sc3d\/bgr_retropolis_ground.scw","sha":"f2ba6eb8bdc18fde8a3726f6fcffb767bd1903f7"},{"file":"sc3d\/bgr_retropolis_ground_wf19.scw","sha":"faf2c03d25ba8d82167ccb86d44402e082647cb8"},{"file":"sc3d\/bgr_warehouse.ktx","sha":"1b17440ff7d047b9587828a4c7545b9d5aa5367e"},{"file":"sc3d\/bgr_warehouse.pvr","sha":"b53c6bdc573e40e0d374cf894875ed18b924ae66"},{"file":"sc3d\/bgr_warehouse.scw","sha":"67e6dad33f9b11727a9c1041834bfa7697211066"},{"file":"sc3d\/bgr_warehouse_ground.scw","sha":"812aee80b4c6833c134819ab1c0af35d6877f1dd"},{"file":"sc3d\/bgr_warehouse_ground_wf19.scw","sha":"ab2636a82a7c048dce7bb703940f0da7166bc0a7"},{"file":"sc3d\/bibi_attack.scw","sha":"f055a910f250c3fdefa46a43c8b8e7eb478b7d49"},{"file":"sc3d\/bibi_base_cam.scw","sha":"335820b7bfe3460fed6e1715efea3cd50ff43255"},{"file":"sc3d\/bibi_gamer_attack.scw","sha":"7a69a0caeed5f88fbbf8895284aea0b5c415a8f3"},{"file":"sc3d\/bibi_gamer_geo.scw","sha":"64410db3b75aa09ec939a9a0943f77a68f7e3970"},{"file":"sc3d\/bibi_gamer_idle.scw","sha":"b5a25952a65746bbc0df1623514bce46f1b9304b"},{"file":"sc3d\/bibi_gamer_lose.scw","sha":"7780d60a89b4cc9e4c02cfef4c518f427effa57d"},{"file":"sc3d\/bibi_gamer_portrait.scw","sha":"71c96ee21519a3de138cf5d1ca7ef5d059b23462"},{"file":"sc3d\/bibi_gamer_pushback.scw","sha":"44900842260e2d5cd27db354f956024f060ddcee"},{"file":"sc3d\/bibi_gamer_tex.ktx","sha":"3f6a5f24ec8f732d9a3697703d53c319686dd34c"},{"file":"sc3d\/bibi_gamer_tex.pvr","sha":"88a9852bb661945c23bac5eb709a9af72c9d38eb"},{"file":"sc3d\/bibi_gamer_walk.scw","sha":"f15ee66b06dd364121fd64b57665040bf35c3ea7"},{"file":"sc3d\/bibi_gamer_win.scw","sha":"b52d8690c17646612b63105df80d2e9021f910cf"},{"file":"sc3d\/bibi_geo.scw","sha":"d77903a065a032b15f9111cb97af4c5c19b52c6e"},{"file":"sc3d\/bibi_idle.scw","sha":"eeaeca85b6a73de6206c7474683ada2659d3d2e3"},{"file":"sc3d\/bibi_lose.scw","sha":"ae668093f5e846d5c65bfb6d18e5d6dcd0852bc9"},{"file":"sc3d\/bibi_pushback.scw","sha":"544d4020869cd0d21470f304fd78423f9d42f7eb"},{"file":"sc3d\/bibi_run.scw","sha":"c200bae077a72ba2e19554f56661787bfcb21109"},{"file":"sc3d\/bibi_tex.ktx","sha":"9efc42955a96668b68ceb0a85b02381c9787fd97"},{"file":"sc3d\/bibi_tex.pvr","sha":"bb91ebfd2b98f90af28289c9bd71471d78e72701"},{"file":"sc3d\/bibi_win.scw","sha":"f324b18a6c46cf81adb7c44c0792bd1e559bcb85"},{"file":"sc3d\/blocker_arcade.scw","sha":"d5580e430c220edaad79f949b629b5a14e7cca55"},{"file":"sc3d\/blocker_arcade_2.scw","sha":"a3e37a01c5c77db8275318b73ccacec821b6d7e4"},{"file":"sc3d\/bo_002_ulti_projectile_blue.ktx","sha":"df024273d894c78a68b9d0f64c65fcd5b0ba5c26"},{"file":"sc3d\/bo_002_ulti_projectile_blue.pvr","sha":"9f9a031f5b028902ce40b4903b3f0af7a9d8763f"},{"file":"sc3d\/bo_002_ulti_projectile_blue.scw","sha":"e1f0235e3cbe674b9e3bee985872d55995c0a812"},{"file":"sc3d\/bo_002_ulti_projectile_red.ktx","sha":"3a61090518f217f5172138228ae32e0775216dc4"},{"file":"sc3d\/bo_002_ulti_projectile_red.pvr","sha":"39f0177062a69079d6822be2f926703bff36de71"},{"file":"sc3d\/bo_002_ulti_projectile_red.scw","sha":"3eb7c8a894b2b6f3019cd54c0676888fe4749965"},{"file":"sc3d\/bo_003_ulti_projectile_blue.ktx","sha":"45debe6e54d952c3cd25dabde99b5ff223b404b7"},{"file":"sc3d\/bo_003_ulti_projectile_blue.pvr","sha":"59d60cf7565125ffe93d253137ce98c40038454c"},{"file":"sc3d\/bo_003_ulti_projectile_blue.scw","sha":"04bd938624f989da8a98d25e8396d8daccdaa01a"},{"file":"sc3d\/bo_003_ulti_projectile_red.ktx","sha":"d90d1ed8ef18c7e51de624f70120449084cc04a8"},{"file":"sc3d\/bo_003_ulti_projectile_red.pvr","sha":"74eab88b2d0ed6cccf48146b881ffb0a55c476c7"},{"file":"sc3d\/bo_003_ulti_projectile_red.scw","sha":"448f57362ba240011bfe9ecbceee1eb46516ff7c"},{"file":"sc3d\/bo_attack.scw","sha":"49badb009502f9f0bb36fce8f0a5368e7cc47257"},{"file":"sc3d\/bo_base_cam.scw","sha":"3ce1d48f2e7040b44bd1bca0c46dcb155e7a8225"},{"file":"sc3d\/bo_def_ulti_projectile_blue.ktx","sha":"70ac6cfd618856801b9798effdae300865288c40"},{"file":"sc3d\/bo_def_ulti_projectile_blue.pvr","sha":"b2d899c2eee7668936e6219227db03ce5ccc8830"},{"file":"sc3d\/bo_def_ulti_projectile_blue.scw","sha":"19536322438c345fe4476d3239690cc59ff9a8b2"},{"file":"sc3d\/bo_def_ulti_projectile_red.ktx","sha":"56c5867d3eea6c34fdbf9e6bf2c6b9d4031227b5"},{"file":"sc3d\/bo_def_ulti_projectile_red.pvr","sha":"1321f345cc144ef27d88d164eb80af0c87386104"},{"file":"sc3d\/bo_def_ulti_projectile_red.scw","sha":"8d5871aab8a8da0260b41070f8c10d2cfd2c3cbd"},{"file":"sc3d\/bo_falcon_attack.scw","sha":"641be1ed52c1e530c382c0f95a460603c2e0066c"},{"file":"sc3d\/bo_falcon_geo.scw","sha":"047e26f2e72075cbaf99443ed4cc2f114706ed98"},{"file":"sc3d\/bo_falcon_idle.scw","sha":"464e11b5b772dff846b502e0547b75a2014537cf"},{"file":"sc3d\/bo_falcon_lose.scw","sha":"c1d9a3e3bb07f76ea32bdaf112c57b059d78d791"},{"file":"sc3d\/bo_falcon_portrait.scw","sha":"559771b83897b7b918f5fe60bdb3debe77aea59b"},{"file":"sc3d\/bo_falcon_tex.ktx","sha":"4906b337224a2d11514383d0d75c1ecbf3653138"},{"file":"sc3d\/bo_falcon_tex.pvr","sha":"ed0190415ec76d77c9e97fcc6cfa592c8133f72e"},{"file":"sc3d\/bo_falcon_walk.scw","sha":"edb7a56228f90be6ae441c32b95a84819a9d6a65"},{"file":"sc3d\/bo_falcon_win.scw","sha":"cfec16fdfe44f5341551259a56f1002537061ac6"},{"file":"sc3d\/bo_gadget_totem_geo.scw","sha":"ff391d4a5e531d70a935dfaef95c470bed5b22cc"},{"file":"sc3d\/bo_gadget_totem_tex.ktx","sha":"207429f2156f3748a1a36bdc9767ef93f37df311"},{"file":"sc3d\/bo_gadget_totem_tex.pvr","sha":"8ec87f3028ac6ac3eeb3c5a39ab0d5f303f412c9"},{"file":"sc3d\/bo_geo.scw","sha":"c554220e847714570b5fcd9c5d54ad2d76f387d9"},{"file":"sc3d\/bo_idle.scw","sha":"c6ca53590780b4500c6023716e61ea4e9b95487d"},{"file":"sc3d\/bo_lose.scw","sha":"fd8b7f87cd02c720e7d82b1ebc6254458647cbcb"},{"file":"sc3d\/bo_mecha_attack.scw","sha":"eab7df676ca40cb450be01cf3d957f5810f69dbf"},{"file":"sc3d\/bo_mecha_cam.scw","sha":"3c4bf73ccd9eb949f94cff21ba06dfe84924e881"},{"file":"sc3d\/bo_mecha_geo.scw","sha":"e0565f65cbb1e24c00cc827223f65311c3299955"},{"file":"sc3d\/bo_mecha_idle.scw","sha":"3f38c332128c03b407f8c9c525aea3258916601f"},{"file":"sc3d\/bo_mecha_lose.scw","sha":"b77ad9bc50bec7318ff7d933e956f6609809a760"},{"file":"sc3d\/bo_mecha_pushback.scw","sha":"e62e95cd05f494af700ed8b1f8c3725708754d1a"},{"file":"sc3d\/bo_mecha_run.scw","sha":"cc69ec18d215d2f565075c543c22d993d104b437"},{"file":"sc3d\/bo_mecha_tex.png","sha":"9ecac892d94a48e3da6af1620cc512e4f250834a"},{"file":"sc3d\/bo_mecha_ult.scw","sha":"1fe20836d20838b635c3f1ca60bc715b654a00af"},{"file":"sc3d\/bo_mecha_win.scw","sha":"7d2ea825d16ef88c7c3135e93423bdd9ee8730f1"},{"file":"sc3d\/bo_tex.ktx","sha":"769606731a1ba5a1e52aa7be7b4895ca56fb7917"},{"file":"sc3d\/bo_tex.pvr","sha":"df8060c92172f3deb310959525c570fe70ca064b"},{"file":"sc3d\/bo_ult.scw","sha":"ec0cc0005e3971ab873e11b02c03ce32ac97de65"},{"file":"sc3d\/bo_walk.scw","sha":"0b24f7924bfbcb3e40a1c60ff93c537ccf4c1e4c"},{"file":"sc3d\/bo_win.scw","sha":"2aae1d3a7008910dda50d77614434af8212dff5b"},{"file":"sc3d\/bombhead_geo.scw","sha":"8534793dbe987c320f5c3ed15e74e98d56c0ff9c"},{"file":"sc3d\/bombhead_idle.scw","sha":"7e7169df4277952fd1f1bc95ac1048644dbf8d21"},{"file":"sc3d\/bone_pile.png","sha":"d1d869d619a4b7bdefcedcbabc6a054aa1e6f831"},{"file":"sc3d\/bone_pile.scw","sha":"c1b072ae8acdccb7ca16989bab1e9e7ef1ddb471"},{"file":"sc3d\/bone_pile_mortuary.png","sha":"f79d1328e86e51dc6cd1caf26426977c3f62c8be"},{"file":"sc3d\/bone_pile_mortuary.scw","sha":"4ad89fc8ace9fb98835e12265a1dbcf5c2b54ab4"},{"file":"sc3d\/bone_ribs.scw","sha":"ae9663c34f9c53d942a44d87a187f0034a735a4c"},{"file":"sc3d\/bone_ribs_mortuary.scw","sha":"6b598668005dc07a6c7f726f9f950f13888a7fc5"},{"file":"sc3d\/bone_single.scw","sha":"a7fef01e34a961aaa701f42b29d8eec2a2d3bc00"},{"file":"sc3d\/bone_single_mortuary.scw","sha":"f91bb7aba337061a9838bbba77a295f7c878ce2e"},{"file":"sc3d\/bone_skull.scw","sha":"7ab8e91e4592c9b4e11e253629415e8955a941ec"},{"file":"sc3d\/bone_skull_mortuary.scw","sha":"6fd7fc77b61cc41ade19285541de6a828d5fb21d"},{"file":"sc3d\/bossbot_geo.scw","sha":"45df8a0a73b888dc0b2e573952095328a8ac7f5f"},{"file":"sc3d\/bossbot_idle.scw","sha":"c371a8a63bbbdc5b5cd8f7de3e1425236e527ca5"},{"file":"sc3d\/bossbot_recoil_1.scw","sha":"a729edf5d6fc38471912f7b9eb90554b2aa3889d"},{"file":"sc3d\/bossbot_recoil_2.scw","sha":"392d9c7fa1db993a19bc91a7623cc72f37332ce0"},{"file":"sc3d\/bossbot_shoot_recoil.scw","sha":"84ade02979016d8390963402813aa11428dd4bd1"},{"file":"sc3d\/bossbot_tex.ktx","sha":"9686f9f9eb5655efee467a5a7a82aed5fce22c21"},{"file":"sc3d\/bossbot_tex.pvr","sha":"4b1a3a0a391ec2adff2e4bc2a8356f54658d6fd2"},{"file":"sc3d\/bossbot_walk.scw","sha":"4f3c7284dcab8fcb839ac5a82ba43bb75f563b8f"},{"file":"sc3d\/bowdude_attack.scw","sha":"006dd5352268dcc3532aca6df32d5335d2331ab1"},{"file":"sc3d\/bowdude_geo.scw","sha":"3cf0d78de40c56b54d173d21d733e5d6a89ed452"},{"file":"sc3d\/bowdude_idle.scw","sha":"21f62044d0ffd0e69e40c857dfd9ed2da3594442"},{"file":"sc3d\/bowdude_lose1.scw","sha":"b82638958daba6dbde4abb4d53edfe602f2d9339"},{"file":"sc3d\/bowdude_loseloop1.scw","sha":"c466495ed6e909ba2b781ee49125e8c7e8d119fb"},{"file":"sc3d\/bowdude_recoil.scw","sha":"0d1ed78901a8039db16a8b3678c8e06197074390"},{"file":"sc3d\/bowdude_ultiattack1.scw","sha":"81fa0fc620c567bf755e3f5748f44f6923755661"},{"file":"sc3d\/bowdude_ultirecoil1.scw","sha":"3875897f7104a5ca662a6ce40a250832e086ed40"},{"file":"sc3d\/bowdude_walk.scw","sha":"0dc92cbdc12ac80e937a3c05e2c27d44ecd7b1b9"},{"file":"sc3d\/bowdude_win1.scw","sha":"fb1712c2a77bba544d33a06f5ca7ecff53ebd95e"},{"file":"sc3d\/bowdude_winloop1.scw","sha":"4327c511a7481b967744cbf7bcb620cf828e4c64"},{"file":"sc3d\/bowman_blue_tex.ktx","sha":"f14b25ab66999c8e0fcf9235030be7555ed097e1"},{"file":"sc3d\/bowman_blue_tex.pvr","sha":"14a53ee4c915550089ea263a1ae1be1d14597ceb"},{"file":"sc3d\/bowman_tex.ktx","sha":"caa2b6680852cd29ee291b6456d9826ff856ec5e"},{"file":"sc3d\/bowman_tex.pvr","sha":"3ac793d069a3c47f43ec871bb7de0959a86d4d1e"},{"file":"sc3d\/brawl_ball.scw","sha":"ac6d112805e3f3fe04440ee9e93a12624f231e9f"},{"file":"sc3d\/brawl_ball_beach.png","sha":"3344100a10f03e03813b49df6d4a03ba6311b6a7"},{"file":"sc3d\/brawl_ball_beach.scw","sha":"9e0bf5fc6a3d04ae1fc4aeb9f19410ee58c9badc"},{"file":"sc3d\/brawl_ball_football.scw","sha":"c58274e4fe29c907a4e821e3a40a5af13812fbac"},{"file":"sc3d\/brawl_ball_football_psg.scw","sha":"8c7f72116d49f6ae186b6ba690af9b9360ce6242"},{"file":"sc3d\/brick1.scw","sha":"ecb601e487b9dfaf4a6a580c2b1c851d47160c87"},{"file":"sc3d\/brick_1.ktx","sha":"8d8b9e5e1335df4ea90dc377498809f65d43d3b3"},{"file":"sc3d\/brick_1.pvr","sha":"5cf5361f6cb0cae5cf0ab40856c32376f48f2950"},{"file":"sc3d\/brock_003_atk_blue.ktx","sha":"6dca1cc0c0a9747800526c9687219bae037c2d43"},{"file":"sc3d\/brock_003_atk_blue.pvr","sha":"198e896fbcd2e9baf42b0793d1c2d926ee6e955f"},{"file":"sc3d\/brock_003_atk_blue.scw","sha":"4baaf3dafeadc1abb8487c84e3b0053bc8125867"},{"file":"sc3d\/brock_003_atk_red.ktx","sha":"147c2a5d2a5b6a89a7a6c6e9957bc591e44f9286"},{"file":"sc3d\/brock_003_atk_red.pvr","sha":"f4f795600be9ada440126bf2ccca8f44dcd38c35"},{"file":"sc3d\/brock_003_atk_red.scw","sha":"edc98dfd03ba97f07b970f9693a94aa79a151324"},{"file":"sc3d\/brock_004_atk_blue.ktx","sha":"bf3c54f54b0327e6612b787594d2e6faf46e3937"},{"file":"sc3d\/brock_004_atk_blue.pvr","sha":"bfdbb7454d9e2521618424403557546517df59be"},{"file":"sc3d\/brock_004_atk_blue.scw","sha":"d50f5b82f508932f03e2faced207f6d0830399b7"},{"file":"sc3d\/brock_004_atk_red.ktx","sha":"525980a336855f17005e978ec8c2e5126f40784f"},{"file":"sc3d\/brock_004_atk_red.pvr","sha":"ca64f2255c86aa3bc138b8a08cfa374b066fbba6"},{"file":"sc3d\/brock_004_atk_red.scw","sha":"b09fd0d32cfdc7add66eaee313b7c9f1bb61f98b"},{"file":"sc3d\/brock_attack1.scw","sha":"834c5e71998db8967fcf807e5fca7ecc2c4af325"},{"file":"sc3d\/brock_base_cam.scw","sha":"bb02180142c33c170e012b7cf3746d407163372c"},{"file":"sc3d\/brock_beach_blue_tex.ktx","sha":"67ff3257f9cb81e0cbcf26edddb55b3fb5f94a6b"},{"file":"sc3d\/brock_beach_blue_tex.pvr","sha":"832622c0e62f605bad8036f2909838e8b64775fd"},{"file":"sc3d\/brock_beach_geo.scw","sha":"98b46575efbb14952901d3e32e203b9a8d38e6aa"},{"file":"sc3d\/brock_beach_tex.ktx","sha":"7addf5dcd679db9ff49c03b93bbace816d7eba99"},{"file":"sc3d\/brock_beach_tex.pvr","sha":"4a0978e921eee2f29fa2b7c035a1b2b33417f38c"},{"file":"sc3d\/brock_blue_tex.ktx","sha":"842e63a510c92f40e2bc3a39dd6b2e93c059ea6e"},{"file":"sc3d\/brock_blue_tex.pvr","sha":"c13af0a943c0b71dc4368906beb46f2ba02d9d4c"},{"file":"sc3d\/brock_boombox_attack.scw","sha":"bfeb48f9f4d59ae8f36e046b7af963281f4d4e94"},{"file":"sc3d\/brock_boombox_blue_tex.ktx","sha":"eeb2e6217bbdb82add945a8c4f62927201a6cb92"},{"file":"sc3d\/brock_boombox_blue_tex.pvr","sha":"990db91511b004c9ad055d2241bd9be8956a6956"},{"file":"sc3d\/brock_boombox_geo.scw","sha":"61ecd8d4dfbecc9435cb93a7a4145a891815c96d"},{"file":"sc3d\/brock_boombox_idle.scw","sha":"c11a3cb80bbf6dbf8f510c1ce753380a8604ca2a"},{"file":"sc3d\/brock_boombox_lose.scw","sha":"c5edaf5ad565e3faa4ce2b65c444dd8a2ae9dfc0"},{"file":"sc3d\/brock_boombox_tex.ktx","sha":"2e233e18ccad92f75d82636835cfb3aad1262948"},{"file":"sc3d\/brock_boombox_tex.pvr","sha":"76e35fbed9b4fb4fa25b9778c4ee9bde3f9ef525"},{"file":"sc3d\/brock_boombox_walk.scw","sha":"fa7cfe0dfb782c6b00182a97fd05796fb1b933d3"},{"file":"sc3d\/brock_boombox_win.scw","sha":"2598846c414ba00f3f909ca83e3ac2f45cc4d8d6"},{"file":"sc3d\/brock_boombox_win_intro.scw","sha":"417694eb17ae4c593a1cdf16f0bfd721999ffb92"},{"file":"sc3d\/brock_cny_geo.scw","sha":"cd663989866d8db68fccd7be7d3949a1caa889d0"},{"file":"sc3d\/brock_cny_tex.ktx","sha":"bd100d52c565791a4a0b7fb668f49f4480577b46"},{"file":"sc3d\/brock_cny_tex.pvr","sha":"a5ea03307336ccef736d35a34c94b654b563ccb0"},{"file":"sc3d\/brock_cny_walk.scw","sha":"891d4b6d8855b97385fd576f94f64c7b72500484"},{"file":"sc3d\/brock_d_01.ktx","sha":"8e76c0af64938e4c6db8273d8bd0e2f332ba458b"},{"file":"sc3d\/brock_d_01.pvr","sha":"3530b59698bd979031f898b114923c6c66c9d982"},{"file":"sc3d\/brock_d_01_blue.ktx","sha":"b26dee37704685777d497565bb1dc4586660023c"},{"file":"sc3d\/brock_d_01_blue.pvr","sha":"2d2947efcd3e4fe797e441ff755a167dbbb54289"},{"file":"sc3d\/brock_geo.scw","sha":"63c55869e4f273e54e44b5ab344764e66aa5b7e4"},{"file":"sc3d\/brock_hotrod_attack.scw","sha":"5908ed3abfa43450e49ca76a8eb68d3e2971b4e2"},{"file":"sc3d\/brock_hotrod_geo.scw","sha":"e713360f018b48d4ea55d1855b23fa87235f3a22"},{"file":"sc3d\/brock_hotrod_idle.scw","sha":"fe988b38edfc39dde85277b0cf07f7b24d26dceb"},{"file":"sc3d\/brock_hotrod_lose.scw","sha":"ff1a9a120517ed5b63b230711087add2a7edfb27"},{"file":"sc3d\/brock_hotrod_run.scw","sha":"38c0a9b76866498e351dc263f6c53ca53c564183"},{"file":"sc3d\/brock_hotrod_tex.ktx","sha":"51478027147d0a19358eeecff53e934438ad12a2"},{"file":"sc3d\/brock_hotrod_tex.pvr","sha":"e9228bcd027477efeff4e2ab5e4ada3a0b18c1ad"},{"file":"sc3d\/brock_hotrod_win.scw","sha":"a0037426ad6716bce6664c8a5958f1c4ca1e74c1"},{"file":"sc3d\/brock_hotrod_winloop.scw","sha":"6d3bc3d3753adfb7a425d8a6367ebb6d10d611e7"},{"file":"sc3d\/brock_idle1.scw","sha":"ffc8accbba1b166680bc90ace7431aaa8686f7d5"},{"file":"sc3d\/brock_lose1.scw","sha":"4f8c9d05ac8797cdc7db43354ba9b2a09444b553"},{"file":"sc3d\/brock_loseloop1.scw","sha":"87f2b1cc5b51444792c14e4dbc0069af7cb996d8"},{"file":"sc3d\/brock_pushback1.scw","sha":"11c9a52ea1863edebd5001201d99a674bac07b8f"},{"file":"sc3d\/brock_recoil1.scw","sha":"12c74dfc614bb96166e6746e030b2480bafb3b13"},{"file":"sc3d\/brock_rocket_blue.png","sha":"7e4813a2549c9197866ceccada38bdf1042cef46"},{"file":"sc3d\/brock_rocket_blue.scw","sha":"ed1748de90e296d7017fec8a38e1c2430eb9e3a0"},{"file":"sc3d\/brock_rocket_red.png","sha":"d4010b0bcc4f1802e9b60855bf91c795e2087c34"},{"file":"sc3d\/brock_rocket_red.scw","sha":"8410660a6025c90fb5cd09c995e6348dcc13b136"},{"file":"sc3d\/brock_tex.ktx","sha":"9c7d27ef238de43cc6b8d060a81fbc457c6fe641"},{"file":"sc3d\/brock_tex.pvr","sha":"eb8a3b65da88ba6a31f3d6065e4d960260a92e4c"},{"file":"sc3d\/brock_ultiattack1.scw","sha":"d178ca701730ace50df7ddccd0d34c3084d2b2d5"},{"file":"sc3d\/brock_ultirecoil1.scw","sha":"6a29d410fc6d7b5648d1514859e7ab16a13ed24b"},{"file":"sc3d\/brock_walk1.scw","sha":"d8ad285539580f375cb7fa8d2415a99cdf4da4f4"},{"file":"sc3d\/brock_win1.scw","sha":"88e45481e4816e7441146f4d2651cb2fc5537a3f"},{"file":"sc3d\/brock_winloop1.scw","sha":"bad0af58bb456ca2ec9819298179ae894caf231c"},{"file":"sc3d\/bull_attack.scw","sha":"29de7e50f1160c7f8f34fbe4a297c6dc01be649d"},{"file":"sc3d\/bull_base_cam.scw","sha":"0f996d4b07c141527ca2a64294f9174c96b60fd5"},{"file":"sc3d\/bull_footbull_geo.scw","sha":"59d758d6a0a5283d98de3a49fb341b657621a8ec"},{"file":"sc3d\/bull_footbull_lose.scw","sha":"de2c8303b2a7fe28994e2c930799c30a176df1ca"},{"file":"sc3d\/bull_footbull_tex.png","sha":"fbd8a1265282fb36fd4a8b72a8a0e6456bbc31b4"},{"file":"sc3d\/bull_footbull_win.scw","sha":"41bc41af390761375bfed3267073395e78528326"},{"file":"sc3d\/bull_geo.scw","sha":"db7f39bf7bce6a9896ec10070824e07a1549e6ed"},{"file":"sc3d\/bull_idle.scw","sha":"6f6a2c779b11f75a1e8f7e731f5704e83c710313"},{"file":"sc3d\/bull_lose.scw","sha":"8a8aa82fe1c4610c574132a26896266e1be5a2c1"},{"file":"sc3d\/bull_rock_pushback.scw","sha":"d2581e96985057e7bb198b232eb03dbb67ec9b35"},{"file":"sc3d\/bull_super.scw","sha":"3c374c04ce3913ef50fd0d5b365a7ab00aba250c"},{"file":"sc3d\/bull_tex.ktx","sha":"b9a40560cc2a9f53803ad353a45d3ddd7275102f"},{"file":"sc3d\/bull_tex.pvr","sha":"68f5448a577a6ab73b64af0d6c7affbce9596495"},{"file":"sc3d\/bull_tex_01.ktx","sha":"d0b92603efd139f42bb98908f00f1de3b30df99d"},{"file":"sc3d\/bull_tex_01.pvr","sha":"c5d7a7e634c2b777df9183f396374206edf7f7cc"},{"file":"sc3d\/bull_viking_attack.scw","sha":"88a8be643d1e221e5d27c2f3f886e932b37e7466"},{"file":"sc3d\/bull_viking_geo.scw","sha":"5199db8d8c06dacad279fd67128edb815d6f2594"},{"file":"sc3d\/bull_viking_idle.scw","sha":"4befc741f006347d43bab0386afc61d62ebaa047"},{"file":"sc3d\/bull_viking_lose.scw","sha":"c26c21a8e45902f3c32e98e6e9efd155ad8b20b6"},{"file":"sc3d\/bull_viking_lose1.scw","sha":"047d720f20558210e1ab46c5ecff8324b21f4a09"},{"file":"sc3d\/bull_viking_pushback.scw","sha":"fb18239d2bf968765dadaf213564597831f5c996"},{"file":"sc3d\/bull_viking_run.scw","sha":"ac74a13c6d77684cd64259a7db5e804b3b4e992a"},{"file":"sc3d\/bull_viking_super.scw","sha":"e4904b310061356191be4034c7230fbfb2e43c36"},{"file":"sc3d\/bull_viking_tex.ktx","sha":"39a5766cbc64c648bb5a2b5ff7cea31ed8488536"},{"file":"sc3d\/bull_viking_tex.pvr","sha":"995513beb12cf8fd2e69f4c4f36196856c3086bb"},{"file":"sc3d\/bull_viking_walk.scw","sha":"94f49f8934c96789e38fbbd8382e020514ca7724"},{"file":"sc3d\/bull_viking_win.scw","sha":"7644e1a1787a5e82cca886bc0cb9a891345b47d8"},{"file":"sc3d\/bull_walk.scw","sha":"02bc14b2119280d3d7b0f2f5cb6ca28de3797d87"},{"file":"sc3d\/bull_win.scw","sha":"e1e56c0df00c26c43eb83b1121aa488658fb793f"},{"file":"sc3d\/bunny_turret_anim_attack.scw","sha":"f65bb0d8202e03955a73151cf34dcfa250aa4073"},{"file":"sc3d\/bunny_turret_anim_idle.scw","sha":"5e83caa42a0f4d563675284b4229704695a1b66b"},{"file":"sc3d\/bunny_turret_anim_idlemenu.scw","sha":"5e30305b3105e91eaa56752383735242448c9313"},{"file":"sc3d\/bunny_turret_anim_spawn.scw","sha":"e277b1146c0144fab9e2be106ede50b9f2ff2c69"},{"file":"sc3d\/bunny_turret_geo.scw","sha":"78d20390952664f5e238ef21d1ff6ad6ab360a7b"},{"file":"sc3d\/cactus_1.ktx","sha":"512c383ce048615f52c531a0c557b1e89efea0bd"},{"file":"sc3d\/cactus_1.pvr","sha":"ccb9922cd1ee47c1b6fd1530da2d475794321245"},{"file":"sc3d\/cactus_attack1.scw","sha":"8384535628fe742a9650badb459b4be5f532c7ec"},{"file":"sc3d\/cactus_d_01.ktx","sha":"16a93b3b5a69e40616f99a8e702fe6be70b94239"},{"file":"sc3d\/cactus_d_01.pvr","sha":"4be5211ea8bffe9e860d155322ab5bb816a922bc"},{"file":"sc3d\/cactus_geo.scw","sha":"9bf38301f9468e6d99bb84633d75bc75aceef32f"},{"file":"sc3d\/cactus_idle1.scw","sha":"7713c89af8282b0ac8456c587614fb0c669627e4"},{"file":"sc3d\/cactus_lose1.scw","sha":"73884e5ddee21d7b8cf583378178b168f97e5e4a"},{"file":"sc3d\/cactus_loseloop1.scw","sha":"dd93c8069c5e4f41ed55334c77de44b5b11f37fc"},{"file":"sc3d\/cactus_recoil1.scw","sha":"af1e88ec1efb7068c43da1898117f8f509abe036"},{"file":"sc3d\/cactus_ultirecoil1.scw","sha":"3833aebc1123372e25e288559658fab4d04ccb73"},{"file":"sc3d\/cactus_walk1.scw","sha":"eb08d047397d0e294342c8225d92835c1bfea079"},{"file":"sc3d\/cactus_win1.scw","sha":"bd7f5b8c31ca71f50779ad2e98593e8e32a73326"},{"file":"sc3d\/cactus_winloop1.scw","sha":"aa8f8c6da7bafc2dce42e8117705791e61ab9a37"},{"file":"sc3d\/candles_1.scw","sha":"8d5a822b607de5cdb9c220f4b39d58a1dc108310"},{"file":"sc3d\/candy_cane_small.scw","sha":"19a538780e295ec154436e57703f5ae6e4880ce7"},{"file":"sc3d\/cannon_balls.scw","sha":"4a537bc24c25cc7d3864b2abd498c9fbf216f756"},{"file":"sc3d\/car_tires.scw","sha":"39b7275b8e0ac302d9ccb46e1e8b8869befb3094"},{"file":"sc3d\/cargo_block_1.scw","sha":"88a167378cb284c6c63d287c99c38f501a5d7079"},{"file":"sc3d\/carl_attack.scw","sha":"1026b03939b4e7e84676345b661f95f4710177f2"},{"file":"sc3d\/carl_base_cam.scw","sha":"c2ce40c449afa93f4a13e74982434dcb1338ca17"},{"file":"sc3d\/carl_geo.scw","sha":"c0ef67cba078776c654c91244bae996cd9eab380"},{"file":"sc3d\/carl_hogrider_attack.scw","sha":"0becad8f9ab73e33f7ef19178fab8415bf43b88e"},{"file":"sc3d\/carl_hogrider_cam.scw","sha":"6df1d4c13867479296b1c1fd9c23a800c9daf7f1"},{"file":"sc3d\/carl_hogrider_geo.scw","sha":"5a886eb799c052ce6599dab6b61ae40e4be264ee"},{"file":"sc3d\/carl_hogrider_idle.scw","sha":"4d1df63a15d26c9dd4d6b937d1ac20e4cfcdd416"},{"file":"sc3d\/carl_hogrider_lose.scw","sha":"6d819daf1e86f6fc716824c4bcd0ecedca8ec6e5"},{"file":"sc3d\/carl_hogrider_loseloop.scw","sha":"5ff347f2cbeb217571a6b5acb4133f5284c9d15b"},{"file":"sc3d\/carl_hogrider_super.scw","sha":"d09829753ee3a5b8414afd644764c7e0626b0a3f"},{"file":"sc3d\/carl_hogrider_tex.ktx","sha":"2956362eece9683000de61ea4b22c01bc32b61cb"},{"file":"sc3d\/carl_hogrider_tex.pvr","sha":"f6db213851ef528a34d2f496d75d0a2024ca40f6"},{"file":"sc3d\/carl_hogrider_walk.scw","sha":"11ad9c330e537be99aa05dd322a9ac0c9faa69a5"},{"file":"sc3d\/carl_hogrider_win.scw","sha":"a43ff5459c69e4e22e5d8bfca4d22b7d95658772"},{"file":"sc3d\/carl_hogrider_winloop.scw","sha":"e7cf6170a8aec8c7c32542f517ca0c6ddcd39f5e"},{"file":"sc3d\/carl_hotrod_attack.scw","sha":"396ba0a2f699591500bb5e495b866b28b265dfef"},{"file":"sc3d\/carl_hotrod_cam.scw","sha":"e1bb49b24583ffbc5c50cfe40d77b3ea673250b2"},{"file":"sc3d\/carl_hotrod_geo.scw","sha":"bd32f158196f41b489519d2429d2e804b607b6ce"},{"file":"sc3d\/carl_hotrod_idle.scw","sha":"69d182d8a9f3fa00981e6740f421980525fa393b"},{"file":"sc3d\/carl_hotrod_lose.scw","sha":"0d621a578e60cc6021aba066f104e10dc0d62608"},{"file":"sc3d\/carl_hotrod_loseloop.scw","sha":"2b00ff623b4b347058bb3a08073b5127a456dbfe"},{"file":"sc3d\/carl_hotrod_super.scw","sha":"beff0c17c1b84929b3c05602b95d9cc8d857421c"},{"file":"sc3d\/carl_hotrod_tex.ktx","sha":"01683578a347e94c12cc3732c90ed3f7b686b84e"},{"file":"sc3d\/carl_hotrod_tex.pvr","sha":"4a2331c9492a14fa4f3ae557fac42969cdd69dbe"},{"file":"sc3d\/carl_hotrod_walk.scw","sha":"632a0ab59421b93a3cfec2efa33f79fc7e0d502e"},{"file":"sc3d\/carl_hotrod_win.scw","sha":"e60a22322d9b29c4071d6c6d546f290fa6b2478d"},{"file":"sc3d\/carl_hotrod_winloop.scw","sha":"0b63241b1c138bad6edaf568df822002edf0f326"},{"file":"sc3d\/carl_idle.scw","sha":"5cd90c892b7007e7bac0655199e5103691b3092f"},{"file":"sc3d\/carl_leonard_cam.scw","sha":"ec0fe0683fefd5ebae409941405b71b0eb53d81c"},{"file":"sc3d\/carl_leonard_geo.scw","sha":"220c2c84a4112a6587a8190ec28ee36dce777087"},{"file":"sc3d\/carl_leonard_tex.ktx","sha":"676c11080e3e2f55f86a1f8e67754ec96b0e20c7"},{"file":"sc3d\/carl_leonard_tex.pvr","sha":"10ff0f1853e0a7856c83ace4753590c351f9562b"},{"file":"sc3d\/carl_lose.scw","sha":"32c99cd5acb01e7ee153960118ebda50a66fccbd"},{"file":"sc3d\/carl_loseloop.scw","sha":"c972eaed67c37bf136dbb43f5851c0327dd09ca9"},{"file":"sc3d\/carl_pirate_attack.scw","sha":"3ec3e30af2aab4551b4dcb3235bc8694c39ad7d0"},{"file":"sc3d\/carl_pirate_geo.scw","sha":"951a9f7d45497013c745b085dc1684dcf31b1861"},{"file":"sc3d\/carl_pirate_idle.scw","sha":"feb5581ffaf40d166c2bf9ca43adb2ba1b60961a"},{"file":"sc3d\/carl_pirate_lose.scw","sha":"7677274899a995b7081bab7b465933d28fce2489"},{"file":"sc3d\/carl_pirate_pushback.scw","sha":"b3f5ba627da3678f824f4a0d87ae99058c6a168d"},{"file":"sc3d\/carl_pirate_reload.scw","sha":"b63fa21b305de509b65f8051541c669e541fee33"},{"file":"sc3d\/carl_pirate_super.scw","sha":"c683e2dd93d3984c4aa5f009b944615a79793191"},{"file":"sc3d\/carl_pirate_tex.ktx","sha":"b325ee435863e87c9b46f6ac698d50ceb5e7298d"},{"file":"sc3d\/carl_pirate_tex.pvr","sha":"c10ef2591865d5ae352b88f39bd19b82cedf236a"},{"file":"sc3d\/carl_pirate_walk.scw","sha":"162ef7296f9ab467bcb5e4f6201db040f70fadc5"},{"file":"sc3d\/carl_pirate_win.scw","sha":"bd3d3a0e0bdcef02247875ccc8a99489fb9355cb"},{"file":"sc3d\/carl_super.scw","sha":"e5fd8e91879e178508439e31f2d1f14bb9dd732b"},{"file":"sc3d\/carl_tex.ktx","sha":"dc092b6cd840d8bcdbff809fa5b7703838d517fd"},{"file":"sc3d\/carl_tex.pvr","sha":"f4bc0695050e55869e0b4518c1492361c85a7d4a"},{"file":"sc3d\/carl_walk.scw","sha":"94caf3a8e14390fa9607c53488a85d2accedfa94"},{"file":"sc3d\/carl_win.scw","sha":"53f8c40af2fbfd8a4db56f21f74699b8e4fd3682"},{"file":"sc3d\/carl_winloop.scw","sha":"1d10660f72a743d77b4fe37b8d95a44671cd599c"},{"file":"sc3d\/character_materials.scw","sha":"badf4925d017692129cd5fcde5efd58e2a38f33c"},{"file":"sc3d\/colt_attack.scw","sha":"39ceed073810744aa0e3b14b32d23fc394e911e2"},{"file":"sc3d\/colt_base_cam.scw","sha":"853ab3a8f6f585f2febca5ef59c1e1198b3c3fce"},{"file":"sc3d\/colt_geo.scw","sha":"6fc7112de29e7eda527f2ad533e70a256c8d8532"},{"file":"sc3d\/colt_hanbok_geo.scw","sha":"070497213b289ec65d082273d29aa029e2089c15"},{"file":"sc3d\/colt_hanbok_tex.ktx","sha":"9016a7ce80a3154fd14b5b637a185b3bf8d93514"},{"file":"sc3d\/colt_hanbok_tex.pvr","sha":"8e609d230e0b4da5e540924b0044218a6ae09fa2"},{"file":"sc3d\/colt_idle.scw","sha":"caebc1113d20cc81092251b09963cf55fd47eb71"},{"file":"sc3d\/colt_loseloop.scw","sha":"178433ade69086636645becff326a32eb9cd922b"},{"file":"sc3d\/colt_outlaw_tex.ktx","sha":"b84f258bf814a9bd7009d55e1c12f64310149c34"},{"file":"sc3d\/colt_outlaw_tex.pvr","sha":"0fb94663343a807a4b3c03fece710167a929deba"},{"file":"sc3d\/colt_pirate_attack.scw","sha":"ca83ae57c1bd77dfe240029a67bc00a87f14326e"},{"file":"sc3d\/colt_pirate_geo.scw","sha":"642798411e6ca238e07587004b03d81886fc6a20"},{"file":"sc3d\/colt_pirate_idle.scw","sha":"a6485fdb1da84e375c0de2f64b49c580d612666d"},{"file":"sc3d\/colt_pirate_lose.scw","sha":"05e2b846b94043b8326b5961d147febc12f5780e"},{"file":"sc3d\/colt_pirate_pushback.scw","sha":"8351c699c228c3fa61208747139b6c73a7e2a2de"},{"file":"sc3d\/colt_pirate_recoil1.scw","sha":"7c8ce5352fd19e222e67aa7e0d1c12c6dcd3a01b"},{"file":"sc3d\/colt_pirate_recoil2.scw","sha":"a90ff2961edbabffceed200d9678549b4a0479bc"},{"file":"sc3d\/colt_pirate_tex.ktx","sha":"1672a462872f1158138f3e61964c69b8cb2e6b15"},{"file":"sc3d\/colt_pirate_tex.pvr","sha":"cb7345a33b004f8cd74aff92720289eeda55124c"},{"file":"sc3d\/colt_pirate_walk.scw","sha":"cdd68b2fcf446c672457f034b98fe0ff35b05fe0"},{"file":"sc3d\/colt_pirate_win.scw","sha":"e4effa282b39a4ecf43a84fd5687526ec10642cc"},{"file":"sc3d\/colt_pushback.scw","sha":"90930d973f4596884a3dba10a45202e15ad91683"},{"file":"sc3d\/colt_recoil1.scw","sha":"d10d7c71d1cd079df9931c887b27ee7bbe7f5ff0"},{"file":"sc3d\/colt_recoil2.scw","sha":"33e977319ba0dbe4d3e02a1f0b0ce08e27c182f9"},{"file":"sc3d\/colt_rockstar_geo.scw","sha":"af4fcc393b56e2e1bd3d04a9b0c7c41b5e353607"},{"file":"sc3d\/colt_rockstar_tex.ktx","sha":"8d7eebccc77581ce3ce5ac2442dc685dada4c3e7"},{"file":"sc3d\/colt_rockstar_tex.pvr","sha":"62b531b4defd5756fe5be03029558ac95fba94b7"},{"file":"sc3d\/colt_tex.ktx","sha":"e0314427c9021cb7db2b564b69c03eb2ddbfd6f4"},{"file":"sc3d\/colt_tex.pvr","sha":"0e923d632c9b369bf6d32f9968ee85d15b1104e0"},{"file":"sc3d\/colt_walk.scw","sha":"1d0934a72dc2f1a00dc86b59119ce88c3fea51e5"},{"file":"sc3d\/colt_win.scw","sha":"3e954c96d8e7c5bfadbbf74dfb04f2c3a384089d"},{"file":"sc3d\/concrete_block.scw","sha":"041310f4c2c5cfbf2388ee0b68f2a251296cfb2f"},{"file":"sc3d\/construction_sign.scw","sha":"022fbfd024397ea02dce789cad6d8f147ab524b9"},{"file":"sc3d\/crate1.scw","sha":"b7f1707f9c763381b71043573c4deec2b4d92456"},{"file":"sc3d\/crate2.scw","sha":"24c6eb9ca10cbcb173db05420e81adb07e865bd6"},{"file":"sc3d\/crate_1.ktx","sha":"669d154d0eb5a834de8f107f3e1eb9498a157668"},{"file":"sc3d\/crate_1.pvr","sha":"7aa0ba4cf2f8940cbe157db1759a4fca1bfa37f4"},{"file":"sc3d\/crate_2.ktx","sha":"65805c0508875205d8a21dbba4eeaaaced673360"},{"file":"sc3d\/crate_2.pvr","sha":"fd1fa93df3308b12d6bfc8d45149e04130ed6720"},{"file":"sc3d\/crate_mortuary.scw","sha":"fb54dc7cc77fc8d826a2ec075b4f86cdf328aa14"},{"file":"sc3d\/crate_powerup.ktx","sha":"c3eb62926255e1f94d8f62a28aa26b87a4350ac6"},{"file":"sc3d\/crate_powerup.pvr","sha":"557be2ce492fe39cb85f7576089eb3cbed1c253b"},{"file":"sc3d\/crate_powerup.scw","sha":"dda202230cb6f9e549e172e4af6f94c4602ef3ca"},{"file":"sc3d\/crate_powerup_moon_festival.ktx","sha":"176e4235ab2f52dc6207ec9d31587a90bb851802"},{"file":"sc3d\/crate_powerup_moon_festival.pvr","sha":"3d1966f3e157b1d17ef8acd376156d9ceab2af6b"},{"file":"sc3d\/crate_powerup_moon_festival.scw","sha":"104272bb54d621ee854f4a8d8515b168414bae30"},{"file":"sc3d\/crate_powerup_night.scw","sha":"16f0afc151179235ac0e7a1031b4b9101bf6d7aa"},{"file":"sc3d\/crate_tnt.scw","sha":"0d5d6f740064e44644d9621d201de6cf2dff2806"},{"file":"sc3d\/crate_xmas.ktx","sha":"610f0f5d5651f0e0ae121ddce639d5385fd9c29d"},{"file":"sc3d\/crate_xmas.pvr","sha":"9f4c61aab589accd6d47f430253c74da2f492934"},{"file":"sc3d\/crate_xmas.scw","sha":"bd8921c93b37c915d7d17fdeeb2cb419a7745104"},{"file":"sc3d\/crow_attack1.scw","sha":"a421f294d4e60cc16583beec3ba1f55cde8e70ae"},{"file":"sc3d\/crow_attack2.scw","sha":"a5e2c610fae9b470fc15f8b28a2d41106a6f5d2d"},{"file":"sc3d\/crow_base_cam.scw","sha":"29eaca7696c8e5eb5ddbe220f8cd712860e65dfe"},{"file":"sc3d\/crow_d_01.ktx","sha":"2daaf3c9d6eb4ea018f27478571c16861bc0499d"},{"file":"sc3d\/crow_d_01.pvr","sha":"e7b36291f8227c0a61957e19f0b30d06a9798936"},{"file":"sc3d\/crow_geo.scw","sha":"9a8d61622d97f6656ebfca1200fe72c82c7f9169"},{"file":"sc3d\/crow_idle1.scw","sha":"2107e57833105640292150dbc1562ce22b46da37"},{"file":"sc3d\/crow_lose1.scw","sha":"a8fe727fe3f378fcb6c14fc55107cfef9d836f99"},{"file":"sc3d\/crow_loseloop1.scw","sha":"5d590be6ee60d323f1937e5e1963b80a1c6a13a4"},{"file":"sc3d\/crow_mecha_attack.scw","sha":"8f5370f1cc8e0012ffaa73ea71f1fc3de52624bb"},{"file":"sc3d\/crow_mecha_cam.scw","sha":"9521c4e6bd035e3b42a984ee9a2de6f215bc8424"},{"file":"sc3d\/crow_mecha_geo.scw","sha":"383e515739ddb52dd9b41c5b8714b2ffd4c4e371"},{"file":"sc3d\/crow_mecha_idle.scw","sha":"6e405797664d6662b19ca0f3a0056266583c8f03"},{"file":"sc3d\/crow_mecha_lose.scw","sha":"be540e6ce0b73a99d0f662e8289846a38609a71b"},{"file":"sc3d\/crow_mecha_pushback.scw","sha":"edb6d6dc4dab5d4f30c2f19ae24bab2bdd7a7fa3"},{"file":"sc3d\/crow_mecha_run.scw","sha":"96b11e60301898bed22b22f90f19b8cf619ba68f"},{"file":"sc3d\/crow_mecha_tex.png","sha":"ffb5b6d5b60c3ecd9d4bf39b02d9183caed8c68a"},{"file":"sc3d\/crow_mecha_ult.scw","sha":"6bf5f438760b80eafe25617b075783e87f40e29a"},{"file":"sc3d\/crow_mecha_win.scw","sha":"0d2c4598e07145f9ceaf066ef5f5be0e71b04832"},{"file":"sc3d\/crow_mechagold_tex.png","sha":"dbe50001ede10e76da16c0510a14049e554c0638"},{"file":"sc3d\/crow_pheonix_attack.scw","sha":"f5b1014a23f38c6345bb183b4004e4188e7e04b5"},{"file":"sc3d\/crow_pheonix_cam.scw","sha":"4b1ab8d2c46b98213ec455c6a0dfc702c9e2e397"},{"file":"sc3d\/crow_pheonix_geo.scw","sha":"c6795504024220ed44cdb24433780101ed5e71d2"},{"file":"sc3d\/crow_pheonix_idle.scw","sha":"3e7d38f31c0d13aa4bfe62fe43efd4fdf1130dff"},{"file":"sc3d\/crow_pheonix_lose.scw","sha":"4f0805b411ac1c72592f3ea6106b5efdc1ef927d"},{"file":"sc3d\/crow_pheonix_tex.ktx","sha":"5ecbd55be9b09d9e96c3d8bfe03b4be33e8b5565"},{"file":"sc3d\/crow_pheonix_tex.pvr","sha":"55c603a4b30e1a3313f865848dfcec8f7fe58cc6"},{"file":"sc3d\/crow_pheonix_ulti.scw","sha":"41b6e6a503d30b1d35723bed1c3634ab007cdee8"},{"file":"sc3d\/crow_pheonix_walk.scw","sha":"c1b447bde4809853bb108f366c0cb78f6e55c90e"},{"file":"sc3d\/crow_pheonix_win.scw","sha":"43e3c5e90e1b6438df3e8e876b8449befce8e588"},{"file":"sc3d\/crow_recoil1.scw","sha":"16c947bb6b9383014c1dd0c2336ead3f55833788"},{"file":"sc3d\/crow_walk1.scw","sha":"335e0319a734cd20304e4a73a6f9c71698b79cd6"},{"file":"sc3d\/crow_win1.scw","sha":"17ebd841952825a6ff53d130aa9b1114c054595c"},{"file":"sc3d\/crow_winloop1.scw","sha":"c2501741389fbf4949d2f980ce36afe724a4b80d"},{"file":"sc3d\/crowwhite_d_01.ktx","sha":"b4b5ba75d034c612481b67b3483e35a7658f52ca"},{"file":"sc3d\/crowwhite_d_01.pvr","sha":"75129ba47f2fbf938376659ce1c0cee06fdc1847"},{"file":"sc3d\/crystal1.scw","sha":"3426bafccf185db67ceb293594fb71b1b9b67c9b"},{"file":"sc3d\/crystal1_xmas.scw","sha":"ea1344b46e4379665a3d8ffb1399775df6984840"},{"file":"sc3d\/crystal_1.ktx","sha":"ecbe1c9252dd4855294583aa231d800c4545f82a"},{"file":"sc3d\/crystal_1.pvr","sha":"b07d5b20a74697fd5c4e599ca8fb1f7bb7aef302"},{"file":"sc3d\/darryl_anim_idle.scw","sha":"68b477f734a75a3e2e92b935f225050af1af3fd3"},{"file":"sc3d\/darryl_attack.scw","sha":"1c5af41c2076d1a793d1ab85d0b078db72c6f194"},{"file":"sc3d\/darryl_base_cam.scw","sha":"6fa73749c659ed41abb77af3fa12dd09014caada"},{"file":"sc3d\/darryl_cny_attack.scw","sha":"b8ff4d642f61222b56b13b0bcbbab90a123110f2"},{"file":"sc3d\/darryl_cny_geo.scw","sha":"02dcc8f20c73f83e8869b2a61f6a8e41bd5b94e0"},{"file":"sc3d\/darryl_cny_idle.scw","sha":"9dff13551b155f489b942a7dee97363d7cb0687a"},{"file":"sc3d\/darryl_cny_lose.scw","sha":"ebb39d7555e1e23986cba5a191d05c931fb6e8ba"},{"file":"sc3d\/darryl_cny_pushback.scw","sha":"bae108cded4f0b95ebc926c26a84b0539f31aa2c"},{"file":"sc3d\/darryl_cny_recoil1.scw","sha":"c5816613dbb4cc7514ba10ef3051f681f885a809"},{"file":"sc3d\/darryl_cny_recoil2.scw","sha":"7ecef6ebe4339544e179d1c446b33b30d8dd238f"},{"file":"sc3d\/darryl_cny_super.scw","sha":"db71964d15e663496eed55a167d76b5621fe50ef"},{"file":"sc3d\/darryl_cny_tex.ktx","sha":"18071c7398e5eb16b7d17fc3b0746cf8b2f71c27"},{"file":"sc3d\/darryl_cny_tex.pvr","sha":"e1083907ae4d47d132373e4478b84d8cb1491794"},{"file":"sc3d\/darryl_cny_walk.scw","sha":"6342d96073d69bd8038385ef87f1a08ba0ba4253"},{"file":"sc3d\/darryl_cny_win.scw","sha":"8fc29a12a73cbd5ebabe1e1a6354e349eecde9d0"},{"file":"sc3d\/darryl_cny_winloop.scw","sha":"de5b3c47bf8125eb241d94ada91b919efeaae10c"},{"file":"sc3d\/darryl_fb_attack.scw","sha":"50aee4c116f839147d0251c759c6ffec7f539269"},{"file":"sc3d\/darryl_fb_geo.scw","sha":"0b435d3b79a0745702100053988e33cadd382576"},{"file":"sc3d\/darryl_fb_idle.scw","sha":"db63966488a0f134ff3d7b6ede4098213b60653a"},{"file":"sc3d\/darryl_fb_lose.scw","sha":"25beaaa5e6d49199c889cae95bde7d42e3a9bdfc"},{"file":"sc3d\/darryl_fb_recoil_01.scw","sha":"083b6fac70cb29e1aa241f900b2034b9a742935d"},{"file":"sc3d\/darryl_fb_recoil_02.scw","sha":"0c12be993443b34227f60eb911e5875cb574fafb"},{"file":"sc3d\/darryl_fb_super.scw","sha":"2c9b18f07c99e3564a9447382f0cb9ce57414732"},{"file":"sc3d\/darryl_fb_tex.ktx","sha":"43b388d2e05e0171f45e13a423d804e1cd90489b"},{"file":"sc3d\/darryl_fb_tex.pvr","sha":"6f1884c950c8cce50c1758a9cb034f83a40f28c9"},{"file":"sc3d\/darryl_fb_walk.scw","sha":"18a0958d06202f07e62910d65c4c38dfa743f322"},{"file":"sc3d\/darryl_fb_win.scw","sha":"4ab46d9be2906cf4dba0688a7bd830c38fc6f2c4"},{"file":"sc3d\/darryl_geo.scw","sha":"7bb6fbfa2da31411816a5c3847a4f39ed37aadd4"},{"file":"sc3d\/darryl_idle.scw","sha":"64d28119346a0e160a5650abbcbb54e875204adc"},{"file":"sc3d\/darryl_lose.scw","sha":"d520ccb4c0231d016e14a1c09ee08be8e84f786c"},{"file":"sc3d\/darryl_pushback.scw","sha":"2bb5551a4e4c5dfe42f063c2fd427839ed5319e3"},{"file":"sc3d\/darryl_recoil_01.scw","sha":"3e1ded924158388714c9762dc1e235f3bbcbbb23"},{"file":"sc3d\/darryl_recoil_02.scw","sha":"69bbb53f74c187d1b306c9fbec983c1e564ea76b"},{"file":"sc3d\/darryl_ship_loop.scw","sha":"67545c780596530de37aaa15198d43e670b1301d"},{"file":"sc3d\/darryl_super.scw","sha":"2560182644830b99ce0b1ec1f6734ecd5f964053"},{"file":"sc3d\/darryl_tex.ktx","sha":"bce96dbd6ac98755af2eaa36ede03882f7ca36de"},{"file":"sc3d\/darryl_tex.pvr","sha":"bab0ea6f3d446aeae514af9246f9d57abfb7ab27"},{"file":"sc3d\/darryl_walk.scw","sha":"fd367f3bae14a38c46f824dd9c1219a175430951"},{"file":"sc3d\/darryl_win.scw","sha":"d003ffc8f39c3e24fc3495ea0d299e23fa9c381a"},{"file":"sc3d\/darryl_winloop.scw","sha":"fa5c79de842394ced5886596114346f9c141112e"},{"file":"sc3d\/diffuse_lightmap.png","sha":"f7e90742f72b37453ae7b5ba8f62000ba8c9102d"},{"file":"sc3d\/diffuse_lightmap_night.png","sha":"86269386c66a76a09dfb9d9c450e8a9c0fa5c1cd"},{"file":"sc3d\/dogturret.ktx","sha":"ec270d1ab7b0c021220a7d61c48a4c32cc935561"},{"file":"sc3d\/dogturret.pvr","sha":"7cbbc383fe7545237ec74c894e98f10e7fa9b33d"},{"file":"sc3d\/dynamike_003_atk_projectile_blue.ktx","sha":"795e7ec3e5c36ecfd85583edc9ed5fad957ec20c"},{"file":"sc3d\/dynamike_003_atk_projectile_blue.pvr","sha":"c55bcbedd6d87b9bfde016c98b708d95a6e63d92"},{"file":"sc3d\/dynamike_003_atk_projectile_blue.scw","sha":"bc34f99a90994577da85b2ee261883f556e47388"},{"file":"sc3d\/dynamike_003_atk_projectile_red.ktx","sha":"6812ac14cd0fff19ba7a3f7ba440bfa5429e702a"},{"file":"sc3d\/dynamike_003_atk_projectile_red.pvr","sha":"ec517b115db5b1763d7dae5edeab2d5663776f79"},{"file":"sc3d\/dynamike_003_atk_projectile_red.scw","sha":"7201d05fc556f36194a7ed16e08a28332074864e"},{"file":"sc3d\/dynamike_003_ulti_projectile_blue.ktx","sha":"105a46d47959bb495a2e3566a3e3ab30c218095a"},{"file":"sc3d\/dynamike_003_ulti_projectile_blue.pvr","sha":"cb7d6975ae20a766e4477a187d40ea99d0386020"},{"file":"sc3d\/dynamike_003_ulti_projectile_blue.scw","sha":"4758297dec74630d7119c88e4fcd59b811202a27"},{"file":"sc3d\/dynamike_003_ulti_projectile_red.ktx","sha":"2d10dce57baf592ad85e66b43537990b280a4b1b"},{"file":"sc3d\/dynamike_003_ulti_projectile_red.pvr","sha":"8d1f42b56a6c6d06328b8339430776d0d57fd8d2"},{"file":"sc3d\/dynamike_003_ulti_projectile_red.scw","sha":"851ade4ff46f2baab8fef59a6f21a301b9cb0c74"},{"file":"sc3d\/dynamike_attack.scw","sha":"a57f5b6f7b6e9edac0de67d0931bed12b53d2f1b"},{"file":"sc3d\/dynamike_base_cam.scw","sha":"62ef3e1a11b4268d14ac6d2bdf54cbf36906aa4a"},{"file":"sc3d\/dynamike_blue_tex.ktx","sha":"c988e3757f03c1e66a8938c0764654a26b323d8d"},{"file":"sc3d\/dynamike_blue_tex.pvr","sha":"8a5566756ee932ee18ce5860637d958ab8f41f52"},{"file":"sc3d\/dynamike_chef_blue_tex.ktx","sha":"c88b7c3194b1cf37e4ecbeeb53e0fa368481bbe5"},{"file":"sc3d\/dynamike_chef_blue_tex.pvr","sha":"8ddd5d95c57e114a3aabfd32697d79eeb0ee3ba1"},{"file":"sc3d\/dynamike_chef_geo.scw","sha":"c6a4936be652b24efbd5d4c9f8b81eefc81ab7d6"},{"file":"sc3d\/dynamike_chef_tex.ktx","sha":"f20d12a5698a93eb6946effcb5fbf778a53b0667"},{"file":"sc3d\/dynamike_chef_tex.pvr","sha":"3c52a37046b138a2a06e6bc5f7c17788747aeabe"},{"file":"sc3d\/dynamike_coach_attack.scw","sha":"b0432786e3e18d6ce41501d6a09ad099de6d3a2b"},{"file":"sc3d\/dynamike_coach_geo.scw","sha":"053e37bf82cfc28a03cca8088bd2a965b66c439a"},{"file":"sc3d\/dynamike_coach_idle.scw","sha":"20f10ad0afb08457b786347abaf25d093fe72756"},{"file":"sc3d\/dynamike_coach_lose.scw","sha":"6be0c4085db9da026f7aaaf7b2c8270ae24f6dad"},{"file":"sc3d\/dynamike_coach_pushback.scw","sha":"f5f6406e6802f61db101af7bbec2618f73af8660"},{"file":"sc3d\/dynamike_coach_super.scw","sha":"12f4f83a46660da0e4256cf9d5facdf42027c09b"},{"file":"sc3d\/dynamike_coach_tex.ktx","sha":"048f486e93f5d511853226f3e730612ae9560ea4"},{"file":"sc3d\/dynamike_coach_tex.pvr","sha":"8c297ed3df4bfb58cb10998cff02e188c17c9955"},{"file":"sc3d\/dynamike_coach_walk.scw","sha":"1ba493da37b8de05a0114a064afbdfd17fcadfcc"},{"file":"sc3d\/dynamike_coach_win.scw","sha":"6b776c4fc8619dfecd190d5420643acda20647f3"},{"file":"sc3d\/dynamike_geo.scw","sha":"bc46d1a3fcbca76da297ca54c08fe1bfaba4c03d"},{"file":"sc3d\/dynamike_idle.scw","sha":"fa733987c47a9b1a40cf4c45221ec7c71383ed43"},{"file":"sc3d\/dynamike_lose.scw","sha":"291705fa1299e488560477d8733584d3cfcee876"},{"file":"sc3d\/dynamike_mecha_attack.scw","sha":"0575c00776b341879771a2747e908e4a7584abeb"},{"file":"sc3d\/dynamike_mecha_geo.scw","sha":"de3b227a5db491ecad82141d25be6ea40b016b1f"},{"file":"sc3d\/dynamike_mecha_idle.scw","sha":"ad2c979446e4820bb531f3a27bdf575b8583d799"},{"file":"sc3d\/dynamike_mecha_lose.scw","sha":"64f6cc75faed9a79143885afe14526bc1d119bfa"},{"file":"sc3d\/dynamike_mecha_tex.ktx","sha":"227c724bc8e6b0d5a1c94f68c70c4d9818d50fab"},{"file":"sc3d\/dynamike_mecha_tex.pvr","sha":"554364fd66e0a0cf48c2a9f27969656d4a9ca414"},{"file":"sc3d\/dynamike_mecha_ult.scw","sha":"74e4c218399eaf94102cb119e3652a7aa8d9b0f3"},{"file":"sc3d\/dynamike_mecha_walk.scw","sha":"b03bf1dabdcce30d5046cab68ea1983f0bb4eef5"},{"file":"sc3d\/dynamike_mecha_win.scw","sha":"749f6c340f8d55d31cdb02159ccfa54969192acb"},{"file":"sc3d\/dynamike_pushback.scw","sha":"7b11c4fe08291e1ad8ec818131bb06ffd1eb9762"},{"file":"sc3d\/dynamike_santa_blue_tex.ktx","sha":"7e9dce6d94805b8f3fe5398e15a18ce09a244567"},{"file":"sc3d\/dynamike_santa_blue_tex.pvr","sha":"03ef672e8c138d05b945ed098b62c3fb8dec2bd7"},{"file":"sc3d\/dynamike_santa_geo.scw","sha":"2886aab7a9145a4873513a9e3c5fdd264ff6fdd0"},{"file":"sc3d\/dynamike_santa_rope_geo.scw","sha":"6cd87b2ff87140b02904a4303e58ddccf37bcb03"},{"file":"sc3d\/dynamike_santa_rope_loop.scw","sha":"3440cafb9cc40c3576bcce0b4f9f680855d6236e"},{"file":"sc3d\/dynamike_santa_tex.ktx","sha":"7e9dce6d94805b8f3fe5398e15a18ce09a244567"},{"file":"sc3d\/dynamike_santa_tex.pvr","sha":"03ef672e8c138d05b945ed098b62c3fb8dec2bd7"},{"file":"sc3d\/dynamike_super.scw","sha":"ac2357ccf60b432de1ab582645e744d73c152e2a"},{"file":"sc3d\/dynamike_tex.ktx","sha":"d75aeddecc83d3c71f0a5b253241f2591cae5489"},{"file":"sc3d\/dynamike_tex.pvr","sha":"923b278a06c9a1becdfe62520da361ce837812fc"},{"file":"sc3d\/dynamike_walk.scw","sha":"3f3c77826faaaad2a50ec4b2850f469e70c9e2ec"},{"file":"sc3d\/dynamike_win.scw","sha":"39c9e53aa453dc87a9aed3f908cd6b044c50e660"},{"file":"sc3d\/emz_attack.scw","sha":"b6c7fff423dd23d2d97f6a49b832153c5a6c44cb"},{"file":"sc3d\/emz_base_cam.scw","sha":"3ffed6122bd2e63d6129ae09c21b27ede1529b17"},{"file":"sc3d\/emz_college_geo.scw","sha":"9f64106dab40871ac823d4d30874c616ebae1bbd"},{"file":"sc3d\/emz_college_tex.ktx","sha":"28980759960eed83b5cd13341540728b7d9da755"},{"file":"sc3d\/emz_college_tex.pvr","sha":"d353b3c889c3a822b445dd79ee6b8c2227dfe4e8"},{"file":"sc3d\/emz_geo.scw","sha":"52ba7da0ce1959fa4483f27603d40750d7eb676e"},{"file":"sc3d\/emz_idle.scw","sha":"9e1b7553acbbacbb8c651b466fa78aa00dbb65be"},{"file":"sc3d\/emz_lose.scw","sha":"32255bf86d2c72fdd6c7eded25eada4300fd60c2"},{"file":"sc3d\/emz_pushback.scw","sha":"e20b978da5a87f75ae2e7bd300de2b901f0a7721"},{"file":"sc3d\/emz_reload.scw","sha":"600be9bfb641698f3ec1786e89d533ee708ecdcd"},{"file":"sc3d\/emz_tex.ktx","sha":"5653329a6a8005a0884e88df9127c363e69e6d23"},{"file":"sc3d\/emz_tex.pvr","sha":"a23ea70864543ed39c3fd623aa3df3f959ede7dd"},{"file":"sc3d\/emz_walk.scw","sha":"6254f0d78180f603fd44a5442164596e2a6fbf1d"},{"file":"sc3d\/emz_win.scw","sha":"9284a898929842ee24e107586fe82380883e491a"},{"file":"sc3d\/fastmeleebot_geo.scw","sha":"aeb4a581c057a80babaa411cfa4cfcc7c32ca306"},{"file":"sc3d\/fastmeleebot_idle.scw","sha":"8c9bd29493f4a5fbc6a92f5ddda9d268de9f7ec5"},{"file":"sc3d\/fastmeleebot_recoil.scw","sha":"7b25a6670cdb844296ffed57c52eee0fbde4e7a5"},{"file":"sc3d\/fastmeleebot_tex.ktx","sha":"d4b8b70f1dd0ab7e04cae83a4f2d9f364e6fb5f9"},{"file":"sc3d\/fastmeleebot_tex.pvr","sha":"ee7d71f141139850da9c896ec812e10b1c7b10ea"},{"file":"sc3d\/fastmeleebot_walk.scw","sha":"aab5120927d6c9236754d2dae2a1c89b2b2a0da6"},{"file":"sc3d\/fence_arcade.scw","sha":"3337e86f1a36318b9812fbb5acf31e848a0a80da"},{"file":"sc3d\/flame_1.ktx","sha":"1e9972da27c435b6d8b608397adde814a8f6f8dc"},{"file":"sc3d\/flame_1.pvr","sha":"2c4b444e1ddb610e3821bf6571884437724d65e5"},{"file":"sc3d\/frank_attack.scw","sha":"c905574b08e6efe5e651116111b91ffec4559568"},{"file":"sc3d\/frank_base_cam.scw","sha":"8e28dcf4a6d589af37ba6964d940791c40708c7e"},{"file":"sc3d\/frank_caveman_01.ktx","sha":"c02b75870edc0ae3be56f66b967b756ccd525833"},{"file":"sc3d\/frank_caveman_01.pvr","sha":"821f65a4c782b6b94913ef77c49e91b5ed784324"},{"file":"sc3d\/frank_caveman_geo.scw","sha":"4a5bd296256a0dca2ca7d1ac628ba2c0688b7781"},{"file":"sc3d\/frank_dj_geo.scw","sha":"afb88cdbc18a9da6e7ef709759a1c12811fa9572"},{"file":"sc3d\/frank_dj_tex.ktx","sha":"b1f674bbdce8384344174bb6003246ee1755c89a"},{"file":"sc3d\/frank_dj_tex.pvr","sha":"bf63d4cf39ad890e7df8fb9d76a13c0900597134"},{"file":"sc3d\/frank_geo.scw","sha":"335c35bd48c333523947e190665b973938cfd201"},{"file":"sc3d\/frank_idle.scw","sha":"88b9de6312b5ab1f69506aa63033199de3cc4d79"},{"file":"sc3d\/frank_lose.scw","sha":"d468bb203f3d7071302f0a7de4973be6dc59c870"},{"file":"sc3d\/frank_mortuary_env_loop.scw","sha":"c87706136e2cc9d2e180854cadd189ed5fb60dfa"},{"file":"sc3d\/frank_pushback.scw","sha":"9a39791d70fce48de1532d904cd9b8558476af03"},{"file":"sc3d\/frank_tex.ktx","sha":"60afa1e486e49784501b4cda1f16e72f1f4d4b31"},{"file":"sc3d\/frank_tex.pvr","sha":"1ea1ba69b3d8acc9a5eb548a3e1dbcd1ecaeabcd"},{"file":"sc3d\/frank_ulti.scw","sha":"22b5b921d0299def254f988c2a22ccbadaa29cde"},{"file":"sc3d\/frank_walk.scw","sha":"909a817024aeb0df6ba5b883b44ac7f7d1bfdba9"},{"file":"sc3d\/frank_win.scw","sha":"5a1fa2daa6649fb83c6d2a76f534f1c14fbdd4b3"},{"file":"sc3d\/gene_anim_attack.scw","sha":"c84d65260ebbd796f847b2134b9926dcf03fff3f"},{"file":"sc3d\/gene_anim_idle.scw","sha":"35c88066f552a2bd0d0aac306a15820bb50a47a9"},{"file":"sc3d\/gene_anim_lose.scw","sha":"31ea37c0c566e6df629295c121666fdb534d3d1b"},{"file":"sc3d\/gene_anim_loseloop.scw","sha":"394a7775ff1a4b93b0f4a0fd626e4289566e13d4"},{"file":"sc3d\/gene_anim_reload.scw","sha":"4059dd77507e49bf80ccb03d346322969b802961"},{"file":"sc3d\/gene_anim_super.scw","sha":"d1883d7495b690c30f6dd18fe858798c69f7fa22"},{"file":"sc3d\/gene_anim_super2.scw","sha":"979e509c434d999a912157cfe1b13c55a649de34"},{"file":"sc3d\/gene_anim_walk.scw","sha":"c1ddf4169ecfd7b87a6fcabfc8264afa10c6c7f5"},{"file":"sc3d\/gene_anim_win.scw","sha":"f3ae36798db05375afe3b5a851f5c64c4914a4fd"},{"file":"sc3d\/gene_base_cam.scw","sha":"048c935a6adad8d14446b94f01e1ba5846f1a9f9"},{"file":"sc3d\/gene_geo.scw","sha":"04013ec26421176fe04f0f2554ab393c54546f65"},{"file":"sc3d\/gene_pirate_anim_attack.scw","sha":"29e60518a9ada2cfe7cd14dbd0d4188beeb063ca"},{"file":"sc3d\/gene_pirate_anim_idle.scw","sha":"10fb119cd1001119f051f42a15be175e824507ff"},{"file":"sc3d\/gene_pirate_anim_lose.scw","sha":"ba1f4386af5322c364e93c20a3a9945aa6f3beae"},{"file":"sc3d\/gene_pirate_anim_reload.scw","sha":"391f23d3573dab69cab5a3f5fa54d8d62357339a"},{"file":"sc3d\/gene_pirate_anim_super.scw","sha":"eb929a9df777ba13b0fea3e23e70734e940318db"},{"file":"sc3d\/gene_pirate_anim_walk.scw","sha":"9dc6b8e6e109b7ac6a1197863c026503207ff201"},{"file":"sc3d\/gene_pirate_anim_win.scw","sha":"dc3bc70b683149d1898a22040e1ace5a7ab04fb2"},{"file":"sc3d\/gene_pirate_geo.scw","sha":"76e7c3f2eaf44902143fe6da2efc0e23b714981a"},{"file":"sc3d\/gene_pirate_tex.ktx","sha":"5064564b4c03d17e83c7f63855a78a05f272b2c7"},{"file":"sc3d\/gene_pirate_tex.pvr","sha":"530dc5bfedb0c3fa8fa340875326a6b174c8a214"},{"file":"sc3d\/gene_projectile_closed_blue.scw","sha":"d3ea5a1f84e4d9e925d6090f980b0ab53c1d60f0"},{"file":"sc3d\/gene_projectile_closed_red.scw","sha":"235a9018dc997f53689c0d55448983214552232a"},{"file":"sc3d\/gene_projectile_open_blue.scw","sha":"868565826ba45be1ea894be9539acf9d5b61b295"},{"file":"sc3d\/gene_projectile_open_red.scw","sha":"79eaabc3f4faece6693b5e8d9e8e0c124b7dbba3"},{"file":"sc3d\/gene_projectile_tex_alpha.ktx","sha":"eea8a9572c0f3416c2ff33c9f9ee0bc18b4177bf"},{"file":"sc3d\/gene_projectile_tex_alpha.pvr","sha":"5ddd89fb495f4befee7b6ffd2c3002c873b53a62"},{"file":"sc3d\/gene_projectile_tex_blue.ktx","sha":"ff78db3c17155599ae0f342f4d4922a2840fd534"},{"file":"sc3d\/gene_projectile_tex_blue.pvr","sha":"62a4ed593befed8d416c8d877cdcabfe11ac5cd2"},{"file":"sc3d\/gene_projectile_tex_red.ktx","sha":"a600271d59345528c494d52535356ff9c0f85868"},{"file":"sc3d\/gene_projectile_tex_red.pvr","sha":"d8bbb521d4aa95798d08aeea6bf30745fbe3abf8"},{"file":"sc3d\/gene_tex.ktx","sha":"5ee6e3793dbc20d0896047c58a5e88e7eac6e47b"},{"file":"sc3d\/gene_tex.pvr","sha":"9e2e7b5bc04e0240b3c6c6dfdb8093bd727e601d"},{"file":"sc3d\/generic_tilable_1.ktx","sha":"da93465cbbb2ab2daf533e73dca97c895860fa08"},{"file":"sc3d\/generic_tilable_1.pvr","sha":"aae1cdfc8e7497d569472cc1a7c275c7b465b923"},{"file":"sc3d\/generic_wood.ktx","sha":"ff64cbf0618dace10a299b5b3a51452569a4df52"},{"file":"sc3d\/generic_wood.pvr","sha":"fef3408dffb626ffc5f7447cf6aead167fc90ffa"},{"file":"sc3d\/grass1.scw","sha":"d988bebb17cf019362de7ee409855e47aa80c4b4"},{"file":"sc3d\/grass2.scw","sha":"9825b71ba7e2e97ac7647fdd3f546f19c1eefdea"},{"file":"sc3d\/grass3.scw","sha":"de2c4f7b28810f4be89fdfea9bbabb98c2282282"},{"file":"sc3d\/grass4.scw","sha":"4fbc6e9185804e757228bfc1fa3680e8ca56456f"},{"file":"sc3d\/grass5.scw","sha":"a9af8a18cb8a6bcdab8263eadf88930e11ed5676"},{"file":"sc3d\/grass6.scw","sha":"9cf8210276b09aad6af6d6cc910ff4ee185f14bd"},{"file":"sc3d\/grass7.scw","sha":"4498801834d0bf80a86b9cf219d92827b1ec2daf"},{"file":"sc3d\/grass_1.ktx","sha":"88544580cac7afaf2819af1d05c351a5d57e3bbc"},{"file":"sc3d\/grass_1.pvr","sha":"1d664711afd077f610ec91980776cf077c44b42e"},{"file":"sc3d\/grass_2.ktx","sha":"6bd56e25539fca8c01fa0a41dd18a26349ab7461"},{"file":"sc3d\/grass_2.pvr","sha":"586451504dd6fff89460921de2f3d19b19baf35a"},{"file":"sc3d\/grass_3.ktx","sha":"52c894b9fcbcd5e4adbb9dad4a97f394854d13e2"},{"file":"sc3d\/grass_3.pvr","sha":"7ae812cec10e6182045a7a24dd63f7b554d4e82f"},{"file":"sc3d\/grass_4.ktx","sha":"f9abff73e708399889b05d7ca31310d28ee3a129"},{"file":"sc3d\/grass_4.pvr","sha":"16f2c369a93eeab16632d09a32fe84eb6d36b959"},{"file":"sc3d\/grass_5.ktx","sha":"cff410af90613fc63429dc2acb116cde417def6c"},{"file":"sc3d\/grass_5.pvr","sha":"30a59cb69924594697a7876cab2ca0ae12f92766"},{"file":"sc3d\/grass_6.ktx","sha":"6581186b05ffa757c89ef3a08aec61b85e8b1113"},{"file":"sc3d\/grass_6.pvr","sha":"8763990204fac14b9f6a2b643acf7640ca5dd81f"},{"file":"sc3d\/grass_7.ktx","sha":"0bd77b12c3f2401f658f2a6256b70061ada705e9"},{"file":"sc3d\/grass_7.pvr","sha":"a99238448585e0190107b50bc524eb66d1344351"},{"file":"sc3d\/grass_seaweed.ktx","sha":"4a3bd47c3c9021abfceec29e6e8da1b7d8aaa40d"},{"file":"sc3d\/grass_seaweed.pvr","sha":"86f9f1cac308af78e06d51217855a99aefc2ea9f"},{"file":"sc3d\/grass_seaweed.scw","sha":"c0694917ca78478286b0dbcaf9ce807a2287c40e"},{"file":"sc3d\/grass_town.ktx","sha":"6bd56e25539fca8c01fa0a41dd18a26349ab7461"},{"file":"sc3d\/grass_town.pvr","sha":"586451504dd6fff89460921de2f3d19b19baf35a"},{"file":"sc3d\/grass_town.scw","sha":"c1fe16026a75f7d2c82f7d226b619b2afaeda6aa"},{"file":"sc3d\/hair_diffuse_lightmap.png","sha":"cbb89a2dc5def2a9309c7ebe3a197675a809ce73"},{"file":"sc3d\/hair_specular_lightmap.png","sha":"9d095cb3b4fe42a82c85a40512f42c41b45fd647"},{"file":"sc3d\/healstation_geo.scw","sha":"ce548a7dfb3323a7b0d1862b77009f183f2feb7a"},{"file":"sc3d\/healstion_red_tex.ktx","sha":"8345059242c060011934e1bc124cb427056dba82"},{"file":"sc3d\/healstion_red_tex.pvr","sha":"010c6566a9627b17a10260446850845ea0abbca6"},{"file":"sc3d\/healstion_tex.ktx","sha":"a5e741cc7ccb263c13f15e5c3fb75f97f43d0e92"},{"file":"sc3d\/healstion_tex.pvr","sha":"7fbb1ae473538b522eaab2a6ba73e31e33378087"},{"file":"sc3d\/heist_safe.ktx","sha":"22a79d1242c17a02e6f7619283cd299999bc12be"},{"file":"sc3d\/heist_safe.pvr","sha":"04946f3f28a7241192d6a418e58a7db9215f886b"},{"file":"sc3d\/heist_safe.scw","sha":"019f118319dd7a2c297785455e4905ce9d540fa7"},{"file":"sc3d\/ice_cube1.scw","sha":"f6dd542a9f20c1e33192c3e1ba0a2191066aff12"},{"file":"sc3d\/ice_cube_1.ktx","sha":"c2019ac7bbc40f958b9432163d41ebb51501f43c"},{"file":"sc3d\/ice_cube_1.pvr","sha":"9c7c5d4e2f3e76d57613e044acd8d7d82d539502"},{"file":"sc3d\/indestructible_metal_1.ktx","sha":"06f657d9a634fec1d160e8ed486d4ed32d6f6264"},{"file":"sc3d\/indestructible_metal_1.pvr","sha":"7ca3994fb1d81b47f1bfe2fb4bfaf29284600ee1"},{"file":"sc3d\/indestructible_metal_1.scw","sha":"fe2df649521590483f6ff866480b2523169eb609"},{"file":"sc3d\/item_bolt.ktx","sha":"0a8501c744b396d14119e2b33f34975603ccffed"},{"file":"sc3d\/item_bolt.pvr","sha":"3dc60c03b6c8ea4eb470ce2f4e0fda2d7cf00fcf"},{"file":"sc3d\/item_bolt.scw","sha":"0e2dfcf5f4578aa374e078494ea090cce78ca597"},{"file":"sc3d\/item_bolt_crate.ktx","sha":"797106548474c18b20518b98b672490c2d6b69f7"},{"file":"sc3d\/item_bolt_crate.pvr","sha":"2ea9e788c037876c33722b0c4bf0a3cebb6647df"},{"file":"sc3d\/item_bolt_crate.scw","sha":"534f70ce13a5af1b3cf815044875ec24dfad8bc9"},{"file":"sc3d\/item_gem.scw","sha":"ca5e763d87d142db04c0de5aeb7476da937ac06f"},{"file":"sc3d\/item_power_up_bottle.ktx","sha":"c3bfdd0595728586603aa0ac1a4ac971975949c8"},{"file":"sc3d\/item_power_up_bottle.pvr","sha":"93283132c6c33552de504287da25c41a8659141a"},{"file":"sc3d\/item_power_up_bottle.scw","sha":"fdd5d4da05ab2e812b0bc9c8bcaae8be15b0f73d"},{"file":"sc3d\/item_present_blue.ktx","sha":"2becf61a18db014bfecd9c2569d50ed9d3fcf1d5"},{"file":"sc3d\/item_present_blue.pvr","sha":"f91ccc1ad1d0162373b3d6ea204bcf23395617db"},{"file":"sc3d\/item_present_red.ktx","sha":"a3d9deb23ef487158ef8f55a58a99ce0633b28a1"},{"file":"sc3d\/item_present_red.pvr","sha":"1b2b2394859563302b3ca10684c3d4c875bdcd02"},{"file":"sc3d\/item_present_red.scw","sha":"14f02b51844022e9504a4fdc68663315c75ffc14"},{"file":"sc3d\/item_showdown_boost.ktx","sha":"1affcf81c1239fac560a6638132cfe177222408e"},{"file":"sc3d\/item_showdown_boost.pvr","sha":"5f5d7328fe3e7415caf3f39606e3c750ea9de45c"},{"file":"sc3d\/item_showdown_boost.scw","sha":"a5a3fbf081e4fc1b663c24a15164b45ef6cb6019"},{"file":"sc3d\/item_showdown_boost_moon_festival.ktx","sha":"19d497e0cbf7d50cfc88847171ee06b8c8f4a8ac"},{"file":"sc3d\/item_showdown_boost_moon_festival.pvr","sha":"9451900d88c79a35d5e0e5fa698e6803d10822a3"},{"file":"sc3d\/item_showdown_boost_moon_festival.scw","sha":"22a79324b9af8ddb67f57992c91b7991454b1fa8"},{"file":"sc3d\/jacky_attack.scw","sha":"d7dc8a8ed400ef90f712c2d6c938d19e5722ac46"},{"file":"sc3d\/jacky_geo.scw","sha":"72c6eaa7be8b858fc7a3ad0db353e6568d8af79d"},{"file":"sc3d\/jacky_idle.scw","sha":"0171c818cca20058ee3d663871c6786284816ded"},{"file":"sc3d\/jacky_lose.scw","sha":"df270e9cd49baf398b4396afe49b70d2e2baecea"},{"file":"sc3d\/jacky_portrait.scw","sha":"4fa12fd2523f24a113d42754a96350950c32c10c"},{"file":"sc3d\/jacky_super.scw","sha":"77d2d1f828d919a9d666987578eff36f83ea86dc"},{"file":"sc3d\/jacky_tex.ktx","sha":"3c8b03c249595a5cba2ad5e626824b8b18b7a110"},{"file":"sc3d\/jacky_tex.pvr","sha":"8cf4ddc763ea7b94e383518061af2a0d540383e0"},{"file":"sc3d\/jacky_walk.scw","sha":"d14d9d7c8a8fe329f4a86650a35fef40369e029d"},{"file":"sc3d\/jacky_win.scw","sha":"6566834260b9ae700c9777111dfa754698df9cb1"},{"file":"sc3d\/jessie_attack.scw","sha":"8f852a5b6f9605c5f826e371467281f119fa21d3"},{"file":"sc3d\/jessie_base_cam.scw","sha":"4a41c75b541704143a5cdd263c8332a55961e612"},{"file":"sc3d\/jessie_geo.scw","sha":"9cca8300347868e32eab6187c802a6b108010464"},{"file":"sc3d\/jessie_idle.scw","sha":"883ea06faac2d40b5399b17ef76cbefd1b7f8383"},{"file":"sc3d\/jessie_knight_attack.scw","sha":"5484be38320063f8161eb1f315dd09fe0e1db0de"},{"file":"sc3d\/jessie_knight_battlewin.scw","sha":"49576e8e8daf46a0286e78b41871119ef041f025"},{"file":"sc3d\/jessie_knight_geo.scw","sha":"33aeeaeee51abcac4fc23c7d24ff94ecac4b8cc2"},{"file":"sc3d\/jessie_knight_idle.scw","sha":"bc19975549816d94f21f75eeab86f1f68bf304b4"},{"file":"sc3d\/jessie_knight_lose.scw","sha":"e47eb54857207354112d62bc5e880f711fb6c030"},{"file":"sc3d\/jessie_knight_pushback.scw","sha":"fbb17f9fc22e700e5521acb01c90714f42e6b1e7"},{"file":"sc3d\/jessie_knight_tex.ktx","sha":"668e855f87d9fb9cec4b6ddb2292d201208fe535"},{"file":"sc3d\/jessie_knight_tex.pvr","sha":"30d1a85a22d1a6e1c5740fa76d62b1978a8b7857"},{"file":"sc3d\/jessie_knight_walk.scw","sha":"edddea394f1cdbd022f790f6540f8cb63809695f"},{"file":"sc3d\/jessie_knight_win.scw","sha":"c5bbcebbb9c41066e2501eff5faa48e43f1f520e"},{"file":"sc3d\/jessie_knightdark_battlewin.scw","sha":"240a488657b88812aed326db2d0ea7e535aefc2e"},{"file":"sc3d\/jessie_knightdark_idle.scw","sha":"127b45bf364e8a0d3ea2016b47466329ad0d028c"},{"file":"sc3d\/jessie_knightdark_win.scw","sha":"903f7a8d2020ba79ca63b80aa84ae6f4df78fb04"},{"file":"sc3d\/jessie_lose.scw","sha":"a1e5fd131d4e3e1ab35ae65ea5467043e2108490"},{"file":"sc3d\/jessie_portrait.scw","sha":"2b9e7ed90af622d8763910e66dc268df5cec4873"},{"file":"sc3d\/jessie_pushback.scw","sha":"a5d7302e57ccc2f48b7f3fadf542f93c5ecb225f"},{"file":"sc3d\/jessie_summertime_geo.scw","sha":"9cb4982c77fa4ddc02b9880d1d62ccc25e5f18dc"},{"file":"sc3d\/jessie_summertime_tex.ktx","sha":"f6fa7ad7db6bd9eb0e43aee44168ff36cf1b5f22"},{"file":"sc3d\/jessie_summertime_tex.pvr","sha":"fba850b87bbd93b52962a1907a2c106166716f19"},{"file":"sc3d\/jessie_summertime_walk.scw","sha":"f292df5cc54d41f1d32052dfe4aff8ea811b3247"},{"file":"sc3d\/jessie_tanuki_attack.scw","sha":"efdf731a7ea9f5c9a50e15cc0729a2cbe4ab2d55"},{"file":"sc3d\/jessie_tanuki_geo.scw","sha":"88d83289f18495ddca86bf2292d697b4016d36cd"},{"file":"sc3d\/jessie_tanuki_idle.scw","sha":"f666721970ca343b6042fdb2f0f20925d1c25827"},{"file":"sc3d\/jessie_tanuki_lose.scw","sha":"6edb14c99f0d140eca93bda4bb094b6bf8385bda"},{"file":"sc3d\/jessie_tanuki_tex.ktx","sha":"991f6d9b2a24edac3df1d86d4a55619c2f8db7bd"},{"file":"sc3d\/jessie_tanuki_tex.pvr","sha":"d4daa997f51a875dd727c884f382f7e0ec377bb5"},{"file":"sc3d\/jessie_tanuki_walk.scw","sha":"05d361b85f0200608f510855a10d15af9fcbc04d"},{"file":"sc3d\/jessie_tanuki_win.scw","sha":"677b62950f29d7a94bb847371b0a1bdeea986ff0"},{"file":"sc3d\/jessie_tex.ktx","sha":"bef3c424a15f616afaac72fe0e9049389c8c2a66"},{"file":"sc3d\/jessie_tex.pvr","sha":"92c9b7f0868ed554af00c318a4cac9f4536dc116"},{"file":"sc3d\/jessie_walk.scw","sha":"cd1ad62b4c584f2e4e2fc6a6caf9121b6ca7a89a"},{"file":"sc3d\/jessie_win.scw","sha":"25c87c2b614b5807bd986ec0af970661913df900"},{"file":"sc3d\/leon_attack.scw","sha":"6e031e203fda80ad7a534b340924c221f07239d2"},{"file":"sc3d\/leon_base_cam.scw","sha":"d655fd10164e1f1f06924afc5681109c8a5269f4"},{"file":"sc3d\/leon_geo.scw","sha":"1105bdef0643baeea2906f947d203900cafb8171"},{"file":"sc3d\/leon_idle.scw","sha":"ed39232524084922420c5bdec2bd9268afda7ed6"},{"file":"sc3d\/leon_lose.scw","sha":"fa8935960d6b8e0eea91b0a7ab681f78d46fb5d8"},{"file":"sc3d\/leon_pushback.scw","sha":"636f2ff9ce098ec94fb4313f65b23bef9c722869"},{"file":"sc3d\/leon_sally_geo.scw","sha":"55bebdee9b2ed5d9fcd740d00a40f259e65b9b0f"},{"file":"sc3d\/leon_sally_tex.ktx","sha":"f16057bcd7770cffc804de139163833257103e5e"},{"file":"sc3d\/leon_sally_tex.pvr","sha":"8aea1b036353c2d4edbbaee403093e21ad9c515c"},{"file":"sc3d\/leon_sally_win.scw","sha":"e1731e0af62cc3e9452a0718814b4725d2b5ff52"},{"file":"sc3d\/leon_tex.ktx","sha":"2cc67701e8d1271575c58a6e0b4c7446e9f2f722"},{"file":"sc3d\/leon_tex.pvr","sha":"5f50e5a7ccc73ee576e0a19d7c5a53fcfcf53553"},{"file":"sc3d\/leon_walk.scw","sha":"f893503af4d7a9d0024ecc17d8ce28a7b37c4798"},{"file":"sc3d\/leon_win.scw","sha":"c96b9a2bb9e334756592000e3a2b73750e6c7461"},{"file":"sc3d\/leon_wolf_attack.scw","sha":"cf84d2132f9be1c6ac925f58587e051f047ea380"},{"file":"sc3d\/leon_wolf_geo.scw","sha":"44f93a36664134bd51b0a4db9222429e8a2d4ec2"},{"file":"sc3d\/leon_wolf_idle.scw","sha":"13f44fbf6ccd8012ca08301bc6a9c32ed74ba327"},{"file":"sc3d\/leon_wolf_lose.scw","sha":"426bc571d376732dbc4eb8e9f314dbf1654cb0c3"},{"file":"sc3d\/leon_wolf_portrait.scw","sha":"3ee519171983f4b561928c39f0d0c7e526e71af3"},{"file":"sc3d\/leon_wolf_pushback.scw","sha":"c41c395c67fce7a89aa38ad9d15f6385fa34ca2c"},{"file":"sc3d\/leon_wolf_tex.ktx","sha":"6e1a32411201e79638b2c5ab5266e0460411cb52"},{"file":"sc3d\/leon_wolf_tex.pvr","sha":"d56af2b2d03c4454e12b5900af68d4163a466476"},{"file":"sc3d\/leon_wolf_walk.scw","sha":"ccd2732b795369bcf75a71a9cf85ad7162d3f9a7"},{"file":"sc3d\/leon_wolf_win.scw","sha":"a58eef316984413bed46b5bb312699b4d63c025d"},{"file":"sc3d\/light_gradient_1.ktx","sha":"602544d30d04500096c5d0f1b2c56c409fccdc26"},{"file":"sc3d\/light_gradient_1.pvr","sha":"a29d153a720311b9b84a45ea94472033152436bd"},{"file":"sc3d\/mari_attack.scw","sha":"ef440b397c4fec4e4f1f2a123fbd7a1b0342bf1c"},{"file":"sc3d\/mari_geo.scw","sha":"4d463653b34383f158ba292001b9a9d73507e436"},{"file":"sc3d\/mari_idle.scw","sha":"2bfc5eaba96bb1063f470438c0212665dae0f47e"},{"file":"sc3d\/mari_lose.scw","sha":"f8ad5a1cf2dff42b448510400f14fa8c3f7ddcd2"},{"file":"sc3d\/mari_pushback.scw","sha":"915d237ef04bae991c7ba9735ada03654187b700"},{"file":"sc3d\/mari_tex.ktx","sha":"46cc9b502c35ae51b05b9eb6426b4f10d633eba1"},{"file":"sc3d\/mari_tex.pvr","sha":"20704e1d9d91d13c4c9bed4c307ba0459b2b16ff"},{"file":"sc3d\/mari_ult.scw","sha":"0cf4287f3504bcd97387368c0915b547e52127f1"},{"file":"sc3d\/mari_walk.scw","sha":"773d5b2f59b556f994000157d349605e3da88b83"},{"file":"sc3d\/mari_win.scw","sha":"da9723094ecb6009a47b8c862fe1e19bf3c9b1cb"},{"file":"sc3d\/mariachi_attack.scw","sha":"360a87a652073179df62eb6b301d680d5fb22ddd"},{"file":"sc3d\/mariachi_geo.scw","sha":"2556f2b87e0c38fb6883703e21417f491c848a17"},{"file":"sc3d\/mariachi_idle.scw","sha":"c38b8b4f021239c7705532aba36b7c49cbd14b2b"},{"file":"sc3d\/mariachi_lose1.scw","sha":"4bc7beabf2b2a66c47bcb0eda7cd4077ae68abf5"},{"file":"sc3d\/mariachi_loseloop1.scw","sha":"f7c300f1e04b978fb2f8555cea44e5c35e477b3a"},{"file":"sc3d\/mariachi_recoil.scw","sha":"4d6b182257798c17800b15db62efa126bc30a33d"},{"file":"sc3d\/mariachi_reload.scw","sha":"538b433605ed52a966d4def73143dedb5da88a20"},{"file":"sc3d\/mariachi_tex.ktx","sha":"ff00a921ad176a4986cec85e94f10885a64a1752"},{"file":"sc3d\/mariachi_tex.pvr","sha":"b6fb5d5cb68f4d2142b3497327208dc8003d48d4"},{"file":"sc3d\/mariachi_walk.scw","sha":"95c09487f655278231d31869fcc8db694621b185"},{"file":"sc3d\/mariachi_win1.scw","sha":"5691039152bcb7a680022872cdc79a4e6c4ac783"},{"file":"sc3d\/mariachi_winloop1.scw","sha":"945a1e0acda1bab5246e85d5169df2032b82695a"},{"file":"sc3d\/masks\/8bit\/8bit_light_msk.png","sha":"f6d3726d025317f19d4fea01dcfd9f8bf5fd6d1a"},{"file":"sc3d\/masks\/8bit\/8bit_msk.png","sha":"4f0d1dfcef699a841060653c2dfe48654173ec16"},{"file":"sc3d\/masks\/barley\/coat_msk.png","sha":"4b94a675c2be7d14117414ff4407c881da9d6622"},{"file":"sc3d\/masks\/bo\/bo_mecha_ammo_msk.png","sha":"ade295bb43f5c647654bf876108616041a635e2d"},{"file":"sc3d\/masks\/bo\/bo_mecha_colour01_msk.png","sha":"26ead54e7e0c0a116d4640bf5931a06ba28a6426"},{"file":"sc3d\/masks\/bo\/bo_mecha_colour02_msk.png","sha":"a460a7c9c2a9239314c040841e5a91fc6cc1a5cc"},{"file":"sc3d\/masks\/bo\/bo_mecha_eyesvisor_msk.png","sha":"e6e106add5b0d29c538c9dbd19fd5a83082152e5"},{"file":"sc3d\/masks\/bo\/bo_mecha_seams_msk.png","sha":"0f6119566d608f93f2daef941009f377ffe157ce"},{"file":"sc3d\/masks\/bull\/bull_footbull_colour01_msk.png","sha":"56cc3d86a2fc4bba62b18d2a86aeb63961092593"},{"file":"sc3d\/masks\/bull\/bull_footbull_helmet_msk.png","sha":"3a06d13a25d3a113dcf32bd23739416faf8a7317"},{"file":"sc3d\/masks\/bull\/bull_footbull_metal_msk.png","sha":"956b1f1db1119963210663b12feaa9dc72610078"},{"file":"sc3d\/masks\/crow\/crow_mecha_colour01_msk.png","sha":"4ee849e7565c8af455788f3f36f4d09d3203bab9"},{"file":"sc3d\/masks\/crow\/crow_mecha_colour02_msk.png","sha":"3437734700cd38a53a92742783d69280c4b27e7a"},{"file":"sc3d\/masks\/crow\/crow_mecha_colour03_msk.png","sha":"86850fa2eaa00681364efbe713e0c9d64c7826be"},{"file":"sc3d\/masks\/darryl\/darryl_msk.png","sha":"0670de72742896b4fa9b55c6caf66b25a163c26f"},{"file":"sc3d\/masks\/dynamike\/dynamike_mecha_ammo_msk.png","sha":"c92d04de336ff577c096724f2651ae8540c3e4e3"},{"file":"sc3d\/masks\/frank\/frank_dj_coat_msk.png","sha":"26df9bc99c9827739b162653e263ce53199adc51"},{"file":"sc3d\/masks\/jessie\/jessie_knight_fabric_msk.png","sha":"05ddb1f953631b648ff24bfeee4be1baa19b8ed4"},{"file":"sc3d\/masks\/jessie\/jessie_knight_gold_msk.png","sha":"c423f19dae74be449573ea3ae22259ee168c7347"},{"file":"sc3d\/masks\/jessie\/jessie_knight_metal_msk.png","sha":"c82d97c963bea4e4f8ab152bd9c6e792017e1e62"},{"file":"sc3d\/masks\/jessie\/jessie_knight_plume_msk.png","sha":"9256da7fe5f42acb21cee87a21ab54a0a805e4e0"},{"file":"sc3d\/masks\/jessie\/jessie_turrret_dragon_belly_msk.png","sha":"06481d71646fe760fe70f249858da3fd56c43ef4"},{"file":"sc3d\/masks\/jessie\/jessie_turrret_dragon_main_msk.png","sha":"509bdc92dd7d5505e307252f426a2cbee00df1cd"},{"file":"sc3d\/masks\/sprout\/sprout_glass_msk.png","sha":"55597a390eb3a2cfacd6f00c0245d4cdd292e051"},{"file":"sc3d\/max_attack.scw","sha":"b4ecb5d735347bb310d2f390974b62ab4190ae0b"},{"file":"sc3d\/max_geo.scw","sha":"ddcfc1f65b10a26837b50aee52120db795d8c5c1"},{"file":"sc3d\/max_gt_tex.ktx","sha":"f4dfd3199267fc1bce4259c529b689b074408c29"},{"file":"sc3d\/max_gt_tex.pvr","sha":"46781a6b1f74dcbb33bc6c690f3ee152a4765bfd"},{"file":"sc3d\/max_idle.scw","sha":"0471dfdf96aa733b7f859c28eb03352595518a30"},{"file":"sc3d\/max_lose.scw","sha":"83130ec2938c8ab5c92de2f5b453e29779e228f9"},{"file":"sc3d\/max_portrait.scw","sha":"3ddfb5745d45feffb0b5abe50dd92ca62bc29767"},{"file":"sc3d\/max_pushback.scw","sha":"cf6bf4f60e1d37dbb669737933df6374b651999f"},{"file":"sc3d\/max_reload.scw","sha":"7deb29a02e5cc4734454c41cc5a7a7dcd89003a4"},{"file":"sc3d\/max_super.scw","sha":"5748b7abf1eca3ffc06fc3c3baaccad6e0050808"},{"file":"sc3d\/max_tex.ktx","sha":"9f7388d9e8d2c7f6b78d29ff55ede5efc824748d"},{"file":"sc3d\/max_tex.pvr","sha":"a6bd34ba60dd7ca19fe1b8c0151ece03b41f4e7b"},{"file":"sc3d\/max_walk.scw","sha":"edd8c8f40296fa07aa764353b17c076aab5f978c"},{"file":"sc3d\/max_win.scw","sha":"35dd966de5a5e0812bf5c3a17e1772e570cc4f5f"},{"file":"sc3d\/meleebot_geo.scw","sha":"4d81a226390d594c21516eda427f820ee5ebdd24"},{"file":"sc3d\/meleebot_idle.scw","sha":"d1269c954c717165eff21efb3376357cc238bd41"},{"file":"sc3d\/meleebot_tex.ktx","sha":"3f6cbb75e425daa91947c8a7d293e7905676bed1"},{"file":"sc3d\/meleebot_tex.pvr","sha":"ae15a57a43445c1e5537e67f00f9799b7b738367"},{"file":"sc3d\/meleebot_walk.scw","sha":"3de7bfd829850520dfd9bd1f149cb1d91d47c811"},{"file":"sc3d\/menu_diffuse_lightmap.png","sha":"b24c733a99ca2993394b5802dcf79470e367e71d"},{"file":"sc3d\/menu_hair_diffuse_lightmap.png","sha":"5d1a4910aba8882b5fad1967d3eb16fedaadb3e5"},{"file":"sc3d\/menu_hair_specular_lightmap.png","sha":"7e40b0b1fc2085be1d5af924752e731c93bce44d"},{"file":"sc3d\/menu_metal_diffuse_lightmap.png","sha":"52857165ae137a2ff6e6a7cd486e412996c0da2d"},{"file":"sc3d\/menu_metal_specular_lightmap.png","sha":"5c1bda3d2862339bd38e5c3c61d1b7c8f3a145bb"},{"file":"sc3d\/menu_specular_lightmap.png","sha":"f5e7a12b8a827f98bad80af072948820b47f7770"},{"file":"sc3d\/metal2_specular_lightmap.png","sha":"df82a9bd8291300abb233fd6c2d7fe31dd166c9a"},{"file":"sc3d\/metal_diffuse_lightmap.png","sha":"06a27bf1531309e58a6648bba4c033e6da468bb2"},{"file":"sc3d\/metal_diffuse_lightmap_night.png","sha":"efaa328fb9e290e619dca329c6f867f91bf7cea8"},{"file":"sc3d\/metal_specular_lightmap.png","sha":"a095801e8a417b1aa36b159a99ac26744c1a1269"},{"file":"sc3d\/metal_specular_lightmap_night.png","sha":"3a48652eafd64afc6777a95ef96354be4d86692e"},{"file":"sc3d\/mine_cart.scw","sha":"756cf60a3c652259e4433259eac5d97b546dae15"},{"file":"sc3d\/mine_cart_b.scw","sha":"e8fdcd09401a9da6412ada83222be735c67a07cf"},{"file":"sc3d\/mine_cart_c.scw","sha":"c28fa219ba7740b75a4f5fbe68084ba91636bfe7"},{"file":"sc3d\/mine_cart_d.scw","sha":"c28fa219ba7740b75a4f5fbe68084ba91636bfe7"},{"file":"sc3d\/mine_cart_e.scw","sha":"a9b4f1d960f1ddeae8ba6799664f3ab0807c0b54"},{"file":"sc3d\/mine_gem_spawn.ktx","sha":"eb886162fbeda6a919f6d9dd40b1f57620e784e5"},{"file":"sc3d\/mine_gem_spawn.pvr","sha":"14c81ec865148c9a62efc7c449c2bb7a1e0abc09"},{"file":"sc3d\/mine_gem_spawn.scw","sha":"a138d1649643b5b81212efcafbddf8ea99425b66"},{"file":"sc3d\/mine_gem_spawn_darryls_ship.scw","sha":"f343e3fbbdb7d3f01b9a88552ec6fb0c6bea85bc"},{"file":"sc3d\/mine_gem_spawn_glow.ktx","sha":"dda27345166f2a95d69b83c71e44d16df1831179"},{"file":"sc3d\/mine_gem_spawn_glow.pvr","sha":"308905a00280e99367c3c333fc99cd1e43bd8f20"},{"file":"sc3d\/mine_gem_spawn_glow_snowy.ktx","sha":"3eded88e5268f01b63b5b636651f0bccc435ba13"},{"file":"sc3d\/mine_gem_spawn_glow_snowy.pvr","sha":"d09ef9f36f88b0e1bc4a7d48b13e24f10e4f185c"},{"file":"sc3d\/mine_gem_spawn_ice.scw","sha":"c42764e8399b348018b534f0800fdfc522770cd1"},{"file":"sc3d\/mine_gem_spawn_mortuary.scw","sha":"737c9b8ce9c3293bb09b41137059d196535ee278"},{"file":"sc3d\/mine_gem_spawn_retropolis.scw","sha":"d22463714a9d101e794ad0ea22707010c44ded0b"},{"file":"sc3d\/mine_gem_spawn_town.scw","sha":"def739dc2ab46c1af585ef5db62b164413c973bd"},{"file":"sc3d\/minigunner_geo.scw","sha":"7d5ee554d0fd48db61297f5fde95367bb60c8454"},{"file":"sc3d\/minigunner_idle.scw","sha":"49f29bc15ca81b4748d20fe2a6507631ee4d816a"},{"file":"sc3d\/minigunner_lose1.scw","sha":"86df8c31d7172a06b9eede96fb898e3ffe93b832"},{"file":"sc3d\/minigunner_ulti1.scw","sha":"17ceb48d14dd38f82ec006eb404c0d30bca9894e"},{"file":"sc3d\/minigunner_walk.scw","sha":"faec2d1912cf64b7408f6786cdf1a312b685247a"},{"file":"sc3d\/minigunner_win1.scw","sha":"22109e518b144317ff0774463f011f3b7d66394b"},{"file":"sc3d\/mist_1.ktx","sha":"1f6e3a439531511108b8d68b7a3adccbf5d4b6c3"},{"file":"sc3d\/mist_1.pvr","sha":"f5ad17e8694fa252d628b04192250c2d7eb7dc3e"},{"file":"sc3d\/mist_1.scw","sha":"9bce70a1c20a5496ee9f09c6b090adfa68aa6883"},{"file":"sc3d\/mortis_attack.scw","sha":"73b1b3a14380e407c02d0fc2ec942190c6520670"},{"file":"sc3d\/mortis_base_cam.scw","sha":"5cdd0bb21b15b1ce1bb342d936c96294f6c43f3f"},{"file":"sc3d\/mortis_geo.scw","sha":"8261455b616b35ee18d3b62b576b1b7c332cc871"},{"file":"sc3d\/mortis_greaser_geo.scw","sha":"e72667f36733f0bc0fa62f1db97a6ba7db704662"},{"file":"sc3d\/mortis_greaser_idle.scw","sha":"02ab7391aa973b03703a827d399e4b7f43b65a92"},{"file":"sc3d\/mortis_greaser_lose.scw","sha":"f4c26c5a92d4ddeab24da198cee4aa2e41beaea2"},{"file":"sc3d\/mortis_greaser_tex_02.ktx","sha":"c4ef02ed7c6b263ec55b521958b6f975666bdd75"},{"file":"sc3d\/mortis_greaser_tex_02.pvr","sha":"d35025a4aa095dd557677f9c32150e0a0eb0d42a"},{"file":"sc3d\/mortis_greaser_win.scw","sha":"2cd855be5b744cf986567ab8cc6439756a869c22"},{"file":"sc3d\/mortis_idle.scw","sha":"41e327793b804242f42b1c85f4ff30d7aa7ef778"},{"file":"sc3d\/mortis_lose.scw","sha":"903da08e837025d6e97a09dd15a6606e2f92ecb1"},{"file":"sc3d\/mortis_nightwitch_geo.scw","sha":"54e6d6e2e12d3daeff538197b17ac43cc7f9c49e"},{"file":"sc3d\/mortis_nightwitch_tex.ktx","sha":"7e5cb8541403a8b8db6b153493d190b35483e014"},{"file":"sc3d\/mortis_nightwitch_tex.pvr","sha":"221dae56b123fe2028bdc63ab98a9d629a054d11"},{"file":"sc3d\/mortis_nightwitch_win.scw","sha":"0f3d24656513c0503c2061e065a50bc9e56e1323"},{"file":"sc3d\/mortis_pushback.scw","sha":"6ebb2aba5fceaf350bcf1c7fd693506f2b631096"},{"file":"sc3d\/mortis_ulti.scw","sha":"ad2b167c830c5d1d5e8d8b4dca820542229b3ac6"},{"file":"sc3d\/mortis_v2_tex.ktx","sha":"529d105660b9acac363e853ae404f66ff82a147e"},{"file":"sc3d\/mortis_v2_tex.pvr","sha":"898c5380541956635a8f310bde4e19d5602299a6"},{"file":"sc3d\/mortis_walk.scw","sha":"ca9719ce096f73d30d5d4b4eff848f92cfe7f2f7"},{"file":"sc3d\/mortis_win.scw","sha":"df014d2abb085f0477e2d142bf1547b04f7e57c2"},{"file":"sc3d\/mortuary_fence.scw","sha":"64ead70c9e619720320043c9095b5a598fa5cedc"},{"file":"sc3d\/mortuary_tree_stump.scw","sha":"054ab0ced2ace8b3d24cb6d4513fb883fa4b5b5f"},{"file":"sc3d\/mrp_agentp_geo.scw","sha":"94c852899b129308d7ffd396b721f1688c10637d"},{"file":"sc3d\/mrp_agentp_spawner_tex.ktx","sha":"48a2e5616d609162f18f9af86e564dd62ec1f0e5"},{"file":"sc3d\/mrp_agentp_spawner_tex.pvr","sha":"e04dcdef97f550833e00a367e2fc57e14ec5681d"},{"file":"sc3d\/mrp_agentp_tex.ktx","sha":"5fd00447bf2e913dbba90a45692dafd198837429"},{"file":"sc3d\/mrp_agentp_tex.pvr","sha":"297f245b8113e391145e0c0873e22bc869994e51"},{"file":"sc3d\/mrp_agentp_win.scw","sha":"b0fd80fa12cd98271450a373ec640856e0263d22"},{"file":"sc3d\/mrp_attack.scw","sha":"6e23c1b06cab9317fa7d73ed05dfc479b17c5899"},{"file":"sc3d\/mrp_def_atk1.scw","sha":"17adf9b6c667ef92602b4a1ea85c7869fd2c2ab0"},{"file":"sc3d\/mrp_def_atk1_red.scw","sha":"d0dfa994721d641f5f7086835d4df6febefece33"},{"file":"sc3d\/mrp_def_atk1_texture.ktx","sha":"58b517b546fa7925882ea238338b8dad743362e5"},{"file":"sc3d\/mrp_def_atk1_texture.pvr","sha":"95822de5f6fa250085c7b5d413f5d6fbe90158db"},{"file":"sc3d\/mrp_def_atk1_texture_red.ktx","sha":"456631a9977ec6bde9d38f93c67eb6d98048dda3"},{"file":"sc3d\/mrp_def_atk1_texture_red.pvr","sha":"25c7c8b4e0e6538877f75ec1c35a601447c964c9"},{"file":"sc3d\/mrp_def_atk2.scw","sha":"670e64092257388620c0637314995eec11e9f178"},{"file":"sc3d\/mrp_def_atk2_red.scw","sha":"e466b7fb6309b3a1726e05ce7082dec6d2d9cb7d"},{"file":"sc3d\/mrp_def_atk2_texture.ktx","sha":"d27c1449f563427e782350e43154b1887da4ef1f"},{"file":"sc3d\/mrp_def_atk2_texture.pvr","sha":"87ffe922be4fbc9b08731c758cc72d3fe8fb6619"},{"file":"sc3d\/mrp_def_atk2_texture_red.ktx","sha":"b9e1e34027e7c20ae3c519ea50d11fbdb7ce779b"},{"file":"sc3d\/mrp_def_atk2_texture_red.pvr","sha":"13a633a60a73443ddd2ade838df0851fe8995cd0"},{"file":"sc3d\/mrp_geo.scw","sha":"1ded8b030ead61740988bce0f883034cc55e5a92"},{"file":"sc3d\/mrp_idle.scw","sha":"ae4690a7eed4b65f458e1c44123a9eb3e7866845"},{"file":"sc3d\/mrp_lose.scw","sha":"e32e4318c4f2cb09e114cee4588244bda380a55d"},{"file":"sc3d\/mrp_pet_geo.scw","sha":"e5e1d86f4b786c4f896f7fef5df40cbe21509be6"},{"file":"sc3d\/mrp_pet_idle.scw","sha":"46a7968902b7e4e3079eeb9ab96e3af904342430"},{"file":"sc3d\/mrp_pet_walk.scw","sha":"d574e988a8de2e63b4c0720b86d44184e3bd3358"},{"file":"sc3d\/mrp_portrait.scw","sha":"e6c2a4138272d6636d0ebaeb857f444babb6e9e4"},{"file":"sc3d\/mrp_spawner_idle.scw","sha":"67a2c066fa79cdc817accc1ab11391a9a6d01b39"},{"file":"sc3d\/mrp_spawner_spawn.scw","sha":"861bd6a806445779e323469e665802c817484d3d"},{"file":"sc3d\/mrp_spawner_tex.ktx","sha":"a49948c7209442c6f77eb52ddfb4999510b5b31b"},{"file":"sc3d\/mrp_spawner_tex.pvr","sha":"b86cf5ddb571a41e27d0d3eb0e8ac93d81c16d55"},{"file":"sc3d\/mrp_tex.ktx","sha":"164e552bcce00fce88d2db22e4d703bacebeda77"},{"file":"sc3d\/mrp_tex.pvr","sha":"ba1ac86ef0de812318294aff006b9eb0aacbcd89"},{"file":"sc3d\/mrp_walk.scw","sha":"5c309882f0299dd1efc824c3d679e48c0d1446e0"},{"file":"sc3d\/mrp_win.scw","sha":"a082016ddfe8473c8779078b028af1fe3c6814f3"},{"file":"sc3d\/multi_bumper_car.scw","sha":"1c2d151b7223e58acbd1b7c5d5c0f96ca8a40919"},{"file":"sc3d\/mushroom_1.ktx","sha":"32d64619292affcb2851a742d00cc15272860202"},{"file":"sc3d\/mushroom_1.pvr","sha":"9705487bd9380b82d6f7a7b04904f07d12b91b38"},{"file":"sc3d\/mushroom_1.scw","sha":"ebed46067731285bfffb58710c19ae9cc1c04821"},{"file":"sc3d\/mushroom_1_small.scw","sha":"2c079f4cb89645d548e62e8755001ab99eae77c0"},{"file":"sc3d\/ninja_ability_tex.ktx","sha":"49761b0461f87462d0a29e1acf04b67f32253dc9"},{"file":"sc3d\/ninja_ability_tex.pvr","sha":"f9ce899a2eb9fcac1e1c28a1d21f1b8fc457b637"},{"file":"sc3d\/ninja_attack1.scw","sha":"b58753fe44011f23b8690d356a4201c142e6b26b"},{"file":"sc3d\/ninja_geo.scw","sha":"07a678b7c549d746bdefe41cf5bb7aa52a613035"},{"file":"sc3d\/ninja_idle.scw","sha":"5547a3dd2081a71eb05d7f2789d7b05623a411c7"},{"file":"sc3d\/ninja_lose1.scw","sha":"84859c50cd98ab23af67fdfd9d64c1fb3c223075"},{"file":"sc3d\/ninja_red_tex.ktx","sha":"c59c83cef2d4ba69293570ec542997855c9defe8"},{"file":"sc3d\/ninja_red_tex.pvr","sha":"e1159f7c69f6868b016b7de24ab5319b2aef444b"},{"file":"sc3d\/ninja_tex.ktx","sha":"94f58acd753d76ed1d50b47b6cd0d18c5f6431d5"},{"file":"sc3d\/ninja_tex.pvr","sha":"652b2028d98f3f2cfef426f6563c6bf332c81d91"},{"file":"sc3d\/ninja_ulti1.scw","sha":"5e229d95ccc8eee285c2ad03a475f3bcf0117e27"},{"file":"sc3d\/ninja_walk.scw","sha":"7be6502beacf97dbcbd97232147a79887fcf4f52"},{"file":"sc3d\/ninja_win1.scw","sha":"4b99bba384a46698f9ec337da9ddeef7d0dbb074"},{"file":"sc3d\/nita_attack.scw","sha":"eaa31aabbb5ea134d9171ccb5048c170677c64c7"},{"file":"sc3d\/nita_base_cam.scw","sha":"950c24ab7d65f8673bf9df5d5e58abae4fb48177"},{"file":"sc3d\/nita_bear_attack.scw","sha":"0256ca43e21b05b7c88e27d7a83f2ad1e401cac1"},{"file":"sc3d\/nita_bear_geo.scw","sha":"8bc72b7f561467764809655a652c1a6194080010"},{"file":"sc3d\/nita_bear_idle.scw","sha":"ea7432318ed8b1dbb94ce0a36b494e9f81c1f5eb"},{"file":"sc3d\/nita_bear_panda_tex.ktx","sha":"a7b46df904cd9e844fead8ee66afcd24d36f5907"},{"file":"sc3d\/nita_bear_panda_tex.pvr","sha":"f210d926dcccd4718593ce9f65d43c7de9d364ec"},{"file":"sc3d\/nita_bear_reindeer_tex.ktx","sha":"57b08118d36e948a69f7f925ac3fb67f57d8b9e6"},{"file":"sc3d\/nita_bear_reindeer_tex.pvr","sha":"62803466366326648852e696e08e69421329f904"},{"file":"sc3d\/nita_bear_shiba_tex.ktx","sha":"7d304948794b6d5775641ed7931a1826c8ee0ff9"},{"file":"sc3d\/nita_bear_shiba_tex.pvr","sha":"65f061152cff6fed0634583843a0910656b2703e"},{"file":"sc3d\/nita_bear_tex.ktx","sha":"ca03e07fb44cc10d3d9c7cabacf962411b3c7c1f"},{"file":"sc3d\/nita_bear_tex.pvr","sha":"7b77f0adf31a38d0e8b7002e742d7fa05d5faf00"},{"file":"sc3d\/nita_bear_walk.scw","sha":"8ec7dd4aa185fcde8cbdfeddb7a20b717fbfaac9"},{"file":"sc3d\/nita_bear_win.scw","sha":"43bc98797264cac3510738786d4c63fdb696c872"},{"file":"sc3d\/nita_geo.scw","sha":"d5c3fe5fb8bc8d9f0c9308bb1c87775c0aed9eb9"},{"file":"sc3d\/nita_idle.scw","sha":"31e341083f2089d853b680a58d8bfc23b534ed05"},{"file":"sc3d\/nita_koala_bear_tex.ktx","sha":"ce601ecdb776388dee32eb100fde09fc025f315b"},{"file":"sc3d\/nita_koala_bear_tex.pvr","sha":"acf58e12a14789e3d35ac614626fc9a109895ad6"},{"file":"sc3d\/nita_koala_geo.scw","sha":"15e6ea33a51eced43320df24dd69607256aab8ba"},{"file":"sc3d\/nita_koala_tex.ktx","sha":"e0f4496577be3cdd04553dbe41463d5672ea06a5"},{"file":"sc3d\/nita_koala_tex.pvr","sha":"86b2e894aacb277be87127607f82bfd6199ff10b"},{"file":"sc3d\/nita_lose.scw","sha":"a4aec5607c2df4814d8a65eb395be61a6843d80b"},{"file":"sc3d\/nita_panda_tex.ktx","sha":"4e93edec31d7099c6ea614e768508202d9b455ea"},{"file":"sc3d\/nita_panda_tex.pvr","sha":"9c6f486a325e5aec87392483072fdcce61e17604"},{"file":"sc3d\/nita_pushback.scw","sha":"ec9a18aca46adbfa0bd15b7e54c3e41254b34549"},{"file":"sc3d\/nita_reindeer_geo.scw","sha":"d30eee4295f32aacf1cc732af94d8551b16d382e"},{"file":"sc3d\/nita_reindeer_tex.ktx","sha":"05e8ff4f08cc12afc6daf47bc4b043f919f81ef0"},{"file":"sc3d\/nita_reindeer_tex.pvr","sha":"416b7c86e78ffd785626bf632dcb62f1dd6e77cd"},{"file":"sc3d\/nita_shiba_geo.scw","sha":"e5bc4a66ea24bcf62d62a9e47128035c10573370"},{"file":"sc3d\/nita_shiba_idle.scw","sha":"a1b06ba096b3ee9c4a734718d17f0a5827480555"},{"file":"sc3d\/nita_shiba_tex.ktx","sha":"d8a66342d8bdd8e9c33bde86e55f859c50ace7c6"},{"file":"sc3d\/nita_shiba_tex.pvr","sha":"3f8ce1b814d4bffb7e969baae20d2c3ebabf37dc"},{"file":"sc3d\/nita_shiba_walk.scw","sha":"0f4a9a9780fb139ca961e6db44c54a505473a6a3"},{"file":"sc3d\/nita_shiba_win.scw","sha":"c5d49ddad0af96a984a68baaf8f6f6a3bd59abc0"},{"file":"sc3d\/nita_tex.ktx","sha":"6d480fc270c9285682290856821ef16c03dea72b"},{"file":"sc3d\/nita_tex.pvr","sha":"e4c49b1d0ae59f4818ca896d5d89846673152de4"},{"file":"sc3d\/nita_walk.scw","sha":"d5289877c1729bc452179acc4670918b4cef3c81"},{"file":"sc3d\/nita_win.scw","sha":"d47eb798aad626ae517fa2e8d07ebe6e7ff74652"},{"file":"sc3d\/pam_base_cam.scw","sha":"3249c15ca88a1ec9156a690cc4510bc4652ec0cc"},{"file":"sc3d\/pam_tex.ktx","sha":"e74b1d3814d44e8599e958cfb6b70e1f67d37bff"},{"file":"sc3d\/pam_tex.pvr","sha":"fc78e930f69ef927b128de00af52a14b86201bff"},{"file":"sc3d\/park_bench_1.scw","sha":"2b5e837f4af978ab5f754b2db11fbc1bd6c37e2c"},{"file":"sc3d\/penny_base_cam.scw","sha":"f7248f7a32f6519d06cc690d8eb8ca902fa4b351"},{"file":"sc3d\/penny_bunny_geo.scw","sha":"1a2cc6416792a5c0a173db48aadc5475ea3dbc44"},{"file":"sc3d\/penny_bunny_tex.ktx","sha":"27c8af3211d303df05a33cb18514d7cac23a091f"},{"file":"sc3d\/penny_bunny_tex.pvr","sha":"790473ef284c7949012e6559d4b5b3fdbaa063d4"},{"file":"sc3d\/penny_bunny_walk.scw","sha":"54ae430aabfe9271eb97d06549dd7dd064acfce2"},{"file":"sc3d\/penny_bunny_win.scw","sha":"bf85ad5db314d7e5580190d561360595d863a05c"},{"file":"sc3d\/penny_bunnydark_tex.ktx","sha":"463d13f61ff04e377334d3238b218c4d26b549a6"},{"file":"sc3d\/penny_bunnydark_tex.pvr","sha":"17cdebaf009fb665343b59237d3f7271fec3110d"},{"file":"sc3d\/penny_darkbunny_geo.scw","sha":"6dedce6fa8b8f298ff47bc8ec6be5a20b891564b"},{"file":"sc3d\/penny_elf_geo.scw","sha":"7b5b35b1d1212338def1b1900909e9f2c2a343ad"},{"file":"sc3d\/penny_elf_tex.ktx","sha":"0d7d932ac100f738145cd5e6b51cd3caff9833e2"},{"file":"sc3d\/penny_elf_tex.pvr","sha":"25f5e2ec4bb13e448705a62d56d88ba93a30ef72"},{"file":"sc3d\/penny_elf_turret_geo.scw","sha":"1ac3a16d9b8e6ff2957d8bfc32592f6f040da415"},{"file":"sc3d\/pinball_bumper.scw","sha":"4694684c22ded11fe73588dfd1e2a908f6a38d92"},{"file":"sc3d\/piper_attack.scw","sha":"605ff135171fdbae075b87c91c82aab087a88286"},{"file":"sc3d\/piper_base_cam.scw","sha":"2d7ccbe2735feb203d7d29469f10b3f9a6637690"},{"file":"sc3d\/piper_gadget_pistol_attack.scw","sha":"3d5d2be08504aad838db16bb12d546a0ed2924aa"},{"file":"sc3d\/piper_gadget_pistol_geo.scw","sha":"9fd8e39ce40f1db90d8f9a94b4f564d63282a1d3"},{"file":"sc3d\/piper_geo.scw","sha":"7a815e4aabb65210f8876591dbd48a117e3a4ea8"},{"file":"sc3d\/piper_idle.scw","sha":"72be1d8292d5cfae22a168fa8cebd8cca473fc02"},{"file":"sc3d\/piper_lose.scw","sha":"5c9987fd467dac64abb62842b1574ec3b3c168a4"},{"file":"sc3d\/piper_pink_tex.ktx","sha":"6a6d89e6555e2ac2637e48f468ec69498d927fef"},{"file":"sc3d\/piper_pink_tex.pvr","sha":"eb9226e438994fc7198468bf9b5a8085002575aa"},{"file":"sc3d\/piper_portrait.scw","sha":"92b768e71b0bbe55041625f40fd0b7049e1aa1a4"},{"file":"sc3d\/piper_pushback.scw","sha":"793c3ea9b9a02142745dfdc100f57c40f8fb800f"},{"file":"sc3d\/piper_rose.scw","sha":"fb380e62f86d4ea4ba5f86336d71018fddddfeb6"},{"file":"sc3d\/piper_rose_geo.scw","sha":"9687e6ab193bc74c9bc8a3456460d2f28ca88378"},{"file":"sc3d\/piper_rose_tex.ktx","sha":"125c7e9cad529b8c415f6da29599ad7c6b914262"},{"file":"sc3d\/piper_rose_tex.pvr","sha":"9c56f324220f0b5d31c6156dc0f53d47de373ce8"},{"file":"sc3d\/piper_super.scw","sha":"3cea736ddf76e25d3dd8f0fa16d01d47d93e4033"},{"file":"sc3d\/piper_tex.ktx","sha":"82c7bb7acd45c4871ea4516c52e1770e4933920a"},{"file":"sc3d\/piper_tex.pvr","sha":"f132853d76fc7cca11c29cf61bad1a4c9316d0b4"},{"file":"sc3d\/piper_valentines_attack.scw","sha":"68b66b22298adfad4e0b792a218d7b2e774dc930"},{"file":"sc3d\/piper_valentines_cam.scw","sha":"2e5cd5225dcabcc9b42eb42be96db3742917ae29"},{"file":"sc3d\/piper_valentines_geo.scw","sha":"527a57a3d83f5da445192282a17fb2c24e64ad49"},{"file":"sc3d\/piper_valentines_idle.scw","sha":"3de41abe6f0dfa381c65b672d5482b2ff4294ab4"},{"file":"sc3d\/piper_valentines_lose.scw","sha":"35c577cd53174892be68762eccb4db982a843084"},{"file":"sc3d\/piper_valentines_reload.scw","sha":"68b66b22298adfad4e0b792a218d7b2e774dc930"},{"file":"sc3d\/piper_valentines_run.scw","sha":"23f3b460f4e279d49bdd808aa7dbca69b4c93f99"},{"file":"sc3d\/piper_valentines_tex.ktx","sha":"81367b532e8bef21e354fd33ef55be21a4b48ff5"},{"file":"sc3d\/piper_valentines_tex.pvr","sha":"712856c62aa6f7172903e8355d26529857c87961"},{"file":"sc3d\/piper_valentines_win.scw","sha":"07d3572b541066b303d0ba73d5cc1fd205d17be2"},{"file":"sc3d\/piper_walk.scw","sha":"da732d7dbc29e30289e7c6e4b6e88c206fb634b3"},{"file":"sc3d\/piper_win.scw","sha":"609580157cf6c659b523f6bd8b7bfebc19e96c6a"},{"file":"sc3d\/pirate_chest.scw","sha":"b754d21c16116e5be9f10b560af8c1d5ba73a2af"},{"file":"sc3d\/plant_1.ktx","sha":"885acf33e6ca81329f532d3c3dedade6b477221f"},{"file":"sc3d\/plant_1.pvr","sha":"fab446391b0fc6aa3b7c80498a5d0a826752eeef"},{"file":"sc3d\/plant_1_small.scw","sha":"fb7fcd2afae884f6174cbb21ee429edc505a8d5f"},{"file":"sc3d\/plant_retropolis_small.scw","sha":"7ccc506653a0f48ae401986ee5b436fea977e6ad"},{"file":"sc3d\/poco_attack.scw","sha":"5b236d612f1045fc387442107d7a71a4c8aabd08"},{"file":"sc3d\/poco_base_cam.scw","sha":"cf09fd58debd758cad6c28204477e27909bcbc58"},{"file":"sc3d\/poco_geo.scw","sha":"aee7b7e8d003b385faf3cca6535db210df8df9ec"},{"file":"sc3d\/poco_idle.scw","sha":"5612468f1206a16cc0bd0b5404ed60b41e4a1ec8"},{"file":"sc3d\/poco_lose.scw","sha":"d10e8a5b19d2e33345d0a201ee0c2a2013321a62"},{"file":"sc3d\/poco_pirate_geo.scw","sha":"9709edb469ae667246952280079e8ddad3afe7a5"},{"file":"sc3d\/poco_pirate_idle.scw","sha":"cbbdac481247920bb1c6239677a6f819b003b537"},{"file":"sc3d\/poco_pirate_lose.scw","sha":"a3dfa235dd8b3eb0ac0224f00d552b11914d6d5c"},{"file":"sc3d\/poco_pirate_tex.ktx","sha":"33d4e342e85edec4fe2bb9f386e4b2c3108c1983"},{"file":"sc3d\/poco_pirate_tex.pvr","sha":"97fd3a98353d1ea59536c501a90c9cc0032cde4b"},{"file":"sc3d\/poco_pirate_walk.scw","sha":"f73c8f9273a82b376520ccb6d93f8d2d8394916c"},{"file":"sc3d\/poco_pirate_win.scw","sha":"205115c78fc8b6bcb06307c2551c3f9ee713151d"},{"file":"sc3d\/poco_tex.ktx","sha":"e60039a6532060df1d18a8e4db4ceed5427bb90c"},{"file":"sc3d\/poco_tex.pvr","sha":"5690e86a1d0ea278fa727da8df3310d9589a352f"},{"file":"sc3d\/poco_valentine_geo.scw","sha":"426cc1ace15447cac29f4b6ed17acc8d2443ced6"},{"file":"sc3d\/poco_valentine_tex.ktx","sha":"27ec63f393b543dedc08936aa7210e824fd01cdc"},{"file":"sc3d\/poco_valentine_tex.pvr","sha":"36ff34074f2f1db85bf56213bdee7a26fec82261"},{"file":"sc3d\/poco_walk.scw","sha":"fc4215a26a5faaf2188626f30e7d32cf1b15a45e"},{"file":"sc3d\/poco_win.scw","sha":"2c9fedd5693b8525111130eedfdd031f28875574"},{"file":"sc3d\/portrait_cam.scw","sha":"268abca8f84fb597c11ab2f7f1de1118bb1ccaa0"},{"file":"sc3d\/pothole.scw","sha":"3f4f4c9ba6671c9ff3737623930ad85f3b8e5b4b"},{"file":"sc3d\/potted_plant_1.ktx","sha":"8951eeac6ee23d2fbc58976f44830ae5766db8f8"},{"file":"sc3d\/potted_plant_1.pvr","sha":"f7529504cece6e09389af03e7c7903f0d02d52f2"},{"file":"sc3d\/potted_plant_1.scw","sha":"5180465ceb3588226b76039ea3dd19784baf42cd"},{"file":"sc3d\/present_pile_xmas.scw","sha":"bddf15f5427d9efdd34c4b7953d59dfc3df9d744"},{"file":"sc3d\/primo_003_atk_projectile_alpha.ktx","sha":"ed04e725ed66e1a412699b4f9d9c381fd20c0688"},{"file":"sc3d\/primo_003_atk_projectile_alpha.pvr","sha":"dd06a1282784d7824e7539876389103c474b9f0d"},{"file":"sc3d\/primo_003_atk_projectile_blue.ktx","sha":"e92bbca82ac6210ccf0a98cced7e3add47b17f45"},{"file":"sc3d\/primo_003_atk_projectile_blue.pvr","sha":"f8f501e93a062b75767dfdbb83b1935f1aaa91e6"},{"file":"sc3d\/primo_003_atk_projectile_blue.scw","sha":"ae52d484e1a8e15dfc56adc74f4d9969b43e3f49"},{"file":"sc3d\/primo_003_atk_projectile_red.ktx","sha":"21c139b8c67c30b4cbbab286a25c89d4380e37b9"},{"file":"sc3d\/primo_003_atk_projectile_red.pvr","sha":"bf8c3516278037e914012e475222212923daa2eb"},{"file":"sc3d\/primo_003_atk_projectile_red.scw","sha":"1f8f10fceb0fafb6d4321d447bcd8f0a8c6e00d9"},{"file":"sc3d\/primo_attack.scw","sha":"d1e1887523be02baddca7b72a77d07a0936516e5"},{"file":"sc3d\/primo_base_cam.scw","sha":"8858c053470ab30747255e9d674a659ffbd4b3bb"},{"file":"sc3d\/primo_brown_attack.scw","sha":"b69d9493df0c102d17bd97ef01ca33370f7d7409"},{"file":"sc3d\/primo_brown_gadget_flip_attack.scw","sha":"9c45442bb0f6737719f1c786a3de7acc19aceb3c"},{"file":"sc3d\/primo_brown_geo.scw","sha":"9e19cdd12a898f69a775e34c5a96decf58f230ca"},{"file":"sc3d\/primo_brown_idle.scw","sha":"ff94a6eab99df77c655772581cb163df81400d97"},{"file":"sc3d\/primo_brown_lose.scw","sha":"4dfc17a82856ac03a0af22e44a42c7227bbcd181"},{"file":"sc3d\/primo_brown_portrait.scw","sha":"0101e9003436de5b72cbb6ff18e08cdf3a36c2fb"},{"file":"sc3d\/primo_brown_pushback.scw","sha":"1f8d38ba4001a2392c69922e00b6e110e8562776"},{"file":"sc3d\/primo_brown_super.scw","sha":"cc692daadc45be967d78890ab1d7bf3478d8392a"},{"file":"sc3d\/primo_brown_tex.ktx","sha":"a6245ad186297d6ac9bae49f2b6a16258cff2f78"},{"file":"sc3d\/primo_brown_tex.pvr","sha":"a57010e8a8040d93720407cd6d31aff4eafb574f"},{"file":"sc3d\/primo_brown_walk.scw","sha":"e39e05186a883fdb2dac8cb509ed5f0497fc24cb"},{"file":"sc3d\/primo_brown_win.scw","sha":"c0a63969d7334366fc4d807c37f4e4a6213d1078"},{"file":"sc3d\/primo_def_atk_projectile_alpha.ktx","sha":"834a83a8b21f60778a85a44fe7a2a20f429a7a0a"},{"file":"sc3d\/primo_def_atk_projectile_alpha.pvr","sha":"0ca01792eb813bf3d1c4705a05790aa9d78998c3"},{"file":"sc3d\/primo_def_atk_projectile_blue.ktx","sha":"a7890e62fff88830de5232e84739b5b7aa13ec92"},{"file":"sc3d\/primo_def_atk_projectile_blue.pvr","sha":"b9be5561ecbc557bbdcc0ae18a21a1f8b3d5b253"},{"file":"sc3d\/primo_def_atk_projectile_blue.scw","sha":"2f1df967ae7e4293156dbc00f5d4c20cf77d87ba"},{"file":"sc3d\/primo_def_atk_projectile_red.ktx","sha":"b46b9f896e3e5b69b87a9960026e44dabe66bb5d"},{"file":"sc3d\/primo_def_atk_projectile_red.pvr","sha":"23c3d17419e3920c4bd5bbe51bcca4cdd7c97ad7"},{"file":"sc3d\/primo_def_atk_projectile_red.scw","sha":"e1e760b688458ab4ad307bb1c66274f8b7d7d242"},{"file":"sc3d\/primo_elrey_geo.scw","sha":"d8c320581d23dbf5d696f2974251259657c3e987"},{"file":"sc3d\/primo_elrey_tex.ktx","sha":"3a5b4131245e90547680ca44cfbb7e6926384036"},{"file":"sc3d\/primo_elrey_tex.pvr","sha":"1977bd0907a82ba10dc6c74404a964cf6f638d09"},{"file":"sc3d\/primo_elrudo_geo.scw","sha":"ed82096387268f7592610c4e7043d4b2762fdbd8"},{"file":"sc3d\/primo_elrudo_portrait.scw","sha":"ce51ea9f5665fc43021a361c39c2c2d5b0e081c4"},{"file":"sc3d\/primo_elrudo_tex.ktx","sha":"297105cafe04c1f28fc0ba96bd35d9322fdf0628"},{"file":"sc3d\/primo_elrudo_tex.pvr","sha":"dcedc2b78e1c776f48472ecce18cb71cdc8b75b4"},{"file":"sc3d\/primo_elrudo_win.scw","sha":"541e728142396d29e044ce409ffff2199d4a4cb1"},{"file":"sc3d\/primo_gadget_flip_attack.scw","sha":"18284851360e4ca347b19f2492a50cc284b34a7d"},{"file":"sc3d\/primo_geo.scw","sha":"c04ee42e6cf1f027fdb3387e6eef47fa89fceafe"},{"file":"sc3d\/primo_idle.scw","sha":"09a8f55cb8abbf5a3db566cab7c3b139c4c7be52"},{"file":"sc3d\/primo_lose.scw","sha":"556c06b06b7e30fc0ea457e2c2888d674b415798"},{"file":"sc3d\/primo_portrait.scw","sha":"5c615f11bc4358f87e2ac606d9c19c5f3e7574cc"},{"file":"sc3d\/primo_rey_attack.scw","sha":"d818543f30c262f25240ac1358982b475857c2df"},{"file":"sc3d\/primo_rey_idle.scw","sha":"5e967880dd2c389d0322d0fe3413103f81fdabc5"},{"file":"sc3d\/primo_rey_lose.scw","sha":"99466edcff0a6a4bb1ae06ba4a3e57991cf9177c"},{"file":"sc3d\/primo_rey_super.scw","sha":"8640f0f31ff1629bd2ae8c9b1749b151515fca0a"},{"file":"sc3d\/primo_rey_walk.scw","sha":"873046c623be1e37af9629ab6f1d3e5c0421716e"},{"file":"sc3d\/primo_rey_win.scw","sha":"7e59a8f1f4001fa8ca19a0dc56baa248683a8119"},{"file":"sc3d\/primo_super.scw","sha":"f7ad04683ac187ef0f10669551222acb0c794462"},{"file":"sc3d\/primo_tex.ktx","sha":"c6da735a15df81e8e7778e00ceabf0157009494d"},{"file":"sc3d\/primo_tex.pvr","sha":"51480db1a5e10dca97549cf502e85ed91ed082d6"},{"file":"sc3d\/primo_walk.scw","sha":"4188962cde8e88d7b24865802c8c328301c8dc32"},{"file":"sc3d\/primo_win.scw","sha":"cc8072dcdb777430b335e8f6c764b1a915c96cff"},{"file":"sc3d\/rangedbot_attack1.scw","sha":"71a32fb6eaac4f95e3457373d76729d4ab3fa865"},{"file":"sc3d\/rangedbot_geo.scw","sha":"13a56b982844fd903471a90ac4046e4a5d545131"},{"file":"sc3d\/rangedbot_idle.scw","sha":"4d175f027a6f08ff7683a99fbb6afe659b1642be"},{"file":"sc3d\/rangedbot_lose1.scw","sha":"411e1f8d289a31e52cf89a3a9f0e2fedc7c789f5"},{"file":"sc3d\/rangedbot_loseloop1.scw","sha":"34ac8ce4579609abde1da9a1c70c7d50de4b9f6e"},{"file":"sc3d\/rangedbot_recoil.scw","sha":"868563f93af4d4300d2f82d0bf1bf8e042a4fec3"},{"file":"sc3d\/rangedbot_reload.scw","sha":"24e93c5dc48e7ac29b31199ef21518beb77e99c6"},{"file":"sc3d\/rangedbot_tex.ktx","sha":"adde4060b3315906637bf3c603db4f917a311186"},{"file":"sc3d\/rangedbot_tex.pvr","sha":"193fe5ee46fe74d7812b8f1bf92ac4ee399ac660"},{"file":"sc3d\/rangedbot_walk.scw","sha":"bee7abb6651631dbe2fe526ebc77b028b32b0a96"},{"file":"sc3d\/rangedbot_win1.scw","sha":"8844d1ce582227f8ddc59c0d805da38e17056094"},{"file":"sc3d\/rangedbot_winloop1.scw","sha":"a416f4deafb5f45e1ab063370663402153481604"},{"file":"sc3d\/recoil.scw","sha":"b634dc0ec7b834a3c955ca9917d3d1ad5d8ee14e"},{"file":"sc3d\/recoil_2.scw","sha":"bed60e0789b66742e739f2afd3311311d2b05d07"},{"file":"sc3d\/retropolis_fence.scw","sha":"528623c721e13383a299b72ec21b36b04003faa5"},{"file":"sc3d\/rickoshea_attack1.scw","sha":"71a32fb6eaac4f95e3457373d76729d4ab3fa865"},{"file":"sc3d\/rickoshea_geo.scw","sha":"a0395d74ac5024cff5ed30bec4bf87d8a6da6370"},{"file":"sc3d\/rickoshea_gold_tex.ktx","sha":"e3215b2244934df7fb9b389b14295841b98ae7df"},{"file":"sc3d\/rickoshea_gold_tex.pvr","sha":"a11ed91ae5316922553c4a8f85a444969f9f4ffd"},{"file":"sc3d\/rickoshea_idle.scw","sha":"4d175f027a6f08ff7683a99fbb6afe659b1642be"},{"file":"sc3d\/rickoshea_lose1.scw","sha":"411e1f8d289a31e52cf89a3a9f0e2fedc7c789f5"},{"file":"sc3d\/rickoshea_loseloop1.scw","sha":"34ac8ce4579609abde1da9a1c70c7d50de4b9f6e"},{"file":"sc3d\/rickoshea_recoil.scw","sha":"868563f93af4d4300d2f82d0bf1bf8e042a4fec3"},{"file":"sc3d\/rickoshea_reload.scw","sha":"24e93c5dc48e7ac29b31199ef21518beb77e99c6"},{"file":"sc3d\/rickoshea_tex.ktx","sha":"b3b14751d55d57773233ac69cdd35f88ff395d80"},{"file":"sc3d\/rickoshea_tex.pvr","sha":"fd39a361382da6b2c6388f9b46931443cef18deb"},{"file":"sc3d\/rickoshea_walk.scw","sha":"bee7abb6651631dbe2fe526ebc77b028b32b0a96"},{"file":"sc3d\/rickoshea_win1.scw","sha":"8844d1ce582227f8ddc59c0d805da38e17056094"},{"file":"sc3d\/rickoshea_winloop1.scw","sha":"a416f4deafb5f45e1ab063370663402153481604"},{"file":"sc3d\/rico_attack.scw","sha":"c02f945e3779169bfaa6de59a63da546cc7644bb"},{"file":"sc3d\/rico_base_cam.scw","sha":"f08a0e40f726a70c628f9db8b770b3beafd29f7e"},{"file":"sc3d\/rico_geo.scw","sha":"68328c3b75cffc694e62e62779cce487358a6801"},{"file":"sc3d\/rico_gold_attack.scw","sha":"582804f7692e7dd26787d76079b97bebe77fa442"},{"file":"sc3d\/rico_gold_geo.scw","sha":"bfd95ed1f9f14672ced72f6646d73dcb0eadc5e3"},{"file":"sc3d\/rico_gold_idle.scw","sha":"0d7d235ae99b83cf6b217de9a89ac1b8498b1948"},{"file":"sc3d\/rico_gold_lose.scw","sha":"5037f974d8c6c91ceda354390ca622b3641116b3"},{"file":"sc3d\/rico_gold_tex.ktx","sha":"83c1a47ae89664626b5304ad20bd38ce5f830c7d"},{"file":"sc3d\/rico_gold_tex.pvr","sha":"53c094517d49d8046fd384024ba42514158c2d8e"},{"file":"sc3d\/rico_gold_walk.scw","sha":"fa2bf2897f5ed73ed33cacb7f6d1774874f89345"},{"file":"sc3d\/rico_gold_win.scw","sha":"08ae921f068de74a49c0dbcbbe9184e2d7bc70e3"},{"file":"sc3d\/rico_gold_win_test.scw","sha":"13b137717f262c0fe045eb6abe945ee41f3d1117"},{"file":"sc3d\/rico_idle.scw","sha":"96f5a67462a52670b517aabb596661fb01b03748"},{"file":"sc3d\/rico_lose.scw","sha":"a052c7313f11f4a42cf6eafe91e55598cbd198fc"},{"file":"sc3d\/rico_og_geo.scw","sha":"5f0d12631abfe070e313ce5bd0dc109afcb96567"},{"file":"sc3d\/rico_og_tex.ktx","sha":"7689d8a6a163e749eec38bde965604bb493186a1"},{"file":"sc3d\/rico_og_tex.pvr","sha":"6d64af30bc2dd68e7da367ea702f2100e3cc54cf"},{"file":"sc3d\/rico_popcorn_geo.scw","sha":"82e4b03d155328950a904bc6134b8c1f731d820f"},{"file":"sc3d\/rico_popcorn_idle.scw","sha":"e84bc970ab7b2819ce1541ff69b3aed0eb29ec2f"},{"file":"sc3d\/rico_popcorn_lose.scw","sha":"90f49fd632dd6013a16b63144a112ce4336db4f2"},{"file":"sc3d\/rico_popcorn_tex.ktx","sha":"dc716b3c9298cac1957e5970ea80a5c4421efe2f"},{"file":"sc3d\/rico_popcorn_tex.pvr","sha":"91cdc4c8d3299ff7961d0ddbc3bf5ffed8d9abb5"},{"file":"sc3d\/rico_popcorn_win.scw","sha":"606dbeab8919eb1b082e59bc18f4c146a59003b3"},{"file":"sc3d\/rico_tex.ktx","sha":"cc06b823441813b02005791ea0df0ad626fbe853"},{"file":"sc3d\/rico_tex.pvr","sha":"e82b14d56524c1226736a3e6e898d6a329614048"},{"file":"sc3d\/rico_walk.scw","sha":"e0fadb41859b22307a301c26e9cfe0b7ce22e079"},{"file":"sc3d\/rico_win.scw","sha":"f11b45f603c021e1ab092a47a4c1b19311c0f022"},{"file":"sc3d\/rock1.scw","sha":"ecb5855c1d50b48789832eb1524d54fac5adceaa"},{"file":"sc3d\/rock2.scw","sha":"e721d5e500407e984124aab966af0c84be281e32"},{"file":"sc3d\/rock_1.ktx","sha":"310c42d1f503df709ef644526ad59d72f0298748"},{"file":"sc3d\/rock_1.pvr","sha":"9f8ad83768d35eda5fe0fbe49ea0445702d38a9f"},{"file":"sc3d\/rock_2.ktx","sha":"60ed45444086c58e5c387dde4c8c011b2090b5d4"},{"file":"sc3d\/rock_2.pvr","sha":"cd70558e6a6f724f39f4ac0aaf43fc2dced54a51"},{"file":"sc3d\/rock_mortuary_1.scw","sha":"e37c3caad9716e33ade5f8daf2abc52cceb716a4"},{"file":"sc3d\/rock_retropolis_1.scw","sha":"50efe4227c055932b9ee4da4745fa1779834ca75"},{"file":"sc3d\/rock_town_1.scw","sha":"1c80ed49f6d340864d5c09bb050f4c453f0f4bef"},{"file":"sc3d\/rosa_attack.scw","sha":"f9e57446a9d2ee578614839acd4b91915564d485"},{"file":"sc3d\/rosa_attack_transform.scw","sha":"5344dc66facb7d06b17e7b7d941b96b2df6c347b"},{"file":"sc3d\/rosa_base_cam.scw","sha":"966a3b084d149b6f814919d8a3fb6389b77de4b5"},{"file":"sc3d\/rosa_def_atk_projectile_alpha.ktx","sha":"e83628256c30247e27222f95642db24fba09b941"},{"file":"sc3d\/rosa_def_atk_projectile_alpha.pvr","sha":"0996d06c72599f59a8196c8e6070009523d6da9a"},{"file":"sc3d\/rosa_def_atk_projectile_blue.ktx","sha":"c296d1e52b72bc23bc1cd3e3363ccc7957075bb4"},{"file":"sc3d\/rosa_def_atk_projectile_blue.pvr","sha":"b9f8757e00aa8a15727e62ea69bf9029bd6f42d5"},{"file":"sc3d\/rosa_def_atk_projectile_blue.scw","sha":"59ffc0f5d685890981f2ff3250068c72ed636ccc"},{"file":"sc3d\/rosa_def_atk_projectile_red.ktx","sha":"ca6941214429ff7fae347746480c5dc37f8c39db"},{"file":"sc3d\/rosa_def_atk_projectile_red.pvr","sha":"3c75d2e6a7e0dbde5e134b96f30e05b7ddd40dfe"},{"file":"sc3d\/rosa_def_atk_projectile_red.scw","sha":"ba3290b5209e2008e1bf3c232cc255f6160feae5"},{"file":"sc3d\/rosa_detransform.scw","sha":"1f83a90b4485175e0111bd31a525bd0ea9c1f3e0"},{"file":"sc3d\/rosa_geo.scw","sha":"519f798eb860ad48d87be8cd7a3d339b0322d9e9"},{"file":"sc3d\/rosa_idle.scw","sha":"8f2cc369068b5e8d4b6609b5eeafe277ac5b5692"},{"file":"sc3d\/rosa_idle_transform.scw","sha":"cb8eb1338a9c5fcbcd8cff6581de37b67682b353"},{"file":"sc3d\/rosa_lose.scw","sha":"ebca656a78fe9bc68380b503dde11e7ad2396368"},{"file":"sc3d\/rosa_tex.ktx","sha":"a521cf8e5716d96a4054933ba9ef13f75e2d75c2"},{"file":"sc3d\/rosa_tex.pvr","sha":"6f373020474a97767d2f7e5d681d26894a47173c"},{"file":"sc3d\/rosa_transform_tex.ktx","sha":"de19e5bda63b1a3a3b61d303f3485c9a56c64e72"},{"file":"sc3d\/rosa_transform_tex.pvr","sha":"cc592c8b0f3ab6b1fbd27ed7a0029f10412d5246"},{"file":"sc3d\/rosa_ult.scw","sha":"5cd6e947ebd3ad88e1259514ed2bd397614ff7c1"},{"file":"sc3d\/rosa_walk.scw","sha":"cd426b5e9337e80b048cf1a15507310819afb3e4"},{"file":"sc3d\/rosa_walk_transform.scw","sha":"70ec75890c241c70f465f6ce07dcdc241128b486"},{"file":"sc3d\/rosa_win.scw","sha":"ab323118a3cdb053f0b3f709842a78567e95073e"},{"file":"sc3d\/sandy_attack.scw","sha":"fa7257dadc208a02de839410b4d1a09ccd6c7c15"},{"file":"sc3d\/sandy_base_cam.scw","sha":"932c00352a69442be7e672bf5601a2bca69decd9"},{"file":"sc3d\/sandy_def_ulti.ktx","sha":"70561236164db5b9b7894ca2e202b4b4c6fd25b4"},{"file":"sc3d\/sandy_def_ulti.pvr","sha":"b63b4903a968f43197ebc8e85561bdad2d5129ab"},{"file":"sc3d\/sandy_def_ulti.scw","sha":"9043e8ba368463ab61351b2f56258fb744d284df"},{"file":"sc3d\/sandy_geo.scw","sha":"bbd5438fd7af932259d0b199926cd23c7051ecf5"},{"file":"sc3d\/sandy_idle.scw","sha":"ad0823b26d880995b7fdca51b70e3bffa3c4fa20"},{"file":"sc3d\/sandy_pushback.scw","sha":"6486e024951257f6bffba15884e65bc186880770"},{"file":"sc3d\/sandy_tex.ktx","sha":"b6b23446fde77fb9e1815eab19eb2695490e86ba"},{"file":"sc3d\/sandy_tex.pvr","sha":"fa7a0ac6128d24a7e558ec621ed2ceb62310a91c"},{"file":"sc3d\/sandy_walk.scw","sha":"68d905ad8b1fd53d7ac393595a58fc5f84c12956"},{"file":"sc3d\/sandy_win.scw","sha":"6a9e80aa22e615c6a699ab8651293d2051a1ed36"},{"file":"sc3d\/seaweed_small.scw","sha":"a1b535566106800c5ba0639f9ce7793314bec26a"},{"file":"sc3d\/shark_leon_geo.scw","sha":"2d47e978d2dc4dba5338e6f4a24007ada2960f48"},{"file":"sc3d\/shark_leon_tex.ktx","sha":"28ac3d30429413d0af9f95d0d875ccfcd96b9ed6"},{"file":"sc3d\/shark_leon_tex.pvr","sha":"88515b4b1e3b7a0792deff19787bc26b54012f07"},{"file":"sc3d\/shelly_attack.scw","sha":"8e43c75a5be0d49f381ae67cc7b7fa61b1101057"},{"file":"sc3d\/shelly_attack1.scw","sha":"0621a813e20d6ee4047e4a542caf6e179d929805"},{"file":"sc3d\/shelly_bandita_attack.scw","sha":"b243a9bfb276c252ebf6ffd267a0a573880ae9eb"},{"file":"sc3d\/shelly_bandita_geo.scw","sha":"d37403d96ddd422139f1b22d873b535b3590d860"},{"file":"sc3d\/shelly_bandita_idle.scw","sha":"96f6a6b76e2d9dc23f2c399b26a01ac59897574f"},{"file":"sc3d\/shelly_bandita_lose.scw","sha":"d3465c8af2764065a81063fd3a69f272b652b4a1"},{"file":"sc3d\/shelly_bandita_reload.scw","sha":"0c8216c908a848927af82a9ad883b119106aa1f2"},{"file":"sc3d\/shelly_bandita_tex.ktx","sha":"7ede296d2fc926b4a065b4aecb52c61af665f36f"},{"file":"sc3d\/shelly_bandita_tex.pvr","sha":"adf059965110fba7668d9ce908fedf5d8f47ca84"},{"file":"sc3d\/shelly_bandita_walk.scw","sha":"8bda578c41839f3fe2a7c149bf16518e0b2aaa3d"},{"file":"sc3d\/shelly_bandita_win.scw","sha":"f400d2c68ae892e9bf160f75bdca9b47c74cc2ee"},{"file":"sc3d\/shelly_bandito_d_01.ktx","sha":"ec51af85f0a99a7f1e5f0120df0944d05a48389a"},{"file":"sc3d\/shelly_bandito_d_01.pvr","sha":"70e93b46ea1f3ac9ffd68ceb64df357803fd1faa"},{"file":"sc3d\/shelly_base_cam.scw","sha":"0757c59d0a04349a05f4a0f4d1743e027cc2aa34"},{"file":"sc3d\/shelly_fb_geo.scw","sha":"6410986fcc100b9dc9ca2ea4e631a5438c3441ef"},{"file":"sc3d\/shelly_fb_tex.ktx","sha":"84aff5bc110da60f8e6f94b2f4d27b4ba7925a17"},{"file":"sc3d\/shelly_fb_tex.pvr","sha":"ad74b746155c25eb2bf857252e09e2a423d0d13f"},{"file":"sc3d\/shelly_geo.scw","sha":"e39ce4c36d7fc7aad9c89276040dc1c665d95043"},{"file":"sc3d\/shelly_idle.scw","sha":"4755e4761b9490ecfef02d2d6dcd809f65c26248"},{"file":"sc3d\/shelly_lose.scw","sha":"748d1421fdeec671919b1de704b38a036677a1fe"},{"file":"sc3d\/shelly_lose1.scw","sha":"a5f03867994cd419d2b53f6f02cb1da2d8023446"},{"file":"sc3d\/shelly_loseloop1.scw","sha":"08900367f1c97ab932825cc6692ee5d0fda084bd"},{"file":"sc3d\/shelly_prereg_01.ktx","sha":"2acfa1bc9c3691209060b05125410fb4bade1bd8"},{"file":"sc3d\/shelly_prereg_01.pvr","sha":"ba3d48e5adc74d013e747ccf4282e7d92233ee45"},{"file":"sc3d\/shelly_prereg_attack.scw","sha":"43ef489ff938d81a5eed6b60464bccdc69751343"},{"file":"sc3d\/shelly_prereg_geo.scw","sha":"ff563490f928a5bcc49f13acce34d53d3527602c"},{"file":"sc3d\/shelly_prereg_idle.scw","sha":"f345c9f086154301f7685d427d85c31e16e4c66c"},{"file":"sc3d\/shelly_prereg_lose.scw","sha":"471cff016f38043dcf949a7da7685480c238e57d"},{"file":"sc3d\/shelly_prereg_pushback.scw","sha":"61cccddf89e8afdc5aa2ee7a9f9bd214b79cefa7"},{"file":"sc3d\/shelly_prereg_reload.scw","sha":"ef0b6b2a93ca154e9a25a73fd850c068540a867d"},{"file":"sc3d\/shelly_prereg_walk.scw","sha":"b4b26db7b10599a1df3276d55765f87e9f753d59"},{"file":"sc3d\/shelly_prereg_win.scw","sha":"0adfbf3d2ffd5fbc73046101551abb6627fca9ad"},{"file":"sc3d\/shelly_pushback.scw","sha":"de47952f0d45745d2781114f8362b29fba5ce490"},{"file":"sc3d\/shelly_recoil1.scw","sha":"b850005ad7299dea70911413ca5398e8b8c3c540"},{"file":"sc3d\/shelly_reload.scw","sha":"f35eb6a6c2610951eaad7f13572ffcdd49648e35"},{"file":"sc3d\/shelly_tex.ktx","sha":"6ea44f5d2a68ba7bafaa61f960bf4901776754ab"},{"file":"sc3d\/shelly_tex.pvr","sha":"6037b18f5da301549dd68dac9fc96aa28b0c5027"},{"file":"sc3d\/shelly_v2_01.ktx","sha":"3fde9d40e9f0e2259ef10c3d4909d796b124c48c"},{"file":"sc3d\/shelly_v2_01.pvr","sha":"0e437acd1b3dbad698b14878174300d42f9016eb"},{"file":"sc3d\/shelly_walk.scw","sha":"f01e5d0a83b425d1c2d6f3d867b2deb958b0fcb9"},{"file":"sc3d\/shelly_win.scw","sha":"0a0a8101d521359a72ed21710761fc2bd15b6278"},{"file":"sc3d\/shelly_win1.scw","sha":"b61b4ac29f066e3c78a875df5a9f3876555d216e"},{"file":"sc3d\/shelly_winloop1.scw","sha":"2d6a46387dce80370acc18417e74e760e4cc0301"},{"file":"sc3d\/shelly_witch_attack.scw","sha":"3e4c45260b70dbc3af0ee2f79bd9e60736ad90e6"},{"file":"sc3d\/shelly_witch_geo.scw","sha":"45ac77f351edc26a7dcce110ae91ab27145b1ffa"},{"file":"sc3d\/shelly_witch_idle.scw","sha":"85b9fcca5ba9ef1038c0145cfd4f96bcb3835484"},{"file":"sc3d\/shelly_witch_lose.scw","sha":"b90b66bfa96a65b82f03d8313fc6a957dba51698"},{"file":"sc3d\/shelly_witch_reload.scw","sha":"41a455eace993688cf84bc6df009a677cb02ed77"},{"file":"sc3d\/shelly_witch_tex.ktx","sha":"186bc389b734a3b4f42e152eb6680629c02ddd37"},{"file":"sc3d\/shelly_witch_tex.pvr","sha":"e3b6fab218c5e42a86c39f530e8b775f8ef1e2ac"},{"file":"sc3d\/shelly_witch_walk.scw","sha":"b0f9c89cfef6bba987d7feb439653ba713de705c"},{"file":"sc3d\/shelly_witch_win.scw","sha":"5e24b7234d8d17988a6a26bd67faaf50a93dd5f1"},{"file":"sc3d\/shockwave_blue.ktx","sha":"3b7b9a764e530496a749fe8eab0d14377d0be783"},{"file":"sc3d\/shockwave_blue.pvr","sha":"fb684658cdf1820e4af8508930fa97c0c8a1e27f"},{"file":"sc3d\/shockwave_red.ktx","sha":"fbad0123de9f8ea98cf5a05db2d6a1783546451c"},{"file":"sc3d\/shockwave_red.pvr","sha":"fcd3ae35379b721d9753f209bb24054e49b9ac2a"},{"file":"sc3d\/siege_base.ktx","sha":"d5baf54069be3898951bb1bc1466cf4d345405be"},{"file":"sc3d\/siege_base.pvr","sha":"2d112bb58b2eec2bd6166d2ec1ab6c70fd6c3dc5"},{"file":"sc3d\/siege_base.scw","sha":"a269499e5774ad653ad35a0a85ecdf4f3ff81ab4"},{"file":"sc3d\/siege_base_attack.scw","sha":"15a331a2e111b8479d114dd5fdd8c4cd27b0aa38"},{"file":"sc3d\/siege_base_projectile_blue.scw","sha":"191057aa452e5385aaacab996c922aae25eaa033"},{"file":"sc3d\/siege_base_projectile_red.scw","sha":"3bcbf9ea70f43d20bef2e34b979247a040870b72"},{"file":"sc3d\/siege_base_red.ktx","sha":"08b9676d1ac6f681c30bab0f45686a4c2c8e2999"},{"file":"sc3d\/siege_base_red.pvr","sha":"85ba0d2a8adfafc27276b04576535014a2e6ec66"},{"file":"sc3d\/skin_lightmap.png","sha":"98b8d4eb746078f8ac87c526d30c94a5e358106f"},{"file":"sc3d\/skin_specular_lightmap.png","sha":"844e895576ccaf027dfdf0f86a8d8a1b9b3cb601"},{"file":"sc3d\/sleepy_sandy.scw","sha":"130b8d94f3d33bd8990423d60418187e28fc3e29"},{"file":"sc3d\/sleepy_sandy_tex.ktx","sha":"ae6fa848322ed1251c6dcace51ea746a2c4b216a"},{"file":"sc3d\/sleepy_sandy_tex.pvr","sha":"e29b6e72e3cc59183ce2774705a9b0f818fd73b2"},{"file":"sc3d\/sniper_attack1.scw","sha":"783d8b52948f559b1f3ce2a8e20f459be2cc114b"},{"file":"sc3d\/sniper_d_01.ktx","sha":"c81bff5e55b4713ead51166754a5fc34f1d0a4c9"},{"file":"sc3d\/sniper_d_01.pvr","sha":"90bd374dab42e896b4c2574bfbb8fb3a845aa14b"},{"file":"sc3d\/sniper_geo.scw","sha":"29bcd4a5ea7b194c161eeb86e261ae071ebc4cb2"},{"file":"sc3d\/sniper_idle1.scw","sha":"d22b13bb4c388fc89575c05298bf2d9c1194b5d9"},{"file":"sc3d\/sniper_lose1.scw","sha":"b38afab52173ca6f13c2521dbfd6b672d2c76cbc"},{"file":"sc3d\/sniper_recoil1.scw","sha":"9221ee8962cc9f640269f39b47394278e508d392"},{"file":"sc3d\/sniper_ulti1.scw","sha":"00658a89227f6f7ea0a4dc86a9f71e4c1e651632"},{"file":"sc3d\/sniper_walk1.scw","sha":"14b1d0b2adcca8ed1b8e886aebb9bea382d5f83e"},{"file":"sc3d\/sniper_win1.scw","sha":"b499e8b763d49de29f4b38b049b5f6da89d569b6"},{"file":"sc3d\/specular_lightmap.png","sha":"76beef36edaf0d295256ebb11bb9b124431b0e6a"},{"file":"sc3d\/specular_lightmap_night.png","sha":"5079310a27c019af617aecb0c1ecec4b23f71d65"},{"file":"sc3d\/spike_attack.scw","sha":"a08872cce79a75ff56015645f1e7c1c06e142aa5"},{"file":"sc3d\/spike_base_cam.scw","sha":"90ed566bccdf4930b3ef38a7a6f753f3c6b290ee"},{"file":"sc3d\/spike_blossom_geo.scw","sha":"540e6634f1c405edc1f730426d4e087c95815449"},{"file":"sc3d\/spike_blossom_tex.ktx","sha":"41f9dfaaf7ea15eeccc37de40b819fbaa07d85a6"},{"file":"sc3d\/spike_blossom_tex.pvr","sha":"d0e418eb30a452823d4300d81cc55be0cd90b6f8"},{"file":"sc3d\/spike_geo.scw","sha":"bbdf17521d42fa1c71978c4f064abad6905a33ff"},{"file":"sc3d\/spike_idle.scw","sha":"d560c79e1dcee57121a179bc0c788e6c6c9b2add"},{"file":"sc3d\/spike_lose.scw","sha":"b04a7a33f865d7764f92ed37ff4fc404ce53f23a"},{"file":"sc3d\/spike_loseloop.scw","sha":"06fb2be60339ab250ccf00241c352d50b5243135"},{"file":"sc3d\/spike_mecha_geo.scw","sha":"96caf5c5bbb24b8cb4d51a71b29c513c55b3380d"},{"file":"sc3d\/spike_mecha_lose.scw","sha":"7f46da380a69fd780939daaebaf274e2512d9e7d"},{"file":"sc3d\/spike_mecha_tex.ktx","sha":"2168d98451ff82d7fa82472c48bdd3eb95047601"},{"file":"sc3d\/spike_mecha_tex.pvr","sha":"fd1c7b146ba51e986da3e96ee51cfad8e2a6ea22"},{"file":"sc3d\/spike_mecha_walk.scw","sha":"cacd7750c9a59ea6554b45cab60f03ba893988d0"},{"file":"sc3d\/spike_mecha_win.scw","sha":"b2ce131494c1aa1a6b0220558599b98a061149ae"},{"file":"sc3d\/spike_tex.ktx","sha":"af1a6f81d6c9efe27444dbe70f4f5401580370a1"},{"file":"sc3d\/spike_tex.pvr","sha":"ee9bd91ca752cc6eb781ec8bb251aeaaf9401640"},{"file":"sc3d\/spike_walk.scw","sha":"9dd4a63df914d16584ad950dd298e8c7b5257d85"},{"file":"sc3d\/spike_win.scw","sha":"7df19bbc2c0a9207529066ff246e09cfde65d1fe"},{"file":"sc3d\/spring_board.ktx","sha":"341683330e72d6f9fe590fd41d914141ec22785a"},{"file":"sc3d\/spring_board.pvr","sha":"0f0b05db0226c02be643235adbd3e11bc2627193"},{"file":"sc3d\/spring_board.scw","sha":"0b003a6f2ae9191bb62a81a23adeef3327b0ee9f"},{"file":"sc3d\/spring_board_diagonal.scw","sha":"238b24c91c589f00995246afbdc765dc34f0d6af"},{"file":"sc3d\/sprout_attack.scw","sha":"78bc2030fda9c7c4815daea7ede2a6d761aaa3ba"},{"file":"sc3d\/sprout_geo.scw","sha":"4090dff05bc881068a03c12b127f450b0c467c34"},{"file":"sc3d\/sprout_idle.scw","sha":"1597f45d4c1e9e019a1821bfe06046bb564e7c13"},{"file":"sc3d\/sprout_lose.scw","sha":"5e81e9f5f6205a12a80408f3cac131c7d4f62bc4"},{"file":"sc3d\/sprout_portrait.scw","sha":"07aedfda36f6c6d8b951e675471ee2b77b5c0f42"},{"file":"sc3d\/sprout_pushback.scw","sha":"9ce040309268d40f8812a6cdfbc2453746c8a4ef"},{"file":"sc3d\/sprout_reload.scw","sha":"63cc88a3a67d3bc9c580a720e5e65223b514f5f3"},{"file":"sc3d\/sprout_tex.ktx","sha":"287e8b3fc5cd6fc923d065541ddd97bcbadea4f1"},{"file":"sc3d\/sprout_tex.pvr","sha":"dfbe40617a4c2e3123351b1b8e8909a5000422d6"},{"file":"sc3d\/sprout_walk.scw","sha":"10e4cc988e4036fe1516a8069d997eca37000ca5"},{"file":"sc3d\/sprout_win.scw","sha":"dcf9c59a984f9f158aa65bf49f6420a8415b0dad"},{"file":"sc3d\/spruce_snowy.scw","sha":"2d78a3513f936951503e2370f976e54c4698cc62"},{"file":"sc3d\/stack_tire.scw","sha":"a527fb8923f12b9fbfd763b125e62245e4bcdbf3"},{"file":"sc3d\/stone_ruin_1.ktx","sha":"0939a64cc88bc7751cb0193ff70c27ba63ee6af6"},{"file":"sc3d\/stone_ruin_1.pvr","sha":"41f1357eb79ea927ca327010fd0a02aa21855349"},{"file":"sc3d\/stone_ruin_1.scw","sha":"3bcb82e7f388ad375cb4a6ae84dd83b8f73e0e03"},{"file":"sc3d\/tara_attack.scw","sha":"2ca62a791af9b9fb888ec0327c1f90b20b5a827a"},{"file":"sc3d\/tara_base_cam.scw","sha":"345a00cdd28689c4f123fb7463e9d88f9f70c59e"},{"file":"sc3d\/tara_blue_geo.scw","sha":"8e29d7776818c8b23158eaaabb22584d1bec1159"},{"file":"sc3d\/tara_blue_tex.ktx","sha":"52bf008eea31e26e30c331582777b14550ca93ab"},{"file":"sc3d\/tara_blue_tex.pvr","sha":"0527572a43eaa4dc0cd93f80415023341c6b3b41"},{"file":"sc3d\/tara_geo.scw","sha":"287f382bef695b2b2e2de81f7404d4f50822bf49"},{"file":"sc3d\/tara_idle.scw","sha":"df0ad27a580fbe853afa3626ec8f2ba35982cfef"},{"file":"sc3d\/tara_lose.scw","sha":"dbc3e85ac370dc8af426adce4dd6b7c5c3bbe1c4"},{"file":"sc3d\/tara_streetninja_attack.scw","sha":"db4146db4db3a1d4b33bd809e0aa9c4f1b89a09e"},{"file":"sc3d\/tara_streetninja_geo.scw","sha":"cf8c76be41ee0bc9c540dd1a2fa46e4f67277f88"},{"file":"sc3d\/tara_streetninja_idle.scw","sha":"a8b804e24482ffcd4c95caa7135ce474087eb9cf"},{"file":"sc3d\/tara_streetninja_lose.scw","sha":"d0e6c1e22e15948327bbc5055c5e0f835a9cd8ff"},{"file":"sc3d\/tara_streetninja_portrait.scw","sha":"03abbbd2c3025d9e0347ad14e3484e246f13c249"},{"file":"sc3d\/tara_streetninja_tex.ktx","sha":"ed6ca817c18950ad073bb50b552d0801f38ebfcd"},{"file":"sc3d\/tara_streetninja_tex.pvr","sha":"db811b6ecb482c7bcd8f8549fcbbc6dcc0fbd872"},{"file":"sc3d\/tara_streetninja_ult.scw","sha":"423974885592c8e411e13e97724be91dd38bdf4a"},{"file":"sc3d\/tara_streetninja_walk.scw","sha":"936bfb7ba668c89d4e5b280c1d40ab16fad42579"},{"file":"sc3d\/tara_streetninja_win.scw","sha":"8d8795d0b44539b403ddfea35858a6236512da40"},{"file":"sc3d\/tara_tex.ktx","sha":"d0f952ec43bad015a28c4c854060b4c559a81f98"},{"file":"sc3d\/tara_tex.pvr","sha":"809dc736bad8b32faa1a7d27a0907250147a4ed9"},{"file":"sc3d\/tara_ult.scw","sha":"7ab20c87651fb46e23e5e6315aa3bc9f83578761"},{"file":"sc3d\/tara_walk.scw","sha":"1909ec6249e4121d4f830cea2789e70a76a5709b"},{"file":"sc3d\/tara_win.scw","sha":"e3651bb03e9530beee2f65867ee4f9aa69b54c25"},{"file":"sc3d\/test_stack_tile.scw","sha":"1e619c1c2597812dce79c3758d88454b0ced75d4"},{"file":"sc3d\/tick_attack.scw","sha":"01ab193f823c81ead7d397be1486df13a863b68b"},{"file":"sc3d\/tick_base_cam.scw","sha":"a979efefa8a2a55f1175df599243a22305fda596"},{"file":"sc3d\/tick_def_atk_blue.ktx","sha":"c35c75233c2ff281d2717d2e54d8758cc6c79605"},{"file":"sc3d\/tick_def_atk_blue.pvr","sha":"e7fc2b48ec714bdb678840dcfabb478f4e69d696"},{"file":"sc3d\/tick_def_atk_projectile_blue.scw","sha":"1d5fa31bad07c6024aa06f34ae480d01fec6b3e0"},{"file":"sc3d\/tick_def_ulti_blue.ktx","sha":"5a91004fbef40a6d2d9ae3cc51da6c659cc935fd"},{"file":"sc3d\/tick_def_ulti_blue.pvr","sha":"3d73172c79edbc3c3cd5f45806835c57035050f7"},{"file":"sc3d\/tick_def_ulti_projectile_blue.scw","sha":"1292ba74aadfc582009e9c87ce36cf5ea0ba8388"},{"file":"sc3d\/tick_geo.scw","sha":"ceb8ca3caff7f3247ea2812f5f7638438036341f"},{"file":"sc3d\/tick_idle.scw","sha":"74abc3d4186e921c221dee0d4d99645c02b39cc8"},{"file":"sc3d\/tick_lose.scw","sha":"5cc79de1c2b4a9622186ea951a75ebb440d2963e"},{"file":"sc3d\/tick_tex.ktx","sha":"6c110b73bdabe191387dd33e13ec6b9b7ae5a678"},{"file":"sc3d\/tick_tex.pvr","sha":"ef82babb1cbb03694e1a2f2347c3982bbbe66652"},{"file":"sc3d\/tick_ult.scw","sha":"0f964faf255669e9085a5365b5af2e80358d37e1"},{"file":"sc3d\/tick_walk.scw","sha":"78921ccb23cf51c5796c83b0c37976ee12e51154"},{"file":"sc3d\/tick_win.scw","sha":"f3e22a8ef78904cd3f4e4194f451344b3522afa4"},{"file":"sc3d\/tnt_d_01.ktx","sha":"2568b53bb87a4767b5f89d9d14b7905a9ee63354"},{"file":"sc3d\/tnt_d_01.pvr","sha":"5c4c8d46cd1b99ef3726d9f61ec022d4b798c0bf"},{"file":"sc3d\/tnt_d_01_blue.ktx","sha":"4a5e6bc2494e6f76c0b5593847fc9393bfc42db2"},{"file":"sc3d\/tnt_d_01_blue.pvr","sha":"d05d6122eb3b67be8a87560e36706329f7829700"},{"file":"sc3d\/tntguy_attack1.scw","sha":"a7dd04be7100515a84b77d0bbd299334423b95bf"},{"file":"sc3d\/tntguy_geo.scw","sha":"9a0b44fae9848be0991f6d73c416577da0fb2aa3"},{"file":"sc3d\/tntguy_idle1.scw","sha":"595246697e02d8a00370a2a9f0491a28e17d5120"},{"file":"sc3d\/tntguy_lose1.scw","sha":"115bffa59791ee57522e84819d029240ad69b27b"},{"file":"sc3d\/tntguy_loseloop1.scw","sha":"388b6019394b5751d965c9c663ccdeb7b6e90711"},{"file":"sc3d\/tntguy_recoil1.scw","sha":"d6d34dab536da1fda26b14781381ae13cc7df4d0"},{"file":"sc3d\/tntguy_ulti1.scw","sha":"fbfb24eb545bc5432cbb6467e351e13bd6645cd6"},{"file":"sc3d\/tntguy_walk1.scw","sha":"b731ff30d6ffcad6de3c8c73c21fd9f6ad37af9e"},{"file":"sc3d\/tntguy_win1.scw","sha":"241941e1d0754afa242b32ed11857a45100fed90"},{"file":"sc3d\/tntguy_winloop1.scw","sha":"b73ca2cbc7a5d49dff286a301b18acee6563fad3"},{"file":"sc3d\/tombstone_large.scw","sha":"6bac9cf3d595927e501c6146d07ca4949a13be5c"},{"file":"sc3d\/tombstones_1.scw","sha":"e31cecc0f95405809130bae4958d12df8819a8fe"},{"file":"sc3d\/town_gem_spawn.ktx","sha":"7e3b2b37dce2574868c61ce43934333eb410d1dd"},{"file":"sc3d\/town_gem_spawn.pvr","sha":"7cfae7900a0e6c2c57753214cc935c972ef3b1ee"},{"file":"sc3d\/track_wood.ktx","sha":"48b2b96bb795b407dc520728825b41ea1119f797"},{"file":"sc3d\/track_wood.pvr","sha":"80a656718359ebc1229f74c306beaa1a38c7b897"},{"file":"sc3d\/traffic_cone.scw","sha":"a9e1ca4d8326236240d827d3621f10af3b7958e5"},{"file":"sc3d\/turret_attack.scw","sha":"1e75698d68837459d60138814e10e69ae3d7a88b"},{"file":"sc3d\/turret_dragon_geo.scw","sha":"b2078e35fc99f94877202da2a3d16a0e6008a7e5"},{"file":"sc3d\/turret_dragon_tex.ktx","sha":"55be252548779dd1ebbe75c200a2b6c75e13f25d"},{"file":"sc3d\/turret_dragon_tex.pvr","sha":"c2eebecf7f4736c5febdb0be72a0fe5690e972ef"},{"file":"sc3d\/turret_dragon_win.scw","sha":"fc293eb9af95b90012a9e1796832a762cb11457b"},{"file":"sc3d\/turret_geo.scw","sha":"605d64140fa91654edc73d17fd050bd7e5520eb7"},{"file":"sc3d\/turret_idle.scw","sha":"28e2ba12e4ce5cc01091e40a7321fa9a18fb7281"},{"file":"sc3d\/turret_jessie_attack.scw","sha":"0ddba05b904ab42849bf915a720245d9471c3a62"},{"file":"sc3d\/turret_jessie_geo.scw","sha":"1bce78c5265f314cf972a2249b0d7059df3f35f0"},{"file":"sc3d\/turret_jessie_idle.scw","sha":"b992a35bf937ec2fb69fbac6e6909d3d7a74a71b"},{"file":"sc3d\/turret_jessie_red_dragon_attack.scw","sha":"942258e53c6ef786836b9a22a18efc5f925f5dd5"},{"file":"sc3d\/turret_jessie_red_dragon_geo.scw","sha":"69fce49e5b466dc996485cea22d3361ce76a89d8"},{"file":"sc3d\/turret_jessie_red_dragon_idle.scw","sha":"762fafd8077fd5adb5c10665655f682dfe392758"},{"file":"sc3d\/turret_jessie_red_dragon_spawn.scw","sha":"3e27c64f3c30c9a0d9fed4e579298eba26fa2fdd"},{"file":"sc3d\/turret_jessie_spawn.scw","sha":"19a2eebf27a94d574daf8b6f4f0b03f1f3a38d70"},{"file":"sc3d\/turret_jessie_tanuki_geo.scw","sha":"de70a04a6e9998f0d6bb2098ca8a1eed0461cb03"},{"file":"sc3d\/turret_jessie_tanuki_tex.ktx","sha":"274f06b801a09b9672cc00d2c6b87d0d980a6f15"},{"file":"sc3d\/turret_jessie_tanuki_tex.pvr","sha":"e8841c532aed46987955db4b70668a99b5d58f21"},{"file":"sc3d\/turret_spawn.scw","sha":"702d6adcc901d695487dd820c80dfe3fdb04abaa"},{"file":"sc3d\/turret_summertime_geo.scw","sha":"bcb952f221a234288dfd01e373814a6919c08c75"},{"file":"sc3d\/turret_summertime_tex.ktx","sha":"37c1c6478e7a2ad9f8783a5a06bc9aade1ae4e4e"},{"file":"sc3d\/turret_summertime_tex.pvr","sha":"25d299e52a4da566eb6fa3feef1505833b4c947a"},{"file":"sc3d\/undertaker_idle.scw","sha":"63b9371a7d0440eeb68f00b3bb8f5d14735a1d28"},{"file":"sc3d\/undertaker_lose1.scw","sha":"73af4a5ae5a20fba1d61533ecfd190d24fc68611"},{"file":"sc3d\/undertaker_loseloop1.scw","sha":"8fbbac1d2b1f0f376dec82d89128d9aa3c83dacb"},{"file":"sc3d\/undertaker_recoil1.scw","sha":"2b7e7d64c46cf87cccdad4d6100c313a661abc47"},{"file":"sc3d\/undertaker_tex.ktx","sha":"0a34a124b6db69632556652840f07dc3de7c5564"},{"file":"sc3d\/undertaker_tex.pvr","sha":"262c9730061bb64689df3e79e66b9d3382264999"},{"file":"sc3d\/undertaker_ulti_attack.scw","sha":"53d0cd1947c66508ca73ce79e2ae6ab69f173068"},{"file":"sc3d\/undertaker_ulti_recoil1.scw","sha":"d1aca282a26ce2653f6976b8a515c852447dd488"},{"file":"sc3d\/undertaker_walk.scw","sha":"84bc7d22d12d1f578b778628c3683a0f170f3b30"},{"file":"sc3d\/undertaker_win1.scw","sha":"ad02bdc60c43e61c650c1d799030e824ab0553f6"},{"file":"sc3d\/undertaker_winloop1.scw","sha":"a207f68548ef5728e6ad18eccebafa35f0b39ab8"},{"file":"sc3d\/vase_1.ktx","sha":"2f1350b748e6857b74456321d668613c2f12654e"},{"file":"sc3d\/vase_1.pvr","sha":"386796f87b8f7b919a57460aa488647b0739f62b"},{"file":"sc3d\/vase_1.scw","sha":"5769b23154eaab53e17a3a33474a3f6b886061ef"},{"file":"sc3d\/wally_wall.ktx","sha":"0645a2c11c4a398c7892595943a4d7cb3696dee8"},{"file":"sc3d\/wally_wall.pvr","sha":"bff607a5aa4312e90b9848d76c2db19dbea13789"},{"file":"sc3d\/wally_wall.scw","sha":"a76207956219b69709036869f6c0a369cee5850e"},{"file":"sc3d\/water_tile.scw","sha":"9bf6a2a00f1874028a6bac4fc402954a408c5046"},{"file":"sc3d\/water_tile_darryls_ship.scw","sha":"58c99e56fa8b5bb6d2f49f543b23ee6451e79dc6"},{"file":"sc3d\/water_tile_mine.scw","sha":"c5b974c641ec39edff4a55ccc5b53b7c5d99abac"},{"file":"sc3d\/water_tile_mortuary.scw","sha":"92b1b7a657a3ae20fa301e0c20df43e54a5e7282"},{"file":"sc3d\/water_tile_retropolis.scw","sha":"f03548a5c6c7decee3454f151487dd15bbcbfd87"},{"file":"sc3d\/water_tile_snowy.scw","sha":"d724eb1c6eee03e3c08a98581073f7e25dcb8749"},{"file":"sc3d\/water_tile_town.scw","sha":"65c147153b02bbfdd27d621fceecb2dadfa39653"},{"file":"sc3d\/wooden_fence.scw","sha":"bfb52217ba40126d883df391cab5676a96136471"},{"file":"sc3d\/wooden_fence_darryls_ship.scw","sha":"756498b529e4ea54d5928b8825a6d1e643b978f8"},{"file":"sc3d\/wooden_fence_town.scw","sha":"9b8ff89ee0b63a2ad1b5f4f863d0f860250b9198"},{"file":"sfx\/100coins_01.ogg","sha":"f50ec28726c65e910028e94a22c405616d62d965"},{"file":"sfx\/2x_gatcha_double_01.ogg","sha":"6945ec50b65b1186f8e6936536bd0188373f582c"},{"file":"sfx\/8bit_atk_02.ogg","sha":"4ed66202b3105ce6c31777fcd9941f78e9160075"},{"file":"sfx\/8bit_die_vo_01.ogg","sha":"9b71448681400760949fd65a6c9645680a8895e1"},{"file":"sfx\/8bit_die_vo_02.ogg","sha":"80694f17d65293629a2a925a1ae5f56b4fa97de4"},{"file":"sfx\/8bit_die_vo_03.ogg","sha":"ef073991f4cba51abf63a0f5cdb200818cfa7b88"},{"file":"sfx\/8bit_die_vo_04.ogg","sha":"89283d2010a65d5f779774249c263fd10d55ec39"},{"file":"sfx\/8bit_die_vo_05.ogg","sha":"3f601c2a7e8de4da8f898c700f57c26a05eb0104"},{"file":"sfx\/8bit_die_vo_06.ogg","sha":"69debc93b1f08c197ad7d8e8e7cd111529a59bd3"},{"file":"sfx\/8bit_gadget_01.ogg","sha":"a51b2b96d608e43a5a0ee0a333540d1501e8deb3"},{"file":"sfx\/8bit_hurt_vo_01.ogg","sha":"db633e9875fdf5af693f54d10ad4d05b43bff4dd"},{"file":"sfx\/8bit_hurt_vo_02.ogg","sha":"05375937980dbf59db946801f7cefdf3d8c6b7c5"},{"file":"sfx\/8bit_hurt_vo_03.ogg","sha":"641cf91c717a2ea9d07bf54a597b11ceb02c5e00"},{"file":"sfx\/8bit_hurt_vo_04.ogg","sha":"0c682820f3c948ab1397b97ea24ac4fb9539c193"},{"file":"sfx\/8bit_hurt_vo_05.ogg","sha":"e32774927d725b68362a828c9c94509c0b2925b9"},{"file":"sfx\/8bit_kill_vo_01.ogg","sha":"a7d71cf4e8045f7a47167bdbab375d0ea9b80db3"},{"file":"sfx\/8bit_kill_vo_02.ogg","sha":"f4cdad7337e9ac17978e007f9f1372b6d9a066a4"},{"file":"sfx\/8bit_kill_vo_03.ogg","sha":"b554e8b3cd8fb168d3c8d4d1a8447b33022dbf58"},{"file":"sfx\/8bit_kill_vo_04.ogg","sha":"e2ef690eabb58ef1f1ad85cda088826554f93088"},{"file":"sfx\/8bit_lead_vo_01.ogg","sha":"2fc4c2144f59db834b434ed9bbc93af122704036"},{"file":"sfx\/8bit_lead_vo_02.ogg","sha":"836e74b88c54fea3105f62b50b1e3dc7a6d6b1ec"},{"file":"sfx\/8bit_lead_vo_03.ogg","sha":"39a44be8a393500a201056ffb23c16033c592b01"},{"file":"sfx\/8bit_noammo_01.ogg","sha":"9c8ad289be0d3818a4fecce6e95a662af0f6bbeb"},{"file":"sfx\/8bit_reload_01.ogg","sha":"ad026d3417eab0c7a31ae4d3dc21e11c9bafef65"},{"file":"sfx\/8bit_start_vo_01.ogg","sha":"41f762a1a8ee3e4492da5b249b0021531517dcc2"},{"file":"sfx\/8bit_start_vo_02.ogg","sha":"cab6e4d51ed45c8a3ac47c4ae02dd99baa2f4a24"},{"file":"sfx\/8bit_start_vo_03.ogg","sha":"a246b4ee8d2f00b43fca21ecba7a0135decc61b9"},{"file":"sfx\/8bit_ulti_02.ogg","sha":"382a28e9eb476a3b706f02bd511894108a5af1df"},{"file":"sfx\/8bit_ulti_vo_01.ogg","sha":"9c679bd265d697bb34d36d5fd65cf2bccbbb84aa"},{"file":"sfx\/8bitvirus_die_vo_01.ogg","sha":"d65dd134e7c9cf80c3bb4e564110363ac3e0a613"},{"file":"sfx\/8bitvirus_die_vo_02.ogg","sha":"322efc7283b10f72c98061b6d6da1ad0816042cf"},{"file":"sfx\/8bitvirus_die_vo_03.ogg","sha":"72f0d483132da74a8e30bf3bbacf79b982f3bfbc"},{"file":"sfx\/8bitvirus_die_vo_04.ogg","sha":"42ca460dbde30dab8d8da942724111c85f00fd0a"},{"file":"sfx\/8bitvirus_hurt_vo_01.ogg","sha":"b5ceadc2038935029db5a5ea9024cffaa33b537e"},{"file":"sfx\/8bitvirus_hurt_vo_02.ogg","sha":"652b7f26478ef31371a6da97799aebff3064977d"},{"file":"sfx\/8bitvirus_hurt_vo_03.ogg","sha":"ea16995c99c770994962002f8abf334fdf3a9115"},{"file":"sfx\/8bitvirus_kill_vo_01.ogg","sha":"8041f1bece8ff0dfc1642f19671a0cedda463e1b"},{"file":"sfx\/8bitvirus_kill_vo_02.ogg","sha":"ea3648d28d89e316c7a3a4abf84bffec61ed473e"},{"file":"sfx\/8bitvirus_kill_vo_03.ogg","sha":"fe3434d7a7ecf46f27aff8e785e8bdc7fa336ba4"},{"file":"sfx\/8bitvirus_kill_vo_04.ogg","sha":"84f79cb64f14fc75a75bb706f529cf30a4329b87"},{"file":"sfx\/8bitvirus_lead_vo_01.ogg","sha":"c61561f4d54ed57c001124fa2d27e3344aba52bc"},{"file":"sfx\/8bitvirus_lead_vo_02.ogg","sha":"1a3f0caa1bf66d9a55eabad4a682c137a14878ab"},{"file":"sfx\/8bitvirus_lead_vo_03.ogg","sha":"d723faafa56389da4f548ef4f96a1b4fb3cf8c6a"},{"file":"sfx\/8bitvirus_lead_vo_04.ogg","sha":"3d66b8606f40ce2a0e826fe4c8e96a946933184c"},{"file":"sfx\/8bitvirus_start_vo_01.ogg","sha":"e8f7885605d96cc530c16008e7cd8df58ab0bf85"},{"file":"sfx\/8bitvirus_start_vo_02.ogg","sha":"20ceb65340e1f0db0b2e380b3b663b7138513339"},{"file":"sfx\/8bitvirus_start_vo_03.ogg","sha":"deb3512cc98c2826b465cf715ca5ff52bc3b44fe"},{"file":"sfx\/8bitvirus_start_vo_04.ogg","sha":"c5280add1ea5ec379f1540d869c9657cb664ba3c"},{"file":"sfx\/8bitvirus_start_vo_05.ogg","sha":"86516cb6ceea388419bc87d7b9813fc75698041b"},{"file":"sfx\/8bitvirus_start_vo_06.ogg","sha":"f9ec14df98e6727b0d465e72e919c32f8954ca57"},{"file":"sfx\/8bitvirus_ulti_vo_01.ogg","sha":"2cd92a3411927458b0701a8de68c4efc608d7b33"},{"file":"sfx\/8bitvirus_ulti_vo_02.ogg","sha":"4aa6d22304c745f1020922ba7f05dc6f7cbb2af2"},{"file":"sfx\/8bitvirus_ulti_vo_03.ogg","sha":"e70d6463fb90d1fabbc574475fb92963b3229904"},{"file":"sfx\/Nita_dog_summon_01.ogg","sha":"cd2561f14f1538e96570ef2ca8db48e67e2665bb"},{"file":"sfx\/Rosa_punch_01.ogg","sha":"b25385a7f8864fa7bf0f656c45709f5163be1dbf"},{"file":"sfx\/Rosa_reload_01.ogg","sha":"8fdf15a34f94c603c9bb9b559697296313ccbd2d"},{"file":"sfx\/Rosa_ulti_01.ogg","sha":"33c3148d648cb06fb4c14a6574cffe5f3a739c53"},{"file":"sfx\/bad_move_01.ogg","sha":"3ec2061ad4cadd1c503bf97ba8e7fbda23113ed6"},{"file":"sfx\/bandit_reload_01.ogg","sha":"7561564a23a226da76e6eb87a381c4be8dffd576"},{"file":"sfx\/bar_fire_atk_01.ogg","sha":"1dc3b81cc94c1b7a328e69560c7030cdfbc946e4"},{"file":"sfx\/bar_fire_hit_01.ogg","sha":"4759536d6d2e8ed1529f1f551ff533bc5ebf9f80"},{"file":"sfx\/barkeep_bottle_hit_01.ogg","sha":"4ca1bc1d433d57fc5ae9dea1e614f04dd47cde74"},{"file":"sfx\/barkeep_dryfire_01.ogg","sha":"339848424730bcc5cfc750f77e35e9241df7b5dd"},{"file":"sfx\/barkeep_reload_01.ogg","sha":"ac0b6e5b4f83d03b668d94a1c31232ebf499a1bc"},{"file":"sfx\/barkeep_throw_01.ogg","sha":"e11a417261641d99036acaee0a2082958c38f8a2"},{"file":"sfx\/barkeep_throw_ulti_01.ogg","sha":"16716e865732966a01d07873fe37542e1aaa12d1"},{"file":"sfx\/barkeep_ulti_hit_01.ogg","sha":"01586ee110b9b2c173e68f01c8e753fa1ca0c58b"},{"file":"sfx\/barley_die_01.ogg","sha":"b23988dc1a0603d88e59d358def420d482f5f680"},{"file":"sfx\/barley_die_02.ogg","sha":"75c1c3d5bdff951fdcfa51a20772addd6b129010"},{"file":"sfx\/barley_gadget_01.ogg","sha":"2d388acb14c3c0c0149cf264e5d9fa55bb6ac4a6"},{"file":"sfx\/barley_hurt_01.ogg","sha":"b44e50cdcb204c643f1594e456eb37e9ed3f516e"},{"file":"sfx\/barley_hurt_02.ogg","sha":"f2c6542e05ca52ef71528ed532849977a3974bf0"},{"file":"sfx\/barley_hurt_03.ogg","sha":"fb43fd5261d8c94daa0d84c15c02cc78dabc02c2"},{"file":"sfx\/barley_hurt_04.ogg","sha":"12f6ed9089ed5ea7a0ed0fd5f8ed109ff5783a33"},{"file":"sfx\/barley_kill_01.ogg","sha":"97d12f0aeadf577f90a7df17b56b6da07c3b5b38"},{"file":"sfx\/barley_kill_02.ogg","sha":"2bae530c8fc5ba9771741c1a1097cd9cd2754850"},{"file":"sfx\/barley_kill_03.ogg","sha":"8e3df2e7f03bbc3a0b337993c67928d65b78fdd9"},{"file":"sfx\/barley_kill_04.ogg","sha":"e29fffbf0ef78ba88c27b695411868cf854fbd51"},{"file":"sfx\/barley_lead_01.ogg","sha":"da32340cb4ca5390c4217b2a7876aa3eda8a18d3"},{"file":"sfx\/barley_start_01.ogg","sha":"b76060601c160c43c2afffb8a68e61e192f231ab"},{"file":"sfx\/barley_start_02.ogg","sha":"508784c50b1e99aaaded8c31985011ae0f591035"},{"file":"sfx\/barley_start_03.ogg","sha":"aea2e1af712b8a1371101d1ba34043ea4e08b005"},{"file":"sfx\/barley_start_04.ogg","sha":"18fe95427031959b9cc9e01531ba20bacf13c054"},{"file":"sfx\/barley_throw_01.ogg","sha":"c2f9a557331e419bfc9ad3897c7fa6d6a0e8c937"},{"file":"sfx\/barley_throw_02.ogg","sha":"c26b6469b4d8fee9d5a5b0952fa5879af13218f1"},{"file":"sfx\/barley_ulti_01.ogg","sha":"9618ac44364f67d18466b0618135dd1106d4abf2"},{"file":"sfx\/barley_ulti_02.ogg","sha":"3fce7997593713686ba0ac7d79928bf8cc479d1e"},{"file":"sfx\/barrel_roll_02.ogg","sha":"cf26028bdd46f0b46dd4769c416961c655fa962c"},{"file":"sfx\/barrelroll_ulti_01.ogg","sha":"68580882c2a74a234506d55bbcf9252ba90dbbc1"},{"file":"sfx\/bea_atk_01.ogg","sha":"e14a9d681400af2c84a6a3fd66c818c9667a346a"},{"file":"sfx\/bea_atk_hit_01.ogg","sha":"f91a8a3547df13c44ceaecf1d08409aa68e787dd"},{"file":"sfx\/bea_atk_vo_01.ogg","sha":"c605a05a2af783305e920ccee32af3cd9385c235"},{"file":"sfx\/bea_atk_vo_02.ogg","sha":"1cb824829f7693ff3e3db47c8f114d0915bb2194"},{"file":"sfx\/bea_atk_vo_03.ogg","sha":"d5e807dcb252df3ecf0c5ca6398be73c620cedaf"},{"file":"sfx\/bea_die_vo_01.ogg","sha":"cbf31e87c4eb955258669b460c0999ef6d883d8c"},{"file":"sfx\/bea_die_vo_02.ogg","sha":"55c9c2d0c00665de0b22edf578721abbd887919d"},{"file":"sfx\/bea_die_vo_03.ogg","sha":"1f97c03bc3f7311e974dfb65dfbb68465dffde1e"},{"file":"sfx\/bea_gadget_01.ogg","sha":"fba987b3856376fb8cd507a6caff1f62ab918c72"},{"file":"sfx\/bea_hurt_vo_01.ogg","sha":"67ada74e7cec4a9dbd9476abb3ec6c0511daa6ca"},{"file":"sfx\/bea_hurt_vo_02.ogg","sha":"277dc232f2dbafe827456b5a0d5303a0634e1f50"},{"file":"sfx\/bea_hurt_vo_03.ogg","sha":"577aac5449a3e1919c939e2adcf5ad21ca7648aa"},{"file":"sfx\/bea_hurt_vo_04.ogg","sha":"6c579b34cab5e24663fc4100af56982b1973bc71"},{"file":"sfx\/bea_hurt_vo_05.ogg","sha":"2516a40b3f5715feba97c9e13213686960555f53"},{"file":"sfx\/bea_kill_vo_01.ogg","sha":"9367fc905c94e4b7c0e512fdd349e054aeb53f32"},{"file":"sfx\/bea_kill_vo_02.ogg","sha":"147bd1711b468354864a9ccbb017391abf7d30e8"},{"file":"sfx\/bea_kill_vo_03.ogg","sha":"72e294cb45081c0645faa2f0e5ef15172d724a11"},{"file":"sfx\/bea_kill_vo_04.ogg","sha":"3c082dbe5c1d8d49afa1d12af475c5c4ec3cce48"},{"file":"sfx\/bea_lead_vo_01.ogg","sha":"40f2edbc4fd0d236e4ebc4355233dd20314c6dec"},{"file":"sfx\/bea_lead_vo_02.ogg","sha":"3c8229b7dc5439d1df8cdd670d22205c557919d2"},{"file":"sfx\/bea_lead_vo_03.ogg","sha":"32e7b671f7c558a6683371621e8276ff675680e0"},{"file":"sfx\/bea_lead_vo_04.ogg","sha":"7877d92bcd337f9c5d579497644c8c571b027b4b"},{"file":"sfx\/bea_lead_vo_05.ogg","sha":"a4b85a8020b214c72600105515a6c34d0fbf667e"},{"file":"sfx\/bea_no_ammo_01.ogg","sha":"3fff77b063b15ea10917dbc755cdfbe055bd57c7"},{"file":"sfx\/bea_reload_01.ogg","sha":"9634b882bf8f8e9f8ebabb0b5fac28bbbbbc4ef6"},{"file":"sfx\/bea_start_vo_01.ogg","sha":"be22341f2cae3fd109250e1c2e761ddc0d50611d"},{"file":"sfx\/bea_start_vo_02.ogg","sha":"c6428f5fe88d038fa75d8ccf252d30255b492bb0"},{"file":"sfx\/bea_start_vo_03.ogg","sha":"b8bfc6953da79b8b17d19f8030320680bc1a066b"},{"file":"sfx\/bea_start_vo_04.ogg","sha":"739f81b8c18131a29acf00107a98d5b8ce544e41"},{"file":"sfx\/bea_start_vo_05.ogg","sha":"4ef17de2f1a94b759eefec4d407239d4241d0aa9"},{"file":"sfx\/bea_ulti_01.ogg","sha":"a5b5be16bfc01780465930b2b261267e47cbe077"},{"file":"sfx\/bea_ulti_vo_01.ogg","sha":"036e5bf0f038dd24d6914a3f34de865bcd9e3e9c"},{"file":"sfx\/bea_ulti_vo_02.ogg","sha":"33928cea063345edad27c3f6cee98ed4d64f1c41"},{"file":"sfx\/bea_ulti_vo_03.ogg","sha":"bedfc21dd66008b91597ff6c160e78d5ce3af803"},{"file":"sfx\/bea_ulti_vo_04.ogg","sha":"0c125228a15534c26440af9c92a0a8b142f625ac"},{"file":"sfx\/beach_brock_explo_01.ogg","sha":"d4252b2750930cda0afda344efe86cb6c0d53fe2"},{"file":"sfx\/bear_spawn_01.ogg","sha":"7e1b3681c1523163633b10bd49b0005a56fbbc54"},{"file":"sfx\/become_chips_01.ogg","sha":"1462bfc178324c90864dcdc4f348794e54faf5fe"},{"file":"sfx\/bibi_bubble_hit_01.ogg","sha":"b96ecb9d089892f12c30804766535881c40c45da"},{"file":"sfx\/bibi_bubble_pop_01.ogg","sha":"c07e68739fe5d739d13f5224bd50c6c98d96ee12"},{"file":"sfx\/bibi_die_vo_01.ogg","sha":"58e30e2d23a9704df3dd2ef892605146fa387728"},{"file":"sfx\/bibi_die_vo_02.ogg","sha":"acbf09fca8a2a0ba3aab223d09343a9fed0763a8"},{"file":"sfx\/bibi_die_vo_03.ogg","sha":"4d1633b80056a076189757362d0e8c1cefd8171c"},{"file":"sfx\/bibi_die_vo_04.ogg","sha":"02359b415fc0ead50d0bea364c9bd0d2a636f846"},{"file":"sfx\/bibi_hurt_vo_01.ogg","sha":"3028d231875369375883709e0712dd2f4fe4abbe"},{"file":"sfx\/bibi_hurt_vo_02.ogg","sha":"b5de50b6f118f05ab6d21ccd716b0a105ac1b09f"},{"file":"sfx\/bibi_hurt_vo_03.ogg","sha":"444831efcd4061aeb0b4a9fac589d9a478c44818"},{"file":"sfx\/bibi_hurt_vo_04.ogg","sha":"f4bb01523f1716ad75dce2a5e129fb669aaf2afb"},{"file":"sfx\/bibi_kill_vo_01.ogg","sha":"26997303cbfd016f7cf960f4aed7e838cadd40bd"},{"file":"sfx\/bibi_kill_vo_02.ogg","sha":"3c944be9661efc4d3153d57647c058d8280f39c9"},{"file":"sfx\/bibi_kill_vo_03.ogg","sha":"9d0de0d695679e504097562745cd25772c9be9c3"},{"file":"sfx\/bibi_kill_vo_04.ogg","sha":"dee7169ec4bcdf9b19b42a123ba0217a552b57c6"},{"file":"sfx\/bibi_lead_vo_01.ogg","sha":"175baa4410401a3ef8f05be39aa2259eeaff615b"},{"file":"sfx\/bibi_lead_vo_02.ogg","sha":"1fdcd0c5694b12b7492c424706a368624bc01b37"},{"file":"sfx\/bibi_lead_vo_03.ogg","sha":"70c72caa1d3f6e38ef6b2039947e63180f6742ab"},{"file":"sfx\/bibi_lead_vo_04.ogg","sha":"8031a74cba02e019255d9b93f05006a643211187"},{"file":"sfx\/bibi_reload_01.ogg","sha":"b42461a211acece6b69df8daa2b1cde213366c1f"},{"file":"sfx\/bibi_start_vo_01.ogg","sha":"467bbf384d3064e9c970c42018213d98bf43fa6f"},{"file":"sfx\/bibi_start_vo_02.ogg","sha":"f82560515b54a8f5d0e64733bd9feb09664d0f93"},{"file":"sfx\/bibi_start_vo_03.ogg","sha":"2a8b51c3c3f4bb7a056c851f4b75065c60c3ccc8"},{"file":"sfx\/bibi_start_vo_04.ogg","sha":"3c84060ae5972cfe1781285fd6d5d5849b599057"},{"file":"sfx\/bibi_start_vo_05.ogg","sha":"20b9bb4273620137c19dca12eba058931d4f21cd"},{"file":"sfx\/bibi_start_vo_06.ogg","sha":"3a87518bc76f52f743be7c423a52aae91459d648"},{"file":"sfx\/bibi_swing_03.ogg","sha":"d760e5516dc77fa4cd7ce5573c9eddb629dc25ef"},{"file":"sfx\/bibi_ulti_02.ogg","sha":"4888379fd41de9c4e9c98cbd834560a4e23d7ab0"},{"file":"sfx\/bibi_ulti_hit_01.ogg","sha":"d8f424b5bc41e512a5ab36cf8fb86d0c41524f38"},{"file":"sfx\/bibi_ulti_vo_01.ogg","sha":"5fa34e9f8a4464e5048f487be6eca0f3748d353e"},{"file":"sfx\/bibi_ulti_vo_02.ogg","sha":"7b84bc0d5cc6971f0e022fc83ff803c4da60f333"},{"file":"sfx\/bibi_ulti_vo_03.ogg","sha":"3daef6975212182aaaead245d2961de021399c0c"},{"file":"sfx\/bibi_ulti_vo_04.ogg","sha":"b986396600f2d63ad4094efed58f909b171cf0ab"},{"file":"sfx\/bibibat_impact_01.ogg","sha":"7a94cf6eee779985e33b665fbe9fc6db1a880d52"},{"file":"sfx\/bigshotgun01.ogg","sha":"e0a3dc0e7a449a94f7efafe196bcb200c11229f5"},{"file":"sfx\/blink_01.ogg","sha":"f2a9dd801c0f5f618751dc90af7cc3e448bbadb8"},{"file":"sfx\/blink_01v2.ogg","sha":"eca1f53eaf81a639f8a6995de7d6e0d13c673407"},{"file":"sfx\/blue_mine_01.ogg","sha":"550f3731754f9c22da4ae2b3bbe4c29076813c1b"},{"file":"sfx\/bo_die_01.ogg","sha":"e5c60e48c874c73f5e1265da936ba996d8d8987d"},{"file":"sfx\/bo_die_02.ogg","sha":"0432ced9caf74ae526afa53245c12d6cf88e248d"},{"file":"sfx\/bo_die_03.ogg","sha":"eb353c6c470ce316b223514bbfba8626f01dfcbd"},{"file":"sfx\/bo_die_04.ogg","sha":"e92167a71d5fb0219d8ee7a6f16736a1d4a039d5"},{"file":"sfx\/bo_fire_vo_01.ogg","sha":"5d581e35de4a34b06a6ad43db1f550a43b38998f"},{"file":"sfx\/bo_fire_vo_02.ogg","sha":"5051923b86f7622436ed424153b4330dd16a0d75"},{"file":"sfx\/bo_fire_vo_03.ogg","sha":"516b29e779d6c15fdf2b572611d64e5b811eb294"},{"file":"sfx\/bo_fire_vo_04.ogg","sha":"984de812313d6b533238fd101789eee3932004f4"},{"file":"sfx\/bo_gadget_01.ogg","sha":"cf7f787e8b2f263033079ed7b5488a483cd3b48d"},{"file":"sfx\/bo_hurt_01.ogg","sha":"22cd6e733095aff8e218c1b0fe1106db40ffd0db"},{"file":"sfx\/bo_hurt_02.ogg","sha":"8ebdf6f5fcc0dca99d89b687881aae54c033918a"},{"file":"sfx\/bo_hurt_03.ogg","sha":"d4a8d06904c9397d520867a0d37da1cce324d60e"},{"file":"sfx\/bo_hurt_04.ogg","sha":"ed1407a2704fae611bb5ac953df4452f71bf58fb"},{"file":"sfx\/bo_kill_vo_01.ogg","sha":"41de82d27f16b3771eb52245170b2c7dfea02301"},{"file":"sfx\/bo_kill_vo_02.ogg","sha":"a8a8abd07590901600fc4270ad462b36b69aa8e2"},{"file":"sfx\/bo_kill_vo_03.ogg","sha":"d84d49cd59d329f2ea221a0a3736545dbf0ef556"},{"file":"sfx\/bo_kill_vo_04.ogg","sha":"bfaee7fdf8144b2b87064388bb188d8678f68289"},{"file":"sfx\/bo_lead_vo_01.ogg","sha":"e0b6fbcab8de7bc961ce34955d78840ba842f7d3"},{"file":"sfx\/bo_lead_vo_02.ogg","sha":"519694c1b210b06855e44afa37a188d3cd387b44"},{"file":"sfx\/bo_lead_vo_03.ogg","sha":"1016a680399ffa6df50595777be1c3449cf6c100"},{"file":"sfx\/bo_lead_vo_04.ogg","sha":"48d6aea50317bfa85cb910228c0677ec073752d9"},{"file":"sfx\/bo_mine_spawn_01.ogg","sha":"979cc466d68cecff33c1da5881005f155537ee3c"},{"file":"sfx\/bo_start_vo_01.ogg","sha":"1b6da6f039088aebc4c4ae612b90480f467c7690"},{"file":"sfx\/bo_start_vo_02.ogg","sha":"f3bcc31c55c0edcbf3f1d89932eeaa3967bb0888"},{"file":"sfx\/bo_start_vo_03.ogg","sha":"774d113a672369d5f71c83c003a1d1dd0f0fd7a4"},{"file":"sfx\/bo_start_vo_04.ogg","sha":"7d955607ba45815b11757d628609dfd659f8f6fa"},{"file":"sfx\/bo_start_vo_05.ogg","sha":"e7bc8946d96f2b5d636e9d04a3c928e3803e7f6e"},{"file":"sfx\/bo_ulti_vo_01.ogg","sha":"74ce40045ba659d0298b444bbf26ecceb3ae9380"},{"file":"sfx\/bo_ulti_vo_02.ogg","sha":"38ed612442dba16bc8c9cdf0c3d24cb2309b940b"},{"file":"sfx\/bo_ulti_vo_03.ogg","sha":"afc3e58b0b7e3c6ac4e286dfe0836c7427a8f5af"},{"file":"sfx\/bo_ulti_vo_04.ogg","sha":"5092f34a879ffc309733125b6b5f96f2b09f2f99"},{"file":"sfx\/bomb_bleeps_01.ogg","sha":"33144deaabcdb1be18748fc9f9204873cc4ccfa5"},{"file":"sfx\/boss_spawn_seq_01.ogg","sha":"1ad0c68000345367d3ade246a7a76a51aec375f5"},{"file":"sfx\/bounce_fire_01.ogg","sha":"7b999e8669698a2b053eea1e2cd5f4742b03ba11"},{"file":"sfx\/bow_dryfire_01.ogg","sha":"96f5c5155b098219791185e680f319380aa9ff77"},{"file":"sfx\/bow_fire_01.ogg","sha":"dfed27d8391a9cbe0d6ebf03b2b80de446c058b6"},{"file":"sfx\/bow_reload_01.ogg","sha":"b38d6e6f3e4b015208c8e7aaea7e56ec3e07d675"},{"file":"sfx\/brawl_ball_kick_02.ogg","sha":"199a0e64cf7e82bb4af0f7745b6fbb17792615de"},{"file":"sfx\/brawl_button_01.ogg","sha":"9be0c962a2bf445f62f259ecd874e1941071fbc2"},{"file":"sfx\/brawl_go_01.ogg","sha":"4a3916051cfeb1adb20363d14029f5f7ca50de9c"},{"file":"sfx\/brawl_intro_01.ogg","sha":"1cf176718f847ce38bafa9c1586fd009af799534"},{"file":"sfx\/brawl_unlock_01.ogg","sha":"d646d5fe1fa187697c546e8db897228c86f9af68"},{"file":"sfx\/brawl_unlock_02.ogg","sha":"b6ca998d6287bf535bd351325621620b033979a7"},{"file":"sfx\/brawlbuy_01.ogg","sha":"9804734e123294ca05f52224d3041ecdcb92e28e"},{"file":"sfx\/brawlerintro_01.ogg","sha":"f2c9dccfc386806ffc72906d309c101ca5ef783b"},{"file":"sfx\/brock_death_01.ogg","sha":"08a6e826b11ccac715f27ae54bf3ae6ec9cc7b09"},{"file":"sfx\/brock_death_02.ogg","sha":"c273f54922025903b698b5f2eaa066b242bae7ea"},{"file":"sfx\/brock_death_03.ogg","sha":"cf9b83c5b3ea0c3f75de6e2feeedf534d3a214fa"},{"file":"sfx\/brock_death_04.ogg","sha":"c56aec7aee230ee96e3b46fcdeec9ed84af594ca"},{"file":"sfx\/brock_dryfire_01.ogg","sha":"4f72f3b3481a60ff7b3deaf5389b666278761569"},{"file":"sfx\/brock_hurt_01.ogg","sha":"071d1e3aa42a4795b8b9d66aea489e5b0672a289"},{"file":"sfx\/brock_hurt_02.ogg","sha":"065c7bcae55dcc78ea8256636124fa77a1bbbdb1"},{"file":"sfx\/brock_hurt_03.ogg","sha":"addf039a044813fb97ce29bc7abfc7e5c50e5b4b"},{"file":"sfx\/brock_hurt_04.ogg","sha":"7ffe858ca39f2b65b3d93b6b746bc10c75bc5345"},{"file":"sfx\/brock_hurt_05.ogg","sha":"218b34a251f9b30d9b58c8e965610231f655504c"},{"file":"sfx\/brock_kill_vo_01.ogg","sha":"934de5c0b7632fca2b57366f30ae627d137c12ba"},{"file":"sfx\/brock_kill_vo_02.ogg","sha":"82967c2f4d113f19aafc68d16579ea64c895c1e8"},{"file":"sfx\/brock_kill_vo_03.ogg","sha":"d3a19724b9fd6644c4677122b4895931d5db827c"},{"file":"sfx\/brock_kill_vo_04.ogg","sha":"aea5313d74d50e8a8c933023c5bb0be93dab7c99"},{"file":"sfx\/brock_lead_vo_01.ogg","sha":"f72678330d9da164b7db897004115d127e56887d"},{"file":"sfx\/brock_lead_vo_02.ogg","sha":"f8661daf12c089cebe51cd39e83671012c0fcfa6"},{"file":"sfx\/brock_lead_vo_03.ogg","sha":"6a0c21664dfac9d631c5a571cdb808b83e0276c5"},{"file":"sfx\/brock_lead_vo_04.ogg","sha":"ce26ac6ed65d19c20ac30952598087f979db02fa"},{"file":"sfx\/brock_lead_vo_05.ogg","sha":"5e2c7b5e5761feed8b29dba6f007f1d3c46f47fd"},{"file":"sfx\/brock_lead_vo_06.ogg","sha":"74914f6db9c3df490b8219337fd983111fa9c3f6"},{"file":"sfx\/brock_reload_01.ogg","sha":"8dcbf802a6e4c5e2dec1a920f52aeacef71230fe"},{"file":"sfx\/brock_start_vo_01.ogg","sha":"fd8018f66e7a748a2113967e49fee6a3862d7c8a"},{"file":"sfx\/brock_start_vo_02.ogg","sha":"afb6d7c00eefdc7849179b54984129a12a627b5f"},{"file":"sfx\/brock_start_vo_03.ogg","sha":"af59d060d79b6a264009f0a3358d873cfe9193c0"},{"file":"sfx\/brock_start_vo_04.ogg","sha":"2860123e79592daeb38e992c6435d57a6147a10f"},{"file":"sfx\/brock_start_vo_05.ogg","sha":"b0c6acd6cc572e288028ad7fcc59a5dc31a74b5b"},{"file":"sfx\/brock_start_vo_06.ogg","sha":"94e47bddd930fed439d616948c10251cc5613b4f"},{"file":"sfx\/brock_start_vo_07.ogg","sha":"4040d3de72d1ee9356a456935f2e8ee71eaad9f5"},{"file":"sfx\/brock_ulti_vo_01.ogg","sha":"4046d03240feee4783627339fbe3686f3b4943a7"},{"file":"sfx\/brock_ulti_vo_02.ogg","sha":"e99430be3b155efec9eba77a11889d2a5074ea3e"},{"file":"sfx\/brock_ulti_vo_03.ogg","sha":"5631ebd033622ad207b0b564cd876127393aa63c"},{"file":"sfx\/brock_ulti_vo_04.ogg","sha":"74881285e52b5e71c43416ca8002004d9823379d"},{"file":"sfx\/brock_ulti_vo_05.ogg","sha":"e3f1bcb9587f23170e08a895609f99ebf4348d5e"},{"file":"sfx\/bull_berserk_01.ogg","sha":"3d124a98375caac1b575a3512f19de7b4328e2f6"},{"file":"sfx\/bull_die_vo_01.ogg","sha":"ae3e4203161976f62045550cede2dfb600566ced"},{"file":"sfx\/bull_die_vo_02.ogg","sha":"8f64c0e3ff281c8f60daa33d41ce1e90861d5917"},{"file":"sfx\/bull_die_vo_03.ogg","sha":"57d2803a960b54791afa464c01e84d3e17364375"},{"file":"sfx\/bull_die_vo_04.ogg","sha":"d6b8e8cf283d605a492d83ee42639439ec327b6b"},{"file":"sfx\/bull_hurt_vo_01.ogg","sha":"f6446dd1bda4f2ac1ae5b38042b2301dddbc09c0"},{"file":"sfx\/bull_hurt_vo_02.ogg","sha":"ffb46ef94d1028a59255a1a21f93888e2d0d9139"},{"file":"sfx\/bull_hurt_vo_03.ogg","sha":"781e424413cc2f390f5cdb82e8d117f5cc6678a8"},{"file":"sfx\/bull_hurt_vo_04.ogg","sha":"4aa9982e3db4abed342e5d9e9531ddb0383d5a30"},{"file":"sfx\/bull_hurt_vo_05.ogg","sha":"8f73fd849ca3a2a78a72197650c5b5ed7a486bb0"},{"file":"sfx\/bull_kill_vo_01.ogg","sha":"7e8ef88cb2e3afcc9b83bc96297da8feee32dae8"},{"file":"sfx\/bull_kill_vo_02.ogg","sha":"3517b1c5d7531c39de9e2e755b93c936eb1ed4ce"},{"file":"sfx\/bull_kill_vo_03.ogg","sha":"1418715ad1eb8acb4cbcf25e78ac3bf1ff7cdd61"},{"file":"sfx\/bull_kill_vo_04.ogg","sha":"eb1e903efeb1d4d0a28334cf4d8de6e50c3369d1"},{"file":"sfx\/bull_lead_vo_01.ogg","sha":"4c48cdc133e39d17c999f1d7ea9373fd6c0df3ae"},{"file":"sfx\/bull_lead_vo_02.ogg","sha":"67cf5c18c2acbb80f1e2ecc2fe1f96c2a3f6ac2f"},{"file":"sfx\/bull_lead_vo_03.ogg","sha":"cf6e91d1f9702b413a4dbd86427d7ae8c1a1fa5e"},{"file":"sfx\/bull_lead_vo_04.ogg","sha":"2c4cba8d9a0ba5df0da37724b3d7cf7f8f265e5b"},{"file":"sfx\/bull_start_vo_01.ogg","sha":"d016a12a11127a3f547d7f03b519787b4cffc3a7"},{"file":"sfx\/bull_start_vo_02.ogg","sha":"0079ab2d107a018df3a60b732bb40d067ee6c7c4"},{"file":"sfx\/bull_start_vo_03.ogg","sha":"53ad72423ab004d64e10be171a68a86de5b52b3d"},{"file":"sfx\/bull_ulti_vo_01.ogg","sha":"28421a46d26f8576b3152286ca973a6802e2787f"},{"file":"sfx\/bull_ulti_vo_02.ogg","sha":"976fb5f7997446e7437b4e523e537f52341626ee"},{"file":"sfx\/bull_ulti_vo_03.ogg","sha":"331bec996755426acd5393f5921a0fc32a528b9b"},{"file":"sfx\/bull_ulti_vo_04.ogg","sha":"b213f32fcacea6cc6377b69d38a2d545724558f7"},{"file":"sfx\/bullet_rico_grass_02.ogg","sha":"e917b9f2c7f4f9ac7f41970f6d52b7656e648170"},{"file":"sfx\/bullet_rico_metal_01.ogg","sha":"6c0040c09dfa272a6f9d2b9804145fcb42d7f5bf"},{"file":"sfx\/bullet_rico_rock_01.ogg","sha":"b30b155f982aa6d136fdff678a2df8a6afd495ef"},{"file":"sfx\/bullet_rico_wood_01.ogg","sha":"eaa0136db9dbb9b71df83676b3bdc3dd27ead780"},{"file":"sfx\/buy_gems_01.ogg","sha":"1b4aa5ec7778c0ac3bd0e8caa767ce5534801f68"},{"file":"sfx\/carl_atk_01v2.ogg","sha":"ed5a4edcb6d4bf5185bfd0ef32089b2665854308"},{"file":"sfx\/carl_atk_hit_return_01.ogg","sha":"e1b2456c314fee2be9666e90e1f312197772578a"},{"file":"sfx\/carl_atk_return_03.ogg","sha":"d425c8c43e7b623dc9c32d5118ec3644d668f64e"},{"file":"sfx\/carl_atk_vo_01.ogg","sha":"cbe169845f7f9327527a7279b90bb9f46b2ea38d"},{"file":"sfx\/carl_atk_vo_02.ogg","sha":"89dcc7d19e16fd031d2842b9aec73d8056b59d53"},{"file":"sfx\/carl_atk_vo_03.ogg","sha":"d2813436387a547a8912ac09156ab2c7d6903956"},{"file":"sfx\/carl_death_vo_01.ogg","sha":"be42c11c32389f54c3e63efbf66b392d987b82b9"},{"file":"sfx\/carl_death_vo_02.ogg","sha":"485b736c03e09be52d31b3489a7bdc77b02ea088"},{"file":"sfx\/carl_death_vo_03.ogg","sha":"9814d936fbeda4f1b93741490f908ed36c53d6de"},{"file":"sfx\/carl_death_vo_04.ogg","sha":"a756f78343bc9a48dbd26feb38de47981e8c4025"},{"file":"sfx\/carl_hurt_vo_01.ogg","sha":"4748fff958ba312a947a15d9ae28643e11340833"},{"file":"sfx\/carl_hurt_vo_02.ogg","sha":"740d698e24d5e86c88c7e909f36f9db78b20fd01"},{"file":"sfx\/carl_hurt_vo_03.ogg","sha":"1b648a8c09a9ca38cb3784ff22d43b3e82fd28cd"},{"file":"sfx\/carl_hurt_vo_04.ogg","sha":"29371c137c70376fd077084a36a3a4c31d28c5b1"},{"file":"sfx\/carl_hurt_vo_05.ogg","sha":"429d8626a495943ea4ed500027064af83b59f1a9"},{"file":"sfx\/carl_kill_vo_01.ogg","sha":"6a8e28199f5f573246091418a3ded4fa4f8ec7c2"},{"file":"sfx\/carl_kill_vo_02.ogg","sha":"e370d0a1b226ae00853a8f1188ac19c9c44b42b3"},{"file":"sfx\/carl_kill_vo_03.ogg","sha":"db23f8c830510a647539b316a72dfb344db24d1d"},{"file":"sfx\/carl_kill_vo_04.ogg","sha":"ea1c5fd2fdd2ffb1b70ace25f92e9097f4461dfe"},{"file":"sfx\/carl_kill_vo_05.ogg","sha":"990fdc62f409c176a3022bc83d5944fa387ae0e6"},{"file":"sfx\/carl_lead_vo_01.ogg","sha":"717f925aa93bb5b7299462a39cc6da06808bac24"},{"file":"sfx\/carl_lead_vo_02.ogg","sha":"ab3f5e938702b036677cecfeedfc4b26e0dc9c74"},{"file":"sfx\/carl_lead_vo_03.ogg","sha":"8cc47ce53e28048462d184f200aba25ab739e6ee"},{"file":"sfx\/carl_lead_vo_04.ogg","sha":"7a21f7e9d1c18a5c592bae4a2b65c0016dd02490"},{"file":"sfx\/carl_no_ammo.ogg","sha":"6ecfc96fbe22d0c6266995068febaa7ef9f9a0c9"},{"file":"sfx\/carl_reload_01.ogg","sha":"7458c32b543644e5341331592060590ae203b989"},{"file":"sfx\/carl_start_vo_01.ogg","sha":"ec8c950581c9dceb060e09c81797e38c1cf8abe9"},{"file":"sfx\/carl_start_vo_02.ogg","sha":"37b2b14c68580f53758d2cacaa4249732a5f0a46"},{"file":"sfx\/carl_start_vo_03.ogg","sha":"78b42cb2edd6509cd41ce62d195452057f57d72a"},{"file":"sfx\/carl_start_vo_04.ogg","sha":"6eba1850038636be35d9ea25d4e1dfb7eadaa30d"},{"file":"sfx\/carl_start_vo_05.ogg","sha":"74fe495ac4f99e77c58c950c92880bf2d84b923e"},{"file":"sfx\/carl_start_vo_06.ogg","sha":"bf3b343f83232bb74a09e3ced2cbc6aaa74d6d41"},{"file":"sfx\/carl_start_vo_07.ogg","sha":"06045fa68294fc40ddc88893f2b4ae18726ad91b"},{"file":"sfx\/carl_twirl_02.ogg","sha":"c31f1520a63111aa156af03375ac234d1d5580fa"},{"file":"sfx\/carl_ulti_vo_01.ogg","sha":"a3ec8eaa5353d93b8b188df47f0b34782f806663"},{"file":"sfx\/carl_ulti_vo_02.ogg","sha":"2f1e3bb76dbfe024e3019471053dd4f51e2602d9"},{"file":"sfx\/catch_bawl_01.ogg","sha":"e0f2e09f3b9cb51ae74358fe8b7952efda730764"},{"file":"sfx\/char_respawn_01.ogg","sha":"1499669b3d764c1b4311f5cc9759edb8c0586cff"},{"file":"sfx\/char_roll_out_02.ogg","sha":"463cd5fe5f39d166195a58966bf6477e61b9987a"},{"file":"sfx\/coin_count_02.ogg","sha":"d7ca38a63fe2d64a97aa980d4ab1d0e15721518b"},{"file":"sfx\/coin_hit_01.ogg","sha":"1270c21546a6452e4abc26cc912cb8f504bc2ac1"},{"file":"sfx\/collect_coins_01.ogg","sha":"c7db690c363854bff3d82162396774f89ec97d7c"},{"file":"sfx\/count_gems_01.ogg","sha":"75f297d719e4456535d5c1df9dabdc9043460035"},{"file":"sfx\/count_keys_01.ogg","sha":"0f68ac529f3c8a893797c49ec307b6d1715a526e"},{"file":"sfx\/count_powerpoints_01.ogg","sha":"3366851b21041cbf8f5027bcf03eeb676ce228b3"},{"file":"sfx\/count_starkeys_01.ogg","sha":"d8344b876a5b9a5448ea2d10de7fcdad27edba3c"},{"file":"sfx\/count_tickets_01.ogg","sha":"8394eb98b530891e1151b76a5f0df26a91816cf3"},{"file":"sfx\/count_trophies_01.ogg","sha":"6b7dc7dbb8a551bd5b28216dbae63580a7dbdd2a"},{"file":"sfx\/countdown_01.ogg","sha":"472cab6986ace9fe13078909959d08e851313233"},{"file":"sfx\/craft_rarity_01.ogg","sha":"a746da547f4f714a45fe024d6365b08faaba0f33"},{"file":"sfx\/craft_rarity_02.ogg","sha":"bd314e7597f2fae1466631067405c89b1d584e76"},{"file":"sfx\/craft_rarity_03v2.ogg","sha":"d6cdbd475e5d4ce926ea408f4aed63a76748a104"},{"file":"sfx\/craft_rarity_04v2.ogg","sha":"1a3ad12e1e47a136d5b0d06b04f48d353710bd4b"},{"file":"sfx\/craft_rarity_05.ogg","sha":"d65e8da83b27787bcb07c2a6b7c100b3038da488"},{"file":"sfx\/crow_dies_01.ogg","sha":"2499018032b211bac3ec3be67fe292b3869bab2b"},{"file":"sfx\/crow_dryfire_01.ogg","sha":"78b91a2f1ff7d3239a1766ff638839007c7d8e5d"},{"file":"sfx\/crow_get_hit_01.ogg","sha":"c7be89c9412241c846de66988f8e58b51d9f328c"},{"file":"sfx\/crow_get_hit_02.ogg","sha":"72e0489ba4abf557c5a9f3f21d9ce866cd623df8"},{"file":"sfx\/crow_get_hit_03.ogg","sha":"4766514074b0b8f7b6a52ba3199e89e55d50d47f"},{"file":"sfx\/crow_get_hit_04.ogg","sha":"c5366eb809bf746a762606ffa222f5cab19a3c7b"},{"file":"sfx\/crow_get_hit_05.ogg","sha":"f73f3dfa3b949f357e6d9ebe97b9aaca3e993649"},{"file":"sfx\/crow_get_hit_06.ogg","sha":"8e13ab89e1fa6acefad07039cc0fd05d06920cb7"},{"file":"sfx\/crow_kills_01.ogg","sha":"bec13346dd20673372d0860d53775bf81b9743e7"},{"file":"sfx\/crow_kills_02.ogg","sha":"8f518bb4cac52a01e04a21aae4950d82873a89c9"},{"file":"sfx\/crow_kills_03.ogg","sha":"1d7b25b04038671559b07a2aaba176198224c260"},{"file":"sfx\/crow_lead_01.ogg","sha":"2bf988c71f59b91164ed41c6767237c8c6952a3e"},{"file":"sfx\/crow_lead_02.ogg","sha":"088f69f5cb7550933306e11255282d6adf226e32"},{"file":"sfx\/crow_reload_01.ogg","sha":"143b6056a546b0ddf8f065fa41ad91428c426865"},{"file":"sfx\/crow_start_01.ogg","sha":"7ffcc5d14201834a6d4371d491c737173da46941"},{"file":"sfx\/crow_start_02.ogg","sha":"6583e52cb5deef9eded991089377ac7f45fecccd"},{"file":"sfx\/crow_start_03.ogg","sha":"08df7ac43c8185dd00549b0476b1c99856e7a431"},{"file":"sfx\/crow_throw_01.ogg","sha":"ad78c1b1e3ff03bf8af01ebe94d39d360ff8ea62"},{"file":"sfx\/crow_ulti_01.ogg","sha":"71d37626945ca3b01ff09883cdb2cbaf2c5a09db"},{"file":"sfx\/dash_gadget_01.ogg","sha":"9c12b41489e018cffc37f49d48be9a6c72f8a59a"},{"file":"sfx\/deadyey_shot_01.ogg","sha":"aedfea76b8ac21f1d6c1790047b36f4b6271a87c"},{"file":"sfx\/death_plop_01.ogg","sha":"abfc6e34cda790167e26cccb23a37639facace34"},{"file":"sfx\/drink_powerup_01.ogg","sha":"7411ac0a9916a0a8702ce90ec5094caa476e3a35"},{"file":"sfx\/dummy.ogg","sha":"f2b272e3cf735198c0dd043599bb502222887bf5"},{"file":"sfx\/dynamike_gadget_01.ogg","sha":"4dc34ca1b09e6f65b163b883873616306168a4f3"},{"file":"sfx\/dynamike_throw_01.ogg","sha":"a352bc77a7c8224fb9e6941423c6dddbd83f654a"},{"file":"sfx\/dynamike_throw_02.ogg","sha":"ae0740fcae263e7069ceebbb79a6442a708d2b0f"},{"file":"sfx\/earth_atk_01.ogg","sha":"72b4c455f4baf2ecc20f233d3fe6c2053f200e27"},{"file":"sfx\/el_primo_atk_01.ogg","sha":"96d093b50946456b68857860fae8841f63aa8f08"},{"file":"sfx\/el_primo_atk_02.ogg","sha":"51bc0f52545ee1c1ec7c9cbbdb94bc225ecee457"},{"file":"sfx\/el_primo_atk_03.ogg","sha":"7b44059425550ddbfeb71183e98c3e5237ac9099"},{"file":"sfx\/el_primo_atk_04.ogg","sha":"b27022c259d77c38cc9ade7023418d0c18d31796"},{"file":"sfx\/el_primo_atk_05.ogg","sha":"efec73f44c688df6d4cc48b35b26504140196b11"},{"file":"sfx\/el_primo_death_01.ogg","sha":"2990c77ceb3e83506fca708339513dc125871865"},{"file":"sfx\/el_primo_death_02.ogg","sha":"ff0c946f6ec62bccdf68c634f2ba15c714af25dc"},{"file":"sfx\/el_primo_death_03.ogg","sha":"3a1d8679068f1b0ba202bfc59f0a21eac3265fd7"},{"file":"sfx\/el_primo_death_04.ogg","sha":"f161e0de07c6871b7e2d8eed7db683143213dd67"},{"file":"sfx\/el_primo_hurt_01.ogg","sha":"5e7e01623389212b45979b8c7b2dcfa62b593be0"},{"file":"sfx\/el_primo_hurt_02.ogg","sha":"eef055b5c36952ab89da6a763d5f0a478ce65e21"},{"file":"sfx\/el_primo_hurt_03.ogg","sha":"78c9bf4aa6a32bf9c2a36dce15f187525e6c7ce5"},{"file":"sfx\/el_primo_hurt_04.ogg","sha":"ebb9b874b39d25550c5f4d97c17d0ab06528199f"},{"file":"sfx\/el_primo_kill_01.ogg","sha":"b9f19ffc43afc6a83791af50ed4a18fc5669063a"},{"file":"sfx\/el_primo_kill_02.ogg","sha":"4d51ce3f568036748cd699c5013087f15383e63a"},{"file":"sfx\/el_primo_kill_03.ogg","sha":"630348f8cd370e4ff94aa965d6a5afa9b1f6a361"},{"file":"sfx\/el_primo_lead_01.ogg","sha":"08e1724112b39b16ad8d766ccb2c9b4d6aef4f9e"},{"file":"sfx\/el_primo_lead_02.ogg","sha":"bfa37d3959da6cce459915c8078fcc2292b0de64"},{"file":"sfx\/el_primo_lead_03.ogg","sha":"28a273cc5a339cc5ff5219af83f94ca190097309"},{"file":"sfx\/el_primo_start_vo_01.ogg","sha":"5d763fa671067356d1f069c54eb1135a63a415a8"},{"file":"sfx\/el_primo_start_vo_02.ogg","sha":"f94c784b720acafe2c9ae4ba414c3a1b1d4beee7"},{"file":"sfx\/el_primo_start_vo_03.ogg","sha":"e78442e1fe087f817d0f257892060c33ae98a7c9"},{"file":"sfx\/el_primo_start_vo_04.ogg","sha":"2a6a9d2ee8dcadd6574d69a7802f77e20bc42087"},{"file":"sfx\/el_primo_start_vo_05.ogg","sha":"792453a3f0dea09f151ab237eb9906216e8a1d86"},{"file":"sfx\/el_primo_start_vo_06.ogg","sha":"1cb6df6d0d2eeb0f0169bfe80972661b1daa1226"},{"file":"sfx\/el_primo_start_vo_07.ogg","sha":"2ca28adc52f1facd933b76c24352d06339ddf2e1"},{"file":"sfx\/el_primo_ulti_01.ogg","sha":"79c026c98cc203807e490744fdafe0b0d1408efb"},{"file":"sfx\/el_primo_ulti_02.ogg","sha":"cdc00f6f261623938b7510c21fa005f318efd43f"},{"file":"sfx\/emit_coins_01.ogg","sha":"3271683ea7677f12945415ebee947efb4a8c4f3a"},{"file":"sfx\/emit_gems_01.ogg","sha":"86b6befcb5097e10c4f276fa634215e7aa02836a"},{"file":"sfx\/emit_keys_01.ogg","sha":"8868aba0ee5fd839459c2c21fef865e27353f987"},{"file":"sfx\/emit_powerpoints_01.ogg","sha":"22154966b61c199e14b9110b212b962d5f94e315"},{"file":"sfx\/emit_starkeys_01.ogg","sha":"b803e3970b8e7492148edda371bb9da264ed5bc8"},{"file":"sfx\/emit_tickets_01.ogg","sha":"c94f87b11a84d833d83b57e9036a68ae4bf5c2ed"},{"file":"sfx\/emit_trophies_01.ogg","sha":"1895b2ae414e969bb90d7ad731eeab8f045ead37"},{"file":"sfx\/emz_atk_01.ogg","sha":"65deb8750bba25049ceab0786751c411553fb5cd"},{"file":"sfx\/emz_atk_vo_01.ogg","sha":"f249f6858155c5b484e658e4355ad1bb4ce662a1"},{"file":"sfx\/emz_atk_vo_02.ogg","sha":"f0efb8a97e53c1480447446d6a1949def5df907e"},{"file":"sfx\/emz_atk_vo_03.ogg","sha":"0860f1d740b4969df0381faf703cf06c7e7de221"},{"file":"sfx\/emz_atk_vo_04.ogg","sha":"0c123a8a3db6aea5d16fe45439886cc36b782ce6"},{"file":"sfx\/emz_atk_vo_05.ogg","sha":"2ea6097a7ca32f79f60306a1388606bb11efcc96"},{"file":"sfx\/emz_die_vo_02.ogg","sha":"66607f41c764e3fc00b24927c1d6d16007d7680c"},{"file":"sfx\/emz_die_vo_03.ogg","sha":"751cc315e2fe89105c02d9b02b92ed92652240c0"},{"file":"sfx\/emz_die_vo_04.ogg","sha":"de46974452738f17a28cb8138a6a73ea00e64d6e"},{"file":"sfx\/emz_dryfire_01.ogg","sha":"e6f3147ded4f460520ff36ff613f31a053bfaef3"},{"file":"sfx\/emz_gadget_01.ogg","sha":"83ae0ad1e586a9dbd548a8b9b919c679ed6911ed"},{"file":"sfx\/emz_hurt_vo_01.ogg","sha":"09418c6547cc1e8f43ec74e9866702c547acd8d8"},{"file":"sfx\/emz_hurt_vo_02.ogg","sha":"0955defc2ffdd78cb442230d105af5aa9115d26d"},{"file":"sfx\/emz_hurt_vo_03.ogg","sha":"810402085be536491fde548db336f553b5c69e37"},{"file":"sfx\/emz_hurt_vo_04.ogg","sha":"06880d0d32c79724637cc9e30b0ecae0161d784d"},{"file":"sfx\/emz_hurt_vo_05.ogg","sha":"992f837ec1de33d6c239e56668d0298ef52a1a4e"},{"file":"sfx\/emz_hurt_vo_06.ogg","sha":"b8fb20d954901adbd097399221a26beab128a5f2"},{"file":"sfx\/emz_hurt_vo_07.ogg","sha":"b8cc51af30715d59a4867c99952cdf2bd732d96b"},{"file":"sfx\/emz_kill_vo_02.ogg","sha":"1d25aa4b730df6e6625acf97ab41b38952cc65b2"},{"file":"sfx\/emz_kill_vo_03.ogg","sha":"1223d96e9d6742bffc173e98052872032d60fb67"},{"file":"sfx\/emz_kill_vo_04.ogg","sha":"a044a28f1587e52b2b7abbb49ec657628d6b731a"},{"file":"sfx\/emz_kill_vo_05.ogg","sha":"9b57f0f9c112b3114d6448a2a0107bd74c238086"},{"file":"sfx\/emz_kill_vo_06.ogg","sha":"5a7536efab9258b55f9d41f9995da9af5f8918f8"},{"file":"sfx\/emz_kill_vo_07.ogg","sha":"a617ab5d39a6bd230dd7a5728410521aad691ee8"},{"file":"sfx\/emz_lead_vo_02.ogg","sha":"269e0a62c7f7afa578a740aac3eef5065c13ff44"},{"file":"sfx\/emz_lead_vo_03.ogg","sha":"5e9ab873b5bceb1a8e12fbecc0039a519c99f7ef"},{"file":"sfx\/emz_lead_vo_04.ogg","sha":"3548d56c561bab55f8c0b8147d0c7376c39ac6a1"},{"file":"sfx\/emz_reload_01.ogg","sha":"750e6b1e63da6ba8a9ab028818d4831288f56b7e"},{"file":"sfx\/emz_start_vo_01.ogg","sha":"613d6863136663e317d5af164d9a76fc08034e05"},{"file":"sfx\/emz_start_vo_02.ogg","sha":"d2af0c366cc74248fd5105d7d982a4bf04753da4"},{"file":"sfx\/emz_start_vo_03.ogg","sha":"a88292efb3f389bc182765cb9b43cf6d949c6b8c"},{"file":"sfx\/emz_start_vo_04.ogg","sha":"5dc56888b17b4bcc9be7134350c7688d42f0b286"},{"file":"sfx\/emz_start_vo_05.ogg","sha":"75f4bd3451c0ac3bb4762faa95730231dcd26c35"},{"file":"sfx\/emz_ulti_01.ogg","sha":"12a856657723449f8df2fb8c3ab8a27772c16935"},{"file":"sfx\/emz_ulti_vo_01.ogg","sha":"8143a305676c23067c1f6a6954f3a05b7e2f20a0"},{"file":"sfx\/emz_ulti_vo_02.ogg","sha":"6b49aa2fcfa7492b448973f62b995fb1370072c0"},{"file":"sfx\/enemy_char_respawn_01.ogg","sha":"af61b7414b91343a0917015d2ca1875d66b2b3d3"},{"file":"sfx\/enemy_gadget_button_01.ogg","sha":"140a1b6d539d8448d5763913bdb769667c646726"},{"file":"sfx\/flowerrocket_01.ogg","sha":"45c27cd67f860e92e44b894c53cb60aadfeb805f"},{"file":"sfx\/footbrawl_load_01.ogg","sha":"b4e20f809da31e42c7eb1184f617c0976f31bb5a"},{"file":"sfx\/frank_gadget_01.ogg","sha":"00e8341c1e40403c672639461d85341554a8ed0d"},{"file":"sfx\/frank_hit_01.ogg","sha":"88b88376165fa8b42b4a31bb34351814cfb6b619"},{"file":"sfx\/frank_swing_01.ogg","sha":"ff12006164b71b9399ba2235eea6b80ef1e5d44c"},{"file":"sfx\/frank_ulti_hit_01.ogg","sha":"278dbb1bef07d903364ed293cb6cc5f78db8849d"},{"file":"sfx\/frank_ulti_swing_01.ogg","sha":"22575bb44154df8bb48493e68aa691d92688a07f"},{"file":"sfx\/frank_vo_01.ogg","sha":"75d8c03f0ab3a3a43edf7a43bf55c52dcf6a15b1"},{"file":"sfx\/frank_vo_02.ogg","sha":"aea5952068e3b6bf877d1a3cb76d4bc26fd300fa"},{"file":"sfx\/frank_vo_03.ogg","sha":"860be5704919b274873272c6e13cfa5289f3c497"},{"file":"sfx\/frank_vo_04.ogg","sha":"447794ebabf3f9b7f4235c1c2cce29222161d300"},{"file":"sfx\/frank_vo_05.ogg","sha":"0d3f534c848217f9a70909a0e8c860444d3189d6"},{"file":"sfx\/frank_vo_06.ogg","sha":"f68fce34c25914a43bad927706fd8e1710c011c4"},{"file":"sfx\/friend_online_01.ogg","sha":"4fb8d51160c8a4b7ae29a6430f1655812aa27807"},{"file":"sfx\/gatcha_summary_01.ogg","sha":"0bb494aa7511faeb74dd1e9633fee1bfdf4e5aba"},{"file":"sfx\/gems_gatcha_01.ogg","sha":"f9f2eff61c8b842d4841fb77ca7ab2c99d108f4a"},{"file":"sfx\/gen_small_explo_02.ogg","sha":"c25608e389f81c3831f3d919dc7337ebe83cb4df"},{"file":"sfx\/gene_atk_02.ogg","sha":"ca2ba674ebac1eacda8fc1e0a5da9f5dbb5f67ed"},{"file":"sfx\/gene_atk_dry_01.ogg","sha":"dfe4fa3876b8cc803fc1987c347d1bd648251835"},{"file":"sfx\/gene_atk_hit_01.ogg","sha":"3ab8fea80a5d67e0b0211aa6c241e4cacbffbd95"},{"file":"sfx\/gene_atk_hit_02.ogg","sha":"62ee8cbbfaf403e8e0afa37781b6b9016b39d450"},{"file":"sfx\/gene_atk_reload_01.ogg","sha":"9675906fb5f9207994fdba309fc0906a48539048"},{"file":"sfx\/gene_atk_split_01.ogg","sha":"1137fdad71a8f637bd3db7ed3d25042e83050ed2"},{"file":"sfx\/gene_atk_ulti_01.ogg","sha":"f45e3c3fc562789d93eb1e273b132569051df984"},{"file":"sfx\/gene_gadget_01.ogg","sha":"45c285453dd15f24d417372e94b492a7457418f5"},{"file":"sfx\/gene_hit_01.ogg","sha":"7a06db3f920f5fbc092a896e7ff9cb78114857a3"},{"file":"sfx\/gene_vo_01.ogg","sha":"e85dae39f54dc799ddff0f3e0059498f1984d260"},{"file":"sfx\/gene_vo_02.ogg","sha":"a0d399106a918c2a0bbda46b45060f39d077e505"},{"file":"sfx\/gene_vo_03.ogg","sha":"f659626e45910bc359864a46d93e562dd650036d"},{"file":"sfx\/gene_vo_04.ogg","sha":"200a53dd2073019ac7e5538c274c5d4698923e82"},{"file":"sfx\/gene_vo_05.ogg","sha":"2ec8983ca605d96f0333a0edc159d8f91aa710df"},{"file":"sfx\/gene_vo_06.ogg","sha":"2d3854b2e423b765d4d97c5c470d58199fcab3d7"},{"file":"sfx\/gene_vo_07.ogg","sha":"d998fbf1186b76a94416c58c33cf949c45be9980"},{"file":"sfx\/gene_vo_08.ogg","sha":"8e500ede9bcf3e700133cb3e7b532a7451967972"},{"file":"sfx\/gene_vo_09.ogg","sha":"05b75becc513ee2b5172dae6e5a86b04a895a140"},{"file":"sfx\/gene_vo_10.ogg","sha":"afb6b64f02fd034ff592904391074e874c8ecc06"},{"file":"sfx\/gene_vo_11.ogg","sha":"f1f6086ad2ed55b3eac5143974e9ac609f882f99"},{"file":"sfx\/gene_vo_12.ogg","sha":"ab256098e6b96737cb0b4ca07a011efb3e454464"},{"file":"sfx\/gene_vo_13.ogg","sha":"2b90210bf5f8a5aab26b9aa8c023ed4305e47382"},{"file":"sfx\/gene_vo_14.ogg","sha":"e29b25ec31da1c5e885c2b9511d240f0151a8ff7"},{"file":"sfx\/get_coins_01.ogg","sha":"148f04741943c66588ab70af0b8219a4d6d0fb4a"},{"file":"sfx\/get_pickup_02.ogg","sha":"e31b29b5bb025b322fd29f7c5f65d0d66ddcedb2"},{"file":"sfx\/get_pickup_06.ogg","sha":"69e1fafb0cbb227cf6257ab47b5496c66f36edb7"},{"file":"sfx\/get_powerpoints_01v2.ogg","sha":"e4629a5155516755a3b71697a9e274799893973d"},{"file":"sfx\/get_powerpoints_02v2.ogg","sha":"a757fccf7e9fc72dccea730d413b63bdd188a2a1"},{"file":"sfx\/get_powerpoints_03v2.ogg","sha":"e8c74224a55a1c7fb0547563a537c5307e075274"},{"file":"sfx\/get_pp_2_accent_01.ogg","sha":"19e48b89b555d51047588d1f65cacc44982b80e1"},{"file":"sfx\/get_pp_accent_01.ogg","sha":"17589193e55f414d537bfbbadf293cb6a6dbf51c"},{"file":"sfx\/get_star_points_01.ogg","sha":"b3ab4ba958c03a1fa451d480e4fc9de2588d456d"},{"file":"sfx\/get_tickets_01.ogg","sha":"882b0d6628185b7816824fe99e808e7b1c48826c"},{"file":"sfx\/get_trophies_01.ogg","sha":"c43f7a34da78f6b45f5513a12f0bbc793bdfe213"},{"file":"sfx\/get_xp_01.ogg","sha":"2fcee6182bf2056cc1bfb715857fd2bb2fadcd9f"},{"file":"sfx\/gr_launch02.ogg","sha":"f352299626e9aeea3b9dfbc93669a651d8392927"},{"file":"sfx\/guntown_select_char_01.ogg","sha":"d5fd8878e591ad65927a3fd0604d133e867b5eb6"},{"file":"sfx\/heal01.ogg","sha":"08c5deea7be785039afce51790f70add3c75431c"},{"file":"sfx\/heal_loop_01.ogg","sha":"4492ee8efd05418c39ad06fbfc2be8ba0c766509"},{"file":"sfx\/hotshot_die_01.ogg","sha":"a98a093761c7144ae995a14ac7d9f8947369d786"},{"file":"sfx\/hotshot_die_02.ogg","sha":"35e2afdb7fbb1349ab1b135e284333173e689092"},{"file":"sfx\/hotshot_die_03.ogg","sha":"171473df0264151c95bbaf851151808e07a022fb"},{"file":"sfx\/hotshot_die_04.ogg","sha":"b1257bcda54816e967831b3195485fac5c7b2148"},{"file":"sfx\/hotshot_hurt_01.ogg","sha":"2bab9f4e19d9f3d08d9a34f3a507b17fb19dca99"},{"file":"sfx\/hotshot_hurt_02.ogg","sha":"fa1d18704b975aa18318860bd7e833ba9ddc366f"},{"file":"sfx\/hotshot_hurt_03.ogg","sha":"1bdae712078b77033f981403a0b6df862185bba7"},{"file":"sfx\/hotshot_hurt_04.ogg","sha":"092211a4218e055ca2d371def882bf8b9e42e4e0"},{"file":"sfx\/hotshot_hurt_05.ogg","sha":"2b1797a54cc0414383aefc0626efc6ed561e7e22"},{"file":"sfx\/hotshot_hurt_06.ogg","sha":"b152778d574613a86f5afe7ebf905cb94b95265c"},{"file":"sfx\/hotshot_hurt_07.ogg","sha":"6dbd8571a8df16698099520ee534db848c25e4b4"},{"file":"sfx\/hotshot_hurt_08.ogg","sha":"7620d5369cc91ac385e1fa1f40db9c131d695a66"},{"file":"sfx\/hotshot_kill_01.ogg","sha":"80b86b6e0f3a8a0eae378944dfcdd98ff2c7cb6e"},{"file":"sfx\/hotshot_kill_02.ogg","sha":"e8f86fc77b325013988ed7c52b64e3795c946941"},{"file":"sfx\/hotshot_kill_03.ogg","sha":"b7f15507779d1be49f1b3df88b41f2a056a9b108"},{"file":"sfx\/hotshot_kill_04.ogg","sha":"e99af5b4bee225617bc4ed2ab8a900e26eaf5b3b"},{"file":"sfx\/hotshot_kill_05.ogg","sha":"83c0b5bbc6780d856bb64482321125c220e223c2"},{"file":"sfx\/hotshot_kill_06.ogg","sha":"c719aec18f5bd4ccfb69684f0c57391b7ca1b144"},{"file":"sfx\/hotshot_kill_07.ogg","sha":"77d6a5161de040be1f81264a74fe6d92830624ac"},{"file":"sfx\/hotshot_lead_01.ogg","sha":"cc932e98ea8cf66a86a3ed34bfb011cacf975d3a"},{"file":"sfx\/hotshot_lead_02.ogg","sha":"4a4c1b9f0790204423c9b6b4817470fd8ec4bd17"},{"file":"sfx\/hotshot_lead_03.ogg","sha":"a48e2258c30b7d0b146697e49d6d3081564473e5"},{"file":"sfx\/hotshot_lead_04.ogg","sha":"2989e77457504b47ea3f874728ede9b9e4f3304d"},{"file":"sfx\/hotshot_lead_05.ogg","sha":"d3d60a25f30b16997e05bbcbe8af04656bc82f69"},{"file":"sfx\/hotshot_start_01.ogg","sha":"0eba7c66599caedf54fcc834be11c5a3e6c318da"},{"file":"sfx\/hotshot_start_02.ogg","sha":"b967bb16f19581cc1d791dfafba4d16560a8bd9e"},{"file":"sfx\/hotshot_start_03.ogg","sha":"130a1c83af85d67a546bca7707b4b7a8a1c38f5b"},{"file":"sfx\/hotshot_start_04.ogg","sha":"7640749b4e97e5aec89bbd159d1d9f4f39dd553c"},{"file":"sfx\/hotshot_ulti_01.ogg","sha":"bc8c6cab0713407f02be42df0ab6016864bc1ca7"},{"file":"sfx\/hotshot_ulti_02.ogg","sha":"a11a9f95e61f60c3331c6cc23f55d07e0715eb00"},{"file":"sfx\/hotshot_ulti_03.ogg","sha":"b9cb578d6d5f4ee6e66f400d1d3cd835bafcc099"},{"file":"sfx\/hotshot_ulti_04.ogg","sha":"cd06ed91b03d13554bbb21bbae4daee3c99578c2"},{"file":"sfx\/item_swirl_01.ogg","sha":"d6441c32a83b5a821bb40a5178e7af6bafb3499a"},{"file":"sfx\/jackie_atk_01.ogg","sha":"932f48fc6fbc1de4cb5498b88651fc4967628d68"},{"file":"sfx\/jackie_atk_02.ogg","sha":"b93d446e1e3b9c57b57408474f206de787a03295"},{"file":"sfx\/jackie_atk_ulti_01.ogg","sha":"9f1958cf934f5dd651b68046f22f6576d8cc81e4"},{"file":"sfx\/jackie_atk_ulti_02.ogg","sha":"1474f538491406545e23359ebc2a7385d30839ee"},{"file":"sfx\/jackie_atk_ulti_03.ogg","sha":"cb3e486825706e1bc004159245018bafb4cbaf89"},{"file":"sfx\/jackie_die_vo_01.ogg","sha":"ff2535b7571d47caa150bca260f76563cc1655a8"},{"file":"sfx\/jackie_die_vo_02.ogg","sha":"6b9f3f5ef56bc150eec0c5b790bf2969a40b4896"},{"file":"sfx\/jackie_die_vo_03.ogg","sha":"e93c958adae80f3c7062aeb7412851984af927d9"},{"file":"sfx\/jackie_die_vo_04.ogg","sha":"91dd9e303040e78841feeb3f7d2f452a39a50545"},{"file":"sfx\/jackie_dryfire_01.ogg","sha":"2e75de281ae23be4ecdab67b854d5aa4d1a71999"},{"file":"sfx\/jackie_hurt_vo_01.ogg","sha":"392f10e4a62215e250de95da52f1689373e9e64c"},{"file":"sfx\/jackie_hurt_vo_02.ogg","sha":"69cb8257f89731824dfc3529451068becd6fb302"},{"file":"sfx\/jackie_hurt_vo_03.ogg","sha":"82a7d038b0871d53c43ccd2e126fcb07c23527b4"},{"file":"sfx\/jackie_hurt_vo_04.ogg","sha":"8e3d1e9085674fda1a92aed239ea10dbf6023792"},{"file":"sfx\/jackie_hurt_vo_05.ogg","sha":"7902a0cc4d1d80085c9dc402d6cd7f007b8d7e7c"},{"file":"sfx\/jackie_hurt_vo_06.ogg","sha":"abe19becadb221d21746c305d4d4c9fbabe560bb"},{"file":"sfx\/jackie_kill_vo_01.ogg","sha":"bc95ceebfaf0cc6cd213d818a6cef5542b2a18fa"},{"file":"sfx\/jackie_kill_vo_02.ogg","sha":"d021196ba18d6cb21c0e897ad054ca0c1057561d"},{"file":"sfx\/jackie_kill_vo_03.ogg","sha":"b53fcbc880312dd6da5d0f26e56b367403be4838"},{"file":"sfx\/jackie_kill_vo_04.ogg","sha":"627ba75e28f3b4a5c1ad66ad426628dc4274dabb"},{"file":"sfx\/jackie_kill_vo_05.ogg","sha":"ef37b6d61d38f59ae51c66b3f192c5c6f10cb8dc"},{"file":"sfx\/jackie_lead_vo_01.ogg","sha":"1a3cd657396ec02f5598419e13ee3b14dc8e5b1c"},{"file":"sfx\/jackie_lead_vo_02.ogg","sha":"c103a91d77452fead3da6dd22bbd939f278e1582"},{"file":"sfx\/jackie_lead_vo_03.ogg","sha":"02898adec2a2d23d1c74175d4ab9e840c0b7f5a2"},{"file":"sfx\/jackie_lead_vo_04.ogg","sha":"2a8f8bbda19d2a180c5058cee6ae4c9ad22b2f17"},{"file":"sfx\/jackie_reload_01.ogg","sha":"8ccaa58d7e13fde357a2d89bafffbab6a7e50c59"},{"file":"sfx\/jackie_start_vo_01.ogg","sha":"ceac52a57e3dcc46b112672a9ebae8ba452a2009"},{"file":"sfx\/jackie_start_vo_02.ogg","sha":"533e495a2bd18c60167440fa92f3c4fb5b9674fb"},{"file":"sfx\/jackie_start_vo_03.ogg","sha":"5ab586ccb3ffad39707a335608943627d1018592"},{"file":"sfx\/jackie_start_vo_04.ogg","sha":"cbc89a7cf535c688eae3d99999b9c3cf6f450bd6"},{"file":"sfx\/jackie_ulti_vo_01.ogg","sha":"6aa7f4788df7ff8cdab24e8f35be350e4ca8f170"},{"file":"sfx\/jackie_ulti_vo_02.ogg","sha":"7fdcfc023cd3fca8b0beef4fa95df53d66bb7323"},{"file":"sfx\/jackie_ulti_vo_03.ogg","sha":"ca867110a690484bfb1f9643cecdef55a1d38ad3"},{"file":"sfx\/jackie_ulti_vo_04.ogg","sha":"79e6fb26dad58a96dca7e8a7b9ab5aa8537855d5"},{"file":"sfx\/jackie_ulti_vo_05.ogg","sha":"32981a401c298ab4fc1db5b2d8c598fb06fc1ba3"},{"file":"sfx\/jackie_ulti_vo_06.ogg","sha":"071ca3b5d8a2c3f8473c22e25738f435063acdd6"},{"file":"sfx\/jess_die_01.ogg","sha":"83906d5e00324f812d981724d2e61f490509474b"},{"file":"sfx\/jess_die_02.ogg","sha":"13a94fc1d4150b51540b5a5b7635ac89a279d4a2"},{"file":"sfx\/jess_die_03.ogg","sha":"81732733d5dd8cb44ea2a11c153f96f8b3c4eaa6"},{"file":"sfx\/jess_die_04.ogg","sha":"ed9edc4bf470cdccc8ed3af7c7ac87d7ef57bec3"},{"file":"sfx\/jess_dry_fire_01.ogg","sha":"e73ca02985e7c5b13ca3c91a0a2c7122af516bb5"},{"file":"sfx\/jess_gadget_01.ogg","sha":"64bcfdd8babf65e2a68bb0dffbf0aa01031cba44"},{"file":"sfx\/jess_hit_01.ogg","sha":"115f2d176e29b6c75c6771672f0658f9bacc710a"},{"file":"sfx\/jess_hurt_01.ogg","sha":"faee7dcd8895fe2daaff82830e8131658a519986"},{"file":"sfx\/jess_hurt_02.ogg","sha":"b1c5f39be7f4ba1f7c28c14dd51cdc6d19316f4e"},{"file":"sfx\/jess_hurt_03.ogg","sha":"b6df83f22a29741519a8b095e34b32cb88f8c4c4"},{"file":"sfx\/jess_hurt_04.ogg","sha":"ac4179c302b695af043560efb08543f66ea802e3"},{"file":"sfx\/jess_hurt_05.ogg","sha":"35959926d1b0ba99c4e4e98f8440bf3bf4c964a9"},{"file":"sfx\/jess_hurt_06.ogg","sha":"df4a84a5df34d4c0e1ae0c26e433db231c631a19"},{"file":"sfx\/jess_kill_01.ogg","sha":"0a007cc98a0cc1b8b7b932a3cf0bc38de153c192"},{"file":"sfx\/jess_kill_02.ogg","sha":"c0db173978ace1c9f407ec0890e040c022622fd0"},{"file":"sfx\/jess_kill_03.ogg","sha":"b089968b24cd46a2b77b20bf5664c0f4a5087fb0"},{"file":"sfx\/jess_kill_04.ogg","sha":"77be36d1b5486ae46cec9ad0e9a644e7efeade81"},{"file":"sfx\/jess_kill_05.ogg","sha":"aff84c8c54c1855d23c361bfbf4ae5f59006f08f"},{"file":"sfx\/jess_kill_06.ogg","sha":"c5fc55b2729c33d63f55da7598b0c6d39cf26eb1"},{"file":"sfx\/jess_kill_07.ogg","sha":"a7803b9b7dbb54ca9695db568a3d66459236af7b"},{"file":"sfx\/jess_lead_01.ogg","sha":"84df096ea4fce5b156db706a80b68684578bb6d1"},{"file":"sfx\/jess_lead_02.ogg","sha":"8107210b19bee3bf35bfc112a0a5b8e88b2d3408"},{"file":"sfx\/jess_lead_03.ogg","sha":"df8c109ea73b411b05d4020ad065b4d1e126dac0"},{"file":"sfx\/jess_lead_04.ogg","sha":"feb36dd6ab092dcb6dd3e60ea41b5669c48908f7"},{"file":"sfx\/jess_lead_05.ogg","sha":"0b52c963489a435a15e58b829ef4c385fcd808b7"},{"file":"sfx\/jess_reload_02.ogg","sha":"0ba7db2b27098c4145da5381e3939a6905437a60"},{"file":"sfx\/jess_shoot_01.ogg","sha":"378f70b27cf4c10fa8ae8c3a5e02410567c43d85"},{"file":"sfx\/jess_start_vo_01.ogg","sha":"5a0f62a0ee035b3e9a176361eadbee358fe27955"},{"file":"sfx\/jess_start_vo_02.ogg","sha":"5ff7a79b021ea8ef2c0c351dc2ddfd1ecbe5fa89"},{"file":"sfx\/jess_start_vo_03.ogg","sha":"2b89fdd3b906706cbc17b5880f3b849fcca3d830"},{"file":"sfx\/jess_start_vo_04.ogg","sha":"4ae84a576426aafd6b56e8fbc6f9590f417a99a5"},{"file":"sfx\/jess_start_vo_05.ogg","sha":"dcfa91c1fef5a9e61cdd6c433ae1ab7a19ab8c45"},{"file":"sfx\/jess_throw_01.ogg","sha":"56eea49674a87aac9fa2aca7ebc089fe314db027"},{"file":"sfx\/jess_ulti_01.ogg","sha":"27d95e671efc052e03c352d5f7473f3545ce5604"},{"file":"sfx\/jess_ulti_02.ogg","sha":"096e4e4dbd0255dc685ec4dcdf2119b511a50fba"},{"file":"sfx\/jess_ulti_03.ogg","sha":"e85a4ca240bc093a93c799c78ac3cae667de8fb1"},{"file":"sfx\/jess_ulti_04.ogg","sha":"6c38616f07fdc7f4040c0ca1b08dc08ae00c93ff"},{"file":"sfx\/jess_ulti_05.ogg","sha":"634d8c1d3a1feeac7513c727b7b5438f57ee2385"},{"file":"sfx\/jess_ulti_06.ogg","sha":"5ded241e5de5a84c56f6766f90ffb4b3d881af49"},{"file":"sfx\/join_game_room_01.ogg","sha":"9fd0d21cc8a2c2a17ea6daf36f3501a120c82dd4"},{"file":"sfx\/laser_04.ogg","sha":"4189978114aacb5558feb8291962b2c7e374ea9a"},{"file":"sfx\/laser_explo_01.ogg","sha":"8586a32ac2b947c0cc98471bf37c2c0ac7f96d18"},{"file":"sfx\/laser_load_01.ogg","sha":"c36246a78ea7fd6dd2788a197483da18db7b1636"},{"file":"sfx\/laser_panic_01.ogg","sha":"5d034774472831ed7e5e435bedf27bf62ae1a856"},{"file":"sfx\/laser_panic_bad_01.ogg","sha":"443934e3932d4539742a77aab39a0cbccca7731e"},{"file":"sfx\/laser_upgrade_char_01.ogg","sha":"da4dfaff25956e1e4cd976b94e124b136a8e1c05"},{"file":"sfx\/leave_game_room_01.ogg","sha":"6b65cd1ab7204b5d6363d5b64963d08bfe366d69"},{"file":"sfx\/leon_die_vo_01.ogg","sha":"fb636919138486ebfe102951d7436c9b68735603"},{"file":"sfx\/leon_die_vo_02.ogg","sha":"a5d23f6c406666ee965d12ee7e4980cf9a76d613"},{"file":"sfx\/leon_die_vo_03.ogg","sha":"4c4f15d4720bd84128027b2bfecf06bb35dc3e0d"},{"file":"sfx\/leon_die_vo_04.ogg","sha":"b4fdc42148da140b347b8419cbc0da81ffd0f07b"},{"file":"sfx\/leon_hurt_vo_01.ogg","sha":"0c3eb0e7251c6e5d8f09bf5b7915e5b6ec7dc68b"},{"file":"sfx\/leon_hurt_vo_02.ogg","sha":"3410d3502000d0ea17bc701cb6b733b25babab71"},{"file":"sfx\/leon_hurt_vo_03.ogg","sha":"87c6ff3d79b59ba60a2b9eec81a7db8c61ffb190"},{"file":"sfx\/leon_hurt_vo_04.ogg","sha":"4ae6b367e8cdb9a63eb25ae158a5a5dd73a05404"},{"file":"sfx\/leon_hurt_vo_05.ogg","sha":"f119d3b779e7449a314aed9b7b7e8bc213593eec"},{"file":"sfx\/leon_kill_vo_01.ogg","sha":"d2720e0eff1a89c87c967a1c804bea2c1b7166f6"},{"file":"sfx\/leon_kill_vo_02.ogg","sha":"02d503a5ed69945d2285c5659e09eef97a09ca59"},{"file":"sfx\/leon_kill_vo_03.ogg","sha":"6b326531b94386a96562d4bf0c1f7d7118236df3"},{"file":"sfx\/leon_kill_vo_04.ogg","sha":"a256b97cf23600b9387fa344045ca7d35a4bd812"},{"file":"sfx\/leon_kill_vo_05.ogg","sha":"ac4d7b426d10d953d783649a08fec7c1b9decb62"},{"file":"sfx\/leon_kill_vo_06.ogg","sha":"4cad6787a4494127ee4d07972930a1886c5776a7"},{"file":"sfx\/leon_lead_vo_01.ogg","sha":"33d7350b2de78704121157c0803b03cdceb0e353"},{"file":"sfx\/leon_lead_vo_02.ogg","sha":"db121fcead6fb3e4d150e222f91ef00aea6b3ae3"},{"file":"sfx\/leon_lead_vo_03.ogg","sha":"bf1fd31a94023de76d0b9dc525b7e5028567e03b"},{"file":"sfx\/leon_lead_vo_04.ogg","sha":"b55be2fc5eee7aa29fbdb1b6c4c3ec12de5c3417"},{"file":"sfx\/leon_lead_vo_05.ogg","sha":"def49df85888741d17f92736d47dbf4e7a5bf81f"},{"file":"sfx\/leon_reload_01.ogg","sha":"bb02ea6c4ac87120f4b0e95bae997e84fb050da0"},{"file":"sfx\/leon_start_vo_01.ogg","sha":"454a18ec953aa7109b2e941a1ab24a17a3fe8f21"},{"file":"sfx\/leon_start_vo_02.ogg","sha":"0f55109f9534aa969a74556e1abd657b37bdd6ec"},{"file":"sfx\/leon_start_vo_03.ogg","sha":"15dc0eb1713ca880484cedb3fddbe6a9d51d70b9"},{"file":"sfx\/leon_start_vo_04.ogg","sha":"19bfb39e8db894ccd6e60fb1fd856db607224055"},{"file":"sfx\/leon_start_vo_05.ogg","sha":"7d7b1434b2f4fab3ce78b8394ce5f596efb7472d"},{"file":"sfx\/leon_ulti_vo_01.ogg","sha":"285a83133868f2308589f102029a8ab75e42edf7"},{"file":"sfx\/leon_ulti_vo_02.ogg","sha":"12b1afa89dd2601f0b7d8ff8b1aa6759b1152697"},{"file":"sfx\/leon_ulti_vo_04.ogg","sha":"ab06faa82a270ca020c2bb3b3beef061bd9a7c04"},{"file":"sfx\/leon_ulti_vo_05.ogg","sha":"02b0097fecdcb4891c0801c66f08b3314e21f626"},{"file":"sfx\/leon_wolf_ulti_vo_01.ogg","sha":"1076399d1db3e1b9d78909b2ae6aaaf0d8948e78"},{"file":"sfx\/leon_wolf_ulti_vo_02.ogg","sha":"d3bc379acf8e446c78a0dc1b043b8899a0a23c09"},{"file":"sfx\/level_up_01.ogg","sha":"5e1108d3f86d818310311c42681542e3c8c6745d"},{"file":"sfx\/ll_atk_01.ogg","sha":"55c765070b5f7b73e730132b484be23cd9e4981c"},{"file":"sfx\/ll_die_01.ogg","sha":"980406c4ed078c90bef86401673ed5ea9d218e59"},{"file":"sfx\/ll_hurt_01.ogg","sha":"53d9a545655d85ffa03eabb880c8b30da3cae165"},{"file":"sfx\/ll_kill_01.ogg","sha":"9d37b34a1021ab716ae8a0e4c4c93c9bb8dd4b2b"},{"file":"sfx\/ll_start_01.ogg","sha":"f0b0af0c5ee50ad8662c96fb93a4d144be57681d"},{"file":"sfx\/ll_ulti_01.ogg","sha":"85cfa7d10a0f8f894f835ab24339885e8eea4346"},{"file":"sfx\/ll_ulti_hit_01.ogg","sha":"f84603e21c6f1fcf3ca312e433dce72c41f37c20"},{"file":"sfx\/lose_trophies_01.ogg","sha":"4acb1ca6c8fa868485d5abd926d0ab23549094ad"},{"file":"sfx\/low_health_beep_03.ogg","sha":"a1f8d9c41778f119ec70fe8d620d74fb1cdce730"},{"file":"sfx\/lucha_punch_01.ogg","sha":"7226941572dd8cf12fd18b960eeedd8a2bb1994f"},{"file":"sfx\/lucha_ulti_01.ogg","sha":"d6a275d4eb9501bc4dcf56624d5347a46a956b7d"},{"file":"sfx\/marig_fire_01.ogg","sha":"d5c41c1bbd114cdd5f76f6cde82dca0f18cb707f"},{"file":"sfx\/marig_hit_01.ogg","sha":"0098b0f6b079ce5866d657c811c983e7f2370013"},{"file":"sfx\/marig_miss_01.ogg","sha":"c73b8ec6772bb6e9c4722be0c433a51bf46bee92"},{"file":"sfx\/marig_turret_02.ogg","sha":"4fbbb4ffe5a2009fb8935153713e9025d4770af8"},{"file":"sfx\/marig_turret_spawn_01.ogg","sha":"8f0e4df94c4aeaa700e6893dae4314572e018098"},{"file":"sfx\/max_atk_01.ogg","sha":"51f92b576de80e39e098b257e5a1b58d59f767de"},{"file":"sfx\/max_atk_impact_01.ogg","sha":"610fa3fba656b18b317ca80cb686ecda5fa15203"},{"file":"sfx\/max_die_vo_01.ogg","sha":"b91949a273a2c9d7967385d15b788a175dbfaab9"},{"file":"sfx\/max_die_vo_02.ogg","sha":"ade356be7935c45f3d514c6981c3a3103385c7cb"},{"file":"sfx\/max_die_vo_03.ogg","sha":"30669f92313d5cc28267d5930e134998bbbc68cd"},{"file":"sfx\/max_die_vo_04.ogg","sha":"16c28fd72322bbaea7d11e520f3899d752f38fb8"},{"file":"sfx\/max_die_vo_05.ogg","sha":"b1de6243e346540548464f81f9c8eba5f94e0664"},{"file":"sfx\/max_dryfire_01.ogg","sha":"a2422a140de7178d16757a2512fffda2abe47b10"},{"file":"sfx\/max_hurt_vo_01.ogg","sha":"924e0a98b081b9b21f84af79b3a2511e113925b8"},{"file":"sfx\/max_hurt_vo_02.ogg","sha":"b6b223b9d7ff8bda4a25b77e6268ca557c9fc35b"},{"file":"sfx\/max_hurt_vo_03.ogg","sha":"da2226068151b22f1a6082d273161c006ea9bc41"},{"file":"sfx\/max_hurt_vo_04.ogg","sha":"e5e06cc22f361e0f2e72eab589fd217ae5f5b967"},{"file":"sfx\/max_kill_vo_01.ogg","sha":"8638a145177746c5e3ff5664fb6ef8fb8171ffcb"},{"file":"sfx\/max_kill_vo_02.ogg","sha":"4ab170da533c7e41da923b7f42635f2ff7ef3524"},{"file":"sfx\/max_kill_vo_03.ogg","sha":"d9a29fa673ee50286cb3b1d6235b316752ffe3a1"},{"file":"sfx\/max_kill_vo_04.ogg","sha":"ff8ca4503e1365f1545f941f070ac7eff731dcee"},{"file":"sfx\/max_kill_vo_05.ogg","sha":"f9014fe3997edc550044a56080fd6d32c47b22c5"},{"file":"sfx\/max_lead_vo_01.ogg","sha":"9613b3361fdd3fabee8616e9fbe47e438a2860fc"},{"file":"sfx\/max_lead_vo_02.ogg","sha":"3e419149928921c4d2ac632fcf7af54eaa17a0d0"},{"file":"sfx\/max_lead_vo_03.ogg","sha":"a1faee5a7b043a27ee9a66066c1c9e9ab6eec4cd"},{"file":"sfx\/max_lead_vo_04.ogg","sha":"3013e66317b88e47cd270ab78686798f0120e33d"},{"file":"sfx\/max_lead_vo_05.ogg","sha":"d668ad0f704baa425dda0d631845dc17dc4ca895"},{"file":"sfx\/max_reload_01.ogg","sha":"26613a2683027cb704b432c55fb52a5dea4ff639"},{"file":"sfx\/max_start_vo_01.ogg","sha":"478e39a6aec7948b759cdf86cce60bbd0a40cd4c"},{"file":"sfx\/max_start_vo_02.ogg","sha":"ca2715ad2a72d336fe28c7b7503a6a71cf6337c5"},{"file":"sfx\/max_start_vo_03.ogg","sha":"412ec330ad799e27f47b22c9ead4b32eb46bf73c"},{"file":"sfx\/max_start_vo_04.ogg","sha":"eed1f361cf503ad6d2f2832c2d1e0b11cef867f8"},{"file":"sfx\/max_start_vo_05.ogg","sha":"cc0218849b97f0d7a2c35ffc94135e7b6cdff796"},{"file":"sfx\/max_ulti_01.ogg","sha":"45132115be234b8dcf3c349dc0ceb8f249f1f572"},{"file":"sfx\/max_ulti_vo_01.ogg","sha":"e20dc069275c6cdf05d8f32627a346e809a5ecfd"},{"file":"sfx\/max_ulti_vo_02.ogg","sha":"627886f70121c8d8ffd52b3fcffcd3f62c060a5e"},{"file":"sfx\/max_ulti_vo_03.ogg","sha":"7f2edc5f09aefe16444dae6bacb9167600fc5b9f"},{"file":"sfx\/max_ulti_vo_04.ogg","sha":"dbdc1b156cc3877f3a515bd877a96eff8885ba67"},{"file":"sfx\/mech_bo_fire_01.ogg","sha":"50259bc0a22a6b9402f1f94e58ea154934e9a0f7"},{"file":"sfx\/mech_bo_reload_01.ogg","sha":"22ef4034cde7d649598e1906b0a5f7fa54f318df"},{"file":"sfx\/mech_bo_ulti_01.ogg","sha":"9b63ce8d4ded44eee156767d43eae5a997e12cf2"},{"file":"sfx\/mech_crow_atk_01.ogg","sha":"889777639cda90d9dce18e647a865e319463fee4"},{"file":"sfx\/mech_crow_dies_01.ogg","sha":"8debbe5903b3fe5dcb917bf01d9abcfd2e48f51a"},{"file":"sfx\/mech_crow_get_hit_01.ogg","sha":"8af6222bad99d6f30da689bd5c261036bab9b6c1"},{"file":"sfx\/mech_crow_get_hit_02.ogg","sha":"925f094b85144d1303643cadc6677637971f1976"},{"file":"sfx\/mech_crow_get_hit_03.ogg","sha":"f0e8249c8c184fa30c16dca3bac1a04856f0bdf9"},{"file":"sfx\/mech_crow_get_hit_04.ogg","sha":"b9b5873a2660bc1e8c615a26259e67dd3035322a"},{"file":"sfx\/mech_crow_get_hit_05.ogg","sha":"afbbde3178d95703b950fc143f3e3e2c3e4aaef4"},{"file":"sfx\/mech_crow_get_hit_06.ogg","sha":"aa34899a602efea86b3b96c06bdc8e1ad2619fbe"},{"file":"sfx\/mech_crow_kills_01.ogg","sha":"c208ba8d7365db58f09dfd72c5b62fffaa814b6e"},{"file":"sfx\/mech_crow_kills_02.ogg","sha":"8f0b24e8b30f9c89957ee645ebaaae0477346039"},{"file":"sfx\/mech_crow_kills_03.ogg","sha":"ce5ca4e04bf2a32052e16360cdb4384a86e8dd84"},{"file":"sfx\/mech_crow_lead_01.ogg","sha":"e27514b30c160203b7b984e43f781b0f92a67546"},{"file":"sfx\/mech_crow_lead_02.ogg","sha":"107116631c677bdc90b0d912a49ebcc646ab63c0"},{"file":"sfx\/mech_crow_start_01.ogg","sha":"d9eb5f155cd2b486ab7e65908d79fbe356c77370"},{"file":"sfx\/mech_crow_start_02.ogg","sha":"d00d2518fd4ca516b8105286a110066042868f7e"},{"file":"sfx\/mech_crow_start_03.ogg","sha":"3082ae1c9f09d4c5431bcf390743a3fa08e72f4c"},{"file":"sfx\/mech_crow_ulti_01.ogg","sha":"3c3281eb5362ed85b73931bf73be342497188d9a"},{"file":"sfx\/mech_crow_ulti_vo_01.ogg","sha":"9a1809b59cf8896f9d1047bd285d1ea86647bc44"},{"file":"sfx\/mech_mike_atk_01.ogg","sha":"b888090c804d1f973df067b22e23a8062fea3f82"},{"file":"sfx\/mech_mike_die_vo_01.ogg","sha":"c166a0bb4f947456a0c77d6307301b17fde9fc2b"},{"file":"sfx\/mech_mike_die_vo_02.ogg","sha":"9e77b257bf7e5c648fa66d16d0780eacb63e5d09"},{"file":"sfx\/mech_mike_die_vo_03.ogg","sha":"6c415d6793e551b33132763d1d4f9bd1875c6c90"},{"file":"sfx\/mech_mike_die_vo_04.ogg","sha":"f8bbd5ccb57ca078f4f26aaf7a1b608286aa16f1"},{"file":"sfx\/mech_mike_die_vo_05.ogg","sha":"5e32bd3992820ea62f6f1cc1dc01432ab28f7b1d"},{"file":"sfx\/mech_mike_hurt_vo_01.ogg","sha":"9573b5cd62f523c1861308c69fbf80eb2978f5bf"},{"file":"sfx\/mech_mike_hurt_vo_02.ogg","sha":"7b1607090385d67c41d1eb03225357f616df92cf"},{"file":"sfx\/mech_mike_hurt_vo_03.ogg","sha":"ed9c643876705ec47edf4ee4af108ec4ef46f2f2"},{"file":"sfx\/mech_mike_hurt_vo_04.ogg","sha":"6485e15de085f0d62f9b59386bac07f224225859"},{"file":"sfx\/mech_mike_hurt_vo_05.ogg","sha":"47e07ac1265ec5e4ca0acd358f9662bd6eff192b"},{"file":"sfx\/mech_mike_kill_vo_01.ogg","sha":"4efed04783d09a8aed49621765e9b8781046f329"},{"file":"sfx\/mech_mike_kill_vo_02.ogg","sha":"894c247bbe6b3b49e9b06f5c5c398cdf2402ce05"},{"file":"sfx\/mech_mike_kill_vo_03.ogg","sha":"090b054272150424735b98f0322b1a96873db45d"},{"file":"sfx\/mech_mike_kill_vo_04.ogg","sha":"fe3b8c7046c16488784e4aa1abcb5277137a5335"},{"file":"sfx\/mech_mike_lead_vo_01.ogg","sha":"230a1a8a372179160e754c17d92125bb8894f8ae"},{"file":"sfx\/mech_mike_lead_vo_02.ogg","sha":"d77978f05e85c31d0787029568a82899fdb39dad"},{"file":"sfx\/mech_mike_start_vo_01.ogg","sha":"ad06a0f0d797dcd1eca10c273b2fdd369cdac2a6"},{"file":"sfx\/mech_mike_start_vo_02.ogg","sha":"78b7b73f6c36a84bca0d04d729337a32607ac886"},{"file":"sfx\/mech_mike_start_vo_03.ogg","sha":"b1540a71feb5a9ab06bc35e95ff67ea1b8f24ef6"},{"file":"sfx\/mech_mike_start_vo_04.ogg","sha":"3da0a625b594b53dad1db56752141971d76ed020"},{"file":"sfx\/mech_mike_ulti_01.ogg","sha":"7c6fb1ba7e342ae79577ad9483f3b00b3bb3a1db"},{"file":"sfx\/mech_mike_ulti_vo_01.ogg","sha":"34d06780fa3d8551bee9d439a964b2f5577d43e3"},{"file":"sfx\/mech_mike_ulti_vo_02.ogg","sha":"02ea1c1ae23305840568aa52dc31d51841e63c59"},{"file":"sfx\/mech_spike_atk_01.ogg","sha":"70b14e32d0ca32f6785d6c79206decbb3d31c129"},{"file":"sfx\/mech_spike_ulti_01.ogg","sha":"369d6dd90b963ea2e4030b10037a29618dbe1b47"},{"file":"sfx\/menu_click_08.ogg","sha":"ac9d8a6108f95aabad7c0c7e924aaea4022caba1"},{"file":"sfx\/menu_dismiss_01.ogg","sha":"536414a202f14099a3c19770c8ff0e31d71250a9"},{"file":"sfx\/menu_go_back_01.ogg","sha":"996dc6037f4d2b1251fc585170de80f6f478d00f"},{"file":"sfx\/meteor_01.ogg","sha":"de0a00312aa03f726ebe63941f330ca7d33a7381"},{"file":"sfx\/meteor_02.ogg","sha":"213cfe7be91b9f095940e9a60ade32dacc399de0"},{"file":"sfx\/meteor_03.ogg","sha":"7ee53c85348fadbbd11e7da184db6d2d041d6795"},{"file":"sfx\/minig_dryfire_01.ogg","sha":"6d6d56d7df50a599e331275357ba6160417e1cc2"},{"file":"sfx\/minig_fire_01.ogg","sha":"94ddfaa44eb2cdbb8f94b2440786eeb4b542b0c6"},{"file":"sfx\/minig_reload_01.ogg","sha":"5ce09a6c71f113423b33345ef13fdddb1cbaab2c"},{"file":"sfx\/minig_ulti_01.ogg","sha":"ec856f063d86fc5935e7588dca329a9ac5ff603e"},{"file":"sfx\/mortis_atk_01.ogg","sha":"aef5480536f04b1e9544a6f3a304d4e579f64597"},{"file":"sfx\/mortis_atk_vo_01.ogg","sha":"8ed71415ea3cd9d2f986e5bea5d3df1b53de660a"},{"file":"sfx\/mortis_atk_vo_02.ogg","sha":"749fab07c2f5be73f8958e4abed909a773f6cb42"},{"file":"sfx\/mortis_atk_vo_03.ogg","sha":"76f41aeb4a87878271b7f7f7316586162760f833"},{"file":"sfx\/mortis_atk_vo_04.ogg","sha":"4a69bd1440f14bbc3ba2f30c05dcbb514067a1a6"},{"file":"sfx\/mortis_die_01.ogg","sha":"6fea2c82c13c5d06cb89dd539b37ffc6d766ab71"},{"file":"sfx\/mortis_die_02.ogg","sha":"a6613477820be8dd367f8007b399b927499bddf4"},{"file":"sfx\/mortis_die_03.ogg","sha":"e1f63a1ce7b07a7afcbe1a98cf6cc10a2b75e023"},{"file":"sfx\/mortis_die_04.ogg","sha":"62beb7ebe71a9009522b53025d2560789d593f4b"},{"file":"sfx\/mortis_die_05.ogg","sha":"9307971a00c795440647cd786ef658237bbec76e"},{"file":"sfx\/mortis_gadget_01.ogg","sha":"6942dd6796293d248852c0876705cd2f39ec25f7"},{"file":"sfx\/mortis_hurt_01.ogg","sha":"73a9cb0cac94144e462236d8a03520d408e0431e"},{"file":"sfx\/mortis_hurt_02.ogg","sha":"b0d1941afcec4979a40062310a9a358a6df51738"},{"file":"sfx\/mortis_hurt_03.ogg","sha":"3ecc7729b55fffcfb1d3578d8a7b40ebbd2e20ba"},{"file":"sfx\/mortis_hurt_04.ogg","sha":"6a869373fc11fdc066c3cfd6ad4f3ff81de52407"},{"file":"sfx\/mortis_kill_01.ogg","sha":"c177436e5027e35e2be9daf252bf93f438ee99f8"},{"file":"sfx\/mortis_kill_02.ogg","sha":"7537751efa97132bec29f05bac61126952e94e8a"},{"file":"sfx\/mortis_kill_03.ogg","sha":"039e2a9d402265e110bc084b979e7a8fa64ea1c7"},{"file":"sfx\/mortis_kill_04.ogg","sha":"163e98b1412cb8cf81ff49a1614dee353b45ab4d"},{"file":"sfx\/mortis_lead_01.ogg","sha":"3ff7759aae9b62cf07f1457f429f7a9f19a26130"},{"file":"sfx\/mortis_lead_02.ogg","sha":"0969c9477f685210b3e1799df5533e6a1fa1c771"},{"file":"sfx\/mortis_lead_03.ogg","sha":"3a057d1822a3cc1a466cff13e009086f37246d39"},{"file":"sfx\/mortis_lead_04.ogg","sha":"ea564002cabf115f176e685cbd969aee2291cef1"},{"file":"sfx\/mortis_lead_05.ogg","sha":"b4970b47e2047c587a2463b41f1fa00740a833f9"},{"file":"sfx\/mortis_reload_02.ogg","sha":"825a64b80e3c74c6db6a430aacf9bc818786df77"},{"file":"sfx\/mortis_start_01.ogg","sha":"16c5438b309794ee9a48b0a0653cdab7703f6dc6"},{"file":"sfx\/mortis_start_02.ogg","sha":"218abc046b7a4de49b4b921055bfc32c70a5b792"},{"file":"sfx\/mortis_start_03.ogg","sha":"d75ee3b03086d4eeb0e9454ff00852a76fe051d0"},{"file":"sfx\/mortis_start_04.ogg","sha":"3c5a51510049cb5fe0993ff39f81ac1679cea620"},{"file":"sfx\/mortis_ulti_01.ogg","sha":"56183cc745b211152939f0ddedd8d4d588a03866"},{"file":"sfx\/mortis_ulti_vo_01.ogg","sha":"bdda18e925b542978ce057c76500adfdf485c02d"},{"file":"sfx\/mortis_ulti_vo_02.ogg","sha":"9938494fc376beb9df850b8170f649d12016b612"},{"file":"sfx\/mortis_ulti_vo_03.ogg","sha":"4a01dd34ca92367ae0872b599aab4052466330fb"},{"file":"sfx\/mortis_ulti_vo_04.ogg","sha":"b4484137b0d9c46cb18847ca21f8885c41b4fe09"},{"file":"sfx\/mortis_ulti_vo_05.ogg","sha":"520f48597136994197304d35300a1a258965db5c"},{"file":"sfx\/mrp_atk_01.ogg","sha":"5a49e8948fc46528b32c5b0eb1aef0fc278b7602"},{"file":"sfx\/mrp_atk_vo_01.ogg","sha":"753370fc8043abe9989cc27d2804d13a21c054e2"},{"file":"sfx\/mrp_atk_vo_02.ogg","sha":"a9eb8258ba4809cd783921d3e8d85c21777b7f52"},{"file":"sfx\/mrp_atk_vo_03.ogg","sha":"280fc0820936458734df68561b0bfa53eef1d65e"},{"file":"sfx\/mrp_atk_vo_04.ogg","sha":"2ea8b75fc785492e8c7c427cf02938fc582730ae"},{"file":"sfx\/mrp_die_vo_01.ogg","sha":"1ea4341a974c7b7725487779ce6a1227670bd311"},{"file":"sfx\/mrp_die_vo_02.ogg","sha":"87cc94000380ae1c8da82d171db81f174c34ced7"},{"file":"sfx\/mrp_die_vo_03.ogg","sha":"21cca72a0a277f4894a55b55cfd12d740c4b4e33"},{"file":"sfx\/mrp_dryfire_01.ogg","sha":"b728ecd22b805e17cbb6348430c9a4374f4c70f9"},{"file":"sfx\/mrp_get_hurt_vo_01.ogg","sha":"99d55db31f320b7e2bf290f20d83f4e4ee0f5da4"},{"file":"sfx\/mrp_get_hurt_vo_02.ogg","sha":"c2d5674dee18f17c0c946ef52db02a34f3c09ff6"},{"file":"sfx\/mrp_get_hurt_vo_03.ogg","sha":"2272d408828ce67e139efeed8d310726e810f8e8"},{"file":"sfx\/mrp_get_hurt_vo_04.ogg","sha":"8ed301c062cc748c07a53b1f0cea8e2dbb6812dd"},{"file":"sfx\/mrp_kill_vo_01.ogg","sha":"4b120a4719827b5450feca089d3efcf06345a2c5"},{"file":"sfx\/mrp_kill_vo_02.ogg","sha":"c297ebd1f0e137bc62cbb8d561720bbd0d9e0665"},{"file":"sfx\/mrp_kill_vo_03.ogg","sha":"386fedd90de1a743b4c94e3a92897b91bcb1b7cb"},{"file":"sfx\/mrp_kill_vo_04.ogg","sha":"558637c320f73c4f56407341ec7f68f6f623ac5a"},{"file":"sfx\/mrp_kill_vo_05.ogg","sha":"0e01466d6fc18c6a05e714192eaa8a62abcafc66"},{"file":"sfx\/mrp_lead_vo_01.ogg","sha":"02fad02c934629329af63812a0484837a2d24f9b"},{"file":"sfx\/mrp_lead_vo_02.ogg","sha":"a596336f13486c13ad908f9af586b3a3d3bf5afa"},{"file":"sfx\/mrp_lead_vo_03.ogg","sha":"7dee5b5cee19452054635f344095b77cd9db80c8"},{"file":"sfx\/mrp_minip_atk_01.ogg","sha":"cf193112955d719c23c431f0b56fab30c4f9745e"},{"file":"sfx\/mrp_minip_atk_02.ogg","sha":"ca295a059713969851c7c191879d3a8279341b90"},{"file":"sfx\/mrp_minip_bell_01.ogg","sha":"5f4681481ea234db6d7a99a39958a141be6bb9a0"},{"file":"sfx\/mrp_minip_die_01.ogg","sha":"6904d6e0836231e8f0d8f79bc36c598fd84d0177"},{"file":"sfx\/mrp_minip_die_02.ogg","sha":"bb851a2b187f4c323c35f37a489773e3808bd3a8"},{"file":"sfx\/mrp_minip_die_03.ogg","sha":"f814619d519b443134e9df52f5ee3816a262f01d"},{"file":"sfx\/mrp_minip_spawn_01.ogg","sha":"5753907c73f7b49dce3e914e0e0315400ca7509d"},{"file":"sfx\/mrp_minip_spawn_02.ogg","sha":"d29be0fe7d017f051b42804698819483d62350eb"},{"file":"sfx\/mrp_minip_spawn_03.ogg","sha":"a2e62d0349cef0b2efb3c35d9ec11965ab9c9ed7"},{"file":"sfx\/mrp_reload_01.ogg","sha":"19dab272723784de360536f262154a14304dfed4"},{"file":"sfx\/mrp_start_vo_01.ogg","sha":"5ec0a87114507cbde231920004c59f4bbcd04b33"},{"file":"sfx\/mrp_start_vo_02.ogg","sha":"9b635737ee7ebc9c5f1b9d19ae1880eda742d312"},{"file":"sfx\/mrp_start_vo_03.ogg","sha":"8b344dea057bfdf7d77a6f528b06b37842fcd980"},{"file":"sfx\/mrp_start_vo_04.ogg","sha":"bbcfce67d0610c193413c17584a9cfbbb7f9bea6"},{"file":"sfx\/mrp_start_vo_05.ogg","sha":"bbc6722d622dd73ee5789b3874a8e7dd53fbb021"},{"file":"sfx\/mrp_ulti_vo_01.ogg","sha":"14eb5786a2e45a0dd44c51b55f50e125e2ac09cd"},{"file":"sfx\/mrp_ulti_vo_02.ogg","sha":"2b85acfd14a9aee3655d8590729c4a09f57132e8"},{"file":"sfx\/mrp_ulti_vo_03.ogg","sha":"9e5f591d94234c73a2996eeea53a73d038710157"},{"file":"sfx\/mrp_ulti_vo_04.ogg","sha":"3d21fba62b333fa27704fe6eb95923a440d9b4c3"},{"file":"sfx\/mvp_jingle_01.ogg","sha":"c1983e5042cce7ea7650b4c1f539405bc223d850"},{"file":"sfx\/mystic_atk_01.ogg","sha":"c91d06312e5439587337057ef31f2b1860653725"},{"file":"sfx\/mystic_dryfire_01.ogg","sha":"d010300e4db99acd4ced218fea63988a66eee5da"},{"file":"sfx\/mystic_hole_01.ogg","sha":"a12d5c634d50ef6e8e7eabf98b9448e9041f4fd7"},{"file":"sfx\/mystic_reload_01.ogg","sha":"467f2379667501963fdb36b4a94c9a27cfa3e115"},{"file":"sfx\/mystic_ulti_deploy_01.ogg","sha":"138dad1aebe3955deaa73ee0e1a0ed1d59e4e7b3"},{"file":"sfx\/ninja_invis_01.ogg","sha":"b7576c11af9ef4ac34e2872ad5df00d299b8b84e"},{"file":"sfx\/ninja_invis_end_01.ogg","sha":"7ca535baafb7b9edcb806fba37f7b15556c021ce"},{"file":"sfx\/ninja_star_01.ogg","sha":"9774a4421766b2fd2e8a148a1481c836e1ec6cbb"},{"file":"sfx\/ninja_star_dry_01.ogg","sha":"c24ed981f2162058cb7dfb6cd9e20d884930abe1"},{"file":"sfx\/nita_atk_01.ogg","sha":"d4fde066779177e22b67accc86c5453636b1b8f9"},{"file":"sfx\/nita_atk_02.ogg","sha":"436ff334189499f71ad98ef4cb7339ec5c790e7f"},{"file":"sfx\/nita_atk_03.ogg","sha":"9bbbbea41f6fb02d577d571edfe3698a0c42d299"},{"file":"sfx\/nita_atk_04.ogg","sha":"0d576fb97f1af31cb63eb2d8cb5aea8390963a2e"},{"file":"sfx\/nita_atk_05.ogg","sha":"8b3c3c15054573d864632e79707368cf28ee1103"},{"file":"sfx\/nita_die_01.ogg","sha":"57b5d1b5d60183c84938d29c39545783537472ea"},{"file":"sfx\/nita_die_02.ogg","sha":"149ca06123db642b1862b380732cd5111846a031"},{"file":"sfx\/nita_gadget_01.ogg","sha":"71a344e16fe4c7d35b9e4930b82c16f9e350af6a"},{"file":"sfx\/nita_hurt_01.ogg","sha":"af884b1ca64b386d79ceec1ef24c901d426d2e28"},{"file":"sfx\/nita_hurt_02.ogg","sha":"1d922a529a8118ecb9af0763159209332098bfbe"},{"file":"sfx\/nita_hurt_03.ogg","sha":"f9962e1949ec8e1f1c1e627f31328f9e695a33a2"},{"file":"sfx\/nita_hurt_04.ogg","sha":"6d415b8dc727b8ed49515fa47ea6b71b16dcd39d"},{"file":"sfx\/nita_hurt_05.ogg","sha":"908972b93021986c4ef3d5a8771cb75b7d74b190"},{"file":"sfx\/nita_kill_vo_01.ogg","sha":"2dbc38b1a52d96425847853ce4491f8c5a38b9f2"},{"file":"sfx\/nita_kill_vo_02.ogg","sha":"9fdebd6a760c78dd9e813f411c28fc1f3ad99f7e"},{"file":"sfx\/nita_kill_vo_03.ogg","sha":"e41085bc11fe91458fb72bf0b29d08ed44bca524"},{"file":"sfx\/nita_lead_01.ogg","sha":"e94d5e7ed54bf9833dde6d402bf4725a0f7286e9"},{"file":"sfx\/nita_lead_02.ogg","sha":"f4a7a880ad238ab6af5428c008c330f45a48af1b"},{"file":"sfx\/nita_lead_03.ogg","sha":"689a92cb784579c5f8f5176a11b1ba9a2bafd2cd"},{"file":"sfx\/nita_start_vo_01.ogg","sha":"3d6bfc6058edbbf20db3a7043bc470e33fe78de0"},{"file":"sfx\/nita_start_vo_02.ogg","sha":"064ac733376b57dcbf42cbca3501592138c32594"},{"file":"sfx\/nita_start_vo_03.ogg","sha":"1b33d6e53734921a7aeb0cfec5701ed15c3be918"},{"file":"sfx\/nita_ulti_01.ogg","sha":"45c308387d0bd245520b13a2f17de18ad475bc93"},{"file":"sfx\/nita_ulti_vo_01.ogg","sha":"078857280aa02bc974fdadde0d4d0cfe600ec156"},{"file":"sfx\/nita_ulti_vo_02.ogg","sha":"ca2f00f7c2ba42569efcaba540433dc2d2163fa9"},{"file":"sfx\/nita_ulti_vo_03.ogg","sha":"30cb6ce2f2093f9b60810d8d6ae2486b8b6068e6"},{"file":"sfx\/orb_glow_03.ogg","sha":"a6f09618ce7e6e15db6ead97a509c276c9737ab7"},{"file":"sfx\/overtime_02.ogg","sha":"8b763d1fc20a4a2c30e7c6377ecf71836d3ef980"},{"file":"sfx\/pam_die_vo_01.ogg","sha":"f1b6c9cb0eefb05c180d3120d2c072482d82e0ef"},{"file":"sfx\/pam_die_vo_02.ogg","sha":"d23a26aff6a0110502cd976c4564cf442f3f9331"},{"file":"sfx\/pam_die_vo_03.ogg","sha":"c32728d3621b37311e51f21a2fb50f12e298c338"},{"file":"sfx\/pam_die_vo_04.ogg","sha":"204546ecbfa822a695ee98ca5c79dd94e430e896"},{"file":"sfx\/pam_hurt_vo_01.ogg","sha":"9f2963d447fd31d5d80313861652a538eb2b0313"},{"file":"sfx\/pam_hurt_vo_02.ogg","sha":"d253d3663bf7b941185b47a53c1b64e19b4f6b67"},{"file":"sfx\/pam_hurt_vo_03.ogg","sha":"919336bfa6cdee8875eda486b64eb405b4a1ff44"},{"file":"sfx\/pam_hurt_vo_04.ogg","sha":"c4377206275a561b5a19dd0c1e9de5e60fb6c679"},{"file":"sfx\/pam_hurt_vo_05.ogg","sha":"9f90505807848ddb4afb43097b9dd9db33facaee"},{"file":"sfx\/pam_kill_vo_01.ogg","sha":"00fbe1853cde4faffb18a5576d732ff9c47c8020"},{"file":"sfx\/pam_kill_vo_02.ogg","sha":"d8ff75cba3d4b8180cf7ec77cfd6e2ecb474f7c0"},{"file":"sfx\/pam_kill_vo_03.ogg","sha":"1edbbcbb77f17706c1fd5e4ebfae0ab1a0f1288c"},{"file":"sfx\/pam_kill_vo_04.ogg","sha":"3eb4af7c6a3df87d5d675dc6e6fb09402db76117"},{"file":"sfx\/pam_lead_vo_01.ogg","sha":"408235fba2e637a0927697794ae368e4e18ca564"},{"file":"sfx\/pam_lead_vo_02.ogg","sha":"6d5ff8bffd9eb8d8dafe77b256104b1093b264de"},{"file":"sfx\/pam_lead_vo_03.ogg","sha":"c3ad5694878db839f0854c1285ab9c85b7034ca4"},{"file":"sfx\/pam_lead_vo_04.ogg","sha":"83ca51665a98930be74ee32476d616efc1f1b025"},{"file":"sfx\/pam_start_vo_01.ogg","sha":"97734b9cac1e11714ca20d969c7bbf6ca5d4ba86"},{"file":"sfx\/pam_start_vo_02.ogg","sha":"72d3209dc8cd36645db60f25742f369b325febac"},{"file":"sfx\/pam_start_vo_03.ogg","sha":"fd5e2aa441c8d78978e68d68403900cd6ddc78d3"},{"file":"sfx\/pam_start_vo_04.ogg","sha":"4fcffd798e69d1c5b67bb310dc259559f0f1aca0"},{"file":"sfx\/pam_ulti_vo_01.ogg","sha":"ce541f4d3bfdfbd54eddc754855427e7244269e5"},{"file":"sfx\/pam_ulti_vo_02.ogg","sha":"7bb0116b411ea50d8544189768ffdfa8acdee4c7"},{"file":"sfx\/pam_ulti_vo_03.ogg","sha":"53000a7b3b88603e835d2533266df7d826dc6a4f"},{"file":"sfx\/pam_ulti_vo_04.ogg","sha":"ebef58b5615e52ebfb660b2570c23cbffe646ab2"},{"file":"sfx\/penny_die_vo_01.ogg","sha":"13487367380a832ba83b189a28754fff801e7a29"},{"file":"sfx\/penny_die_vo_02.ogg","sha":"67c8b38bea8caf4945e7189a5909e757b2ddceb5"},{"file":"sfx\/penny_die_vo_03.ogg","sha":"7cec2c92eff4794581ab17cc3c2dcfb5074fd06c"},{"file":"sfx\/penny_hurt_vo_01.ogg","sha":"0a9c30846a8810b3f4cad915532a08f48184fd83"},{"file":"sfx\/penny_hurt_vo_02.ogg","sha":"dbe589b19c75b781650bcba98798b5b65ccb9832"},{"file":"sfx\/penny_hurt_vo_03.ogg","sha":"94bc7b1399d173dcd76b1b6ba215ad1560e5adcd"},{"file":"sfx\/penny_kill_vo_01.ogg","sha":"8af72fc659dd88807abe730e4b1003fdd480bc2d"},{"file":"sfx\/penny_kill_vo_02.ogg","sha":"28ed78b29163e62cf1cc555b5b37553be079a9ec"},{"file":"sfx\/penny_kill_vo_03.ogg","sha":"7b16b1034a5a6144c66a542b5e47f183ad62be46"},{"file":"sfx\/penny_kill_vo_04.ogg","sha":"ec98454dc062f23302cb8581f4cbfae0d1b6a48c"},{"file":"sfx\/penny_kill_vo_05.ogg","sha":"ecd81cae910bac2195c9715ee443e1b48980323c"},{"file":"sfx\/penny_lead_vo_01.ogg","sha":"ee8da27d2a4b5ec3f4fc01c3d056bf77f989b497"},{"file":"sfx\/penny_lead_vo_02.ogg","sha":"ca6ba43a1bd5f46b5be15747fa5d17a01b213543"},{"file":"sfx\/penny_lead_vo_03.ogg","sha":"1de6b0402eef39ecba150e379f727c785d82959f"},{"file":"sfx\/penny_start_vo_01.ogg","sha":"1d14237be2f65f2b5a2f8efe488039037fcfdfa2"},{"file":"sfx\/penny_start_vo_02.ogg","sha":"f6dc8179764769c9a1261a14324fd9186b728590"},{"file":"sfx\/penny_start_vo_03.ogg","sha":"ae3954d5fe89c9848f75a52df8916090eb836339"},{"file":"sfx\/penny_ulti_vo_01.ogg","sha":"6dbacdbc104a59d6aeee3143dc11c49543dbca48"},{"file":"sfx\/penny_ulti_vo_02.ogg","sha":"bdd69655fea9eb5fffcdce3397c4c657005bbe2c"},{"file":"sfx\/penny_ulti_vo_03.ogg","sha":"12544317d698053c4d753aa612666eb06baee39e"},{"file":"sfx\/pickup_spawn_03.ogg","sha":"233af5c2c78210d0ac82c2baf671529c3a955ed1"},{"file":"sfx\/piper_die_01.ogg","sha":"5284a646fde698cf9f87130fba64f161bf57263e"},{"file":"sfx\/piper_die_02.ogg","sha":"3fcbe58499a234c9969927ff0b74c0543608230f"},{"file":"sfx\/piper_die_03.ogg","sha":"b480a1e1a97c01b6fd5b2fdd6b52d85964d314fd"},{"file":"sfx\/piper_gadget_01.ogg","sha":"1e9d2cb140811e1ec8f5d189a51c03171ff4f678"},{"file":"sfx\/piper_hurt_01.ogg","sha":"ac3c1bdcbc2285efdaea358dacdc4242806f78c0"},{"file":"sfx\/piper_hurt_02.ogg","sha":"18327dd1e5e3f051eabcb3e2fec021d4c5d8ff77"},{"file":"sfx\/piper_hurt_03.ogg","sha":"2b29fd5dcdd92ea08ac1a18c0e069334d54e48fd"},{"file":"sfx\/piper_hurt_04.ogg","sha":"ee6b8fbe11ba38e1b4048bec1fabcf2bd519f3f5"},{"file":"sfx\/piper_hurt_05.ogg","sha":"5a43f0f4b99ac10afffc1cd00466104ea079843d"},{"file":"sfx\/piper_hurt_06.ogg","sha":"59ec9817dbe5f4072bd768186bc7a632ced3fc1b"},{"file":"sfx\/piper_kill_01.ogg","sha":"be782e89e90d5a7a7b7f59f0a2147bdd9a6ffddd"},{"file":"sfx\/piper_kill_02.ogg","sha":"8e61e5d3758a6ee5b76dae3ac3737075b9940518"},{"file":"sfx\/piper_kill_03.ogg","sha":"b58b2a07a9308a0c27b179ad91a7dc688b888e6b"},{"file":"sfx\/piper_kill_04.ogg","sha":"dff8d9ebf3d37811782a131786ff563b7dfdb58f"},{"file":"sfx\/piper_lead_01.ogg","sha":"c05a1ba5b5cd44ed6f62ddeee31248c9b3062d1d"},{"file":"sfx\/piper_lead_02.ogg","sha":"f4b5394f25e638c3f7c7ac5dd18b1c3c5d9167b1"},{"file":"sfx\/piper_lead_03.ogg","sha":"23f36bf4b53e397de82ffe20498fbb51251ea2b5"},{"file":"sfx\/piper_mine_drop_02.ogg","sha":"cc35b4f35bf452d0def312500007c668ce314628"},{"file":"sfx\/piper_start_01.ogg","sha":"6c0cc8cf062e195c43ed870c01a29765167e07de"},{"file":"sfx\/piper_start_02.ogg","sha":"679df62e42658c2e1785fd8a5e4152ca4a376084"},{"file":"sfx\/piper_start_03.ogg","sha":"4bf11a7fc64707f26869909725565bd181392983"},{"file":"sfx\/piper_start_04.ogg","sha":"b1e595958ce740860cf64caa13460beafb0233cb"},{"file":"sfx\/piper_ulti_01.ogg","sha":"6dc1d7e984e2935be38d1322584315e464284be1"},{"file":"sfx\/piper_ulti_02.ogg","sha":"6d81ba8eec4b32f7c04a1e3ce63863ef4c07532c"},{"file":"sfx\/pistol_fire_01.ogg","sha":"c07db786f9e52e4a44763156bda352356499695a"},{"file":"sfx\/pistol_fire_ulti_01.ogg","sha":"508d393a61100d29ac052d30f6c0efbd9b5a3e34"},{"file":"sfx\/planet_whoosh_03.ogg","sha":"e9554ae99c58000d0667470f4b085f7ba0fc3ebb"},{"file":"sfx\/player_gadget_button_01.ogg","sha":"e59427f3c63fe9c4cba353cc5805d26337db5d89"},{"file":"sfx\/poco_die_01.ogg","sha":"53ddfa51dbf287efc1cd16a39a5ccaba90e6be4e"},{"file":"sfx\/poco_die_02.ogg","sha":"a715eb126c9f84bf2f4d91b333f55231a8f6d0e8"},{"file":"sfx\/poco_die_03.ogg","sha":"19a4a1fcc1929e3c48acb05981916dbc27dd9679"},{"file":"sfx\/poco_gadget_01.ogg","sha":"0db15f5892626257a5606063e89513a6d47518d4"},{"file":"sfx\/poco_hurt_01.ogg","sha":"20685455546254f820d8fac8261dba873e5bdd55"},{"file":"sfx\/poco_hurt_02.ogg","sha":"fcfa50827daf493a557ac530a58faf94847be17b"},{"file":"sfx\/poco_hurt_03.ogg","sha":"d9516d18dfbe33a381ff11210682ecb478d4965d"},{"file":"sfx\/poco_hurt_04.ogg","sha":"98971883794f38b51cb79e359e1e2f382846a09f"},{"file":"sfx\/poco_kill_01.ogg","sha":"57eccfd8d7c21926e71e7b0f78f83d9b2699e4ef"},{"file":"sfx\/poco_kill_02.ogg","sha":"1e8ec29f58a0d8066d636076f58fe658fc644dd9"},{"file":"sfx\/poco_kill_03.ogg","sha":"ffb590c14fd87d05b1bcf4580dc831499f61fe42"},{"file":"sfx\/poco_lead_01.ogg","sha":"3f3b339963b5777f71dc29ad29c0f2af5ec636fe"},{"file":"sfx\/poco_lead_02.ogg","sha":"cb24f12650119a187818981aa69f0baeff70353c"},{"file":"sfx\/poco_lead_03.ogg","sha":"69e067c9d8069a14a91383e6a2af7d44d0e841f2"},{"file":"sfx\/poco_new_atk_01.ogg","sha":"9091c2e3582f3d5260d53fcfadf1ca49f9674e93"},{"file":"sfx\/poco_new_reload_02.ogg","sha":"014a94fb496c814e4eb826de07474ae8cacfe868"},{"file":"sfx\/poco_start_01.ogg","sha":"3490f59fb9ddb5b61a30015bdf0d9df74bbd714f"},{"file":"sfx\/poco_start_02.ogg","sha":"725ac07ab023343a5a6a055df0ab6e8500a4f80d"},{"file":"sfx\/poco_start_03.ogg","sha":"7a45beb2a434c86f58f39d1852edd111369da31d"},{"file":"sfx\/poco_start_04.ogg","sha":"80c91f3027ae7b95c68e0d891be2567a43ca0040"},{"file":"sfx\/poco_ulti_01.ogg","sha":"5b03489d9f68c4b5fc0e8a9be70ae1883fdbb779"},{"file":"sfx\/poco_ulti_02.ogg","sha":"e235fd581b11a4dcb9ed87993860a35927abbc52"},{"file":"sfx\/poco_ulti_03.ogg","sha":"7f91dcc30c123cef00e17e7c7ed684226c709f9c"},{"file":"sfx\/poco_ulti_04.ogg","sha":"4bb128de2e598d45979bff7096a4aab4e5a79ef2"},{"file":"sfx\/poco_ulti_sfx.ogg","sha":"67aecbbd0e2582dac1a465debbb6f4beac64398f"},{"file":"sfx\/post_match_draw_cheer_02.ogg","sha":"0a7686f5b30eb10386119bc727de040c7b5cbe5a"},{"file":"sfx\/post_match_lose_cheer_01.ogg","sha":"615f23585e855b1540a01b4fa893dfaa94006434"},{"file":"sfx\/post_match_win_cheer_01.ogg","sha":"f34e4058907592ca9ce7e4c526178c60db125690"},{"file":"sfx\/power_up_spawn_01.ogg","sha":"4898a25f8611120f71f1184caad313cce7ef2600"},{"file":"sfx\/princess_land_01.ogg","sha":"9389363c7c2a95985338cdef962b996eb5c25e62"},{"file":"sfx\/princess_shoot_01.ogg","sha":"aee8f54088de59187fabaeca107eee631dd9cb7f"},{"file":"sfx\/punch_impact_01.ogg","sha":"d3115f435e9e40f9ac734550eae6bcdd63cdf8fc"},{"file":"sfx\/punch_impact_02.ogg","sha":"5e961e24bf6ebf9491fcf9452433e61efc832b68"},{"file":"sfx\/rank_up_01.ogg","sha":"679908e9e7ac96bf6e207abdefa4d40b8179ab1a"},{"file":"sfx\/respawn_count_01.ogg","sha":"7c6de5988b917026d1f93e779a0506a4c80dfe6f"},{"file":"sfx\/reveal_common_card_01.ogg","sha":"67758a9c4dc48bd10280dfc0d3cc36e347fdc34d"},{"file":"sfx\/reveal_epic_card_01.ogg","sha":"8019ec8ea53e7ea8bbbd704ffcbd7c3851ad2687"},{"file":"sfx\/reveal_legendary_card_01.ogg","sha":"4c87e8621d63ea8dfc6ad6db0b8cb47915517b2b"},{"file":"sfx\/reveal_rare_card_01.ogg","sha":"9da7345ea2d35954eae9ce204dba666f51dc2d04"},{"file":"sfx\/rhino_fire_01.ogg","sha":"825822edc092322f54e498ab6a384c00d37033da"},{"file":"sfx\/rhinostep_01.ogg","sha":"d1c7caf085fc79054e0b30f8217acf2b1cc0fc33"},{"file":"sfx\/rick_bullet_01.ogg","sha":"b461689bde6fa83d086213668fe81bf5f12bc853"},{"file":"sfx\/rick_die_01.ogg","sha":"91e6c19943cfedcd5dca622498e28525ab538598"},{"file":"sfx\/rick_die_02.ogg","sha":"e3c58ef246eb2800a8254888ff00a82fe69abc5d"},{"file":"sfx\/rick_die_03.ogg","sha":"c790f5cea2fece5399ee3e44cf6e1a4dfb307492"},{"file":"sfx\/rick_die_04.ogg","sha":"21502e77d25b3fe2187c3530ef15e81d420270c9"},{"file":"sfx\/rick_die_05.ogg","sha":"575543d93752db9d0a20596d8f312269ba45921f"},{"file":"sfx\/rick_hurt_01.ogg","sha":"aea13d6286c696d6ec85b20befe33d72f99ad54e"},{"file":"sfx\/rick_hurt_02.ogg","sha":"a25e329ad322dcc91ac6618826abc453064094de"},{"file":"sfx\/rick_hurt_03.ogg","sha":"ffc0ee000eb60f5920b93ffe3c5f431c74cebe48"},{"file":"sfx\/rick_hurt_04.ogg","sha":"c0bf6a635d6ba6ff905dffc5cf8899a6e865e1be"},{"file":"sfx\/rick_hurt_05.ogg","sha":"e1526e62cc55d131cc319aaf2e5963f3834a418e"},{"file":"sfx\/rick_kill_vo_01.ogg","sha":"2e385b4159b8de2513c6d493183466af17867b58"},{"file":"sfx\/rick_kill_vo_02.ogg","sha":"a807e712ad5b69d1e06b0c4f6ad1be4e3c30e1ba"},{"file":"sfx\/rick_kill_vo_03.ogg","sha":"238e4c76096c53995c2f29842737e02a02c04ef5"},{"file":"sfx\/rick_kill_vo_04.ogg","sha":"3073252f22230bd8b9f4271e172671159e173117"},{"file":"sfx\/rick_kill_vo_05.ogg","sha":"11a3a74c5d903899303da7804d8bb8428bec1f97"},{"file":"sfx\/rick_kill_vo_06.ogg","sha":"8247408409f508da42c9a5c8a99aea104191111c"},{"file":"sfx\/rick_kill_vo_07.ogg","sha":"1960f3e9c1a2ac0ab5ddb8eacdf7f24ffde2274e"},{"file":"sfx\/rick_lead_01.ogg","sha":"a86ca2567284f1619de604599128ac86541caf37"},{"file":"sfx\/rick_lead_02.ogg","sha":"68555c002a8db86212194bbadde9aec136be3cc6"},{"file":"sfx\/rick_lead_03.ogg","sha":"32c74ca2e84eb7b0ea40bbedf5197a90497a4676"},{"file":"sfx\/rick_lead_04.ogg","sha":"4f26f406cd0e5b4301ad102a0b778e6cd45bb5d6"},{"file":"sfx\/rick_lead_05.ogg","sha":"d44412c682eef30a6a13ab81d57a8e70c1fdc430"},{"file":"sfx\/rick_start_vo_01.ogg","sha":"69046f47145982957ec72e35a2d26299b06f6b32"},{"file":"sfx\/rick_start_vo_02.ogg","sha":"d49a0fb72c17a24c362c564e0028d6c97a3d97cc"},{"file":"sfx\/rick_start_vo_03.ogg","sha":"5ee8c6cf539117328ed551a7edf28f07ef65865a"},{"file":"sfx\/rick_start_vo_04.ogg","sha":"7e4f811487de6550f639fdb1734867d1019f4ff5"},{"file":"sfx\/rick_start_vo_05.ogg","sha":"344ad7f75ee763ef30b648710f3bcc5f521854cd"},{"file":"sfx\/rick_start_vo_06.ogg","sha":"18219e6048f9666f7406d9bb07ccb20512896b2c"},{"file":"sfx\/rick_ulti_01.ogg","sha":"3f74cf55168d95d43670be31cf772c0c7edfb560"},{"file":"sfx\/rick_ulti_02.ogg","sha":"10a59368d9f2bb9a60da2a1602980e61867c690f"},{"file":"sfx\/rick_ulti_03.ogg","sha":"2ed365d18c931e984628a5e9ab50ce1d7b620366"},{"file":"sfx\/rick_ulti_04.ogg","sha":"309f4a5ee70c6a2da4662eb6a66fdeaa0f6babf6"},{"file":"sfx\/rick_ulti_05.ogg","sha":"ba0f2d514ae0acb109bdf18d56acfd1571ef9477"},{"file":"sfx\/rick_ulti_06.ogg","sha":"7e7bf6420ebdf34b4569a9013fe37d2c6996f88f"},{"file":"sfx\/robo_bo_die_01.ogg","sha":"34e11fe2415102099ab33cf3e2e7e1b67a4f3b6f"},{"file":"sfx\/robo_bo_die_02.ogg","sha":"bedfc4d1cedc95e037e163d5863f832461ed50a8"},{"file":"sfx\/robo_bo_die_03.ogg","sha":"b5fbd752379e0f09ef17489846fe3df17f51db37"},{"file":"sfx\/robo_bo_die_04.ogg","sha":"5893bf0d35d61812d87d3ced856ab81b1cb59967"},{"file":"sfx\/robo_bo_die_05.ogg","sha":"6e9b031ead0fc4cd916a2408e909683d470b84ab"},{"file":"sfx\/robo_bo_fire_vo_01.ogg","sha":"cdaf709dc647987b393b5669eb813d2c0501bc3c"},{"file":"sfx\/robo_bo_fire_vo_02.ogg","sha":"d586dc619f4424369e52a61535f812057669881d"},{"file":"sfx\/robo_bo_fire_vo_03.ogg","sha":"7ed9859973514ee682750978ed1e9bd0ee7cd48a"},{"file":"sfx\/robo_bo_fire_vo_04.ogg","sha":"52dfa02f08d716e2f33bd5d1a18c9df93d86348f"},{"file":"sfx\/robo_bo_hurt_01.ogg","sha":"1b215261e764880ee2a988eeb04aa4231cbc7122"},{"file":"sfx\/robo_bo_hurt_02.ogg","sha":"cb2a4084a898122683a8199d85685a6b5ce400cd"},{"file":"sfx\/robo_bo_hurt_03.ogg","sha":"ed6d024699869c06f246fa490573902acc142d7f"},{"file":"sfx\/robo_bo_hurt_04.ogg","sha":"b574baccf4590cb9e2d94e0f88afb18a71352e7e"},{"file":"sfx\/robo_bo_kill_01.ogg","sha":"2e666075bb7bab0d3b976c36fcaef2d7d9db081e"},{"file":"sfx\/robo_bo_kill_02.ogg","sha":"aa2111d1e42ceb6cd180198a9536527881978e60"},{"file":"sfx\/robo_bo_kill_03.ogg","sha":"7172994b76ee7141e48f5f251a1a1b2ff7c80ac9"},{"file":"sfx\/robo_bo_kill_04.ogg","sha":"02bd3a68fd30d055a3c16fac0d19e3c6a50317ee"},{"file":"sfx\/robo_bo_lead_vo_01.ogg","sha":"dc6bba72554bca4bc6355ee308c6fc14f25c1b7b"},{"file":"sfx\/robo_bo_lead_vo_02.ogg","sha":"a6bc0181357c78f43f20c395c5b470acf0d72fbc"},{"file":"sfx\/robo_bo_lead_vo_03.ogg","sha":"097f30a01768c6fcb516a53f62322e124d2f274f"},{"file":"sfx\/robo_bo_lead_vo_04.ogg","sha":"b3e3f30dcf050236c22468ab789e298ac7edc984"},{"file":"sfx\/robo_bo_start_vo_01.ogg","sha":"899f8a9b978e748ab091df79e905d7dcf5fc3647"},{"file":"sfx\/robo_bo_start_vo_02.ogg","sha":"011cc2d08e54500f1ac53122b5328e0e12ea56b0"},{"file":"sfx\/robo_bo_start_vo_03.ogg","sha":"c162e1636fec4de522ce0651107e99521d739dfc"},{"file":"sfx\/robo_bo_start_vo_04.ogg","sha":"2ac54be3df0c1ff031aa468003c3e51376657f5a"},{"file":"sfx\/robo_bo_start_vo_05.ogg","sha":"a864f848bbf3e71177a95547c68887671bd027d7"},{"file":"sfx\/robo_bo_ulti_vo_01.ogg","sha":"c9da37b701fefad356cbc0083e0f504fbd29a731"},{"file":"sfx\/robo_bo_ulti_vo_02.ogg","sha":"c20e3a3d40112f83eb317392fc38e7f2616d3821"},{"file":"sfx\/robo_bo_ulti_vo_03.ogg","sha":"bc8c9d5fd58a326ac7586690b306b955aadc2b04"},{"file":"sfx\/robo_bo_ulti_vo_04.ogg","sha":"e45980f5b99d427dd47d77bc5f9c2386aa6f83c3"},{"file":"sfx\/robo_death_01.ogg","sha":"b952b89d9efd0d15308252fd44a27c8d7634bc80"},{"file":"sfx\/robo_death_02.ogg","sha":"5c089652b790373e0432e84f5af7a9c705b50e5c"},{"file":"sfx\/robocon_01.ogg","sha":"b241d9f0ed6a82d9a6bef88da8e9a176b9c48d97"},{"file":"sfx\/roborocket01.ogg","sha":"be515d3f99ad2ea30cc7ed30eb4281ddb5a0ed74"},{"file":"sfx\/robotshoot_01.ogg","sha":"9c0d98af51affd6e6e3300048d8d8928ea97a2de"},{"file":"sfx\/roboturret01.ogg","sha":"86b06e223495b8286fce7fd2ccbd471546259fa7"},{"file":"sfx\/rocket_rose_atk_02.ogg","sha":"94d33fb18bff6a95cf9f03cbb5c17b219d20f00d"},{"file":"sfx\/rosa_death_01.ogg","sha":"48c354fbf01e62dc37dd74b2622715eb522b3d1f"},{"file":"sfx\/rosa_death_02.ogg","sha":"0dbd4e28e1a77206d84d69b5e70c7c18eec75b79"},{"file":"sfx\/rosa_death_03.ogg","sha":"19ce86073a8421ec8b7093c33d9493134242e069"},{"file":"sfx\/rosa_death_04.ogg","sha":"88869bce431cf494840c0abc211afd8629bfdc75"},{"file":"sfx\/rosa_gadget_01.ogg","sha":"a4105e956890d25dc53e16e935527b819735893c"},{"file":"sfx\/rosa_hit_01.ogg","sha":"31ac9a7dacd44f1e178d0e15f594af7d96e41665"},{"file":"sfx\/rosa_hit_02.ogg","sha":"a174c76adac1038b6d579d14ed0d6ee908cdc24d"},{"file":"sfx\/rosa_hit_03.ogg","sha":"4ac354ce3aa666618aaca9bc237a8a653a8ba154"},{"file":"sfx\/rosa_hit_04.ogg","sha":"37fdc54262d53fc8c2a9db9370fdeb19f6f14f59"},{"file":"sfx\/rosa_hit_05.ogg","sha":"4dd04bad8265f2bfbe8d1098ed98fdac0adf60f8"},{"file":"sfx\/rosa_hit_06.ogg","sha":"54aa113d97e6fb901fdb7a9f74835adb6976307e"},{"file":"sfx\/rosa_hit_07.ogg","sha":"7da7d162fea9db794e65a42e9b3a0df4c9cb8f87"},{"file":"sfx\/rosa_kill_01.ogg","sha":"e767979301c80936b7cc7193733d72d3fbfa6e35"},{"file":"sfx\/rosa_kill_02.ogg","sha":"51b5e6945925fbce5d26ee0686e42d5543fa155b"},{"file":"sfx\/rosa_kill_03.ogg","sha":"e8c496f1fd33cf67f29efbd308a28513387e6e48"},{"file":"sfx\/rosa_kill_04.ogg","sha":"a664f4de9e23e2de5d91c2946582ab692f019ba1"},{"file":"sfx\/rosa_kill_05.ogg","sha":"53adaa2aeb133b6261c1faa29873f7b6fbbed172"},{"file":"sfx\/rosa_lead_01.ogg","sha":"92994e1a118fd484873fecf983349b9fa103176c"},{"file":"sfx\/rosa_lead_02.ogg","sha":"af5b51059697f6225196e7478b52f6944cb0ee0c"},{"file":"sfx\/rosa_lead_03.ogg","sha":"a8ec28343f348e974b0dd97881de8a8a37bfc76d"},{"file":"sfx\/rosa_start_01.ogg","sha":"e88870fb8ec8423d06a1e0a01e48c10679926970"},{"file":"sfx\/rosa_start_02.ogg","sha":"501246e776d09775d4d955b078af7f9454f7f0fd"},{"file":"sfx\/rosa_start_03.ogg","sha":"6e4df12d56ab0525f96f9d1258dd8a7bde12a6b4"},{"file":"sfx\/rosa_start_04.ogg","sha":"011e8648224351a0ff4702818c8504e69a901d7c"},{"file":"sfx\/rosa_ulti_vo_01.ogg","sha":"309237abf0f3da6ebe7339a53fe41834cfa7bba3"},{"file":"sfx\/rosa_ulti_vo_02.ogg","sha":"6169bf1b45eb22117b259d62558e751df36f5907"},{"file":"sfx\/rosa_ulti_vo_03.ogg","sha":"63916c4c5d95d410b33717c43c8ceb429fa6b572"},{"file":"sfx\/rosa_ulti_vo_04.ogg","sha":"10db87593f293de35ac366bad9dec3298109997a"},{"file":"sfx\/rose_rocket_explo_01.ogg","sha":"e5cd00c40d9b3b71ee2064add19c8afb7060eb12"},{"file":"sfx\/rose_rocket_ulti_explo_01.ogg","sha":"3332df1b4bfc52abb85fa12623b4ea266d32ddb2"},{"file":"sfx\/safe_drop_01.ogg","sha":"35f7f1b630b1da6e1e7615b9155fd7932391e22d"},{"file":"sfx\/safe_open_char_01.ogg","sha":"ebc86498592f9b227d45a7cb38f42185cbf4b595"},{"file":"sfx\/sandy_atk_01.ogg","sha":"d14bd7ad86930c40f317c09553dde59888a97e30"},{"file":"sfx\/sandy_die_vo_01.ogg","sha":"ad5e660b06caa0b3c0c04a8d685b528df9f55758"},{"file":"sfx\/sandy_die_vo_02.ogg","sha":"69989ccf4d5f8c24439e4e01ac5721fbf251b7b8"},{"file":"sfx\/sandy_die_vo_03.ogg","sha":"b3dfe828eee2ae7f0a3c8b534704eeb71c054417"},{"file":"sfx\/sandy_die_vo_04.ogg","sha":"17e7eb51a92f2faf410264f61f4d49500fc2233f"},{"file":"sfx\/sandy_hurt_vo_01.ogg","sha":"dfd571db46ff2219b2b9c56220958e29d1af2271"},{"file":"sfx\/sandy_hurt_vo_02.ogg","sha":"e676e3c066bff0716216e64d612c62fe3294ce91"},{"file":"sfx\/sandy_hurt_vo_03.ogg","sha":"a4c32dd7132f4d3e009b40cc97176a7b7e3ae41e"},{"file":"sfx\/sandy_hurt_vo_04.ogg","sha":"85ca36495121f708a360dbfc16b9edbb200bb942"},{"file":"sfx\/sandy_hurt_vo_05.ogg","sha":"d9891b0444c7f71c7b516a8a02c41c77fb314099"},{"file":"sfx\/sandy_hurt_vo_06.ogg","sha":"416afd2e9bcb2f08fe103da7f5e3acdef8b13e1d"},{"file":"sfx\/sandy_kill_vo_01.ogg","sha":"46a13c47ff6348faaedf0bf865b81c6067e89f33"},{"file":"sfx\/sandy_kill_vo_02.ogg","sha":"cb20e80f8bd7c24c2960b9f72ca3c0ebdd6f548b"},{"file":"sfx\/sandy_kill_vo_03.ogg","sha":"020ae1616a5d03e6b938cff77fddb90793013bde"},{"file":"sfx\/sandy_kill_vo_04.ogg","sha":"ff9e2957a505147b0e63c0939fd9181a8b4951dc"},{"file":"sfx\/sandy_kill_vo_05.ogg","sha":"d8116733afe4e1fc7f6877324108f578ca8cda7b"},{"file":"sfx\/sandy_lead_vo_01.ogg","sha":"050e904395607eacc04f560944c8a22ac3f13fec"},{"file":"sfx\/sandy_lead_vo_02.ogg","sha":"f6c236d7a847e03f56ca1a2ea0e2daa481c8c294"},{"file":"sfx\/sandy_lead_vo_03.ogg","sha":"13c84b6af31167b8efa509241c38b022256ebfd5"},{"file":"sfx\/sandy_lead_vo_04.ogg","sha":"9b025a2ab80af3441c0d69f0fcd88add9f044b03"},{"file":"sfx\/sandy_lead_vo_05.ogg","sha":"ba9b35872dc6b96ae24dceae2eefaf37f56e30c7"},{"file":"sfx\/sandy_no_ammo_01.ogg","sha":"b83c25ea91b95c11dbb49fa6fd09e4e0dc385554"},{"file":"sfx\/sandy_reload_01.ogg","sha":"ce8ac176d2746cf041c7b8d09fc79154dd24a91b"},{"file":"sfx\/sandy_start_vo_01.ogg","sha":"9d09de2789002fc55af34cbbcc96cf289f3a565e"},{"file":"sfx\/sandy_start_vo_02.ogg","sha":"a8b4c134095fbe5639af947d61ed09ac4961db85"},{"file":"sfx\/sandy_start_vo_03.ogg","sha":"78ad8cbf8348ebb96bf8341a228a1d0679fb8ec4"},{"file":"sfx\/sandy_start_vo_04.ogg","sha":"d7057754ae59b0c5753c123b1a8e6be7e214d773"},{"file":"sfx\/sandy_start_vo_05.ogg","sha":"394b2411d4478aea14c428efb00d259166d0e1e3"},{"file":"sfx\/sandy_start_vo_06.ogg","sha":"c21477d0ea07a60de854ec0fa9c1b2575199d34f"},{"file":"sfx\/sandy_ulti_01.ogg","sha":"3315245d2cac234941727c695000a0ad52903dae"},{"file":"sfx\/sandy_ulti_vo_01.ogg","sha":"cf92aa729a11b8ea000cadaf2f9594a7f367d9fb"},{"file":"sfx\/sandy_ulti_vo_02.ogg","sha":"dbabc175e09c8c4f76e8a96e357a38c2ea72ea3d"},{"file":"sfx\/select_brawler_01.ogg","sha":"16511d104e8c2121459d58e616c8c0e8959b87b6"},{"file":"sfx\/sgg_dryfire_01.ogg","sha":"9ec0e616eeb600a1f6427000b42739906da0b992"},{"file":"sfx\/sgg_out_of_ammo_02.ogg","sha":"80b6ca2e781f132f66c8304c42a172815c748560"},{"file":"sfx\/shelly_die_01.ogg","sha":"0a5011177a93e74cbcc1ecbf03f173eb2fec0ec4"},{"file":"sfx\/shelly_die_02.ogg","sha":"1fd0d9ec5535a40cd57a1c1da31f4e116a78ef99"},{"file":"sfx\/shelly_die_03.ogg","sha":"0a91f5c2e9ff0732105b137f41c7fae5ac287aa3"},{"file":"sfx\/shelly_die_04.ogg","sha":"1ed70949ffdb339562dac2bb911e1eaef7049a6d"},{"file":"sfx\/shelly_hurt_01.ogg","sha":"a4db4470185cbdbe36aad2735d5ee555b8c66bd2"},{"file":"sfx\/shelly_hurt_02.ogg","sha":"f388022bb8f99b89607d118e08bd9bedf9d74789"},{"file":"sfx\/shelly_hurt_03.ogg","sha":"2c71910f18152b71bccf4e50c69e6782c2b9cea3"},{"file":"sfx\/shelly_hurt_04.ogg","sha":"857efaf860e9294ada0896901e63b4ce5d89e23e"},{"file":"sfx\/shelly_hurt_05.ogg","sha":"91b430f267ac6842584593da48040d1399708cb7"},{"file":"sfx\/shelly_kill_01.ogg","sha":"01649ddc2ae8e147ec1bb10b2895f7418d96a1b4"},{"file":"sfx\/shelly_kill_02.ogg","sha":"b0dd39533aaf20a84d39d544af7877bb2085f0ea"},{"file":"sfx\/shelly_kill_03.ogg","sha":"e2af115e57859e65f137d8125ea12ec64483fcf9"},{"file":"sfx\/shelly_kill_04.ogg","sha":"b8a9b87e7245c1f249e57acdca74faf91a01224f"},{"file":"sfx\/shelly_kill_05.ogg","sha":"86cff3d39074a86bee04f3eb8dab429fc14aafeb"},{"file":"sfx\/shelly_lead_01.ogg","sha":"e82e5bf9d63bde1f669532c23200487205531c9b"},{"file":"sfx\/shelly_lead_02.ogg","sha":"1b813cdec39a2764a610fe838d7b31312f60d620"},{"file":"sfx\/shelly_lead_03.ogg","sha":"7ca23febb33dc1532c153b06f8c263e029d8e688"},{"file":"sfx\/shelly_lead_04.ogg","sha":"3b86dab85f6a06c237eb39b2ff2b80d9824bd178"},{"file":"sfx\/shelly_start_01.ogg","sha":"85cbaa55a6904b147871572c8904b20b41096b16"},{"file":"sfx\/shelly_start_02.ogg","sha":"0701cb9b59ee094561c85389494ae85df1f0424b"},{"file":"sfx\/shelly_start_03.ogg","sha":"ecc44fda6fdeb4cae365c28a93b8b732aae500e9"},{"file":"sfx\/shelly_start_04.ogg","sha":"101013b5c67f2e759e0b0d46ac869b924e9e06cb"},{"file":"sfx\/shelly_ulti_01.ogg","sha":"509cb1f21ed7f694d051b71a49b718a42479ea98"},{"file":"sfx\/shelly_ulti_02.ogg","sha":"92cc1126d2d7703feb21aaa2377b6d41c708282a"},{"file":"sfx\/shelly_ulti_03.ogg","sha":"6a46a37687b8edc06944f1289f703bd809fa88e1"},{"file":"sfx\/shelly_ulti_04.ogg","sha":"ad504d8a582f8c4a833b548a7f685aa2230dccb4"},{"file":"sfx\/shield_03.ogg","sha":"630186425958779c0749a8ea03d2da745d70da7c"},{"file":"sfx\/shotgun_fire_01.ogg","sha":"7ab6b8a4bc57189ec49bd2c9f758427466e741f8"},{"file":"sfx\/shroomz.ogg","sha":"0297f50e99f6cb3c2e8078bedfc0b82ce91124af"},{"file":"sfx\/skill_used_03.ogg","sha":"ba37c239847c33ecffdcdfd04ace2f408646c222"},{"file":"sfx\/slider_tick_01.ogg","sha":"141dc928e3453aea5ffa0d6fc207db12a417f9e8"},{"file":"sfx\/slimey_shotgun_01.ogg","sha":"60d9976a5e87366249b7b5ce8fe66dc9e555a2b7"},{"file":"sfx\/slimey_shotgun_ulti_01.ogg","sha":"181138ac38a360b84a6e0d6ec5ae2f69b0879c80"},{"file":"sfx\/slug_bad_kill_01.ogg","sha":"82cc1c0883864a95d6c417f557985fb52d4c7cfb"},{"file":"sfx\/slug_good_kill_01.ogg","sha":"f3828d0a77ebfd224bdf22ef70e4a5f1ec634bf4"},{"file":"sfx\/slugfest_clock_01.ogg","sha":"6549d12e4c4ea62648b86e26ffea80705b92d227"},{"file":"sfx\/sniper_reload_01.ogg","sha":"a1464481765e0b1722058b1902053735422308fa"},{"file":"sfx\/sniper_trail_02.ogg","sha":"558115f832f168ed8fb7ce4e783b360fda3bd2e6"},{"file":"sfx\/sniper_ulti_01.ogg","sha":"a940357d4eaffdd27140ee456ff639d0eb5d290e"},{"file":"sfx\/solgrenade01.ogg","sha":"ce15ab0fe6cbd7949a741a63a9205b2a30bb9fc8"},{"file":"sfx\/spike_atk_01.ogg","sha":"6b3ec159a3b9e6843b43739147e46cb4aedbb33a"},{"file":"sfx\/spike_reload_03.ogg","sha":"6c5b8307d553f5fb1f11f781a01921eb1b3f2ec4"},{"file":"sfx\/spike_ulti_explo_01.ogg","sha":"b827597a2fc7530137b374d48e80dfa4ce25c247"},{"file":"sfx\/springboard_charge_01.ogg","sha":"95dcc001b1628e818d8187422df5fc43fe6622a3"},{"file":"sfx\/springboard_jump_01.ogg","sha":"6f02696572e19c735829f85d64d03ff0420b9159"},{"file":"sfx\/sprout_atk_01.ogg","sha":"9cf7e103e7998e9affb4ba0ecc54d908cb125534"},{"file":"sfx\/sprout_atk_explo_01.ogg","sha":"829a176a8a15aac6a1230daab2922ffd32bdf17d"},{"file":"sfx\/sprout_atk_ulti_01.ogg","sha":"63e78d5bf0c35741246067d0a1222dbb6aa680ed"},{"file":"sfx\/sprout_atk_ulti_explo_01.ogg","sha":"f3099e30bc68e7225ec660b507bb9aa1887dc58d"},{"file":"sfx\/sprout_atk_ulti_explo_02.ogg","sha":"04d9877c869cb94df5c6a73b294273a4606b6f62"},{"file":"sfx\/sprout_die_vo_01.ogg","sha":"544e1c4c34bb71ed21b22678771afcedd5f3a7b6"},{"file":"sfx\/sprout_die_vo_02.ogg","sha":"1bca05884207418c139a20ecac57a9edf25dc7d3"},{"file":"sfx\/sprout_die_vo_03.ogg","sha":"e288b01b92d70e5f6006a10550cca992604cb6c3"},{"file":"sfx\/sprout_die_vo_04.ogg","sha":"841ed5e59c868b5c17a9b2880507ed2ae1f400f3"},{"file":"sfx\/sprout_die_vo_05.ogg","sha":"be2b1d8e546550ddf9867dcc312b137d503a3b9d"},{"file":"sfx\/sprout_dryfire_01.ogg","sha":"30fecee3d6ad201b46ce7c9ac8c7cff71bb22752"},{"file":"sfx\/sprout_hurt_vo_01.ogg","sha":"0dd231aa07a84011af8e42b2d7b4a3c288814a2c"},{"file":"sfx\/sprout_hurt_vo_02.ogg","sha":"db5cc344042d79165e7414b10142eb63c1de6c01"},{"file":"sfx\/sprout_hurt_vo_03.ogg","sha":"49e90e3b6e5b5b827d2a409dd010d7a624d82c3d"},{"file":"sfx\/sprout_hurt_vo_04.ogg","sha":"f613f23acd9231b2e3b32bb0c34ff6269c183e7d"},{"file":"sfx\/sprout_kill_vo_01.ogg","sha":"a971574332de705b4735edca6028b3c9d26f2faa"},{"file":"sfx\/sprout_kill_vo_02.ogg","sha":"9b808ca195f828b430d105b55561de2993e5a103"},{"file":"sfx\/sprout_kill_vo_03.ogg","sha":"c63817c83563b0d11253df17103c9debdbcc32e4"},{"file":"sfx\/sprout_kill_vo_04.ogg","sha":"50717e0b62e9511ac56b48ecb32c877c9639a801"},{"file":"sfx\/sprout_kill_vo_05.ogg","sha":"43be79ca137c86c60351a7dadab61067030b0455"},{"file":"sfx\/sprout_lead_vo_01.ogg","sha":"ae9f91c52c0c3a519f5815a7153ab285a8e8d50b"},{"file":"sfx\/sprout_lead_vo_02.ogg","sha":"3aa7c4b880b15019cf7d411a9965f03021cf3591"},{"file":"sfx\/sprout_lead_vo_03.ogg","sha":"d5fe825c9a815ff3d72e65ae3589566517d9b5ce"},{"file":"sfx\/sprout_lead_vo_04.ogg","sha":"d164f63d05412549f0ef01b1142018be6d566d27"},{"file":"sfx\/sprout_reload_01.ogg","sha":"d9645497feb10ee2adfad3f806c6becae17064f0"},{"file":"sfx\/sprout_start_vo_01.ogg","sha":"7121911c26d602dd86c4bc10665ade25f35b6ade"},{"file":"sfx\/sprout_start_vo_02.ogg","sha":"02bb68a4c9cded3e7acf3e9511025302df4634d4"},{"file":"sfx\/sprout_start_vo_03.ogg","sha":"5dcc5a7941c4c1ee5af2716e33bde8f80f658295"},{"file":"sfx\/sprout_start_vo_04.ogg","sha":"de0b45a7452fc63354d6907a7e7210839620590c"},{"file":"sfx\/sprout_ulti_vo_01.ogg","sha":"71166d0a9bb6b09dd8387e4a355f5bb0553f3378"},{"file":"sfx\/sprout_ulti_vo_02.ogg","sha":"deaafbfdab9f860230330824e198efb27f98732e"},{"file":"sfx\/sprout_ulti_vo_03.ogg","sha":"07a04b1598eb23a8b4d4645d5f91ce61abeabc7d"},{"file":"sfx\/sprout_ulti_vo_04.ogg","sha":"059f66df254c83ba9372f38eb59b92bd4c550573"},{"file":"sfx\/star_power_equip_01.ogg","sha":"a62fcdff19ea21c882afe2c98f9c53ec5b2cefeb"},{"file":"sfx\/starpower_shield_01.ogg","sha":"481cc775efbc368b3f0690cf165c4e5d90edfa93"},{"file":"sfx\/starpower_speed_01.ogg","sha":"b3a7ad29e690ef37f12be2f4833e507476f068eb"},{"file":"sfx\/startwirl_01.ogg","sha":"5bea3b25102cfe0f0b3e47ff62798a06c280f9d7"},{"file":"sfx\/supercell_jingle.ogg","sha":"030b22dec66f329e04fcc428232cc2a22d91e339"},{"file":"sfx\/tanuki_jess_fire_01.ogg","sha":"7765ebd571b4195324f02dbaa334944d17c25a59"},{"file":"sfx\/tanuki_turret_fire_01.ogg","sha":"d1dea0ceba14d8c8aad38a04a804b4941d11151a"},{"file":"sfx\/tap_guns_02.ogg","sha":"08131fd3c18ef09999714b3728647741c7c642cb"},{"file":"sfx\/tap_normal_02.ogg","sha":"b7a25e6f1ff348d9c778c7c9508f76772cd742c2"},{"file":"sfx\/tara_die_vo_01.ogg","sha":"91a9ae5986199c508cdeb6a03307f11bd65c90a2"},{"file":"sfx\/tara_die_vo_02.ogg","sha":"2a87f9140250772fdbe8736e12a020692478a61c"},{"file":"sfx\/tara_die_vo_03.ogg","sha":"6362e77f4046479e08e819ce89431844891e498a"},{"file":"sfx\/tara_die_vo_04.ogg","sha":"6b150703b0be885a90bb78a0f030eda6c877d51a"},{"file":"sfx\/tara_gagdet_01.ogg","sha":"5264fe0012baab8bf47ad90ef42fff1f9931e689"},{"file":"sfx\/tara_hurt_vo_01.ogg","sha":"6a67eb05c0560743fa3d926274f358fb2f8cefb9"},{"file":"sfx\/tara_hurt_vo_02.ogg","sha":"ed4524401f9481e20a5dd7268bcf2aa83367328e"},{"file":"sfx\/tara_hurt_vo_03.ogg","sha":"9504aa712560d809125d0a27638db8ff217910c9"},{"file":"sfx\/tara_kill_vo_01.ogg","sha":"b0136e90023e09009dc7f25741319bc4916ee517"},{"file":"sfx\/tara_kill_vo_02.ogg","sha":"06a05840f34007015628d994dca52f872ba7bffc"},{"file":"sfx\/tara_kill_vo_03.ogg","sha":"037dcad60f3b0a71db7e2a7328b6657ee0d0fd96"},{"file":"sfx\/tara_kill_vo_04.ogg","sha":"69f1cfab3b918c5c9884688371992b7f55ec425d"},{"file":"sfx\/tara_lead_vo_01.ogg","sha":"a506b7ed911b30cea7dc1d241a75e71de2d9c1f5"},{"file":"sfx\/tara_lead_vo_02.ogg","sha":"1ae6376c9b583c84f4d5c220ea593c9e41a6401b"},{"file":"sfx\/tara_lead_vo_03.ogg","sha":"bd3e9c73eba8c833dce5f3ebd87a1ec0c4126c8d"},{"file":"sfx\/tara_start_vo_01.ogg","sha":"5f535443bb017abb0f29b11d43975dd6d5e76570"},{"file":"sfx\/tara_start_vo_02.ogg","sha":"27e53ea295801ec1fd3cd43a68afe3520a58b205"},{"file":"sfx\/tara_start_vo_03.ogg","sha":"a0f268bb6ef5542103491e90296a85dfa1852776"},{"file":"sfx\/throw_bawl_ulti_01.ogg","sha":"370a0d3b18dce04019daeebeb7fc0d9953aeacec"},{"file":"sfx\/tick_atk_01.ogg","sha":"fe24e87c16672315650220564210e3a650b9c134"},{"file":"sfx\/tick_atk_split_02.ogg","sha":"da7c956a2558e571ffe75b7a86f38921dad70572"},{"file":"sfx\/tick_reload_01.ogg","sha":"3741fa1b37a060aedcebfb98fb73a9c8fb7b6c42"},{"file":"sfx\/tick_ulti_01.ogg","sha":"b6e7c155d816addad69fe0ad0d2055fff9440c6b"},{"file":"sfx\/tick_vo_01v2.ogg","sha":"daf7c88cee1cfca52588b0041804444159221f02"},{"file":"sfx\/tick_vo_02v2.ogg","sha":"823f4502d6a5fafb6a9b76d6be407393b89498fe"},{"file":"sfx\/tick_vo_03v2.ogg","sha":"2aa88dd06600610c9522ad0a56c6dca2dc507edd"},{"file":"sfx\/tick_vo_04v2.ogg","sha":"c34ad40737f96a0b206c533fbd7e667daecd787a"},{"file":"sfx\/tick_vo_05hurt.ogg","sha":"e1518de841200990da8c2a9a945263e38c086cc2"},{"file":"sfx\/tick_vo_05v2.ogg","sha":"1e86fc7ca5726ef964d95b0d1c9e8e92aa36ea7f"},{"file":"sfx\/tick_vo_06hurt.ogg","sha":"674b8ba61199ec5e06dc3abd2629502fb15656c4"},{"file":"sfx\/tick_vo_06v2.ogg","sha":"26aeac5faed4cdf697298fe48929d836903b4c6d"},{"file":"sfx\/tick_vo_07hurt.ogg","sha":"07ece5fb5b2d4ed3f4719026ae715cfce2cf06ca"},{"file":"sfx\/tick_vo_08die.ogg","sha":"5921c3bb6d51747eb6255f8b9b0e87a5dfc87d8b"},{"file":"sfx\/tnt_guy_die_01.ogg","sha":"ec3c8b98cc1a1eb3fc1861723aac2421ca9bd541"},{"file":"sfx\/tnt_guy_die_02.ogg","sha":"ec04a55d4b4f35f1c5fab0d41b4f6fdb7d867708"},{"file":"sfx\/tnt_guy_die_03.ogg","sha":"7a37322bc75282c5a9848df025c84b2f8237d78b"},{"file":"sfx\/tnt_guy_die_04.ogg","sha":"5249f5825b6b392056dfe50116280da6fc6faea2"},{"file":"sfx\/tnt_guy_die_05.ogg","sha":"d8a068da13d15bbffc06b7d33bab5de9602d5c8c"},{"file":"sfx\/tnt_guy_hurt_01.ogg","sha":"ca7aaa6584ff001a934a637a7a14017549bfd6c9"},{"file":"sfx\/tnt_guy_hurt_02.ogg","sha":"5c0e32440dae0217b92a292295fb79b68556382c"},{"file":"sfx\/tnt_guy_hurt_03.ogg","sha":"058d11e6d35eebd0103d184461ef1a2303e33c45"},{"file":"sfx\/tnt_guy_hurt_04.ogg","sha":"4a03b700941abebb0e87653d1db3c6f7a1a23c15"},{"file":"sfx\/tnt_guy_hurt_05.ogg","sha":"f45ee3f0efe81a7ea69f7ed9f9fcb0e316ad6a6a"},{"file":"sfx\/tnt_guy_kill_01.ogg","sha":"43580a4a4d084fb4d4990793864dba63092c152a"},{"file":"sfx\/tnt_guy_kill_02.ogg","sha":"3cd3c2ffd5b1117544c5cbdf7f461d78883b15b3"},{"file":"sfx\/tnt_guy_kill_03.ogg","sha":"9db959c77881d5c8a8fa60c81d948aebb892a34f"},{"file":"sfx\/tnt_guy_kill_04.ogg","sha":"cbb9fec905be047e4dc038821dc78c276d96e186"},{"file":"sfx\/tnt_guy_lead_01.ogg","sha":"4196e294e6b5f475bf2d2adb5b797f73ad1b1371"},{"file":"sfx\/tnt_guy_lead_02.ogg","sha":"2855ab2e16a8e2e9665c901b8954b162f2bd6961"},{"file":"sfx\/tnt_guy_start_vo_01.ogg","sha":"1befb093d3f87cc0893da8b5ecc8a058797002ce"},{"file":"sfx\/tnt_guy_start_vo_02.ogg","sha":"0cd1f61a216b0ff84fa2a70267aabcb1eb913a02"},{"file":"sfx\/tnt_guy_start_vo_03.ogg","sha":"745b16ba345c069354514851eb11b1a4d3b412e2"},{"file":"sfx\/tnt_guy_start_vo_04.ogg","sha":"0791467e349b4ae057a9a3c47b3ccbc4fb4af07c"},{"file":"sfx\/tnt_guy_ulti_01.ogg","sha":"4ebff8e1ac81a4f883dc67b99a9b32e9cdad6c7a"},{"file":"sfx\/tnt_guy_ulti_02.ogg","sha":"55caa9d12afb4b89490cef14bd51db9f4179674e"},{"file":"sfx\/tnt_reload_03.ogg","sha":"27ebb9415893239f7aa159221b9492c8f0b18928"},{"file":"sfx\/tnt_ulti_01.ogg","sha":"5a20d30a57891de53d2cc01692df8d5a796b720b"},{"file":"sfx\/troll_train_warn_01.ogg","sha":"26e92e6b35703909fa1e08be3ee639248242e32c"},{"file":"sfx\/trophy_rank_up_01v2.ogg","sha":"1a1b6c0b4e2b29388ba83f6294305eab7fc41377"},{"file":"sfx\/tut_speech_01.ogg","sha":"1c16dff0a00ab3e5e6be03e7fec021351481697f"},{"file":"sfx\/tutorial_enter_circle_01.ogg","sha":"a9fb3f4b1d73038d057013d321070d07ac2ea4eb"},{"file":"sfx\/ulti_button_cancel_01.ogg","sha":"473eba865ed1b5a389ad362ef221695f7dbb729c"},{"file":"sfx\/ulti_button_press_01.ogg","sha":"beab9e495cf4956d343b41fe113fc136270a51ac"},{"file":"sfx\/ulti_gain_03.ogg","sha":"a721af4312f479b99e2a7e45fee20629d3654ae6"},{"file":"sfx\/ulti_ready_01.ogg","sha":"fa47902196aedd208834dd0ce67654f261321a4a"},{"file":"sfx\/unlock_new_power_lvl_01.ogg","sha":"d5c6032b5ccc4b199189fae3f606b2a410ec3ae0"},{"file":"sfx\/upgrade_count_01.ogg","sha":"e97f481fb825f2f90a0ea8e6c53bdcf217c88934"},{"file":"sfx\/water_brock_atk_01.ogg","sha":"978bd8fb0b863d9014ebd46e99d017349b0f3312"},{"file":"sfx\/water_jess_atk_01.ogg","sha":"54f28419dadab421819482a8f0b893f92512e000"},{"file":"sfx\/water_jess_hit_01.ogg","sha":"107f302f4625047232266e424edbfd09a31308b7"},{"file":"sfx\/water_jess_turret_atk_01.ogg","sha":"db5ffd55a4fffbadf3dfb78324b7d381d7dd960c"},{"file":"sfx\/water_jess_ulti_01.ogg","sha":"ff8ad1af9360eee8efa934a80964a3a546274c23"},{"file":"sfx\/wave_boss_fight_01.ogg","sha":"0c7aaf012bf760fb9ebb84527b33c995d7179e70"},{"file":"sfx\/wave_fight_01v2.ogg","sha":"22646ed71f2078a39a1a52cc459b5add003588d3"},{"file":"sfx\/wind_gust_01.ogg","sha":"d143ad934cfa88db6a58f0f757e87ff2d741b32f"},{"file":"shader\/badge.fsh","sha":"36a6cdeb710a4637c55739abbfe06606e03619b4"},{"file":"shader\/badge.vsh","sha":"3b17fe627fafcbb9095ac3065e5c248904025694"},{"file":"shader\/ghost.fsh","sha":"dfa263bd2a88509c82707cb0c314f1688d716b01"},{"file":"shader\/ghost.vsh","sha":"1c075f951d70b1eb8ff06590978891cab0b1c322"},{"file":"shader\/hologram.fsh","sha":"813618fdf152a1c7fc323e296f581c77819891ab"},{"file":"shader\/hologram.vsh","sha":"eb3856d82380a9724df8a4d049331cef7e975c66"},{"file":"shader\/impostor.fsh","sha":"0f2f959cb0ece052799310549b0644b4dd393703"},{"file":"shader\/impostor.vsh","sha":"5f7c4cdf09a080e048162452f2a5e74fe36612e5"},{"file":"shader\/impostor_outline.fsh","sha":"c41ff174995908ba8824eb2e0a23f186ca05eea6"},{"file":"shader\/impostor_outline.vsh","sha":"5f7c4cdf09a080e048162452f2a5e74fe36612e5"},{"file":"shader\/impostor_outline_mask.fsh","sha":"f77099206e2be541156b8eca21f84466f7605838"},{"file":"shader\/impostor_outline_mask.vsh","sha":"5f7c4cdf09a080e048162452f2a5e74fe36612e5"},{"file":"shader\/impostor_outline_opaque.fsh","sha":"86c2a7b68970f154f475ca170641fe92800a94fc"},{"file":"shader\/impostor_outline_opaque.vsh","sha":"5f7c4cdf09a080e048162452f2a5e74fe36612e5"},{"file":"shader\/mask.fsh","sha":"604401258c83a9e88c66c4c325d7a1bf905485ce"},{"file":"shader\/mask.vsh","sha":"d24e0bbdb372eb8a4d73f17e95e6c09c8243047f"},{"file":"shader\/seaweed.fsh","sha":"5160f70a5b764e82c9e3174e6df6de907fa84160"},{"file":"shader\/seaweed.vsh","sha":"49922f8284a10cfd5eee3464643e5579e4c97c5c"},{"file":"shader\/shadow.fsh","sha":"d2fa6e6ac2190ea9b5bea00cdf5c04acfd87349b"},{"file":"shader\/shadow.vsh","sha":"428963e8e8b323fb153ba931385d46b716dadef3"},{"file":"shader\/uber.fsh","sha":"5160f70a5b764e82c9e3174e6df6de907fa84160"},{"file":"shader\/uber.vsh","sha":"51d83297dee2f17c2e02193d4682aab0748387ab"},{"file":"supercell_id_config.json","sha":"89be9c166ec1eb810ae3511c72f3f574f1ff8d62"}],"sha":"1660a966daa31a498bee59a78670c89ef4364b05","version":"26.165.1"} ================================================ FILE: Source/BrawlStars/Logger.cs ================================================ using System; using System.IO; using NLog; namespace BrawlStars { public class Logger { public enum ErrorLevel { Info = 1, Warning = 2, Error = 3, Debug = 4 } #if DEBUG private static readonly object ConsoleSync = new object(); #endif private static NLog.Logger _logger; public Logger() { Directory.CreateDirectory("Logs"); _logger = LogManager.GetCurrentClassLogger(); } public static void Log(object message, Type type, ErrorLevel logType = ErrorLevel.Info) { switch (logType) { case ErrorLevel.Info: { _logger.Info(message); Console.ForegroundColor = ConsoleColor.DarkYellow; Console.Write($"[{logType.ToString()}] "); Console.ResetColor(); Console.WriteLine(message); break; } case ErrorLevel.Warning: { _logger.Warn(message); #if DEBUG lock (ConsoleSync) { Console.ForegroundColor = ConsoleColor.DarkMagenta; Console.Write($"[{logType.ToString()}] "); Console.ResetColor(); Console.WriteLine(message); } #endif break; } case ErrorLevel.Error: { _logger.Error(message); #if DEBUG lock (ConsoleSync) { Console.ForegroundColor = ConsoleColor.Red; Console.Write($"[{logType.ToString()}] "); Console.ResetColor(); Console.WriteLine(message); } #endif break; } case ErrorLevel.Debug: { #if DEBUG _logger.Debug(message); lock (ConsoleSync) { Console.ForegroundColor = ConsoleColor.Green; Console.Write($"[{logType.ToString()}] "); Console.ResetColor(); Console.WriteLine(message); } #endif break; } } } } } ================================================ FILE: Source/BrawlStars/Logic/Brawler.cs ================================================ using System.Collections.Generic; using Newtonsoft.Json; namespace BrawlStars.Logic { internal class Brawler { [JsonProperty("name", DefaultValueHandling = DefaultValueHandling.Ignore)] internal string name = string.Empty; [JsonProperty("skin", DefaultValueHandling = DefaultValueHandling.Ignore)] internal string Skin = string.Empty; [JsonProperty("hassSkin")] internal bool HassSkin; [JsonProperty("trophies")] internal int Trophies; [JsonProperty("highestTrophies")] internal int HighestTrophies; [JsonProperty("power")] internal int Power; [JsonProperty("rank")] internal int rank; } } ================================================ FILE: Source/BrawlStars/Logic/Calendar.cs ================================================ using System.Collections.Generic; using Newtonsoft.Json; namespace BrawlStars.Logic { internal class Calendar { [JsonProperty("events")] internal List Events = new List(); } } ================================================ FILE: Source/BrawlStars/Logic/Clan/Alliance.cs ================================================ using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using BrawlStars.Logic.Clan.StreamEntry; using DotNetty.Buffers; using Newtonsoft.Json; namespace BrawlStars.Logic.Clan { public class Alliance { public enum Role { Member = 1, Leader = 2, Elder = 3, CoLeader = 4 } [JsonProperty("members")] public List Members = new List(50); [JsonProperty("stream")] public List Stream = new List(40); public Alliance(long id) { Id = id; Name = "RetroClash"; } [JsonProperty("name")] public string Name { get; set; } [JsonProperty("description")] public string Description { get; set; } [JsonProperty("highId")] public int HighId { get; set; } [JsonProperty("lowId")] public int LowId { get; set; } [JsonProperty("badge")] public int Badge { get; set; } [JsonProperty("region")] public int Region { get; set; } [JsonProperty("type")] public int Type { get; set; } [JsonProperty("requiredScore")] public int RequiredScore { get; set; } [JsonIgnore] public int Score => Members.Sum(m => m.Score) / 2; [JsonIgnore] public int Online => Members.Count(m => m.IsOnline); [JsonIgnore] public long Id { get => ((long) HighId << 32) | (LowId & 0xFFFFFFFFL); set { HighId = Convert.ToInt32(value >> 32); LowId = (int) value; } } public void AllianceRankingEntry(IByteBuffer packet) { // TODO } public void AllianceFullEntry(IByteBuffer packet) { AllianceHeaderEntry(packet); // TODO } public void AllianceHeaderEntry(IByteBuffer packet) { // TODO } public AllianceInfo GetAllianceInfo(long userId) { return new AllianceInfo { Id = Id, Name = Name, Badge = Badge, Role = GetRole(userId) }; } public void Add(AllianceMember member) { lock (Members) { var index = Members.FindIndex(x => x.Id == member.Id); if (index == -1) Members.Add(member); } } public async void Remove(long id) { var index = Members.FindIndex(x => x.Id == id); if (index > -1) { var member = Members[index]; // If the leader leaves the clan and it's not empty, we choose a new leader if (member.Role == (int) Role.Leader) { var newLeader = Members.FirstOrDefault(m => m.Id != member.Id); if (newLeader != null) { var player = await newLeader.GetPlayerAsync(); newLeader.Role = (int) Role.Leader; player.Home.AllianceInfo.Role = (int) Role.Leader; player.Save(); } } lock (Members) { Members.RemoveAt(index); } } } public async void AddEntry(AllianceStreamEntry entry) { lock (Stream) { while (Stream.Count >= 40) Stream.RemoveAt(0); var max = Stream.Count == 0 ? 1 : Stream.Max(x => x.Id); entry.Id = max == int.MaxValue ? 1 : max + 1; // If we ever reach that value... but who knows... Stream.Add(entry); } foreach (var member in Members.Where(m => m.IsOnline).ToList()) { var player = await member.GetPlayerAsync(true); /*if (player != null) await new AllianceStreamEntryMessage(player.Device) { Entry = entry }.SendAsync();*/ } } /*public async void RemoveEntry(AllianceStreamEntry entry) { lock (Stream) { Stream.RemoveAll(e => e.Id == entry.Id); } foreach (var member in Members.Where(m => m.IsOnline).ToList()) { var player = await member.GetPlayerAsync(true); if (player != null) await new AllianceStreamEntryRemovedMessage(player.Device) { EntryId = entry.Id }.SendAsync(); } }*/ public int GetRole(long id) { lock (Members) { var index = Members.FindIndex(x => x.Id == id); return index > -1 ? Members[index].Role : 1; } } public AllianceMember GetMember(long id) { lock (Members) { var index = Members.FindIndex(x => x.Id == id); return index > -1 ? Members[index] : null; } } /*public async void UpdateOnlineCount() { var count = Online; foreach (var member in Members.Where(m => m.IsOnline).ToList()) { var player = await Resources.Players.GetPlayerAsync(member.Id, true); if (player != null) await new AllianceOnlineStatusUpdatedMessage(player.Device) { Count = count }.SendAsync(); } }*/ public async void Save() { #if DEBUG var st = new Stopwatch(); st.Start(); //await Redis.CacheAsync(this); st.Stop(); Logger.Log($"Alliance {Id} saved in {st.ElapsedMilliseconds}ms.", GetType(), Logger.ErrorLevel.Debug); #else //await Redis.CacheAsync(this); //await AllianceDb.SaveAsync(this); #endif } } } ================================================ FILE: Source/BrawlStars/Logic/Clan/AllianceInfo.cs ================================================ using System; using Newtonsoft.Json; namespace BrawlStars.Logic.Clan { public class AllianceInfo { [JsonProperty("name")] public string Name { get; set; } [JsonProperty("highId")] public int HighId { get; set; } [JsonProperty("lowId")] public int LowId { get; set; } [JsonProperty("badge")] public int Badge { get; set; } [JsonProperty("role")] public int Role { get; set; } [JsonIgnore] public bool HasAlliance => Id > 0; [JsonIgnore] public long Id { get => ((long) HighId << 32) | (LowId & 0xFFFFFFFFL); set { HighId = Convert.ToInt32(value >> 32); LowId = (int) value; } } public void Reset() { Id = 0; Name = string.Empty; Badge = 0; Role = 0; } } } ================================================ FILE: Source/BrawlStars/Logic/Clan/AllianceMember.cs ================================================ using System; using System.Threading.Tasks; using DotNetty.Buffers; using Newtonsoft.Json; namespace BrawlStars.Logic.Clan { public class AllianceMember { public AllianceMember(Player player, Alliance.Role role) { Id = player.Home.Id; Role = (int) role; Score = player.Home.Trophies; Name = player.Home.Name; } public AllianceMember() { // ... } [JsonProperty("highId")] public int HighId { get; set; } [JsonProperty("lowId")] public int LowId { get; set; } [JsonProperty("role")] public int Role { get; set; } [JsonProperty("score")] public int Score { get; set; } [JsonProperty("name")] public string Name { get; set; } [JsonProperty("donations")] public int Donations { get; set; } [JsonProperty("donationsReceived")] public int DonationsReceived { get; set; } [JsonIgnore] public long Id { get => ((long) HighId << 32) | (LowId & 0xFFFFFFFFL); set { HighId = Convert.ToInt32(value >> 32); LowId = (int) value; } } [JsonIgnore] public bool IsOnline => Resources.Players.ContainsKey(Id); public void AllianceMemberEntry(IByteBuffer packet) { // TODO } public async Task GetPlayerAsync(bool onlineOnly = false) { return await Resources.Players.GetPlayerAsync(Id, onlineOnly); } } } ================================================ FILE: Source/BrawlStars/Logic/Clan/StreamEntry/AllianceStreamEntry.cs ================================================ using System; using DotNetty.Buffers; using Newtonsoft.Json; namespace BrawlStars.Logic.Clan.StreamEntry { public class AllianceStreamEntry { [JsonProperty("creation")] public DateTime CreationDateTime = DateTime.UtcNow; [JsonProperty("id")] public int Id { get; set; } [JsonProperty("type")] public int StreamEntryType { get; set; } [JsonProperty("highId")] public int SenderHighId { get; set; } [JsonProperty("lowId")] public int SenderLowId { get; set; } [JsonProperty("sender_name")] public string SenderName { get; set; } [JsonProperty("sender_role")] public int SenderRole { get; set; } [JsonProperty("removed")] public bool IsRemoved { get; set; } [JsonIgnore] public int AgeSeconds => (int) (DateTime.UtcNow - CreationDateTime).TotalSeconds; [JsonIgnore] public long SenderId { get => ((long) SenderHighId << 32) | (SenderLowId & 0xFFFFFFFFL); set { SenderHighId = Convert.ToInt32(value >> 32); SenderLowId = (int) value; } } public virtual void Encode(IByteBuffer packet) { // TODO } public virtual void SetSender(Player player) { SenderName = player.Home.Name; SenderId = player.Home.Id; SenderRole = player.Home.AllianceInfo.Role; } } } ================================================ FILE: Source/BrawlStars/Logic/Clan/StreamEntry/Entries/AllianceEventStreamEntry.cs ================================================ using DotNetty.Buffers; using Newtonsoft.Json; namespace BrawlStars.Logic.Clan.StreamEntry.Entries { public class AllianceEventStreamEntry : AllianceStreamEntry { public enum Type { Kick = 1, Accepted = 2, Join = 3, Leave = 4, Promote = 5, Demote = 6 } public AllianceEventStreamEntry() { StreamEntryType = 4; } [JsonProperty("eventType")] public Type EventType { get; set; } [JsonProperty("targetHighId")] public int TargetHighId { get; set; } [JsonProperty("targetLowId")] public int TargetLowId { get; set; } [JsonProperty("targetName")] public string TargetName { get; set; } public override void Encode(IByteBuffer packet) { base.Encode(packet); // TODO } public void SetTarget(Player target) { TargetHighId = target.Home.HighId; TargetLowId = target.Home.LowId; TargetName = target.Home.Name; } } } ================================================ FILE: Source/BrawlStars/Logic/Clan/StreamEntry/Entries/ChallengeStreamEntry.cs ================================================ using DotNetty.Buffers; using Newtonsoft.Json; namespace BrawlStars.Logic.Clan.StreamEntry.Entries { public class ChallengeStreamEntry : AllianceStreamEntry { public ChallengeStreamEntry() { StreamEntryType = 10; } [JsonProperty("msg")] public string Message { get; set; } [JsonProperty("sender_score")] public int SenderScore { get; set; } [JsonProperty("arena")] public int Arena { get; set; } [JsonProperty("closed")] public bool Closed { get; set; } [JsonProperty("active")] public bool Active { get; set; } [JsonProperty("target_name")] public string TargetName { get; set; } [JsonIgnore] public int Spectators { get; set; } public override void Encode(IByteBuffer packet) { base.Encode(packet); // TODO } public void SetTarget(Player target) { TargetName = target.Home.Name; } public override void SetSender(Player player) { base.SetSender(player); SenderScore = player.Home.Trophies; } } } ================================================ FILE: Source/BrawlStars/Logic/Clan/StreamEntry/Entries/ChatStreamEntry.cs ================================================ using BrawlStars.Utilities.Netty; using DotNetty.Buffers; using Newtonsoft.Json; namespace BrawlStars.Logic.Clan.StreamEntry.Entries { public class ChatStreamEntry : AllianceStreamEntry { public ChatStreamEntry() { StreamEntryType = 2; } [JsonProperty("msg")] public string Message { get; set; } public override void Encode(IByteBuffer packet) { base.Encode(packet); packet.WriteScString(Message); } } } ================================================ FILE: Source/BrawlStars/Logic/Clan/StreamEntry/Entries/DonateStreamEntry.cs ================================================ using DotNetty.Buffers; using Newtonsoft.Json; namespace BrawlStars.Logic.Clan.StreamEntry.Entries { public class DonateStreamEntry : AllianceStreamEntry { public DonateStreamEntry() { StreamEntryType = 1; } [JsonProperty("msg")] public string Message { get; set; } [JsonProperty("totalCapacity")] public int TotalCapacity { get; set; } [JsonProperty("usedCapacity")] public int UsedCapacity { get; set; } public override void Encode(IByteBuffer packet) { base.Encode(packet); // TODO } } } ================================================ FILE: Source/BrawlStars/Logic/Clan/StreamEntry/Entries/JoinRequestAllianceStreamEntry.cs ================================================ using DotNetty.Buffers; using Newtonsoft.Json; namespace BrawlStars.Logic.Clan.StreamEntry.Entries { public class JoinRequestAllianceStreamEntry : AllianceStreamEntry { public JoinRequestAllianceStreamEntry() { StreamEntryType = 3; } [JsonProperty("msg")] public string Message { get; set; } [JsonProperty("responder_name")] public string ResponderName { get; set; } [JsonProperty("state")] public int State { get; set; } public override void Encode(IByteBuffer packet) { base.Encode(packet); // TODO } public void SetTarget(Player target) { ResponderName = target.Home.Name; } } } ================================================ FILE: Source/BrawlStars/Logic/Device.cs ================================================ using System; using System.Diagnostics; using System.Net; using BrawlStars.Core.Network.Handlers; using BrawlStars.Logic.Sessions; using BrawlStars.Protocol; using BrawlStars.Protocol.Messages.Server; using DotNetty.Buffers; namespace BrawlStars.Logic { public class Device { public Device(PacketHandler handler) { Handler = handler; CurrentState = State.Disconnected; } public bool IsConnected => Handler.Channel.Registered; /// /// Process a message /// /// /// public void Process(IByteBuffer buffer) { var id = buffer.ReadUnsignedShort(); var length = buffer.ReadMedium(); var version = buffer.ReadUnsignedShort(); if (id < 10000 || id >= 20000) return; if (!LogicMagicMessageFactory.Messages.ContainsKey(id)) { Logger.Log($"Message ID: {id}, V: {version}, L: {length} is not known.", GetType(), Logger.ErrorLevel.Warning); //Disconnect($"Message ID: {id}, V: {version}, L: {length} is not known."); return; } if (!(Activator.CreateInstance(LogicMagicMessageFactory.Messages[id], this, buffer) is PiranhaMessage message)) return; try { if (message.RequiredState != CurrentState && message.RequiredState != State.NotDefinied) { Logger.Log($"Message {id} is not allowed in state {CurrentState.ToString()}!", GetType(), Logger.ErrorLevel.Warning); Disconnect("Not allowed."); return; } message.Id = id; message.Length = length; message.Version = version; #if DEBUG var st = new Stopwatch(); st.Start(); #endif message.Decode(); message.Process(); #if DEBUG st.Stop(); Logger.Log($"Message {id}:{length} ({message.GetType().Name}) - ({st.ElapsedMilliseconds}ms)", GetType(), Logger.ErrorLevel.Debug); #endif if (message.Save && CurrentState == State.Home) Player.Save(); } catch (Exception exception) { Logger.Log($"Failed to process {id}, L: {length}: " + exception, GetType(), Logger.ErrorLevel.Error); } } /// /// Returns the Ipv4 Address of the client /// /// public string GetIp() { return ((IPEndPoint) Handler.Channel.RemoteAddress).Address.MapToIPv4().ToString(); } /// /// Disconnect a client by sending OutOfSyncMessage /// /// public async void Disconnect(string reason = null) { if (reason != null) { await new LoginFailedMessage(this) { Reason = reason }.SendAsync(); } else { //await new OutOfSyncMessage(this).SendAsync(); try { await Handler.Channel.CloseAsync(); } catch (Exception) { Logger.Log("Failed to close channel", GetType(), Logger.ErrorLevel.Error); } } } #region Objects public Session Session = new Session(); public PacketHandler Handler { get; set; } public Player Player { get; set; } public DateTime LastVisitHome { get; set; } public DateTime LastSectorCommand { get; set; } public State CurrentState { get; set; } public enum State { Disconnected = 0, Login = 1, Battle = 2, Home = 3, Visit = 4, NotDefinied = 5 } #endregion Objects } } ================================================ FILE: Source/BrawlStars/Logic/Events.cs ================================================ using System; using System.Collections.Generic; using Newtonsoft.Json; namespace BrawlStars.Logic { internal class Event { [JsonProperty("boomboxEntry")] internal string BoomBoxEntry = string.Empty; [JsonProperty("endTime")] internal string EndTime = DateTime.UtcNow.ToString(); [JsonProperty("eventEntryName")] internal string EventEntryName = string.Empty; [JsonProperty("functions")] internal List Functions = new List(); [JsonProperty("id")] internal int ID; [JsonProperty("image", DefaultValueHandling = DefaultValueHandling.Ignore)] internal string Image = string.Empty; [JsonProperty("inboxEntryId")] internal int InboxEntryID; [JsonProperty("localization", DefaultValueHandling = DefaultValueHandling.Ignore)] internal string Localization = string.Empty; [JsonProperty("name")] internal string Name = string.Empty; [JsonProperty("notification", DefaultValueHandling = DefaultValueHandling.Ignore)] internal string Notification = string.Empty; [JsonProperty("sc", DefaultValueHandling = DefaultValueHandling.Ignore)] internal string SCFile = string.Empty; [JsonProperty("showUpcoming")] internal int ShowUpcoming = 1; [JsonProperty("startTime")] internal string StarTime = DateTime.UtcNow.ToString(); [JsonProperty("visibleTime")] internal string VisibleTime = DateTime.UtcNow.ToString(); } } ================================================ FILE: Source/BrawlStars/Logic/Functions.cs ================================================ using Newtonsoft.Json; namespace BrawlStars.Logic { internal class Functions { [JsonProperty("name")] internal string Name = string.Empty; [JsonProperty("parameters")] internal string[] Parameters; } } ================================================ FILE: Source/BrawlStars/Logic/Home/Home.cs ================================================ using System; using System.Collections.Generic; using BrawlStars.Files; using BrawlStars.Files.Logic; using BrawlStars.Logic.Clan; using BrawlStars.Logic.Home.Slots; using BrawlStars.Logic.Home.StreamEntry; using BrawlStars.Logic.Sessions; using Newtonsoft.Json; namespace BrawlStars.Logic.Home { public class Home { [JsonProperty("clanInfo")] public AllianceInfo AllianceInfo = new AllianceInfo(); /*[JsonIgnore] public ComponentManager ComponentManager = new ComponentManager();*/ /* [JsonIgnore] public GameObjectManager GameObjectManager = new GameObjectManager();*/ [JsonProperty("resources")] public ResourceSlots Resources = new ResourceSlots(); [JsonIgnore] public List Sessions = new List(50); [JsonProperty("stream")] public List Stream = new List(40); [JsonIgnore] public Time Time = new Time(); public Home() { } public Home(long id, string token) { Id = id; UserToken = token; PreferredDeviceLanguage = "EN"; Name = "NoName"; ExpLevel = 1; Diamonds = 10000000; Resources.Initialize(); /* GameObjectManager.Home = this; ComponentManager.Home = this; GameObjectManager.LoadJson(Levels.StartingHome);*/ } [JsonProperty("name")] public string Name { get; set; } [JsonProperty("token")] public string UserToken { get; set; } [JsonProperty("nameSet")] public int NameSet { get; set; } [JsonProperty("createdIp")] public string CreatedIpAddress { get; set; } [JsonProperty("highId")] public int HighId { get; set; } [JsonProperty("lowId")] public int LowId { get; set; } [JsonProperty("diamonds")] public int Diamonds { get; set; } [JsonProperty("heroes_king")] public int HeroesKing { get; set; } [JsonProperty("sleep_king")] public int SleepKing { get; set; } [JsonProperty("heroes_queen")] public int HeroesQueen { get; set; } [JsonProperty("sleep_queen")] public int SleepQueen { get; set; } [JsonProperty("warden_heroes_lvl")] public int WardenHerolvl { get; set; } [JsonProperty("battle_machine_heroes_lvl")] public int BattleMachineHerolvl { get; set; } [JsonProperty("sleep_warden")] public int SleepWarden { get; set; } [JsonProperty("champion_heroes_lvl")] public int ChampionHerolvl { get; set; } [JsonProperty("king_skin")] public int KingSkin { get; set; } [JsonProperty("queen_skin")] public int QueenSkin { get; set; } [JsonProperty("warder_skin")] public int WardenSkin { get; set; } [JsonProperty("champion_skin")] public int ChampionSkin { get; set; } [JsonProperty("sleep_champion")] public int SleepChampion { get; set; } [JsonProperty("warder_fly")] public int WardenFly { get; set; } [JsonProperty("language")] public string PreferredDeviceLanguage { get; set; } [JsonProperty("fcbId")] public string FacebookId { get; set; } [JsonProperty("totalSessions")] public int TotalSessions { get; set; } [JsonProperty("totalPlayTimeSeconds")] public int TotalPlayTimeSeconds { get; set; } [JsonProperty("lastSave")] public DateTime LastSaveTime { get; set; } /// /// 1 = Builderbase, 0 = Home Village /// [JsonProperty("state")] public int State { get; set; } // Player Stats [JsonProperty("expLevel")] public int ExpLevel { get; set; } [JsonProperty("expPoints")] public int ExpPoints { get; set; } [JsonProperty("trophies")] public int Trophies { get; set; } [JsonProperty("builder_trophies")] public int BTrophies { get; set; } [JsonIgnore] public long Id { get => ((long) HighId << 32) | (LowId & 0xFFFFFFFFL); set { HighId = Convert.ToInt32(value >> 32); LowId = (int) value; } } /* public void AddExpPoints(int expPoints) { ExpPoints += expPoints; while (true) { var data = Csv.Tables.Get(Csv.Files.ExperienceLevels).GetDataWithId(ExpLevel - 1); if (data == null) return; if (ExpPoints < data.ExpPoints) return; ExpLevel++; ExpPoints -= data.ExpPoints; if (ExpPoints >= data.ExpPoints) continue; break; } }*/ /*public void Tick() { GameObjectManager.Tick(); }*/ /* public void FastForward(int seconds) { GameObjectManager.FastForward(seconds); }*/ public void Reset(bool notResetGameObjects = false) { Diamonds = 10000000; Resources.Initialize(); Name = "NoName"; NameSet = 0; ExpLevel = 1; ExpPoints = 0; Trophies = 0; State = 0; /* if (!notResetGameObjects) GameObjectManager.LoadJson(Levels.StartingHome);*/ } #region Resources public bool UseGold(int amount) { var gold = Resources.GetById(5000001).Count; if (gold - amount < 0) return false; Resources.Remove(5000001, amount); return true; } public bool UseOwcAny(int amount) { var owcAny = Resources.GetById(5000002).Count; if (owcAny - amount < 0) return false; Resources.Remove(5000002, amount); return true; } public bool UseOwcRareOrBetter(int amount) { var owcRare = Resources.GetById(5000003).Count; if (owcRare - amount < 0) return false; Resources.Remove(5000003, amount); return true; } public bool UseowcEpicOrBetter(int amount) { var owcEpic = Resources.GetById(5000004).Count; if (owcEpic - amount < 0) return false; Resources.Remove(5000004, amount); return true; } public bool UseDust(int amount) { var dust = Resources.GetById(5000005).Count; if (dust - amount < 0) return false; Resources.Remove(5000005, amount); return true; } public bool UseUpgradium(int amount) { var upgrdium = Resources.GetById(5000006).Count; if (upgrdium - amount < 0) return false; Resources.Remove(5000006, amount); return true; } public bool UseBolts(int amount) { var bolts = Resources.GetById(5000007).Count; if (bolts - amount < 0) return false; Resources.Remove(5000007, amount); return true; } public bool UseHeroLvlUpMaterial(int amount) { var heroUpMate = Resources.GetById(5000008).Count; if (heroUpMate - amount < 0) return false; Resources.Remove(5000008, amount); return true; } public bool UseFirstWins(int amount) { var firstWins = Resources.GetById(5000009).Count; if (firstWins - amount < 0) return false; Resources.Remove(5000009, amount); return true; } public bool UseDiamonds(int amount) { if (Diamonds - amount < 0) return false; Diamonds -= amount; return true; } #endregion } } ================================================ FILE: Source/BrawlStars/Logic/Home/Slots/DataSlots.cs ================================================ using System.Collections.Generic; using BrawlStars.Logic.Home.Slots.Items; using DotNetty.Buffers; namespace BrawlStars.Logic.Home.Slots { public class DataSlots : List { /// /// Add a new dataslot or replace it /// /// /// public void Set(int id, int count) { var index = FindIndex(x => x.Id == id); if (index > -1) { var dataslot = this[index]; dataslot.Count = count; } else { Add(new DataSlot { Id = id, Count = count }); } } /// /// Add or create a new dataslot /// /// /// public void Add(int id, int count) { var index = FindIndex(x => x.Id == id); if (index > -1) { var dataslot = this[index]; dataslot.Count += count; } else { Add(new DataSlot { Id = id, Count = count }); } } /// /// Remove from a dataslot /// /// /// public void Remove(int id, int count) { var index = FindIndex(x => x.Id == id); if (index > -1) { var dataslot = this[index]; dataslot.Count -= count; } } /// /// Get the count of a dataslot by it's id /// /// /// public int GetCount(int id) { var index = FindIndex(x => x.Id == id); return index > -1 ? this[index].Count : 0; } /// /// Get a dataslot by it's id /// /// /// public DataSlot GetById(int id) { var index = FindIndex(x => x.Id == id); return index > -1 ? this[index] : null; } /// /// Encodes all dataslots /// /// public void Encode(IByteBuffer buffer) { buffer.WriteInt(Count); ForEach(x => x.Encode(buffer)); } } } ================================================ FILE: Source/BrawlStars/Logic/Home/Slots/Items/DataSlot.cs ================================================ using DotNetty.Buffers; using Newtonsoft.Json; namespace BrawlStars.Logic.Home.Slots.Items { public class DataSlot { [JsonProperty("id")] public int Id { get; set; } [JsonProperty("cnt")] public int Count { get; set; } /// /// Encodes this dataslot /// /// public virtual void Encode(IByteBuffer buffer) { buffer.WriteInt(Id); buffer.WriteInt(Count); } } } ================================================ FILE: Source/BrawlStars/Logic/Home/Slots/ResourceSlots.cs ================================================ namespace BrawlStars.Logic.Home.Slots { public class ResourceSlots : DataSlots { /// /// Sets the default resources to this dataslots /// public void InitializeDefault() { Set(5000001, 100); // Gold Set(5000002, 0); // owcAny Set(5000003, 0); // DarkElixir Set(5000007, 1000); // Dust Set(5000008, 1000); // Upgradium } /// /// Sets the max resources to this dataslots /// public void Initialize() { Set(5000001, 1000000000); Set(5000002, 1000000000); Set(5000003, 10000000); Set(5000007, 1000000000); Set(5000008, 1000000000); } } } ================================================ FILE: Source/BrawlStars/Logic/Home/StreamEntry/AvatarStreamEntry.cs ================================================ using System; using DotNetty.Buffers; using Newtonsoft.Json; namespace BrawlStars.Logic.Home.StreamEntry { public class AvatarStreamEntry { [JsonProperty("creation")] public DateTime CreationDateTime = DateTime.UtcNow; [JsonProperty("id")] public int Id { get; set; } [JsonProperty("type")] public int StreamEntryType { get; set; } [JsonProperty("highId")] public int SenderHighId { get; set; } [JsonProperty("lowId")] public int SenderLowId { get; set; } [JsonProperty("sender_name")] public string SenderName { get; set; } [JsonProperty("removed")] public bool IsRemoved { get; set; } [JsonProperty("new")] public bool IsNew { get; set; } [JsonIgnore] public int AgeSeconds => (int) (DateTime.UtcNow - CreationDateTime).TotalSeconds; [JsonIgnore] public long SenderId { get => ((long) SenderHighId << 32) | (SenderLowId & 0xFFFFFFFFL); set { SenderHighId = Convert.ToInt32(value >> 32); SenderLowId = (int) value; } } public virtual void Encode(IByteBuffer packet) { // TODO } public virtual void SetSender(Player player) { SenderName = player.Home.Name; SenderId = player.Home.Id; } } } ================================================ FILE: Source/BrawlStars/Logic/Player.cs ================================================ using System; using BrawlStars.Database; using BrawlStars.Files.Logic; using BrawlStars.Utilities.Netty; using BrawlStars.Utilities.Utils; using DotNetty.Buffers; using Newtonsoft.Json; using BrawlStars.Files; namespace BrawlStars.Logic { public class Player { public Player(long id) { Home = new Home.Home(id, GameUtils.GenerateToken); } public Player() { // Player. } public Home.Home Home { get; set; } [JsonIgnore] public Device Device { get; set; } public void RankingEntry(IByteBuffer packet) { // TODO } public void LogicClientHome(IByteBuffer packet) { } public void LogicClientAvatar(IByteBuffer packet) { } /*public async void AddEntry(AvatarStreamEntry entry) { lock (Home.Stream) { while (Home.Stream.Count >= 40) Home.Stream.RemoveAt(0); var max = Home.Stream.Count == 0 ? 1 : Home.Stream.Max(x => x.Id); entry.Id = max == int.MaxValue ? 1 : max + 1; // If we ever reach that value... but who knows... Home.Stream.Add(entry); } await new AvatarStreamEntryMessage(Device) { Entry = entry }.SendAsync(); }*/ /// /// Validates this session /// public void ValidateSession() { var session = Device.Session; session.Duration = (int) DateTime.UtcNow.Subtract(session.SessionStart).TotalSeconds; Home.TotalPlayTimeSeconds += session.Duration; while (Home.Sessions.Count >= 50) Home.Sessions.RemoveAt(0); Home.Sessions.Add(session); } public async void Save() { Home.LastSaveTime = DateTime.UtcNow; /*#if DEBUG var st = new Stopwatch(); st.Start(); Resources.ObjectCache.CachePlayer(this); await PlayerDb.SaveAsync(this); st.Stop(); Logger.Log($"Player {Home.Id} saved in {st.ElapsedMilliseconds}ms.", GetType(), ErrorLevel.Debug); #else*/ Resources.ObjectCache.CachePlayer(this); await PlayerDb.SaveAsync(this); //#endif } } } ================================================ FILE: Source/BrawlStars/Logic/Sessions/Location.cs ================================================ using System; using System.Net.Http; using System.Threading.Tasks; using Newtonsoft.Json; namespace BrawlStars.Logic.Sessions { public class Location { [JsonProperty("country")] public string CountryName { get; set; } [JsonProperty("countryCode")] public string CountryCode { get; set; } [JsonProperty("city")] public string City { get; set; } public static async Task GetByIpAsync(string ip) { try { //TODO: should check any local ip if (ip == "127.0.0.1" || ip.StartsWith("192")) return null; using (var client = new HttpClient()) { var json = await client.GetStringAsync("http://ip-api.com/json/" + ip); return JsonConvert.DeserializeObject(json); } } catch (Exception) { Logger.Log($"Couldn't track location of {ip}", null, Logger.ErrorLevel.Error); return null; } } } } ================================================ FILE: Source/BrawlStars/Logic/Sessions/Session.cs ================================================ using System; using Newtonsoft.Json; namespace BrawlStars.Logic.Sessions { public class Session { [JsonProperty("location")] public Location Location = new Location(); [JsonIgnore] public DateTime SessionStart = DateTime.UtcNow; [JsonProperty("ip")] public string Ip { get; set; } [JsonProperty("duration")] public int Duration { get; set; } [JsonProperty("startDate")] public string StartDate { get; set; } [JsonProperty("deviceCode")] public string DeviceCode { get; set; } [JsonProperty("gameVersion")] public string GameVersion { get; set; } [JsonProperty("sessionId")] public string SessionId { get; set; } } } ================================================ FILE: Source/BrawlStars/Logic/Time.cs ================================================ using System; namespace BrawlStars.Logic { public class Time { public int SubTick { get; set; } public int TotalMilliseconds => 16 * SubTick; public int TotalSeconds => SubTick > 0 ? Math.Max((int) (ulong) (16L * SubTick / 1000) + 1, 1) : 0; public static long GetSecondsInTicks(int seconds) { return (long) (seconds * 62.5); } } } ================================================ FILE: Source/BrawlStars/Logic/Timer.cs ================================================ using System; namespace BrawlStars.Logic { public class Timer { public int EndSubTick; public void StartTimer(Time time, int seconds) { EndSubTick = time.SubTick + (int) Time.GetSecondsInTicks(seconds); } public void IncreaseTimer(int seconds) { EndSubTick += (int) Time.GetSecondsInTicks(seconds); } public void StopTimer() { EndSubTick = -1; } public void FastForward(int seconds) { EndSubTick -= (int) Time.GetSecondsInTicks(seconds); } public void FastForwardSubTicks(int subTick) { if (EndSubTick > 0) EndSubTick -= subTick; } public int GetRemainingSeconds(Time time) { var subTicks = EndSubTick - time.SubTick; return subTicks > 0 ? Math.Max((int) (16L * subTicks / 1000) + 1, 1) : 0; } public int GetRemainingMilliseconds(Time time) { var subTicks = EndSubTick - time.SubTick; return subTicks > 0 ? 16 * subTicks : 0; } public void AdjustSubTick(Time time) { EndSubTick -= time.SubTick; if (EndSubTick < 0) EndSubTick = 0; } } } ================================================ FILE: Source/BrawlStars/NLog.config ================================================  ================================================ FILE: Source/BrawlStars/Program.cs ================================================ using System; using System.Drawing; using System.Threading; using BrawlStars.Utilities.Utils; namespace BrawlStars { public static class Program { public static int Version { get; set; } private static void Main() { Console.Title = $"By Mr Vitalik & PhoenixFire - {DateTime.Now.Year} ©"; Resources.Initialize(); if (ServerUtils.IsLinux()) { Thread.Sleep(Timeout.Infinite); } else { Logger.Log("Press any key to shutdown the server.", null); Console.Read(); } Shutdown(); } public static async void Shutdown() { Console.WriteLine("Shutting down..."); await Resources.Netty.Shutdown(); try { Console.WriteLine("Saving players..."); lock (Resources.Players.SyncObject) { foreach (var player in Resources.Players.Values) player.Save(); } Console.WriteLine("All players saved."); } catch (Exception) { Console.WriteLine("Couldn't save all players."); } await Resources.Netty.ShutdownWorkers(); } public static void Exit() { Environment.Exit(0); } } } ================================================ FILE: Source/BrawlStars/Protocol/Commands/Server/LogicChangeAvatarName.cs ================================================ using BrawlStars.Logic; using BrawlStars.Utilities.Netty; namespace BrawlStars.Protocol.Commands.Server { public class LogicChangeAvatarName : LogicCommand { public LogicChangeAvatarName(Device device) : base(device) { Type = 3; } public string Name { get; set; } public override void Encode() { Data.WriteScString(Name); } } } ================================================ FILE: Source/BrawlStars/Protocol/Commands/Server/LogicDiamondsAddedCommand.cs ================================================ using BrawlStars.Logic; using BrawlStars.Utilities.Netty; namespace BrawlStars.Protocol.Commands.Server { public class LogicDiamondsAddedCommand : LogicCommand { public LogicDiamondsAddedCommand(Device device) : base(device) { Type = 7; } public int Diamonds { get; set; } public override void Encode() { Data.WriteBoolean(false); // AllianceGift Data.WriteInt(Diamonds); Data.WriteInt(0); Data.WriteInt(0); Data.WriteInt(0); Data.WriteScString("GPA.0000-0000-0000-00000"); // Transaction Id } } } ================================================ FILE: Source/BrawlStars/Protocol/LogicCommand.cs ================================================ using BrawlStars.Logic; using DotNetty.Buffers; namespace BrawlStars.Protocol { public class LogicCommand { public LogicCommand(Device device) { Device = device; Data = Unpooled.Buffer(); } public LogicCommand(Device device, IByteBuffer buffer) { Device = device; Reader = buffer; Data = Unpooled.Buffer(); } public IByteBuffer Data { get; set; } public Device Device { get; set; } public int Type { get; set; } public int Tick { get; set; } public IByteBuffer Reader { get; set; } public virtual void Decode() { Tick = Reader.ReadInt(); } public virtual void Encode() { } public virtual void Process() { } public LogicCommand Handle() { Encode(); return this; } } } ================================================ FILE: Source/BrawlStars/Protocol/LogicCommandManager.cs ================================================ using System; using System.Collections.Generic; namespace BrawlStars.Protocol { public class LogicCommandManager { public static Dictionary Commands; static LogicCommandManager() { Commands = new Dictionary { }; } } } ================================================ FILE: Source/BrawlStars/Protocol/LogicMagicMessageFactory.cs ================================================ using System; using System.Collections.Generic; using BrawlStars.Protocol.Messages.Client; using BrawlStars.Protocol.Messages.Client.Alliance; using BrawlStars.Protocol.Messages.Client.Home; using BrawlStars.Protocol.Messages.Client.Login; using BrawlStars.Protocol.Messages.Server; namespace BrawlStars.Protocol { public class LogicMagicMessageFactory { public static Dictionary Messages; static LogicMagicMessageFactory() { Messages = new Dictionary { {10100, typeof(ClientHelloMessage)}, {10101, typeof(LoginMessage)}, {10108, typeof(KeepAliveMessage)}, {10110, typeof(AnalyticsEventMessage)}, {10212, typeof(SetNameMessage)}, {10309, typeof(ClanInviteLinkMessage)}, {14102, typeof(EndClientTurnMessage)}, {14109, typeof(ExitMessage)}, {14110, typeof(BattleEndMessage)}, {14113, typeof(ProfileMessage)}, {14302, typeof(OpenClubMessage)}, {14315, typeof(ChatToClubMessage)}, {14350, typeof(CreateGameroomMessage)}, {14353, typeof(QuitRoomMessage)}, {14354, typeof(ChangeBrawlerInRoomMessage)}, {14363, typeof(ChangeMapMessage)}, {14366, typeof(ClientActionMessage)}, {14372, typeof(UseGadgetInRoomMessage)}, {14600, typeof(ChangeNameMessage)}, {14777, typeof(DoNotDistrubMessage)} }; } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Client/Alliance/ChatToClubMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Protocol.Messages.Server; using BrawlStars.Utilities.Netty; using DotNetty.Buffers; using System; using System.Linq; using BrawlStars.Utilities; using System.Runtime.InteropServices; using Google.Protobuf.WellKnownTypes; namespace BrawlStars.Protocol.Messages.Client.Alliance { class ChatToClubMessage : PiranhaMessage { public ChatToClubMessage(Device device, IByteBuffer buffer) : base(device, buffer) { RequiredState = Device.State.NotDefinied; } public string Messages { get; set; } private ChatServerMessage Chat { get; set; } public override void Decode() { Messages = Reader.ReadScString(); } public override async void Process() { string Botmsg = string.Empty; if (Messages.StartsWith("/")) { var cmd = Messages.Split(' '); var cmdType = cmd[0]; var cmdValue = 0; if (cmd.Length > 1) if (Messages.Split(' ')[1].Any(char.IsDigit)) int.TryParse(Messages.Split(' ')[1], out cmdValue); switch (cmdType) { case "/status": Resources.MessageTick++; Botmsg = $"Server status:\nBuild version: 1.2(for 26.165)\nFingerprint SHA:\n{ Resources.Fingerprint.Sha}\nUsed Ram: " + $"{System.Diagnostics.Process.GetCurrentProcess().WorkingSet64 / (1024 * 1024) + " MB"}"; Resources.ChatMessage = Messages; await new ChatServerMessage(Device) { Message = Resources.ChatMessage }.SendAsync(); Resources.MessageTick++; await new ChatBotServerMessage(Device) { Message = Botmsg }.SendAsync(); break; case "/about": Resources.MessageTick++; Botmsg = "By VitalikObject and PhoenixFire"; Resources.ChatMessage = Messages; await new ChatServerMessage(Device) { Message = Resources.ChatMessage }.SendAsync(); Resources.MessageTick++; await new ChatBotServerMessage(Device) { Message = Botmsg }.SendAsync(); break; case "/reset": Resources.Gems = 99999; Resources.Gold = 99999; Resources.Tickets = 99999; await new LoginFailedMessage(Device) { Reason = "You should re-enter the game to apply changes" }.SendAsync(); break; case "/help": Resources.MessageTick++; Resources.ChatMessage = Messages; await new ChatServerMessage(Device) { Message = Resources.ChatMessage }.SendAsync(); Resources.MessageTick++; Botmsg = "/status - shows server status\n/about - authors\n/reset - set resources by default"; await new ChatBotServerMessage(Device) { Message = Botmsg }.SendAsync(); break; } } else { Resources.ChatMessage = Messages; Resources.MessageTick++; await new ChatServerMessage(Device) { Message = Resources.ChatMessage }.SendAsync(); } } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Client/Alliance/ClanInviteLinkMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Protocol.Messages.Server.Alliance; using DotNetty.Buffers; namespace BrawlStars.Protocol.Messages.Client.Alliance { class ClanInviteLinkMessage : PiranhaMessage { public ClanInviteLinkMessage(Device device, IByteBuffer buffer) : base(device, buffer) { RequiredState = Device.State.NotDefinied; } public override async void Process() { await new GenrateClanInviteLinkMessage(Device).SendAsync(); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Client/AnalyticsEventMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Protocol.Messages.Server; using BrawlStars.Utilities.Netty; using DotNetty.Buffers; namespace BrawlStars.Protocol.Messages.Client { class AnalyticsEventMessage : PiranhaMessage { public AnalyticsEventMessage(Device device, IByteBuffer buffer) : base(device, buffer) { RequiredState = Device.State.NotDefinied; } public string EventName { get; set; } public string Event { get; set; } public override void Decode() { EventName = Reader.ReadScString(); Event = Reader.ReadScString(); } public override void Process() { Logger.Log($"Name: {EventName}, Event: {Event}", GetType(), Logger.ErrorLevel.Debug); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Client/BattleEndMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Protocol.Messages.Server; using BrawlStars.Utilities.Netty; using Colorful; using DotNetty.Buffers; namespace BrawlStars.Protocol.Messages.Client { class BattleEndMessage : PiranhaMessage { public BattleEndMessage(Device device, IByteBuffer buffer) : base(device, buffer) { RequiredState = Device.State.NotDefinied; } public int Rank { get; set; } private int Bot1 { get; set; } private int Bot2 { get; set; } private int Bot3 { get; set; } private int Bot4 { get; set; } private int Bot5 { get; set; } private string Bot1N { get; set; } private string Bot2N { get; set; } private string Bot3N { get; set; } private string Bot4N { get; set; } private string Bot5N { get; set; } private int GameType { get; set; } private int Team { get; set; } public override void Decode() { GameType = Reader.ReadVInt(); Reader.ReadVInt(); Rank = Reader.ReadVInt(); Reader.ReadVInt(); Reader.ReadVInt(); Reader.ReadVInt(); Reader.ReadVInt(); Reader.ReadVInt(); Reader.ReadVInt(); Reader.ReadVInt(); Team = Reader.ReadVInt(); //red or blue Reader.ReadVInt(); Reader.ReadScString(); //Your Name Reader.ReadVInt(); Bot1 = Reader.ReadVInt(); //bot brawer Reader.ReadVInt(); Reader.ReadVInt(); //red or blue Reader.ReadVInt(); Bot1N = Reader.ReadScString(); Reader.ReadVInt(); Bot2 = Reader.ReadVInt(); //bot brawer Reader.ReadVInt(); Reader.ReadVInt(); //red or blue Reader.ReadVInt(); Bot2N = Reader.ReadScString(); Reader.ReadVInt(); Bot3 = Reader.ReadVInt(); //bot brawer Reader.ReadVInt(); Reader.ReadVInt(); //red or blue Reader.ReadVInt(); Bot3N = Reader.ReadScString(); Reader.ReadVInt(); Bot4 = Reader.ReadVInt(); //bot brawer Reader.ReadVInt(); Reader.ReadVInt(); //red or blue Reader.ReadVInt(); Bot4N = Reader.ReadScString(); Reader.ReadVInt(); Bot5 = Reader.ReadVInt(); //bot brawer Reader.ReadVInt(); Reader.ReadVInt(); //red or blue Reader.ReadVInt(); Bot5N = Reader.ReadScString(); } public override async void Process() { if (Rank != 0) { await new Battle_Result(Device) { Rank = Rank }.SendAsync(); } else { if (Team == 0) { await new Battle2_Result(Device) { Result = GameType, Bot1Brawler = Bot1, Bot2Brawler = Bot2, Bot3Brawler = Bot3, Bot4Brawler = Bot4, Bot5Brawler = Bot5, Bot1Name = Bot1N, Bot2Name = Bot2N, Bot3Name = Bot3N, Bot4Name = Bot4N, Bot5Name = Bot5N }.SendAsync(); } else { await new Battle2_Result(Device) { Result = GameType, Bot1Brawler = Bot4, Bot2Brawler = Bot5, Bot3Brawler = Bot3, Bot4Brawler = Bot1, Bot5Brawler = Bot2, Bot1Name = Bot4N, Bot2Name = Bot5N, Bot3Name = Bot3N, Bot4Name = Bot1N, Bot5Name = Bot2N }.SendAsync(); } } } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Client/ChangeBrawlerInRoomMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Protocol.Messages.Server; using BrawlStars.Utilities.Netty; using DotNetty.Buffers; using System; namespace BrawlStars.Protocol.Messages.Client { class ChangeBrawlerInRoomMessage : PiranhaMessage { public ChangeBrawlerInRoomMessage(Device device, IByteBuffer buffer) : base(device, buffer) { RequiredState = Device.State.NotDefinied; } private int BrawlerSkinId { get; set; } private int Unk { get; set; } public override void Decode() { Unk = Reader.ReadVInt(); Reader.ReadVInt(); BrawlerSkinId = Reader.ReadVInt(); } public override async void Process() { if(Unk != 23) { Resources.Skin = BrawlerSkinId; switch (BrawlerSkinId) { case 0: Resources.Brawler = 0; break; case 29: Resources.Brawler = 0; break; case 52: Resources.Brawler = 0; break; case 122: Resources.Brawler = 0; break; case 159: Resources.Brawler = 0; break; case 14: Resources.Brawler = 8; break; case 15: Resources.Brawler = 8; break; case 60: Resources.Brawler = 8; break; case 79: Resources.Brawler = 8; break; case 148: Resources.Brawler = 8; break; case 1: Resources.Brawler = 1; break; case 2: Resources.Brawler = 1; break; case 69: Resources.Brawler = 1; break; case 103: Resources.Brawler = 1; break; case 135: Resources.Brawler = 1; break; case 3: Resources.Brawler = 2; break; case 25: Resources.Brawler = 2; break; case 64: Resources.Brawler = 2; break; case 102: Resources.Brawler = 2; break; case 178: Resources.Brawler = 2; break; case 13: Resources.Brawler = 7; break; case 44: Resources.Brawler = 7; break; case 47: Resources.Brawler = 7; break; case 123: Resources.Brawler = 7; break; case 162: Resources.Brawler = 7; break; case 174: Resources.Brawler = 7; break; case 4: Resources.Brawler = 3; break; case 5: Resources.Brawler = 3; break; case 58: Resources.Brawler = 3; break; case 72: Resources.Brawler = 3; break; case 91: Resources.Brawler = 3; break; case 6: Resources.Brawler = 9; break; case 56: Resources.Brawler = 9; break; case 57: Resources.Brawler = 9; break; case 97: Resources.Brawler = 9; break; case 160: Resources.Brawler = 9; break; case 22: Resources.Brawler = 14; break; case 94: Resources.Brawler = 14; break; case 98: Resources.Brawler = 14; break; case 99: Resources.Brawler = 14; break; case 163: Resources.Brawler = 14; break; case 86: Resources.Brawler = 22; break; case 106: Resources.Brawler = 27; break; case 109: Resources.Brawler = 27; break; case 143: Resources.Brawler = 27; break; case 119: Resources.Brawler = 30; break; case 167: Resources.Brawler = 30; break; case 7: Resources.Brawler = 10; break; case 28: Resources.Brawler = 10; break; case 30: Resources.Brawler = 10; break; case 128: Resources.Brawler = 10; break; case 12: Resources.Brawler = 6; break; case 27: Resources.Brawler = 6; break; case 59: Resources.Brawler = 6; break; case 90: Resources.Brawler = 6; break; case 92: Resources.Brawler = 6; break; case 116: Resources.Brawler = 6; break; case 21: Resources.Brawler = 13; break; case 71: Resources.Brawler = 13; break; case 140: Resources.Brawler = 13; break; case 77: Resources.Brawler = 24; break; case 9: Resources.Brawler = 4; break; case 26: Resources.Brawler = 4; break; case 68: Resources.Brawler = 4; break; case 130: Resources.Brawler = 4; break; case 171: Resources.Brawler = 4; break; case 34: Resources.Brawler = 18; break; case 70: Resources.Brawler = 18; break; case 158: Resources.Brawler = 18; break; case 41: Resources.Brawler = 19; break; case 61: Resources.Brawler = 19; break; case 88: Resources.Brawler = 19; break; case 165: Resources.Brawler = 19; break; case 73: Resources.Brawler = 25; break; case 93: Resources.Brawler = 25; break; case 104: Resources.Brawler = 25; break; case 132: Resources.Brawler = 25; break; case 134: Resources.Brawler = 25; break; case 142: Resources.Brawler = 34; break; case 176: Resources.Brawler = 34; break; case 23: Resources.Brawler = 15; break; case 108: Resources.Brawler = 15; break; case 120: Resources.Brawler = 15; break; case 147: Resources.Brawler = 15; break; case 24: Resources.Brawler = 16; break; case 179: Resources.Brawler = 16; break; case 42: Resources.Brawler = 20; break; case 45: Resources.Brawler = 20; break; case 125: Resources.Brawler = 20; break; case 81: Resources.Brawler = 26; break; case 146: Resources.Brawler = 26; break; case 114: Resources.Brawler = 29; break; case 139: Resources.Brawler = 29; break; case 156: Resources.Brawler = 36; break; case 18: Resources.Brawler = 11; break; case 50: Resources.Brawler = 11; break; case 63: Resources.Brawler = 11; break; case 75: Resources.Brawler = 11; break; case 173: Resources.Brawler = 11; break; case 32: Resources.Brawler = 17; break; case 111: Resources.Brawler = 17; break; case 145: Resources.Brawler = 17; break; case 67: Resources.Brawler = 21; break; case 117: Resources.Brawler = 21; break; case 172: Resources.Brawler = 21; break; case 127: Resources.Brawler = 32; break; case 137: Resources.Brawler = 32; break; case 121: Resources.Brawler = 31; break; case 152: Resources.Brawler = 31; break; case 157: Resources.Brawler = 37; break; case 177: Resources.Brawler = 37; break; case 10: Resources.Brawler = 5; break; case 11: Resources.Brawler = 5; break; case 96: Resources.Brawler = 5; break; case 19: Resources.Brawler = 12; break; case 20: Resources.Brawler = 12; break; case 49: Resources.Brawler = 12; break; case 95: Resources.Brawler = 12; break; case 100: Resources.Brawler = 12; break; case 101: Resources.Brawler = 12; break; case 62: Resources.Brawler = 23; break; case 110: Resources.Brawler = 23; break; case 126: Resources.Brawler = 23; break; case 131: Resources.Brawler = 23; break; case 113: Resources.Brawler = 28; break; case 118: Resources.Brawler = 28; break; case 155: Resources.Brawler = 35; break; case 180: Resources.Brawler = 35; break; } switch (Resources.Brawler) { case 0: //Shelly Resources.StarPower = 76; Resources.Gadget = 255; break; case 1: //Colt Resources.StarPower = 77; Resources.Gadget = 273; break; case 2: //Bull Resources.StarPower = 78; Resources.Gadget = 272; break; case 3: //Brock Resources.StarPower = 79; Resources.Gadget = 245; break; case 4: //Rico Resources.StarPower = 80; Resources.Gadget = 246; break; case 5: //Spike Resources.StarPower = 81; Resources.Gadget = 247; break; case 6: //Barley Resources.StarPower = 82; Resources.Gadget = 273; break; case 7: //Jessie Resources.StarPower = 83; Resources.Gadget = 251; break; case 8: //Nita Resources.StarPower = 84; Resources.Gadget = 249; break; case 9: //Dynamike Resources.StarPower = 85; Resources.Gadget = 258; break; case 10: //El Primo Resources.StarPower = 86; Resources.Gadget = 264; break; case 11: //Mortis Resources.StarPower = 87; Resources.Gadget = 265; break; case 12: //Crow Resources.StarPower = 88; Resources.Gadget = 243; break; case 13: //Poco Resources.StarPower = 89; Resources.Gadget = 267; break; case 14: //Bo Resources.StarPower = 90; Resources.Gadget = 263; break; case 15: //Piper Resources.StarPower = 91; Resources.Gadget = 268; break; case 16: //PAM Resources.StarPower = 92; Resources.Gadget = 257; break; case 17: //Tara Resources.StarPower = 93; Resources.Gadget = 266; break; case 18: //Darryl Resources.StarPower = 94; Resources.Gadget = 260; break; case 19: //Penny Resources.StarPower = 99; Resources.Gadget = 248; break; case 20: //Frank Resources.StarPower = 104; Resources.Gadget = 261; break; case 21: //Gene Resources.StarPower = 109; Resources.Gadget = 252; break; case 22: //Tick Resources.StarPower = 114; Resources.Gadget = 253; break; case 23: //Leon Resources.StarPower = 119; Resources.Gadget = 276; break; case 24: //Rosa Resources.StarPower = 124; Resources.Gadget = 242; break; case 25: //Carl Resources.StarPower = 129; Resources.Gadget = 262; break; case 26: //Bibi Resources.StarPower = 134; Resources.Gadget = 275; break; case 27: //8-Bit Resources.StarPower = 168; Resources.Gadget = 259; break; case 28: //Sandy Resources.StarPower = 186; Resources.Gadget = 270; break; case 29: //Bea Resources.StarPower = 192; Resources.Gadget = 271; break; case 30: //EMZ Resources.StarPower = 198; Resources.Gadget = 274; break; case 31: //Mr. P Resources.StarPower = 204; Resources.Gadget = 269; break; case 32: //Max Resources.StarPower = 210; Resources.Gadget = 254; break; case 34: //Jacky Resources.StarPower = 222; Resources.Gadget = 256; break; case 37: //Sprout Resources.StarPower = 240; Resources.Gadget = 244; break; } await new Gameroom_Data(Device).SendAsync(); } } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Client/ChangeMapMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Protocol.Messages.Server; using BrawlStars.Utilities.Netty; using DotNetty.Buffers; using System; namespace BrawlStars.Protocol.Messages.Client { class ChangeMapMessage : PiranhaMessage { public ChangeMapMessage(Device device, IByteBuffer buffer) : base(device, buffer) { RequiredState = Device.State.NotDefinied; } public int MapId { get; set; } public override void Decode() { Reader.ReadVInt(); MapId = Reader.ReadVInt(); } public override async void Process() { Resources.Map = MapId; await new Gameroom_Data(Device).SendAsync(); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Client/ChangeNameMessage.cs ================================================ using BrawlStars.Core; using BrawlStars.Logic; using BrawlStars.Protocol.Messages.Server; using BrawlStars.Utilities.Netty; using DotNetty.Buffers; using System; using System.Threading.Tasks; namespace BrawlStars.Protocol.Messages.Client { class ChangeNameMessage : PiranhaMessage { public ChangeNameMessage(Device device, IByteBuffer buffer) : base(device, buffer) { RequiredState = Device.State.NotDefinied; } public static string Name { get; set; } public override void Decode() { Name = Reader.ReadScString(); } public override async void Process() { await new LoginFailedMessage(Device) { Reason = "Not implemented yet" }.SendAsync(); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Client/ClientActionMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Protocol.Messages.Server; using BrawlStars.Utilities.Netty; using Colorful; using DotNetty.Buffers; namespace BrawlStars.Protocol.Messages.Client { class ClientActionMessage : PiranhaMessage { public ClientActionMessage(Device device, IByteBuffer buffer) : base(device, buffer) { RequiredState = Device.State.NotDefinied; } private int Unk { get; set; } public override void Decode() { Unk = Reader.ReadVInt(); } public override async void Process() { if(Unk == 4) { await new LoginFailedMessage(Device) { Reason = "Not implemented yet" }.SendAsync(); } } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Client/CreateGameroomMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Protocol.Messages.Server; using BrawlStars.Utilities.Netty; using Colorful; using DotNetty.Buffers; namespace BrawlStars.Protocol.Messages.Client { class CreateGameroomMessage : PiranhaMessage { public CreateGameroomMessage(Device device, IByteBuffer buffer) : base(device, buffer) { RequiredState = Device.State.NotDefinied; } public int MapId { get; set; } public override void Decode() { Reader.ReadVInt(); MapId = Reader.ReadVInt(); } public override async void Process() { switch(MapId) { case 1: Resources.Map = 7; break; case 2: Resources.Map = 32; break; case 3: Resources.Map = 17; break; case 4: Resources.Map = 0; break; case 5: Resources.Map = 38; break; case 6: Resources.Map = 24; break; case 7: Resources.Map = 202; break; case 8: Resources.Map = 97; break; case 9: Resources.Map = 167; break; } Resources.Room = 1; await new Gameroom_Data(Device).SendAsync(); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Client/DoNotDistrubMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Protocol.Messages.Server; using BrawlStars.Utilities.Netty; using DotNetty.Buffers; namespace BrawlStars.Protocol.Messages.Client { class DoNotDistrubMessage : PiranhaMessage { public DoNotDistrubMessage(Device device, IByteBuffer buffer) : base(device, buffer) { RequiredState = Device.State.NotDefinied; } private bool NotDistrub { get; set; } public override void Decode() { NotDistrub = Reader.ReadBoolean(); } public override async void Process() { await new DoNotDistrubServer(Device) { Distrub = NotDistrub }.SendAsync(); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Client/EndClientTurnMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Protocol.Messages.Server; using BrawlStars.Utilities.Netty; using DotNetty.Buffers; using Renci.SshNet; using System; using System.Reflection; namespace BrawlStars.Protocol.Messages.Client { public class EndClientTurnMessage : PiranhaMessage { public EndClientTurnMessage(Device device, IByteBuffer buffer) : base(device, buffer) { RequiredState = Device.State.NotDefinied; } private int CommandId { get; set; } private int BoxId { get; set; } private int BoxType { get; set; } private int Command { get; set; } public override void Decode() { Reader.ReadVInt(); Reader.ReadVInt(); Reader.ReadVInt(); Command = Reader.ReadVInt(); if (Command != 0) { CommandId = Reader.ReadVInt(); } else { CommandId = 0; } } public override async void Process() { switch (CommandId) { case 0: break; case 203: break; case 500: Reader.ReadVInt(); //Unk Reader.ReadVInt(); //Unk Reader.ReadVInt(); //-1 Reader.ReadVInt(); //-1 BoxId = Reader.ReadVInt(); switch (BoxId) { case 1: Resources.Box = 12; break; case 3: Resources.Box = 11; break; case 4: Resources.Box = 12; break; case 5: Resources.Box = 10; break; } await new ServerBox(Device).SendAsync(); break; case 505: Reader.ReadVInt(); //Unk Reader.ReadVInt(); //Unk Reader.ReadVInt(); //-1 Reader.ReadVInt(); //-1 Reader.ReadVInt(); //28 Resources.ProfileIcon = Reader.ReadVInt(); break; case 506: Reader.ReadVInt(); //Unk Reader.ReadVInt(); //Unk Reader.ReadVInt(); //-1 Reader.ReadVInt(); //-1 Reader.ReadVInt(); //29 Resources.Skin = Reader.ReadVInt(); //SkinId Reader.ReadVInt(); //525 Reader.ReadVInt(); //Unk Reader.ReadVInt(); //Unk Reader.ReadVInt(); //-1 Reader.ReadVInt(); //-1 Reader.ReadVInt(); //16 Resources.Brawler = Reader.ReadVInt(); switch (Resources.Brawler) { case 0: //Shelly Resources.StarPower = 76; Resources.Gadget = 255; break; case 1: //Colt Resources.StarPower = 77; Resources.Gadget = 273; break; case 2: //Bull Resources.StarPower = 78; Resources.Gadget = 272; break; case 3: //Brock Resources.StarPower = 79; Resources.Gadget = 245; break; case 4: //Rico Resources.StarPower = 80; Resources.Gadget = 246; break; case 5: //Spike Resources.StarPower = 81; Resources.Gadget = 247; break; case 6: //Barley Resources.StarPower = 82; Resources.Gadget = 273; break; case 7: //Jessie Resources.StarPower = 83; Resources.Gadget = 251; break; case 8: //Nita Resources.StarPower = 84; Resources.Gadget = 249; break; case 9: //Dynamike Resources.StarPower = 85; Resources.Gadget = 258; break; case 10: //El Primo Resources.StarPower = 86; Resources.Gadget = 264; break; case 11: //Mortis Resources.StarPower = 87; Resources.Gadget = 265; break; case 12: //Crow Resources.StarPower = 88; Resources.Gadget = 243; break; case 13: //Poco Resources.StarPower = 89; Resources.Gadget = 267; break; case 14: //Bo Resources.StarPower = 90; Resources.Gadget = 263; break; case 15: //Piper Resources.StarPower = 91; Resources.Gadget = 268; break; case 16: //PAM Resources.StarPower = 92; Resources.Gadget = 257; break; case 17: //Tara Resources.StarPower = 93; Resources.Gadget = 266; break; case 18: //Darryl Resources.StarPower = 94; Resources.Gadget = 260; break; case 19: //Penny Resources.StarPower = 99; Resources.Gadget = 248; break; case 20: //Frank Resources.StarPower = 104; Resources.Gadget = 261; break; case 21: //Gene Resources.StarPower = 109; Resources.Gadget = 252; break; case 22: //Tick Resources.StarPower = 114; Resources.Gadget = 253; break; case 23: //Leon Resources.StarPower = 119; Resources.Gadget = 276; break; case 24: //Rosa Resources.StarPower = 124; Resources.Gadget = 242; break; case 25: //Carl Resources.StarPower = 129; Resources.Gadget = 262; break; case 26: //Bibi Resources.StarPower = 134; Resources.Gadget = 275; break; case 27: //8-Bit Resources.StarPower = 168; Resources.Gadget = 259; break; case 28: //Sandy Resources.StarPower = 186; Resources.Gadget = 270; break; case 29: //Bea Resources.StarPower = 192; Resources.Gadget = 271; break; case 30: //EMZ Resources.StarPower = 198; Resources.Gadget = 274; break; case 31: //Mr. P Resources.StarPower = 204; Resources.Gadget = 269; break; case 32: //Max Resources.StarPower = 210; Resources.Gadget = 254; break; case 34: //Jacky Resources.StarPower = 222; Resources.Gadget = 256; break; case 37: //Sprout Resources.StarPower = 240; Resources.Gadget = 244; break; } break; case 515: Reader.ReadVInt(); //Unk Reader.ReadVInt(); //Unk Reader.ReadVInt(); //-1 BoxType = Reader.ReadVInt(); break; case 527: Reader.ReadVInt(); Reader.ReadVInt(); Reader.ReadVInt(); Reader.ReadVInt(); Reader.ReadVInt(); Resources.NameColor = Reader.ReadVInt(); break; case 529: Reader.ReadVInt(); //Unk Reader.ReadVInt(); //Unk Reader.ReadVInt(); //-1 Reader.ReadVInt(); //-1 Reader.ReadVInt(); //23 Resources.StarPower = Reader.ReadVInt(); if (Resources.Room == 1) await new Gameroom_Data(Device).SendAsync(); break; case 535: Resources.Box = 12; await new ServerBox(Device).SendAsync(); break; default: Logger.Log( $"Command {CommandId} is unhandled. Content: {ToString()}", GetType(), Logger.ErrorLevel.Warning); break; } } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Client/Home/ProfileMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Protocol.Messages.Server; using BrawlStars.Utilities.Netty; using Colorful; using DotNetty.Buffers; using System.Net.Http.Headers; namespace BrawlStars.Protocol.Messages.Client.Home { class ProfileMessage : PiranhaMessage { public ProfileMessage(Device device, IByteBuffer buffer) : base(device, buffer) { RequiredState = Device.State.NotDefinied; } public int HighId { get; set; } public override void Decode() { Reader.ReadVInt(); Reader.ReadVInt(); Reader.ReadVInt(); HighId = Reader.ReadVInt(); } public override async void Process() { if (HighId == 0) { await new ProfileServerMessage(Device).SendAsync(); } else { await new BotProfileMessage(Device).SendAsync(); } } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Client/Home/SetNameMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Protocol.Messages.Server; using DotNetty.Buffers; using BrawlStars.Protocol.Messages.Server.Home; using BrawlStars.Utilities.Netty; namespace BrawlStars.Protocol.Messages.Client.Home { class SetNameMessage : PiranhaMessage { public SetNameMessage(Device device, IByteBuffer buffer) : base(device, buffer) { RequiredState = Device.State.NotDefinied; } public override void Decode() { Resources.Name = Reader.ReadScString(); } public override async void Process() { await new SetNameServer(Device).SendAsync(); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Client/Login/ClientHelloMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Protocol.Messages.Server; using BrawlStars.Utilities.Netty; using DotNetty.Buffers; namespace BrawlStars.Protocol.Messages.Client.Login { public class ClientHelloMessage : PiranhaMessage { public ClientHelloMessage(Device device, IByteBuffer buffer) : base(device, buffer) { RequiredState = Device.State.Disconnected; } public int Protocol { get; set; } public int KeyVersion { get; set; } public int MajorVersion { get; set; } public int MinorVersion { get; set; } public int Build { get; set; } public string FingerprintSha { get; set; } public int DeviceType { get; set; } public int AppStore { get; set; } public override void Decode() { Protocol = Reader.ReadInt(); KeyVersion = Reader.ReadInt(); MajorVersion = Reader.ReadInt(); MinorVersion = Reader.ReadInt(); Build = Reader.ReadInt(); FingerprintSha = Reader.ReadScString(); DeviceType = Reader.ReadInt(); AppStore = Reader.ReadInt(); } public override async void Process() { await new LoginFailedMessage(Device) { ErrorCode = 8 }.SendAsync(); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Client/Login/ExitMessage.cs ================================================ using System; using System.Globalization; using BrawlStars.Logic; using BrawlStars.Logic.Sessions; using BrawlStars.Protocol.Messages.Server; using BrawlStars.Utilities.Netty; using DotNetty.Buffers; using BrawlStars; namespace BrawlStars.Protocol.Messages.Client.Login { class ExitMessage : PiranhaMessage { public ExitMessage(Device device, IByteBuffer buffer) : base(device, buffer) { RequiredState = Device.State.NotDefinied; } public override async void Process() { await new OwnHomeDataMessage(Device).SendAsync(); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Client/Login/KeepAliveMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Protocol.Messages.Server; using DotNetty.Buffers; namespace BrawlStars.Protocol.Messages.Client.Login { public class KeepAliveMessage : PiranhaMessage { public KeepAliveMessage(Device device, IByteBuffer buffer) : base(device, buffer) { RequiredState = Device.State.NotDefinied; } public override async void Process() { await new KeepAliveOkMessage(Device).SendAsync(); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Client/Login/LoginMessage.cs ================================================ using System; using System.Globalization; using BrawlStars.Logic; using BrawlStars.Logic.Sessions; using BrawlStars.Protocol.Messages.Server; using BrawlStars.Protocol.Messages.Server.Login; using BrawlStars.Utilities.Netty; using DotNetty.Buffers; namespace BrawlStars.Protocol.Messages.Client.Login { public class LoginMessage : PiranhaMessage { public LoginMessage(Device device, IByteBuffer buffer) : base(device, buffer) { device.CurrentState = Device.State.Login; RequiredState = Device.State.Login; } public long UserId { get; set; } public string UserToken { get; set; } public int ClientMajorVersion { get; set; } public int ClientBuild { get; set; } public int ClientMinorVersion { get; set; } public string FingerprintSha { get; set; } public string PreferredDeviceLanguage { get; set; } public uint Seed { get; set; } public override void Decode() { UserId = Reader.ReadLong(); UserToken = Reader.ReadScString(); ClientMajorVersion = Reader.ReadInt(); ClientMinorVersion = Reader.ReadInt(); ClientBuild = Reader.ReadInt(); FingerprintSha = Reader.ReadScString(); /*Reader.ReadScString(); // empty Reader.ReadScString(); Reader.ReadScString(); // empty Reader.ReadScString(); // Device Reader.ReadInt(); PreferredDeviceLanguage = Reader.ReadScString().Substring(3, 2); // Language Reader.ReadScString(); Reader.ReadScString(); // 10 Reader.ReadByte(); Reader.ReadScString(); Reader.ReadScString(); Reader.ReadScString(); Reader.ReadByte(); Reader.ReadScString(); Seed = Reader.ReadUnsignedInt();*/ } public override async void Process() { if (Resources.Configuration.UseContentPatch) if (FingerprintSha != Resources.Fingerprint.Sha) { await new LoginFailedMessage(Device) { ErrorCode = 7, ContentUrl = Resources.Configuration.PatchUrl, ResourceFingerprintData = Resources.Fingerprint.Json }.SendAsync(); return; } //var player = await Resources.Players.Login(UserId, UserToken); var player = 1; if (player != null) { Program.Version = 1; /*Device.Player = player; player.Device = Device;*/ await new Copyright(Device).SendAsync(); await new LoginOkMessage(Device).SendAsync(); var ip = Device.GetIp(); //if (UserId <= 0) player.Home.CreatedIpAddress = ip; //Device.Player.Home.PreferredDeviceLanguage = PreferredDeviceLanguage; var session = Device.Session; session.Ip = ip; session.GameVersion = $"{ClientMajorVersion}.{ClientMinorVersion}"; session.Location = await Location.GetByIpAsync(ip); session.SessionId = Guid.NewGuid().ToString(); session.StartDate = session.SessionStart.ToString(CultureInfo.InvariantCulture); /*if(ClientMajorVersion != 27) { await new LoginFailedMessage(Device) { Reason = "Update avaible!" }.SendAsync(); }*/ //player.Home.TotalSessions++; // TESTING: //player.Home.FastForward((int) DateTime.UtcNow.Subtract(player.Home.LastSaveTime).TotalSeconds); await new OwnHomeDataMessage(Device).SendAsync(); await new ClubOHD(Device).SendAsync(); //await new AvatarStreamMessage(Device).SendAsync(); } else { await new LoginFailedMessage(Device) { Reason = "Account not found. Please clear app data." }.SendAsync(); } } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Client/OpenClubMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Protocol.Messages.Server; using BrawlStars.Utilities.Netty; using DotNetty.Buffers; namespace BrawlStars.Protocol.Messages.Client { class OpenClubMessage : PiranhaMessage { public OpenClubMessage(Device device, IByteBuffer buffer) : base(device, buffer) { RequiredState = Device.State.NotDefinied; } public override void Decode() { } public override async void Process() { await new ClubServerMessage(Device).SendAsync(); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Client/QuitRoomMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Protocol.Messages.Server; using BrawlStars.Utilities.Netty; using DotNetty.Buffers; namespace BrawlStars.Protocol.Messages.Client { class QuitRoomMessage : PiranhaMessage { public QuitRoomMessage(Device device, IByteBuffer buffer) : base(device, buffer) { RequiredState = Device.State.NotDefinied; } public override void Decode() { } public override async void Process() { Resources.Room = 0; Resources.RoomID = 0; await new RoomDisconnect(Device).SendAsync(); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Client/UseGadgetInRoomMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Protocol.Messages.Server; using BrawlStars.Utilities.Netty; using Colorful; using DotNetty.Buffers; namespace BrawlStars.Protocol.Messages.Client { class UseGadgetInRoomMessage : PiranhaMessage { public UseGadgetInRoomMessage(Device device, IByteBuffer buffer) : base(device, buffer) { RequiredState = Device.State.NotDefinied; } public override void Decode() { Resources.UseGadget = Reader.ReadBoolean(); } public override async void Process() { await new Gameroom_Data(Device).SendAsync(); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Server/Alliance/GenrateClanInviteLinkMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Utilities.Netty; using System; namespace BrawlStars.Protocol.Messages.Server.Alliance { class GenrateClanInviteLinkMessage : PiranhaMessage { public GenrateClanInviteLinkMessage(Device device) : base(device) { Id = 23302; } public override async void Encode() { Random rnd = new Random(); int itoken = rnd.Next(1, 2147483647); string token = itoken.ToString(); Writer.WriteVInt(1); Writer.WriteScString(token); Writer.WriteVInt(-1040385); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Server/Battle2_Result.cs ================================================ using BrawlStars.Logic; using BrawlStars.Utilities.Netty; using System; namespace BrawlStars.Protocol.Messages.Server { class Battle2_Result : PiranhaMessage { public Battle2_Result(Device device) : base(device) { Id = 23456; } public int Rank { get; set; } public int Result { get; set; } public int Bot1Brawler { get; set; } public int Bot2Brawler { get; set; } public int Bot3Brawler { get; set; } public int Bot4Brawler { get; set; } public int Bot5Brawler { get; set; } public string Bot1Name { get; set; } public string Bot2Name { get; set; } public string Bot3Name { get; set; } public string Bot4Name { get; set; } public string Bot5Name { get; set; } public override async void Encode() { Writer.WriteVInt(1); Writer.WriteVInt(Result); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(32); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(6); Writer.WriteVInt(1); Writer.WriteVInt(16); Writer.WriteVInt(Resources.Brawler); Writer.WriteVInt(29); Writer.WriteVInt(Resources.Skin); Writer.WriteVInt(99999); Writer.WriteVInt(0); Writer.WriteVInt(10); Writer.WriteVInt(0); Writer.WriteScString(Resources.Name); Writer.WriteVInt(100); Writer.WriteVInt(28000000); Writer.WriteVInt(43000000); Writer.WriteVInt(0); Writer.WriteVInt(16); Writer.WriteVInt(Bot1Brawler); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(0); Writer.WriteVInt(10); Writer.WriteVInt(0); Writer.WriteScString(Bot1Name); Writer.WriteVInt(100); Writer.WriteVInt(28000000); Writer.WriteVInt(43000000); Writer.WriteVInt(0); Writer.WriteVInt(16); Writer.WriteVInt(Bot2Brawler); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(0); Writer.WriteVInt(10); Writer.WriteVInt(0); Writer.WriteScString(Bot2Name); Writer.WriteVInt(100); Writer.WriteVInt(28000000); Writer.WriteVInt(43000000); Writer.WriteVInt(2); Writer.WriteVInt(16); Writer.WriteVInt(Bot3Brawler); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(0); Writer.WriteVInt(10); Writer.WriteVInt(0); Writer.WriteScString(Bot3Name); Writer.WriteVInt(100); Writer.WriteVInt(28000000); Writer.WriteVInt(43000000); Writer.WriteVInt(2); Writer.WriteVInt(16); Writer.WriteVInt(Bot4Brawler); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(0); Writer.WriteVInt(10); Writer.WriteVInt(0); Writer.WriteScString(Bot4Name); Writer.WriteVInt(100); Writer.WriteVInt(28000000); Writer.WriteVInt(43000000); Writer.WriteVInt(2); Writer.WriteVInt(16); Writer.WriteVInt(Bot5Brawler); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(0); Writer.WriteVInt(10); Writer.WriteVInt(0); Writer.WriteScString(Bot5Name); Writer.WriteVInt(100); Writer.WriteVInt(28000000); Writer.WriteVInt(43000000); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(28); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-1040385); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Server/Battle_Result.cs ================================================ using BrawlStars.Logic; using BrawlStars.Utilities.Netty; using System; namespace BrawlStars.Protocol.Messages.Server { class Battle_Result : PiranhaMessage { public Battle_Result(Device device) : base(device) { Id = 23456; } public int Rank { get; set; } public override async void Encode() { Writer.WriteVInt(2); Writer.WriteVInt(Rank); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(32); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(10); Writer.WriteVInt(1); Writer.WriteVInt(16); Writer.WriteVInt(Resources.Brawler); Writer.WriteVInt(29); Writer.WriteVInt(Resources.Skin); Writer.WriteVInt(99999); Writer.WriteVInt(0); Writer.WriteVInt(10); Writer.WriteVInt(0); Writer.WriteScString(Resources.Name); Writer.WriteVInt(100); Writer.WriteVInt(28000000); Writer.WriteVInt(43000000); Writer.WriteVInt(2); Writer.WriteVInt(16); Writer.WriteVInt(11); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(0); Writer.WriteVInt(10); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(1); Writer.WriteVInt(49); Writer.WriteVInt(100); Writer.WriteVInt(28000000); Writer.WriteVInt(43000000); Writer.WriteVInt(2); Writer.WriteVInt(16); Writer.WriteVInt(35); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(0); Writer.WriteVInt(10); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(1); Writer.WriteVInt(50); Writer.WriteVInt(100); Writer.WriteVInt(28000000); Writer.WriteVInt(43000000); Writer.WriteVInt(2); Writer.WriteVInt(16); Writer.WriteVInt(31); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(0); Writer.WriteVInt(10); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(1); Writer.WriteVInt(51); Writer.WriteVInt(100); Writer.WriteVInt(28000000); Writer.WriteVInt(43000000); Writer.WriteVInt(2); Writer.WriteVInt(16); Writer.WriteVInt(3); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(0); Writer.WriteVInt(10); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(1); Writer.WriteVInt(52); Writer.WriteVInt(100); Writer.WriteVInt(28000000); Writer.WriteVInt(43000000); Writer.WriteVInt(2); Writer.WriteVInt(16); Writer.WriteVInt(26); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(0); Writer.WriteVInt(10); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(1); Writer.WriteVInt(53); Writer.WriteVInt(100); Writer.WriteVInt(28000000); Writer.WriteVInt(43000000); Writer.WriteVInt(2); Writer.WriteVInt(16); Writer.WriteVInt(34); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(0); Writer.WriteVInt(10); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(1); Writer.WriteVInt(54); Writer.WriteVInt(100); Writer.WriteVInt(28000000); Writer.WriteVInt(43000000); Writer.WriteVInt(2); Writer.WriteVInt(16); Writer.WriteVInt(25); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(0); Writer.WriteVInt(10); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(1); Writer.WriteVInt(55); Writer.WriteVInt(100); Writer.WriteVInt(28000000); Writer.WriteVInt(43000000); Writer.WriteVInt(2); Writer.WriteVInt(16); Writer.WriteVInt(8); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(0); Writer.WriteVInt(10); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(1); Writer.WriteVInt(56); Writer.WriteVInt(100); Writer.WriteVInt(28000000); Writer.WriteVInt(43000000); Writer.WriteVInt(2); Writer.WriteVInt(16); Writer.WriteVInt(30); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(0); Writer.WriteVInt(10); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(1); Writer.WriteVInt(57); Writer.WriteVInt(100); Writer.WriteVInt(28000000); Writer.WriteVInt(43000000); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(28); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-1040385); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Server/ChatBotServerMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Utilities.Netty; using System; namespace BrawlStars.Protocol.Messages.Server { class ChatBotServerMessage : PiranhaMessage { public string Message { get; set; } public ChatBotServerMessage(Device device) : base(device) { Id = 24312; } public override async void Encode() { Writer.WriteVInt(2); Writer.WriteVInt(0); Writer.WriteVInt(Resources.MessageTick); Writer.WriteVInt(1); Writer.WriteVInt(1); Writer.WriteScString("ObjectBrawlBot"); Writer.WriteVInt(3); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteScString(Message); Writer.WriteVInt(-1040385); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Server/ChatServerMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Utilities.Netty; using System; namespace BrawlStars.Protocol.Messages.Server { class ChatServerMessage : PiranhaMessage { public string Message { get; set; } public ChatServerMessage(Device device) : base(device) { Id = 24312; } Random rnd = new Random(); public override async void Encode() { Writer.WriteVInt(2); Writer.WriteVInt(0); Writer.WriteVInt(Resources.MessageTick); Writer.WriteVInt(0); Writer.WriteVInt(1); Writer.WriteScString(Resources.Name); Writer.WriteVInt(2); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteScString(Message); Writer.WriteVInt(-1040385); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Server/ClubOHD.cs ================================================ using BrawlStars.Logic; using BrawlStars.Utilities.Netty; using System; namespace BrawlStars.Protocol.Messages.Server { class ClubOHD : PiranhaMessage { public ClubOHD(Device device) : base(device) { Id = 24399; } public override void Encode() { Writer.WriteVInt(1); Writer.WriteVInt(1); Writer.WriteVInt(25); Writer.WriteVInt(2); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteInt(1); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(9); Writer.WriteVInt(-29); Writer.WriteVInt(-20); Writer.WriteVInt(-11); Writer.WriteVInt(-30); Writer.WriteVInt(32); Writer.WriteVInt(-18); Writer.WriteVInt(-31); Writer.WriteVInt(-19); Writer.WriteVInt(-27); Writer.WriteVInt(8); Writer.WriteVInt(5); Writer.WriteVInt(3); Writer.WriteVInt(1); Writer.WriteVInt(Resources.Trophies); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteScString(Resources.Region); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-1040385); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-34); Writer.WriteVInt(-8147); Writer.WriteVInt(0); Writer.WriteVInt(-35); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(1); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-39); Writer.WriteVInt(17); Writer.WriteVInt(-3450); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(9); Writer.WriteVInt(-29); Writer.WriteVInt(-20); Writer.WriteVInt(-11); Writer.WriteVInt(-30); Writer.WriteVInt(32); Writer.WriteVInt(-18); Writer.WriteVInt(-31); Writer.WriteVInt(-19); Writer.WriteVInt(-27); Writer.WriteVInt(8); Writer.WriteVInt(5); Writer.WriteVInt(3); Writer.WriteVInt(1); Writer.WriteVInt(Resources.Trophies); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteScString(Resources.Region); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(11); Writer.WriteVInt(-28); Writer.WriteVInt(-27); Writer.WriteVInt(-13); Writer.WriteVInt(-29); Writer.WriteVInt(-14); Writer.WriteVInt(-23); Writer.WriteVInt(-16); Writer.WriteVInt(-12); Writer.WriteVInt(-23); Writer.WriteVInt(-17); Writer.WriteVInt(-18); Writer.WriteVInt(1); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-3); Writer.WriteVInt(-472); Writer.WriteVInt(135); Writer.WriteVInt(9887); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-39); Writer.WriteVInt(17); Writer.WriteVInt(-3450); Writer.WriteScString("Brawl Private Server"); Writer.WriteVInt(8); Writer.WriteVInt(5); Writer.WriteVInt(3); Writer.WriteVInt(1); Writer.WriteVInt(99999); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteScString(Resources.Region); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteScString("Server created by PhoenixFire and VitalikObject"); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteInt(1); Writer.WriteVInt(2); Writer.WriteVInt(99999); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteScString(Resources.Name); Writer.WriteVInt(100); Writer.WriteVInt(28000000); Writer.WriteVInt(43000000); Writer.WriteVInt(-1); Writer.WriteVInt(-1040385); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(12); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteScString(Resources.Name); Writer.WriteVInt(100); Writer.WriteVInt(28000000); Writer.WriteVInt(43000000); Writer.WriteVInt(-1); Writer.WriteVInt(-1040385); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-34); Writer.WriteVInt(-8137); Writer.WriteVInt(0); Writer.WriteVInt(1); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-1040385); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-33); Writer.WriteVInt(44); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(2); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(1); Writer.WriteVInt(0); Writer.WriteVInt(-1040385); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-50); Writer.WriteVInt(-8145); Writer.WriteVInt(0); Writer.WriteVInt(11); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(1); Writer.WriteVInt(1); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-3); Writer.WriteVInt(-472); Writer.WriteVInt(135); Writer.WriteVInt(-1040385); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Server/ClubServerMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Utilities.Netty; using System; namespace BrawlStars.Protocol.Messages.Server { class ClubServerMessage : PiranhaMessage { public ClubServerMessage(Device device) : base(device) { Id = 24301; } public override void Encode() { Writer.WriteVInt(1); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteInt(1); Writer.WriteScString("Brawl Private Server"); Writer.WriteVInt(8); Writer.WriteVInt(5); Writer.WriteVInt(3); Writer.WriteVInt(1); Writer.WriteVInt(Resources.Trophies); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteScString(Resources.Region); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteScString("Server created by PhoenixFire and VitalikObject"); Writer.WriteVInt(1); Writer.WriteInt(0); Writer.WriteInt(1); //Low Id Writer.WriteVInt(2); Writer.WriteVInt(Resources.Trophies); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteScString(Resources.Name); Writer.WriteVInt(100); Writer.WriteVInt(28000000 + Resources.ProfileIcon); Writer.WriteVInt(43000000 + Resources.NameColor); Writer.WriteVInt(-1); Writer.WriteVInt(-1040385); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Server/DoNotDistrubServer.cs ================================================ using BrawlStars.Logic; using BrawlStars.Utilities.Netty; using System; using System.Text; namespace BrawlStars.Protocol.Messages.Server { class DoNotDistrubServer : PiranhaMessage { public DoNotDistrubServer(Device device) : base(device) { Id = 24111; } public bool Distrub { get; set; } public override async void Encode() { Writer.WriteVInt(213); Writer.WriteBoolean(Distrub); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-1040385); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Server/Gameroom_Data.cs ================================================ using BrawlStars.Logic; using BrawlStars.Utilities.Netty; using System; using System.Text; namespace BrawlStars.Protocol.Messages.Server { class Gameroom_Data : PiranhaMessage { public Gameroom_Data(Device device) : base(device) { Id = 24124; } public override void Encode() { Writer.WriteVInt(1); Writer.WriteVInt(0); Writer.WriteVInt(1); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Random rnd = new Random(); if (Resources.RoomID == 0) { int i = rnd.Next(0, 2147483647); Resources.RoomID = i; Writer.WriteInt(i); } else { Writer.WriteInt(Resources.RoomID); } Writer.WriteVInt(1557129593); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(15); Writer.WriteVInt(Resources.Map); Writer.WriteVInt(1); Writer.WriteVInt(1); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); //High id Writer.WriteInt(1); //Low Id Writer.WriteVInt(16); Writer.WriteVInt(Resources.Brawler); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(1); Writer.WriteVInt(3); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteScString(Resources.Name); Writer.WriteVInt(100); Writer.WriteVInt(28000000); Writer.WriteVInt(43000000); Writer.WriteVInt(23); Writer.WriteVInt(Resources.StarPower); //star power if (Resources.UseGadget == true) { Writer.WriteVInt(23); Writer.WriteVInt(Resources.Gadget); //gadget } else { Writer.WriteVInt(0); Writer.WriteVInt(0); } Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(6); Writer.WriteVInt(-1040385); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Server/Home/BotProfileMessage.cs ================================================ using System; using BrawlStars.Logic; using BrawlStars.Utilities.Netty; namespace BrawlStars.Protocol.Messages.Server { public class BotProfileMessage : PiranhaMessage { public BotProfileMessage(Device device) : base(device) { Id = 24113; } public override void Encode() { Writer.WriteVInt(1); Writer.WriteVInt(1); Writer.WriteVInt(0); Writer.WriteVInt(35); Writer.WriteVInt(16); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(1); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(2); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(3); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(4); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(5); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(6); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(7); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(8); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(9); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(10); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(11); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(12); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(13); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(14); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(15); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(16); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(17); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(18); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(19); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(20); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(21); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(22); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(23); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(24); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(25); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(26); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(27); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(28); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(29); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(30); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(31); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(32); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(34); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(16); Writer.WriteVInt(37); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(15); Writer.WriteVInt(1); Writer.WriteVInt(99999); Writer.WriteVInt(2); Writer.WriteVInt(1262470); Writer.WriteVInt(3); Writer.WriteVInt(99999); Writer.WriteVInt(4); Writer.WriteVInt(99999); Writer.WriteVInt(5); Writer.WriteVInt(35); Writer.WriteVInt(7); Writer.WriteVInt(99999); Writer.WriteVInt(8); Writer.WriteVInt(99999); Writer.WriteVInt(9); Writer.WriteVInt(99999); Writer.WriteVInt(10); Writer.WriteVInt(99999); Writer.WriteVInt(11); Writer.WriteVInt(99999); Writer.WriteVInt(12); Writer.WriteVInt(21); Writer.WriteVInt(13); Writer.WriteVInt(99999); Writer.WriteVInt(14); Writer.WriteVInt(1); Writer.WriteVInt(15); Writer.WriteVInt(99999); Writer.WriteVInt(16); Writer.WriteVInt(21); Writer.WriteScString("ObjectBrawlBot"); Writer.WriteVInt(100); Writer.WriteVInt(28000015); Writer.WriteVInt(43000010); Writer.WriteVInt(1); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(1); Writer.WriteInt(1); Writer.WriteScString("Bot by Mr Vitalik"); Writer.WriteVInt(8); Writer.WriteVInt(20); Writer.WriteVInt(1); Writer.WriteVInt(3); Writer.WriteVInt(299997); Writer.WriteVInt(25000); Writer.WriteVInt(0); Writer.WriteScString("IL"); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(25); Writer.WriteVInt(2); Writer.WriteScString(null); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Server/Home/OwnHomeDataMessage.cs ================================================ using System; using BrawlStars.Logic; using BrawlStars.Utilities.Netty; using DotNetty.Transport.Channels; namespace BrawlStars.Protocol.Messages.Server { public class OwnHomeDataMessage : PiranhaMessage { public OwnHomeDataMessage(Device device) : base(device) { Id = 24101; device.CurrentState = Device.State.Home; Device.LastVisitHome = DateTime.UtcNow; } public override void Encode() { Writer.WriteVInt(2020007); Writer.WriteVInt(75158); Writer.WriteVInt(Resources.Trophies); Writer.WriteVInt(99999); Writer.WriteVInt(122); Writer.WriteVInt(100); //reward for trophy road Writer.WriteVInt(1262469); // starting level (exp points) Writer.WriteVInt(28); Writer.WriteVInt(Resources.ProfileIcon); // player icon ID Writer.WriteVInt(43); Writer.WriteVInt(Resources.NameColor); // player name color ID Writer.WriteVInt(9); Writer.WriteVInt(0); Writer.WriteVInt(2); Writer.WriteVInt(3); Writer.WriteVInt(5); Writer.WriteVInt(6); Writer.WriteVInt(7); Writer.WriteVInt(8); Writer.WriteVInt(9); Writer.WriteVInt(10); Writer.WriteVInt(3); Writer.WriteVInt(29); Writer.WriteVInt(14); Writer.WriteVInt(29); Writer.WriteVInt(Resources.Skin); Writer.WriteVInt(29); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteBoolean(false); // "token limit reached message" if value is 1 Writer.WriteVInt(1); Writer.WriteVInt(1); Writer.WriteVInt(0); Writer.WriteVInt(248791); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(200); Writer.WriteVInt(200); Writer.WriteVInt(5); Writer.WriteVInt(93); Writer.WriteVInt(206); Writer.WriteVInt(456); Writer.WriteVInt(1001); Writer.WriteVInt(2264); Writer.WriteVInt(8); Writer.WriteVInt(2); Writer.WriteVInt(2); Writer.WriteVInt(2); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(200); //tokens in menu Writer.WriteVInt(1140); Writer.WriteBoolean(true); // tickets enabled Writer.WriteVInt(0); Writer.WriteVInt(Resources.Tickets); // tickets number Writer.WriteVInt(-21); Writer.WriteVInt(16); Writer.WriteVInt(Resources.Brawler); Writer.WriteScString(Resources.Region); Writer.WriteVInt(-1); Writer.WriteVInt(-133169153); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(2019053); Writer.WriteVInt(100); Writer.WriteVInt(10); Writer.WriteVInt(30); // shop big box price Writer.WriteVInt(3); Writer.WriteVInt(80); // shop mega box price Writer.WriteVInt(10); Writer.WriteVInt(50); // shop token doubler price Writer.WriteVInt(1000); // shop token doubler amount Writer.WriteVInt(500); Writer.WriteVInt(50); Writer.WriteVInt(999900); Writer.WriteVInt(6); Writer.WriteVInt(0); Writer.WriteVInt(30); Writer.WriteVInt(80); Writer.WriteVInt(170); Writer.WriteVInt(350); Writer.WriteVInt(0); Writer.WriteVInt(15); Writer.WriteVInt(1); Writer.WriteVInt(2); Writer.WriteVInt(3); Writer.WriteVInt(4); Writer.WriteVInt(5); Writer.WriteVInt(6); Writer.WriteVInt(7); Writer.WriteVInt(8); Writer.WriteVInt(9); Writer.WriteVInt(10); Writer.WriteVInt(20); Writer.WriteVInt(21); Writer.WriteVInt(22); Writer.WriteVInt(23); Writer.WriteVInt(24); Writer.WriteVInt(9); // slots count Writer.WriteVInt(-133000102); // map slot starts here (i think) Writer.WriteVInt(1); Writer.WriteVInt(0); Writer.WriteVInt(75992); Writer.WriteVInt(10); Writer.WriteVInt(15); Writer.WriteVInt(7); // game mode slot map id Writer.WriteVInt(3); //0 or 1 = new event, 2 = Star Token, 3 = Default Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); // // map slot ends here Writer.WriteVInt(-133000102); Writer.WriteVInt(2); Writer.WriteVInt(0); Writer.WriteVInt(75992); Writer.WriteVInt(10); Writer.WriteVInt(15); Writer.WriteVInt(32); //Showdown Solo Writer.WriteVInt(3); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-133000102); Writer.WriteVInt(3); Writer.WriteVInt(0); Writer.WriteVInt(75992); Writer.WriteVInt(10); Writer.WriteVInt(15); Writer.WriteVInt(17); Writer.WriteVInt(3); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-133000102); Writer.WriteVInt(4); Writer.WriteVInt(0); Writer.WriteVInt(75992); Writer.WriteVInt(10); Writer.WriteVInt(15); Writer.WriteVInt(0); Writer.WriteVInt(3); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-133000102); Writer.WriteVInt(5); Writer.WriteVInt(0); Writer.WriteVInt(75992); Writer.WriteVInt(10); Writer.WriteVInt(15); Writer.WriteVInt(38); //Showdown Duo Writer.WriteVInt(3); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-133000102); Writer.WriteVInt(6); Writer.WriteVInt(0); Writer.WriteVInt(75992); Writer.WriteVInt(10); Writer.WriteVInt(15); Writer.WriteVInt(24); Writer.WriteVInt(3); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-133000102); Writer.WriteVInt(7); Writer.WriteVInt(0); Writer.WriteVInt(75992); Writer.WriteVInt(10); Writer.WriteVInt(15); Writer.WriteVInt(202); Writer.WriteVInt(3); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-133000102); Writer.WriteVInt(8); Writer.WriteVInt(0); Writer.WriteVInt(75992); Writer.WriteVInt(10); Writer.WriteVInt(15); Writer.WriteVInt(97); Writer.WriteVInt(3); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-133000102); Writer.WriteVInt(9); Writer.WriteVInt(0); Writer.WriteVInt(75992); Writer.WriteVInt(10); Writer.WriteVInt(15); Writer.WriteVInt(167); Writer.WriteVInt(3); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(3); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(8); Writer.WriteVInt(20); Writer.WriteVInt(35); Writer.WriteVInt(75); Writer.WriteVInt(140); Writer.WriteVInt(290); Writer.WriteVInt(480); Writer.WriteVInt(800); Writer.WriteVInt(1250); Writer.WriteVInt(8); Writer.WriteVInt(1); Writer.WriteVInt(2); Writer.WriteVInt(3); Writer.WriteVInt(4); Writer.WriteVInt(5); Writer.WriteVInt(10); Writer.WriteVInt(15); Writer.WriteVInt(20); Writer.WriteVInt(3); Writer.WriteVInt(10); Writer.WriteVInt(30); Writer.WriteVInt(80); Writer.WriteVInt(3); Writer.WriteVInt(6); Writer.WriteVInt(20); Writer.WriteVInt(60); Writer.WriteVInt(4); Writer.WriteVInt(20); // first coin pack price Writer.WriteVInt(50); // second coin pack price Writer.WriteVInt(140); // third coin pack price Writer.WriteVInt(280); // fourth coin pack price Writer.WriteVInt(4); Writer.WriteVInt(150); // first coin pack amount Writer.WriteVInt(400); // second coin pack amount Writer.WriteVInt(1200); // third coin pack amount Writer.WriteVInt(2600); // fourth coin pack amount Writer.WriteVInt(2); Writer.WriteVInt(200); Writer.WriteVInt(20); Writer.WriteVInt(8640); Writer.WriteVInt(10); Writer.WriteVInt(5); Writer.WriteVInt(6); Writer.WriteVInt(50); Writer.WriteVInt(604800); Writer.WriteVInt(1); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(14); Writer.WriteVInt(0); Writer.WriteVInt(3193); Writer.WriteVInt(-8); Writer.WriteInt(0); Writer.WriteInt(1); //Low Id Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteScString(Resources.Name); Writer.WriteBoolean(true); // enter name skipped Writer.WriteScString(null); Writer.WriteScString(null); Writer.WriteVInt(8); Writer.WriteVInt(39); Writer.WriteScId(23, 0); Writer.WriteVInt(1); Writer.WriteScId(23, 4); Writer.WriteVInt(1); Writer.WriteScId(23, 8); Writer.WriteVInt(1); Writer.WriteScId(23, 12); Writer.WriteVInt(1); Writer.WriteScId(23, 16); Writer.WriteVInt(1); Writer.WriteScId(23, 20); Writer.WriteVInt(1); Writer.WriteScId(23, 24); Writer.WriteVInt(1); Writer.WriteScId(23, 28); Writer.WriteVInt(1); Writer.WriteScId(23, 32); Writer.WriteVInt(1); Writer.WriteScId(23, 36); Writer.WriteVInt(1); Writer.WriteScId(23, 40); Writer.WriteVInt(1); Writer.WriteScId(23, 44); Writer.WriteVInt(1); Writer.WriteScId(23, 48); Writer.WriteVInt(1); Writer.WriteScId(23, 52); Writer.WriteVInt(1); Writer.WriteScId(23, 56); Writer.WriteVInt(1); Writer.WriteScId(23, 60); Writer.WriteVInt(1); Writer.WriteScId(23, 64); Writer.WriteVInt(1); Writer.WriteScId(23, 68); Writer.WriteVInt(1); Writer.WriteScId(23, 72); Writer.WriteVInt(1); Writer.WriteScId(23, 95); Writer.WriteVInt(1); Writer.WriteScId(23, 100); Writer.WriteVInt(1); Writer.WriteScId(23, 105); Writer.WriteVInt(1); Writer.WriteScId(23, 110); Writer.WriteVInt(1); Writer.WriteScId(23, 115); Writer.WriteVInt(1); Writer.WriteScId(23, 120); Writer.WriteVInt(1); Writer.WriteScId(23, 125); Writer.WriteVInt(1); Writer.WriteScId(23, 130); Writer.WriteVInt(1); Writer.WriteScId(23, 177); Writer.WriteVInt(1); Writer.WriteScId(23, 182); Writer.WriteVInt(1); Writer.WriteScId(23, 188); Writer.WriteVInt(1); Writer.WriteScId(23, 194); Writer.WriteVInt(1); Writer.WriteScId(23, 200); Writer.WriteVInt(1); Writer.WriteScId(23, 206); Writer.WriteVInt(1); Writer.WriteScId(23, 218); Writer.WriteVInt(1); Writer.WriteScId(23, 236); Writer.WriteVInt(1); Writer.WriteScId(5, 1); Writer.WriteVInt(99999); // brawl box tokens (100 tokens = 1 brawl box) Writer.WriteScId(5, 8); Writer.WriteVInt(Resources.Gold); // gold Writer.WriteScId(5, 9); Writer.WriteVInt(99999); // big box tokens (10 tokens = 1 big box) Writer.WriteScId(5, 10); Writer.WriteVInt(99999); // star tokens Writer.WriteVInt(35); // brawlers count Writer.WriteScId(16, 0); Writer.WriteVInt(99999); // shelly trophies Writer.WriteScId(16, 1); Writer.WriteVInt(99999); // colt trophies Writer.WriteScId(16, 2); Writer.WriteVInt(99999); // bull trophies Writer.WriteScId(16, 3); Writer.WriteVInt(99999); // brock trophies Writer.WriteScId(16, 4); Writer.WriteVInt(99999); // rico trophies Writer.WriteScId(16, 5); Writer.WriteVInt(99999); // spike trophies Writer.WriteScId(16, 6); Writer.WriteVInt(99999); // barley trophies Writer.WriteScId(16, 7); Writer.WriteVInt(99999); // jessie trophies Writer.WriteScId(16, 8); Writer.WriteVInt(99999); // nita trophies Writer.WriteScId(16, 9); Writer.WriteVInt(99999); // dynamike trophies Writer.WriteScId(16, 10); Writer.WriteVInt(99999); // primo trophies Writer.WriteScId(16, 11); Writer.WriteVInt(99999); // mortis trophies Writer.WriteScId(16, 12); Writer.WriteVInt(99999); // crow trophies Writer.WriteScId(16, 13); Writer.WriteVInt(99999); // poco trophies Writer.WriteScId(16, 14); Writer.WriteVInt(99999); // bo trophies Writer.WriteScId(16, 15); Writer.WriteVInt(99999); // piper trophies Writer.WriteScId(16, 16); Writer.WriteVInt(99999); // pam trophies Writer.WriteScId(16, 17); Writer.WriteVInt(99999); // tara trophies Writer.WriteScId(16, 18); Writer.WriteVInt(99999); // darryl trophies Writer.WriteScId(16, 19); Writer.WriteVInt(99999); // penny trophies Writer.WriteScId(16, 20); Writer.WriteVInt(99999); // frank trophies Writer.WriteScId(16, 21); Writer.WriteVInt(99999); // gene trophies Writer.WriteScId(16, 22); Writer.WriteVInt(99999); // tick trophies Writer.WriteScId(16, 23); Writer.WriteVInt(99999); // leon trophies Writer.WriteScId(16, 24); Writer.WriteVInt(99999); // rosa trophies Writer.WriteScId(16, 25); Writer.WriteVInt(99999); // carl trophies Writer.WriteScId(16, 26); Writer.WriteVInt(99999); // bibi trophies Writer.WriteScId(16, 27); Writer.WriteVInt(99999); // 8bit trophies Writer.WriteScId(16, 28); Writer.WriteVInt(99999); // sandy trophies Writer.WriteScId(16, 29); Writer.WriteVInt(99999); // bea trophies Writer.WriteScId(16, 30); Writer.WriteVInt(99999); // emz trophies Writer.WriteScId(16, 31); Writer.WriteVInt(99999); // mr p trophies Writer.WriteScId(16, 32); Writer.WriteVInt(99999); // max trophies Writer.WriteScId(16, 34); Writer.WriteVInt(99999); // jacky trophies Writer.WriteScId(16, 37); Writer.WriteVInt(99999); // sprout trophies Writer.WriteVInt(35); // brawlers count Writer.WriteScId(16, 0); Writer.WriteVInt(99999); // shelly trophies for rank Writer.WriteScId(16, 1); Writer.WriteVInt(99999); // colt trophies for rank Writer.WriteScId(16, 2); Writer.WriteVInt(99999); // bull trophies for rank Writer.WriteScId(16, 3); Writer.WriteVInt(99999); // brock trophies for rank Writer.WriteScId(16, 4); Writer.WriteVInt(99999); // rico trophies for rank Writer.WriteScId(16, 5); Writer.WriteVInt(99999); // spike trophies for rank Writer.WriteScId(16, 6); Writer.WriteVInt(99999); // barley trophies for rank Writer.WriteScId(16, 7); Writer.WriteVInt(99999); // jessie trophies for rank Writer.WriteScId(16, 8); Writer.WriteVInt(99999); // nita trophies for rank Writer.WriteScId(16, 9); Writer.WriteVInt(99999); // dynamike trophies for rank Writer.WriteScId(16, 10); Writer.WriteVInt(99999); // primo trophies for rank Writer.WriteScId(16, 11); Writer.WriteVInt(99999); // mortis trophies for rank Writer.WriteScId(16, 12); Writer.WriteVInt(99999); // crow trophies for rank Writer.WriteScId(16, 13); Writer.WriteVInt(99999); // poco trophies for rank Writer.WriteScId(16, 14); Writer.WriteVInt(99999); // bo trophies for rank Writer.WriteScId(16, 15); Writer.WriteVInt(99999); // piper trophies for rank Writer.WriteScId(16, 16); Writer.WriteVInt(99999); // pam trophies for rank Writer.WriteScId(16, 17); Writer.WriteVInt(99999); // tara trophies for rank Writer.WriteScId(16, 18); Writer.WriteVInt(99999); // darryl trophies for rank Writer.WriteScId(16, 19); Writer.WriteVInt(99999); // penny trophies for rank Writer.WriteScId(16, 20); Writer.WriteVInt(99999); // frank trophies for rank Writer.WriteScId(16, 21); Writer.WriteVInt(99999); // gene trophies for rank Writer.WriteScId(16, 22); Writer.WriteVInt(99999); // tick trophies for rank Writer.WriteScId(16, 23); Writer.WriteVInt(99999); // leon trophies for rank Writer.WriteScId(16, 24); Writer.WriteVInt(99999); // rosa trophies for rank Writer.WriteScId(16, 25); Writer.WriteVInt(99999); // carl trophies for rank Writer.WriteScId(16, 26); Writer.WriteVInt(99999); // bibi trophies for rank Writer.WriteScId(16, 27); Writer.WriteVInt(99999); // 8bit trophies for rank Writer.WriteScId(16, 28); Writer.WriteVInt(99999); // sandy trophies for rank Writer.WriteScId(16, 29); Writer.WriteVInt(99999); // bea trophies for rank Writer.WriteScId(16, 30); Writer.WriteVInt(99999); // emz trophies for rank Writer.WriteScId(16, 31); Writer.WriteVInt(99999); // mr p trophies for rank Writer.WriteScId(16, 32); Writer.WriteVInt(99999); // max trophies for rank Writer.WriteScId(16, 34); Writer.WriteVInt(99999); // jacky trophies for rank Writer.WriteScId(16, 37); Writer.WriteVInt(99999); // sprout trophies for rank Writer.WriteVInt(0); Writer.WriteVInt(35); // brawlers count Writer.WriteScId(16, 0); Writer.WriteVInt(1440); // hmm what could this be? Writer.WriteScId(16, 1); Writer.WriteVInt(1440); Writer.WriteScId(16, 2); Writer.WriteVInt(1440); Writer.WriteScId(16, 3); Writer.WriteVInt(1440); Writer.WriteScId(16, 4); Writer.WriteVInt(1440); Writer.WriteScId(16, 5); Writer.WriteVInt(1440); Writer.WriteScId(16, 6); Writer.WriteVInt(1440); Writer.WriteScId(16, 7); Writer.WriteVInt(1440); Writer.WriteScId(16, 8); Writer.WriteVInt(1440); Writer.WriteScId(16, 9); Writer.WriteVInt(1440); Writer.WriteScId(16, 10); Writer.WriteVInt(1440); Writer.WriteScId(16, 11); Writer.WriteVInt(1440); Writer.WriteScId(16, 12); Writer.WriteVInt(1440); Writer.WriteScId(16, 13); Writer.WriteVInt(1440); Writer.WriteScId(16, 14); Writer.WriteVInt(1440); Writer.WriteScId(16, 15); Writer.WriteVInt(1440); Writer.WriteScId(16, 16); Writer.WriteVInt(1440); Writer.WriteScId(16, 17); Writer.WriteVInt(1440); Writer.WriteScId(16, 18); Writer.WriteVInt(1440); Writer.WriteScId(16, 19); Writer.WriteVInt(1440); Writer.WriteScId(16, 20); Writer.WriteVInt(1440); Writer.WriteScId(16, 21); Writer.WriteVInt(1440); Writer.WriteScId(16, 22); Writer.WriteVInt(1440); Writer.WriteScId(16, 23); Writer.WriteVInt(1440); Writer.WriteScId(16, 24); Writer.WriteVInt(1440); Writer.WriteScId(16, 25); Writer.WriteVInt(1440); Writer.WriteScId(16, 26); Writer.WriteVInt(1440); Writer.WriteScId(16, 27); Writer.WriteVInt(1440); Writer.WriteScId(16, 28); Writer.WriteVInt(1440); Writer.WriteScId(16, 29); Writer.WriteVInt(1440); Writer.WriteScId(16, 30); Writer.WriteVInt(1440); Writer.WriteScId(16, 31); Writer.WriteVInt(1440); Writer.WriteScId(16, 32); Writer.WriteVInt(1440); Writer.WriteScId(16, 34); Writer.WriteVInt(1440); Writer.WriteScId(16, 37); Writer.WriteVInt(1440); Writer.WriteVInt(35); // brawlers count Writer.WriteScId(16, 0); Writer.WriteVInt(8); // shelly power level (value shows in game +1, so value 8 = power 9) Writer.WriteScId(16, 1); Writer.WriteVInt(8); // colt power level Writer.WriteScId(16, 2); Writer.WriteVInt(8); // bull power level Writer.WriteScId(16, 3); Writer.WriteVInt(8); // brock power level Writer.WriteScId(16, 4); Writer.WriteVInt(8); // rico power level Writer.WriteScId(16, 5); Writer.WriteVInt(8); // spike power level Writer.WriteScId(16, 6); Writer.WriteVInt(8); // barley power level Writer.WriteScId(16, 7); Writer.WriteVInt(8); // jessie power level Writer.WriteScId(16, 8); Writer.WriteVInt(8); // nita power level Writer.WriteScId(16, 9); Writer.WriteVInt(8); // dynamike power level Writer.WriteScId(16, 10); Writer.WriteVInt(8); // primo power level Writer.WriteScId(16, 11); Writer.WriteVInt(8); // mortis power level Writer.WriteScId(16, 12); Writer.WriteVInt(8); // crow power level Writer.WriteScId(16, 13); Writer.WriteVInt(8); // poco power level Writer.WriteScId(16, 14); Writer.WriteVInt(8); // bo power level Writer.WriteScId(16, 15); Writer.WriteVInt(8); // piper power level Writer.WriteScId(16, 16); Writer.WriteVInt(8); // pam power level Writer.WriteScId(16, 17); Writer.WriteVInt(8); // tara power level Writer.WriteScId(16, 18); Writer.WriteVInt(8); // darryl power level Writer.WriteScId(16, 19); Writer.WriteVInt(8); // peny power level Writer.WriteScId(16, 20); Writer.WriteVInt(8); // frank power level Writer.WriteScId(16, 21); Writer.WriteVInt(8); // gene power level Writer.WriteScId(16, 22); Writer.WriteVInt(8); // tick power level Writer.WriteScId(16, 23); Writer.WriteVInt(8); // leon power level Writer.WriteScId(16, 24); Writer.WriteVInt(8); // rosa power level Writer.WriteScId(16, 25); Writer.WriteVInt(8); // carl power level Writer.WriteScId(16, 26); Writer.WriteVInt(8); // bibi power level Writer.WriteScId(16, 27); Writer.WriteVInt(8); // 8bit power level Writer.WriteScId(16, 28); Writer.WriteVInt(8); // sandy power level Writer.WriteScId(16, 29); Writer.WriteVInt(8); // bea power level Writer.WriteScId(16, 30); Writer.WriteVInt(8); // emz power level Writer.WriteScId(16, 31); Writer.WriteVInt(8); // mr p power level Writer.WriteScId(16, 32); Writer.WriteVInt(8); // max power level Writer.WriteScId(16, 34); Writer.WriteVInt(8); // jacky power level Writer.WriteScId(16, 37); Writer.WriteVInt(8); // sprout power level Writer.WriteVInt(119); //gadgets and star powers Writer.WriteVInt(23); Writer.WriteVInt(76); Writer.WriteScId(1, 23); Writer.WriteVInt(77); Writer.WriteScId(1, 23); Writer.WriteVInt(78); Writer.WriteScId(1, 23); Writer.WriteVInt(79); Writer.WriteScId(1, 23); Writer.WriteVInt(80); Writer.WriteScId(1, 23); Writer.WriteVInt(81); Writer.WriteScId(1, 23); Writer.WriteVInt(82); Writer.WriteScId(1, 23); Writer.WriteVInt(83); Writer.WriteScId(1, 23); Writer.WriteVInt(84); Writer.WriteScId(1, 23); Writer.WriteVInt(85); Writer.WriteScId(1, 23); Writer.WriteVInt(86); Writer.WriteScId(1, 23); Writer.WriteVInt(87); Writer.WriteScId(1, 23); Writer.WriteVInt(88); Writer.WriteScId(1, 23); Writer.WriteVInt(89); Writer.WriteScId(1, 23); Writer.WriteVInt(90); Writer.WriteScId(1, 23); Writer.WriteVInt(91); Writer.WriteScId(1, 23); Writer.WriteVInt(92); Writer.WriteScId(1, 23); Writer.WriteVInt(93); Writer.WriteScId(1, 23); Writer.WriteVInt(94); Writer.WriteScId(1, 23); Writer.WriteVInt(99); Writer.WriteScId(1, 23); Writer.WriteVInt(104); Writer.WriteScId(1, 23); Writer.WriteVInt(109); Writer.WriteScId(1, 23); Writer.WriteVInt(114); Writer.WriteScId(1, 23); Writer.WriteVInt(119); Writer.WriteScId(1, 23); Writer.WriteVInt(124); Writer.WriteScId(1, 23); Writer.WriteVInt(129); Writer.WriteScId(1, 23); Writer.WriteVInt(134); Writer.WriteScId(1, 23); Writer.WriteVInt(135); Writer.WriteScId(1, 23); Writer.WriteVInt(136); Writer.WriteScId(1, 23); Writer.WriteVInt(137); Writer.WriteScId(1, 23); Writer.WriteVInt(138); Writer.WriteScId(1, 23); Writer.WriteVInt(139); Writer.WriteScId(1, 23); Writer.WriteVInt(140); Writer.WriteScId(1, 23); Writer.WriteVInt(141); Writer.WriteScId(1, 23); Writer.WriteVInt(142); Writer.WriteScId(1, 23); Writer.WriteVInt(143); Writer.WriteScId(1, 23); Writer.WriteVInt(144); Writer.WriteScId(1, 23); Writer.WriteVInt(145); Writer.WriteScId(1, 23); Writer.WriteVInt(146); Writer.WriteScId(1, 23); Writer.WriteVInt(147); Writer.WriteScId(1, 23); Writer.WriteVInt(148); Writer.WriteScId(1, 23); Writer.WriteVInt(149); Writer.WriteScId(1, 23); Writer.WriteVInt(150); Writer.WriteScId(1, 23); Writer.WriteVInt(151); Writer.WriteScId(1, 23); Writer.WriteVInt(152); Writer.WriteScId(1, 23); Writer.WriteVInt(153); Writer.WriteScId(1, 23); Writer.WriteVInt(154); Writer.WriteScId(1, 23); Writer.WriteVInt(155); Writer.WriteScId(1, 23); Writer.WriteVInt(156); Writer.WriteScId(1, 23); Writer.WriteVInt(157); Writer.WriteScId(1, 23); Writer.WriteVInt(158); Writer.WriteScId(1, 23); Writer.WriteVInt(159); Writer.WriteScId(1, 23); Writer.WriteVInt(160); Writer.WriteScId(1, 23); Writer.WriteVInt(161); Writer.WriteScId(1, 23); Writer.WriteVInt(162); Writer.WriteScId(1, 23); Writer.WriteVInt(163); Writer.WriteScId(1, 23); Writer.WriteVInt(164); Writer.WriteScId(1, 23); Writer.WriteVInt(165); Writer.WriteScId(1, 23); Writer.WriteVInt(166); Writer.WriteScId(1, 23); Writer.WriteVInt(167); Writer.WriteScId(1, 23); Writer.WriteVInt(168); Writer.WriteScId(1, 23); Writer.WriteVInt(169); Writer.WriteScId(1, 23); Writer.WriteVInt(170); Writer.WriteScId(1, 23); Writer.WriteVInt(172); Writer.WriteScId(1, 23); Writer.WriteVInt(174); Writer.WriteScId(1, 23); Writer.WriteVInt(175); Writer.WriteScId(1, 23); Writer.WriteVInt(176); Writer.WriteScId(1, 23); Writer.WriteVInt(181); Writer.WriteScId(1, 23); Writer.WriteVInt(186); Writer.WriteScId(1, 23); Writer.WriteVInt(187); Writer.WriteScId(1, 23); Writer.WriteVInt(192); Writer.WriteScId(1, 23); Writer.WriteVInt(193); Writer.WriteScId(1, 23); Writer.WriteVInt(198); Writer.WriteScId(1, 23); Writer.WriteVInt(199); Writer.WriteScId(1, 23); Writer.WriteVInt(204); Writer.WriteScId(1, 23); Writer.WriteVInt(205); Writer.WriteScId(1, 23); Writer.WriteVInt(210); Writer.WriteScId(1, 23); Writer.WriteVInt(211); Writer.WriteScId(1, 23); Writer.WriteVInt(216); Writer.WriteScId(1, 23); Writer.WriteVInt(217); Writer.WriteScId(1, 23); Writer.WriteVInt(222); Writer.WriteScId(1, 23); Writer.WriteVInt(223); Writer.WriteScId(1, 23); Writer.WriteVInt(240); Writer.WriteScId(1, 23); Writer.WriteVInt(241); Writer.WriteScId(1, 23); Writer.WriteVInt(242); Writer.WriteScId(1, 23); Writer.WriteVInt(243); Writer.WriteScId(1, 23); Writer.WriteVInt(244); Writer.WriteScId(1, 23); Writer.WriteVInt(245); Writer.WriteScId(1, 23); Writer.WriteVInt(246); Writer.WriteScId(1, 23); Writer.WriteVInt(247); Writer.WriteScId(1, 23); Writer.WriteVInt(248); Writer.WriteScId(1, 23); Writer.WriteVInt(249); Writer.WriteScId(1, 23); Writer.WriteVInt(250); Writer.WriteScId(1, 23); Writer.WriteVInt(251); Writer.WriteScId(1, 23); Writer.WriteVInt(252); Writer.WriteScId(1, 23); Writer.WriteVInt(253); Writer.WriteScId(1, 23); Writer.WriteVInt(254); Writer.WriteScId(1, 23); Writer.WriteVInt(255); Writer.WriteScId(1, 23); Writer.WriteVInt(256); Writer.WriteScId(1, 23); Writer.WriteVInt(257); Writer.WriteScId(1, 23); Writer.WriteVInt(258); Writer.WriteScId(1, 23); Writer.WriteVInt(259); Writer.WriteScId(1, 23); Writer.WriteVInt(260); Writer.WriteScId(1, 23); Writer.WriteVInt(261); Writer.WriteScId(1, 23); Writer.WriteVInt(262); Writer.WriteScId(1, 23); Writer.WriteVInt(263); Writer.WriteScId(1, 23); Writer.WriteVInt(264); Writer.WriteScId(1, 23); Writer.WriteVInt(265); Writer.WriteScId(1, 23); Writer.WriteVInt(266); Writer.WriteScId(1, 23); Writer.WriteVInt(267); Writer.WriteScId(1, 23); Writer.WriteVInt(268); Writer.WriteScId(1, 23); Writer.WriteVInt(269); Writer.WriteScId(1, 23); Writer.WriteVInt(270); Writer.WriteScId(1, 23); Writer.WriteVInt(271); Writer.WriteScId(1, 23); Writer.WriteVInt(272); Writer.WriteScId(1, 23); Writer.WriteVInt(273); Writer.WriteScId(1, 23); Writer.WriteVInt(274); Writer.WriteScId(1, 23); Writer.WriteVInt(275); Writer.WriteScId(1, 23); Writer.WriteVInt(276); Writer.WriteVInt(1); Writer.WriteVInt(35); // brawlers count Writer.WriteScId(16, 0); Writer.WriteVInt(2); // shelly "new" tag (value shows in game +1, so value 2 = power 9) Writer.WriteScId(16, 1); Writer.WriteVInt(2); // colt "new" tag Writer.WriteScId(16, 2); Writer.WriteVInt(2); // bull "new" tag Writer.WriteScId(16, 3); Writer.WriteVInt(2); // brock "new" tag Writer.WriteScId(16, 4); Writer.WriteVInt(2); // rico "new" tag Writer.WriteScId(16, 5); Writer.WriteVInt(2); // spike "new" tag Writer.WriteScId(16, 6); Writer.WriteVInt(2); // barley "new" tag Writer.WriteScId(16, 0); Writer.WriteVInt(2); // jessie "new" tag Writer.WriteScId(16, 8); Writer.WriteVInt(2); // nita "new" tag Writer.WriteScId(16, 9); Writer.WriteVInt(2); // dynamike "new" tag Writer.WriteScId(16, 10); Writer.WriteVInt(2); // primo "new" tag Writer.WriteScId(16, 11); Writer.WriteVInt(2); // mortis "new" tag Writer.WriteScId(16, 12); Writer.WriteVInt(2); // crow "new" tag Writer.WriteScId(16, 13); Writer.WriteVInt(2); // poco "new" tag Writer.WriteScId(16, 14); Writer.WriteVInt(2); // bo "new" tag Writer.WriteScId(16, 15); Writer.WriteVInt(2); // piper "new" tag Writer.WriteScId(16, 16); Writer.WriteVInt(2); // pam "new" tag Writer.WriteScId(16, 17); Writer.WriteVInt(2); // tara "new" tag Writer.WriteScId(16, 18); Writer.WriteVInt(2); // darryl "new" tag Writer.WriteScId(16, 19); Writer.WriteVInt(2); // peny "new" tag Writer.WriteScId(16, 20); Writer.WriteVInt(2); // frank "new" tag Writer.WriteScId(16, 21); Writer.WriteVInt(2); // gene "new" tag Writer.WriteScId(16, 22); Writer.WriteVInt(2); // tick "new" tag Writer.WriteScId(16, 23); Writer.WriteVInt(2); // leon "new" tag Writer.WriteScId(16, 24); Writer.WriteVInt(2); // rosa "new" tag Writer.WriteScId(16, 25); Writer.WriteVInt(2); // carl "new" tag Writer.WriteScId(16, 26); Writer.WriteVInt(2); // bibi "new" tag Writer.WriteScId(16, 27); Writer.WriteVInt(2); // 8bit "new" tag Writer.WriteScId(16, 28); Writer.WriteVInt(2); // sandy "new" tag Writer.WriteScId(16, 29); Writer.WriteVInt(2); // bea "new" tag Writer.WriteScId(16, 30); Writer.WriteVInt(2); // emz "new" tag Writer.WriteScId(16, 31); Writer.WriteVInt(2); // mr p "new" tag Writer.WriteScId(16, 32); Writer.WriteVInt(2); // max "new" tag Writer.WriteScId(16, 34); Writer.WriteVInt(2); // jacky "new" tag Writer.WriteScId(16, 37); Writer.WriteVInt(2); Writer.WriteVInt(Resources.Gems); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(100); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(2); Writer.WriteVInt(1550832808); Writer.WriteVInt(-1040385); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Server/Home/ProfileServerMessage.cs ================================================ using System; using BrawlStars.Logic; using BrawlStars.Utilities.Netty; namespace BrawlStars.Protocol.Messages.Server { public class ProfileServerMessage : PiranhaMessage { public ProfileServerMessage(Device device) : base(device) { Id = 24113; } public override void Encode() { Writer.WriteVInt(0); //High Id Writer.WriteVInt(1); //Low Id Writer.WriteVInt(0); Writer.WriteVInt(7); Writer.WriteVInt(16); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(2); Writer.WriteVInt(16); Writer.WriteVInt(1); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(2); Writer.WriteVInt(16); Writer.WriteVInt(9); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(2); Writer.WriteVInt(16); Writer.WriteVInt(22); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(2); Writer.WriteVInt(16); Writer.WriteVInt(14); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(2); Writer.WriteVInt(16); Writer.WriteVInt(7); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(2); Writer.WriteVInt(16); Writer.WriteVInt(8); Writer.WriteVInt(0); Writer.WriteVInt(99999); Writer.WriteVInt(99999); Writer.WriteVInt(2); Writer.WriteVInt(14); Writer.WriteVInt(1); Writer.WriteVInt(99999); //3v3 victories Writer.WriteVInt(2); Writer.WriteVInt(1262469); //exp Writer.WriteVInt(3); Writer.WriteVInt(99999); Writer.WriteVInt(4); Writer.WriteVInt(Resources.Trophies); //highest trophies Writer.WriteVInt(5); Writer.WriteVInt(7); Writer.WriteVInt(7); Writer.WriteVInt(28000000); Writer.WriteVInt(8); Writer.WriteVInt(99999); //solo victories Writer.WriteVInt(9); Writer.WriteVInt(21); Writer.WriteVInt(10); Writer.WriteVInt(99999); Writer.WriteVInt(11); Writer.WriteVInt(99999); //duo victories Writer.WriteVInt(12); Writer.WriteVInt(21); Writer.WriteVInt(13); Writer.WriteVInt(99999); Writer.WriteVInt(14); Writer.WriteVInt(1); Writer.WriteVInt(15); Writer.WriteVInt(99999); //most challenge wins Writer.WriteScString(Resources.Name); Writer.WriteVInt(100); Writer.WriteVInt(28000000); Writer.WriteVInt(43000000); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-1040385); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Server/Home/SetNameServer.cs ================================================ using BrawlStars.Logic; using BrawlStars.Utilities.Netty; namespace BrawlStars.Protocol.Messages.Server.Home { class SetNameServer : PiranhaMessage { public SetNameServer(Device device) : base(device) { Id = 24111; } public override async void Encode() { Writer.WriteVInt(201); Writer.WriteScString(Resources.Name); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-1040385); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Server/Login/Copyright.cs ================================================ using BrawlStars.Logic; using BrawlStars.Utilities.Netty; using System.Text; namespace BrawlStars.Protocol.Messages.Server.Login { class Copyright : PiranhaMessage { public Copyright(Device device) : base(device) { Id = 9999; } public override void Encode() { Writer.WriteScString("Do not go there! It's dangerous there! Go away!\n"); Writer.WriteScString("(c) Mr Vitalik & PhoenixFire\n"); Writer.WriteScString("2020"); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Server/Login/KeepAliveOkMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Utilities.Netty; namespace BrawlStars.Protocol.Messages.Server { public class KeepAliveOkMessage : PiranhaMessage { public KeepAliveOkMessage(Device device) : base(device) { Id = 20108; } public override void Encode() { Writer.WriteHex("FFFF0000000000"); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Server/Login/LoginFailedMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Utilities.Netty; namespace BrawlStars.Protocol.Messages.Server { public class LoginFailedMessage : PiranhaMessage { public LoginFailedMessage(Device device) : base(device) { Id = 20103; Version = 4; } public byte ErrorCode { get; set; } public int SecondsUntilMaintenanceEnds { get; set; } public string Reason { get; set; } public string ResourceFingerprintData { get; set; } public string ContentUrl { get; set; } public string UpdateUrl { get; set; } // 1 = Custom Message // 7 = Patch // 8 = Update Available // 9 = Failed to Connect // 10 = Maintenance // 11 = Banned // 13 = Acc Locked PopUp // 16 = Updating Cr/Maintenance // 18 = Chinese Text? public override void Encode() { Writer.WriteInt(ErrorCode); // ErrorCode Writer.WriteScString(ResourceFingerprintData); Writer.WriteScString(null); Writer.WriteScString(ContentUrl); Writer.WriteScString(UpdateUrl); // Update URL Writer.WriteScString(Reason); Writer.WriteHex("2E0000012C000000000000000000"); Writer.WriteScString(null); Writer.WriteScString(null); Writer.WriteScString(null); Writer.WriteScString(null); Writer.WriteHex("00FFFF0000000000"); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Server/Login/LoginOkMessage.cs ================================================ using BrawlStars.Logic; using BrawlStars.Utilities.Netty; namespace BrawlStars.Protocol.Messages.Server { public class LoginOkMessage : PiranhaMessage { public LoginOkMessage(Device device) : base(device) { Id = 20104; Version = 1; } public override void Encode() { Writer.WriteLong(1); Writer.WriteLong(1); Writer.WriteScString("jcdyo6zcyjuo1dch9jkpc14meft4siwmfq7iktss"); Writer.WriteVInt(1); Writer.WriteVInt(-8165); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(1); Writer.WriteScString("prod"); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(2); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(44); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteScString("1589977040459"); Writer.WriteScString("1578395063000"); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteHex("ffffffff"); Writer.WriteScString("EN"); Writer.WriteHex("ffffffff"); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(1); Writer.WriteHex("ffffffff"); Writer.WriteScString("https://game-assets.brawlstarsgame.com"); Writer.WriteScString("http://a678dbc1c015a893c9fd-4e8cc3b1ad3a3c940c504815caefa967.r87.cf2.rackcdn.com"); Writer.WriteScString("https://event-assets.brawlstars.com"); Writer.WriteScString("https://24b999e6da07674e22b0-8209975788a0f2469e68e84405ae4fcf.ssl.cf2.rackcdn.com/event-assets"); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Server/RoomDisconnect.cs ================================================ using BrawlStars.Logic; using BrawlStars.Utilities.Netty; using System; namespace BrawlStars.Protocol.Messages.Server { class RoomDisconnect : PiranhaMessage { public RoomDisconnect(Device device) : base(device) { Id = 24125; } public override async void Encode() { Writer.WriteHex("00000000"); } } } ================================================ FILE: Source/BrawlStars/Protocol/Messages/Server/ServerBox.cs ================================================ using BrawlStars.Logic; using BrawlStars.Utilities.Netty; using Org.BouncyCastle.Asn1.X509.Qualified; using System; namespace BrawlStars.Protocol.Messages.Server { class ServerBox : PiranhaMessage { public ServerBox(Device device) : base(device) { Id = 24111; } private static int Gold { get; set; } private static int Gems { get; set; } public override void Encode() { int reward; Random rnd = new Random(); Writer.WriteVInt(203); Writer.WriteVInt(0); Writer.WriteVInt(1); Writer.WriteVInt(Resources.Box); switch (Resources.Box) { case 10: //BrawlBox Writer.WriteVInt(2); Gold = rnd.Next(1, 1001); Resources.Gold += Gold; Writer.WriteVInt(Gold); //gold Writer.WriteVInt(0); Writer.WriteVInt(7); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Gems = rnd.Next(1, 21); Writer.WriteVInt(Gems); //gems Writer.WriteVInt(1); Writer.WriteVInt(0); reward = rnd.Next(1,4); switch (reward) { case 1: Writer.WriteVInt(8); //bonus reward type (gems = 8, token doubler = 2, tickets = 3) Resources.Gems += Gems; break; case 2: Writer.WriteVInt(2); //bonus reward type (gems = 8, token doubler = 2, tickets = 3) Resources.Tickets += Gems; break; case 3: Writer.WriteVInt(3); //bonus reward type (gems = 8, token doubler = 2, tickets = 3) break; } Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-1040385); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); break; case 11: //MegaBox Writer.WriteVInt(2); Gold = rnd.Next(1, 5001); Resources.Gold += Gold; Writer.WriteVInt(Gold); //gold Writer.WriteVInt(0); Writer.WriteVInt(7); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Gems = rnd.Next(1, 101); Writer.WriteVInt(Gems); //gems Writer.WriteVInt(1); Writer.WriteVInt(0); reward = rnd.Next(1, 4); switch (reward) { case 1: Writer.WriteVInt(8); //bonus reward type (gems = 8, token doubler = 2, tickets = 3) Resources.Gems += Gems; break; case 2: Writer.WriteVInt(2); //bonus reward type (gems = 8, token doubler = 2, tickets = 3) Resources.Tickets += Gems; break; case 3: Writer.WriteVInt(3); //bonus reward type (gems = 8, token doubler = 2, tickets = 3) break; } Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-1040385); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); break; case 12: //BigBox Writer.WriteVInt(2); Gold = rnd.Next(1, 2501); Resources.Gold += Gold; Writer.WriteVInt(Gold); //gold Writer.WriteVInt(0); Writer.WriteVInt(7); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Gems = rnd.Next(1, 51); Writer.WriteVInt(Gems); //gems Writer.WriteVInt(1); Writer.WriteVInt(0); reward = rnd.Next(1, 4); switch (reward) { case 1: Writer.WriteVInt(8); //bonus reward type (gems = 8, token doubler = 2, tickets = 3) Resources.Gems += Gems; break; case 2: Writer.WriteVInt(2); //bonus reward type (gems = 8, token doubler = 2, tickets = 3) Resources.Tickets += Gems; break; case 3: Writer.WriteVInt(3); //bonus reward type (gems = 8, token doubler = 2, tickets = 3) break; } Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(-1040385); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); break; } /*Writer.WriteVInt(203); Writer.WriteVInt(0); Writer.WriteVInt(1); Writer.WriteVInt(Resources.Box); //box ID (10 = mega box, 11 = brawl box, 12 = big box) Writer.WriteVInt(1); Writer.WriteVInt(1); Writer.WriteVInt(16); Writer.WriteVInt(7); Writer.WriteVInt(1); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteVInt(0); Writer.WriteHex("0000000000ffff0000000000");*/ } } } ================================================ FILE: Source/BrawlStars/Protocol/PiranhaMessage.cs ================================================ using System; using System.Text; using System.Threading.Tasks; using BrawlStars.Logic; using DotNetty.Buffers; namespace BrawlStars.Protocol { public class PiranhaMessage { public Device.State RequiredState = Device.State.Home; public PiranhaMessage(Device device) { Device = device; Writer = Unpooled.Buffer(); } public PiranhaMessage(Device device, IByteBuffer buffer) { Device = device; Reader = buffer; } public IByteBuffer Writer { get; set; } public IByteBuffer Reader { get; set; } public Device Device { get; set; } public ushort Id { get; set; } public int Length { get; set; } public ushort Version { get; set; } public bool Save { get; set; } public virtual void Decode() { } public virtual void Encode() { } public virtual void Process() { } public void EncodeCryptoBytes() { Writer.WriteShort(-1); Writer.WriteByte(0); Writer.WriteInt(0); } /// /// Writes this message to the clients channel /// /// public async Task SendAsync() { try { await Device.Handler.Channel.WriteAndFlushAsync(this); Logger.Log($"[S] Message {Id} ({GetType().Name}) sent.", GetType(), Logger.ErrorLevel.Debug); } catch (Exception) { //Logger.Log($"Failed to send {Id}.", GetType(), Logger.ErrorLevel.Debug); } } public override string ToString() { Reader.SetReaderIndex(7); return ByteBufferUtil.HexDump(Reader.ReadBytes(Length)); } } } ================================================ FILE: Source/BrawlStars/Resources.cs ================================================ using System; using System.Threading.Tasks; using BrawlStars.Core; using BrawlStars.Core.Network; using BrawlStars.Database; using BrawlStars.Database.Cache; using BrawlStars.Files; using BrawlStars.Utilities.Utils; namespace BrawlStars { public static class Resources { public static Logger Logger { get; set; } public static Configuration Configuration { get; set; } public static PlayerDb PlayerDb { get; set; } //public static AllianceDb AllianceDb { get; set; } public static ObjectCache ObjectCache { get; set; } //public static Leaderboard Leaderboard { get; set; } public static NettyService Netty { get; set; } public static Fingerprint Fingerprint { get; set; } public static Csv Csv { get; set; } public static Players Players { get; set; } //public static Alliances Alliances { get; set; } public static DateTime StartTime { get; set; } public static string Name { get; set; } public static string Region { get; set; } public static int RoomID { get; set; } public static int Map { get; set; } public static int Brawler { get; set; } public static int Room { get; set; } public static int Trophies { get; set; } public static int Skin { get; set; } public static int SkinId { get; set; } public static int Box { get; set; } public static int Gold { get; set; } public static int Gems { get; set; } public static int ProfileIcon { get; set; } public static int NameColor { get; set; } public static int MessageTick { get; set; } public static string ChatMessage { get; set; } public static int Tickets { get; set; } public static int StarPower { get; set; } public static int Gadget { get; set; } public static bool UseGadget { get; set; } public static async void Initialize() { Logger = new Logger(); Logger.Log( $"Starting [{DateTime.Now.ToLongTimeString()} - {ServerUtils.GetOsName()}]...", null); Configuration = new Configuration(); Configuration.Initialize(); Fingerprint = new Fingerprint(); //Levels = new Levels(); Csv = new Csv(); //PlayerDb = new PlayerDb(); //AllianceDb = new AllianceDb(); /*for (int i = 0; i <= await PlayerDb.CountAsync() + 1; i++) { await PlayerDb.DeleteAsync(i); }*/ //PlayerDb = new PlayerDb(); /*Logger.Log( $"Successfully loaded MySql with {await PlayerDb.CountAsync()} player(s)", null);*/ ObjectCache = new ObjectCache(); //Players = new Players(); //Alliances = new Alliances(); //Leaderboard = new Leaderboard(); StartTime = DateTime.UtcNow; Netty = new NettyService(); if (Configuration.Name == "") { Logger.Log("The name must not be empty.", null, Logger.ErrorLevel.Warning); Program.Shutdown(); } else { Name = Configuration.Name; } Map = 7; Brawler = 0; Room = 0; Trophies = Configuration.Trophies; Skin = 0; Region = Configuration.Region; RoomID = 0; Box = 3; Tickets = 99999; Gold = 99999; Gems = 99999; Skin = 0; ProfileIcon = 0; NameColor = 0; ChatMessage = string.Empty; MessageTick = 0; StarPower = 76; Gadget = 255; UseGadget = true; await Task.Run(Netty.RunServerAsync); } } } ================================================ FILE: Source/BrawlStars/obj/BrawlStars.csproj.nuget.cache ================================================ { "version": 1, "dgSpecHash": "f9aaRwQlhSijjpL3CnZ32bh1g8s2645/bs6xGJVpEJwFQPqNbxsAuaVSr5+nnXEFKMH8DWIj9i+VRtWnck8k5g==", "success": true } ================================================ FILE: Source/BrawlStars/obj/BrawlStars.csproj.nuget.dgspec.json ================================================ { "format": 1, "restore": { "C:\\Users\\Vitalik\\Desktop\\Source\\BrawlStars\\BrawlStars.csproj": {} }, "projects": { "C:\\Users\\Vitalik\\Desktop\\Source\\BrawlStars.Utilities\\BrawlStars.Utilities.csproj": { "version": "1.0.0", "restore": { "projectUniqueName": "C:\\Users\\Vitalik\\Desktop\\Source\\BrawlStars.Utilities\\BrawlStars.Utilities.csproj", "projectName": "BrawlStars.Utilities", "projectPath": "C:\\Users\\Vitalik\\Desktop\\Source\\BrawlStars.Utilities\\BrawlStars.Utilities.csproj", "packagesPath": "C:\\Users\\Vitalik\\.nuget\\packages\\", "outputPath": "C:\\Users\\Vitalik\\Desktop\\Source\\BrawlStars.Utilities\\obj\\", "projectStyle": "PackageReference", "fallbackFolders": [ "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder" ], "configFilePaths": [ "C:\\Users\\Vitalik\\AppData\\Roaming\\NuGet\\NuGet.Config", "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" ], "originalTargetFrameworks": [ "netstandard2.0" ], "sources": { "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, "https://api.nuget.org/v3/index.json": {} }, "frameworks": { "netstandard2.0": { "projectReferences": {} } }, "warningProperties": { "warnAsError": [ "NU1605" ] } }, "frameworks": { "netstandard2.0": { "dependencies": { "DotNetty.Buffers": { "target": "Package", "version": "[0.6.0, )" }, "MySql.Data": { "target": "Package", "version": "[8.0.19, )" }, "NETStandard.Library": { "suppressParent": "All", "target": "Package", "version": "[2.0.3, )", "autoReferenced": true }, "Newtonsoft.Json": { "target": "Package", "version": "[12.0.2, )" } }, "imports": [ "net461", "net462", "net47", "net471", "net472", "net48" ], "assetTargetFallback": true, "warn": true, "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.201\\RuntimeIdentifierGraph.json" } } }, "C:\\Users\\Vitalik\\Desktop\\Source\\BrawlStars\\BrawlStars.csproj": { "version": "1.0.0", "restore": { "projectUniqueName": "C:\\Users\\Vitalik\\Desktop\\Source\\BrawlStars\\BrawlStars.csproj", "projectName": "BrawlStars", "projectPath": "C:\\Users\\Vitalik\\Desktop\\Source\\BrawlStars\\BrawlStars.csproj", "packagesPath": "C:\\Users\\Vitalik\\.nuget\\packages\\", "outputPath": "C:\\Users\\Vitalik\\Desktop\\Source\\BrawlStars\\obj\\", "projectStyle": "PackageReference", "fallbackFolders": [ "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder" ], "configFilePaths": [ "C:\\Users\\Vitalik\\AppData\\Roaming\\NuGet\\NuGet.Config", "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" ], "originalTargetFrameworks": [ "netcoreapp3.1" ], "sources": { "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, "https://api.nuget.org/v3/index.json": {} }, "frameworks": { "netcoreapp3.1": { "projectReferences": { "C:\\Users\\Vitalik\\Desktop\\Source\\BrawlStars.Utilities\\BrawlStars.Utilities.csproj": { "projectPath": "C:\\Users\\Vitalik\\Desktop\\Source\\BrawlStars.Utilities\\BrawlStars.Utilities.csproj" } } } }, "warningProperties": { "warnAsError": [ "NU1605" ] } }, "frameworks": { "netcoreapp3.1": { "dependencies": { "Colorful.Console": { "target": "Package", "version": "[1.2.10, )" }, "DotNetty.Buffers": { "target": "Package", "version": "[0.6.0, )" }, "DotNetty.Common": { "target": "Package", "version": "[0.6.0, )" }, "DotNetty.Handlers": { "target": "Package", "version": "[0.6.0, )" }, "Microsoft.Extensions.Caching.Memory": { "target": "Package", "version": "[3.1.2, )" }, "Microsoft.VisualStudio.Azure.Containers.Tools.Targets": { "target": "Package", "version": "[1.9.10, )" }, "MySql.Data": { "target": "Package", "version": "[8.0.19, )" }, "NLog": { "target": "Package", "version": "[4.6.8, )" }, "Newtonsoft.Json": { "target": "Package", "version": "[12.0.3, )" } }, "imports": [ "net461", "net462", "net47", "net471", "net472", "net48" ], "assetTargetFallback": true, "warn": true, "frameworkReferences": { "Microsoft.NETCore.App": { "privateAssets": "all" } }, "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.201\\RuntimeIdentifierGraph.json" } } } } } ================================================ FILE: Source/BrawlStars/obj/BrawlStars.csproj.nuget.g.props ================================================  True NuGet $(MSBuildThisFileDirectory)project.assets.json $(UserProfile)\.nuget\packages\ C:\Users\Vitalik\.nuget\packages\;C:\Program Files\dotnet\sdk\NuGetFallbackFolder PackageReference 5.5.0 $(MSBuildAllProjects);$(MSBuildThisFileFullPath) C:\Users\Vitalik\.nuget\packages\microsoft.visualstudio.azure.containers.tools.targets\1.9.10 ================================================ FILE: Source/BrawlStars/obj/BrawlStars.csproj.nuget.g.targets ================================================  $(MSBuildAllProjects);$(MSBuildThisFileFullPath) ================================================ FILE: Source/BrawlStars/obj/Debug/netcoreapp3.1/BrawlStars.AssemblyInfo.cs ================================================ //------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ using System; using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("BrawlStars")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] [assembly: System.Reflection.AssemblyProductAttribute("BrawlStars")] [assembly: System.Reflection.AssemblyTitleAttribute("BrawlStars")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] // Generated by the MSBuild WriteCodeFragment class. ================================================ FILE: Source/BrawlStars/obj/Debug/netcoreapp3.1/BrawlStars.AssemblyInfoInputs.cache ================================================ 870a87f929b82a7305ba02eeec43f2b74bb237f2 ================================================ FILE: Source/BrawlStars.Utilities/BrawlStars.Utilities.csproj ================================================ netstandard2.0 ..\..\..\..\..\.nuget\packages\dotnetty.transport\0.6.0\lib\netstandard1.3\DotNetty.Transport.dll ================================================ FILE: Source/BrawlStars.Utilities/Compression/ZLib/CRC32.cs ================================================ using System; using System.IO; using Interop = System.Runtime.InteropServices; namespace BrawlStars.Utilities.Compression.ZLib { [Interop.Guid("ebc25cf6-9120-4283-b972-0e5520d0000C")] [Interop.ComVisible(true)] #if !NETCF [Interop.ClassInterface(Interop.ClassInterfaceType.AutoDispatch)] #endif public class Crc32 { private const int BufferSize = 8192; private readonly uint _dwPolynomial; private readonly bool _reverseBits; private uint[] _crc32Table; private uint _register = 0xFFFFFFFFU; public Crc32() : this(false) { } public Crc32(bool reverseBits) : this(unchecked((int) 0xEDB88320), reverseBits) { } public Crc32(int polynomial, bool reverseBits) { _reverseBits = reverseBits; _dwPolynomial = (uint) polynomial; GenerateLookupTable(); } public long TotalBytesRead { get; private set; } public int Crc32Result => unchecked((int) ~_register); public int GetCrc32(Stream input) { return GetCrc32AndCopy(input, null); } public int GetCrc32AndCopy(Stream input, Stream output) { if (input == null) throw new Exception("The input stream must not be null."); unchecked { var buffer = new byte[BufferSize]; TotalBytesRead = 0; var count = input.Read(buffer, 0, BufferSize); output?.Write(buffer, 0, count); TotalBytesRead += count; while (count > 0) { SlurpBlock(buffer, 0, count); count = input.Read(buffer, 0, BufferSize); output?.Write(buffer, 0, count); TotalBytesRead += count; } return (int) ~_register; } } public int ComputeCrc32(int w, byte b) { return InternalComputeCrc32((uint) w, b); } public int InternalComputeCrc32(uint w, byte b) { return (int) (_crc32Table[(w ^ b) & 0xFF] ^ (w >> 8)); } public void SlurpBlock(byte[] block, int offset, int count) { if (block == null) throw new Exception("The data buffer must not be null."); for (var i = 0; i < count; i++) { var x = offset + i; var b = block[x]; if (_reverseBits) { var temp = (_register >> 24) ^ b; _register = (_register << 8) ^ _crc32Table[temp]; } else { var temp = (_register & 0x000000FF) ^ b; _register = (_register >> 8) ^ _crc32Table[temp]; } } TotalBytesRead += count; } public void UpdateCrc(byte b) { if (_reverseBits) { var temp = (_register >> 24) ^ b; _register = (_register << 8) ^ _crc32Table[temp]; } else { var temp = (_register & 0x000000FF) ^ b; _register = (_register >> 8) ^ _crc32Table[temp]; } } public void UpdateCrc(byte b, int n) { while (n-- > 0) if (_reverseBits) { var temp = (_register >> 24) ^ b; _register = (_register << 8) ^ _crc32Table[temp]; } else { var temp = (_register & 0x000000FF) ^ b; _register = (_register >> 8) ^ _crc32Table[temp]; } } private static uint ReverseBits(uint data) { unchecked { var ret = data; ret = ((ret & 0x55555555) << 1) | ((ret >> 1) & 0x55555555); ret = ((ret & 0x33333333) << 2) | ((ret >> 2) & 0x33333333); ret = ((ret & 0x0F0F0F0F) << 4) | ((ret >> 4) & 0x0F0F0F0F); ret = (ret << 24) | ((ret & 0xFF00) << 8) | ((ret >> 8) & 0xFF00) | (ret >> 24); return ret; } } private static byte ReverseBits(byte data) { unchecked { var u = (uint) data * 0x00020202; uint m = 0x01044010; var s = u & m; var t = (u << 2) & (m << 1); return (byte) ((0x01001001 * (s + t)) >> 24); } } private void GenerateLookupTable() { _crc32Table = new uint[256]; unchecked { byte i = 0; do { uint dwCrc = i; for (byte j = 8; j > 0; j--) if ((dwCrc & 1) == 1) dwCrc = (dwCrc >> 1) ^ _dwPolynomial; else dwCrc >>= 1; if (_reverseBits) _crc32Table[ReverseBits(i)] = ReverseBits(dwCrc); else _crc32Table[i] = dwCrc; i++; } while (i != 0); } } private uint Gf2_matrix_times(uint[] matrix, uint vec) { uint sum = 0; var i = 0; while (vec != 0) { if ((vec & 0x01) == 0x01) sum ^= matrix[i]; vec >>= 1; i++; } return sum; } private void Gf2_matrix_square(uint[] square, uint[] mat) { for (var i = 0; i < 32; i++) square[i] = Gf2_matrix_times(mat, mat[i]); } public void Combine(int crc, int length) { var even = new uint[32]; var odd = new uint[32]; if (length == 0) return; var crc1 = ~_register; var crc2 = (uint) crc; odd[0] = _dwPolynomial; uint row = 1; for (var i = 1; i < 32; i++) { odd[i] = row; row <<= 1; } Gf2_matrix_square(even, odd); Gf2_matrix_square(odd, even); var len2 = (uint) length; do { Gf2_matrix_square(even, odd); if ((len2 & 1) == 1) crc1 = Gf2_matrix_times(even, crc1); len2 >>= 1; if (len2 == 0) break; Gf2_matrix_square(odd, even); if ((len2 & 1) == 1) crc1 = Gf2_matrix_times(odd, crc1); len2 >>= 1; } while (len2 != 0); crc1 ^= crc2; _register = ~crc1; } public void Reset() { _register = 0xFFFFFFFFU; } } public class CrcCalculatorStream : Stream, IDisposable { public static readonly long UnsetLengthLimit = -99; private readonly Crc32 _crc32; private readonly long _lengthLimit; public Stream InnerStream; public CrcCalculatorStream(Stream stream) : this(true, UnsetLengthLimit, stream, null) { } public CrcCalculatorStream(Stream stream, bool leaveOpen) : this(leaveOpen, UnsetLengthLimit, stream, null) { } public CrcCalculatorStream(Stream stream, long length) : this(true, length, stream, null) { if (length < 0) throw new ArgumentException("length"); } public CrcCalculatorStream(Stream stream, long length, bool leaveOpen) : this(leaveOpen, length, stream, null) { if (length < 0) throw new ArgumentException("length"); } public CrcCalculatorStream(Stream stream, long length, bool leaveOpen, Crc32 crc32) : this(leaveOpen, length, stream, crc32) { if (length < 0) throw new ArgumentException("length"); } private CrcCalculatorStream (bool leaveOpen, long length, Stream stream, Crc32 crc32) { InnerStream = stream; _crc32 = crc32 ?? new Crc32(); _lengthLimit = length; LeaveOpen = leaveOpen; } public long TotalBytesSlurped => _crc32.TotalBytesRead; public int Crc => _crc32.Crc32Result; public bool LeaveOpen { get; set; } public override bool CanRead => InnerStream.CanRead; public override bool CanSeek => false; public override bool CanWrite => InnerStream.CanWrite; public override long Length => _lengthLimit == UnsetLengthLimit ? InnerStream.Length : _lengthLimit; public override long Position { get => _crc32.TotalBytesRead; set => throw new NotSupportedException(); } void IDisposable.Dispose() { Close(); } public override int Read(byte[] buffer, int offset, int count) { var bytesToRead = count; if (_lengthLimit != UnsetLengthLimit) { if (_crc32.TotalBytesRead >= _lengthLimit) return 0; var bytesRemaining = _lengthLimit - _crc32.TotalBytesRead; if (bytesRemaining < count) bytesToRead = (int) bytesRemaining; } var n = InnerStream.Read(buffer, offset, bytesToRead); if (n > 0) _crc32.SlurpBlock(buffer, offset, n); return n; } public override void Write(byte[] buffer, int offset, int count) { if (count > 0) _crc32.SlurpBlock(buffer, offset, count); InnerStream.Write(buffer, offset, count); } public override void Flush() { InnerStream.Flush(); } public override long Seek(long offset, SeekOrigin origin) { throw new NotSupportedException(); } public override void SetLength(long value) { throw new NotSupportedException(); } public override void Close() { base.Close(); if (!LeaveOpen) InnerStream.Close(); } } } ================================================ FILE: Source/BrawlStars.Utilities/Compression/ZLib/Deflate.cs ================================================ using System; namespace BrawlStars.Utilities.Compression.ZLib { internal enum BlockState { NeedMore = 0, BlockDone, FinishStarted, FinishDone } internal enum DeflateFlavor { Store, Fast, Slow } internal sealed class DeflateManager { private const int MemLevelMax = 9; private const int MemLevelDefault = 8; private const int PresetDict = 0x20; private const int InitState = 42; private const int BusyState = 113; private const int ZDeflated = 8; private const int StoredBlock = 0; private const int StaticTrees = 1; private const int DynTrees = 2; private const int ZAscii = 1; private const int ZUnknown = 2; private const int BufSize = 8 * 2; private const int MinMatch = 3; private const int MaxMatch = 258; private const int MinLookahead = MaxMatch + MinMatch + 1; private const int EndBlock = 256; private static readonly string[] ErrorMessage = { "need dictionary", "stream end", "", "file error", "stream error", "data error", "insufficient memory", "buffer error", "incompatible version", "" }; public static readonly int FinishState = 666; public static readonly int ZBinary = 0; private static readonly int HeapSize = 2 * InternalConstants.L_CODES + 1; private Config _config; private CompressFunc _deflateFunction; private bool _rfc1950BytesEmitted; internal short BiBuf; internal int BiValid; internal short[] BlCount = new short[InternalConstants.MAX_BITS + 1]; internal int BlockStart; internal short[] BlTree; internal ZlibCodec Codec; internal CompressionLevel CompressionLevel; internal CompressionStrategy CompressionStrategy; internal sbyte DataType; internal sbyte[] Depth = new sbyte[2 * InternalConstants.L_CODES + 1]; internal int DistanceOffset; internal short[] DynDtree; internal short[] DynLtree; internal int HashBits; public int HashMask; internal int HashShift; internal int HashSize; internal short[] Head; internal int[] Heap = new int[2 * InternalConstants.L_CODES + 1]; internal int HeapLen; internal int HeapMax; internal int InsH; internal int LastEobLen; internal int LastFlush; internal int LastLit; internal int LengthOffset; internal int LitBufsize; internal int Lookahead; internal int MatchAvailable; internal int Matches; internal int MatchLength; internal int MatchStart; internal int NextPending; internal int OptLen; internal byte[] Pending; internal int PendingCount; internal short[] Prev; internal int PrevLength; internal int PrevMatch; internal int StaticLen; internal int Status; internal int Strstart; internal Tree TreeBitLengths = new Tree(); internal Tree TreeDistances = new Tree(); internal Tree TreeLiterals = new Tree(); internal int WBits; internal byte[] Window; internal int WindowSize; internal int WMask; internal int WSize; internal DeflateManager() { DynLtree = new short[HeapSize * 2]; DynDtree = new short[(2 * InternalConstants.D_CODES + 1) * 2]; BlTree = new short[(2 * InternalConstants.BL_CODES + 1) * 2]; } internal bool WantRfc1950HeaderBytes { get; set; } = true; private void InitializeLazyMatch() { WindowSize = 2 * WSize; Array.Clear(Head, 0, HashSize); _config = Config.Lookup(CompressionLevel); SetDeflater(); Strstart = 0; BlockStart = 0; Lookahead = 0; MatchLength = PrevLength = MinMatch - 1; MatchAvailable = 0; InsH = 0; } private void InitializeTreeData() { TreeLiterals.DynTree = DynLtree; TreeLiterals.StaticTree = StaticTree.Literals; TreeDistances.DynTree = DynDtree; TreeDistances.StaticTree = StaticTree.Distances; TreeBitLengths.DynTree = BlTree; TreeBitLengths.StaticTree = StaticTree.BitLengths; BiBuf = 0; BiValid = 0; LastEobLen = 8; InitializeBlocks(); } internal void InitializeBlocks() { for (var i = 0; i < InternalConstants.L_CODES; i++) DynLtree[i * 2] = 0; for (var i = 0; i < InternalConstants.D_CODES; i++) DynDtree[i * 2] = 0; for (var i = 0; i < InternalConstants.BL_CODES; i++) BlTree[i * 2] = 0; DynLtree[EndBlock * 2] = 1; OptLen = StaticLen = 0; LastLit = Matches = 0; } internal void Pqdownheap(short[] tree, int k) { var v = Heap[k]; var j = k << 1; while (j <= HeapLen) { if (j < HeapLen && IsSmaller(tree, Heap[j + 1], Heap[j], Depth)) j++; if (IsSmaller(tree, v, Heap[j], Depth)) break; Heap[k] = Heap[j]; k = j; j <<= 1; } Heap[k] = v; } internal static bool IsSmaller(short[] tree, int n, int m, sbyte[] depth) { var tn2 = tree[n * 2]; var tm2 = tree[m * 2]; return tn2 < tm2 || tn2 == tm2 && depth[n] <= depth[m]; } internal void Scan_tree(short[] tree, int maxCode) { int n; var prevlen = -1; int nextlen = tree[0 * 2 + 1]; var count = 0; var maxCount = 7; var minCount = 4; if (nextlen == 0) { maxCount = 138; minCount = 3; } tree[(maxCode + 1) * 2 + 1] = 0x7fff; for (n = 0; n <= maxCode; n++) { var curlen = nextlen; nextlen = tree[(n + 1) * 2 + 1]; if (++count < maxCount && curlen == nextlen) continue; if (count < minCount) { BlTree[curlen * 2] = (short) (BlTree[curlen * 2] + count); } else if (curlen != 0) { if (curlen != prevlen) BlTree[curlen * 2]++; BlTree[InternalConstants.REP_3_6 * 2]++; } else if (count <= 10) { BlTree[InternalConstants.REPZ_3_10 * 2]++; } else { BlTree[InternalConstants.REPZ_11_138 * 2]++; } count = 0; prevlen = curlen; if (nextlen == 0) { maxCount = 138; minCount = 3; } else if (curlen == nextlen) { maxCount = 6; minCount = 3; } else { maxCount = 7; minCount = 4; } } } internal int Build_bl_tree() { Scan_tree(DynLtree, TreeLiterals.MaxCode); Scan_tree(DynDtree, TreeDistances.MaxCode); TreeBitLengths.Build_tree(this); int maxBlindex; for (maxBlindex = InternalConstants.BL_CODES - 1; maxBlindex >= 3; maxBlindex--) if (BlTree[Tree.BlOrder[maxBlindex] * 2 + 1] != 0) break; OptLen += 3 * (maxBlindex + 1) + 5 + 5 + 4; return maxBlindex; } internal void Send_all_trees(int lcodes, int dcodes, int blcodes) { int rank; Send_bits(lcodes - 257, 5); Send_bits(dcodes - 1, 5); Send_bits(blcodes - 4, 4); for (rank = 0; rank < blcodes; rank++) Send_bits(BlTree[Tree.BlOrder[rank] * 2 + 1], 3); Send_tree(DynLtree, lcodes - 1); Send_tree(DynDtree, dcodes - 1); } internal void Send_tree(short[] tree, int maxCode) { int n; var prevlen = -1; int nextlen = tree[0 * 2 + 1]; var count = 0; var maxCount = 7; var minCount = 4; if (nextlen == 0) { maxCount = 138; minCount = 3; } for (n = 0; n <= maxCode; n++) { var curlen = nextlen; nextlen = tree[(n + 1) * 2 + 1]; if (++count < maxCount && curlen == nextlen) continue; if (count < minCount) { do { Send_code(curlen, BlTree); } while (--count != 0); } else if (curlen != 0) { if (curlen != prevlen) { Send_code(curlen, BlTree); count--; } Send_code(InternalConstants.REP_3_6, BlTree); Send_bits(count - 3, 2); } else if (count <= 10) { Send_code(InternalConstants.REPZ_3_10, BlTree); Send_bits(count - 3, 3); } else { Send_code(InternalConstants.REPZ_11_138, BlTree); Send_bits(count - 11, 7); } count = 0; prevlen = curlen; if (nextlen == 0) { maxCount = 138; minCount = 3; } else if (curlen == nextlen) { maxCount = 6; minCount = 3; } else { maxCount = 7; minCount = 4; } } } private void Put_bytes(byte[] p, int start, int len) { Array.Copy(p, start, Pending, PendingCount, len); PendingCount += len; } internal void Send_code(int c, short[] tree) { var c2 = c * 2; Send_bits(tree[c2] & 0xffff, tree[c2 + 1] & 0xffff); } internal void Send_bits(int value, int length) { var len = length; unchecked { if (BiValid > BufSize - len) { BiBuf |= (short) ((value << BiValid) & 0xffff); Pending[PendingCount++] = (byte) BiBuf; Pending[PendingCount++] = (byte) (BiBuf >> 8); BiBuf = (short) ((uint) value >> (BufSize - BiValid)); BiValid += len - BufSize; } else { BiBuf |= (short) ((value << BiValid) & 0xffff); BiValid += len; } } } internal void Tr_align() { Send_bits(StaticTrees << 1, 3); Send_code(EndBlock, StaticTree.lengthAndLiteralsTreeCodes); Bi_flush(); if (1 + LastEobLen + 10 - BiValid < 9) { Send_bits(StaticTrees << 1, 3); Send_code(EndBlock, StaticTree.lengthAndLiteralsTreeCodes); Bi_flush(); } LastEobLen = 7; } internal bool Tr_tally(int dist, int lc) { Pending[DistanceOffset + LastLit * 2] = unchecked((byte) ((uint) dist >> 8)); Pending[DistanceOffset + LastLit * 2 + 1] = unchecked((byte) dist); Pending[LengthOffset + LastLit] = unchecked((byte) lc); LastLit++; if (dist == 0) { DynLtree[lc * 2]++; } else { Matches++; dist--; DynLtree[(Tree.LengthCode[lc] + InternalConstants.LITERALS + 1) * 2]++; DynDtree[Tree.DistanceCode(dist) * 2]++; } if ((LastLit & 0x1fff) != 0 || (int) CompressionLevel <= 2) return LastLit == LitBufsize - 1 || LastLit == LitBufsize; var outLength = LastLit << 3; var inLength = Strstart - BlockStart; int dcode; for (dcode = 0; dcode < InternalConstants.D_CODES; dcode++) outLength = (int) (outLength + DynDtree[dcode * 2] * (5L + Tree.ExtraDistanceBits[dcode])); outLength >>= 3; if (Matches < LastLit / 2 && outLength < inLength / 2) return true; return LastLit == LitBufsize - 1 || LastLit == LitBufsize; } internal void send_compressed_block(short[] ltree, short[] dtree) { var lx = 0; if (LastLit != 0) do { var ix = DistanceOffset + lx * 2; var distance = ((Pending[ix] << 8) & 0xff00) | (Pending[ix + 1] & 0xff); var lc = Pending[LengthOffset + lx] & 0xff; lx++; if (distance == 0) { Send_code(lc, ltree); } else { int code = Tree.LengthCode[lc]; Send_code(code + InternalConstants.LITERALS + 1, ltree); var extra = Tree.ExtraLengthBits[code]; if (extra != 0) { lc -= Tree.LengthBase[code]; Send_bits(lc, extra); } distance--; code = Tree.DistanceCode(distance); Send_code(code, dtree); extra = Tree.ExtraDistanceBits[code]; if (extra == 0) continue; distance -= Tree.DistanceBase[code]; Send_bits(distance, extra); } } while (lx < LastLit); Send_code(EndBlock, ltree); LastEobLen = ltree[EndBlock * 2 + 1]; } internal void Set_data_type() { var n = 0; var asciiFreq = 0; var binFreq = 0; while (n < 7) { binFreq += DynLtree[n * 2]; n++; } while (n < 128) { asciiFreq += DynLtree[n * 2]; n++; } while (n < InternalConstants.LITERALS) { binFreq += DynLtree[n * 2]; n++; } DataType = (sbyte) (binFreq > asciiFreq >> 2 ? ZBinary : ZAscii); } internal void Bi_flush() { if (BiValid == 16) { Pending[PendingCount++] = (byte) BiBuf; Pending[PendingCount++] = (byte) (BiBuf >> 8); BiBuf = 0; BiValid = 0; } else if (BiValid >= 8) { Pending[PendingCount++] = (byte) BiBuf; BiBuf >>= 8; BiValid -= 8; } } internal void Bi_windup() { if (BiValid > 8) { Pending[PendingCount++] = (byte) BiBuf; Pending[PendingCount++] = (byte) (BiBuf >> 8); } else if (BiValid > 0) { Pending[PendingCount++] = (byte) BiBuf; } BiBuf = 0; BiValid = 0; } internal void Copy_block(int buf, int len, bool header) { Bi_windup(); LastEobLen = 8; if (header) unchecked { Pending[PendingCount++] = (byte) len; Pending[PendingCount++] = (byte) (len >> 8); Pending[PendingCount++] = (byte) ~len; Pending[PendingCount++] = (byte) (~len >> 8); } Put_bytes(Window, buf, len); } internal void Flush_block_only(bool eof) { Tr_flush_block(BlockStart >= 0 ? BlockStart : -1, Strstart - BlockStart, eof); BlockStart = Strstart; Codec.Flush_pending(); } internal BlockState DeflateNone(FlushType flush) { var maxBlockSize = 0xffff; if (maxBlockSize > Pending.Length - 5) maxBlockSize = Pending.Length - 5; while (true) { if (Lookahead <= 1) { FillWindow(); if (Lookahead == 0 && flush == FlushType.None) return BlockState.NeedMore; if (Lookahead == 0) break; } Strstart += Lookahead; Lookahead = 0; var maxStart = BlockStart + maxBlockSize; if (Strstart == 0 || Strstart >= maxStart) { Lookahead = Strstart - maxStart; Strstart = maxStart; Flush_block_only(false); if (Codec.AvailableBytesOut == 0) return BlockState.NeedMore; } if (Strstart - BlockStart < WSize - MinLookahead) continue; Flush_block_only(false); if (Codec.AvailableBytesOut == 0) return BlockState.NeedMore; } Flush_block_only(flush == FlushType.Finish); if (Codec.AvailableBytesOut == 0) return flush == FlushType.Finish ? BlockState.FinishStarted : BlockState.NeedMore; return flush == FlushType.Finish ? BlockState.FinishDone : BlockState.BlockDone; } internal void Tr_stored_block(int buf, int storedLen, bool eof) { Send_bits((StoredBlock << 1) + (eof ? 1 : 0), 3); Copy_block(buf, storedLen, true); } internal void Tr_flush_block(int buf, int storedLen, bool eof) { int optLenb, staticLenb; var maxBlindex = 0; if (CompressionLevel > 0) { if (DataType == ZUnknown) Set_data_type(); TreeLiterals.Build_tree(this); TreeDistances.Build_tree(this); maxBlindex = Build_bl_tree(); optLenb = (OptLen + 3 + 7) >> 3; staticLenb = (StaticLen + 3 + 7) >> 3; if (staticLenb <= optLenb) optLenb = staticLenb; } else { optLenb = staticLenb = storedLen + 5; } if (storedLen + 4 <= optLenb && buf != -1) { Tr_stored_block(buf, storedLen, eof); } else if (staticLenb == optLenb) { Send_bits((StaticTrees << 1) + (eof ? 1 : 0), 3); send_compressed_block(StaticTree.lengthAndLiteralsTreeCodes, StaticTree.distTreeCodes); } else { Send_bits((DynTrees << 1) + (eof ? 1 : 0), 3); Send_all_trees(TreeLiterals.MaxCode + 1, TreeDistances.MaxCode + 1, maxBlindex + 1); send_compressed_block(DynLtree, DynDtree); } InitializeBlocks(); if (eof) Bi_windup(); } private void FillWindow() { do { var more = WindowSize - Lookahead - Strstart; int n; switch (more) { case 0 when Strstart == 0 && Lookahead == 0: more = WSize; break; case -1: more--; break; default: { if (Strstart >= WSize + WSize - MinLookahead) { Array.Copy(Window, WSize, Window, 0, WSize); MatchStart -= WSize; Strstart -= WSize; BlockStart -= WSize; n = HashSize; var p = n; int m; do { m = Head[--p] & 0xffff; Head[p] = (short) (m >= WSize ? m - WSize : 0); } while (--n != 0); n = WSize; p = n; do { m = Prev[--p] & 0xffff; Prev[p] = (short) (m >= WSize ? m - WSize : 0); } while (--n != 0); more += WSize; } break; } } if (Codec.AvailableBytesIn == 0) return; n = Codec.Read_buf(Window, Strstart + Lookahead, more); Lookahead += n; if (Lookahead < MinMatch) continue; InsH = Window[Strstart] & 0xff; InsH = ((InsH << HashShift) ^ (Window[Strstart + 1] & 0xff)) & HashMask; } while (Lookahead < MinLookahead && Codec.AvailableBytesIn != 0); } internal BlockState DeflateFast(FlushType flush) { var hashHead = 0; while (true) { if (Lookahead < MinLookahead) { FillWindow(); if (Lookahead < MinLookahead && flush == FlushType.None) return BlockState.NeedMore; if (Lookahead == 0) break; } if (Lookahead >= MinMatch) { InsH = ((InsH << HashShift) ^ (Window[Strstart + (MinMatch - 1)] & 0xff)) & HashMask; hashHead = Head[InsH] & 0xffff; Prev[Strstart & WMask] = Head[InsH]; Head[InsH] = unchecked((short) Strstart); } if (hashHead != 0L && ((Strstart - hashHead) & 0xffff) <= WSize - MinLookahead) if (CompressionStrategy != CompressionStrategy.HuffmanOnly) MatchLength = Longest_match(hashHead); bool bflush; if (MatchLength >= MinMatch) { bflush = Tr_tally(Strstart - MatchStart, MatchLength - MinMatch); Lookahead -= MatchLength; if (MatchLength <= _config.MaxLazy && Lookahead >= MinMatch) { MatchLength--; do { Strstart++; InsH = ((InsH << HashShift) ^ (Window[Strstart + (MinMatch - 1)] & 0xff)) & HashMask; hashHead = Head[InsH] & 0xffff; Prev[Strstart & WMask] = Head[InsH]; Head[InsH] = unchecked((short) Strstart); } while (--MatchLength != 0); Strstart++; } else { Strstart += MatchLength; MatchLength = 0; InsH = Window[Strstart] & 0xff; InsH = ((InsH << HashShift) ^ (Window[Strstart + 1] & 0xff)) & HashMask; } } else { bflush = Tr_tally(0, Window[Strstart] & 0xff); Lookahead--; Strstart++; } if (!bflush) continue; Flush_block_only(false); if (Codec.AvailableBytesOut == 0) return BlockState.NeedMore; } Flush_block_only(flush == FlushType.Finish); if (Codec.AvailableBytesOut != 0) return flush == FlushType.Finish ? BlockState.FinishDone : BlockState.BlockDone; return flush == FlushType.Finish ? BlockState.FinishStarted : BlockState.NeedMore; } internal BlockState DeflateSlow(FlushType flush) { var hashHead = 0; while (true) { if (Lookahead < MinLookahead) { FillWindow(); if (Lookahead < MinLookahead && flush == FlushType.None) return BlockState.NeedMore; if (Lookahead == 0) break; } if (Lookahead >= MinMatch) { InsH = ((InsH << HashShift) ^ (Window[Strstart + (MinMatch - 1)] & 0xff)) & HashMask; hashHead = Head[InsH] & 0xffff; Prev[Strstart & WMask] = Head[InsH]; Head[InsH] = unchecked((short) Strstart); } PrevLength = MatchLength; PrevMatch = MatchStart; MatchLength = MinMatch - 1; if (hashHead != 0 && PrevLength < _config.MaxLazy && ((Strstart - hashHead) & 0xffff) <= WSize - MinLookahead) { if (CompressionStrategy != CompressionStrategy.HuffmanOnly) MatchLength = Longest_match(hashHead); if (MatchLength <= 5 && (CompressionStrategy == CompressionStrategy.Filtered || MatchLength == MinMatch && Strstart - MatchStart > 4096)) MatchLength = MinMatch - 1; } bool bflush; if (PrevLength >= MinMatch && MatchLength <= PrevLength) { var maxInsert = Strstart + Lookahead - MinMatch; bflush = Tr_tally(Strstart - 1 - PrevMatch, PrevLength - MinMatch); Lookahead -= PrevLength - 1; PrevLength -= 2; do { if (++Strstart > maxInsert) continue; InsH = ((InsH << HashShift) ^ (Window[Strstart + (MinMatch - 1)] & 0xff)) & HashMask; hashHead = Head[InsH] & 0xffff; Prev[Strstart & WMask] = Head[InsH]; Head[InsH] = unchecked((short) Strstart); } while (--PrevLength != 0); MatchAvailable = 0; MatchLength = MinMatch - 1; Strstart++; if (!bflush) continue; Flush_block_only(false); if (Codec.AvailableBytesOut == 0) return BlockState.NeedMore; } else if (MatchAvailable != 0) { bflush = Tr_tally(0, Window[Strstart - 1] & 0xff); if (bflush) Flush_block_only(false); Strstart++; Lookahead--; if (Codec.AvailableBytesOut == 0) return BlockState.NeedMore; } else { MatchAvailable = 1; Strstart++; Lookahead--; } } if (MatchAvailable != 0) { Tr_tally(0, Window[Strstart - 1] & 0xff); MatchAvailable = 0; } Flush_block_only(flush == FlushType.Finish); if (Codec.AvailableBytesOut != 0) return flush == FlushType.Finish ? BlockState.FinishDone : BlockState.BlockDone; return flush == FlushType.Finish ? BlockState.FinishStarted : BlockState.NeedMore; } internal int Longest_match(int curMatch) { var chainLength = _config.MaxChainLength; var scan = Strstart; var bestLen = PrevLength; var limit = Strstart > WSize - MinLookahead ? Strstart - (WSize - MinLookahead) : 0; var niceLength = _config.NiceLength; var wmask = WMask; var strend = Strstart + MaxMatch; var scanEnd1 = Window[scan + bestLen - 1]; var scanEnd = Window[scan + bestLen]; if (PrevLength >= _config.GoodLength) chainLength >>= 2; if (niceLength > Lookahead) niceLength = Lookahead; do { var match = curMatch; if (Window[match + bestLen] != scanEnd || Window[match + bestLen - 1] != scanEnd1 || Window[match] != Window[scan] || Window[++match] != Window[scan + 1]) continue; scan += 2; match++; do { } while (Window[++scan] == Window[++match] && Window[++scan] == Window[++match] && Window[++scan] == Window[++match] && Window[++scan] == Window[++match] && Window[++scan] == Window[++match] && Window[++scan] == Window[++match] && Window[++scan] == Window[++match] && Window[++scan] == Window[++match] && scan < strend); var len = MaxMatch - (strend - scan); scan = strend - MaxMatch; if (len <= bestLen) continue; MatchStart = curMatch; bestLen = len; if (len >= niceLength) break; scanEnd1 = Window[scan + bestLen - 1]; scanEnd = Window[scan + bestLen]; } while ((curMatch = Prev[curMatch & wmask] & 0xffff) > limit && --chainLength != 0); return bestLen <= Lookahead ? bestLen : Lookahead; } internal int Initialize(ZlibCodec codec, CompressionLevel level) { return Initialize(codec, level, ZlibConstants.WindowBitsMax); } internal int Initialize(ZlibCodec codec, CompressionLevel level, int bits) { return Initialize(codec, level, bits, MemLevelDefault, CompressionStrategy.Default); } internal int Initialize(ZlibCodec codec, CompressionLevel level, int bits, CompressionStrategy compressionStrategy) { return Initialize(codec, level, bits, MemLevelDefault, compressionStrategy); } internal int Initialize(ZlibCodec codec, CompressionLevel level, int windowBits, int memLevel, CompressionStrategy strategy) { Codec = codec; Codec.Message = null; if (windowBits < 9 || windowBits > 15) throw new ZlibException("windowBits must be in the range 9..15."); if (memLevel < 1 || memLevel > MemLevelMax) throw new ZlibException($"memLevel must be in the range 1.. {MemLevelMax}"); Codec.Dstate = this; WBits = windowBits; WSize = 1 << WBits; WMask = WSize - 1; HashBits = memLevel + 7; HashSize = 1 << HashBits; HashMask = HashSize - 1; HashShift = (HashBits + MinMatch - 1) / MinMatch; Window = new byte[WSize * 2]; Prev = new short[WSize]; Head = new short[HashSize]; LitBufsize = 1 << (memLevel + 6); Pending = new byte[LitBufsize * 4]; DistanceOffset = LitBufsize; LengthOffset = (1 + 2) * LitBufsize; CompressionLevel = level; CompressionStrategy = strategy; Reset(); return ZlibConstants.ZOk; } internal void Reset() { Codec.TotalBytesIn = Codec.TotalBytesOut = 0; Codec.Message = null; PendingCount = 0; NextPending = 0; _rfc1950BytesEmitted = false; Status = WantRfc1950HeaderBytes ? InitState : BusyState; Codec._Adler32 = Adler.Adler32(0, null, 0, 0); LastFlush = (int) FlushType.None; InitializeTreeData(); InitializeLazyMatch(); } internal int End() { if (Status != InitState && Status != BusyState && Status != FinishState) return ZlibConstants.ZStreamError; Pending = null; Head = null; Prev = null; Window = null; return Status == BusyState ? ZlibConstants.ZDataError : ZlibConstants.ZOk; } private void SetDeflater() { switch (_config.Flavor) { case DeflateFlavor.Store: _deflateFunction = DeflateNone; break; case DeflateFlavor.Fast: _deflateFunction = DeflateFast; break; case DeflateFlavor.Slow: _deflateFunction = DeflateSlow; break; } } internal int SetParams(CompressionLevel level, CompressionStrategy strategy) { var result = ZlibConstants.ZOk; if (CompressionLevel != level) { var newConfig = Config.Lookup(level); if (newConfig.Flavor != _config.Flavor && Codec.TotalBytesIn != 0) result = Codec.Deflate(FlushType.Partial); CompressionLevel = level; _config = newConfig; SetDeflater(); } CompressionStrategy = strategy; return result; } internal int SetDictionary(byte[] dictionary) { var length = dictionary.Length; var index = 0; if (dictionary == null || Status != InitState) throw new ZlibException("Stream error."); Codec._Adler32 = Adler.Adler32(Codec._Adler32, dictionary, 0, dictionary.Length); if (length < MinMatch) return ZlibConstants.ZOk; if (length > WSize - MinLookahead) { length = WSize - MinLookahead; index = dictionary.Length - length; } Array.Copy(dictionary, index, Window, 0, length); Strstart = length; BlockStart = length; InsH = Window[0] & 0xff; InsH = ((InsH << HashShift) ^ (Window[1] & 0xff)) & HashMask; for (var n = 0; n <= length - MinMatch; n++) { InsH = ((InsH << HashShift) ^ (Window[n + (MinMatch - 1)] & 0xff)) & HashMask; Prev[n & WMask] = Head[InsH]; Head[InsH] = (short) n; } return ZlibConstants.ZOk; } internal int Deflate(FlushType flush) { if (Codec.OutputBuffer == null || Codec.InputBuffer == null && Codec.AvailableBytesIn != 0 || Status == FinishState && flush != FlushType.Finish) { Codec.Message = ErrorMessage[ZlibConstants.ZNeedDict - ZlibConstants.ZStreamError]; throw new ZlibException($"Something is fishy. [{Codec.Message}]"); } if (Codec.AvailableBytesOut == 0) { Codec.Message = ErrorMessage[ZlibConstants.ZNeedDict - ZlibConstants.ZBufError]; throw new ZlibException("OutputBuffer is full (AvailableBytesOut == 0)"); } var oldFlush = LastFlush; LastFlush = (int) flush; if (Status == InitState) { var header = (ZDeflated + ((WBits - 8) << 4)) << 8; var levelFlags = (((int) CompressionLevel - 1) & 0xff) >> 1; if (levelFlags > 3) levelFlags = 3; header |= levelFlags << 6; if (Strstart != 0) header |= PresetDict; header += 31 - header % 31; Status = BusyState; unchecked { Pending[PendingCount++] = (byte) (header >> 8); Pending[PendingCount++] = (byte) header; } if (Strstart != 0) { Pending[PendingCount++] = (byte) ((Codec._Adler32 & 0xFF000000) >> 24); Pending[PendingCount++] = (byte) ((Codec._Adler32 & 0x00FF0000) >> 16); Pending[PendingCount++] = (byte) ((Codec._Adler32 & 0x0000FF00) >> 8); Pending[PendingCount++] = (byte) (Codec._Adler32 & 0x000000FF); } Codec._Adler32 = Adler.Adler32(0, null, 0, 0); } if (PendingCount != 0) { Codec.Flush_pending(); if (Codec.AvailableBytesOut == 0) { LastFlush = -1; return ZlibConstants.ZOk; } } else if (Codec.AvailableBytesIn == 0 && (int) flush <= oldFlush && flush != FlushType.Finish) { return ZlibConstants.ZOk; } if (Status == FinishState && Codec.AvailableBytesIn != 0) { Codec.Message = ErrorMessage[ZlibConstants.ZNeedDict - ZlibConstants.ZBufError]; throw new ZlibException("status == FINISH_STATE && _codec.AvailableBytesIn != 0"); } if (Codec.AvailableBytesIn != 0 || Lookahead != 0 || flush != FlushType.None && Status != FinishState) { var bstate = _deflateFunction(flush); if (bstate == BlockState.FinishStarted || bstate == BlockState.FinishDone) Status = FinishState; switch (bstate) { case BlockState.NeedMore: case BlockState.FinishStarted: { if (Codec.AvailableBytesOut == 0) LastFlush = -1; return ZlibConstants.ZOk; } case BlockState.BlockDone: { if (flush == FlushType.Partial) { Tr_align(); } else { Tr_stored_block(0, 0, false); if (flush == FlushType.Full) for (var i = 0; i < HashSize; i++) Head[i] = 0; } Codec.Flush_pending(); if (Codec.AvailableBytesOut == 0) { LastFlush = -1; return ZlibConstants.ZOk; } break; } } } if (flush != FlushType.Finish) return ZlibConstants.ZOk; if (!WantRfc1950HeaderBytes || _rfc1950BytesEmitted) return ZlibConstants.ZStreamEnd; Pending[PendingCount++] = (byte) ((Codec._Adler32 & 0xFF000000) >> 24); Pending[PendingCount++] = (byte) ((Codec._Adler32 & 0x00FF0000) >> 16); Pending[PendingCount++] = (byte) ((Codec._Adler32 & 0x0000FF00) >> 8); Pending[PendingCount++] = (byte) (Codec._Adler32 & 0x000000FF); Codec.Flush_pending(); _rfc1950BytesEmitted = true; return PendingCount != 0 ? ZlibConstants.ZOk : ZlibConstants.ZStreamEnd; } internal delegate BlockState CompressFunc(FlushType flush); internal class Config { private static readonly Config[] Table; internal DeflateFlavor Flavor; internal int GoodLength; internal int MaxChainLength; internal int MaxLazy; internal int NiceLength; static Config() { Table = new[] { new Config(0, 0, 0, 0, DeflateFlavor.Store), new Config(4, 4, 8, 4, DeflateFlavor.Fast), new Config(4, 5, 16, 8, DeflateFlavor.Fast), new Config(4, 6, 32, 32, DeflateFlavor.Fast), new Config(4, 4, 16, 16, DeflateFlavor.Slow), new Config(8, 16, 32, 32, DeflateFlavor.Slow), new Config(8, 16, 128, 128, DeflateFlavor.Slow), new Config(8, 32, 128, 256, DeflateFlavor.Slow), new Config(32, 128, 258, 1024, DeflateFlavor.Slow), new Config(32, 258, 258, 4096, DeflateFlavor.Slow) }; } private Config(int goodLength, int maxLazy, int niceLength, int maxChainLength, DeflateFlavor flavor) { GoodLength = goodLength; MaxLazy = maxLazy; NiceLength = niceLength; MaxChainLength = maxChainLength; Flavor = flavor; } public static Config Lookup(CompressionLevel level) { return Table[(int) level]; } } } } ================================================ FILE: Source/BrawlStars.Utilities/Compression/ZLib/DeflateStream.cs ================================================ using System; using System.IO; namespace BrawlStars.Utilities.Compression.ZLib { public class DeflateStream : Stream { private bool _disposed; internal ZlibBaseStream BaseStream; internal Stream InnerStream; public DeflateStream(Stream stream, CompressionMode mode) : this(stream, mode, CompressionLevel.Default, false) { } public DeflateStream(Stream stream, CompressionMode mode, CompressionLevel level) : this(stream, mode, level, false) { } public DeflateStream(Stream stream, CompressionMode mode, bool leaveOpen) : this(stream, mode, CompressionLevel.Default, leaveOpen) { } public DeflateStream(Stream stream, CompressionMode mode, CompressionLevel level, bool leaveOpen) { InnerStream = stream; BaseStream = new ZlibBaseStream(stream, mode, level, ZlibStreamFlavor.Deflate, leaveOpen); } public int BufferSize { get => BaseStream.BufferSize; set { if (_disposed) throw new ObjectDisposedException("DeflateStream"); if (BaseStream._workingBuffer != null) throw new ZlibException("The working buffer is already set."); if (value < ZlibConstants.WorkingBufferSizeMin) throw new ZlibException( $"Don't be silly. {value} bytes?? Use a bigger buffer, at least {ZlibConstants.WorkingBufferSizeMin}."); BaseStream.BufferSize = value; } } public override bool CanRead { get { if (_disposed) throw new ObjectDisposedException("DeflateStream"); return BaseStream.Stream.CanRead; } } public override bool CanSeek => false; public override bool CanWrite { get { if (_disposed) throw new ObjectDisposedException("DeflateStream"); return BaseStream.Stream.CanWrite; } } public virtual FlushType FlushMode { get => BaseStream.FlushMode; set { if (_disposed) throw new ObjectDisposedException("DeflateStream"); BaseStream.FlushMode = value; } } public override long Length => throw new NotImplementedException(); public override long Position { get { switch (BaseStream._streamMode) { case ZlibBaseStream.StreamMode.Writer: return BaseStream.Z.TotalBytesOut; case ZlibBaseStream.StreamMode.Reader: return BaseStream.Z.TotalBytesIn; default: return 0; } } set => throw new NotImplementedException(); } public CompressionStrategy Strategy { get => BaseStream.Strategy; set { if (_disposed) throw new ObjectDisposedException("DeflateStream"); BaseStream.Strategy = value; } } public virtual long TotalIn => BaseStream.Z.TotalBytesIn; public virtual long TotalOut => BaseStream.Z.TotalBytesOut; protected override void Dispose(bool disposing) { try { if (_disposed) return; if (disposing) BaseStream?.Close(); _disposed = true; } finally { base.Dispose(disposing); } } public static byte[] CompressBuffer(byte[] b) { using (var ms = new MemoryStream()) { Stream compressor = new DeflateStream(ms, CompressionMode.Compress, CompressionLevel.BestCompression); ZlibBaseStream.CompressBuffer(b, compressor); return ms.ToArray(); } } public static byte[] CompressString(string s) { using (var ms = new MemoryStream()) { Stream compressor = new DeflateStream(ms, CompressionMode.Compress, CompressionLevel.BestCompression); ZlibBaseStream.CompressString(s, compressor); return ms.ToArray(); } } public static byte[] UncompressBuffer(byte[] compressed) { using (var input = new MemoryStream(compressed)) { Stream decompressor = new DeflateStream(input, CompressionMode.Decompress); return ZlibBaseStream.UncompressBuffer(decompressor); } } public static string UncompressString(byte[] compressed) { using (var input = new MemoryStream(compressed)) { Stream decompressor = new DeflateStream(input, CompressionMode.Decompress); return ZlibBaseStream.UncompressString(decompressor); } } public override void Flush() { if (_disposed) throw new ObjectDisposedException("DeflateStream"); BaseStream.Flush(); } public override int Read(byte[] buffer, int offset, int count) { if (_disposed) throw new ObjectDisposedException("DeflateStream"); return BaseStream.Read(buffer, offset, count); } public override long Seek(long offset, SeekOrigin origin) { throw new NotImplementedException(); } public override void SetLength(long value) { throw new NotImplementedException(); } public override void Write(byte[] buffer, int offset, int count) { if (_disposed) throw new ObjectDisposedException("DeflateStream"); BaseStream.Write(buffer, offset, count); } } } ================================================ FILE: Source/BrawlStars.Utilities/Compression/ZLib/GZipStream.cs ================================================ using System; using System.IO; using System.Text; namespace BrawlStars.Utilities.Compression.ZLib { public class GZipStream : Stream { internal static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); internal static readonly Encoding Iso8859dash1 = Encoding.GetEncoding("iso-8859-1"); private string _comment; private bool _disposed; private string _fileName; private bool _firstReadDone; private int _headerByteCount; internal ZlibBaseStream BaseStream; public DateTime? LastModified; public GZipStream(Stream stream, CompressionMode mode) : this(stream, mode, CompressionLevel.Default, false) { } public GZipStream(Stream stream, CompressionMode mode, CompressionLevel level) : this(stream, mode, level, false) { } public GZipStream(Stream stream, CompressionMode mode, bool leaveOpen) : this(stream, mode, CompressionLevel.Default, leaveOpen) { } public GZipStream(Stream stream, CompressionMode mode, CompressionLevel level, bool leaveOpen) { BaseStream = new ZlibBaseStream(stream, mode, level, ZlibStreamFlavor.Gzip, leaveOpen); } public string Comment { get => _comment; set { if (_disposed) throw new ObjectDisposedException("GZipStream"); _comment = value; } } public string FileName { get => _fileName; set { if (_disposed) throw new ObjectDisposedException("GZipStream"); _fileName = value; if (_fileName == null) return; if (_fileName.IndexOf("/", StringComparison.Ordinal) != -1) _fileName = _fileName.Replace("/", "\\"); if (_fileName.EndsWith("\\")) throw new Exception("Illegal filename"); if (_fileName.IndexOf("\\", StringComparison.Ordinal) != -1) _fileName = Path.GetFileName(_fileName); } } public int Crc32 { get; private set; } public virtual FlushType FlushMode { get => BaseStream.FlushMode; set { if (_disposed) throw new ObjectDisposedException("GZipStream"); BaseStream.FlushMode = value; } } public int BufferSize { get => BaseStream.BufferSize; set { if (_disposed) throw new ObjectDisposedException("GZipStream"); if (BaseStream._workingBuffer != null) throw new ZlibException("The working buffer is already set."); if (value < ZlibConstants.WorkingBufferSizeMin) throw new ZlibException( $"Don't be silly. {value} bytes?? Use a bigger buffer, at least {ZlibConstants.WorkingBufferSizeMin}."); BaseStream.BufferSize = value; } } public virtual long TotalIn => BaseStream.Z.TotalBytesIn; public virtual long TotalOut => BaseStream.Z.TotalBytesOut; public override bool CanRead { get { if (_disposed) throw new ObjectDisposedException("GZipStream"); return BaseStream.Stream.CanRead; } } public override bool CanSeek => false; public override bool CanWrite { get { if (_disposed) throw new ObjectDisposedException("GZipStream"); return BaseStream.Stream.CanWrite; } } public override long Length => throw new NotImplementedException(); public override long Position { get { switch (BaseStream._streamMode) { case ZlibBaseStream.StreamMode.Writer: return BaseStream.Z.TotalBytesOut + _headerByteCount; case ZlibBaseStream.StreamMode.Reader: return BaseStream.Z.TotalBytesIn + BaseStream.GzipHeaderByteCount; default: return 0; } } set => throw new NotImplementedException(); } protected override void Dispose(bool disposing) { try { if (_disposed) return; if (disposing && BaseStream != null) { BaseStream.Close(); Crc32 = BaseStream.Crc32; } _disposed = true; } finally { base.Dispose(disposing); } } public override void Flush() { if (_disposed) throw new ObjectDisposedException("GZipStream"); BaseStream.Flush(); } public override int Read(byte[] buffer, int offset, int count) { if (_disposed) throw new ObjectDisposedException("GZipStream"); var n = BaseStream.Read(buffer, offset, count); if (_firstReadDone) return n; _firstReadDone = true; FileName = BaseStream.GzipFileName; Comment = BaseStream.GzipComment; return n; } public override long Seek(long offset, SeekOrigin origin) { throw new NotImplementedException(); } public override void SetLength(long value) { throw new NotImplementedException(); } public override void Write(byte[] buffer, int offset, int count) { if (_disposed) throw new ObjectDisposedException("GZipStream"); if (BaseStream._streamMode == ZlibBaseStream.StreamMode.Undefined) { if (BaseStream.WantCompress) _headerByteCount = EmitHeader(); else throw new InvalidOperationException(); } BaseStream.Write(buffer, offset, count); } private int EmitHeader() { var commentBytes = Comment == null ? null : Iso8859dash1.GetBytes(Comment); var filenameBytes = FileName == null ? null : Iso8859dash1.GetBytes(FileName); if (commentBytes != null) { var cbLength = Comment == null ? 0 : commentBytes.Length + 1; if (filenameBytes != null) { var fnLength = FileName == null ? 0 : filenameBytes.Length + 1; var bufferLength = 10 + cbLength + fnLength; var header = new byte[bufferLength]; var i = 0; header[i++] = 0x1F; header[i++] = 0x8B; header[i++] = 8; byte flag = 0; if (Comment != null) flag ^= 0x10; if (FileName != null) flag ^= 0x8; header[i++] = flag; if (!LastModified.HasValue) LastModified = DateTime.Now; var delta = LastModified.Value - UnixEpoch; var timet = (int) delta.TotalSeconds; Array.Copy(BitConverter.GetBytes(timet), 0, header, i, 4); i += 4; header[i++] = 0; header[i++] = 0xFF; if (fnLength != 0) { Array.Copy(filenameBytes, 0, header, i, fnLength - 1); i += fnLength - 1; header[i++] = 0; } if (cbLength != 0) { Array.Copy(commentBytes, 0, header, i, cbLength - 1); i += cbLength - 1; header[i++] = 0; } BaseStream.Stream.Write(header, 0, header.Length); return header.Length; } } return 0; } public static byte[] CompressString(string s) { using (var ms = new MemoryStream()) { Stream compressor = new GZipStream(ms, CompressionMode.Compress, CompressionLevel.BestCompression); ZlibBaseStream.CompressString(s, compressor); return ms.ToArray(); } } public static byte[] CompressBuffer(byte[] b) { using (var ms = new MemoryStream()) { Stream compressor = new GZipStream(ms, CompressionMode.Compress, CompressionLevel.BestCompression); ZlibBaseStream.CompressBuffer(b, compressor); return ms.ToArray(); } } public static string UncompressString(byte[] compressed) { using (var input = new MemoryStream(compressed)) { Stream decompressor = new GZipStream(input, CompressionMode.Decompress); return ZlibBaseStream.UncompressString(decompressor); } } public static byte[] UncompressBuffer(byte[] compressed) { using (var input = new MemoryStream(compressed)) { Stream decompressor = new GZipStream(input, CompressionMode.Decompress); return ZlibBaseStream.UncompressBuffer(decompressor); } } } } ================================================ FILE: Source/BrawlStars.Utilities/Compression/ZLib/InfTree.cs ================================================ using System; using System.Collections.Generic; namespace BrawlStars.Utilities.Compression.ZLib { internal sealed class InfTree { internal const int Bmax = 15; internal const int FixedBd = 5; internal const int FixedBl = 9; private const int Many = 1440; private const int ZBufError = -5; private const int ZDataError = -3; private const int ZMemError = -4; private const int ZOk = 0; internal static readonly int[] Cpdext = { 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 }; internal static readonly int[] Cpdist = { 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 }; internal static readonly int[] Cplens = { 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 }; internal static readonly int[] Cplext = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 112, 112 }; internal static readonly int[] FixedTd = { 80, 5, 1, 87, 5, 257, 83, 5, 17, 91, 5, 4097, 81, 5, 5, 89, 5, 1025, 85, 5, 65, 93, 5, 16385, 80, 5, 3, 88, 5, 513, 84, 5, 33, 92, 5, 8193, 82, 5, 9, 90, 5, 2049, 86, 5, 129, 192, 5, 24577, 80, 5, 2, 87, 5, 385, 83, 5, 25, 91, 5, 6145, 81, 5, 7, 89, 5, 1537, 85, 5, 97, 93, 5, 24577, 80, 5, 4, 88, 5, 769, 84, 5, 49, 92, 5, 12289, 82, 5, 13, 90, 5, 3073, 86, 5, 193, 192, 5, 24577 }; internal static readonly int[] FixedTl = { 96, 7, 256, 0, 8, 80, 0, 8, 16, 84, 8, 115, 82, 7, 31, 0, 8, 112, 0, 8, 48, 0, 9, 192, 80, 7, 10, 0, 8, 96, 0, 8, 32, 0, 9, 160, 0, 8, 0, 0, 8, 128, 0, 8, 64, 0, 9, 224, 80, 7, 6, 0, 8, 88, 0, 8, 24, 0, 9, 144, 83, 7, 59, 0, 8, 120, 0, 8, 56, 0, 9, 208, 81, 7, 17, 0, 8, 104, 0, 8, 40, 0, 9, 176, 0, 8, 8, 0, 8, 136, 0, 8, 72, 0, 9, 240, 80, 7, 4, 0, 8, 84, 0, 8, 20, 85, 8, 227, 83, 7, 43, 0, 8, 116, 0, 8, 52, 0, 9, 200, 81, 7, 13, 0, 8, 100, 0, 8, 36, 0, 9, 168, 0, 8, 4, 0, 8, 132, 0, 8, 68, 0, 9, 232, 80, 7, 8, 0, 8, 92, 0, 8, 28, 0, 9, 152, 84, 7, 83, 0, 8, 124, 0, 8, 60, 0, 9, 216, 82, 7, 23, 0, 8, 108, 0, 8, 44, 0, 9, 184, 0, 8, 12, 0, 8, 140, 0, 8, 76, 0, 9, 248, 80, 7, 3, 0, 8, 82, 0, 8, 18, 85, 8, 163, 83, 7, 35, 0, 8, 114, 0, 8, 50, 0, 9, 196, 81, 7, 11, 0, 8, 98, 0, 8, 34, 0, 9, 164, 0, 8, 2, 0, 8, 130, 0, 8, 66, 0, 9, 228, 80, 7, 7, 0, 8, 90, 0, 8, 26, 0, 9, 148, 84, 7, 67, 0, 8, 122, 0, 8, 58, 0, 9, 212, 82, 7, 19, 0, 8, 106, 0, 8, 42, 0, 9, 180, 0, 8, 10, 0, 8, 138, 0, 8, 74, 0, 9, 244, 80, 7, 5, 0, 8, 86, 0, 8, 22, 192, 8, 0, 83, 7, 51, 0, 8, 118, 0, 8, 54, 0, 9, 204, 81, 7, 15, 0, 8, 102, 0, 8, 38, 0, 9, 172, 0, 8, 6, 0, 8, 134, 0, 8, 70, 0, 9, 236, 80, 7, 9, 0, 8, 94, 0, 8, 30, 0, 9, 156, 84, 7, 99, 0, 8, 126, 0, 8, 62, 0, 9, 220, 82, 7, 27, 0, 8, 110, 0, 8, 46, 0, 9, 188, 0, 8, 14, 0, 8, 142, 0, 8, 78, 0, 9, 252, 96, 7, 256, 0, 8, 81, 0, 8, 17, 85, 8, 131, 82, 7, 31, 0, 8, 113, 0, 8, 49, 0, 9, 194, 80, 7, 10, 0, 8, 97, 0, 8, 33, 0, 9, 162, 0, 8, 1, 0, 8, 129, 0, 8, 65, 0, 9, 226, 80, 7, 6, 0, 8, 89, 0, 8, 25, 0, 9, 146, 83, 7, 59, 0, 8, 121, 0, 8, 57, 0, 9, 210, 81, 7, 17, 0, 8, 105, 0, 8, 41, 0, 9, 178, 0, 8, 9, 0, 8, 137, 0, 8, 73, 0, 9, 242, 80, 7, 4, 0, 8, 85, 0, 8, 21, 80, 8, 258, 83, 7, 43, 0, 8, 117, 0, 8, 53, 0, 9, 202, 81, 7, 13, 0, 8, 101, 0, 8, 37, 0, 9, 170, 0, 8, 5, 0, 8, 133, 0, 8, 69, 0, 9, 234, 80, 7, 8, 0, 8, 93, 0, 8, 29, 0, 9, 154, 84, 7, 83, 0, 8, 125, 0, 8, 61, 0, 9, 218, 82, 7, 23, 0, 8, 109, 0, 8, 45, 0, 9, 186, 0, 8, 13, 0, 8, 141, 0, 8, 77, 0, 9, 250, 80, 7, 3, 0, 8, 83, 0, 8, 19, 85, 8, 195, 83, 7, 35, 0, 8, 115, 0, 8, 51, 0, 9, 198, 81, 7, 11, 0, 8, 99, 0, 8, 35, 0, 9, 166, 0, 8, 3, 0, 8, 131, 0, 8, 67, 0, 9, 230, 80, 7, 7, 0, 8, 91, 0, 8, 27, 0, 9, 150, 84, 7, 67, 0, 8, 123, 0, 8, 59, 0, 9, 214, 82, 7, 19, 0, 8, 107, 0, 8, 43, 0, 9, 182, 0, 8, 11, 0, 8, 139, 0, 8, 75, 0, 9, 246, 80, 7, 5, 0, 8, 87, 0, 8, 23, 192, 8, 0, 83, 7, 51, 0, 8, 119, 0, 8, 55, 0, 9, 206, 81, 7, 15, 0, 8, 103, 0, 8, 39, 0, 9, 174, 0, 8, 7, 0, 8, 135, 0, 8, 71, 0, 9, 238, 80, 7, 9, 0, 8, 95, 0, 8, 31, 0, 9, 158, 84, 7, 99, 0, 8, 127, 0, 8, 63, 0, 9, 222, 82, 7, 27, 0, 8, 111, 0, 8, 47, 0, 9, 190, 0, 8, 15, 0, 8, 143, 0, 8, 79, 0, 9, 254, 96, 7, 256, 0, 8, 80, 0, 8, 16, 84, 8, 115, 82, 7, 31, 0, 8, 112, 0, 8, 48, 0, 9, 193, 80, 7, 10, 0, 8, 96, 0, 8, 32, 0, 9, 161, 0, 8, 0, 0, 8, 128, 0, 8, 64, 0, 9, 225, 80, 7, 6, 0, 8, 88, 0, 8, 24, 0, 9, 145, 83, 7, 59, 0, 8, 120, 0, 8, 56, 0, 9, 209, 81, 7, 17, 0, 8, 104, 0, 8, 40, 0, 9, 177, 0, 8, 8, 0, 8, 136, 0, 8, 72, 0, 9, 241, 80, 7, 4, 0, 8, 84, 0, 8, 20, 85, 8, 227, 83, 7, 43, 0, 8, 116, 0, 8, 52, 0, 9, 201, 81, 7, 13, 0, 8, 100, 0, 8, 36, 0, 9, 169, 0, 8, 4, 0, 8, 132, 0, 8, 68, 0, 9, 233, 80, 7, 8, 0, 8, 92, 0, 8, 28, 0, 9, 153, 84, 7, 83, 0, 8, 124, 0, 8, 60, 0, 9, 217, 82, 7, 23, 0, 8, 108, 0, 8, 44, 0, 9, 185, 0, 8, 12, 0, 8, 140, 0, 8, 76, 0, 9, 249, 80, 7, 3, 0, 8, 82, 0, 8, 18, 85, 8, 163, 83, 7, 35, 0, 8, 114, 0, 8, 50, 0, 9, 197, 81, 7, 11, 0, 8, 98, 0, 8, 34, 0, 9, 165, 0, 8, 2, 0, 8, 130, 0, 8, 66, 0, 9, 229, 80, 7, 7, 0, 8, 90, 0, 8, 26, 0, 9, 149, 84, 7, 67, 0, 8, 122, 0, 8, 58, 0, 9, 213, 82, 7, 19, 0, 8, 106, 0, 8, 42, 0, 9, 181, 0, 8, 10, 0, 8, 138, 0, 8, 74, 0, 9, 245, 80, 7, 5, 0, 8, 86, 0, 8, 22, 192, 8, 0, 83, 7, 51, 0, 8, 118, 0, 8, 54, 0, 9, 205, 81, 7, 15, 0, 8, 102, 0, 8, 38, 0, 9, 173, 0, 8, 6, 0, 8, 134, 0, 8, 70, 0, 9, 237, 80, 7, 9, 0, 8, 94, 0, 8, 30, 0, 9, 157, 84, 7, 99, 0, 8, 126, 0, 8, 62, 0, 9, 221, 82, 7, 27, 0, 8, 110, 0, 8, 46, 0, 9, 189, 0, 8, 14, 0, 8, 142, 0, 8, 78, 0, 9, 253, 96, 7, 256, 0, 8, 81, 0, 8, 17, 85, 8, 131, 82, 7, 31, 0, 8, 113, 0, 8, 49, 0, 9, 195, 80, 7, 10, 0, 8, 97, 0, 8, 33, 0, 9, 163, 0, 8, 1, 0, 8, 129, 0, 8, 65, 0, 9, 227, 80, 7, 6, 0, 8, 89, 0, 8, 25, 0, 9, 147, 83, 7, 59, 0, 8, 121, 0, 8, 57, 0, 9, 211, 81, 7, 17, 0, 8, 105, 0, 8, 41, 0, 9, 179, 0, 8, 9, 0, 8, 137, 0, 8, 73, 0, 9, 243, 80, 7, 4, 0, 8, 85, 0, 8, 21, 80, 8, 258, 83, 7, 43, 0, 8, 117, 0, 8, 53, 0, 9, 203, 81, 7, 13, 0, 8, 101, 0, 8, 37, 0, 9, 171, 0, 8, 5, 0, 8, 133, 0, 8, 69, 0, 9, 235, 80, 7, 8, 0, 8, 93, 0, 8, 29, 0, 9, 155, 84, 7, 83, 0, 8, 125, 0, 8, 61, 0, 9, 219, 82, 7, 23, 0, 8, 109, 0, 8, 45, 0, 9, 187, 0, 8, 13, 0, 8, 141, 0, 8, 77, 0, 9, 251, 80, 7, 3, 0, 8, 83, 0, 8, 19, 85, 8, 195, 83, 7, 35, 0, 8, 115, 0, 8, 51, 0, 9, 199, 81, 7, 11, 0, 8, 99, 0, 8, 35, 0, 9, 167, 0, 8, 3, 0, 8, 131, 0, 8, 67, 0, 9, 231, 80, 7, 7, 0, 8, 91, 0, 8, 27, 0, 9, 151, 84, 7, 67, 0, 8, 123, 0, 8, 59, 0, 9, 215, 82, 7, 19, 0, 8, 107, 0, 8, 43, 0, 9, 183, 0, 8, 11, 0, 8, 139, 0, 8, 75, 0, 9, 247, 80, 7, 5, 0, 8, 87, 0, 8, 23, 192, 8, 0, 83, 7, 51, 0, 8, 119, 0, 8, 55, 0, 9, 207, 81, 7, 15, 0, 8, 103, 0, 8, 39, 0, 9, 175, 0, 8, 7, 0, 8, 135, 0, 8, 71, 0, 9, 239, 80, 7, 9, 0, 8, 95, 0, 8, 31, 0, 9, 159, 84, 7, 99, 0, 8, 127, 0, 8, 63, 0, 9, 223, 82, 7, 27, 0, 8, 111, 0, 8, 47, 0, 9, 191, 0, 8, 15, 0, 8, 143, 0, 8, 79, 0, 9, 255 }; internal int[] C; internal int[] Hn; internal int[] R; internal int[] U; internal int[] V; internal int[] X; internal static int Inflate_trees_fixed(int[] bl, int[] bd, int[][] tl, int[][] td, ZlibCodec z) { bl[0] = FixedBl; bd[0] = FixedBd; tl[0] = FixedTl; td[0] = FixedTd; return ZOk; } internal int Inflate_trees_bits(int[] c, int[] bb, int[] tb, int[] hp, ZlibCodec z) { InitWorkArea(19); Hn[0] = 0; var result = Huft_build(c, 0, 19, 19, null, null, tb, bb, hp, Hn, V); if (result == ZDataError) { z.Message = "oversubscribed dynamic bit lengths tree"; } else if (result == ZBufError || bb[0] == 0) { z.Message = "incomplete dynamic bit lengths tree"; result = ZDataError; } return result; } internal int Inflate_trees_dynamic(int nl, int nd, int[] c, int[] bl, int[] bd, int[] tl, int[] td, int[] hp, ZlibCodec z) { InitWorkArea(288); Hn[0] = 0; var result = Huft_build(c, 0, nl, 257, Cplens, Cplext, tl, bl, hp, Hn, V); if (result != ZOk || bl[0] == 0) { if (result == ZDataError) { z.Message = "oversubscribed literal/length tree"; } else if (result != ZMemError) { z.Message = "incomplete literal/length tree"; result = ZDataError; } return result; } InitWorkArea(288); result = Huft_build(c, nl, nd, 0, Cpdist, Cpdext, td, bd, hp, Hn, V); switch (result) { case ZOk when bd[0] != 0 || nl <= 257: return ZOk; case ZDataError: z.Message = "oversubscribed distance tree"; break; case ZBufError: z.Message = "incomplete distance tree"; result = ZDataError; break; default: { if (result != ZMemError) { z.Message = "empty distance tree with lengths"; result = ZDataError; } break; } } return result; } private int Huft_build(IReadOnlyList b, int bindex, int n, int s, IReadOnlyList d, IReadOnlyList e, IList t, IList m, int[] hp, IList hn, IList v) { int j; int y; var p = 0; var i = n; do { C[b[bindex + p]]++; p++; i--; } while (i != 0); if (C[0] == n) { t[0] = -1; m[0] = 0; return ZOk; } var l = m[0]; for (j = 1; j <= Bmax; j++) if (C[j] != 0) break; var k = j; if (l < j) l = j; for (i = Bmax; i != 0; i--) if (C[i] != 0) break; var g = i; if (l > i) l = i; m[0] = l; for (y = 1 << j; j < i; j++, y <<= 1) if ((y -= C[j]) < 0) return ZDataError; if ((y -= C[i]) < 0) return ZDataError; C[i] += y; X[1] = j = 0; p = 1; var xp = 2; while (--i != 0) { X[xp] = j += C[p]; xp++; p++; } i = 0; p = 0; do { if ((j = b[bindex + p]) != 0) v[X[j]++] = i; p++; } while (++i < n); n = X[g]; X[0] = i = 0; p = 0; var h = -1; var w = -l; U[0] = 0; var q = 0; var z = 0; for (; k <= g; k++) { var a = C[k]; while (a-- != 0) { int f; while (k > w + l) { h++; w += l; z = g - w; z = z > l ? l : z; if ((f = 1 << (j = k - w)) > a + 1) { f -= a + 1; xp = k; if (j < z) while (++j < z) { if ((f <<= 1) <= C[++xp]) break; f -= C[xp]; } } z = 1 << j; if (hn[0] + z > Many) return ZDataError; U[h] = q = hn[0]; hn[0] += z; if (h != 0) { X[h] = i; R[0] = (sbyte) j; R[1] = (sbyte) l; j = SharedUtils.UrShift(i, w - l); R[2] = q - U[h - 1] - j; Array.Copy(R, 0, hp, (U[h - 1] + j) * 3, 3); } else { t[0] = q; } } R[1] = (sbyte) (k - w); if (p >= n) { R[0] = 128 + 64; } else if (v[p] < s) { R[0] = (sbyte) (v[p] < 256 ? 0 : 32 + 64); R[2] = v[p++]; } else { R[0] = (sbyte) (e[v[p] - s] + 16 + 64); R[2] = d[v[p++] - s]; } f = 1 << (k - w); for (j = SharedUtils.UrShift(i, w); j < z; j += f) Array.Copy(R, 0, hp, (q + j) * 3, 3); for (j = 1 << (k - 1); (i & j) != 0; j = SharedUtils.UrShift(j, 1)) i ^= j; i ^= j; var mask = (1 << w) - 1; while ((i & mask) != X[h]) { h--; w -= l; mask = (1 << w) - 1; } } } return y != 0 && g != 1 ? ZBufError : ZOk; } private void InitWorkArea(int vsize) { if (Hn == null) { Hn = new int[1]; V = new int[vsize]; C = new int[Bmax + 1]; R = new int[3]; U = new int[Bmax]; X = new int[Bmax + 1]; } else { if (V.Length < vsize) V = new int[vsize]; Array.Clear(V, 0, vsize); Array.Clear(C, 0, Bmax + 1); R[0] = 0; R[1] = 0; R[2] = 0; Array.Clear(U, 0, Bmax); Array.Clear(X, 0, Bmax + 1); } } } } ================================================ FILE: Source/BrawlStars.Utilities/Compression/ZLib/Inflate.cs ================================================ using System; namespace BrawlStars.Utilities.Compression.ZLib { internal static class InternalInflateConstants { internal static readonly int[] InflateMask = { 0x00000000, 0x00000001, 0x00000003, 0x00000007, 0x0000000f, 0x0000001f, 0x0000003f, 0x0000007f, 0x000000ff, 0x000001ff, 0x000003ff, 0x000007ff, 0x00000fff, 0x00001fff, 0x00003fff, 0x00007fff, 0x0000ffff }; } internal sealed class InflateBlocks { private const int Many = 1440; internal static readonly int[] Border = {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; private InflateBlockMode _mode; internal int[] Bb = new int[1]; internal int Bitb; internal int Bitk; internal int[] Blens; internal uint Check; internal object Checkfn; internal ZlibCodec Codec; internal InflateCodes Codes = new InflateCodes(); internal int End; internal int[] Hufts; internal int Index; internal InfTree Inftree = new InfTree(); internal int Last; internal int Left; internal int ReadAt; internal int Table; internal int[] Tb = new int[1]; internal byte[] Window; internal int WriteAt; internal InflateBlocks(ZlibCodec codec, object checkfn, int w) { Codec = codec; Hufts = new int[Many * 3]; Window = new byte[w]; End = w; Checkfn = checkfn; _mode = InflateBlockMode.TYPE; Reset(); } internal int Flush(int r) { for (var pass = 0; pass < 2; pass++) { int nBytes; if (pass == 0) nBytes = (ReadAt <= WriteAt ? WriteAt : End) - ReadAt; else nBytes = WriteAt - ReadAt; if (nBytes == 0) { if (r == ZlibConstants.ZBufError) r = ZlibConstants.ZOk; return r; } if (nBytes > Codec.AvailableBytesOut) nBytes = Codec.AvailableBytesOut; if (nBytes != 0 && r == ZlibConstants.ZBufError) r = ZlibConstants.ZOk; Codec.AvailableBytesOut -= nBytes; Codec.TotalBytesOut += nBytes; if (Checkfn != null) Codec._Adler32 = Check = Adler.Adler32(Check, Window, ReadAt, nBytes); Array.Copy(Window, ReadAt, Codec.OutputBuffer, Codec.NextOut, nBytes); Codec.NextOut += nBytes; ReadAt += nBytes; if (ReadAt == End && pass == 0) { ReadAt = 0; if (WriteAt == End) WriteAt = 0; } else { pass++; } } return r; } internal void Free() { Reset(); Window = null; Hufts = null; } internal int Process(int r) { int t; var p = Codec.NextIn; var n = Codec.AvailableBytesIn; var b = Bitb; var k = Bitk; var q = WriteAt; var m = q < ReadAt ? ReadAt - q - 1 : End - q; while (true) switch (_mode) { case InflateBlockMode.TYPE: while (k < 3) { if (n != 0) { r = ZlibConstants.ZOk; } else { Bitb = b; Bitk = k; Codec.AvailableBytesIn = n; Codec.TotalBytesIn += p - Codec.NextIn; Codec.NextIn = p; WriteAt = q; return Flush(r); } n--; b |= (Codec.InputBuffer[p++] & 0xff) << k; k += 8; } t = b & 7; Last = t & 1; switch ((uint) t >> 1) { case 0: b >>= 3; k -= 3; t = k & 7; b >>= t; k -= t; _mode = InflateBlockMode.LENS; break; case 1: var bl = new int[1]; var bd = new int[1]; var tl = new int[1][]; var td = new int[1][]; InfTree.Inflate_trees_fixed(bl, bd, tl, td, Codec); Codes.Init(bl[0], bd[0], tl[0], 0, td[0], 0); b >>= 3; k -= 3; _mode = InflateBlockMode.CODES; break; case 2: b >>= 3; k -= 3; _mode = InflateBlockMode.TABLE; break; case 3: b >>= 3; k -= 3; _mode = InflateBlockMode.BAD; Codec.Message = "invalid block type"; r = ZlibConstants.ZDataError; Bitb = b; Bitk = k; Codec.AvailableBytesIn = n; Codec.TotalBytesIn += p - Codec.NextIn; Codec.NextIn = p; WriteAt = q; return Flush(r); } break; case InflateBlockMode.LENS: while (k < 32) { if (n != 0) { r = ZlibConstants.ZOk; } else { Bitb = b; Bitk = k; Codec.AvailableBytesIn = n; Codec.TotalBytesIn += p - Codec.NextIn; Codec.NextIn = p; WriteAt = q; return Flush(r); } ; n--; b |= (Codec.InputBuffer[p++] & 0xff) << k; k += 8; } if (((~b >> 16) & 0xffff) != (b & 0xffff)) { _mode = InflateBlockMode.BAD; Codec.Message = "invalid stored block lengths"; r = ZlibConstants.ZDataError; Bitb = b; Bitk = k; Codec.AvailableBytesIn = n; Codec.TotalBytesIn += p - Codec.NextIn; Codec.NextIn = p; WriteAt = q; return Flush(r); } Left = b & 0xffff; b = k = 0; _mode = Left != 0 ? InflateBlockMode.STORED : Last != 0 ? InflateBlockMode.DRY : InflateBlockMode.TYPE; break; case InflateBlockMode.STORED: if (n == 0) { Bitb = b; Bitk = k; Codec.AvailableBytesIn = n; Codec.TotalBytesIn += p - Codec.NextIn; Codec.NextIn = p; WriteAt = q; return Flush(r); } if (m == 0) { if (q == End && ReadAt != 0) { q = 0; m = q < ReadAt ? ReadAt - q - 1 : End - q; } if (m == 0) { WriteAt = q; r = Flush(r); q = WriteAt; m = q < ReadAt ? ReadAt - q - 1 : End - q; if (q == End && ReadAt != 0) { q = 0; m = q < ReadAt ? ReadAt - q - 1 : End - q; } if (m == 0) { Bitb = b; Bitk = k; Codec.AvailableBytesIn = n; Codec.TotalBytesIn += p - Codec.NextIn; Codec.NextIn = p; WriteAt = q; return Flush(r); } } } r = ZlibConstants.ZOk; t = Left; if (t > n) t = n; if (t > m) t = m; Array.Copy(Codec.InputBuffer, p, Window, q, t); p += t; n -= t; q += t; m -= t; if ((Left -= t) != 0) break; _mode = Last != 0 ? InflateBlockMode.DRY : InflateBlockMode.TYPE; break; case InflateBlockMode.TABLE: while (k < 14) { if (n != 0) { r = ZlibConstants.ZOk; } else { Bitb = b; Bitk = k; Codec.AvailableBytesIn = n; Codec.TotalBytesIn += p - Codec.NextIn; Codec.NextIn = p; WriteAt = q; return Flush(r); } n--; b |= (Codec.InputBuffer[p++] & 0xff) << k; k += 8; } Table = t = b & 0x3fff; if ((t & 0x1f) > 29 || ((t >> 5) & 0x1f) > 29) { _mode = InflateBlockMode.BAD; Codec.Message = "too many length or distance symbols"; r = ZlibConstants.ZDataError; Bitb = b; Bitk = k; Codec.AvailableBytesIn = n; Codec.TotalBytesIn += p - Codec.NextIn; Codec.NextIn = p; WriteAt = q; return Flush(r); } t = 258 + (t & 0x1f) + ((t >> 5) & 0x1f); if (Blens == null || Blens.Length < t) Blens = new int[t]; else Array.Clear(Blens, 0, t); b >>= 14; k -= 14; Index = 0; _mode = InflateBlockMode.BTREE; goto case InflateBlockMode.BTREE; case InflateBlockMode.BTREE: while (Index < 4 + (Table >> 10)) { while (k < 3) { if (n != 0) { r = ZlibConstants.ZOk; } else { Bitb = b; Bitk = k; Codec.AvailableBytesIn = n; Codec.TotalBytesIn += p - Codec.NextIn; Codec.NextIn = p; WriteAt = q; return Flush(r); } n--; b |= (Codec.InputBuffer[p++] & 0xff) << k; k += 8; } Blens[Border[Index++]] = b & 7; b >>= 3; k -= 3; } while (Index < 19) Blens[Border[Index++]] = 0; Bb[0] = 7; t = Inftree.Inflate_trees_bits(Blens, Bb, Tb, Hufts, Codec); if (t != ZlibConstants.ZOk) { r = t; if (r == ZlibConstants.ZDataError) { Blens = null; _mode = InflateBlockMode.BAD; } Bitb = b; Bitk = k; Codec.AvailableBytesIn = n; Codec.TotalBytesIn += p - Codec.NextIn; Codec.NextIn = p; WriteAt = q; return Flush(r); } Index = 0; _mode = InflateBlockMode.DTREE; goto case InflateBlockMode.DTREE; case InflateBlockMode.DTREE: while (true) { t = Table; if (!(Index < 258 + (t & 0x1f) + ((t >> 5) & 0x1f))) break; t = Bb[0]; while (k < t) { if (n != 0) { r = ZlibConstants.ZOk; } else { Bitb = b; Bitk = k; Codec.AvailableBytesIn = n; Codec.TotalBytesIn += p - Codec.NextIn; Codec.NextIn = p; WriteAt = q; return Flush(r); } n--; b |= (Codec.InputBuffer[p++] & 0xff) << k; k += 8; } t = Hufts[(Tb[0] + (b & InternalInflateConstants.InflateMask[t])) * 3 + 1]; var c = Hufts[(Tb[0] + (b & InternalInflateConstants.InflateMask[t])) * 3 + 2]; if (c < 16) { b >>= t; k -= t; Blens[Index++] = c; } else { var i = c == 18 ? 7 : c - 14; var j = c == 18 ? 11 : 3; while (k < t + i) { if (n != 0) { r = ZlibConstants.ZOk; } else { Bitb = b; Bitk = k; Codec.AvailableBytesIn = n; Codec.TotalBytesIn += p - Codec.NextIn; Codec.NextIn = p; WriteAt = q; return Flush(r); } n--; b |= (Codec.InputBuffer[p++] & 0xff) << k; k += 8; } b >>= t; k -= t; j += b & InternalInflateConstants.InflateMask[i]; b >>= i; k -= i; i = Index; t = Table; if (i + j > 258 + (t & 0x1f) + ((t >> 5) & 0x1f) || c == 16 && i < 1) { Blens = null; _mode = InflateBlockMode.BAD; Codec.Message = "invalid bit length repeat"; r = ZlibConstants.ZDataError; Bitb = b; Bitk = k; Codec.AvailableBytesIn = n; Codec.TotalBytesIn += p - Codec.NextIn; Codec.NextIn = p; WriteAt = q; return Flush(r); } c = c == 16 ? Blens[i - 1] : 0; do { Blens[i++] = c; } while (--j != 0); Index = i; } } Tb[0] = -1; { int[] bl = {9}; int[] bd = {6}; var tl = new int[1]; var td = new int[1]; t = Table; t = Inftree.Inflate_trees_dynamic(257 + (t & 0x1f), 1 + ((t >> 5) & 0x1f), Blens, bl, bd, tl, td, Hufts, Codec); if (t != ZlibConstants.ZOk) { if (t == ZlibConstants.ZDataError) { Blens = null; _mode = InflateBlockMode.BAD; } r = t; Bitb = b; Bitk = k; Codec.AvailableBytesIn = n; Codec.TotalBytesIn += p - Codec.NextIn; Codec.NextIn = p; WriteAt = q; return Flush(r); } Codes.Init(bl[0], bd[0], Hufts, tl[0], Hufts, td[0]); } _mode = InflateBlockMode.CODES; goto case InflateBlockMode.CODES; case InflateBlockMode.CODES: Bitb = b; Bitk = k; Codec.AvailableBytesIn = n; Codec.TotalBytesIn += p - Codec.NextIn; Codec.NextIn = p; WriteAt = q; r = Codes.Process(this, r); if (r != ZlibConstants.ZStreamEnd) return Flush(r); r = ZlibConstants.ZOk; p = Codec.NextIn; n = Codec.AvailableBytesIn; b = Bitb; k = Bitk; q = WriteAt; m = q < ReadAt ? ReadAt - q - 1 : End - q; if (Last == 0) { _mode = InflateBlockMode.TYPE; break; } _mode = InflateBlockMode.DRY; goto case InflateBlockMode.DRY; case InflateBlockMode.DRY: WriteAt = q; r = Flush(r); q = WriteAt; if (ReadAt != WriteAt) { Bitb = b; Bitk = k; Codec.AvailableBytesIn = n; Codec.TotalBytesIn += p - Codec.NextIn; Codec.NextIn = p; WriteAt = q; return Flush(r); } _mode = InflateBlockMode.DONE; goto case InflateBlockMode.DONE; case InflateBlockMode.DONE: r = ZlibConstants.ZStreamEnd; Bitb = b; Bitk = k; Codec.AvailableBytesIn = n; Codec.TotalBytesIn += p - Codec.NextIn; Codec.NextIn = p; WriteAt = q; return Flush(r); case InflateBlockMode.BAD: r = ZlibConstants.ZDataError; Bitb = b; Bitk = k; Codec.AvailableBytesIn = n; Codec.TotalBytesIn += p - Codec.NextIn; Codec.NextIn = p; WriteAt = q; return Flush(r); default: r = ZlibConstants.ZStreamError; Bitb = b; Bitk = k; Codec.AvailableBytesIn = n; Codec.TotalBytesIn += p - Codec.NextIn; Codec.NextIn = p; WriteAt = q; return Flush(r); } } internal uint Reset() { var oldCheck = Check; _mode = InflateBlockMode.TYPE; Bitk = 0; Bitb = 0; ReadAt = WriteAt = 0; if (Checkfn != null) Codec._Adler32 = Check = Adler.Adler32(0, null, 0, 0); return oldCheck; } internal void SetDictionary(byte[] d, int start, int n) { Array.Copy(d, start, Window, 0, n); ReadAt = WriteAt = n; } internal int SyncPoint() { return _mode == InflateBlockMode.LENS ? 1 : 0; } private enum InflateBlockMode { TYPE = 0, // get type bits (3, including end bit) LENS = 1, // get lengths for stored STORED = 2, // processing stored block TABLE = 3, // get table lengths BTREE = 4, // get bit lengths tree for a dynamic block DTREE = 5, // get length, distance trees for a dynamic block CODES = 6, // processing fixed or dynamic block DRY = 7, // output remaining window bytes DONE = 8, // finished last block, done BAD = 9 // ot a data error--stuck here } } internal sealed class InflateCodes { private const int BADCODE = 9; private const int COPY = 5; private const int DIST = 3; private const int DISTEXT = 4; private const int END = 8; private const int LEN = 1; private const int LENEXT = 2; private const int LIT = 6; private const int START = 0; private const int WASH = 7; internal int bitsToGet; internal byte dbits; internal int dist; internal int[] dtree; internal int dtree_index; internal byte lbits; internal int len; internal int lit; internal int[] ltree; internal int ltree_index; internal int mode; internal int need; internal int[] tree; internal int tree_index; internal int InflateFast(int bl, int bd, int[] tl, int tlIndex, int[] td, int tdIndex, InflateBlocks s, ZlibCodec z) { int c; var p = z.NextIn; var n = z.AvailableBytesIn; var b = s.Bitb; var k = s.Bitk; var q = s.WriteAt; var m = q < s.ReadAt ? s.ReadAt - q - 1 : s.End - q; var ml = InternalInflateConstants.InflateMask[bl]; var md = InternalInflateConstants.InflateMask[bd]; do { while (k < 20) { n--; b |= (z.InputBuffer[p++] & 0xff) << k; k += 8; } var t = b & ml; var tp = tl; var tpIndex = tlIndex; var tpIndexT3 = (tpIndex + t) * 3; int e; if ((e = tp[tpIndexT3]) == 0) { b >>= tp[tpIndexT3 + 1]; k -= tp[tpIndexT3 + 1]; s.Window[q++] = (byte) tp[tpIndexT3 + 2]; m--; continue; } do { b >>= tp[tpIndexT3 + 1]; k -= tp[tpIndexT3 + 1]; if ((e & 16) != 0) { e &= 15; c = tp[tpIndexT3 + 2] + (b & InternalInflateConstants.InflateMask[e]); b >>= e; k -= e; while (k < 15) { n--; b |= (z.InputBuffer[p++] & 0xff) << k; k += 8; } t = b & md; tp = td; tpIndex = tdIndex; tpIndexT3 = (tpIndex + t) * 3; e = tp[tpIndexT3]; do { b >>= tp[tpIndexT3 + 1]; k -= tp[tpIndexT3 + 1]; if ((e & 16) != 0) { e &= 15; while (k < e) { n--; b |= (z.InputBuffer[p++] & 0xff) << k; k += 8; } var d = tp[tpIndexT3 + 2] + (b & InternalInflateConstants.InflateMask[e]); b >>= e; k -= e; m -= c; int r; if (q >= d) { r = q - d; if (q - r > 0 && 2 > q - r) { s.Window[q++] = s.Window[r++]; s.Window[q++] = s.Window[r++]; c -= 2; } else { Array.Copy(s.Window, r, s.Window, q, 2); q += 2; r += 2; c -= 2; } } else { r = q - d; do { r += s.End; } while (r < 0); e = s.End - r; if (c > e) { c -= e; if (q - r > 0 && e > q - r) { do { s.Window[q++] = s.Window[r++]; } while (--e != 0); } else { Array.Copy(s.Window, r, s.Window, q, e); q += e; } r = 0; } } if (q - r > 0 && c > q - r) { do { s.Window[q++] = s.Window[r++]; } while (--c != 0); } else { Array.Copy(s.Window, r, s.Window, q, c); q += c; } break; } if ((e & 64) == 0) { t += tp[tpIndexT3 + 2]; t += b & InternalInflateConstants.InflateMask[e]; tpIndexT3 = (tpIndex + t) * 3; e = tp[tpIndexT3]; } else { z.Message = "invalid distance code"; c = z.AvailableBytesIn - n; c = k >> 3 < c ? k >> 3 : c; n += c; p -= c; k -= c << 3; s.Bitb = b; s.Bitk = k; z.AvailableBytesIn = n; z.TotalBytesIn += p - z.NextIn; z.NextIn = p; s.WriteAt = q; return ZlibConstants.ZDataError; } } while (true); break; } if ((e & 64) == 0) { t += tp[tpIndexT3 + 2]; t += b & InternalInflateConstants.InflateMask[e]; tpIndexT3 = (tpIndex + t) * 3; if ((e = tp[tpIndexT3]) != 0) continue; b >>= tp[tpIndexT3 + 1]; k -= tp[tpIndexT3 + 1]; s.Window[q++] = (byte) tp[tpIndexT3 + 2]; m--; break; } if ((e & 32) != 0) { c = z.AvailableBytesIn - n; c = k >> 3 < c ? k >> 3 : c; n += c; p -= c; k -= c << 3; s.Bitb = b; s.Bitk = k; z.AvailableBytesIn = n; z.TotalBytesIn += p - z.NextIn; z.NextIn = p; s.WriteAt = q; return ZlibConstants.ZStreamEnd; } z.Message = "invalid literal/length code"; c = z.AvailableBytesIn - n; c = k >> 3 < c ? k >> 3 : c; n += c; p -= c; k -= c << 3; s.Bitb = b; s.Bitk = k; z.AvailableBytesIn = n; z.TotalBytesIn += p - z.NextIn; z.NextIn = p; s.WriteAt = q; return ZlibConstants.ZDataError; } while (true); } while (m >= 258 && n >= 10); c = z.AvailableBytesIn - n; c = k >> 3 < c ? k >> 3 : c; n += c; p -= c; k -= c << 3; s.Bitb = b; s.Bitk = k; z.AvailableBytesIn = n; z.TotalBytesIn += p - z.NextIn; z.NextIn = p; s.WriteAt = q; return ZlibConstants.ZOk; } internal void Init(int bl, int bd, int[] tl, int tlIndex, int[] td, int tdIndex) { mode = START; lbits = (byte) bl; dbits = (byte) bd; ltree = tl; ltree_index = tlIndex; dtree = td; dtree_index = tdIndex; tree = null; } internal int Process(InflateBlocks blocks, int r) { int j; int tindex; int e; var z = blocks.Codec; var p = z.NextIn; var n = z.AvailableBytesIn; var b = blocks.Bitb; var k = blocks.Bitk; var q = blocks.WriteAt; var m = q < blocks.ReadAt ? blocks.ReadAt - q - 1 : blocks.End - q; while (true) switch (mode) { case START: if (m >= 258 && n >= 10) { blocks.Bitb = b; blocks.Bitk = k; z.AvailableBytesIn = n; z.TotalBytesIn += p - z.NextIn; z.NextIn = p; blocks.WriteAt = q; r = InflateFast(lbits, dbits, ltree, ltree_index, dtree, dtree_index, blocks, z); p = z.NextIn; n = z.AvailableBytesIn; b = blocks.Bitb; k = blocks.Bitk; q = blocks.WriteAt; m = q < blocks.ReadAt ? blocks.ReadAt - q - 1 : blocks.End - q; if (r != ZlibConstants.ZOk) { mode = r == ZlibConstants.ZStreamEnd ? WASH : BADCODE; break; } } need = lbits; tree = ltree; tree_index = ltree_index; mode = LEN; goto case LEN; case LEN: j = need; while (k < j) { if (n != 0) { r = ZlibConstants.ZOk; } else { blocks.Bitb = b; blocks.Bitk = k; z.AvailableBytesIn = n; z.TotalBytesIn += p - z.NextIn; z.NextIn = p; blocks.WriteAt = q; return blocks.Flush(r); } n--; b |= (z.InputBuffer[p++] & 0xff) << k; k += 8; } tindex = (tree_index + (b & InternalInflateConstants.InflateMask[j])) * 3; b >>= tree[tindex + 1]; k -= tree[tindex + 1]; e = tree[tindex]; if (e == 0) { lit = tree[tindex + 2]; mode = LIT; break; } if ((e & 16) != 0) { bitsToGet = e & 15; len = tree[tindex + 2]; mode = LENEXT; break; } if ((e & 64) == 0) { need = e; tree_index = tindex / 3 + tree[tindex + 2]; break; } if ((e & 32) != 0) { mode = WASH; break; } mode = BADCODE; z.Message = "invalid literal/length code"; r = ZlibConstants.ZDataError; blocks.Bitb = b; blocks.Bitk = k; z.AvailableBytesIn = n; z.TotalBytesIn += p - z.NextIn; z.NextIn = p; blocks.WriteAt = q; return blocks.Flush(r); case LENEXT: j = bitsToGet; while (k < j) { if (n != 0) { r = ZlibConstants.ZOk; } else { blocks.Bitb = b; blocks.Bitk = k; z.AvailableBytesIn = n; z.TotalBytesIn += p - z.NextIn; z.NextIn = p; blocks.WriteAt = q; return blocks.Flush(r); } n--; b |= (z.InputBuffer[p++] & 0xff) << k; k += 8; } len += b & InternalInflateConstants.InflateMask[j]; b >>= j; k -= j; need = dbits; tree = dtree; tree_index = dtree_index; mode = DIST; goto case DIST; case DIST: j = need; while (k < j) { if (n != 0) { r = ZlibConstants.ZOk; } else { blocks.Bitb = b; blocks.Bitk = k; z.AvailableBytesIn = n; z.TotalBytesIn += p - z.NextIn; z.NextIn = p; blocks.WriteAt = q; return blocks.Flush(r); } n--; b |= (z.InputBuffer[p++] & 0xff) << k; k += 8; } tindex = (tree_index + (b & InternalInflateConstants.InflateMask[j])) * 3; b >>= tree[tindex + 1]; k -= tree[tindex + 1]; e = tree[tindex]; if ((e & 0x10) != 0) { bitsToGet = e & 15; dist = tree[tindex + 2]; mode = DISTEXT; break; } if ((e & 64) == 0) { need = e; tree_index = tindex / 3 + tree[tindex + 2]; break; } mode = BADCODE; z.Message = "invalid distance code"; r = ZlibConstants.ZDataError; blocks.Bitb = b; blocks.Bitk = k; z.AvailableBytesIn = n; z.TotalBytesIn += p - z.NextIn; z.NextIn = p; blocks.WriteAt = q; return blocks.Flush(r); case DISTEXT: j = bitsToGet; while (k < j) { if (n != 0) { r = ZlibConstants.ZOk; } else { blocks.Bitb = b; blocks.Bitk = k; z.AvailableBytesIn = n; z.TotalBytesIn += p - z.NextIn; z.NextIn = p; blocks.WriteAt = q; return blocks.Flush(r); } n--; b |= (z.InputBuffer[p++] & 0xff) << k; k += 8; } dist += b & InternalInflateConstants.InflateMask[j]; b >>= j; k -= j; mode = COPY; goto case COPY; case COPY: var f = q - dist; while (f < 0) f += blocks.End; while (len != 0) { if (m == 0) { if (q == blocks.End && blocks.ReadAt != 0) { q = 0; m = q < blocks.ReadAt ? blocks.ReadAt - q - 1 : blocks.End - q; } if (m == 0) { blocks.WriteAt = q; r = blocks.Flush(r); q = blocks.WriteAt; m = q < blocks.ReadAt ? blocks.ReadAt - q - 1 : blocks.End - q; if (q == blocks.End && blocks.ReadAt != 0) { q = 0; m = q < blocks.ReadAt ? blocks.ReadAt - q - 1 : blocks.End - q; } if (m == 0) { blocks.Bitb = b; blocks.Bitk = k; z.AvailableBytesIn = n; z.TotalBytesIn += p - z.NextIn; z.NextIn = p; blocks.WriteAt = q; return blocks.Flush(r); } } } blocks.Window[q++] = blocks.Window[f++]; m--; if (f == blocks.End) f = 0; len--; } mode = START; break; case LIT: if (m == 0) { if (q == blocks.End && blocks.ReadAt != 0) { q = 0; m = q < blocks.ReadAt ? blocks.ReadAt - q - 1 : blocks.End - q; } if (m == 0) { blocks.WriteAt = q; r = blocks.Flush(r); q = blocks.WriteAt; m = q < blocks.ReadAt ? blocks.ReadAt - q - 1 : blocks.End - q; if (q == blocks.End && blocks.ReadAt != 0) { q = 0; m = q < blocks.ReadAt ? blocks.ReadAt - q - 1 : blocks.End - q; } if (m == 0) { blocks.Bitb = b; blocks.Bitk = k; z.AvailableBytesIn = n; z.TotalBytesIn += p - z.NextIn; z.NextIn = p; blocks.WriteAt = q; return blocks.Flush(r); } } } r = ZlibConstants.ZOk; blocks.Window[q++] = (byte) lit; m--; mode = START; break; case WASH: if (k > 7) { k -= 8; n++; p--; } blocks.WriteAt = q; r = blocks.Flush(r); q = blocks.WriteAt; if (blocks.ReadAt != blocks.WriteAt) { blocks.Bitb = b; blocks.Bitk = k; z.AvailableBytesIn = n; z.TotalBytesIn += p - z.NextIn; z.NextIn = p; blocks.WriteAt = q; return blocks.Flush(r); } mode = END; goto case END; case END: r = ZlibConstants.ZStreamEnd; blocks.Bitb = b; blocks.Bitk = k; z.AvailableBytesIn = n; z.TotalBytesIn += p - z.NextIn; z.NextIn = p; blocks.WriteAt = q; return blocks.Flush(r); case BADCODE: r = ZlibConstants.ZDataError; blocks.Bitb = b; blocks.Bitk = k; z.AvailableBytesIn = n; z.TotalBytesIn += p - z.NextIn; z.NextIn = p; blocks.WriteAt = q; return blocks.Flush(r); default: r = ZlibConstants.ZStreamError; blocks.Bitb = b; blocks.Bitk = k; z.AvailableBytesIn = n; z.TotalBytesIn += p - z.NextIn; z.NextIn = p; blocks.WriteAt = q; return blocks.Flush(r); } } } internal sealed class InflateManager { private const int PresetDict = 0x20; private const int ZDeflated = 8; private static readonly byte[] Mark = {0, 0, 0xff, 0xff}; private InflateManagerMode _mode; internal InflateBlocks Blocks; internal ZlibCodec Codec; internal uint ComputedCheck; internal uint ExpectedCheck; internal int Marker; internal int Method; internal int Wbits; public InflateManager() { } public InflateManager(bool expectRfc1950HeaderBytes) { HandleRfc1950HeaderBytes = expectRfc1950HeaderBytes; } internal bool HandleRfc1950HeaderBytes { get; set; } = true; internal int End() { Blocks?.Free(); Blocks = null; return ZlibConstants.ZOk; } internal int Inflate() { if (Codec.InputBuffer == null) throw new ZlibException("InputBuffer is null. "); const int f = ZlibConstants.ZOk; var r = ZlibConstants.ZBufError; while (true) switch (_mode) { case InflateManagerMode.Method: if (Codec.AvailableBytesIn == 0) return r; r = f; Codec.AvailableBytesIn--; Codec.TotalBytesIn++; if (((Method = Codec.InputBuffer[Codec.NextIn++]) & 0xf) != ZDeflated) { _mode = InflateManagerMode.Bad; Codec.Message = $"unknown compression method (0x{Method:X2})"; Marker = 5; break; } if ((Method >> 4) + 8 > Wbits) { _mode = InflateManagerMode.Bad; Codec.Message = $"invalid window size ({(Method >> 4) + 8})"; Marker = 5; break; } _mode = InflateManagerMode.Flag; break; case InflateManagerMode.Flag: if (Codec.AvailableBytesIn == 0) return r; r = f; Codec.AvailableBytesIn--; Codec.TotalBytesIn++; var b = Codec.InputBuffer[Codec.NextIn++] & 0xff; if (((Method << 8) + b) % 31 != 0) { _mode = InflateManagerMode.Bad; Codec.Message = "incorrect header check"; Marker = 5; break; } _mode = (b & PresetDict) == 0 ? InflateManagerMode.Blocks : InflateManagerMode.Dict4; break; case InflateManagerMode.Dict4: if (Codec.AvailableBytesIn == 0) return r; r = f; Codec.AvailableBytesIn--; Codec.TotalBytesIn++; ExpectedCheck = (uint) ((Codec.InputBuffer[Codec.NextIn++] << 24) & 0xff000000); _mode = InflateManagerMode.Dict3; break; case InflateManagerMode.Dict3: if (Codec.AvailableBytesIn == 0) return r; r = f; Codec.AvailableBytesIn--; Codec.TotalBytesIn++; ExpectedCheck += (uint) ((Codec.InputBuffer[Codec.NextIn++] << 16) & 0x00ff0000); _mode = InflateManagerMode.Dict2; break; case InflateManagerMode.Dict2: if (Codec.AvailableBytesIn == 0) return r; r = f; Codec.AvailableBytesIn--; Codec.TotalBytesIn++; ExpectedCheck += (uint) ((Codec.InputBuffer[Codec.NextIn++] << 8) & 0x0000ff00); _mode = InflateManagerMode.Dict1; break; case InflateManagerMode.Dict1: if (Codec.AvailableBytesIn == 0) return r; Codec.AvailableBytesIn--; Codec.TotalBytesIn++; ExpectedCheck += (uint) (Codec.InputBuffer[Codec.NextIn++] & 0x000000ff); Codec._Adler32 = ExpectedCheck; _mode = InflateManagerMode.Dict0; return ZlibConstants.ZNeedDict; case InflateManagerMode.Dict0: _mode = InflateManagerMode.Bad; Codec.Message = "need dictionary"; Marker = 0; return ZlibConstants.ZStreamError; case InflateManagerMode.Blocks: r = Blocks.Process(r); if (r == ZlibConstants.ZDataError) { _mode = InflateManagerMode.Bad; Marker = 0; break; } if (r == ZlibConstants.ZOk) r = f; if (r != ZlibConstants.ZStreamEnd) return r; r = f; ComputedCheck = Blocks.Reset(); if (!HandleRfc1950HeaderBytes) { _mode = InflateManagerMode.Done; return ZlibConstants.ZStreamEnd; } _mode = InflateManagerMode.Check4; break; case InflateManagerMode.Check4: if (Codec.AvailableBytesIn == 0) return r; r = f; Codec.AvailableBytesIn--; Codec.TotalBytesIn++; ExpectedCheck = (uint) ((Codec.InputBuffer[Codec.NextIn++] << 24) & 0xff000000); _mode = InflateManagerMode.Check3; break; case InflateManagerMode.Check3: if (Codec.AvailableBytesIn == 0) return r; r = f; Codec.AvailableBytesIn--; Codec.TotalBytesIn++; ExpectedCheck += (uint) ((Codec.InputBuffer[Codec.NextIn++] << 16) & 0x00ff0000); _mode = InflateManagerMode.Check2; break; case InflateManagerMode.Check2: if (Codec.AvailableBytesIn == 0) return r; r = f; Codec.AvailableBytesIn--; Codec.TotalBytesIn++; ExpectedCheck += (uint) ((Codec.InputBuffer[Codec.NextIn++] << 8) & 0x0000ff00); _mode = InflateManagerMode.Check1; break; case InflateManagerMode.Check1: if (Codec.AvailableBytesIn == 0) return r; r = f; Codec.AvailableBytesIn--; Codec.TotalBytesIn++; ExpectedCheck += (uint) (Codec.InputBuffer[Codec.NextIn++] & 0x000000ff); if (ComputedCheck != ExpectedCheck) { _mode = InflateManagerMode.Bad; Codec.Message = "incorrect data check"; Marker = 5; break; } _mode = InflateManagerMode.Done; return ZlibConstants.ZStreamEnd; case InflateManagerMode.Done: return ZlibConstants.ZStreamEnd; case InflateManagerMode.Bad: throw new ZlibException($"Bad state ({Codec.Message})"); default: throw new ZlibException("Stream error."); } } internal int Initialize(ZlibCodec codec, int w) { Codec = codec; Codec.Message = null; Blocks = null; if (w < 8 || w > 15) { End(); throw new ZlibException("Bad window size."); } Wbits = w; Blocks = new InflateBlocks(codec, HandleRfc1950HeaderBytes ? this : null, 1 << w); Reset(); return ZlibConstants.ZOk; } internal int Reset() { Codec.TotalBytesIn = Codec.TotalBytesOut = 0; Codec.Message = null; _mode = HandleRfc1950HeaderBytes ? InflateManagerMode.Method : InflateManagerMode.Blocks; Blocks.Reset(); return ZlibConstants.ZOk; } internal int SetDictionary(byte[] dictionary) { var index = 0; var length = dictionary.Length; if (_mode != InflateManagerMode.Dict0) throw new ZlibException("Stream error."); if (Adler.Adler32(1, dictionary, 0, dictionary.Length) != Codec._Adler32) return ZlibConstants.ZDataError; Codec._Adler32 = Adler.Adler32(0, null, 0, 0); if (length >= 1 << Wbits) { length = (1 << Wbits) - 1; index = dictionary.Length - length; } Blocks.SetDictionary(dictionary, index, length); _mode = InflateManagerMode.Blocks; return ZlibConstants.ZOk; } internal int Sync() { int n; if (_mode != InflateManagerMode.Bad) { _mode = InflateManagerMode.Bad; Marker = 0; } if ((n = Codec.AvailableBytesIn) == 0) return ZlibConstants.ZBufError; var p = Codec.NextIn; var m = Marker; while (n != 0 && m < 4) { if (Codec.InputBuffer[p] == Mark[m]) m++; else if (Codec.InputBuffer[p] != 0) m = 0; else m = 4 - m; p++; n--; } Codec.TotalBytesIn += p - Codec.NextIn; Codec.NextIn = p; Codec.AvailableBytesIn = n; Marker = m; if (m != 4) return ZlibConstants.ZDataError; var r = Codec.TotalBytesIn; var w = Codec.TotalBytesOut; Reset(); Codec.TotalBytesIn = r; Codec.TotalBytesOut = w; _mode = InflateManagerMode.Blocks; return ZlibConstants.ZOk; } internal int SyncPoint() { return Blocks.SyncPoint(); } private enum InflateManagerMode { Method = 0, Flag = 1, Dict4 = 2, Dict3 = 3, Dict2 = 4, Dict1 = 5, Dict0 = 6, Blocks = 7, Check4 = 8, Check3 = 9, Check2 = 10, Check1 = 11, Done = 12, Bad = 13 } } } ================================================ FILE: Source/BrawlStars.Utilities/Compression/ZLib/Iso8859Dash1Encoding.cs ================================================ using System; using System.Text; namespace BrawlStars.Utilities.Compression.ZLib { public class Iso8859Dash1Encoding : Encoding { public static int CharacterCount => 256; public override string WebName => "iso-8859-1"; public override int GetByteCount(char[] chars, int index, int count) { return count; } public override int GetBytes(char[] chars, int start, int count, byte[] bytes, int byteIndex) { if (chars == null) throw new ArgumentNullException(nameof(chars), "null array"); if (bytes == null) throw new ArgumentNullException(nameof(bytes), "null array"); if (start < 0) throw new ArgumentOutOfRangeException(nameof(start)); if (count < 0) throw new ArgumentOutOfRangeException(nameof(count)); if (chars.Length - start < count) throw new ArgumentOutOfRangeException(nameof(chars)); if (byteIndex < 0 || byteIndex > bytes.Length) throw new ArgumentOutOfRangeException(nameof(byteIndex)); for (var i = 0; i < count; i++) { var c = chars[start + i]; if (c >= '\x00FF') bytes[byteIndex + i] = (byte) '?'; else bytes[byteIndex + i] = (byte) c; } return count; } public override int GetCharCount(byte[] bytes, int index, int count) { return count; } public override int GetChars(byte[] bytes, int start, int count, char[] chars, int charIndex) { if (chars == null) throw new ArgumentNullException(nameof(chars), "null array"); if (bytes == null) throw new ArgumentNullException(nameof(bytes), "null array"); if (start < 0) throw new ArgumentOutOfRangeException(nameof(start)); if (count < 0) throw new ArgumentOutOfRangeException(nameof(count)); if (bytes.Length - start < count) throw new ArgumentOutOfRangeException(nameof(bytes)); if (charIndex < 0 || charIndex > chars.Length) throw new ArgumentOutOfRangeException(nameof(charIndex)); for (var i = 0; i < count; i++) chars[charIndex + i] = (char) bytes[i + start]; return count; } public override int GetMaxByteCount(int charCount) { return charCount; } public override int GetMaxCharCount(int byteCount) { return byteCount; } } } ================================================ FILE: Source/BrawlStars.Utilities/Compression/ZLib/ParallelDeflateOutputStream.cs ================================================ using System; using System.Collections.Generic; using System.IO; using System.Threading; namespace BrawlStars.Utilities.Compression.ZLib { internal class WorkItem { public byte[] Buffer; public byte[] Compressed; public int CompressedBytesAvailable; public ZlibCodec Compressor; public int Crc; public int Index; public int InputBytesAvailable; public int Ordinal; public WorkItem(int size, CompressionLevel compressLevel, int ix) { Buffer = new byte[size]; var n = size + (size / 32768 + 1) * 5 * 2; Compressed = new byte[n]; Compressor = new ZlibCodec(); Compressor.InitializeDeflate(compressLevel, false); Compressor.OutputBuffer = Compressed; Compressor.InputBuffer = Buffer; Index = ix; } } public class ParallelDeflateOutputStream : Stream { private const int IoBufferSizeDefault = 64 * 1024; private const int BufferPairsPerCore = 4; private readonly CompressionLevel _compressLevel; private readonly object _eLock = new object(); private readonly object _latestLock = new object(); private readonly bool _leaveOpen; private int _bufferSize = IoBufferSizeDefault; private int _currentlyFilling; private bool _emitting; private bool _firstWriteDone; private bool _handlingException; private bool _isClosed; private int _lastFilled; private int _lastWritten; private int _latestCompressed; private int _maxBufferPairs; private AutoResetEvent _newlyCompressedBlob; private Stream _outStream; private volatile Exception _pendingException; private List _pool; private Crc32 _runningCrc; private Queue _toFill; private Queue _toWrite; public ParallelDeflateOutputStream(Stream stream) : this(stream, CompressionLevel.Default, CompressionStrategy.Default, false) { } public ParallelDeflateOutputStream(Stream stream, CompressionLevel level) : this(stream, level, CompressionStrategy.Default, false) { } public ParallelDeflateOutputStream(Stream stream, bool leaveOpen) : this(stream, CompressionLevel.Default, CompressionStrategy.Default, leaveOpen) { } public ParallelDeflateOutputStream(Stream stream, CompressionLevel level, CompressionStrategy strategy, bool leaveOpen) { _outStream = stream; _compressLevel = level; Strategy = strategy; _leaveOpen = leaveOpen; MaxBufferPairs = 16; } public CompressionStrategy Strategy { get; } public int MaxBufferPairs { get => _maxBufferPairs; set { if (value < 4) throw new ArgumentException("MaxBufferPairs", "Value must be 4 or greater."); _maxBufferPairs = value; } } public int BufferSize { get => _bufferSize; set { if (value < 1024) throw new ArgumentOutOfRangeException("BufferSize", "BufferSize must be greater than 1024 bytes"); _bufferSize = value; } } public int Crc32 { get; private set; } public long BytesProcessed { get; private set; } public override bool CanSeek => false; public override bool CanRead => false; public override bool CanWrite => _outStream.CanWrite; public override long Length => throw new NotSupportedException(); public override long Position { get => _outStream.Position; set => throw new NotSupportedException(); } private void InitializePoolOfWorkItems() { _toWrite = new Queue(); _toFill = new Queue(); _pool = new List(); var nTasks = BufferPairsPerCore * Environment.ProcessorCount; nTasks = Math.Min(nTasks, _maxBufferPairs); for (var i = 0; i < nTasks; i++) { _pool.Add(new WorkItem(_bufferSize, _compressLevel, i)); _toFill.Enqueue(i); } _newlyCompressedBlob = new AutoResetEvent(false); _runningCrc = new Crc32(); _currentlyFilling = -1; _lastFilled = -1; _lastWritten = -1; _latestCompressed = -1; } public override void Write(byte[] buffer, int offset, int count) { var mustWait = false; if (_isClosed) throw new InvalidOperationException(); if (_pendingException != null) { _handlingException = true; var pe = _pendingException; _pendingException = null; throw pe; } if (count == 0) return; if (!_firstWriteDone) { InitializePoolOfWorkItems(); _firstWriteDone = true; } do { EmitPendingBuffers(false, mustWait); mustWait = false; int ix; if (_currentlyFilling >= 0) { ix = _currentlyFilling; } else { if (_toFill.Count == 0) { mustWait = true; continue; } ix = _toFill.Dequeue(); ++_lastFilled; } var workitem = _pool[ix]; var limit = workitem.Buffer.Length - workitem.InputBytesAvailable > count ? count : workitem.Buffer.Length - workitem.InputBytesAvailable; workitem.Ordinal = _lastFilled; Buffer.BlockCopy(buffer, offset, workitem.Buffer, workitem.InputBytesAvailable, limit); count -= limit; offset += limit; workitem.InputBytesAvailable += limit; if (workitem.InputBytesAvailable == workitem.Buffer.Length) { if (!ThreadPool.QueueUserWorkItem(DeflateOne, workitem)) throw new Exception("Cannot enqueue workitem"); _currentlyFilling = -1; } else { _currentlyFilling = ix; } } while (count > 0); } private void FlushFinish() { var buffer = new byte[128]; var compressor = new ZlibCodec { InputBuffer = null, NextIn = 0, AvailableBytesIn = 0, OutputBuffer = buffer, NextOut = 0, AvailableBytesOut = buffer.Length }; var rc = compressor.Deflate(FlushType.Finish); if (rc != ZlibConstants.ZStreamEnd && rc != ZlibConstants.ZOk) throw new Exception("deflating: " + compressor.Message); if (buffer.Length - compressor.AvailableBytesOut > 0) _outStream.Write(buffer, 0, buffer.Length - compressor.AvailableBytesOut); compressor.EndDeflate(); Crc32 = _runningCrc.Crc32Result; } private void Flush(bool lastInput) { if (_isClosed) throw new InvalidOperationException(); if (_emitting) return; if (_currentlyFilling >= 0) { var workitem = _pool[_currentlyFilling]; DeflateOne(workitem); _currentlyFilling = -1; } if (lastInput) { EmitPendingBuffers(true, false); FlushFinish(); } else { EmitPendingBuffers(false, false); } } public override void Flush() { if (_pendingException != null) { _handlingException = true; var pe = _pendingException; _pendingException = null; throw pe; } if (_handlingException) return; Flush(false); } public override void Close() { if (_pendingException != null) { _handlingException = true; var pe = _pendingException; _pendingException = null; throw pe; } if (_handlingException) return; if (_isClosed) return; Flush(true); if (!_leaveOpen) _outStream.Close(); _isClosed = true; } public new void Dispose() { Close(); _pool = null; Dispose(true); } public void Reset(Stream stream) { if (!_firstWriteDone) return; _toWrite.Clear(); _toFill.Clear(); foreach (var workitem in _pool) { _toFill.Enqueue(workitem.Index); workitem.Ordinal = -1; } _firstWriteDone = false; BytesProcessed = 0L; _runningCrc = new Crc32(); _isClosed = false; _currentlyFilling = -1; _lastFilled = -1; _lastWritten = -1; _latestCompressed = -1; _outStream = stream; } private void EmitPendingBuffers(bool doAll, bool mustWait) { if (_emitting) return; _emitting = true; if (doAll || mustWait) _newlyCompressedBlob.WaitOne(); do { var firstSkip = -1; var millisecondsToWait = doAll ? 200 : mustWait ? -1 : 0; int nextToWrite; do { if (Monitor.TryEnter(_toWrite, millisecondsToWait)) { nextToWrite = -1; try { if (_toWrite.Count > 0) nextToWrite = _toWrite.Dequeue(); } finally { Monitor.Exit(_toWrite); } if (nextToWrite < 0) continue; var workitem = _pool[nextToWrite]; if (workitem.Ordinal != _lastWritten + 1) { lock (_toWrite) { _toWrite.Enqueue(nextToWrite); } if (firstSkip == nextToWrite) { _newlyCompressedBlob.WaitOne(); firstSkip = -1; } else if (firstSkip == -1) { firstSkip = nextToWrite; } continue; } firstSkip = -1; _outStream.Write(workitem.Compressed, 0, workitem.CompressedBytesAvailable); _runningCrc.Combine(workitem.Crc, workitem.InputBytesAvailable); BytesProcessed += workitem.InputBytesAvailable; workitem.InputBytesAvailable = 0; _lastWritten = workitem.Ordinal; _toFill.Enqueue(workitem.Index); if (millisecondsToWait == -1) millisecondsToWait = 0; } else { nextToWrite = -1; } } while (nextToWrite >= 0); } while (doAll && _lastWritten != _latestCompressed); _emitting = false; } private void DeflateOne(object wi) { var workitem = (WorkItem) wi; try { var crc = new Crc32(); crc.SlurpBlock(workitem.Buffer, 0, workitem.InputBytesAvailable); DeflateOneSegment(workitem); workitem.Crc = crc.Crc32Result; lock (_latestLock) { if (workitem.Ordinal > _latestCompressed) _latestCompressed = workitem.Ordinal; } lock (_toWrite) { _toWrite.Enqueue(workitem.Index); } _newlyCompressedBlob.Set(); } catch (Exception exc1) { lock (_eLock) { if (_pendingException != null) _pendingException = exc1; } } } private bool DeflateOneSegment(WorkItem workitem) { var compressor = workitem.Compressor; compressor.ResetDeflate(); compressor.NextIn = 0; compressor.AvailableBytesIn = workitem.InputBytesAvailable; compressor.NextOut = 0; compressor.AvailableBytesOut = workitem.Compressed.Length; do { compressor.Deflate(FlushType.None); } while (compressor.AvailableBytesIn > 0 || compressor.AvailableBytesOut == 0); compressor.Deflate(FlushType.Sync); workitem.CompressedBytesAvailable = (int) compressor.TotalBytesOut; return true; } public override int Read(byte[] buffer, int offset, int count) { throw new NotSupportedException(); } public override long Seek(long offset, SeekOrigin origin) { throw new NotSupportedException(); } public override void SetLength(long value) { throw new NotSupportedException(); } [Flags] private enum TraceBits : uint { None = 0, NotUsed1 = 1, EmitLock = 2, EmitEnter = 4, EmitBegin = 8, EmitDone = 16, EmitSkip = 32, EmitAll = 58, Flush = 64, Lifecycle = 128, Session = 256, Synch = 512, Instance = 1024, Compress = 2048, Write = 4096, WriteEnter = 8192, WriteTake = 16384, All = 0xffffffff } } } ================================================ FILE: Source/BrawlStars.Utilities/Compression/ZLib/Tree.cs ================================================ using System; namespace BrawlStars.Utilities.Compression.ZLib { internal sealed class Tree { internal static readonly sbyte[] BlOrder = {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; internal static readonly int[] DistanceBase = { 0, 1, 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128, 192, 256, 384, 512, 768, 1024, 1536, 2048, 3072, 4096, 6144, 8192, 12288, 16384, 24576 }; internal static readonly int[] ExtraBlbits = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7}; internal static readonly int[] ExtraDistanceBits = { 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 }; internal static readonly int[] ExtraLengthBits = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0 }; internal static readonly int[] LengthBase = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 0 }; internal static readonly sbyte[] LengthCode = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28 }; private static readonly sbyte[] DistCode = { 0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 16, 17, 18, 18, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29 }; private static readonly int HeapSize = 2 * InternalConstants.L_CODES + 1; internal short[] DynTree; internal int MaxCode; internal StaticTree StaticTree; internal static int Bi_reverse(int code, int len) { var res = 0; do { res |= code & 1; code >>= 1; res <<= 1; } while (--len > 0); return res >> 1; } internal static int DistanceCode(int dist) { return dist < 256 ? DistCode[dist] : DistCode[256 + SharedUtils.UrShift(dist, 7)]; } internal static void Gen_codes(short[] tree, int maxCode, short[] blCount) { var nextCode = new short[InternalConstants.MAX_BITS + 1]; short code = 0; int bits; int n; for (bits = 1; bits <= InternalConstants.MAX_BITS; bits++) unchecked { nextCode[bits] = code = (short) ((code + blCount[bits - 1]) << 1); } for (n = 0; n <= maxCode; n++) { int len = tree[n * 2 + 1]; if (len == 0) continue; tree[n * 2] = unchecked((short) Bi_reverse(nextCode[len]++, len)); } } internal void Build_tree(DeflateManager s) { var tree = DynTree; var stree = StaticTree.treeCodes; var elems = StaticTree.elems; int n; var maxCode = -1; int node; s.HeapLen = 0; s.HeapMax = HeapSize; for (n = 0; n < elems; n++) if (tree[n * 2] != 0) { s.Heap[++s.HeapLen] = maxCode = n; s.Depth[n] = 0; } else { tree[n * 2 + 1] = 0; } while (s.HeapLen < 2) { node = s.Heap[++s.HeapLen] = maxCode < 2 ? ++maxCode : 0; tree[node * 2] = 1; s.Depth[node] = 0; s.OptLen--; if (stree != null) s.StaticLen -= stree[node * 2 + 1]; } MaxCode = maxCode; for (n = s.HeapLen / 2; n >= 1; n--) s.Pqdownheap(tree, n); node = elems; do { n = s.Heap[1]; s.Heap[1] = s.Heap[s.HeapLen--]; s.Pqdownheap(tree, 1); var m = s.Heap[1]; s.Heap[--s.HeapMax] = n; s.Heap[--s.HeapMax] = m; tree[node * 2] = unchecked((short) (tree[n * 2] + tree[m * 2])); s.Depth[node] = (sbyte) (Math.Max((byte) s.Depth[n], (byte) s.Depth[m]) + 1); tree[n * 2 + 1] = tree[m * 2 + 1] = (short) node; s.Heap[1] = node++; s.Pqdownheap(tree, 1); } while (s.HeapLen >= 2); s.Heap[--s.HeapMax] = s.Heap[1]; Gen_bitlen(s); Gen_codes(tree, maxCode, s.BlCount); } internal void Gen_bitlen(DeflateManager s) { var tree = DynTree; var stree = StaticTree.treeCodes; var extra = StaticTree.extraBits; var baseRenamed = StaticTree.extraBase; var maxLength = StaticTree.maxLength; int h; int n; int bits; var overflow = 0; for (bits = 0; bits <= InternalConstants.MAX_BITS; bits++) s.BlCount[bits] = 0; tree[s.Heap[s.HeapMax] * 2 + 1] = 0; for (h = s.HeapMax + 1; h < HeapSize; h++) { n = s.Heap[h]; bits = tree[tree[n * 2 + 1] * 2 + 1] + 1; if (bits > maxLength) { bits = maxLength; overflow++; } tree[n * 2 + 1] = (short) bits; if (n > MaxCode) continue; s.BlCount[bits]++; var xbits = 0; if (n >= baseRenamed) xbits = extra[n - baseRenamed]; var f = tree[n * 2]; s.OptLen += f * (bits + xbits); if (stree != null) s.StaticLen += f * (stree[n * 2 + 1] + xbits); } if (overflow == 0) return; do { bits = maxLength - 1; while (s.BlCount[bits] == 0) bits--; s.BlCount[bits]--; s.BlCount[bits + 1] = (short) (s.BlCount[bits + 1] + 2); s.BlCount[maxLength]--; overflow -= 2; } while (overflow > 0); for (bits = maxLength; bits != 0; bits--) { n = s.BlCount[bits]; while (n != 0) { var m = s.Heap[--h]; if (m > MaxCode) continue; if (tree[m * 2 + 1] != bits) { s.OptLen = (int) (s.OptLen + (bits - (long) tree[m * 2 + 1]) * tree[m * 2]); tree[m * 2 + 1] = (short) bits; } n--; } } } } } ================================================ FILE: Source/BrawlStars.Utilities/Compression/ZLib/Zlib.cs ================================================ using System; using System.IO; using System.Runtime.InteropServices; using System.Text; namespace BrawlStars.Utilities.Compression.ZLib { public enum FlushType { None = 0, Partial, Sync, Full, Finish } public enum CompressionLevel { None = 0, Level0 = 0, BestSpeed = 1, Level1 = 1, Level2 = 2, Level3 = 3, Level4 = 4, Level5 = 5, Default = 6, Level6 = 6, Level7 = 7, Level8 = 8, BestCompression = 9, Level9 = 9 } public enum CompressionStrategy { Default = 0, Filtered = 1, HuffmanOnly = 2 } public enum CompressionMode { Compress = 0, Decompress = 1 } [Guid("ebc25cf6-9120-4283-b972-0e5520d0000E")] public class ZlibException : Exception { public ZlibException() { } public ZlibException(string s) : base(s) { } } internal class SharedUtils { public static int UrShift(int number, int bits) { return (int) ((uint) number >> bits); } #if NOT /// /// Performs an unsigned bitwise right shift with the specified number /// /// Number to operate on /// Ammount of bits to shift /// The resulting number from the shift operation public static long URShift(long number, int bits) { return (long) ((UInt64)number >> bits); } #endif /// /// Reads a number of characters from the current source TextReader and writes the data to /// the target array at the specified index. /// /// The source TextReader to read from /// Contains the array of characteres read from the source TextReader. /// The starting index of the target array. /// The maximum number of characters to read from the source TextReader. /// /// The number of characters read. The number will be less than or equal to count depending /// on the data available in the source TextReader. Returns -1 if the end of the stream is reached. /// public static int ReadInput(TextReader sourceTextReader, byte[] target, int start, int count) { // Returns 0 bytes if not enough space in target if (target.Length == 0) return 0; var charArray = new char[target.Length]; var bytesRead = sourceTextReader.Read(charArray, start, count); // Returns -1 if EOF if (bytesRead == 0) return -1; for (var index = start; index < start + bytesRead; index++) target[index] = (byte) charArray[index]; return bytesRead; } internal static byte[] ToByteArray(string sourceString) { return Encoding.UTF8.GetBytes(sourceString); } internal static char[] ToCharArray(byte[] byteArray) { return Encoding.UTF8.GetChars(byteArray); } } internal static class InternalConstants { internal static readonly int MAX_BITS = 15; internal static readonly int BL_CODES = 19; internal static readonly int D_CODES = 30; internal static readonly int LITERALS = 256; internal static readonly int LENGTH_CODES = 29; internal static readonly int L_CODES = LITERALS + 1 + LENGTH_CODES; // Bit length codes must not exceed MAX_BL_BITS bits internal static readonly int MAX_BL_BITS = 7; // repeat previous bit length 3-6 times (2 bits of repeat count) internal static readonly int REP_3_6 = 16; // repeat a zero length 3-10 times (3 bits of repeat count) internal static readonly int REPZ_3_10 = 17; // repeat a zero length 11-138 times (7 bits of repeat count) internal static readonly int REPZ_11_138 = 18; } internal sealed class StaticTree { internal static readonly short[] lengthAndLiteralsTreeCodes = { 12, 8, 140, 8, 76, 8, 204, 8, 44, 8, 172, 8, 108, 8, 236, 8, 28, 8, 156, 8, 92, 8, 220, 8, 60, 8, 188, 8, 124, 8, 252, 8, 2, 8, 130, 8, 66, 8, 194, 8, 34, 8, 162, 8, 98, 8, 226, 8, 18, 8, 146, 8, 82, 8, 210, 8, 50, 8, 178, 8, 114, 8, 242, 8, 10, 8, 138, 8, 74, 8, 202, 8, 42, 8, 170, 8, 106, 8, 234, 8, 26, 8, 154, 8, 90, 8, 218, 8, 58, 8, 186, 8, 122, 8, 250, 8, 6, 8, 134, 8, 70, 8, 198, 8, 38, 8, 166, 8, 102, 8, 230, 8, 22, 8, 150, 8, 86, 8, 214, 8, 54, 8, 182, 8, 118, 8, 246, 8, 14, 8, 142, 8, 78, 8, 206, 8, 46, 8, 174, 8, 110, 8, 238, 8, 30, 8, 158, 8, 94, 8, 222, 8, 62, 8, 190, 8, 126, 8, 254, 8, 1, 8, 129, 8, 65, 8, 193, 8, 33, 8, 161, 8, 97, 8, 225, 8, 17, 8, 145, 8, 81, 8, 209, 8, 49, 8, 177, 8, 113, 8, 241, 8, 9, 8, 137, 8, 73, 8, 201, 8, 41, 8, 169, 8, 105, 8, 233, 8, 25, 8, 153, 8, 89, 8, 217, 8, 57, 8, 185, 8, 121, 8, 249, 8, 5, 8, 133, 8, 69, 8, 197, 8, 37, 8, 165, 8, 101, 8, 229, 8, 21, 8, 149, 8, 85, 8, 213, 8, 53, 8, 181, 8, 117, 8, 245, 8, 13, 8, 141, 8, 77, 8, 205, 8, 45, 8, 173, 8, 109, 8, 237, 8, 29, 8, 157, 8, 93, 8, 221, 8, 61, 8, 189, 8, 125, 8, 253, 8, 19, 9, 275, 9, 147, 9, 403, 9, 83, 9, 339, 9, 211, 9, 467, 9, 51, 9, 307, 9, 179, 9, 435, 9, 115, 9, 371, 9, 243, 9, 499, 9, 11, 9, 267, 9, 139, 9, 395, 9, 75, 9, 331, 9, 203, 9, 459, 9, 43, 9, 299, 9, 171, 9, 427, 9, 107, 9, 363, 9, 235, 9, 491, 9, 27, 9, 283, 9, 155, 9, 411, 9, 91, 9, 347, 9, 219, 9, 475, 9, 59, 9, 315, 9, 187, 9, 443, 9, 123, 9, 379, 9, 251, 9, 507, 9, 7, 9, 263, 9, 135, 9, 391, 9, 71, 9, 327, 9, 199, 9, 455, 9, 39, 9, 295, 9, 167, 9, 423, 9, 103, 9, 359, 9, 231, 9, 487, 9, 23, 9, 279, 9, 151, 9, 407, 9, 87, 9, 343, 9, 215, 9, 471, 9, 55, 9, 311, 9, 183, 9, 439, 9, 119, 9, 375, 9, 247, 9, 503, 9, 15, 9, 271, 9, 143, 9, 399, 9, 79, 9, 335, 9, 207, 9, 463, 9, 47, 9, 303, 9, 175, 9, 431, 9, 111, 9, 367, 9, 239, 9, 495, 9, 31, 9, 287, 9, 159, 9, 415, 9, 95, 9, 351, 9, 223, 9, 479, 9, 63, 9, 319, 9, 191, 9, 447, 9, 127, 9, 383, 9, 255, 9, 511, 9, 0, 7, 64, 7, 32, 7, 96, 7, 16, 7, 80, 7, 48, 7, 112, 7, 8, 7, 72, 7, 40, 7, 104, 7, 24, 7, 88, 7, 56, 7, 120, 7, 4, 7, 68, 7, 36, 7, 100, 7, 20, 7, 84, 7, 52, 7, 116, 7, 3, 8, 131, 8, 67, 8, 195, 8, 35, 8, 163, 8, 99, 8, 227, 8 }; internal static readonly short[] distTreeCodes = { 0, 5, 16, 5, 8, 5, 24, 5, 4, 5, 20, 5, 12, 5, 28, 5, 2, 5, 18, 5, 10, 5, 26, 5, 6, 5, 22, 5, 14, 5, 30, 5, 1, 5, 17, 5, 9, 5, 25, 5, 5, 5, 21, 5, 13, 5, 29, 5, 3, 5, 19, 5, 11, 5, 27, 5, 7, 5, 23, 5 }; internal static readonly StaticTree Literals; internal static readonly StaticTree Distances; internal static readonly StaticTree BitLengths; internal int elems; // max number of elements in the tree internal int extraBase; // base index for extra_bits internal int[] extraBits; // extra bits for each code or null internal int maxLength; // max bit length for the codes internal short[] treeCodes; // static tree or null static StaticTree() { Literals = new StaticTree(lengthAndLiteralsTreeCodes, Tree.ExtraLengthBits, InternalConstants.LITERALS + 1, InternalConstants.L_CODES, InternalConstants.MAX_BITS); Distances = new StaticTree(distTreeCodes, Tree.ExtraDistanceBits, 0, InternalConstants.D_CODES, InternalConstants.MAX_BITS); BitLengths = new StaticTree(null, Tree.ExtraBlbits, 0, InternalConstants.BL_CODES, InternalConstants.MAX_BL_BITS); } private StaticTree(short[] treeCodes, int[] extraBits, int extraBase, int elems, int maxLength) { this.treeCodes = treeCodes; this.extraBits = extraBits; this.extraBase = extraBase; this.elems = elems; this.maxLength = maxLength; } } /// /// Computes an Adler-32 checksum. /// /// /// The Adler checksum is similar to a CRC checksum, but faster to compute, though less reliable. /// It is used in producing RFC1950 compressed streams. The Adler checksum is a required part of /// the "ZLIB" standard. Applications will almost never need to use this class directly. /// /// public sealed class Adler { // largest prime smaller than 65536 private static readonly uint BASE = 65521; // NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 private static readonly int NMAX = 5552; #pragma warning disable 3001 #pragma warning disable 3002 /// /// Calculates the Adler32 checksum. /// /// /// This is used within ZLIB. You probably don't need to use this directly. /// /// /// To compute an Adler32 checksum on a byte array: /// /// var adler = Adler.Adler32(0, null, 0, 0); /// adler = Adler.Adler32(adler, buffer, index, length); /// /// public static uint Adler32(uint adler, byte[] buf, int index, int len) { if (buf == null) return 1; var s1 = adler & 0xffff; var s2 = (adler >> 16) & 0xffff; while (len > 0) { var k = len < NMAX ? len : NMAX; len -= k; while (k >= 16) { //s1 += (buf[index++] & 0xff); s2 += s1; s1 += buf[index++]; s2 += s1; s1 += buf[index++]; s2 += s1; s1 += buf[index++]; s2 += s1; s1 += buf[index++]; s2 += s1; s1 += buf[index++]; s2 += s1; s1 += buf[index++]; s2 += s1; s1 += buf[index++]; s2 += s1; s1 += buf[index++]; s2 += s1; s1 += buf[index++]; s2 += s1; s1 += buf[index++]; s2 += s1; s1 += buf[index++]; s2 += s1; s1 += buf[index++]; s2 += s1; s1 += buf[index++]; s2 += s1; s1 += buf[index++]; s2 += s1; s1 += buf[index++]; s2 += s1; s1 += buf[index++]; s2 += s1; k -= 16; } if (k != 0) do { s1 += buf[index++]; s2 += s1; } while (--k != 0); s1 %= BASE; s2 %= BASE; } return (s2 << 16) | s1; } #pragma warning restore 3001 #pragma warning restore 3002 } } ================================================ FILE: Source/BrawlStars.Utilities/Compression/ZLib/ZlibBaseStream.cs ================================================ using System; using System.Collections.Generic; using System.IO; using System.Text; namespace BrawlStars.Utilities.Compression.ZLib { internal enum ZlibStreamFlavor { Zlib = 1950, Deflate = 1951, Gzip = 1952 } internal class ZlibBaseStream : Stream { private readonly Crc32 _crc; private bool _nomoreinput; protected internal StreamMode _streamMode = StreamMode.Undefined; protected internal byte[] _workingBuffer; protected internal byte[] Buf1 = new byte[1]; protected internal int BufferSize = ZlibConstants.WorkingBufferSizeDefault; protected internal CompressionMode CompressionMode; protected internal ZlibStreamFlavor Flavor; protected internal FlushType FlushMode; protected internal string GzipComment; protected internal string GzipFileName; protected internal int GzipHeaderByteCount; protected internal DateTime GzipMtime; protected internal bool LeaveOpen; protected internal CompressionLevel Level; protected internal CompressionStrategy Strategy = CompressionStrategy.Default; protected internal Stream Stream; protected internal ZlibCodec Z; public ZlibBaseStream(Stream stream, CompressionMode compressionMode, CompressionLevel level, ZlibStreamFlavor flavor, bool leaveOpen) { FlushMode = FlushType.None; Stream = stream; LeaveOpen = leaveOpen; CompressionMode = compressionMode; Flavor = flavor; Level = level; if (flavor == ZlibStreamFlavor.Gzip) _crc = new Crc32(); } internal int Crc32 => _crc?.Crc32Result ?? 0; protected internal bool WantCompress => CompressionMode == CompressionMode.Compress; private ZlibCodec z { get { if (Z != null) return Z; var wantRfc1950Header = Flavor == ZlibStreamFlavor.Zlib; Z = new ZlibCodec(); if (CompressionMode == CompressionMode.Decompress) { Z.InitializeInflate(wantRfc1950Header); } else { Z.Strategy = Strategy; Z.InitializeDeflate(Level, wantRfc1950Header); } return Z; } } private byte[] WorkingBuffer => _workingBuffer ?? (_workingBuffer = new byte[BufferSize]); public override bool CanRead => Stream.CanRead; public override bool CanSeek => Stream.CanSeek; public override bool CanWrite => Stream.CanWrite; public override long Length => Stream.Length; public override long Position { get => throw new NotImplementedException(); set => throw new NotImplementedException(); } public override void Write(byte[] buffer, int offset, int count) { _crc?.SlurpBlock(buffer, offset, count); if (_streamMode == StreamMode.Undefined) _streamMode = StreamMode.Writer; else if (_streamMode != StreamMode.Writer) throw new ZlibException("Cannot Write after Reading."); if (count == 0) return; z.InputBuffer = buffer; Z.NextIn = offset; Z.AvailableBytesIn = count; bool done; do { Z.OutputBuffer = WorkingBuffer; Z.NextOut = 0; Z.AvailableBytesOut = _workingBuffer.Length; var rc = WantCompress ? Z.Deflate(FlushMode) : Z.Inflate(); if (rc != ZlibConstants.ZOk && rc != ZlibConstants.ZStreamEnd) throw new ZlibException((WantCompress ? "de" : "in") + "flating: " + Z.Message); Stream.Write(_workingBuffer, 0, _workingBuffer.Length - Z.AvailableBytesOut); done = Z.AvailableBytesIn == 0 && Z.AvailableBytesOut != 0; if (Flavor == ZlibStreamFlavor.Gzip && !WantCompress) done = Z.AvailableBytesIn == 8 && Z.AvailableBytesOut != 0; } while (!done); } private void Finish() { if (Z == null) return; switch (_streamMode) { case StreamMode.Writer: { bool done; do { Z.OutputBuffer = WorkingBuffer; Z.NextOut = 0; Z.AvailableBytesOut = _workingBuffer.Length; var rc = WantCompress ? Z.Deflate(FlushType.Finish) : Z.Inflate(); if (rc != ZlibConstants.ZStreamEnd && rc != ZlibConstants.ZOk) { var verb = (WantCompress ? "de" : "in") + "flating"; if (Z.Message == null) throw new ZlibException($"{verb}: (rc = {rc})"); throw new ZlibException(verb + ": " + Z.Message); } if (_workingBuffer.Length - Z.AvailableBytesOut > 0) Stream.Write(_workingBuffer, 0, _workingBuffer.Length - Z.AvailableBytesOut); done = Z.AvailableBytesIn == 0 && Z.AvailableBytesOut != 0; if (Flavor == ZlibStreamFlavor.Gzip && !WantCompress) done = Z.AvailableBytesIn == 8 && Z.AvailableBytesOut != 0; } while (!done); Flush(); if (Flavor == ZlibStreamFlavor.Gzip) { if (WantCompress) { var c1 = _crc.Crc32Result; Stream.Write(BitConverter.GetBytes(c1), 0, 4); var c2 = (int) (_crc.TotalBytesRead & 0x00000000FFFFFFFF); Stream.Write(BitConverter.GetBytes(c2), 0, 4); } else { throw new ZlibException("Writing with decompression is not supported."); } } break; } case StreamMode.Reader: { if (Flavor == ZlibStreamFlavor.Gzip) { if (!WantCompress) { if (Z.TotalBytesOut == 0L) return; var trailer = new byte[8]; if (Z.AvailableBytesIn < 8) { Array.Copy(Z.InputBuffer, Z.NextIn, trailer, 0, Z.AvailableBytesIn); var bytesNeeded = 8 - Z.AvailableBytesIn; var bytesRead = Stream.Read(trailer, Z.AvailableBytesIn, bytesNeeded); if (bytesNeeded != bytesRead) throw new ZlibException( $"Missing or incomplete GZIP trailer. Expected 8 bytes, got {Z.AvailableBytesIn + bytesRead}."); } else { Array.Copy(Z.InputBuffer, Z.NextIn, trailer, 0, trailer.Length); } var crc32Expected = BitConverter.ToInt32(trailer, 0); var crc32Actual = _crc.Crc32Result; var isizeExpected = BitConverter.ToInt32(trailer, 4); var isizeActual = (int) (Z.TotalBytesOut & 0x00000000FFFFFFFF); if (crc32Actual != crc32Expected) throw new ZlibException( $"Bad CRC32 in GZIP trailer. (actual({crc32Actual:X8})!=expected({crc32Expected:X8}))"); if (isizeActual != isizeExpected) throw new ZlibException( $"Bad size in GZIP trailer. (actual({isizeActual})!=expected({isizeExpected}))"); } else { throw new ZlibException("Reading with compression is not supported."); } } break; } } } private void End() { if (z == null) return; if (WantCompress) Z.EndDeflate(); else Z.EndInflate(); Z = null; } public override void Close() { if (Stream == null) return; try { Finish(); } finally { End(); if (!LeaveOpen) Stream.Close(); Stream = null; } } public override void Flush() { Stream.Flush(); } public override long Seek(long offset, SeekOrigin origin) { throw new NotImplementedException(); } public override void SetLength(long value) { Stream.SetLength(value); } private string ReadZeroTerminatedString() { var list = new List(); var done = false; do { var n = Stream.Read(Buf1, 0, 1); if (n != 1) throw new ZlibException("Unexpected EOF reading GZIP header."); if (Buf1[0] == 0) done = true; else list.Add(Buf1[0]); } while (!done); var a = list.ToArray(); return GZipStream.Iso8859dash1.GetString(a, 0, a.Length); } private int ReadAndValidateGzipHeader() { var totalBytesRead = 0; var header = new byte[10]; var n = Stream.Read(header, 0, header.Length); if (n == 0) return 0; if (n != 10) throw new ZlibException("Not a valid GZIP stream."); if (header[0] != 0x1F || header[1] != 0x8B || header[2] != 8) throw new ZlibException("Bad GZIP header."); var timet = BitConverter.ToInt32(header, 4); GzipMtime = GZipStream.UnixEpoch.AddSeconds(timet); totalBytesRead += n; if ((header[3] & 0x04) == 0x04) { n = Stream.Read(header, 0, 2); totalBytesRead += n; var extraLength = (short) (header[0] + header[1] * 256); var extra = new byte[extraLength]; n = Stream.Read(extra, 0, extra.Length); if (n != extraLength) throw new ZlibException("Unexpected end-of-file reading GZIP header."); totalBytesRead += n; } if ((header[3] & 0x08) == 0x08) GzipFileName = ReadZeroTerminatedString(); if ((header[3] & 0x10) == 0x010) GzipComment = ReadZeroTerminatedString(); if ((header[3] & 0x02) == 0x02) Read(Buf1, 0, 1); return totalBytesRead; } public override int Read(byte[] buffer, int offset, int count) { if (_streamMode == StreamMode.Undefined) { if (!Stream.CanRead) throw new ZlibException("The stream is not readable."); _streamMode = StreamMode.Reader; z.AvailableBytesIn = 0; if (Flavor == ZlibStreamFlavor.Gzip) { GzipHeaderByteCount = ReadAndValidateGzipHeader(); if (GzipHeaderByteCount == 0) return 0; } } if (_streamMode != StreamMode.Reader) throw new ZlibException("Cannot Read after Writing."); if (count == 0) return 0; if (_nomoreinput && WantCompress) return 0; if (buffer == null) throw new ArgumentNullException(nameof(buffer)); if (count < 0) throw new ArgumentOutOfRangeException(nameof(count)); if (offset < buffer.GetLowerBound(0)) throw new ArgumentOutOfRangeException(nameof(offset)); if (offset + count > buffer.GetLength(0)) throw new ArgumentOutOfRangeException(nameof(count)); int rc; Z.OutputBuffer = buffer; Z.NextOut = offset; Z.AvailableBytesOut = count; Z.InputBuffer = WorkingBuffer; do { if (Z.AvailableBytesIn == 0 && !_nomoreinput) { Z.NextIn = 0; Z.AvailableBytesIn = Stream.Read(_workingBuffer, 0, _workingBuffer.Length); if (Z.AvailableBytesIn == 0) _nomoreinput = true; } rc = WantCompress ? Z.Deflate(FlushMode) : Z.Inflate(); if (_nomoreinput && rc == ZlibConstants.ZBufError) return 0; if (rc != ZlibConstants.ZOk && rc != ZlibConstants.ZStreamEnd) throw new ZlibException($"{(WantCompress ? "de" : "in")}flating: rc={rc} msg={Z.Message}"); if ((_nomoreinput || rc == ZlibConstants.ZStreamEnd) && Z.AvailableBytesOut == count) break; } while (Z.AvailableBytesOut > 0 && !_nomoreinput && rc == ZlibConstants.ZOk); if (Z.AvailableBytesOut > 0) if (_nomoreinput) if (WantCompress) { rc = Z.Deflate(FlushType.Finish); if (rc != ZlibConstants.ZOk && rc != ZlibConstants.ZStreamEnd) throw new ZlibException($"Deflating: rc={rc} msg={Z.Message}"); } rc = count - Z.AvailableBytesOut; _crc?.SlurpBlock(buffer, offset, rc); return rc; } public static void CompressString(string s, Stream compressor) { var uncompressed = Encoding.UTF8.GetBytes(s); using (compressor) { compressor.Write(uncompressed, 0, uncompressed.Length); } } public static void CompressBuffer(byte[] b, Stream compressor) { using (compressor) { compressor.Write(b, 0, b.Length); } } public static string UncompressString(Stream decompressor) { var working = new byte[1024]; var encoding = Encoding.UTF8; using (var output = new MemoryStream()) { using (decompressor) { int n; while ((n = decompressor.Read(working, 0, working.Length)) != 0) output.Write(working, 0, n); } output.Seek(0, SeekOrigin.Begin); var sr = new StreamReader(output, encoding); return sr.ReadToEnd(); } } public static byte[] UncompressBuffer(Stream decompressor) { var working = new byte[1024]; using (var output = new MemoryStream()) { using (decompressor) { int n; while ((n = decompressor.Read(working, 0, working.Length)) != 0) output.Write(working, 0, n); } return output.ToArray(); } } internal enum StreamMode { Writer, Reader, Undefined } } } ================================================ FILE: Source/BrawlStars.Utilities/Compression/ZLib/ZlibCodec.cs ================================================ using System; using Interop = System.Runtime.InteropServices; namespace BrawlStars.Utilities.Compression.ZLib { [Interop.GuidAttribute("ebc25cf6-9120-4283-b972-0e5520d0000D")] [Interop.ComVisibleAttribute(true)] #if !NETCF [Interop.ClassInterfaceAttribute(Interop.ClassInterfaceType.AutoDispatch)] #endif public sealed class ZlibCodec { public uint _Adler32; public int AvailableBytesIn; public int AvailableBytesOut; public CompressionLevel CompressLevel = CompressionLevel.Default; internal DeflateManager Dstate; public byte[] InputBuffer; internal InflateManager Istate; public string Message; public int NextIn; public int NextOut; public byte[] OutputBuffer; public CompressionStrategy Strategy = CompressionStrategy.Default; public long TotalBytesIn; public long TotalBytesOut; public int WindowBits = ZlibConstants.WindowBitsDefault; public ZlibCodec() { } public ZlibCodec(CompressionMode mode) { switch (mode) { case CompressionMode.Compress: { var rc = InitializeDeflate(); if (rc != ZlibConstants.ZOk) throw new ZlibException("Cannot initialize for deflate."); break; } case CompressionMode.Decompress: { var rc = InitializeInflate(); if (rc != ZlibConstants.ZOk) throw new ZlibException("Cannot initialize for inflate."); break; } default: throw new ZlibException("Invalid ZlibStreamFlavor."); } } public int Adler32 => (int) _Adler32; public int InitializeInflate() { return InitializeInflate(WindowBits); } public int InitializeInflate(bool expectRfc1950Header) { return InitializeInflate(WindowBits, expectRfc1950Header); } public int InitializeInflate(int windowBits) { WindowBits = windowBits; return InitializeInflate(windowBits, true); } public int InitializeInflate(int windowBits, bool expectRfc1950Header) { WindowBits = windowBits; if (Dstate != null) throw new ZlibException("You may not call InitializeInflate() after calling InitializeDeflate()."); Istate = new InflateManager(expectRfc1950Header); return Istate.Initialize(this, windowBits); } public int Inflate() { if (Istate == null) throw new ZlibException("No Inflate State!"); return Istate.Inflate(); } public int EndInflate() { if (Istate == null) throw new ZlibException("No Inflate State!"); var ret = Istate.End(); Istate = null; return ret; } public int SyncInflate() { if (Istate == null) throw new ZlibException("No Inflate State!"); return Istate.Sync(); } public int InitializeDeflate() { return InternalInitializeDeflate(true); } public int InitializeDeflate(CompressionLevel level) { CompressLevel = level; return InternalInitializeDeflate(true); } public int InitializeDeflate(CompressionLevel level, bool wantRfc1950Header) { CompressLevel = level; return InternalInitializeDeflate(wantRfc1950Header); } public int InitializeDeflate(CompressionLevel level, int bits) { CompressLevel = level; WindowBits = bits; return InternalInitializeDeflate(true); } public int InitializeDeflate(CompressionLevel level, int bits, bool wantRfc1950Header) { CompressLevel = level; WindowBits = bits; return InternalInitializeDeflate(wantRfc1950Header); } private int InternalInitializeDeflate(bool wantRfc1950Header) { if (Istate != null) throw new ZlibException("You may not call InitializeDeflate() after calling InitializeInflate()."); Dstate = new DeflateManager {WantRfc1950HeaderBytes = wantRfc1950Header}; return Dstate.Initialize(this, CompressLevel, WindowBits, Strategy); } public int Deflate(FlushType flush) { if (Dstate == null) throw new ZlibException("No Deflate State!"); return Dstate.Deflate(flush); } public int EndDeflate() { if (Dstate == null) throw new ZlibException("No Deflate State!"); Dstate = null; return ZlibConstants.ZOk; ; } public void ResetDeflate() { if (Dstate == null) throw new ZlibException("No Deflate State!"); Dstate.Reset(); } public int SetDeflateParams(CompressionLevel level, CompressionStrategy strategy) { if (Dstate == null) throw new ZlibException("No Deflate State!"); return Dstate.SetParams(level, strategy); } public int SetDictionary(byte[] dictionary) { if (Istate != null) return Istate.SetDictionary(dictionary); if (Dstate != null) return Dstate.SetDictionary(dictionary); throw new ZlibException("No Inflate or Deflate state!"); } internal void Flush_pending() { var len = Dstate.PendingCount; if (len > AvailableBytesOut) len = AvailableBytesOut; if (len == 0) return; if (Dstate.Pending.Length <= Dstate.NextPending || OutputBuffer.Length <= NextOut || Dstate.Pending.Length < Dstate.NextPending + len || OutputBuffer.Length < NextOut + len) throw new ZlibException( $"Invalid State. (pending.Length={Dstate.Pending.Length}, pendingCount={Dstate.PendingCount})"); Array.Copy(Dstate.Pending, Dstate.NextPending, OutputBuffer, NextOut, len); NextOut += len; Dstate.NextPending += len; TotalBytesOut += len; AvailableBytesOut -= len; Dstate.PendingCount -= len; if (Dstate.PendingCount == 0) Dstate.NextPending = 0; } internal int Read_buf(byte[] buf, int start, int size) { var len = AvailableBytesIn; if (len > size) len = size; if (len == 0) return 0; AvailableBytesIn -= len; if (Dstate.WantRfc1950HeaderBytes) _Adler32 = Adler.Adler32(_Adler32, InputBuffer, NextIn, len); Array.Copy(InputBuffer, NextIn, buf, start, len); NextIn += len; TotalBytesIn += len; return len; } } } ================================================ FILE: Source/BrawlStars.Utilities/Compression/ZLib/ZlibConstants.cs ================================================ namespace BrawlStars.Utilities.Compression.ZLib { public static class ZlibConstants { public const int WindowBitsMax = 15; public const int WindowBitsDefault = WindowBitsMax; public const int ZOk = 0; public const int ZStreamEnd = 1; public const int ZNeedDict = 2; public const int ZStreamError = -2; public const int ZDataError = -3; public const int ZBufError = -5; public const int WorkingBufferSizeDefault = 16384; public const int WorkingBufferSizeMin = 1024; } } ================================================ FILE: Source/BrawlStars.Utilities/Compression/ZLib/ZlibStream.cs ================================================ using System; using System.IO; namespace BrawlStars.Utilities.Compression.ZLib { public class ZlibStream : Stream { internal ZlibBaseStream BaseStream; private bool _disposed; public ZlibStream(Stream stream, CompressionMode mode) : this(stream, mode, CompressionLevel.Default, false) { } public ZlibStream(Stream stream, CompressionMode mode, CompressionLevel level) : this(stream, mode, level, false) { } public ZlibStream(Stream stream, CompressionMode mode, bool leaveOpen) : this(stream, mode, CompressionLevel.Default, leaveOpen) { } public ZlibStream(Stream stream, CompressionMode mode, CompressionLevel level, bool leaveOpen) { BaseStream = new ZlibBaseStream(stream, mode, level, ZlibStreamFlavor.Zlib, leaveOpen); } public int BufferSize { get => BaseStream.BufferSize; set { if (_disposed) throw new ObjectDisposedException("ZlibStream"); if (BaseStream._workingBuffer != null) throw new ZlibException("The working buffer is already set."); if (value < ZlibConstants.WorkingBufferSizeMin) throw new ZlibException( $"Don't be silly. {value} bytes?? Use a bigger buffer, at least {ZlibConstants.WorkingBufferSizeMin}."); BaseStream.BufferSize = value; } } public override bool CanRead { get { if (_disposed) throw new ObjectDisposedException("ZlibStream"); return BaseStream.Stream.CanRead; } } public override bool CanSeek => false; public override bool CanWrite { get { if (_disposed) throw new ObjectDisposedException("ZlibStream"); return BaseStream.Stream.CanWrite; } } public virtual FlushType FlushMode { get => BaseStream.FlushMode; set { if (_disposed) throw new ObjectDisposedException("ZlibStream"); BaseStream.FlushMode = value; } } public override long Length => throw new NotSupportedException(); public override long Position { get { switch (BaseStream._streamMode) { case ZlibBaseStream.StreamMode.Writer: return BaseStream.Z.TotalBytesOut; case ZlibBaseStream.StreamMode.Reader: return BaseStream.Z.TotalBytesIn; default: return 0; } } set => throw new NotSupportedException(); } public virtual long TotalIn => BaseStream.Z.TotalBytesIn; public virtual long TotalOut => BaseStream.Z.TotalBytesOut; protected override void Dispose(bool disposing) { try { if (_disposed) return; if (disposing) BaseStream?.Close(); _disposed = true; } finally { base.Dispose(disposing); } } public static byte[] CompressBuffer(byte[] b, CompressionLevel compressionLevel) { using (var ms = new MemoryStream()) { Stream compressor = new ZlibStream(ms, CompressionMode.Compress, compressionLevel); ZlibBaseStream.CompressBuffer(b, compressor); return ms.ToArray(); } } public static byte[] CompressString(string s, CompressionLevel compressionLevel) { using (var ms = new MemoryStream()) { Stream compressor = new ZlibStream(ms, CompressionMode.Compress, compressionLevel); ZlibBaseStream.CompressString(s, compressor); return ms.ToArray(); } } public static byte[] UncompressBuffer(byte[] compressed) { using (var input = new MemoryStream(compressed)) { Stream decompressor = new ZlibStream(input, CompressionMode.Decompress); return ZlibBaseStream.UncompressBuffer(decompressor); } } public static string UncompressString(byte[] compressed) { using (var input = new MemoryStream(compressed)) { Stream decompressor = new ZlibStream(input, CompressionMode.Decompress); return ZlibBaseStream.UncompressString(decompressor); } } public override void Flush() { if (_disposed) throw new ObjectDisposedException("ZlibStream"); BaseStream.Flush(); } public override int Read(byte[] buffer, int offset, int count) { if (_disposed) throw new ObjectDisposedException("ZlibStream"); return BaseStream.Read(buffer, offset, count); } public override long Seek(long offset, SeekOrigin origin) { throw new NotSupportedException(); } public override void SetLength(long value) { throw new NotSupportedException(); } public override void Write(byte[] buffer, int offset, int count) { if (_disposed) throw new ObjectDisposedException("ZlibStream"); BaseStream.Write(buffer, offset, count); } } } ================================================ FILE: Source/BrawlStars.Utilities/Extensions.cs ================================================ using System; using System.Collections.Generic; using System.Linq; namespace BrawlStars.Utilities { public static class ExtensionMethods { public static void UpdateOrInsert(this List list, int index, T item) { if (list.ElementAtOrDefault(index) != null) list[index] = item; else list.Insert(index, item); } public static string ToReadableString(this TimeSpan span) { var formatted = $"{(span.Duration().Days > 0 ? $"{span.Days:0}d, " : string.Empty)}{(span.Duration().Hours > 0 ? $"{span.Hours:0}h, " : string.Empty)}{(span.Duration().Minutes > 0 ? $"{span.Minutes:0}m, " : string.Empty)}{(span.Duration().Seconds > 0 ? $"{span.Seconds:0}s" : string.Empty)}"; if (formatted.EndsWith(", ")) formatted = formatted.Substring(0, formatted.Length - 2); if (string.IsNullOrEmpty(formatted)) formatted = "0s"; return formatted; } } } ================================================ FILE: Source/BrawlStars.Utilities/Netty/Reader.cs ================================================ using System.Text; using BrawlStars.Utilities.Compression.ZLib; using DotNetty.Buffers; namespace BrawlStars.Utilities.Netty { /// /// This implements a few extensions for games from Supercell /// public static class Reader { /// /// Decodes a string based on the length /// /// /// public static string ReadScString(this IByteBuffer byteBuffer) { var length = byteBuffer.ReadInt(); if (length <= 0 || length > 900000) return string.Empty; return byteBuffer.ReadString(length, Encoding.UTF8); } /// /// Decodes a compressed string /// /// /// /// public static string ReadCompressedString(this IByteBuffer byteBuffer, bool indicator = true) { if(indicator) byteBuffer.ReadByte(); var compressedLength = byteBuffer.ReadInt() - 4; byteBuffer.ReadIntLE(); var compressedBytes = byteBuffer.ReadBytes(compressedLength); return ZlibStream.UncompressString(compressedBytes.Array); } public static int ReadVInt(this IByteBuffer byteBuffer) { int b, sign = ((b = byteBuffer.ReadByte()) >> 6) & 1, i = b & 0x3F, offset = 6; for (var j = 0; j < 4 && (b & 0x80) != 0; j++, offset += 7) i |= ((b = byteBuffer.ReadByte()) & 0x7F) << offset; return (b & 0x80) != 0 ? -1 : i | (sign == 1 && offset < 32 ? i | (int)(0xFFFFFFFF << offset) : i); } } } ================================================ FILE: Source/BrawlStars.Utilities/Netty/Writer.cs ================================================ using System; using System.Linq; using System.Text; using BrawlStars.Utilities.Compression.ZLib; using DotNetty.Buffers; namespace BrawlStars.Utilities.Netty { /// /// This implements a few extensions for games from Supercell /// public static class Writer { /// /// Encodes a string based on the length /// /// /// public static void WriteScString(this IByteBuffer buffer, string value) { if (value == null) { buffer.WriteInt(-1); } else if (value.Length == 0) { buffer.WriteInt(0); } else { var bytes = Encoding.UTF8.GetBytes(value); buffer.WriteInt(bytes.Length); buffer.WriteString(value, Encoding.UTF8); } } /// /// Encodes a VInt /// /// /// public static void WriteVInt(this IByteBuffer buffer, int value) { var temp = (value >> 25) & 0x40; var flipped = value ^ (value >> 31); temp |= value & 0x3F; value >>= 6; if ((flipped >>= 6) == 0) { buffer.WriteByte(temp); return; } buffer.WriteByte(temp | 0x80); do { buffer.WriteByte((value & 0x7F) | ((flipped >>= 7) != 0 ? 0x80 : 0)); value >>= 7; } while (flipped != 0); } /// /// Encode a ScId /// /// /// /// public static void WriteScId(this IByteBuffer buffer, int high, int low) { Writer.WriteVInt(buffer, high); Writer.WriteVInt(buffer, low); } /// /// Encode a compressed string /// /// /// /// public static void WriteCompressedString(this IByteBuffer buffer, string value, bool indicate = true) { var data = Encoding.UTF8.GetBytes(value); var compressed = ZlibStream.CompressBuffer(data, CompressionLevel.BestCompression); if (indicate) buffer.WriteByte(1); buffer.WriteInt(compressed.Length + 4); buffer.WriteIntLE(value.Length); buffer.WriteBytes(compressed); } /// /// This method should be only used for testing. /// /// /// public static void WriteHex(this IByteBuffer buffer, string value) { var tmp = value.Replace("-", string.Empty).Replace("-", string.Empty); buffer.WriteBytes(Enumerable.Range(0, tmp.Length).Where(x => x % 2 == 0) .Select(x => Convert.ToByte(tmp.Substring(x, 2), 16)).ToArray()); } } } ================================================ FILE: Source/BrawlStars.Utilities/Utils/GameUtils.cs ================================================ using System; namespace BrawlStars.Utilities.Utils { public class GameUtils { public static string GenerateToken { get { var random = new Random(); var token = string.Empty; for (var i = 0; i < 40; i++) token += "abcdefghijklmnopqrstuvwxyz0123456789"[random.Next(36)]; return token; } } public static bool IsHigherRoleThan(int role, int roleToCompare) { var table = new[] {1, 1, 4, 2, 3}; return role >= 5 || roleToCompare >= 5 || table[roleToCompare] < table[role]; } } } ================================================ FILE: Source/BrawlStars.Utilities/Utils/ServerUtils.cs ================================================ using System; using System.Linq; using System.Runtime.InteropServices; using System.Security.Cryptography; using System.Text; namespace BrawlStars.Utilities.Utils { public class ServerUtils { public static string GetOsName() { if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) return "Windows"; if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) return "MacOS"; if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) return "Linux"; return "Unknown-" + Environment.OSVersion; } public static bool IsLinux() { return RuntimeInformation.IsOSPlatform(OSPlatform.Linux); } public static string GetChecksum(string text) { using (var hasher = new SHA1CryptoServiceProvider()) { return hasher.ComputeHash(Encoding.UTF8.GetBytes(text)).Aggregate(string.Empty, (current, num) => current + num.ToString("x2")); } } public static string GetChecksum(byte[] data) { using (var hasher = new SHA1CryptoServiceProvider()) { return hasher.ComputeHash(data).Aggregate(string.Empty, (current, num) => current + num.ToString("x2")); } } } } ================================================ FILE: Source/BrawlStars.Utilities/Utils/TimeUtils.cs ================================================ using System; namespace BrawlStars.Utilities.Utils { public class TimeUtils { public static int GetSecondsUntilNextMonth { get { var now = DateTime.UtcNow; if (now.Month != 12) return (int) (new DateTime(now.Year, now.Month + 1, 1, now.Hour, now.Minute, now.Second) - now).TotalSeconds; return (int) (new DateTime(now.Year + 1, 1, 1, now.Hour, now.Minute, now.Second) - now).TotalSeconds; } } public static int GetSecondsUntilTomorrow { get { var now = DateTime.UtcNow; var tomorrow = now.AddDays(1).Date; return (int) (tomorrow - now).TotalSeconds; } } public static int CurrentUnixTimestamp => (int) DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds; } } ================================================ FILE: Source/BrawlStars.Utilities/obj/BrawlStars.Utilities.csproj.nuget.cache ================================================ { "version": 1, "dgSpecHash": "OJ2to3cVLIFHRq4RQUlEeQKmvPEygU8QU6Ykj5XdPDAxp5Y1A20SI45bhU/s1zKtPvUibjiseZbEm0W+oHxGLw==", "success": true } ================================================ FILE: Source/BrawlStars.Utilities/obj/BrawlStars.Utilities.csproj.nuget.dgspec.json ================================================ { "format": 1, "restore": { "C:\\Users\\Vitalik\\Desktop\\Source\\BrawlStars.Utilities\\BrawlStars.Utilities.csproj": {} }, "projects": { "C:\\Users\\Vitalik\\Desktop\\Source\\BrawlStars.Utilities\\BrawlStars.Utilities.csproj": { "version": "1.0.0", "restore": { "projectUniqueName": "C:\\Users\\Vitalik\\Desktop\\Source\\BrawlStars.Utilities\\BrawlStars.Utilities.csproj", "projectName": "BrawlStars.Utilities", "projectPath": "C:\\Users\\Vitalik\\Desktop\\Source\\BrawlStars.Utilities\\BrawlStars.Utilities.csproj", "packagesPath": "C:\\Users\\Vitalik\\.nuget\\packages\\", "outputPath": "C:\\Users\\Vitalik\\Desktop\\Source\\BrawlStars.Utilities\\obj\\", "projectStyle": "PackageReference", "fallbackFolders": [ "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder" ], "configFilePaths": [ "C:\\Users\\Vitalik\\AppData\\Roaming\\NuGet\\NuGet.Config", "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" ], "originalTargetFrameworks": [ "netstandard2.0" ], "sources": { "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, "https://api.nuget.org/v3/index.json": {} }, "frameworks": { "netstandard2.0": { "projectReferences": {} } }, "warningProperties": { "warnAsError": [ "NU1605" ] } }, "frameworks": { "netstandard2.0": { "dependencies": { "DotNetty.Buffers": { "target": "Package", "version": "[0.6.0, )" }, "MySql.Data": { "target": "Package", "version": "[8.0.19, )" }, "NETStandard.Library": { "suppressParent": "All", "target": "Package", "version": "[2.0.3, )", "autoReferenced": true }, "Newtonsoft.Json": { "target": "Package", "version": "[12.0.2, )" } }, "imports": [ "net461", "net462", "net47", "net471", "net472", "net48" ], "assetTargetFallback": true, "warn": true, "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.201\\RuntimeIdentifierGraph.json" } } } } } ================================================ FILE: Source/BrawlStars.Utilities/obj/BrawlStars.Utilities.csproj.nuget.g.props ================================================  True NuGet $(MSBuildThisFileDirectory)project.assets.json $(UserProfile)\.nuget\packages\ C:\Users\Vitalik\.nuget\packages\;C:\Program Files\dotnet\sdk\NuGetFallbackFolder PackageReference 5.5.0 $(MSBuildAllProjects);$(MSBuildThisFileFullPath) ================================================ FILE: Source/BrawlStars.Utilities/obj/BrawlStars.Utilities.csproj.nuget.g.targets ================================================  $(MSBuildAllProjects);$(MSBuildThisFileFullPath) ================================================ FILE: Source/BrawlStars.Utilities/obj/ClashofClans.Utilities.csproj.nuget.dgspec.json ================================================ { "format": 1, "restore": { "E:\\BrawlStars\\src\\ClashofClans.Utilities\\ClashofClans.Utilities.csproj": {} }, "projects": { "E:\\BrawlStars\\src\\ClashofClans.Utilities\\ClashofClans.Utilities.csproj": { "version": "1.0.0", "restore": { "projectUniqueName": "E:\\BrawlStars\\src\\ClashofClans.Utilities\\ClashofClans.Utilities.csproj", "projectName": "ClashofClans.Utilities", "projectPath": "E:\\BrawlStars\\src\\ClashofClans.Utilities\\ClashofClans.Utilities.csproj", "packagesPath": "C:\\Users\\Vitalik\\.nuget\\packages\\", "outputPath": "E:\\BrawlStars\\src\\ClashofClans.Utilities\\obj\\", "projectStyle": "PackageReference", "fallbackFolders": [ "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder" ], "configFilePaths": [ "C:\\Users\\Vitalik\\AppData\\Roaming\\NuGet\\NuGet.Config", "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" ], "originalTargetFrameworks": [ "netstandard2.0" ], "sources": { "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, "https://api.nuget.org/v3/index.json": {} }, "frameworks": { "netstandard2.0": { "projectReferences": {} } }, "warningProperties": { "warnAsError": [ "NU1605" ] } }, "frameworks": { "netstandard2.0": { "dependencies": { "DotNetty.Buffers": { "target": "Package", "version": "[0.6.0, )" }, "NETStandard.Library": { "suppressParent": "All", "target": "Package", "version": "[2.0.3, )", "autoReferenced": true }, "Newtonsoft.Json": { "target": "Package", "version": "[12.0.2, )" } }, "imports": [ "net461", "net462", "net47", "net471", "net472", "net48" ], "assetTargetFallback": true, "warn": true, "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.201\\RuntimeIdentifierGraph.json" } } } } } ================================================ FILE: Source/BrawlStars.Utilities/obj/ClashofClans.Utilities.csproj.nuget.g.props ================================================  True NuGet $(MSBuildThisFileDirectory)project.assets.json $(UserProfile)\.nuget\packages\ C:\Users\Vitalik\.nuget\packages\;C:\Program Files\dotnet\sdk\NuGetFallbackFolder PackageReference 5.5.0 $(MSBuildAllProjects);$(MSBuildThisFileFullPath) ================================================ FILE: Source/BrawlStars.Utilities/obj/ClashofClans.Utilities.csproj.nuget.g.targets ================================================  $(MSBuildAllProjects);$(MSBuildThisFileFullPath) ================================================ FILE: Source/BrawlStars.Utilities/obj/Debug/netstandard2.0/BrawlStars.Utilities.AssemblyInfo.cs ================================================ //------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ using System; using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("BrawlStars.Utilities")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] [assembly: System.Reflection.AssemblyProductAttribute("BrawlStars.Utilities")] [assembly: System.Reflection.AssemblyTitleAttribute("BrawlStars.Utilities")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] // Generated by the MSBuild WriteCodeFragment class. ================================================ FILE: Source/BrawlStars.Utilities/obj/Debug/netstandard2.0/BrawlStars.Utilities.AssemblyInfoInputs.cache ================================================ 2d4c545f4d00364a2bbd2bd34286ac391cde2c09 ================================================ FILE: Source/BrawlStars.Utilities/obj/Debug/netstandard2.0/BrawlStars.Utilities.csproj.CoreCompileInputs.cache ================================================ 76d97a11d5a2c8c4e6f23244b78539384a361e6e ================================================ FILE: Source/BrawlStars.Utilities/obj/Debug/netstandard2.0/BrawlStars.Utilities.csproj.FileListAbsolute.txt ================================================ E:\BS\BrawlStars.Utilities\bin\Debug\netstandard2.0\BrawlStars.Utilities.deps.json E:\BS\BrawlStars.Utilities\bin\Debug\netstandard2.0\BrawlStars.Utilities.dll E:\BS\BrawlStars.Utilities\bin\Debug\netstandard2.0\BrawlStars.Utilities.pdb E:\BS\BrawlStars.Utilities\obj\Debug\netstandard2.0\BrawlStars.Utilities.csprojAssemblyReference.cache E:\BS\BrawlStars.Utilities\obj\Debug\netstandard2.0\BrawlStars.Utilities.csproj.CoreCompileInputs.cache E:\BS\BrawlStars.Utilities\obj\Debug\netstandard2.0\BrawlStars.Utilities.AssemblyInfoInputs.cache E:\BS\BrawlStars.Utilities\obj\Debug\netstandard2.0\BrawlStars.Utilities.AssemblyInfo.cs E:\BS\BrawlStars.Utilities\obj\Debug\netstandard2.0\BrawlStars.Utilities.dll E:\BS\BrawlStars.Utilities\obj\Debug\netstandard2.0\BrawlStars.Utilities.pdb C:\Users\Vitalik\Desktop\BS\BrawlStars.Utilities\bin\Debug\netstandard2.0\BrawlStars.Utilities.deps.json C:\Users\Vitalik\Desktop\BS\BrawlStars.Utilities\bin\Debug\netstandard2.0\BrawlStars.Utilities.dll C:\Users\Vitalik\Desktop\BS\BrawlStars.Utilities\bin\Debug\netstandard2.0\BrawlStars.Utilities.pdb C:\Users\Vitalik\Desktop\BS\BrawlStars.Utilities\obj\Debug\netstandard2.0\BrawlStars.Utilities.csprojAssemblyReference.cache C:\Users\Vitalik\Desktop\BS\BrawlStars.Utilities\obj\Debug\netstandard2.0\BrawlStars.Utilities.csproj.CoreCompileInputs.cache C:\Users\Vitalik\Desktop\BS\BrawlStars.Utilities\obj\Debug\netstandard2.0\BrawlStars.Utilities.AssemblyInfoInputs.cache C:\Users\Vitalik\Desktop\BS\BrawlStars.Utilities\obj\Debug\netstandard2.0\BrawlStars.Utilities.AssemblyInfo.cs C:\Users\Vitalik\Desktop\BS\BrawlStars.Utilities\obj\Debug\netstandard2.0\BrawlStars.Utilities.dll C:\Users\Vitalik\Desktop\BS\BrawlStars.Utilities\obj\Debug\netstandard2.0\BrawlStars.Utilities.pdb C:\Users\Vitalik\Desktop\Source\BrawlStars.Utilities\bin\Debug\netstandard2.0\BrawlStars.Utilities.deps.json C:\Users\Vitalik\Desktop\Source\BrawlStars.Utilities\bin\Debug\netstandard2.0\BrawlStars.Utilities.dll C:\Users\Vitalik\Desktop\Source\BrawlStars.Utilities\bin\Debug\netstandard2.0\BrawlStars.Utilities.pdb C:\Users\Vitalik\Desktop\Source\BrawlStars.Utilities\obj\Debug\netstandard2.0\BrawlStars.Utilities.csprojAssemblyReference.cache C:\Users\Vitalik\Desktop\Source\BrawlStars.Utilities\obj\Debug\netstandard2.0\BrawlStars.Utilities.csproj.CoreCompileInputs.cache C:\Users\Vitalik\Desktop\Source\BrawlStars.Utilities\obj\Debug\netstandard2.0\BrawlStars.Utilities.AssemblyInfoInputs.cache C:\Users\Vitalik\Desktop\Source\BrawlStars.Utilities\obj\Debug\netstandard2.0\BrawlStars.Utilities.AssemblyInfo.cs C:\Users\Vitalik\Desktop\Source\BrawlStars.Utilities\obj\Debug\netstandard2.0\BrawlStars.Utilities.dll C:\Users\Vitalik\Desktop\Source\BrawlStars.Utilities\obj\Debug\netstandard2.0\BrawlStars.Utilities.pdb ================================================ FILE: Source/BrawlStars.Utilities/obj/Debug/netstandard2.0/ClashofClans.Utilities.AssemblyInfo.cs ================================================ //------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ using System; using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("ClashofClans.Utilities")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] [assembly: System.Reflection.AssemblyProductAttribute("ClashofClans.Utilities")] [assembly: System.Reflection.AssemblyTitleAttribute("ClashofClans.Utilities")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] // Generated by the MSBuild WriteCodeFragment class. ================================================ FILE: Source/BrawlStars.Utilities/obj/Debug/netstandard2.0/ClashofClans.Utilities.AssemblyInfoInputs.cache ================================================ ea4cb677b4af8d35d92b27ec4a341331ac655b91 ================================================ FILE: Source/BrawlStars.Utilities/obj/Debug/netstandard2.0/ClashofClans.Utilities.csproj.CoreCompileInputs.cache ================================================ 7403864cafaed2a728f00ceee3c1398419914ee6 ================================================ FILE: Source/BrawlStars.Utilities/obj/Debug/netstandard2.0/ClashofClans.Utilities.csproj.FileListAbsolute.txt ================================================ E:\20Clash-master\src\ClashofClans.Utilities\bin\Debug\netstandard2.0\ClashofClans.Utilities.deps.json E:\20Clash-master\src\ClashofClans.Utilities\bin\Debug\netstandard2.0\ClashofClans.Utilities.dll E:\20Clash-master\src\ClashofClans.Utilities\bin\Debug\netstandard2.0\ClashofClans.Utilities.pdb E:\20Clash-master\src\ClashofClans.Utilities\obj\Debug\netstandard2.0\ClashofClans.Utilities.csprojAssemblyReference.cache E:\20Clash-master\src\ClashofClans.Utilities\obj\Debug\netstandard2.0\ClashofClans.Utilities.AssemblyInfoInputs.cache E:\20Clash-master\src\ClashofClans.Utilities\obj\Debug\netstandard2.0\ClashofClans.Utilities.AssemblyInfo.cs E:\20Clash-master\src\ClashofClans.Utilities\obj\Debug\netstandard2.0\ClashofClans.Utilities.dll E:\20Clash-master\src\ClashofClans.Utilities\obj\Debug\netstandard2.0\ClashofClans.Utilities.pdb E:\20Clash-master\src\ClashofClans.Utilities\obj\Debug\netstandard2.0\ClashofClans.Utilities.csproj.CoreCompileInputs.cache E:\BrawlStars\src\ClashofClans.Utilities\bin\Debug\netstandard2.0\ClashofClans.Utilities.deps.json E:\BrawlStars\src\ClashofClans.Utilities\bin\Debug\netstandard2.0\ClashofClans.Utilities.dll E:\BrawlStars\src\ClashofClans.Utilities\bin\Debug\netstandard2.0\ClashofClans.Utilities.pdb E:\BrawlStars\src\ClashofClans.Utilities\obj\Debug\netstandard2.0\ClashofClans.Utilities.csprojAssemblyReference.cache E:\BrawlStars\src\ClashofClans.Utilities\obj\Debug\netstandard2.0\ClashofClans.Utilities.csproj.CoreCompileInputs.cache E:\BrawlStars\src\ClashofClans.Utilities\obj\Debug\netstandard2.0\ClashofClans.Utilities.AssemblyInfoInputs.cache E:\BrawlStars\src\ClashofClans.Utilities\obj\Debug\netstandard2.0\ClashofClans.Utilities.AssemblyInfo.cs E:\BrawlStars\src\ClashofClans.Utilities\obj\Debug\netstandard2.0\ClashofClans.Utilities.dll E:\BrawlStars\src\ClashofClans.Utilities\obj\Debug\netstandard2.0\ClashofClans.Utilities.pdb ================================================ FILE: Source/BrawlStars.Utilities/obj/Release/netstandard2.0/ClashofClans.Utilities.AssemblyInfo.cs ================================================ //------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ using System; using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("ClashofClans.Utilities")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] [assembly: System.Reflection.AssemblyProductAttribute("ClashofClans.Utilities")] [assembly: System.Reflection.AssemblyTitleAttribute("ClashofClans.Utilities")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] // Generated by the MSBuild WriteCodeFragment class. ================================================ FILE: Source/BrawlStars.Utilities/obj/Release/netstandard2.0/ClashofClans.Utilities.AssemblyInfoInputs.cache ================================================ 6afc444d22c58c07108dccaca99e4e84c99bfe69 ================================================ FILE: Source/BrawlStars.Utilities/obj/Release/netstandard2.0/ClashofClans.Utilities.csproj.CoreCompileInputs.cache ================================================ c6e616abff42b709139c0e95fa4890c27b76eec2 ================================================ FILE: Source/BrawlStars.Utilities/obj/Release/netstandard2.0/ClashofClans.Utilities.csproj.FileListAbsolute.txt ================================================ E:\20Clash-master\src\ClashofClans.Utilities\bin\Release\netstandard2.0\ClashofClans.Utilities.deps.json E:\20Clash-master\src\ClashofClans.Utilities\bin\Release\netstandard2.0\ClashofClans.Utilities.dll E:\20Clash-master\src\ClashofClans.Utilities\bin\Release\netstandard2.0\ClashofClans.Utilities.pdb E:\20Clash-master\src\ClashofClans.Utilities\obj\Release\netstandard2.0\ClashofClans.Utilities.csprojAssemblyReference.cache E:\20Clash-master\src\ClashofClans.Utilities\obj\Release\netstandard2.0\ClashofClans.Utilities.csproj.CoreCompileInputs.cache E:\20Clash-master\src\ClashofClans.Utilities\obj\Release\netstandard2.0\ClashofClans.Utilities.AssemblyInfoInputs.cache E:\20Clash-master\src\ClashofClans.Utilities\obj\Release\netstandard2.0\ClashofClans.Utilities.AssemblyInfo.cs E:\20Clash-master\src\ClashofClans.Utilities\obj\Release\netstandard2.0\ClashofClans.Utilities.dll E:\20Clash-master\src\ClashofClans.Utilities\obj\Release\netstandard2.0\ClashofClans.Utilities.pdb ================================================ FILE: Source/BrawlStars.Utilities/obj/project.assets.json ================================================ { "version": 3, "targets": { ".NETStandard,Version=v2.0": { "BouncyCastle.NetCore/1.8.3": { "type": "package", "dependencies": { "NETStandard.Library": "1.6.0", "System.Reflection": "4.3.0", "System.Reflection.TypeExtensions": "4.1.0" }, "compile": { "lib/netstandard2.0/BouncyCastle.Crypto.dll": {} }, "runtime": { "lib/netstandard2.0/BouncyCastle.Crypto.dll": {} } }, "DotNetty.Buffers/0.6.0": { "type": "package", "dependencies": { "DotNetty.Common": "0.6.0", "NETStandard.Library": "1.6.1", "System.Diagnostics.Contracts": "4.3.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2" }, "compile": { "lib/netstandard1.3/DotNetty.Buffers.dll": {} }, "runtime": { "lib/netstandard1.3/DotNetty.Buffers.dll": {} } }, "DotNetty.Common/0.6.0": { "type": "package", "dependencies": { "Microsoft.Extensions.Logging": "1.1.1", "NETStandard.Library": "1.6.1", "System.Diagnostics.Contracts": "4.3.0", "System.Net.NetworkInformation": "4.3.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2" }, "compile": { "lib/netstandard1.3/DotNetty.Common.dll": {} }, "runtime": { "lib/netstandard1.3/DotNetty.Common.dll": {} } }, "Google.Protobuf/3.6.1": { "type": "package", "dependencies": { "NETStandard.Library": "1.6.1" }, "compile": { "lib/netstandard1.0/Google.Protobuf.dll": {} }, "runtime": { "lib/netstandard1.0/Google.Protobuf.dll": {} } }, "Microsoft.CSharp/4.0.1": { "type": "package", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Dynamic.Runtime": "4.0.11", "System.Globalization": "4.0.11", "System.Linq": "4.1.0", "System.Linq.Expressions": "4.1.0", "System.ObjectModel": "4.0.12", "System.Reflection": "4.1.0", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.InteropServices": "4.1.0", "System.Threading": "4.0.11" }, "compile": { "ref/netstandard1.0/Microsoft.CSharp.dll": {} }, "runtime": { "lib/netstandard1.3/Microsoft.CSharp.dll": {} } }, "Microsoft.Extensions.DependencyInjection.Abstractions/1.1.0": { "type": "package", "dependencies": { "NETStandard.Library": "1.6.1", "System.ComponentModel": "4.3.0" }, "compile": { "lib/netstandard1.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {} }, "runtime": { "lib/netstandard1.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {} } }, "Microsoft.Extensions.Logging/1.1.1": { "type": "package", "dependencies": { "Microsoft.Extensions.DependencyInjection.Abstractions": "1.1.0", "Microsoft.Extensions.Logging.Abstractions": "1.1.1", "NETStandard.Library": "1.6.1" }, "compile": { "lib/netstandard1.1/Microsoft.Extensions.Logging.dll": {} }, "runtime": { "lib/netstandard1.1/Microsoft.Extensions.Logging.dll": {} } }, "Microsoft.Extensions.Logging.Abstractions/1.1.1": { "type": "package", "dependencies": { "NETStandard.Library": "1.6.1" }, "compile": { "lib/netstandard1.1/Microsoft.Extensions.Logging.Abstractions.dll": {} }, "runtime": { "lib/netstandard1.1/Microsoft.Extensions.Logging.Abstractions.dll": {} } }, "Microsoft.NETCore.Platforms/1.1.0": { "type": "package", "compile": { "lib/netstandard1.0/_._": {} }, "runtime": { "lib/netstandard1.0/_._": {} } }, "Microsoft.NETCore.Targets/1.1.0": { "type": "package", "compile": { "lib/netstandard1.0/_._": {} }, "runtime": { "lib/netstandard1.0/_._": {} } }, "Microsoft.Win32.Primitives/4.3.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" }, "compile": { "ref/netstandard1.3/_._": {} } }, "MySql.Data/8.0.19": { "type": "package", "dependencies": { "BouncyCastle.NetCore": "1.8.3", "Google.Protobuf": "3.6.1", "SSH.NET": "2016.1.0", "System.Configuration.ConfigurationManager": "4.4.1", "System.Security.Permissions": "4.6.0", "System.Text.Encoding.CodePages": "4.4.0" }, "compile": { "lib/netstandard2.0/MySql.Data.dll": {}, "lib/netstandard2.0/Ubiety.Dns.Core.dll": {} }, "runtime": { "lib/netstandard2.0/MySql.Data.dll": {}, "lib/netstandard2.0/Ubiety.Dns.Core.dll": {} } }, "NETStandard.Library/2.0.3": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0" }, "compile": { "lib/netstandard1.0/_._": {} }, "runtime": { "lib/netstandard1.0/_._": {} }, "build": { "build/netstandard2.0/NETStandard.Library.targets": {} } }, "Newtonsoft.Json/12.0.2": { "type": "package", "compile": { "lib/netstandard2.0/Newtonsoft.Json.dll": {} }, "runtime": { "lib/netstandard2.0/Newtonsoft.Json.dll": {} } }, "runtime.native.System/4.3.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" }, "compile": { "lib/netstandard1.0/_._": {} }, "runtime": { "lib/netstandard1.0/_._": {} } }, "runtime.native.System.Security.Cryptography/4.0.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "Microsoft.NETCore.Targets": "1.0.1" }, "compile": { "lib/netstandard1.0/_._": {} }, "runtime": { "lib/netstandard1.0/_._": {} } }, "SSH.NET/2016.1.0": { "type": "package", "dependencies": { "Microsoft.CSharp": "4.0.1", "SshNet.Security.Cryptography": "[1.2.0]", "System.Diagnostics.Debug": "4.0.11", "System.Diagnostics.Tools": "4.0.1", "System.Diagnostics.TraceSource": "4.0.0", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.IO.FileSystem": "4.0.1", "System.IO.FileSystem.Primitives": "4.0.1", "System.Linq": "4.1.0", "System.Net.NameResolution": "4.0.0", "System.Net.Sockets": "4.1.0", "System.Reflection.Extensions": "4.0.1", "System.Runtime.Extensions": "4.1.0", "System.Security.Cryptography.Algorithms": "4.2.0", "System.Text.RegularExpressions": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Thread": "4.0.0", "System.Threading.ThreadPool": "4.0.10", "System.Threading.Timer": "4.0.1", "System.Xml.XPath.XmlDocument": "4.0.1", "System.Xml.XmlDocument": "4.0.1" }, "compile": { "lib/netstandard1.3/Renci.SshNet.dll": {} }, "runtime": { "lib/netstandard1.3/Renci.SshNet.dll": {} } }, "SshNet.Security.Cryptography/1.2.0": { "type": "package", "dependencies": { "System.IO": "4.1.0", "System.Security.Cryptography.Primitives": "4.0.0" }, "compile": { "lib/netstandard1.3/SshNet.Security.Cryptography.dll": {} }, "runtime": { "lib/netstandard1.3/SshNet.Security.Cryptography.dll": {} } }, "System.Collections/4.3.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" }, "compile": { "ref/netstandard1.3/System.Collections.dll": {} } }, "System.Collections.Concurrent/4.0.12": { "type": "package", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Diagnostics.Tracing": "4.1.0", "System.Globalization": "4.0.11", "System.Reflection": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11" }, "compile": { "ref/netstandard1.3/_._": {} }, "runtime": { "lib/netstandard1.3/System.Collections.Concurrent.dll": {} } }, "System.ComponentModel/4.3.0": { "type": "package", "dependencies": { "System.Runtime": "4.3.0" }, "compile": { "ref/netstandard1.0/System.ComponentModel.dll": {} }, "runtime": { "lib/netstandard1.3/System.ComponentModel.dll": {} } }, "System.Configuration.ConfigurationManager/4.4.1": { "type": "package", "dependencies": { "System.Security.Cryptography.ProtectedData": "4.4.0" }, "compile": { "ref/netstandard2.0/System.Configuration.ConfigurationManager.dll": {} }, "runtime": { "lib/netstandard2.0/System.Configuration.ConfigurationManager.dll": {} } }, "System.Diagnostics.Contracts/4.3.0": { "type": "package", "dependencies": { "System.Runtime": "4.3.0" }, "compile": { "ref/netstandard1.0/System.Diagnostics.Contracts.dll": {} }, "runtime": { "lib/netstandard1.0/System.Diagnostics.Contracts.dll": {} } }, "System.Diagnostics.Debug/4.3.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" }, "compile": { "ref/netstandard1.3/System.Diagnostics.Debug.dll": {} } }, "System.Diagnostics.Tools/4.0.1": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "Microsoft.NETCore.Targets": "1.0.1", "System.Runtime": "4.1.0" }, "compile": { "ref/netstandard1.0/System.Diagnostics.Tools.dll": {} } }, "System.Diagnostics.TraceSource/4.0.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "runtime.native.System": "4.0.0" }, "compile": { "ref/netstandard1.3/System.Diagnostics.TraceSource.dll": {} }, "runtimeTargets": { "runtimes/unix/lib/netstandard1.3/System.Diagnostics.TraceSource.dll": { "assetType": "runtime", "rid": "unix" }, "runtimes/win/lib/netstandard1.3/System.Diagnostics.TraceSource.dll": { "assetType": "runtime", "rid": "win" } } }, "System.Diagnostics.Tracing/4.3.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" }, "compile": { "ref/netstandard1.5/_._": {} } }, "System.Dynamic.Runtime/4.0.11": { "type": "package", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Linq": "4.1.0", "System.Linq.Expressions": "4.1.0", "System.ObjectModel": "4.0.12", "System.Reflection": "4.1.0", "System.Reflection.Emit": "4.0.1", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" }, "compile": { "ref/netstandard1.3/System.Dynamic.Runtime.dll": {} }, "runtime": { "lib/netstandard1.3/System.Dynamic.Runtime.dll": {} } }, "System.Globalization/4.3.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" }, "compile": { "ref/netstandard1.3/System.Globalization.dll": {} } }, "System.IO/4.3.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" }, "compile": { "ref/netstandard1.5/System.IO.dll": {} } }, "System.IO.FileSystem/4.3.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" }, "compile": { "ref/netstandard1.3/System.IO.FileSystem.dll": {} } }, "System.IO.FileSystem.Primitives/4.3.0": { "type": "package", "dependencies": { "System.Runtime": "4.3.0" }, "compile": { "ref/netstandard1.3/System.IO.FileSystem.Primitives.dll": {} }, "runtime": { "lib/netstandard1.3/System.IO.FileSystem.Primitives.dll": {} } }, "System.Linq/4.3.0": { "type": "package", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" }, "compile": { "ref/netstandard1.6/System.Linq.dll": {} }, "runtime": { "lib/netstandard1.6/System.Linq.dll": {} } }, "System.Linq.Expressions/4.1.0": { "type": "package", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.ObjectModel": "4.0.12", "System.Reflection": "4.1.0", "System.Reflection.Emit": "4.0.1", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Emit.Lightweight": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" }, "compile": { "ref/netstandard1.6/System.Linq.Expressions.dll": {} }, "runtime": { "lib/netstandard1.6/System.Linq.Expressions.dll": {} } }, "System.Net.NameResolution/4.0.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "System.Collections": "4.0.11", "System.Diagnostics.Tracing": "4.1.0", "System.Globalization": "4.0.11", "System.Net.Primitives": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Handles": "4.0.1", "System.Runtime.InteropServices": "4.1.0", "System.Security.Principal.Windows": "4.0.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11", "runtime.native.System": "4.0.0" }, "compile": { "ref/netstandard1.3/System.Net.NameResolution.dll": {} }, "runtimeTargets": { "runtimes/unix/lib/netstandard1.3/System.Net.NameResolution.dll": { "assetType": "runtime", "rid": "unix" }, "runtimes/win/lib/netstandard1.3/System.Net.NameResolution.dll": { "assetType": "runtime", "rid": "win" } } }, "System.Net.NetworkInformation/4.3.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.Win32.Primitives": "4.3.0", "System.Collections": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Linq": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Net.Sockets": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Principal.Windows": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Overlapped": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Thread": "4.3.0", "System.Threading.ThreadPool": "4.3.0", "runtime.native.System": "4.3.0" }, "compile": { "ref/netstandard1.3/System.Net.NetworkInformation.dll": {} }, "runtimeTargets": { "runtimes/linux/lib/netstandard1.3/System.Net.NetworkInformation.dll": { "assetType": "runtime", "rid": "linux" }, "runtimes/osx/lib/netstandard1.3/System.Net.NetworkInformation.dll": { "assetType": "runtime", "rid": "osx" }, "runtimes/win/lib/netstandard1.3/System.Net.NetworkInformation.dll": { "assetType": "runtime", "rid": "win" } } }, "System.Net.Primitives/4.3.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" }, "compile": { "ref/netstandard1.3/System.Net.Primitives.dll": {} } }, "System.Net.Sockets/4.3.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" }, "compile": { "ref/netstandard1.3/System.Net.Sockets.dll": {} } }, "System.ObjectModel/4.0.12": { "type": "package", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Threading": "4.0.11" }, "compile": { "ref/netstandard1.3/System.ObjectModel.dll": {} }, "runtime": { "lib/netstandard1.3/System.ObjectModel.dll": {} } }, "System.Reflection/4.3.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" }, "compile": { "ref/netstandard1.5/System.Reflection.dll": {} } }, "System.Reflection.Emit/4.0.1": { "type": "package", "dependencies": { "System.IO": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Runtime": "4.1.0" }, "compile": { "ref/netstandard1.1/_._": {} }, "runtime": { "lib/netstandard1.3/System.Reflection.Emit.dll": {} } }, "System.Reflection.Emit.ILGeneration/4.0.1": { "type": "package", "dependencies": { "System.Reflection": "4.1.0", "System.Reflection.Primitives": "4.0.1", "System.Runtime": "4.1.0" }, "compile": { "ref/netstandard1.0/_._": {} }, "runtime": { "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll": {} } }, "System.Reflection.Emit.Lightweight/4.0.1": { "type": "package", "dependencies": { "System.Reflection": "4.1.0", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Runtime": "4.1.0" }, "compile": { "ref/netstandard1.0/_._": {} }, "runtime": { "lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll": {} } }, "System.Reflection.Extensions/4.0.1": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "Microsoft.NETCore.Targets": "1.0.1", "System.Reflection": "4.1.0", "System.Runtime": "4.1.0" }, "compile": { "ref/netstandard1.0/System.Reflection.Extensions.dll": {} } }, "System.Reflection.Primitives/4.3.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" }, "compile": { "ref/netstandard1.0/System.Reflection.Primitives.dll": {} } }, "System.Reflection.TypeExtensions/4.1.0": { "type": "package", "dependencies": { "System.Reflection": "4.1.0", "System.Runtime": "4.1.0" }, "compile": { "ref/netstandard1.5/System.Reflection.TypeExtensions.dll": {} }, "runtime": { "lib/netstandard1.5/System.Reflection.TypeExtensions.dll": {} } }, "System.Resources.ResourceManager/4.3.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" }, "compile": { "ref/netstandard1.0/_._": {} } }, "System.Runtime/4.3.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" }, "compile": { "ref/netstandard1.5/System.Runtime.dll": {} } }, "System.Runtime.CompilerServices.Unsafe/4.5.2": { "type": "package", "compile": { "ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": {} }, "runtime": { "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": {} } }, "System.Runtime.Extensions/4.3.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" }, "compile": { "ref/netstandard1.5/System.Runtime.Extensions.dll": {} } }, "System.Runtime.Handles/4.3.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" }, "compile": { "ref/netstandard1.3/System.Runtime.Handles.dll": {} } }, "System.Runtime.InteropServices/4.3.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" }, "compile": { "ref/netstandard1.5/_._": {} } }, "System.Runtime.Numerics/4.0.1": { "type": "package", "dependencies": { "System.Globalization": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0" }, "compile": { "ref/netstandard1.1/_._": {} }, "runtime": { "lib/netstandard1.3/System.Runtime.Numerics.dll": {} } }, "System.Security.AccessControl/4.6.0": { "type": "package", "dependencies": { "System.Security.Principal.Windows": "4.6.0" }, "compile": { "ref/netstandard2.0/System.Security.AccessControl.dll": {} }, "runtime": { "lib/netstandard2.0/System.Security.AccessControl.dll": {} }, "runtimeTargets": { "runtimes/win/lib/netstandard1.3/System.Security.AccessControl.dll": { "assetType": "runtime", "rid": "win" } } }, "System.Security.Cryptography.Algorithms/4.2.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "System.Collections": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Handles": "4.0.1", "System.Runtime.InteropServices": "4.1.0", "System.Runtime.Numerics": "4.0.1", "System.Security.Cryptography.Encoding": "4.0.0", "System.Security.Cryptography.Primitives": "4.0.0", "System.Text.Encoding": "4.0.11", "runtime.native.System.Security.Cryptography": "4.0.0" }, "compile": { "ref/netstandard1.6/System.Security.Cryptography.Algorithms.dll": {} }, "runtimeTargets": { "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll": { "assetType": "runtime", "rid": "unix" }, "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll": { "assetType": "runtime", "rid": "win" } } }, "System.Security.Cryptography.Encoding/4.0.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "System.Collections": "4.0.11", "System.Collections.Concurrent": "4.0.12", "System.Linq": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Handles": "4.0.1", "System.Runtime.InteropServices": "4.1.0", "System.Security.Cryptography.Primitives": "4.0.0", "System.Text.Encoding": "4.0.11", "runtime.native.System.Security.Cryptography": "4.0.0" }, "compile": { "ref/netstandard1.3/System.Security.Cryptography.Encoding.dll": {} }, "runtimeTargets": { "runtimes/unix/lib/netstandard1.3/System.Security.Cryptography.Encoding.dll": { "assetType": "runtime", "rid": "unix" }, "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.Encoding.dll": { "assetType": "runtime", "rid": "win" } } }, "System.Security.Cryptography.Primitives/4.0.0": { "type": "package", "dependencies": { "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11" }, "compile": { "ref/netstandard1.3/System.Security.Cryptography.Primitives.dll": {} }, "runtime": { "lib/netstandard1.3/System.Security.Cryptography.Primitives.dll": {} } }, "System.Security.Cryptography.ProtectedData/4.4.0": { "type": "package", "compile": { "ref/netstandard2.0/_._": {} }, "runtime": { "lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": {} }, "runtimeTargets": { "runtimes/win/lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": { "assetType": "runtime", "rid": "win" } } }, "System.Security.Permissions/4.6.0": { "type": "package", "dependencies": { "System.Security.AccessControl": "4.6.0" }, "compile": { "ref/netstandard2.0/System.Security.Permissions.dll": {} }, "runtime": { "lib/netstandard2.0/System.Security.Permissions.dll": {} } }, "System.Security.Principal.Windows/4.6.0": { "type": "package", "compile": { "ref/netstandard2.0/System.Security.Principal.Windows.dll": {} }, "runtime": { "lib/netstandard2.0/System.Security.Principal.Windows.dll": {} }, "runtimeTargets": { "runtimes/win/lib/netstandard1.3/System.Security.Principal.Windows.dll": { "assetType": "runtime", "rid": "win" } } }, "System.Text.Encoding/4.3.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" }, "compile": { "ref/netstandard1.3/System.Text.Encoding.dll": {} } }, "System.Text.Encoding.CodePages/4.4.0": { "type": "package", "compile": { "ref/netstandard2.0/System.Text.Encoding.CodePages.dll": {} }, "runtime": { "lib/netstandard2.0/System.Text.Encoding.CodePages.dll": {} }, "runtimeTargets": { "runtimes/win/lib/netstandard2.0/System.Text.Encoding.CodePages.dll": { "assetType": "runtime", "rid": "win" } } }, "System.Text.Encoding.Extensions/4.0.11": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "Microsoft.NETCore.Targets": "1.0.1", "System.Runtime": "4.1.0", "System.Text.Encoding": "4.0.11" }, "compile": { "ref/netstandard1.3/_._": {} } }, "System.Text.RegularExpressions/4.1.0": { "type": "package", "dependencies": { "System.Collections": "4.0.11", "System.Globalization": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" }, "compile": { "ref/netstandard1.6/System.Text.RegularExpressions.dll": {} }, "runtime": { "lib/netstandard1.6/System.Text.RegularExpressions.dll": {} } }, "System.Threading/4.3.0": { "type": "package", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" }, "compile": { "ref/netstandard1.3/System.Threading.dll": {} }, "runtime": { "lib/netstandard1.3/System.Threading.dll": {} } }, "System.Threading.Overlapped/4.3.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" }, "compile": { "ref/netstandard1.3/_._": {} }, "runtimeTargets": { "runtimes/unix/lib/netstandard1.3/System.Threading.Overlapped.dll": { "assetType": "runtime", "rid": "unix" }, "runtimes/win/lib/netstandard1.3/System.Threading.Overlapped.dll": { "assetType": "runtime", "rid": "win" } } }, "System.Threading.Tasks/4.3.0": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" }, "compile": { "ref/netstandard1.3/System.Threading.Tasks.dll": {} } }, "System.Threading.Tasks.Extensions/4.0.0": { "type": "package", "dependencies": { "System.Collections": "4.0.11", "System.Runtime": "4.1.0", "System.Threading.Tasks": "4.0.11" }, "compile": { "lib/netstandard1.0/_._": {} }, "runtime": { "lib/netstandard1.0/System.Threading.Tasks.Extensions.dll": {} } }, "System.Threading.Thread/4.3.0": { "type": "package", "dependencies": { "System.Runtime": "4.3.0" }, "compile": { "ref/netstandard1.3/System.Threading.Thread.dll": {} }, "runtime": { "lib/netstandard1.3/System.Threading.Thread.dll": {} } }, "System.Threading.ThreadPool/4.3.0": { "type": "package", "dependencies": { "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" }, "compile": { "ref/netstandard1.3/System.Threading.ThreadPool.dll": {} }, "runtime": { "lib/netstandard1.3/System.Threading.ThreadPool.dll": {} } }, "System.Threading.Timer/4.0.1": { "type": "package", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "Microsoft.NETCore.Targets": "1.0.1", "System.Runtime": "4.1.0" }, "compile": { "ref/netstandard1.2/System.Threading.Timer.dll": {} } }, "System.Xml.ReaderWriter/4.0.11": { "type": "package", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.IO.FileSystem": "4.0.1", "System.IO.FileSystem.Primitives": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.InteropServices": "4.1.0", "System.Text.Encoding": "4.0.11", "System.Text.Encoding.Extensions": "4.0.11", "System.Text.RegularExpressions": "4.1.0", "System.Threading.Tasks": "4.0.11", "System.Threading.Tasks.Extensions": "4.0.0" }, "compile": { "ref/netstandard1.3/System.Xml.ReaderWriter.dll": {} }, "runtime": { "lib/netstandard1.3/System.Xml.ReaderWriter.dll": {} } }, "System.Xml.XmlDocument/4.0.1": { "type": "package", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Text.Encoding": "4.0.11", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11" }, "compile": { "ref/netstandard1.3/System.Xml.XmlDocument.dll": {} }, "runtime": { "lib/netstandard1.3/System.Xml.XmlDocument.dll": {} } }, "System.Xml.XPath/4.0.1": { "type": "package", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11" }, "compile": { "ref/netstandard1.3/System.Xml.XPath.dll": {} }, "runtime": { "lib/netstandard1.3/System.Xml.XPath.dll": {} } }, "System.Xml.XPath.XmlDocument/4.0.1": { "type": "package", "dependencies": { "System.Collections": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XPath": "4.0.1", "System.Xml.XmlDocument": "4.0.1" }, "compile": { "ref/netstandard1.3/System.Xml.XPath.XmlDocument.dll": {} }, "runtime": { "lib/netstandard1.3/System.Xml.XPath.XmlDocument.dll": {} } } } }, "libraries": { "BouncyCastle.NetCore/1.8.3": { "sha512": "jAy3uHN1U9DpoT/TgLqDTEhlccn/4doOVxhSmmNsnoSsGfHT9Lwr634ac9D0YFujAhNw61nWF4UIpHyzv0aQww==", "type": "package", "path": "bouncycastle.netcore/1.8.3", "files": [ ".nupkg.metadata", ".signature.p7s", "bouncycastle.netcore.1.8.3.nupkg.sha512", "bouncycastle.netcore.nuspec", "lib/Mono/BouncyCastle.Crypto.dll", "lib/Mono/BouncyCastle.Crypto.xml", "lib/MonoAndroid/BouncyCastle.Crypto.dll", "lib/MonoAndroid/BouncyCastle.Crypto.xml", "lib/MonoMac/BouncyCastle.Crypto.dll", "lib/MonoMac/BouncyCastle.Crypto.xml", "lib/MonoTouch/BouncyCastle.Crypto.dll", "lib/MonoTouch/BouncyCastle.Crypto.xml", "lib/net20/BouncyCastle.Crypto.dll", "lib/net20/BouncyCastle.Crypto.xml", "lib/netstandard1.3/BouncyCastle.Crypto.dll", "lib/netstandard1.3/BouncyCastle.Crypto.xml", "lib/netstandard2.0/BouncyCastle.Crypto.dll", "lib/netstandard2.0/BouncyCastle.Crypto.xml", "lib/xamarinios/BouncyCastle.Crypto.dll", "lib/xamarinios/BouncyCastle.Crypto.xml" ] }, "DotNetty.Buffers/0.6.0": { "sha512": "MjxoFMdKsSJ5CLKTFHTKYoFUZUvC6VHGx71vPLSflmR/X4dSm57/hVxhsQY3YU6aASeRjqgNiCHn4II+UNOIWQ==", "type": "package", "path": "dotnetty.buffers/0.6.0", "files": [ ".nupkg.metadata", ".signature.p7s", "dotnetty.buffers.0.6.0.nupkg.sha512", "dotnetty.buffers.nuspec", "lib/net45/DotNetty.Buffers.dll", "lib/net45/DotNetty.Buffers.xml", "lib/netstandard1.3/DotNetty.Buffers.dll", "lib/netstandard1.3/DotNetty.Buffers.xml" ] }, "DotNetty.Common/0.6.0": { "sha512": "aVD0bWoaH+Ou0wOTFzYEs3hrzsckUEkbdweVgwHsk7q0OTPgmPD/QkGxjNqjZ9diUyeGvHzYn7mFQGG5cgbYUA==", "type": "package", "path": "dotnetty.common/0.6.0", "files": [ ".nupkg.metadata", ".signature.p7s", "dotnetty.common.0.6.0.nupkg.sha512", "dotnetty.common.nuspec", "lib/net45/DotNetty.Common.dll", "lib/net45/DotNetty.Common.xml", "lib/netstandard1.3/DotNetty.Common.dll", "lib/netstandard1.3/DotNetty.Common.xml" ] }, "Google.Protobuf/3.6.1": { "sha512": "741fGeDQjixBJaU2j+0CbrmZXsNJkTn/hWbOh4fLVXndHsCclJmWznCPWrJmPoZKvajBvAz3e8ECJOUvRtwjNQ==", "type": "package", "path": "google.protobuf/3.6.1", "files": [ ".nupkg.metadata", ".signature.p7s", "google.protobuf.3.6.1.nupkg.sha512", "google.protobuf.nuspec", "lib/net45/Google.Protobuf.dll", "lib/net45/Google.Protobuf.xml", "lib/netstandard1.0/Google.Protobuf.dll", "lib/netstandard1.0/Google.Protobuf.xml" ] }, "Microsoft.CSharp/4.0.1": { "sha512": "17h8b5mXa87XYKrrVqdgZ38JefSUqLChUQpXgSnpzsM0nDOhE40FTeNWOJ/YmySGV6tG6T8+hjz6vxbknHJr6A==", "type": "package", "path": "microsoft.csharp/4.0.1", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/netcore50/Microsoft.CSharp.dll", "lib/netstandard1.3/Microsoft.CSharp.dll", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "microsoft.csharp.4.0.1.nupkg.sha512", "microsoft.csharp.nuspec", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/netcore50/Microsoft.CSharp.dll", "ref/netcore50/Microsoft.CSharp.xml", "ref/netcore50/de/Microsoft.CSharp.xml", "ref/netcore50/es/Microsoft.CSharp.xml", "ref/netcore50/fr/Microsoft.CSharp.xml", "ref/netcore50/it/Microsoft.CSharp.xml", "ref/netcore50/ja/Microsoft.CSharp.xml", "ref/netcore50/ko/Microsoft.CSharp.xml", "ref/netcore50/ru/Microsoft.CSharp.xml", "ref/netcore50/zh-hans/Microsoft.CSharp.xml", "ref/netcore50/zh-hant/Microsoft.CSharp.xml", "ref/netstandard1.0/Microsoft.CSharp.dll", "ref/netstandard1.0/Microsoft.CSharp.xml", "ref/netstandard1.0/de/Microsoft.CSharp.xml", "ref/netstandard1.0/es/Microsoft.CSharp.xml", "ref/netstandard1.0/fr/Microsoft.CSharp.xml", "ref/netstandard1.0/it/Microsoft.CSharp.xml", "ref/netstandard1.0/ja/Microsoft.CSharp.xml", "ref/netstandard1.0/ko/Microsoft.CSharp.xml", "ref/netstandard1.0/ru/Microsoft.CSharp.xml", "ref/netstandard1.0/zh-hans/Microsoft.CSharp.xml", "ref/netstandard1.0/zh-hant/Microsoft.CSharp.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._" ] }, "Microsoft.Extensions.DependencyInjection.Abstractions/1.1.0": { "sha512": "2luhjVaWZd8Wmr2KUJcLNAN+iZgezTyfamLG6Lo5FVYY1LYaS7UFOmNtApHGVIytWWtuXSk4ea0t2Vx0HgF5fg==", "type": "package", "path": "microsoft.extensions.dependencyinjection.abstractions/1.1.0", "files": [ ".nupkg.metadata", ".signature.p7s", "lib/netstandard1.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", "lib/netstandard1.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", "microsoft.extensions.dependencyinjection.abstractions.1.1.0.nupkg.sha512", "microsoft.extensions.dependencyinjection.abstractions.nuspec" ] }, "Microsoft.Extensions.Logging/1.1.1": { "sha512": "cxLG416uOEFmnv7w4/rsVKD4dRYFuUY+G5WXpLVLMNIL6VYcQkDe67cx2IWBrtUieA08w9eCuxrd2pxIrJ7Wtg==", "type": "package", "path": "microsoft.extensions.logging/1.1.1", "files": [ ".nupkg.metadata", ".signature.p7s", "lib/netstandard1.1/Microsoft.Extensions.Logging.dll", "lib/netstandard1.1/Microsoft.Extensions.Logging.xml", "microsoft.extensions.logging.1.1.1.nupkg.sha512", "microsoft.extensions.logging.nuspec" ] }, "Microsoft.Extensions.Logging.Abstractions/1.1.1": { "sha512": "MMWQNrwQKrSigIaGpPWIK9ZZCNd9aaCHaLgwfPiJNdOfU3UE+RA093YZ7B879MdZ1qSFPcS1QLLNjD+dxXX7Aw==", "type": "package", "path": "microsoft.extensions.logging.abstractions/1.1.1", "files": [ ".nupkg.metadata", ".signature.p7s", "lib/netstandard1.1/Microsoft.Extensions.Logging.Abstractions.dll", "lib/netstandard1.1/Microsoft.Extensions.Logging.Abstractions.xml", "microsoft.extensions.logging.abstractions.1.1.1.nupkg.sha512", "microsoft.extensions.logging.abstractions.nuspec" ] }, "Microsoft.NETCore.Platforms/1.1.0": { "sha512": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", "type": "package", "path": "microsoft.netcore.platforms/1.1.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/netstandard1.0/_._", "microsoft.netcore.platforms.1.1.0.nupkg.sha512", "microsoft.netcore.platforms.nuspec", "runtime.json" ] }, "Microsoft.NETCore.Targets/1.1.0": { "sha512": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==", "type": "package", "path": "microsoft.netcore.targets/1.1.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/netstandard1.0/_._", "microsoft.netcore.targets.1.1.0.nupkg.sha512", "microsoft.netcore.targets.nuspec", "runtime.json" ] }, "Microsoft.Win32.Primitives/4.3.0": { "sha512": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", "type": "package", "path": "microsoft.win32.primitives/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net46/Microsoft.Win32.Primitives.dll", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "microsoft.win32.primitives.4.3.0.nupkg.sha512", "microsoft.win32.primitives.nuspec", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net46/Microsoft.Win32.Primitives.dll", "ref/netstandard1.3/Microsoft.Win32.Primitives.dll", "ref/netstandard1.3/Microsoft.Win32.Primitives.xml", "ref/netstandard1.3/de/Microsoft.Win32.Primitives.xml", "ref/netstandard1.3/es/Microsoft.Win32.Primitives.xml", "ref/netstandard1.3/fr/Microsoft.Win32.Primitives.xml", "ref/netstandard1.3/it/Microsoft.Win32.Primitives.xml", "ref/netstandard1.3/ja/Microsoft.Win32.Primitives.xml", "ref/netstandard1.3/ko/Microsoft.Win32.Primitives.xml", "ref/netstandard1.3/ru/Microsoft.Win32.Primitives.xml", "ref/netstandard1.3/zh-hans/Microsoft.Win32.Primitives.xml", "ref/netstandard1.3/zh-hant/Microsoft.Win32.Primitives.xml", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._" ] }, "MySql.Data/8.0.19": { "sha512": "zPFSg8rW3PcFIn27d0lEHQ/XWQhBzGIgKYQYFZN8aHLlpen5D6nz3/wb54V9ZRH3zkWlIWQ7FfxqbQdl3vizjQ==", "type": "package", "path": "mysql.data/8.0.19", "files": [ ".nupkg.metadata", ".signature.p7s", "lib/net452/MySql.Data.dll", "lib/net452/MySql.Data.xml", "lib/net452/Ubiety.Dns.Core.dll", "lib/net48/MySql.Data.dll", "lib/net48/MySql.Data.xml", "lib/net48/Ubiety.Dns.Core.dll", "lib/netstandard2.0/MySql.Data.dll", "lib/netstandard2.0/MySql.Data.xml", "lib/netstandard2.0/Ubiety.Dns.Core.dll", "lib/netstandard2.1/MySql.Data.dll", "lib/netstandard2.1/MySql.Data.xml", "lib/netstandard2.1/Ubiety.Dns.Core.dll", "mysql.data.8.0.19.nupkg.sha512", "mysql.data.nuspec" ] }, "NETStandard.Library/2.0.3": { "sha512": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", "type": "package", "path": "netstandard.library/2.0.3", "files": [ ".nupkg.metadata", ".signature.p7s", "LICENSE.TXT", "THIRD-PARTY-NOTICES.TXT", "build/netstandard2.0/NETStandard.Library.targets", "build/netstandard2.0/ref/Microsoft.Win32.Primitives.dll", "build/netstandard2.0/ref/System.AppContext.dll", "build/netstandard2.0/ref/System.Collections.Concurrent.dll", "build/netstandard2.0/ref/System.Collections.NonGeneric.dll", "build/netstandard2.0/ref/System.Collections.Specialized.dll", "build/netstandard2.0/ref/System.Collections.dll", "build/netstandard2.0/ref/System.ComponentModel.Composition.dll", "build/netstandard2.0/ref/System.ComponentModel.EventBasedAsync.dll", "build/netstandard2.0/ref/System.ComponentModel.Primitives.dll", "build/netstandard2.0/ref/System.ComponentModel.TypeConverter.dll", "build/netstandard2.0/ref/System.ComponentModel.dll", "build/netstandard2.0/ref/System.Console.dll", "build/netstandard2.0/ref/System.Core.dll", "build/netstandard2.0/ref/System.Data.Common.dll", "build/netstandard2.0/ref/System.Data.dll", "build/netstandard2.0/ref/System.Diagnostics.Contracts.dll", "build/netstandard2.0/ref/System.Diagnostics.Debug.dll", "build/netstandard2.0/ref/System.Diagnostics.FileVersionInfo.dll", "build/netstandard2.0/ref/System.Diagnostics.Process.dll", "build/netstandard2.0/ref/System.Diagnostics.StackTrace.dll", "build/netstandard2.0/ref/System.Diagnostics.TextWriterTraceListener.dll", "build/netstandard2.0/ref/System.Diagnostics.Tools.dll", "build/netstandard2.0/ref/System.Diagnostics.TraceSource.dll", "build/netstandard2.0/ref/System.Diagnostics.Tracing.dll", "build/netstandard2.0/ref/System.Drawing.Primitives.dll", "build/netstandard2.0/ref/System.Drawing.dll", "build/netstandard2.0/ref/System.Dynamic.Runtime.dll", "build/netstandard2.0/ref/System.Globalization.Calendars.dll", "build/netstandard2.0/ref/System.Globalization.Extensions.dll", "build/netstandard2.0/ref/System.Globalization.dll", "build/netstandard2.0/ref/System.IO.Compression.FileSystem.dll", "build/netstandard2.0/ref/System.IO.Compression.ZipFile.dll", "build/netstandard2.0/ref/System.IO.Compression.dll", "build/netstandard2.0/ref/System.IO.FileSystem.DriveInfo.dll", "build/netstandard2.0/ref/System.IO.FileSystem.Primitives.dll", "build/netstandard2.0/ref/System.IO.FileSystem.Watcher.dll", "build/netstandard2.0/ref/System.IO.FileSystem.dll", "build/netstandard2.0/ref/System.IO.IsolatedStorage.dll", "build/netstandard2.0/ref/System.IO.MemoryMappedFiles.dll", "build/netstandard2.0/ref/System.IO.Pipes.dll", "build/netstandard2.0/ref/System.IO.UnmanagedMemoryStream.dll", "build/netstandard2.0/ref/System.IO.dll", "build/netstandard2.0/ref/System.Linq.Expressions.dll", "build/netstandard2.0/ref/System.Linq.Parallel.dll", "build/netstandard2.0/ref/System.Linq.Queryable.dll", "build/netstandard2.0/ref/System.Linq.dll", "build/netstandard2.0/ref/System.Net.Http.dll", "build/netstandard2.0/ref/System.Net.NameResolution.dll", "build/netstandard2.0/ref/System.Net.NetworkInformation.dll", "build/netstandard2.0/ref/System.Net.Ping.dll", "build/netstandard2.0/ref/System.Net.Primitives.dll", "build/netstandard2.0/ref/System.Net.Requests.dll", "build/netstandard2.0/ref/System.Net.Security.dll", "build/netstandard2.0/ref/System.Net.Sockets.dll", "build/netstandard2.0/ref/System.Net.WebHeaderCollection.dll", "build/netstandard2.0/ref/System.Net.WebSockets.Client.dll", "build/netstandard2.0/ref/System.Net.WebSockets.dll", "build/netstandard2.0/ref/System.Net.dll", "build/netstandard2.0/ref/System.Numerics.dll", "build/netstandard2.0/ref/System.ObjectModel.dll", "build/netstandard2.0/ref/System.Reflection.Extensions.dll", "build/netstandard2.0/ref/System.Reflection.Primitives.dll", "build/netstandard2.0/ref/System.Reflection.dll", "build/netstandard2.0/ref/System.Resources.Reader.dll", "build/netstandard2.0/ref/System.Resources.ResourceManager.dll", "build/netstandard2.0/ref/System.Resources.Writer.dll", "build/netstandard2.0/ref/System.Runtime.CompilerServices.VisualC.dll", "build/netstandard2.0/ref/System.Runtime.Extensions.dll", "build/netstandard2.0/ref/System.Runtime.Handles.dll", "build/netstandard2.0/ref/System.Runtime.InteropServices.RuntimeInformation.dll", "build/netstandard2.0/ref/System.Runtime.InteropServices.dll", "build/netstandard2.0/ref/System.Runtime.Numerics.dll", "build/netstandard2.0/ref/System.Runtime.Serialization.Formatters.dll", "build/netstandard2.0/ref/System.Runtime.Serialization.Json.dll", "build/netstandard2.0/ref/System.Runtime.Serialization.Primitives.dll", "build/netstandard2.0/ref/System.Runtime.Serialization.Xml.dll", "build/netstandard2.0/ref/System.Runtime.Serialization.dll", "build/netstandard2.0/ref/System.Runtime.dll", "build/netstandard2.0/ref/System.Security.Claims.dll", "build/netstandard2.0/ref/System.Security.Cryptography.Algorithms.dll", "build/netstandard2.0/ref/System.Security.Cryptography.Csp.dll", "build/netstandard2.0/ref/System.Security.Cryptography.Encoding.dll", "build/netstandard2.0/ref/System.Security.Cryptography.Primitives.dll", "build/netstandard2.0/ref/System.Security.Cryptography.X509Certificates.dll", "build/netstandard2.0/ref/System.Security.Principal.dll", "build/netstandard2.0/ref/System.Security.SecureString.dll", "build/netstandard2.0/ref/System.ServiceModel.Web.dll", "build/netstandard2.0/ref/System.Text.Encoding.Extensions.dll", "build/netstandard2.0/ref/System.Text.Encoding.dll", "build/netstandard2.0/ref/System.Text.RegularExpressions.dll", "build/netstandard2.0/ref/System.Threading.Overlapped.dll", "build/netstandard2.0/ref/System.Threading.Tasks.Parallel.dll", "build/netstandard2.0/ref/System.Threading.Tasks.dll", "build/netstandard2.0/ref/System.Threading.Thread.dll", "build/netstandard2.0/ref/System.Threading.ThreadPool.dll", "build/netstandard2.0/ref/System.Threading.Timer.dll", "build/netstandard2.0/ref/System.Threading.dll", "build/netstandard2.0/ref/System.Transactions.dll", "build/netstandard2.0/ref/System.ValueTuple.dll", "build/netstandard2.0/ref/System.Web.dll", "build/netstandard2.0/ref/System.Windows.dll", "build/netstandard2.0/ref/System.Xml.Linq.dll", "build/netstandard2.0/ref/System.Xml.ReaderWriter.dll", "build/netstandard2.0/ref/System.Xml.Serialization.dll", "build/netstandard2.0/ref/System.Xml.XDocument.dll", "build/netstandard2.0/ref/System.Xml.XPath.XDocument.dll", "build/netstandard2.0/ref/System.Xml.XPath.dll", "build/netstandard2.0/ref/System.Xml.XmlDocument.dll", "build/netstandard2.0/ref/System.Xml.XmlSerializer.dll", "build/netstandard2.0/ref/System.Xml.dll", "build/netstandard2.0/ref/System.dll", "build/netstandard2.0/ref/mscorlib.dll", "build/netstandard2.0/ref/netstandard.dll", "build/netstandard2.0/ref/netstandard.xml", "lib/netstandard1.0/_._", "netstandard.library.2.0.3.nupkg.sha512", "netstandard.library.nuspec" ] }, "Newtonsoft.Json/12.0.2": { "sha512": "rTK0s2EKlfHsQsH6Yx2smvcTCeyoDNgCW7FEYyV01drPlh2T243PR2DiDXqtC5N4GDm4Ma/lkxfW5a/4793vbA==", "type": "package", "path": "newtonsoft.json/12.0.2", "files": [ ".nupkg.metadata", ".signature.p7s", "LICENSE.md", "lib/net20/Newtonsoft.Json.dll", "lib/net20/Newtonsoft.Json.xml", "lib/net35/Newtonsoft.Json.dll", "lib/net35/Newtonsoft.Json.xml", "lib/net40/Newtonsoft.Json.dll", "lib/net40/Newtonsoft.Json.xml", "lib/net45/Newtonsoft.Json.dll", "lib/net45/Newtonsoft.Json.xml", "lib/netstandard1.0/Newtonsoft.Json.dll", "lib/netstandard1.0/Newtonsoft.Json.xml", "lib/netstandard1.3/Newtonsoft.Json.dll", "lib/netstandard1.3/Newtonsoft.Json.xml", "lib/netstandard2.0/Newtonsoft.Json.dll", "lib/netstandard2.0/Newtonsoft.Json.xml", "lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.dll", "lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.xml", "lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.dll", "lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.xml", "newtonsoft.json.12.0.2.nupkg.sha512", "newtonsoft.json.nuspec" ] }, "runtime.native.System/4.3.0": { "sha512": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", "type": "package", "path": "runtime.native.system/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/netstandard1.0/_._", "runtime.native.system.4.3.0.nupkg.sha512", "runtime.native.system.nuspec" ] }, "runtime.native.System.Security.Cryptography/4.0.0": { "sha512": "2CQK0jmO6Eu7ZeMgD+LOFbNJSXHFVQbCJJkEyEwowh1SCgYnrn9W9RykMfpeeVGw7h4IBvYikzpGUlmZTUafJw==", "type": "package", "path": "runtime.native.system.security.cryptography/4.0.0", "files": [ ".nupkg.metadata", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/netstandard1.0/_._", "runtime.native.system.security.cryptography.4.0.0.nupkg.sha512", "runtime.native.system.security.cryptography.nuspec" ] }, "SSH.NET/2016.1.0": { "sha512": "b0fcFFOE044KNRhq1uGujmK04ab+OzA9xARdeVCoZrY6I4D1IIaR6dn6qBIa+er4bJapGBhznDitwcRQpSRC0w==", "type": "package", "path": "ssh.net/2016.1.0", "files": [ ".nupkg.metadata", ".signature.p7s", "lib/net35/Renci.SshNet.dll", "lib/net35/Renci.SshNet.xml", "lib/net40/Renci.SshNet.dll", "lib/net40/Renci.SshNet.xml", "lib/netstandard1.3/Renci.SshNet.dll", "lib/netstandard1.3/Renci.SshNet.xml", "lib/sl4/Renci.SshNet.dll", "lib/sl4/Renci.SshNet.xml", "lib/sl5/Renci.SshNet.dll", "lib/sl5/Renci.SshNet.xml", "lib/uap10/Renci.SshNet.dll", "lib/uap10/Renci.SshNet.xml", "lib/wp71/Renci.SshNet.dll", "lib/wp71/Renci.SshNet.xml", "lib/wp8/Renci.SshNet.dll", "lib/wp8/Renci.SshNet.xml", "ssh.net.2016.1.0.nupkg.sha512", "ssh.net.nuspec" ] }, "SshNet.Security.Cryptography/1.2.0": { "sha512": "EeFsirrrkIK+cdlYsxukNjBN98cbU7eHfTYZEwxsbOa3dvgR/OhOD06C0sTxvNPhe4UQ6yM0p1sKcT69jqgjTw==", "type": "package", "path": "sshnet.security.cryptography/1.2.0", "files": [ ".nupkg.metadata", ".signature.p7s", "lib/net20/SshNet.Security.Cryptography.dll", "lib/net20/SshNet.Security.Cryptography.xml", "lib/net40/SshNet.Security.Cryptography.dll", "lib/net40/SshNet.Security.Cryptography.xml", "lib/net45/SshNet.Security.Cryptography.dll", "lib/net45/SshNet.Security.Cryptography.xml", "lib/netstandard1.0/SshNet.Security.Cryptography.dll", "lib/netstandard1.0/SshNet.Security.Cryptography.xml", "lib/netstandard1.3/SshNet.Security.Cryptography.dll", "lib/netstandard1.3/SshNet.Security.Cryptography.xml", "lib/portable-net45+win8+wpa81/SshNet.Security.Cryptography.dll", "lib/portable-net45+win8+wpa81/SshNet.Security.Cryptography.xml", "lib/sl4/SshNet.Security.Cryptography.dll", "lib/sl4/SshNet.Security.Cryptography.xml", "lib/sl5/SshNet.Security.Cryptography.dll", "lib/sl5/SshNet.Security.Cryptography.xml", "lib/uap10.0/SshNet.Security.Cryptography.dll", "lib/uap10.0/SshNet.Security.Cryptography.xml", "lib/wp71/SshNet.Security.Cryptography.dll", "lib/wp71/SshNet.Security.Cryptography.xml", "lib/wp8/SshNet.Security.Cryptography.dll", "lib/wp8/SshNet.Security.Cryptography.xml", "sshnet.security.cryptography.1.2.0.nupkg.sha512", "sshnet.security.cryptography.nuspec" ] }, "System.Collections/4.3.0": { "sha512": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "type": "package", "path": "system.collections/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/netcore50/System.Collections.dll", "ref/netcore50/System.Collections.xml", "ref/netcore50/de/System.Collections.xml", "ref/netcore50/es/System.Collections.xml", "ref/netcore50/fr/System.Collections.xml", "ref/netcore50/it/System.Collections.xml", "ref/netcore50/ja/System.Collections.xml", "ref/netcore50/ko/System.Collections.xml", "ref/netcore50/ru/System.Collections.xml", "ref/netcore50/zh-hans/System.Collections.xml", "ref/netcore50/zh-hant/System.Collections.xml", "ref/netstandard1.0/System.Collections.dll", "ref/netstandard1.0/System.Collections.xml", "ref/netstandard1.0/de/System.Collections.xml", "ref/netstandard1.0/es/System.Collections.xml", "ref/netstandard1.0/fr/System.Collections.xml", "ref/netstandard1.0/it/System.Collections.xml", "ref/netstandard1.0/ja/System.Collections.xml", "ref/netstandard1.0/ko/System.Collections.xml", "ref/netstandard1.0/ru/System.Collections.xml", "ref/netstandard1.0/zh-hans/System.Collections.xml", "ref/netstandard1.0/zh-hant/System.Collections.xml", "ref/netstandard1.3/System.Collections.dll", "ref/netstandard1.3/System.Collections.xml", "ref/netstandard1.3/de/System.Collections.xml", "ref/netstandard1.3/es/System.Collections.xml", "ref/netstandard1.3/fr/System.Collections.xml", "ref/netstandard1.3/it/System.Collections.xml", "ref/netstandard1.3/ja/System.Collections.xml", "ref/netstandard1.3/ko/System.Collections.xml", "ref/netstandard1.3/ru/System.Collections.xml", "ref/netstandard1.3/zh-hans/System.Collections.xml", "ref/netstandard1.3/zh-hant/System.Collections.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.collections.4.3.0.nupkg.sha512", "system.collections.nuspec" ] }, "System.Collections.Concurrent/4.0.12": { "sha512": "2gBcbb3drMLgxlI0fBfxMA31ec6AEyYCHygGse4vxceJan8mRIWeKJ24BFzN7+bi/NFTgdIgufzb94LWO5EERQ==", "type": "package", "path": "system.collections.concurrent/4.0.12", "files": [ ".nupkg.metadata", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/netcore50/System.Collections.Concurrent.dll", "lib/netstandard1.3/System.Collections.Concurrent.dll", "lib/portable-net45+win8+wpa81/_._", "lib/win8/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/netcore50/System.Collections.Concurrent.dll", "ref/netcore50/System.Collections.Concurrent.xml", "ref/netcore50/de/System.Collections.Concurrent.xml", "ref/netcore50/es/System.Collections.Concurrent.xml", "ref/netcore50/fr/System.Collections.Concurrent.xml", "ref/netcore50/it/System.Collections.Concurrent.xml", "ref/netcore50/ja/System.Collections.Concurrent.xml", "ref/netcore50/ko/System.Collections.Concurrent.xml", "ref/netcore50/ru/System.Collections.Concurrent.xml", "ref/netcore50/zh-hans/System.Collections.Concurrent.xml", "ref/netcore50/zh-hant/System.Collections.Concurrent.xml", "ref/netstandard1.1/System.Collections.Concurrent.dll", "ref/netstandard1.1/System.Collections.Concurrent.xml", "ref/netstandard1.1/de/System.Collections.Concurrent.xml", "ref/netstandard1.1/es/System.Collections.Concurrent.xml", "ref/netstandard1.1/fr/System.Collections.Concurrent.xml", "ref/netstandard1.1/it/System.Collections.Concurrent.xml", "ref/netstandard1.1/ja/System.Collections.Concurrent.xml", "ref/netstandard1.1/ko/System.Collections.Concurrent.xml", "ref/netstandard1.1/ru/System.Collections.Concurrent.xml", "ref/netstandard1.1/zh-hans/System.Collections.Concurrent.xml", "ref/netstandard1.1/zh-hant/System.Collections.Concurrent.xml", "ref/netstandard1.3/System.Collections.Concurrent.dll", "ref/netstandard1.3/System.Collections.Concurrent.xml", "ref/netstandard1.3/de/System.Collections.Concurrent.xml", "ref/netstandard1.3/es/System.Collections.Concurrent.xml", "ref/netstandard1.3/fr/System.Collections.Concurrent.xml", "ref/netstandard1.3/it/System.Collections.Concurrent.xml", "ref/netstandard1.3/ja/System.Collections.Concurrent.xml", "ref/netstandard1.3/ko/System.Collections.Concurrent.xml", "ref/netstandard1.3/ru/System.Collections.Concurrent.xml", "ref/netstandard1.3/zh-hans/System.Collections.Concurrent.xml", "ref/netstandard1.3/zh-hant/System.Collections.Concurrent.xml", "ref/portable-net45+win8+wpa81/_._", "ref/win8/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.collections.concurrent.4.0.12.nupkg.sha512", "system.collections.concurrent.nuspec" ] }, "System.ComponentModel/4.3.0": { "sha512": "VyGn1jGRZVfxnh8EdvDCi71v3bMXrsu8aYJOwoV7SNDLVhiEqwP86pPMyRGsDsxhXAm2b3o9OIqeETfN5qfezw==", "type": "package", "path": "system.componentmodel/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/netcore50/System.ComponentModel.dll", "lib/netstandard1.3/System.ComponentModel.dll", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/netcore50/System.ComponentModel.dll", "ref/netcore50/System.ComponentModel.xml", "ref/netcore50/de/System.ComponentModel.xml", "ref/netcore50/es/System.ComponentModel.xml", "ref/netcore50/fr/System.ComponentModel.xml", "ref/netcore50/it/System.ComponentModel.xml", "ref/netcore50/ja/System.ComponentModel.xml", "ref/netcore50/ko/System.ComponentModel.xml", "ref/netcore50/ru/System.ComponentModel.xml", "ref/netcore50/zh-hans/System.ComponentModel.xml", "ref/netcore50/zh-hant/System.ComponentModel.xml", "ref/netstandard1.0/System.ComponentModel.dll", "ref/netstandard1.0/System.ComponentModel.xml", "ref/netstandard1.0/de/System.ComponentModel.xml", "ref/netstandard1.0/es/System.ComponentModel.xml", "ref/netstandard1.0/fr/System.ComponentModel.xml", "ref/netstandard1.0/it/System.ComponentModel.xml", "ref/netstandard1.0/ja/System.ComponentModel.xml", "ref/netstandard1.0/ko/System.ComponentModel.xml", "ref/netstandard1.0/ru/System.ComponentModel.xml", "ref/netstandard1.0/zh-hans/System.ComponentModel.xml", "ref/netstandard1.0/zh-hant/System.ComponentModel.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.componentmodel.4.3.0.nupkg.sha512", "system.componentmodel.nuspec" ] }, "System.Configuration.ConfigurationManager/4.4.1": { "sha512": "jz3TWKMAeuDEyrPCK5Jyt4bzQcmzUIMcY9Ud6PkElFxTfnsihV+9N/UCqvxe1z5gc7jMYAnj7V1COMS9QKIuHQ==", "type": "package", "path": "system.configuration.configurationmanager/4.4.1", "files": [ ".nupkg.metadata", ".signature.p7s", "LICENSE.TXT", "THIRD-PARTY-NOTICES.TXT", "lib/net461/System.Configuration.ConfigurationManager.dll", "lib/netstandard2.0/System.Configuration.ConfigurationManager.dll", "ref/net461/System.Configuration.ConfigurationManager.dll", "ref/net461/System.Configuration.ConfigurationManager.xml", "ref/netstandard2.0/System.Configuration.ConfigurationManager.dll", "ref/netstandard2.0/System.Configuration.ConfigurationManager.xml", "system.configuration.configurationmanager.4.4.1.nupkg.sha512", "system.configuration.configurationmanager.nuspec", "useSharedDesignerContext.txt", "version.txt" ] }, "System.Diagnostics.Contracts/4.3.0": { "sha512": "eelRRbnm+OloiQvp9CXS0ixjNQldjjkHO4iIkR5XH2VIP8sUB/SIpa1TdUW6/+HDcQ+MlhP3pNa1u5SbzYuWGA==", "type": "package", "path": "system.diagnostics.contracts/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/netcore50/System.Diagnostics.Contracts.dll", "lib/netstandard1.0/System.Diagnostics.Contracts.dll", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/netcore50/System.Diagnostics.Contracts.dll", "ref/netcore50/System.Diagnostics.Contracts.xml", "ref/netcore50/de/System.Diagnostics.Contracts.xml", "ref/netcore50/es/System.Diagnostics.Contracts.xml", "ref/netcore50/fr/System.Diagnostics.Contracts.xml", "ref/netcore50/it/System.Diagnostics.Contracts.xml", "ref/netcore50/ja/System.Diagnostics.Contracts.xml", "ref/netcore50/ko/System.Diagnostics.Contracts.xml", "ref/netcore50/ru/System.Diagnostics.Contracts.xml", "ref/netcore50/zh-hans/System.Diagnostics.Contracts.xml", "ref/netcore50/zh-hant/System.Diagnostics.Contracts.xml", "ref/netstandard1.0/System.Diagnostics.Contracts.dll", "ref/netstandard1.0/System.Diagnostics.Contracts.xml", "ref/netstandard1.0/de/System.Diagnostics.Contracts.xml", "ref/netstandard1.0/es/System.Diagnostics.Contracts.xml", "ref/netstandard1.0/fr/System.Diagnostics.Contracts.xml", "ref/netstandard1.0/it/System.Diagnostics.Contracts.xml", "ref/netstandard1.0/ja/System.Diagnostics.Contracts.xml", "ref/netstandard1.0/ko/System.Diagnostics.Contracts.xml", "ref/netstandard1.0/ru/System.Diagnostics.Contracts.xml", "ref/netstandard1.0/zh-hans/System.Diagnostics.Contracts.xml", "ref/netstandard1.0/zh-hant/System.Diagnostics.Contracts.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "runtimes/aot/lib/netcore50/System.Diagnostics.Contracts.dll", "system.diagnostics.contracts.4.3.0.nupkg.sha512", "system.diagnostics.contracts.nuspec" ] }, "System.Diagnostics.Debug/4.3.0": { "sha512": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "type": "package", "path": "system.diagnostics.debug/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/netcore50/System.Diagnostics.Debug.dll", "ref/netcore50/System.Diagnostics.Debug.xml", "ref/netcore50/de/System.Diagnostics.Debug.xml", "ref/netcore50/es/System.Diagnostics.Debug.xml", "ref/netcore50/fr/System.Diagnostics.Debug.xml", "ref/netcore50/it/System.Diagnostics.Debug.xml", "ref/netcore50/ja/System.Diagnostics.Debug.xml", "ref/netcore50/ko/System.Diagnostics.Debug.xml", "ref/netcore50/ru/System.Diagnostics.Debug.xml", "ref/netcore50/zh-hans/System.Diagnostics.Debug.xml", "ref/netcore50/zh-hant/System.Diagnostics.Debug.xml", "ref/netstandard1.0/System.Diagnostics.Debug.dll", "ref/netstandard1.0/System.Diagnostics.Debug.xml", "ref/netstandard1.0/de/System.Diagnostics.Debug.xml", "ref/netstandard1.0/es/System.Diagnostics.Debug.xml", "ref/netstandard1.0/fr/System.Diagnostics.Debug.xml", "ref/netstandard1.0/it/System.Diagnostics.Debug.xml", "ref/netstandard1.0/ja/System.Diagnostics.Debug.xml", "ref/netstandard1.0/ko/System.Diagnostics.Debug.xml", "ref/netstandard1.0/ru/System.Diagnostics.Debug.xml", "ref/netstandard1.0/zh-hans/System.Diagnostics.Debug.xml", "ref/netstandard1.0/zh-hant/System.Diagnostics.Debug.xml", "ref/netstandard1.3/System.Diagnostics.Debug.dll", "ref/netstandard1.3/System.Diagnostics.Debug.xml", "ref/netstandard1.3/de/System.Diagnostics.Debug.xml", "ref/netstandard1.3/es/System.Diagnostics.Debug.xml", "ref/netstandard1.3/fr/System.Diagnostics.Debug.xml", "ref/netstandard1.3/it/System.Diagnostics.Debug.xml", "ref/netstandard1.3/ja/System.Diagnostics.Debug.xml", "ref/netstandard1.3/ko/System.Diagnostics.Debug.xml", "ref/netstandard1.3/ru/System.Diagnostics.Debug.xml", "ref/netstandard1.3/zh-hans/System.Diagnostics.Debug.xml", "ref/netstandard1.3/zh-hant/System.Diagnostics.Debug.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.diagnostics.debug.4.3.0.nupkg.sha512", "system.diagnostics.debug.nuspec" ] }, "System.Diagnostics.Tools/4.0.1": { "sha512": "xBfJ8pnd4C17dWaC9FM6aShzbJcRNMChUMD42I6772KGGrqaFdumwhn9OdM68erj1ueNo3xdQ1EwiFjK5k8p0g==", "type": "package", "path": "system.diagnostics.tools/4.0.1", "files": [ ".nupkg.metadata", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/netcore50/System.Diagnostics.Tools.dll", "ref/netcore50/System.Diagnostics.Tools.xml", "ref/netcore50/de/System.Diagnostics.Tools.xml", "ref/netcore50/es/System.Diagnostics.Tools.xml", "ref/netcore50/fr/System.Diagnostics.Tools.xml", "ref/netcore50/it/System.Diagnostics.Tools.xml", "ref/netcore50/ja/System.Diagnostics.Tools.xml", "ref/netcore50/ko/System.Diagnostics.Tools.xml", "ref/netcore50/ru/System.Diagnostics.Tools.xml", "ref/netcore50/zh-hans/System.Diagnostics.Tools.xml", "ref/netcore50/zh-hant/System.Diagnostics.Tools.xml", "ref/netstandard1.0/System.Diagnostics.Tools.dll", "ref/netstandard1.0/System.Diagnostics.Tools.xml", "ref/netstandard1.0/de/System.Diagnostics.Tools.xml", "ref/netstandard1.0/es/System.Diagnostics.Tools.xml", "ref/netstandard1.0/fr/System.Diagnostics.Tools.xml", "ref/netstandard1.0/it/System.Diagnostics.Tools.xml", "ref/netstandard1.0/ja/System.Diagnostics.Tools.xml", "ref/netstandard1.0/ko/System.Diagnostics.Tools.xml", "ref/netstandard1.0/ru/System.Diagnostics.Tools.xml", "ref/netstandard1.0/zh-hans/System.Diagnostics.Tools.xml", "ref/netstandard1.0/zh-hant/System.Diagnostics.Tools.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.diagnostics.tools.4.0.1.nupkg.sha512", "system.diagnostics.tools.nuspec" ] }, "System.Diagnostics.TraceSource/4.0.0": { "sha512": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==", "type": "package", "path": "system.diagnostics.tracesource/4.0.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net46/System.Diagnostics.TraceSource.dll", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net46/System.Diagnostics.TraceSource.dll", "ref/netstandard1.3/System.Diagnostics.TraceSource.dll", "ref/netstandard1.3/System.Diagnostics.TraceSource.xml", "ref/netstandard1.3/de/System.Diagnostics.TraceSource.xml", "ref/netstandard1.3/es/System.Diagnostics.TraceSource.xml", "ref/netstandard1.3/fr/System.Diagnostics.TraceSource.xml", "ref/netstandard1.3/it/System.Diagnostics.TraceSource.xml", "ref/netstandard1.3/ja/System.Diagnostics.TraceSource.xml", "ref/netstandard1.3/ko/System.Diagnostics.TraceSource.xml", "ref/netstandard1.3/ru/System.Diagnostics.TraceSource.xml", "ref/netstandard1.3/zh-hans/System.Diagnostics.TraceSource.xml", "ref/netstandard1.3/zh-hant/System.Diagnostics.TraceSource.xml", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "runtimes/unix/lib/netstandard1.3/System.Diagnostics.TraceSource.dll", "runtimes/win/lib/net46/System.Diagnostics.TraceSource.dll", "runtimes/win/lib/netstandard1.3/System.Diagnostics.TraceSource.dll", "system.diagnostics.tracesource.4.0.0.nupkg.sha512", "system.diagnostics.tracesource.nuspec" ] }, "System.Diagnostics.Tracing/4.3.0": { "sha512": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", "type": "package", "path": "system.diagnostics.tracing/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/net462/System.Diagnostics.Tracing.dll", "lib/portable-net45+win8+wpa81/_._", "lib/win8/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/net462/System.Diagnostics.Tracing.dll", "ref/netcore50/System.Diagnostics.Tracing.dll", "ref/netcore50/System.Diagnostics.Tracing.xml", "ref/netcore50/de/System.Diagnostics.Tracing.xml", "ref/netcore50/es/System.Diagnostics.Tracing.xml", "ref/netcore50/fr/System.Diagnostics.Tracing.xml", "ref/netcore50/it/System.Diagnostics.Tracing.xml", "ref/netcore50/ja/System.Diagnostics.Tracing.xml", "ref/netcore50/ko/System.Diagnostics.Tracing.xml", "ref/netcore50/ru/System.Diagnostics.Tracing.xml", "ref/netcore50/zh-hans/System.Diagnostics.Tracing.xml", "ref/netcore50/zh-hant/System.Diagnostics.Tracing.xml", "ref/netstandard1.1/System.Diagnostics.Tracing.dll", "ref/netstandard1.1/System.Diagnostics.Tracing.xml", "ref/netstandard1.1/de/System.Diagnostics.Tracing.xml", "ref/netstandard1.1/es/System.Diagnostics.Tracing.xml", "ref/netstandard1.1/fr/System.Diagnostics.Tracing.xml", "ref/netstandard1.1/it/System.Diagnostics.Tracing.xml", "ref/netstandard1.1/ja/System.Diagnostics.Tracing.xml", "ref/netstandard1.1/ko/System.Diagnostics.Tracing.xml", "ref/netstandard1.1/ru/System.Diagnostics.Tracing.xml", "ref/netstandard1.1/zh-hans/System.Diagnostics.Tracing.xml", "ref/netstandard1.1/zh-hant/System.Diagnostics.Tracing.xml", "ref/netstandard1.2/System.Diagnostics.Tracing.dll", "ref/netstandard1.2/System.Diagnostics.Tracing.xml", "ref/netstandard1.2/de/System.Diagnostics.Tracing.xml", "ref/netstandard1.2/es/System.Diagnostics.Tracing.xml", "ref/netstandard1.2/fr/System.Diagnostics.Tracing.xml", "ref/netstandard1.2/it/System.Diagnostics.Tracing.xml", "ref/netstandard1.2/ja/System.Diagnostics.Tracing.xml", "ref/netstandard1.2/ko/System.Diagnostics.Tracing.xml", "ref/netstandard1.2/ru/System.Diagnostics.Tracing.xml", "ref/netstandard1.2/zh-hans/System.Diagnostics.Tracing.xml", "ref/netstandard1.2/zh-hant/System.Diagnostics.Tracing.xml", "ref/netstandard1.3/System.Diagnostics.Tracing.dll", "ref/netstandard1.3/System.Diagnostics.Tracing.xml", "ref/netstandard1.3/de/System.Diagnostics.Tracing.xml", "ref/netstandard1.3/es/System.Diagnostics.Tracing.xml", "ref/netstandard1.3/fr/System.Diagnostics.Tracing.xml", "ref/netstandard1.3/it/System.Diagnostics.Tracing.xml", "ref/netstandard1.3/ja/System.Diagnostics.Tracing.xml", "ref/netstandard1.3/ko/System.Diagnostics.Tracing.xml", "ref/netstandard1.3/ru/System.Diagnostics.Tracing.xml", "ref/netstandard1.3/zh-hans/System.Diagnostics.Tracing.xml", "ref/netstandard1.3/zh-hant/System.Diagnostics.Tracing.xml", "ref/netstandard1.5/System.Diagnostics.Tracing.dll", "ref/netstandard1.5/System.Diagnostics.Tracing.xml", "ref/netstandard1.5/de/System.Diagnostics.Tracing.xml", "ref/netstandard1.5/es/System.Diagnostics.Tracing.xml", "ref/netstandard1.5/fr/System.Diagnostics.Tracing.xml", "ref/netstandard1.5/it/System.Diagnostics.Tracing.xml", "ref/netstandard1.5/ja/System.Diagnostics.Tracing.xml", "ref/netstandard1.5/ko/System.Diagnostics.Tracing.xml", "ref/netstandard1.5/ru/System.Diagnostics.Tracing.xml", "ref/netstandard1.5/zh-hans/System.Diagnostics.Tracing.xml", "ref/netstandard1.5/zh-hant/System.Diagnostics.Tracing.xml", "ref/portable-net45+win8+wpa81/_._", "ref/win8/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.diagnostics.tracing.4.3.0.nupkg.sha512", "system.diagnostics.tracing.nuspec" ] }, "System.Dynamic.Runtime/4.0.11": { "sha512": "db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==", "type": "package", "path": "system.dynamic.runtime/4.0.11", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/netcore50/System.Dynamic.Runtime.dll", "lib/netstandard1.3/System.Dynamic.Runtime.dll", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/netcore50/System.Dynamic.Runtime.dll", "ref/netcore50/System.Dynamic.Runtime.xml", "ref/netcore50/de/System.Dynamic.Runtime.xml", "ref/netcore50/es/System.Dynamic.Runtime.xml", "ref/netcore50/fr/System.Dynamic.Runtime.xml", "ref/netcore50/it/System.Dynamic.Runtime.xml", "ref/netcore50/ja/System.Dynamic.Runtime.xml", "ref/netcore50/ko/System.Dynamic.Runtime.xml", "ref/netcore50/ru/System.Dynamic.Runtime.xml", "ref/netcore50/zh-hans/System.Dynamic.Runtime.xml", "ref/netcore50/zh-hant/System.Dynamic.Runtime.xml", "ref/netstandard1.0/System.Dynamic.Runtime.dll", "ref/netstandard1.0/System.Dynamic.Runtime.xml", "ref/netstandard1.0/de/System.Dynamic.Runtime.xml", "ref/netstandard1.0/es/System.Dynamic.Runtime.xml", "ref/netstandard1.0/fr/System.Dynamic.Runtime.xml", "ref/netstandard1.0/it/System.Dynamic.Runtime.xml", "ref/netstandard1.0/ja/System.Dynamic.Runtime.xml", "ref/netstandard1.0/ko/System.Dynamic.Runtime.xml", "ref/netstandard1.0/ru/System.Dynamic.Runtime.xml", "ref/netstandard1.0/zh-hans/System.Dynamic.Runtime.xml", "ref/netstandard1.0/zh-hant/System.Dynamic.Runtime.xml", "ref/netstandard1.3/System.Dynamic.Runtime.dll", "ref/netstandard1.3/System.Dynamic.Runtime.xml", "ref/netstandard1.3/de/System.Dynamic.Runtime.xml", "ref/netstandard1.3/es/System.Dynamic.Runtime.xml", "ref/netstandard1.3/fr/System.Dynamic.Runtime.xml", "ref/netstandard1.3/it/System.Dynamic.Runtime.xml", "ref/netstandard1.3/ja/System.Dynamic.Runtime.xml", "ref/netstandard1.3/ko/System.Dynamic.Runtime.xml", "ref/netstandard1.3/ru/System.Dynamic.Runtime.xml", "ref/netstandard1.3/zh-hans/System.Dynamic.Runtime.xml", "ref/netstandard1.3/zh-hant/System.Dynamic.Runtime.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "runtimes/aot/lib/netcore50/System.Dynamic.Runtime.dll", "system.dynamic.runtime.4.0.11.nupkg.sha512", "system.dynamic.runtime.nuspec" ] }, "System.Globalization/4.3.0": { "sha512": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "type": "package", "path": "system.globalization/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/netcore50/System.Globalization.dll", "ref/netcore50/System.Globalization.xml", "ref/netcore50/de/System.Globalization.xml", "ref/netcore50/es/System.Globalization.xml", "ref/netcore50/fr/System.Globalization.xml", "ref/netcore50/it/System.Globalization.xml", "ref/netcore50/ja/System.Globalization.xml", "ref/netcore50/ko/System.Globalization.xml", "ref/netcore50/ru/System.Globalization.xml", "ref/netcore50/zh-hans/System.Globalization.xml", "ref/netcore50/zh-hant/System.Globalization.xml", "ref/netstandard1.0/System.Globalization.dll", "ref/netstandard1.0/System.Globalization.xml", "ref/netstandard1.0/de/System.Globalization.xml", "ref/netstandard1.0/es/System.Globalization.xml", "ref/netstandard1.0/fr/System.Globalization.xml", "ref/netstandard1.0/it/System.Globalization.xml", "ref/netstandard1.0/ja/System.Globalization.xml", "ref/netstandard1.0/ko/System.Globalization.xml", "ref/netstandard1.0/ru/System.Globalization.xml", "ref/netstandard1.0/zh-hans/System.Globalization.xml", "ref/netstandard1.0/zh-hant/System.Globalization.xml", "ref/netstandard1.3/System.Globalization.dll", "ref/netstandard1.3/System.Globalization.xml", "ref/netstandard1.3/de/System.Globalization.xml", "ref/netstandard1.3/es/System.Globalization.xml", "ref/netstandard1.3/fr/System.Globalization.xml", "ref/netstandard1.3/it/System.Globalization.xml", "ref/netstandard1.3/ja/System.Globalization.xml", "ref/netstandard1.3/ko/System.Globalization.xml", "ref/netstandard1.3/ru/System.Globalization.xml", "ref/netstandard1.3/zh-hans/System.Globalization.xml", "ref/netstandard1.3/zh-hant/System.Globalization.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.globalization.4.3.0.nupkg.sha512", "system.globalization.nuspec" ] }, "System.IO/4.3.0": { "sha512": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "type": "package", "path": "system.io/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/net462/System.IO.dll", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/net462/System.IO.dll", "ref/netcore50/System.IO.dll", "ref/netcore50/System.IO.xml", "ref/netcore50/de/System.IO.xml", "ref/netcore50/es/System.IO.xml", "ref/netcore50/fr/System.IO.xml", "ref/netcore50/it/System.IO.xml", "ref/netcore50/ja/System.IO.xml", "ref/netcore50/ko/System.IO.xml", "ref/netcore50/ru/System.IO.xml", "ref/netcore50/zh-hans/System.IO.xml", "ref/netcore50/zh-hant/System.IO.xml", "ref/netstandard1.0/System.IO.dll", "ref/netstandard1.0/System.IO.xml", "ref/netstandard1.0/de/System.IO.xml", "ref/netstandard1.0/es/System.IO.xml", "ref/netstandard1.0/fr/System.IO.xml", "ref/netstandard1.0/it/System.IO.xml", "ref/netstandard1.0/ja/System.IO.xml", "ref/netstandard1.0/ko/System.IO.xml", "ref/netstandard1.0/ru/System.IO.xml", "ref/netstandard1.0/zh-hans/System.IO.xml", "ref/netstandard1.0/zh-hant/System.IO.xml", "ref/netstandard1.3/System.IO.dll", "ref/netstandard1.3/System.IO.xml", "ref/netstandard1.3/de/System.IO.xml", "ref/netstandard1.3/es/System.IO.xml", "ref/netstandard1.3/fr/System.IO.xml", "ref/netstandard1.3/it/System.IO.xml", "ref/netstandard1.3/ja/System.IO.xml", "ref/netstandard1.3/ko/System.IO.xml", "ref/netstandard1.3/ru/System.IO.xml", "ref/netstandard1.3/zh-hans/System.IO.xml", "ref/netstandard1.3/zh-hant/System.IO.xml", "ref/netstandard1.5/System.IO.dll", "ref/netstandard1.5/System.IO.xml", "ref/netstandard1.5/de/System.IO.xml", "ref/netstandard1.5/es/System.IO.xml", "ref/netstandard1.5/fr/System.IO.xml", "ref/netstandard1.5/it/System.IO.xml", "ref/netstandard1.5/ja/System.IO.xml", "ref/netstandard1.5/ko/System.IO.xml", "ref/netstandard1.5/ru/System.IO.xml", "ref/netstandard1.5/zh-hans/System.IO.xml", "ref/netstandard1.5/zh-hant/System.IO.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.io.4.3.0.nupkg.sha512", "system.io.nuspec" ] }, "System.IO.FileSystem/4.3.0": { "sha512": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", "type": "package", "path": "system.io.filesystem/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net46/System.IO.FileSystem.dll", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net46/System.IO.FileSystem.dll", "ref/netstandard1.3/System.IO.FileSystem.dll", "ref/netstandard1.3/System.IO.FileSystem.xml", "ref/netstandard1.3/de/System.IO.FileSystem.xml", "ref/netstandard1.3/es/System.IO.FileSystem.xml", "ref/netstandard1.3/fr/System.IO.FileSystem.xml", "ref/netstandard1.3/it/System.IO.FileSystem.xml", "ref/netstandard1.3/ja/System.IO.FileSystem.xml", "ref/netstandard1.3/ko/System.IO.FileSystem.xml", "ref/netstandard1.3/ru/System.IO.FileSystem.xml", "ref/netstandard1.3/zh-hans/System.IO.FileSystem.xml", "ref/netstandard1.3/zh-hant/System.IO.FileSystem.xml", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.io.filesystem.4.3.0.nupkg.sha512", "system.io.filesystem.nuspec" ] }, "System.IO.FileSystem.Primitives/4.3.0": { "sha512": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", "type": "package", "path": "system.io.filesystem.primitives/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net46/System.IO.FileSystem.Primitives.dll", "lib/netstandard1.3/System.IO.FileSystem.Primitives.dll", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net46/System.IO.FileSystem.Primitives.dll", "ref/netstandard1.3/System.IO.FileSystem.Primitives.dll", "ref/netstandard1.3/System.IO.FileSystem.Primitives.xml", "ref/netstandard1.3/de/System.IO.FileSystem.Primitives.xml", "ref/netstandard1.3/es/System.IO.FileSystem.Primitives.xml", "ref/netstandard1.3/fr/System.IO.FileSystem.Primitives.xml", "ref/netstandard1.3/it/System.IO.FileSystem.Primitives.xml", "ref/netstandard1.3/ja/System.IO.FileSystem.Primitives.xml", "ref/netstandard1.3/ko/System.IO.FileSystem.Primitives.xml", "ref/netstandard1.3/ru/System.IO.FileSystem.Primitives.xml", "ref/netstandard1.3/zh-hans/System.IO.FileSystem.Primitives.xml", "ref/netstandard1.3/zh-hant/System.IO.FileSystem.Primitives.xml", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.io.filesystem.primitives.4.3.0.nupkg.sha512", "system.io.filesystem.primitives.nuspec" ] }, "System.Linq/4.3.0": { "sha512": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "type": "package", "path": "system.linq/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/net463/System.Linq.dll", "lib/netcore50/System.Linq.dll", "lib/netstandard1.6/System.Linq.dll", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/net463/System.Linq.dll", "ref/netcore50/System.Linq.dll", "ref/netcore50/System.Linq.xml", "ref/netcore50/de/System.Linq.xml", "ref/netcore50/es/System.Linq.xml", "ref/netcore50/fr/System.Linq.xml", "ref/netcore50/it/System.Linq.xml", "ref/netcore50/ja/System.Linq.xml", "ref/netcore50/ko/System.Linq.xml", "ref/netcore50/ru/System.Linq.xml", "ref/netcore50/zh-hans/System.Linq.xml", "ref/netcore50/zh-hant/System.Linq.xml", "ref/netstandard1.0/System.Linq.dll", "ref/netstandard1.0/System.Linq.xml", "ref/netstandard1.0/de/System.Linq.xml", "ref/netstandard1.0/es/System.Linq.xml", "ref/netstandard1.0/fr/System.Linq.xml", "ref/netstandard1.0/it/System.Linq.xml", "ref/netstandard1.0/ja/System.Linq.xml", "ref/netstandard1.0/ko/System.Linq.xml", "ref/netstandard1.0/ru/System.Linq.xml", "ref/netstandard1.0/zh-hans/System.Linq.xml", "ref/netstandard1.0/zh-hant/System.Linq.xml", "ref/netstandard1.6/System.Linq.dll", "ref/netstandard1.6/System.Linq.xml", "ref/netstandard1.6/de/System.Linq.xml", "ref/netstandard1.6/es/System.Linq.xml", "ref/netstandard1.6/fr/System.Linq.xml", "ref/netstandard1.6/it/System.Linq.xml", "ref/netstandard1.6/ja/System.Linq.xml", "ref/netstandard1.6/ko/System.Linq.xml", "ref/netstandard1.6/ru/System.Linq.xml", "ref/netstandard1.6/zh-hans/System.Linq.xml", "ref/netstandard1.6/zh-hant/System.Linq.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.linq.4.3.0.nupkg.sha512", "system.linq.nuspec" ] }, "System.Linq.Expressions/4.1.0": { "sha512": "I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==", "type": "package", "path": "system.linq.expressions/4.1.0", "files": [ ".nupkg.metadata", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/net463/System.Linq.Expressions.dll", "lib/netcore50/System.Linq.Expressions.dll", "lib/netstandard1.6/System.Linq.Expressions.dll", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/net463/System.Linq.Expressions.dll", "ref/netcore50/System.Linq.Expressions.dll", "ref/netcore50/System.Linq.Expressions.xml", "ref/netcore50/de/System.Linq.Expressions.xml", "ref/netcore50/es/System.Linq.Expressions.xml", "ref/netcore50/fr/System.Linq.Expressions.xml", "ref/netcore50/it/System.Linq.Expressions.xml", "ref/netcore50/ja/System.Linq.Expressions.xml", "ref/netcore50/ko/System.Linq.Expressions.xml", "ref/netcore50/ru/System.Linq.Expressions.xml", "ref/netcore50/zh-hans/System.Linq.Expressions.xml", "ref/netcore50/zh-hant/System.Linq.Expressions.xml", "ref/netstandard1.0/System.Linq.Expressions.dll", "ref/netstandard1.0/System.Linq.Expressions.xml", "ref/netstandard1.0/de/System.Linq.Expressions.xml", "ref/netstandard1.0/es/System.Linq.Expressions.xml", "ref/netstandard1.0/fr/System.Linq.Expressions.xml", "ref/netstandard1.0/it/System.Linq.Expressions.xml", "ref/netstandard1.0/ja/System.Linq.Expressions.xml", "ref/netstandard1.0/ko/System.Linq.Expressions.xml", "ref/netstandard1.0/ru/System.Linq.Expressions.xml", "ref/netstandard1.0/zh-hans/System.Linq.Expressions.xml", "ref/netstandard1.0/zh-hant/System.Linq.Expressions.xml", "ref/netstandard1.3/System.Linq.Expressions.dll", "ref/netstandard1.3/System.Linq.Expressions.xml", "ref/netstandard1.3/de/System.Linq.Expressions.xml", "ref/netstandard1.3/es/System.Linq.Expressions.xml", "ref/netstandard1.3/fr/System.Linq.Expressions.xml", "ref/netstandard1.3/it/System.Linq.Expressions.xml", "ref/netstandard1.3/ja/System.Linq.Expressions.xml", "ref/netstandard1.3/ko/System.Linq.Expressions.xml", "ref/netstandard1.3/ru/System.Linq.Expressions.xml", "ref/netstandard1.3/zh-hans/System.Linq.Expressions.xml", "ref/netstandard1.3/zh-hant/System.Linq.Expressions.xml", "ref/netstandard1.6/System.Linq.Expressions.dll", "ref/netstandard1.6/System.Linq.Expressions.xml", "ref/netstandard1.6/de/System.Linq.Expressions.xml", "ref/netstandard1.6/es/System.Linq.Expressions.xml", "ref/netstandard1.6/fr/System.Linq.Expressions.xml", "ref/netstandard1.6/it/System.Linq.Expressions.xml", "ref/netstandard1.6/ja/System.Linq.Expressions.xml", "ref/netstandard1.6/ko/System.Linq.Expressions.xml", "ref/netstandard1.6/ru/System.Linq.Expressions.xml", "ref/netstandard1.6/zh-hans/System.Linq.Expressions.xml", "ref/netstandard1.6/zh-hant/System.Linq.Expressions.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "runtimes/aot/lib/netcore50/System.Linq.Expressions.dll", "system.linq.expressions.4.1.0.nupkg.sha512", "system.linq.expressions.nuspec" ] }, "System.Net.NameResolution/4.0.0": { "sha512": "JdqRdM1Qym3YehqdKIi5LHrpypP4JMfxKQSNCJ2z4WawkG0il+N3XfNeJOxll2XrTnG7WgYYPoeiu/KOwg0DQw==", "type": "package", "path": "system.net.nameresolution/4.0.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net46/System.Net.NameResolution.dll", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net46/System.Net.NameResolution.dll", "ref/netstandard1.3/System.Net.NameResolution.dll", "ref/netstandard1.3/System.Net.NameResolution.xml", "ref/netstandard1.3/de/System.Net.NameResolution.xml", "ref/netstandard1.3/es/System.Net.NameResolution.xml", "ref/netstandard1.3/fr/System.Net.NameResolution.xml", "ref/netstandard1.3/it/System.Net.NameResolution.xml", "ref/netstandard1.3/ja/System.Net.NameResolution.xml", "ref/netstandard1.3/ko/System.Net.NameResolution.xml", "ref/netstandard1.3/ru/System.Net.NameResolution.xml", "ref/netstandard1.3/zh-hans/System.Net.NameResolution.xml", "ref/netstandard1.3/zh-hant/System.Net.NameResolution.xml", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "runtimes/unix/lib/netstandard1.3/System.Net.NameResolution.dll", "runtimes/win/lib/net46/System.Net.NameResolution.dll", "runtimes/win/lib/netcore50/System.Net.NameResolution.dll", "runtimes/win/lib/netstandard1.3/System.Net.NameResolution.dll", "system.net.nameresolution.4.0.0.nupkg.sha512", "system.net.nameresolution.nuspec" ] }, "System.Net.NetworkInformation/4.3.0": { "sha512": "zNVmWVry0pAu7lcrRBhwwU96WUdbsrGL3azyzsbXmVNptae1+Za+UgOe9Z6s8iaWhPn7/l4wQqhC56HZWq7tkg==", "type": "package", "path": "system.net.networkinformation/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/net46/System.Net.NetworkInformation.dll", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/net46/System.Net.NetworkInformation.dll", "ref/netcore50/System.Net.NetworkInformation.dll", "ref/netcore50/System.Net.NetworkInformation.xml", "ref/netcore50/de/System.Net.NetworkInformation.xml", "ref/netcore50/es/System.Net.NetworkInformation.xml", "ref/netcore50/fr/System.Net.NetworkInformation.xml", "ref/netcore50/it/System.Net.NetworkInformation.xml", "ref/netcore50/ja/System.Net.NetworkInformation.xml", "ref/netcore50/ko/System.Net.NetworkInformation.xml", "ref/netcore50/ru/System.Net.NetworkInformation.xml", "ref/netcore50/zh-hans/System.Net.NetworkInformation.xml", "ref/netcore50/zh-hant/System.Net.NetworkInformation.xml", "ref/netstandard1.0/System.Net.NetworkInformation.dll", "ref/netstandard1.0/System.Net.NetworkInformation.xml", "ref/netstandard1.0/de/System.Net.NetworkInformation.xml", "ref/netstandard1.0/es/System.Net.NetworkInformation.xml", "ref/netstandard1.0/fr/System.Net.NetworkInformation.xml", "ref/netstandard1.0/it/System.Net.NetworkInformation.xml", "ref/netstandard1.0/ja/System.Net.NetworkInformation.xml", "ref/netstandard1.0/ko/System.Net.NetworkInformation.xml", "ref/netstandard1.0/ru/System.Net.NetworkInformation.xml", "ref/netstandard1.0/zh-hans/System.Net.NetworkInformation.xml", "ref/netstandard1.0/zh-hant/System.Net.NetworkInformation.xml", "ref/netstandard1.3/System.Net.NetworkInformation.dll", "ref/netstandard1.3/System.Net.NetworkInformation.xml", "ref/netstandard1.3/de/System.Net.NetworkInformation.xml", "ref/netstandard1.3/es/System.Net.NetworkInformation.xml", "ref/netstandard1.3/fr/System.Net.NetworkInformation.xml", "ref/netstandard1.3/it/System.Net.NetworkInformation.xml", "ref/netstandard1.3/ja/System.Net.NetworkInformation.xml", "ref/netstandard1.3/ko/System.Net.NetworkInformation.xml", "ref/netstandard1.3/ru/System.Net.NetworkInformation.xml", "ref/netstandard1.3/zh-hans/System.Net.NetworkInformation.xml", "ref/netstandard1.3/zh-hant/System.Net.NetworkInformation.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "runtimes/linux/lib/netstandard1.3/System.Net.NetworkInformation.dll", "runtimes/osx/lib/netstandard1.3/System.Net.NetworkInformation.dll", "runtimes/win/lib/net46/System.Net.NetworkInformation.dll", "runtimes/win/lib/netcore50/System.Net.NetworkInformation.dll", "runtimes/win/lib/netstandard1.3/System.Net.NetworkInformation.dll", "system.net.networkinformation.4.3.0.nupkg.sha512", "system.net.networkinformation.nuspec" ] }, "System.Net.Primitives/4.3.0": { "sha512": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", "type": "package", "path": "system.net.primitives/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/netcore50/System.Net.Primitives.dll", "ref/netcore50/System.Net.Primitives.xml", "ref/netcore50/de/System.Net.Primitives.xml", "ref/netcore50/es/System.Net.Primitives.xml", "ref/netcore50/fr/System.Net.Primitives.xml", "ref/netcore50/it/System.Net.Primitives.xml", "ref/netcore50/ja/System.Net.Primitives.xml", "ref/netcore50/ko/System.Net.Primitives.xml", "ref/netcore50/ru/System.Net.Primitives.xml", "ref/netcore50/zh-hans/System.Net.Primitives.xml", "ref/netcore50/zh-hant/System.Net.Primitives.xml", "ref/netstandard1.0/System.Net.Primitives.dll", "ref/netstandard1.0/System.Net.Primitives.xml", "ref/netstandard1.0/de/System.Net.Primitives.xml", "ref/netstandard1.0/es/System.Net.Primitives.xml", "ref/netstandard1.0/fr/System.Net.Primitives.xml", "ref/netstandard1.0/it/System.Net.Primitives.xml", "ref/netstandard1.0/ja/System.Net.Primitives.xml", "ref/netstandard1.0/ko/System.Net.Primitives.xml", "ref/netstandard1.0/ru/System.Net.Primitives.xml", "ref/netstandard1.0/zh-hans/System.Net.Primitives.xml", "ref/netstandard1.0/zh-hant/System.Net.Primitives.xml", "ref/netstandard1.1/System.Net.Primitives.dll", "ref/netstandard1.1/System.Net.Primitives.xml", "ref/netstandard1.1/de/System.Net.Primitives.xml", "ref/netstandard1.1/es/System.Net.Primitives.xml", "ref/netstandard1.1/fr/System.Net.Primitives.xml", "ref/netstandard1.1/it/System.Net.Primitives.xml", "ref/netstandard1.1/ja/System.Net.Primitives.xml", "ref/netstandard1.1/ko/System.Net.Primitives.xml", "ref/netstandard1.1/ru/System.Net.Primitives.xml", "ref/netstandard1.1/zh-hans/System.Net.Primitives.xml", "ref/netstandard1.1/zh-hant/System.Net.Primitives.xml", "ref/netstandard1.3/System.Net.Primitives.dll", "ref/netstandard1.3/System.Net.Primitives.xml", "ref/netstandard1.3/de/System.Net.Primitives.xml", "ref/netstandard1.3/es/System.Net.Primitives.xml", "ref/netstandard1.3/fr/System.Net.Primitives.xml", "ref/netstandard1.3/it/System.Net.Primitives.xml", "ref/netstandard1.3/ja/System.Net.Primitives.xml", "ref/netstandard1.3/ko/System.Net.Primitives.xml", "ref/netstandard1.3/ru/System.Net.Primitives.xml", "ref/netstandard1.3/zh-hans/System.Net.Primitives.xml", "ref/netstandard1.3/zh-hant/System.Net.Primitives.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.net.primitives.4.3.0.nupkg.sha512", "system.net.primitives.nuspec" ] }, "System.Net.Sockets/4.3.0": { "sha512": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", "type": "package", "path": "system.net.sockets/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net46/System.Net.Sockets.dll", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net46/System.Net.Sockets.dll", "ref/netstandard1.3/System.Net.Sockets.dll", "ref/netstandard1.3/System.Net.Sockets.xml", "ref/netstandard1.3/de/System.Net.Sockets.xml", "ref/netstandard1.3/es/System.Net.Sockets.xml", "ref/netstandard1.3/fr/System.Net.Sockets.xml", "ref/netstandard1.3/it/System.Net.Sockets.xml", "ref/netstandard1.3/ja/System.Net.Sockets.xml", "ref/netstandard1.3/ko/System.Net.Sockets.xml", "ref/netstandard1.3/ru/System.Net.Sockets.xml", "ref/netstandard1.3/zh-hans/System.Net.Sockets.xml", "ref/netstandard1.3/zh-hant/System.Net.Sockets.xml", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.net.sockets.4.3.0.nupkg.sha512", "system.net.sockets.nuspec" ] }, "System.ObjectModel/4.0.12": { "sha512": "tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==", "type": "package", "path": "system.objectmodel/4.0.12", "files": [ ".nupkg.metadata", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/netcore50/System.ObjectModel.dll", "lib/netstandard1.3/System.ObjectModel.dll", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/netcore50/System.ObjectModel.dll", "ref/netcore50/System.ObjectModel.xml", "ref/netcore50/de/System.ObjectModel.xml", "ref/netcore50/es/System.ObjectModel.xml", "ref/netcore50/fr/System.ObjectModel.xml", "ref/netcore50/it/System.ObjectModel.xml", "ref/netcore50/ja/System.ObjectModel.xml", "ref/netcore50/ko/System.ObjectModel.xml", "ref/netcore50/ru/System.ObjectModel.xml", "ref/netcore50/zh-hans/System.ObjectModel.xml", "ref/netcore50/zh-hant/System.ObjectModel.xml", "ref/netstandard1.0/System.ObjectModel.dll", "ref/netstandard1.0/System.ObjectModel.xml", "ref/netstandard1.0/de/System.ObjectModel.xml", "ref/netstandard1.0/es/System.ObjectModel.xml", "ref/netstandard1.0/fr/System.ObjectModel.xml", "ref/netstandard1.0/it/System.ObjectModel.xml", "ref/netstandard1.0/ja/System.ObjectModel.xml", "ref/netstandard1.0/ko/System.ObjectModel.xml", "ref/netstandard1.0/ru/System.ObjectModel.xml", "ref/netstandard1.0/zh-hans/System.ObjectModel.xml", "ref/netstandard1.0/zh-hant/System.ObjectModel.xml", "ref/netstandard1.3/System.ObjectModel.dll", "ref/netstandard1.3/System.ObjectModel.xml", "ref/netstandard1.3/de/System.ObjectModel.xml", "ref/netstandard1.3/es/System.ObjectModel.xml", "ref/netstandard1.3/fr/System.ObjectModel.xml", "ref/netstandard1.3/it/System.ObjectModel.xml", "ref/netstandard1.3/ja/System.ObjectModel.xml", "ref/netstandard1.3/ko/System.ObjectModel.xml", "ref/netstandard1.3/ru/System.ObjectModel.xml", "ref/netstandard1.3/zh-hans/System.ObjectModel.xml", "ref/netstandard1.3/zh-hant/System.ObjectModel.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.objectmodel.4.0.12.nupkg.sha512", "system.objectmodel.nuspec" ] }, "System.Reflection/4.3.0": { "sha512": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "type": "package", "path": "system.reflection/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/net462/System.Reflection.dll", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/net462/System.Reflection.dll", "ref/netcore50/System.Reflection.dll", "ref/netcore50/System.Reflection.xml", "ref/netcore50/de/System.Reflection.xml", "ref/netcore50/es/System.Reflection.xml", "ref/netcore50/fr/System.Reflection.xml", "ref/netcore50/it/System.Reflection.xml", "ref/netcore50/ja/System.Reflection.xml", "ref/netcore50/ko/System.Reflection.xml", "ref/netcore50/ru/System.Reflection.xml", "ref/netcore50/zh-hans/System.Reflection.xml", "ref/netcore50/zh-hant/System.Reflection.xml", "ref/netstandard1.0/System.Reflection.dll", "ref/netstandard1.0/System.Reflection.xml", "ref/netstandard1.0/de/System.Reflection.xml", "ref/netstandard1.0/es/System.Reflection.xml", "ref/netstandard1.0/fr/System.Reflection.xml", "ref/netstandard1.0/it/System.Reflection.xml", "ref/netstandard1.0/ja/System.Reflection.xml", "ref/netstandard1.0/ko/System.Reflection.xml", "ref/netstandard1.0/ru/System.Reflection.xml", "ref/netstandard1.0/zh-hans/System.Reflection.xml", "ref/netstandard1.0/zh-hant/System.Reflection.xml", "ref/netstandard1.3/System.Reflection.dll", "ref/netstandard1.3/System.Reflection.xml", "ref/netstandard1.3/de/System.Reflection.xml", "ref/netstandard1.3/es/System.Reflection.xml", "ref/netstandard1.3/fr/System.Reflection.xml", "ref/netstandard1.3/it/System.Reflection.xml", "ref/netstandard1.3/ja/System.Reflection.xml", "ref/netstandard1.3/ko/System.Reflection.xml", "ref/netstandard1.3/ru/System.Reflection.xml", "ref/netstandard1.3/zh-hans/System.Reflection.xml", "ref/netstandard1.3/zh-hant/System.Reflection.xml", "ref/netstandard1.5/System.Reflection.dll", "ref/netstandard1.5/System.Reflection.xml", "ref/netstandard1.5/de/System.Reflection.xml", "ref/netstandard1.5/es/System.Reflection.xml", "ref/netstandard1.5/fr/System.Reflection.xml", "ref/netstandard1.5/it/System.Reflection.xml", "ref/netstandard1.5/ja/System.Reflection.xml", "ref/netstandard1.5/ko/System.Reflection.xml", "ref/netstandard1.5/ru/System.Reflection.xml", "ref/netstandard1.5/zh-hans/System.Reflection.xml", "ref/netstandard1.5/zh-hant/System.Reflection.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.reflection.4.3.0.nupkg.sha512", "system.reflection.nuspec" ] }, "System.Reflection.Emit/4.0.1": { "sha512": "P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==", "type": "package", "path": "system.reflection.emit/4.0.1", "files": [ ".nupkg.metadata", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/net45/_._", "lib/netcore50/System.Reflection.Emit.dll", "lib/netstandard1.3/System.Reflection.Emit.dll", "lib/xamarinmac20/_._", "ref/MonoAndroid10/_._", "ref/net45/_._", "ref/netstandard1.1/System.Reflection.Emit.dll", "ref/netstandard1.1/System.Reflection.Emit.xml", "ref/netstandard1.1/de/System.Reflection.Emit.xml", "ref/netstandard1.1/es/System.Reflection.Emit.xml", "ref/netstandard1.1/fr/System.Reflection.Emit.xml", "ref/netstandard1.1/it/System.Reflection.Emit.xml", "ref/netstandard1.1/ja/System.Reflection.Emit.xml", "ref/netstandard1.1/ko/System.Reflection.Emit.xml", "ref/netstandard1.1/ru/System.Reflection.Emit.xml", "ref/netstandard1.1/zh-hans/System.Reflection.Emit.xml", "ref/netstandard1.1/zh-hant/System.Reflection.Emit.xml", "ref/xamarinmac20/_._", "system.reflection.emit.4.0.1.nupkg.sha512", "system.reflection.emit.nuspec" ] }, "System.Reflection.Emit.ILGeneration/4.0.1": { "sha512": "Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==", "type": "package", "path": "system.reflection.emit.ilgeneration/4.0.1", "files": [ ".nupkg.metadata", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/net45/_._", "lib/netcore50/System.Reflection.Emit.ILGeneration.dll", "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll", "lib/portable-net45+wp8/_._", "lib/wp80/_._", "ref/net45/_._", "ref/netstandard1.0/System.Reflection.Emit.ILGeneration.dll", "ref/netstandard1.0/System.Reflection.Emit.ILGeneration.xml", "ref/netstandard1.0/de/System.Reflection.Emit.ILGeneration.xml", "ref/netstandard1.0/es/System.Reflection.Emit.ILGeneration.xml", "ref/netstandard1.0/fr/System.Reflection.Emit.ILGeneration.xml", "ref/netstandard1.0/it/System.Reflection.Emit.ILGeneration.xml", "ref/netstandard1.0/ja/System.Reflection.Emit.ILGeneration.xml", "ref/netstandard1.0/ko/System.Reflection.Emit.ILGeneration.xml", "ref/netstandard1.0/ru/System.Reflection.Emit.ILGeneration.xml", "ref/netstandard1.0/zh-hans/System.Reflection.Emit.ILGeneration.xml", "ref/netstandard1.0/zh-hant/System.Reflection.Emit.ILGeneration.xml", "ref/portable-net45+wp8/_._", "ref/wp80/_._", "runtimes/aot/lib/netcore50/_._", "system.reflection.emit.ilgeneration.4.0.1.nupkg.sha512", "system.reflection.emit.ilgeneration.nuspec" ] }, "System.Reflection.Emit.Lightweight/4.0.1": { "sha512": "sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==", "type": "package", "path": "system.reflection.emit.lightweight/4.0.1", "files": [ ".nupkg.metadata", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/net45/_._", "lib/netcore50/System.Reflection.Emit.Lightweight.dll", "lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll", "lib/portable-net45+wp8/_._", "lib/wp80/_._", "ref/net45/_._", "ref/netstandard1.0/System.Reflection.Emit.Lightweight.dll", "ref/netstandard1.0/System.Reflection.Emit.Lightweight.xml", "ref/netstandard1.0/de/System.Reflection.Emit.Lightweight.xml", "ref/netstandard1.0/es/System.Reflection.Emit.Lightweight.xml", "ref/netstandard1.0/fr/System.Reflection.Emit.Lightweight.xml", "ref/netstandard1.0/it/System.Reflection.Emit.Lightweight.xml", "ref/netstandard1.0/ja/System.Reflection.Emit.Lightweight.xml", "ref/netstandard1.0/ko/System.Reflection.Emit.Lightweight.xml", "ref/netstandard1.0/ru/System.Reflection.Emit.Lightweight.xml", "ref/netstandard1.0/zh-hans/System.Reflection.Emit.Lightweight.xml", "ref/netstandard1.0/zh-hant/System.Reflection.Emit.Lightweight.xml", "ref/portable-net45+wp8/_._", "ref/wp80/_._", "runtimes/aot/lib/netcore50/_._", "system.reflection.emit.lightweight.4.0.1.nupkg.sha512", "system.reflection.emit.lightweight.nuspec" ] }, "System.Reflection.Extensions/4.0.1": { "sha512": "GYrtRsZcMuHF3sbmRHfMYpvxZoIN2bQGrYGerUiWLEkqdEUQZhH3TRSaC/oI4wO0II1RKBPlpIa1TOMxIcOOzQ==", "type": "package", "path": "system.reflection.extensions/4.0.1", "files": [ ".nupkg.metadata", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/netcore50/System.Reflection.Extensions.dll", "ref/netcore50/System.Reflection.Extensions.xml", "ref/netcore50/de/System.Reflection.Extensions.xml", "ref/netcore50/es/System.Reflection.Extensions.xml", "ref/netcore50/fr/System.Reflection.Extensions.xml", "ref/netcore50/it/System.Reflection.Extensions.xml", "ref/netcore50/ja/System.Reflection.Extensions.xml", "ref/netcore50/ko/System.Reflection.Extensions.xml", "ref/netcore50/ru/System.Reflection.Extensions.xml", "ref/netcore50/zh-hans/System.Reflection.Extensions.xml", "ref/netcore50/zh-hant/System.Reflection.Extensions.xml", "ref/netstandard1.0/System.Reflection.Extensions.dll", "ref/netstandard1.0/System.Reflection.Extensions.xml", "ref/netstandard1.0/de/System.Reflection.Extensions.xml", "ref/netstandard1.0/es/System.Reflection.Extensions.xml", "ref/netstandard1.0/fr/System.Reflection.Extensions.xml", "ref/netstandard1.0/it/System.Reflection.Extensions.xml", "ref/netstandard1.0/ja/System.Reflection.Extensions.xml", "ref/netstandard1.0/ko/System.Reflection.Extensions.xml", "ref/netstandard1.0/ru/System.Reflection.Extensions.xml", "ref/netstandard1.0/zh-hans/System.Reflection.Extensions.xml", "ref/netstandard1.0/zh-hant/System.Reflection.Extensions.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.reflection.extensions.4.0.1.nupkg.sha512", "system.reflection.extensions.nuspec" ] }, "System.Reflection.Primitives/4.3.0": { "sha512": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "type": "package", "path": "system.reflection.primitives/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/netcore50/System.Reflection.Primitives.dll", "ref/netcore50/System.Reflection.Primitives.xml", "ref/netcore50/de/System.Reflection.Primitives.xml", "ref/netcore50/es/System.Reflection.Primitives.xml", "ref/netcore50/fr/System.Reflection.Primitives.xml", "ref/netcore50/it/System.Reflection.Primitives.xml", "ref/netcore50/ja/System.Reflection.Primitives.xml", "ref/netcore50/ko/System.Reflection.Primitives.xml", "ref/netcore50/ru/System.Reflection.Primitives.xml", "ref/netcore50/zh-hans/System.Reflection.Primitives.xml", "ref/netcore50/zh-hant/System.Reflection.Primitives.xml", "ref/netstandard1.0/System.Reflection.Primitives.dll", "ref/netstandard1.0/System.Reflection.Primitives.xml", "ref/netstandard1.0/de/System.Reflection.Primitives.xml", "ref/netstandard1.0/es/System.Reflection.Primitives.xml", "ref/netstandard1.0/fr/System.Reflection.Primitives.xml", "ref/netstandard1.0/it/System.Reflection.Primitives.xml", "ref/netstandard1.0/ja/System.Reflection.Primitives.xml", "ref/netstandard1.0/ko/System.Reflection.Primitives.xml", "ref/netstandard1.0/ru/System.Reflection.Primitives.xml", "ref/netstandard1.0/zh-hans/System.Reflection.Primitives.xml", "ref/netstandard1.0/zh-hant/System.Reflection.Primitives.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.reflection.primitives.4.3.0.nupkg.sha512", "system.reflection.primitives.nuspec" ] }, "System.Reflection.TypeExtensions/4.1.0": { "sha512": "tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==", "type": "package", "path": "system.reflection.typeextensions/4.1.0", "files": [ ".nupkg.metadata", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net46/System.Reflection.TypeExtensions.dll", "lib/net462/System.Reflection.TypeExtensions.dll", "lib/netcore50/System.Reflection.TypeExtensions.dll", "lib/netstandard1.5/System.Reflection.TypeExtensions.dll", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net46/System.Reflection.TypeExtensions.dll", "ref/net462/System.Reflection.TypeExtensions.dll", "ref/netstandard1.3/System.Reflection.TypeExtensions.dll", "ref/netstandard1.3/System.Reflection.TypeExtensions.xml", "ref/netstandard1.3/de/System.Reflection.TypeExtensions.xml", "ref/netstandard1.3/es/System.Reflection.TypeExtensions.xml", "ref/netstandard1.3/fr/System.Reflection.TypeExtensions.xml", "ref/netstandard1.3/it/System.Reflection.TypeExtensions.xml", "ref/netstandard1.3/ja/System.Reflection.TypeExtensions.xml", "ref/netstandard1.3/ko/System.Reflection.TypeExtensions.xml", "ref/netstandard1.3/ru/System.Reflection.TypeExtensions.xml", "ref/netstandard1.3/zh-hans/System.Reflection.TypeExtensions.xml", "ref/netstandard1.3/zh-hant/System.Reflection.TypeExtensions.xml", "ref/netstandard1.5/System.Reflection.TypeExtensions.dll", "ref/netstandard1.5/System.Reflection.TypeExtensions.xml", "ref/netstandard1.5/de/System.Reflection.TypeExtensions.xml", "ref/netstandard1.5/es/System.Reflection.TypeExtensions.xml", "ref/netstandard1.5/fr/System.Reflection.TypeExtensions.xml", "ref/netstandard1.5/it/System.Reflection.TypeExtensions.xml", "ref/netstandard1.5/ja/System.Reflection.TypeExtensions.xml", "ref/netstandard1.5/ko/System.Reflection.TypeExtensions.xml", "ref/netstandard1.5/ru/System.Reflection.TypeExtensions.xml", "ref/netstandard1.5/zh-hans/System.Reflection.TypeExtensions.xml", "ref/netstandard1.5/zh-hant/System.Reflection.TypeExtensions.xml", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "runtimes/aot/lib/netcore50/System.Reflection.TypeExtensions.dll", "system.reflection.typeextensions.4.1.0.nupkg.sha512", "system.reflection.typeextensions.nuspec" ] }, "System.Resources.ResourceManager/4.3.0": { "sha512": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "type": "package", "path": "system.resources.resourcemanager/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/netcore50/System.Resources.ResourceManager.dll", "ref/netcore50/System.Resources.ResourceManager.xml", "ref/netcore50/de/System.Resources.ResourceManager.xml", "ref/netcore50/es/System.Resources.ResourceManager.xml", "ref/netcore50/fr/System.Resources.ResourceManager.xml", "ref/netcore50/it/System.Resources.ResourceManager.xml", "ref/netcore50/ja/System.Resources.ResourceManager.xml", "ref/netcore50/ko/System.Resources.ResourceManager.xml", "ref/netcore50/ru/System.Resources.ResourceManager.xml", "ref/netcore50/zh-hans/System.Resources.ResourceManager.xml", "ref/netcore50/zh-hant/System.Resources.ResourceManager.xml", "ref/netstandard1.0/System.Resources.ResourceManager.dll", "ref/netstandard1.0/System.Resources.ResourceManager.xml", "ref/netstandard1.0/de/System.Resources.ResourceManager.xml", "ref/netstandard1.0/es/System.Resources.ResourceManager.xml", "ref/netstandard1.0/fr/System.Resources.ResourceManager.xml", "ref/netstandard1.0/it/System.Resources.ResourceManager.xml", "ref/netstandard1.0/ja/System.Resources.ResourceManager.xml", "ref/netstandard1.0/ko/System.Resources.ResourceManager.xml", "ref/netstandard1.0/ru/System.Resources.ResourceManager.xml", "ref/netstandard1.0/zh-hans/System.Resources.ResourceManager.xml", "ref/netstandard1.0/zh-hant/System.Resources.ResourceManager.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.resources.resourcemanager.4.3.0.nupkg.sha512", "system.resources.resourcemanager.nuspec" ] }, "System.Runtime/4.3.0": { "sha512": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", "type": "package", "path": "system.runtime/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/net462/System.Runtime.dll", "lib/portable-net45+win8+wp80+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/net462/System.Runtime.dll", "ref/netcore50/System.Runtime.dll", "ref/netcore50/System.Runtime.xml", "ref/netcore50/de/System.Runtime.xml", "ref/netcore50/es/System.Runtime.xml", "ref/netcore50/fr/System.Runtime.xml", "ref/netcore50/it/System.Runtime.xml", "ref/netcore50/ja/System.Runtime.xml", "ref/netcore50/ko/System.Runtime.xml", "ref/netcore50/ru/System.Runtime.xml", "ref/netcore50/zh-hans/System.Runtime.xml", "ref/netcore50/zh-hant/System.Runtime.xml", "ref/netstandard1.0/System.Runtime.dll", "ref/netstandard1.0/System.Runtime.xml", "ref/netstandard1.0/de/System.Runtime.xml", "ref/netstandard1.0/es/System.Runtime.xml", "ref/netstandard1.0/fr/System.Runtime.xml", "ref/netstandard1.0/it/System.Runtime.xml", "ref/netstandard1.0/ja/System.Runtime.xml", "ref/netstandard1.0/ko/System.Runtime.xml", "ref/netstandard1.0/ru/System.Runtime.xml", "ref/netstandard1.0/zh-hans/System.Runtime.xml", "ref/netstandard1.0/zh-hant/System.Runtime.xml", "ref/netstandard1.2/System.Runtime.dll", "ref/netstandard1.2/System.Runtime.xml", "ref/netstandard1.2/de/System.Runtime.xml", "ref/netstandard1.2/es/System.Runtime.xml", "ref/netstandard1.2/fr/System.Runtime.xml", "ref/netstandard1.2/it/System.Runtime.xml", "ref/netstandard1.2/ja/System.Runtime.xml", "ref/netstandard1.2/ko/System.Runtime.xml", "ref/netstandard1.2/ru/System.Runtime.xml", "ref/netstandard1.2/zh-hans/System.Runtime.xml", "ref/netstandard1.2/zh-hant/System.Runtime.xml", "ref/netstandard1.3/System.Runtime.dll", "ref/netstandard1.3/System.Runtime.xml", "ref/netstandard1.3/de/System.Runtime.xml", "ref/netstandard1.3/es/System.Runtime.xml", "ref/netstandard1.3/fr/System.Runtime.xml", "ref/netstandard1.3/it/System.Runtime.xml", "ref/netstandard1.3/ja/System.Runtime.xml", "ref/netstandard1.3/ko/System.Runtime.xml", "ref/netstandard1.3/ru/System.Runtime.xml", "ref/netstandard1.3/zh-hans/System.Runtime.xml", "ref/netstandard1.3/zh-hant/System.Runtime.xml", "ref/netstandard1.5/System.Runtime.dll", "ref/netstandard1.5/System.Runtime.xml", "ref/netstandard1.5/de/System.Runtime.xml", "ref/netstandard1.5/es/System.Runtime.xml", "ref/netstandard1.5/fr/System.Runtime.xml", "ref/netstandard1.5/it/System.Runtime.xml", "ref/netstandard1.5/ja/System.Runtime.xml", "ref/netstandard1.5/ko/System.Runtime.xml", "ref/netstandard1.5/ru/System.Runtime.xml", "ref/netstandard1.5/zh-hans/System.Runtime.xml", "ref/netstandard1.5/zh-hant/System.Runtime.xml", "ref/portable-net45+win8+wp80+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.runtime.4.3.0.nupkg.sha512", "system.runtime.nuspec" ] }, "System.Runtime.CompilerServices.Unsafe/4.5.2": { "sha512": "wprSFgext8cwqymChhrBLu62LMg/1u92bU+VOwyfBimSPVFXtsNqEWC92Pf9ofzJFlk4IHmJA75EDJn1b2goAQ==", "type": "package", "path": "system.runtime.compilerservices.unsafe/4.5.2", "files": [ ".nupkg.metadata", ".signature.p7s", "LICENSE.TXT", "THIRD-PARTY-NOTICES.TXT", "lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll", "lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.xml", "lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll", "lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml", "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll", "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml", "ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll", "ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml", "ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll", "ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml", "system.runtime.compilerservices.unsafe.4.5.2.nupkg.sha512", "system.runtime.compilerservices.unsafe.nuspec", "useSharedDesignerContext.txt", "version.txt" ] }, "System.Runtime.Extensions/4.3.0": { "sha512": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", "type": "package", "path": "system.runtime.extensions/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/net462/System.Runtime.Extensions.dll", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/net462/System.Runtime.Extensions.dll", "ref/netcore50/System.Runtime.Extensions.dll", "ref/netcore50/System.Runtime.Extensions.xml", "ref/netcore50/de/System.Runtime.Extensions.xml", "ref/netcore50/es/System.Runtime.Extensions.xml", "ref/netcore50/fr/System.Runtime.Extensions.xml", "ref/netcore50/it/System.Runtime.Extensions.xml", "ref/netcore50/ja/System.Runtime.Extensions.xml", "ref/netcore50/ko/System.Runtime.Extensions.xml", "ref/netcore50/ru/System.Runtime.Extensions.xml", "ref/netcore50/zh-hans/System.Runtime.Extensions.xml", "ref/netcore50/zh-hant/System.Runtime.Extensions.xml", "ref/netstandard1.0/System.Runtime.Extensions.dll", "ref/netstandard1.0/System.Runtime.Extensions.xml", "ref/netstandard1.0/de/System.Runtime.Extensions.xml", "ref/netstandard1.0/es/System.Runtime.Extensions.xml", "ref/netstandard1.0/fr/System.Runtime.Extensions.xml", "ref/netstandard1.0/it/System.Runtime.Extensions.xml", "ref/netstandard1.0/ja/System.Runtime.Extensions.xml", "ref/netstandard1.0/ko/System.Runtime.Extensions.xml", "ref/netstandard1.0/ru/System.Runtime.Extensions.xml", "ref/netstandard1.0/zh-hans/System.Runtime.Extensions.xml", "ref/netstandard1.0/zh-hant/System.Runtime.Extensions.xml", "ref/netstandard1.3/System.Runtime.Extensions.dll", "ref/netstandard1.3/System.Runtime.Extensions.xml", "ref/netstandard1.3/de/System.Runtime.Extensions.xml", "ref/netstandard1.3/es/System.Runtime.Extensions.xml", "ref/netstandard1.3/fr/System.Runtime.Extensions.xml", "ref/netstandard1.3/it/System.Runtime.Extensions.xml", "ref/netstandard1.3/ja/System.Runtime.Extensions.xml", "ref/netstandard1.3/ko/System.Runtime.Extensions.xml", "ref/netstandard1.3/ru/System.Runtime.Extensions.xml", "ref/netstandard1.3/zh-hans/System.Runtime.Extensions.xml", "ref/netstandard1.3/zh-hant/System.Runtime.Extensions.xml", "ref/netstandard1.5/System.Runtime.Extensions.dll", "ref/netstandard1.5/System.Runtime.Extensions.xml", "ref/netstandard1.5/de/System.Runtime.Extensions.xml", "ref/netstandard1.5/es/System.Runtime.Extensions.xml", "ref/netstandard1.5/fr/System.Runtime.Extensions.xml", "ref/netstandard1.5/it/System.Runtime.Extensions.xml", "ref/netstandard1.5/ja/System.Runtime.Extensions.xml", "ref/netstandard1.5/ko/System.Runtime.Extensions.xml", "ref/netstandard1.5/ru/System.Runtime.Extensions.xml", "ref/netstandard1.5/zh-hans/System.Runtime.Extensions.xml", "ref/netstandard1.5/zh-hant/System.Runtime.Extensions.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.runtime.extensions.4.3.0.nupkg.sha512", "system.runtime.extensions.nuspec" ] }, "System.Runtime.Handles/4.3.0": { "sha512": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", "type": "package", "path": "system.runtime.handles/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net46/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net46/_._", "ref/netstandard1.3/System.Runtime.Handles.dll", "ref/netstandard1.3/System.Runtime.Handles.xml", "ref/netstandard1.3/de/System.Runtime.Handles.xml", "ref/netstandard1.3/es/System.Runtime.Handles.xml", "ref/netstandard1.3/fr/System.Runtime.Handles.xml", "ref/netstandard1.3/it/System.Runtime.Handles.xml", "ref/netstandard1.3/ja/System.Runtime.Handles.xml", "ref/netstandard1.3/ko/System.Runtime.Handles.xml", "ref/netstandard1.3/ru/System.Runtime.Handles.xml", "ref/netstandard1.3/zh-hans/System.Runtime.Handles.xml", "ref/netstandard1.3/zh-hant/System.Runtime.Handles.xml", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.runtime.handles.4.3.0.nupkg.sha512", "system.runtime.handles.nuspec" ] }, "System.Runtime.InteropServices/4.3.0": { "sha512": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "type": "package", "path": "system.runtime.interopservices/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/net462/System.Runtime.InteropServices.dll", "lib/net463/System.Runtime.InteropServices.dll", "lib/portable-net45+win8+wpa81/_._", "lib/win8/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/net462/System.Runtime.InteropServices.dll", "ref/net463/System.Runtime.InteropServices.dll", "ref/netcore50/System.Runtime.InteropServices.dll", "ref/netcore50/System.Runtime.InteropServices.xml", "ref/netcore50/de/System.Runtime.InteropServices.xml", "ref/netcore50/es/System.Runtime.InteropServices.xml", "ref/netcore50/fr/System.Runtime.InteropServices.xml", "ref/netcore50/it/System.Runtime.InteropServices.xml", "ref/netcore50/ja/System.Runtime.InteropServices.xml", "ref/netcore50/ko/System.Runtime.InteropServices.xml", "ref/netcore50/ru/System.Runtime.InteropServices.xml", "ref/netcore50/zh-hans/System.Runtime.InteropServices.xml", "ref/netcore50/zh-hant/System.Runtime.InteropServices.xml", "ref/netcoreapp1.1/System.Runtime.InteropServices.dll", "ref/netstandard1.1/System.Runtime.InteropServices.dll", "ref/netstandard1.1/System.Runtime.InteropServices.xml", "ref/netstandard1.1/de/System.Runtime.InteropServices.xml", "ref/netstandard1.1/es/System.Runtime.InteropServices.xml", "ref/netstandard1.1/fr/System.Runtime.InteropServices.xml", "ref/netstandard1.1/it/System.Runtime.InteropServices.xml", "ref/netstandard1.1/ja/System.Runtime.InteropServices.xml", "ref/netstandard1.1/ko/System.Runtime.InteropServices.xml", "ref/netstandard1.1/ru/System.Runtime.InteropServices.xml", "ref/netstandard1.1/zh-hans/System.Runtime.InteropServices.xml", "ref/netstandard1.1/zh-hant/System.Runtime.InteropServices.xml", "ref/netstandard1.2/System.Runtime.InteropServices.dll", "ref/netstandard1.2/System.Runtime.InteropServices.xml", "ref/netstandard1.2/de/System.Runtime.InteropServices.xml", "ref/netstandard1.2/es/System.Runtime.InteropServices.xml", "ref/netstandard1.2/fr/System.Runtime.InteropServices.xml", "ref/netstandard1.2/it/System.Runtime.InteropServices.xml", "ref/netstandard1.2/ja/System.Runtime.InteropServices.xml", "ref/netstandard1.2/ko/System.Runtime.InteropServices.xml", "ref/netstandard1.2/ru/System.Runtime.InteropServices.xml", "ref/netstandard1.2/zh-hans/System.Runtime.InteropServices.xml", "ref/netstandard1.2/zh-hant/System.Runtime.InteropServices.xml", "ref/netstandard1.3/System.Runtime.InteropServices.dll", "ref/netstandard1.3/System.Runtime.InteropServices.xml", "ref/netstandard1.3/de/System.Runtime.InteropServices.xml", "ref/netstandard1.3/es/System.Runtime.InteropServices.xml", "ref/netstandard1.3/fr/System.Runtime.InteropServices.xml", "ref/netstandard1.3/it/System.Runtime.InteropServices.xml", "ref/netstandard1.3/ja/System.Runtime.InteropServices.xml", "ref/netstandard1.3/ko/System.Runtime.InteropServices.xml", "ref/netstandard1.3/ru/System.Runtime.InteropServices.xml", "ref/netstandard1.3/zh-hans/System.Runtime.InteropServices.xml", "ref/netstandard1.3/zh-hant/System.Runtime.InteropServices.xml", "ref/netstandard1.5/System.Runtime.InteropServices.dll", "ref/netstandard1.5/System.Runtime.InteropServices.xml", "ref/netstandard1.5/de/System.Runtime.InteropServices.xml", "ref/netstandard1.5/es/System.Runtime.InteropServices.xml", "ref/netstandard1.5/fr/System.Runtime.InteropServices.xml", "ref/netstandard1.5/it/System.Runtime.InteropServices.xml", "ref/netstandard1.5/ja/System.Runtime.InteropServices.xml", "ref/netstandard1.5/ko/System.Runtime.InteropServices.xml", "ref/netstandard1.5/ru/System.Runtime.InteropServices.xml", "ref/netstandard1.5/zh-hans/System.Runtime.InteropServices.xml", "ref/netstandard1.5/zh-hant/System.Runtime.InteropServices.xml", "ref/portable-net45+win8+wpa81/_._", "ref/win8/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.runtime.interopservices.4.3.0.nupkg.sha512", "system.runtime.interopservices.nuspec" ] }, "System.Runtime.Numerics/4.0.1": { "sha512": "+XbKFuzdmLP3d1o9pdHu2nxjNr2OEPqGzKeegPLCUMM71a0t50A/rOcIRmGs9wR7a8KuHX6hYs/7/TymIGLNqg==", "type": "package", "path": "system.runtime.numerics/4.0.1", "files": [ ".nupkg.metadata", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/netcore50/System.Runtime.Numerics.dll", "lib/netstandard1.3/System.Runtime.Numerics.dll", "lib/portable-net45+win8+wpa81/_._", "lib/win8/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/netcore50/System.Runtime.Numerics.dll", "ref/netcore50/System.Runtime.Numerics.xml", "ref/netcore50/de/System.Runtime.Numerics.xml", "ref/netcore50/es/System.Runtime.Numerics.xml", "ref/netcore50/fr/System.Runtime.Numerics.xml", "ref/netcore50/it/System.Runtime.Numerics.xml", "ref/netcore50/ja/System.Runtime.Numerics.xml", "ref/netcore50/ko/System.Runtime.Numerics.xml", "ref/netcore50/ru/System.Runtime.Numerics.xml", "ref/netcore50/zh-hans/System.Runtime.Numerics.xml", "ref/netcore50/zh-hant/System.Runtime.Numerics.xml", "ref/netstandard1.1/System.Runtime.Numerics.dll", "ref/netstandard1.1/System.Runtime.Numerics.xml", "ref/netstandard1.1/de/System.Runtime.Numerics.xml", "ref/netstandard1.1/es/System.Runtime.Numerics.xml", "ref/netstandard1.1/fr/System.Runtime.Numerics.xml", "ref/netstandard1.1/it/System.Runtime.Numerics.xml", "ref/netstandard1.1/ja/System.Runtime.Numerics.xml", "ref/netstandard1.1/ko/System.Runtime.Numerics.xml", "ref/netstandard1.1/ru/System.Runtime.Numerics.xml", "ref/netstandard1.1/zh-hans/System.Runtime.Numerics.xml", "ref/netstandard1.1/zh-hant/System.Runtime.Numerics.xml", "ref/portable-net45+win8+wpa81/_._", "ref/win8/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.runtime.numerics.4.0.1.nupkg.sha512", "system.runtime.numerics.nuspec" ] }, "System.Security.AccessControl/4.6.0": { "sha512": "gmlk6khICtVhiUnVBBtlsH0H/5QFDqhTZgtpp3AX14wWE6OIE+BX95NLD+X4AolXnIy/oXpNNmXYnsNfW1KuDQ==", "type": "package", "path": "system.security.accesscontrol/4.6.0", "files": [ ".nupkg.metadata", ".signature.p7s", "LICENSE.TXT", "THIRD-PARTY-NOTICES.TXT", "lib/net46/System.Security.AccessControl.dll", "lib/net461/System.Security.AccessControl.dll", "lib/net461/System.Security.AccessControl.xml", "lib/netstandard1.3/System.Security.AccessControl.dll", "lib/netstandard2.0/System.Security.AccessControl.dll", "lib/netstandard2.0/System.Security.AccessControl.xml", "lib/uap10.0.16299/_._", "ref/net46/System.Security.AccessControl.dll", "ref/net461/System.Security.AccessControl.dll", "ref/net461/System.Security.AccessControl.xml", "ref/netstandard1.3/System.Security.AccessControl.dll", "ref/netstandard1.3/System.Security.AccessControl.xml", "ref/netstandard1.3/de/System.Security.AccessControl.xml", "ref/netstandard1.3/es/System.Security.AccessControl.xml", "ref/netstandard1.3/fr/System.Security.AccessControl.xml", "ref/netstandard1.3/it/System.Security.AccessControl.xml", "ref/netstandard1.3/ja/System.Security.AccessControl.xml", "ref/netstandard1.3/ko/System.Security.AccessControl.xml", "ref/netstandard1.3/ru/System.Security.AccessControl.xml", "ref/netstandard1.3/zh-hans/System.Security.AccessControl.xml", "ref/netstandard1.3/zh-hant/System.Security.AccessControl.xml", "ref/netstandard2.0/System.Security.AccessControl.dll", "ref/netstandard2.0/System.Security.AccessControl.xml", "ref/uap10.0.16299/_._", "runtimes/win/lib/net46/System.Security.AccessControl.dll", "runtimes/win/lib/net461/System.Security.AccessControl.dll", "runtimes/win/lib/net461/System.Security.AccessControl.xml", "runtimes/win/lib/netcoreapp2.0/System.Security.AccessControl.dll", "runtimes/win/lib/netcoreapp2.0/System.Security.AccessControl.xml", "runtimes/win/lib/netstandard1.3/System.Security.AccessControl.dll", "runtimes/win/lib/uap10.0.16299/_._", "system.security.accesscontrol.4.6.0.nupkg.sha512", "system.security.accesscontrol.nuspec", "useSharedDesignerContext.txt", "version.txt" ] }, "System.Security.Cryptography.Algorithms/4.2.0": { "sha512": "8JQFxbLVdrtIOKMDN38Fn0GWnqYZw/oMlwOUG/qz1jqChvyZlnUmu+0s7wLx7JYua/nAXoESpHA3iw11QFWhXg==", "type": "package", "path": "system.security.cryptography.algorithms/4.2.0", "files": [ ".nupkg.metadata", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net46/System.Security.Cryptography.Algorithms.dll", "lib/net461/System.Security.Cryptography.Algorithms.dll", "lib/net463/System.Security.Cryptography.Algorithms.dll", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net46/System.Security.Cryptography.Algorithms.dll", "ref/net461/System.Security.Cryptography.Algorithms.dll", "ref/net463/System.Security.Cryptography.Algorithms.dll", "ref/netstandard1.3/System.Security.Cryptography.Algorithms.dll", "ref/netstandard1.4/System.Security.Cryptography.Algorithms.dll", "ref/netstandard1.6/System.Security.Cryptography.Algorithms.dll", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll", "runtimes/win/lib/net46/System.Security.Cryptography.Algorithms.dll", "runtimes/win/lib/net461/System.Security.Cryptography.Algorithms.dll", "runtimes/win/lib/net463/System.Security.Cryptography.Algorithms.dll", "runtimes/win/lib/netcore50/System.Security.Cryptography.Algorithms.dll", "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll", "system.security.cryptography.algorithms.4.2.0.nupkg.sha512", "system.security.cryptography.algorithms.nuspec" ] }, "System.Security.Cryptography.Encoding/4.0.0": { "sha512": "FbKgE5MbxSQMPcSVRgwM6bXN3GtyAh04NkV8E5zKCBE26X0vYW0UtTa2FIgkH33WVqBVxRgxljlVYumWtU+HcQ==", "type": "package", "path": "system.security.cryptography.encoding/4.0.0", "files": [ ".nupkg.metadata", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net46/System.Security.Cryptography.Encoding.dll", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net46/System.Security.Cryptography.Encoding.dll", "ref/netstandard1.3/System.Security.Cryptography.Encoding.dll", "ref/netstandard1.3/System.Security.Cryptography.Encoding.xml", "ref/netstandard1.3/de/System.Security.Cryptography.Encoding.xml", "ref/netstandard1.3/es/System.Security.Cryptography.Encoding.xml", "ref/netstandard1.3/fr/System.Security.Cryptography.Encoding.xml", "ref/netstandard1.3/it/System.Security.Cryptography.Encoding.xml", "ref/netstandard1.3/ja/System.Security.Cryptography.Encoding.xml", "ref/netstandard1.3/ko/System.Security.Cryptography.Encoding.xml", "ref/netstandard1.3/ru/System.Security.Cryptography.Encoding.xml", "ref/netstandard1.3/zh-hans/System.Security.Cryptography.Encoding.xml", "ref/netstandard1.3/zh-hant/System.Security.Cryptography.Encoding.xml", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "runtimes/unix/lib/netstandard1.3/System.Security.Cryptography.Encoding.dll", "runtimes/win/lib/net46/System.Security.Cryptography.Encoding.dll", "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.Encoding.dll", "system.security.cryptography.encoding.4.0.0.nupkg.sha512", "system.security.cryptography.encoding.nuspec" ] }, "System.Security.Cryptography.Primitives/4.0.0": { "sha512": "Wkd7QryWYjkQclX0bngpntW5HSlMzeJU24UaLJQ7YTfI8ydAVAaU2J+HXLLABOVJlKTVvAeL0Aj39VeTe7L+oA==", "type": "package", "path": "system.security.cryptography.primitives/4.0.0", "files": [ ".nupkg.metadata", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net46/System.Security.Cryptography.Primitives.dll", "lib/netstandard1.3/System.Security.Cryptography.Primitives.dll", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net46/System.Security.Cryptography.Primitives.dll", "ref/netstandard1.3/System.Security.Cryptography.Primitives.dll", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.security.cryptography.primitives.4.0.0.nupkg.sha512", "system.security.cryptography.primitives.nuspec" ] }, "System.Security.Cryptography.ProtectedData/4.4.0": { "sha512": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog==", "type": "package", "path": "system.security.cryptography.protecteddata/4.4.0", "files": [ ".nupkg.metadata", ".signature.p7s", "LICENSE.TXT", "THIRD-PARTY-NOTICES.TXT", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net46/System.Security.Cryptography.ProtectedData.dll", "lib/net461/System.Security.Cryptography.ProtectedData.dll", "lib/netstandard1.3/System.Security.Cryptography.ProtectedData.dll", "lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net46/System.Security.Cryptography.ProtectedData.dll", "ref/net461/System.Security.Cryptography.ProtectedData.dll", "ref/net461/System.Security.Cryptography.ProtectedData.xml", "ref/netstandard1.3/System.Security.Cryptography.ProtectedData.dll", "ref/netstandard2.0/System.Security.Cryptography.ProtectedData.dll", "ref/netstandard2.0/System.Security.Cryptography.ProtectedData.xml", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "runtimes/win/lib/net46/System.Security.Cryptography.ProtectedData.dll", "runtimes/win/lib/net461/System.Security.Cryptography.ProtectedData.dll", "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.ProtectedData.dll", "runtimes/win/lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll", "system.security.cryptography.protecteddata.4.4.0.nupkg.sha512", "system.security.cryptography.protecteddata.nuspec", "useSharedDesignerContext.txt", "version.txt" ] }, "System.Security.Permissions/4.6.0": { "sha512": "W3Uxog9KCZAmGYsOFHgJnb7L2q+SDbxS3vGnFHmErUnXuIjWYpIh1KVTlua7qmPdrlRCkAcTF9dImv+jciBPOQ==", "type": "package", "path": "system.security.permissions/4.6.0", "files": [ ".nupkg.metadata", ".signature.p7s", "LICENSE.TXT", "THIRD-PARTY-NOTICES.TXT", "lib/net461/System.Security.Permissions.dll", "lib/net461/System.Security.Permissions.xml", "lib/netcoreapp3.0/System.Security.Permissions.dll", "lib/netcoreapp3.0/System.Security.Permissions.xml", "lib/netstandard2.0/System.Security.Permissions.dll", "lib/netstandard2.0/System.Security.Permissions.xml", "ref/net461/System.Security.Permissions.dll", "ref/net461/System.Security.Permissions.xml", "ref/netcoreapp3.0/System.Security.Permissions.dll", "ref/netcoreapp3.0/System.Security.Permissions.xml", "ref/netstandard2.0/System.Security.Permissions.dll", "ref/netstandard2.0/System.Security.Permissions.xml", "system.security.permissions.4.6.0.nupkg.sha512", "system.security.permissions.nuspec", "useSharedDesignerContext.txt", "version.txt" ] }, "System.Security.Principal.Windows/4.6.0": { "sha512": "Mdukseovp0YIGaz16FMH6nbfgZkrCFOJbtXQptv0aeBO9h775Ilb9+TDwLVTKikoW7y7CY7lpoXl9zmZ5G3ndA==", "type": "package", "path": "system.security.principal.windows/4.6.0", "files": [ ".nupkg.metadata", ".signature.p7s", "LICENSE.TXT", "THIRD-PARTY-NOTICES.TXT", "lib/net46/System.Security.Principal.Windows.dll", "lib/net461/System.Security.Principal.Windows.dll", "lib/net461/System.Security.Principal.Windows.xml", "lib/netstandard1.3/System.Security.Principal.Windows.dll", "lib/netstandard2.0/System.Security.Principal.Windows.dll", "lib/netstandard2.0/System.Security.Principal.Windows.xml", "lib/uap10.0.16299/_._", "ref/net46/System.Security.Principal.Windows.dll", "ref/net461/System.Security.Principal.Windows.dll", "ref/net461/System.Security.Principal.Windows.xml", "ref/netcoreapp3.0/System.Security.Principal.Windows.dll", "ref/netcoreapp3.0/System.Security.Principal.Windows.xml", "ref/netstandard1.3/System.Security.Principal.Windows.dll", "ref/netstandard1.3/System.Security.Principal.Windows.xml", "ref/netstandard1.3/de/System.Security.Principal.Windows.xml", "ref/netstandard1.3/es/System.Security.Principal.Windows.xml", "ref/netstandard1.3/fr/System.Security.Principal.Windows.xml", "ref/netstandard1.3/it/System.Security.Principal.Windows.xml", "ref/netstandard1.3/ja/System.Security.Principal.Windows.xml", "ref/netstandard1.3/ko/System.Security.Principal.Windows.xml", "ref/netstandard1.3/ru/System.Security.Principal.Windows.xml", "ref/netstandard1.3/zh-hans/System.Security.Principal.Windows.xml", "ref/netstandard1.3/zh-hant/System.Security.Principal.Windows.xml", "ref/netstandard2.0/System.Security.Principal.Windows.dll", "ref/netstandard2.0/System.Security.Principal.Windows.xml", "ref/uap10.0.16299/_._", "runtimes/unix/lib/netcoreapp2.0/System.Security.Principal.Windows.dll", "runtimes/unix/lib/netcoreapp2.0/System.Security.Principal.Windows.xml", "runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.dll", "runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.xml", "runtimes/win/lib/net46/System.Security.Principal.Windows.dll", "runtimes/win/lib/net461/System.Security.Principal.Windows.dll", "runtimes/win/lib/net461/System.Security.Principal.Windows.xml", "runtimes/win/lib/netcoreapp2.0/System.Security.Principal.Windows.dll", "runtimes/win/lib/netcoreapp2.0/System.Security.Principal.Windows.xml", "runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.dll", "runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.xml", "runtimes/win/lib/netstandard1.3/System.Security.Principal.Windows.dll", "runtimes/win/lib/uap10.0.16299/_._", "system.security.principal.windows.4.6.0.nupkg.sha512", "system.security.principal.windows.nuspec", "useSharedDesignerContext.txt", "version.txt" ] }, "System.Text.Encoding/4.3.0": { "sha512": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "type": "package", "path": "system.text.encoding/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/netcore50/System.Text.Encoding.dll", "ref/netcore50/System.Text.Encoding.xml", "ref/netcore50/de/System.Text.Encoding.xml", "ref/netcore50/es/System.Text.Encoding.xml", "ref/netcore50/fr/System.Text.Encoding.xml", "ref/netcore50/it/System.Text.Encoding.xml", "ref/netcore50/ja/System.Text.Encoding.xml", "ref/netcore50/ko/System.Text.Encoding.xml", "ref/netcore50/ru/System.Text.Encoding.xml", "ref/netcore50/zh-hans/System.Text.Encoding.xml", "ref/netcore50/zh-hant/System.Text.Encoding.xml", "ref/netstandard1.0/System.Text.Encoding.dll", "ref/netstandard1.0/System.Text.Encoding.xml", "ref/netstandard1.0/de/System.Text.Encoding.xml", "ref/netstandard1.0/es/System.Text.Encoding.xml", "ref/netstandard1.0/fr/System.Text.Encoding.xml", "ref/netstandard1.0/it/System.Text.Encoding.xml", "ref/netstandard1.0/ja/System.Text.Encoding.xml", "ref/netstandard1.0/ko/System.Text.Encoding.xml", "ref/netstandard1.0/ru/System.Text.Encoding.xml", "ref/netstandard1.0/zh-hans/System.Text.Encoding.xml", "ref/netstandard1.0/zh-hant/System.Text.Encoding.xml", "ref/netstandard1.3/System.Text.Encoding.dll", "ref/netstandard1.3/System.Text.Encoding.xml", "ref/netstandard1.3/de/System.Text.Encoding.xml", "ref/netstandard1.3/es/System.Text.Encoding.xml", "ref/netstandard1.3/fr/System.Text.Encoding.xml", "ref/netstandard1.3/it/System.Text.Encoding.xml", "ref/netstandard1.3/ja/System.Text.Encoding.xml", "ref/netstandard1.3/ko/System.Text.Encoding.xml", "ref/netstandard1.3/ru/System.Text.Encoding.xml", "ref/netstandard1.3/zh-hans/System.Text.Encoding.xml", "ref/netstandard1.3/zh-hant/System.Text.Encoding.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.text.encoding.4.3.0.nupkg.sha512", "system.text.encoding.nuspec" ] }, "System.Text.Encoding.CodePages/4.4.0": { "sha512": "6JX7ZdaceBiLKLkYt8zJcp4xTJd1uYyXXEkPw6mnlUIjh1gZPIVKPtRXPmY5kLf6DwZmf5YLwR3QUrRonl7l0A==", "type": "package", "path": "system.text.encoding.codepages/4.4.0", "files": [ ".nupkg.metadata", ".signature.p7s", "LICENSE.TXT", "THIRD-PARTY-NOTICES.TXT", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net46/System.Text.Encoding.CodePages.dll", "lib/net461/System.Text.Encoding.CodePages.dll", "lib/netstandard1.3/System.Text.Encoding.CodePages.dll", "lib/netstandard2.0/System.Text.Encoding.CodePages.dll", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/netstandard1.3/System.Text.Encoding.CodePages.dll", "ref/netstandard1.3/System.Text.Encoding.CodePages.xml", "ref/netstandard1.3/de/System.Text.Encoding.CodePages.xml", "ref/netstandard1.3/es/System.Text.Encoding.CodePages.xml", "ref/netstandard1.3/fr/System.Text.Encoding.CodePages.xml", "ref/netstandard1.3/it/System.Text.Encoding.CodePages.xml", "ref/netstandard1.3/ja/System.Text.Encoding.CodePages.xml", "ref/netstandard1.3/ko/System.Text.Encoding.CodePages.xml", "ref/netstandard1.3/ru/System.Text.Encoding.CodePages.xml", "ref/netstandard1.3/zh-hans/System.Text.Encoding.CodePages.xml", "ref/netstandard1.3/zh-hant/System.Text.Encoding.CodePages.xml", "ref/netstandard2.0/System.Text.Encoding.CodePages.dll", "ref/netstandard2.0/System.Text.Encoding.CodePages.xml", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "runtimes/win/lib/net461/System.Text.Encoding.CodePages.dll", "runtimes/win/lib/netcoreapp2.0/System.Text.Encoding.CodePages.dll", "runtimes/win/lib/netstandard1.3/System.Text.Encoding.CodePages.dll", "runtimes/win/lib/netstandard2.0/System.Text.Encoding.CodePages.dll", "system.text.encoding.codepages.4.4.0.nupkg.sha512", "system.text.encoding.codepages.nuspec", "useSharedDesignerContext.txt", "version.txt" ] }, "System.Text.Encoding.Extensions/4.0.11": { "sha512": "jtbiTDtvfLYgXn8PTfWI+SiBs51rrmO4AAckx4KR6vFK9Wzf6tI8kcRdsYQNwriUeQ1+CtQbM1W4cMbLXnj/OQ==", "type": "package", "path": "system.text.encoding.extensions/4.0.11", "files": [ ".nupkg.metadata", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/netcore50/System.Text.Encoding.Extensions.dll", "ref/netcore50/System.Text.Encoding.Extensions.xml", "ref/netcore50/de/System.Text.Encoding.Extensions.xml", "ref/netcore50/es/System.Text.Encoding.Extensions.xml", "ref/netcore50/fr/System.Text.Encoding.Extensions.xml", "ref/netcore50/it/System.Text.Encoding.Extensions.xml", "ref/netcore50/ja/System.Text.Encoding.Extensions.xml", "ref/netcore50/ko/System.Text.Encoding.Extensions.xml", "ref/netcore50/ru/System.Text.Encoding.Extensions.xml", "ref/netcore50/zh-hans/System.Text.Encoding.Extensions.xml", "ref/netcore50/zh-hant/System.Text.Encoding.Extensions.xml", "ref/netstandard1.0/System.Text.Encoding.Extensions.dll", "ref/netstandard1.0/System.Text.Encoding.Extensions.xml", "ref/netstandard1.0/de/System.Text.Encoding.Extensions.xml", "ref/netstandard1.0/es/System.Text.Encoding.Extensions.xml", "ref/netstandard1.0/fr/System.Text.Encoding.Extensions.xml", "ref/netstandard1.0/it/System.Text.Encoding.Extensions.xml", "ref/netstandard1.0/ja/System.Text.Encoding.Extensions.xml", "ref/netstandard1.0/ko/System.Text.Encoding.Extensions.xml", "ref/netstandard1.0/ru/System.Text.Encoding.Extensions.xml", "ref/netstandard1.0/zh-hans/System.Text.Encoding.Extensions.xml", "ref/netstandard1.0/zh-hant/System.Text.Encoding.Extensions.xml", "ref/netstandard1.3/System.Text.Encoding.Extensions.dll", "ref/netstandard1.3/System.Text.Encoding.Extensions.xml", "ref/netstandard1.3/de/System.Text.Encoding.Extensions.xml", "ref/netstandard1.3/es/System.Text.Encoding.Extensions.xml", "ref/netstandard1.3/fr/System.Text.Encoding.Extensions.xml", "ref/netstandard1.3/it/System.Text.Encoding.Extensions.xml", "ref/netstandard1.3/ja/System.Text.Encoding.Extensions.xml", "ref/netstandard1.3/ko/System.Text.Encoding.Extensions.xml", "ref/netstandard1.3/ru/System.Text.Encoding.Extensions.xml", "ref/netstandard1.3/zh-hans/System.Text.Encoding.Extensions.xml", "ref/netstandard1.3/zh-hant/System.Text.Encoding.Extensions.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.text.encoding.extensions.4.0.11.nupkg.sha512", "system.text.encoding.extensions.nuspec" ] }, "System.Text.RegularExpressions/4.1.0": { "sha512": "i88YCXpRTjCnoSQZtdlHkAOx4KNNik4hMy83n0+Ftlb7jvV6ZiZWMpnEZHhjBp6hQVh8gWd/iKNPzlPF7iyA2g==", "type": "package", "path": "system.text.regularexpressions/4.1.0", "files": [ ".nupkg.metadata", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/net463/System.Text.RegularExpressions.dll", "lib/netcore50/System.Text.RegularExpressions.dll", "lib/netstandard1.6/System.Text.RegularExpressions.dll", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/net463/System.Text.RegularExpressions.dll", "ref/netcore50/System.Text.RegularExpressions.dll", "ref/netcore50/System.Text.RegularExpressions.xml", "ref/netcore50/de/System.Text.RegularExpressions.xml", "ref/netcore50/es/System.Text.RegularExpressions.xml", "ref/netcore50/fr/System.Text.RegularExpressions.xml", "ref/netcore50/it/System.Text.RegularExpressions.xml", "ref/netcore50/ja/System.Text.RegularExpressions.xml", "ref/netcore50/ko/System.Text.RegularExpressions.xml", "ref/netcore50/ru/System.Text.RegularExpressions.xml", "ref/netcore50/zh-hans/System.Text.RegularExpressions.xml", "ref/netcore50/zh-hant/System.Text.RegularExpressions.xml", "ref/netstandard1.0/System.Text.RegularExpressions.dll", "ref/netstandard1.0/System.Text.RegularExpressions.xml", "ref/netstandard1.0/de/System.Text.RegularExpressions.xml", "ref/netstandard1.0/es/System.Text.RegularExpressions.xml", "ref/netstandard1.0/fr/System.Text.RegularExpressions.xml", "ref/netstandard1.0/it/System.Text.RegularExpressions.xml", "ref/netstandard1.0/ja/System.Text.RegularExpressions.xml", "ref/netstandard1.0/ko/System.Text.RegularExpressions.xml", "ref/netstandard1.0/ru/System.Text.RegularExpressions.xml", "ref/netstandard1.0/zh-hans/System.Text.RegularExpressions.xml", "ref/netstandard1.0/zh-hant/System.Text.RegularExpressions.xml", "ref/netstandard1.3/System.Text.RegularExpressions.dll", "ref/netstandard1.3/System.Text.RegularExpressions.xml", "ref/netstandard1.3/de/System.Text.RegularExpressions.xml", "ref/netstandard1.3/es/System.Text.RegularExpressions.xml", "ref/netstandard1.3/fr/System.Text.RegularExpressions.xml", "ref/netstandard1.3/it/System.Text.RegularExpressions.xml", "ref/netstandard1.3/ja/System.Text.RegularExpressions.xml", "ref/netstandard1.3/ko/System.Text.RegularExpressions.xml", "ref/netstandard1.3/ru/System.Text.RegularExpressions.xml", "ref/netstandard1.3/zh-hans/System.Text.RegularExpressions.xml", "ref/netstandard1.3/zh-hant/System.Text.RegularExpressions.xml", "ref/netstandard1.6/System.Text.RegularExpressions.dll", "ref/netstandard1.6/System.Text.RegularExpressions.xml", "ref/netstandard1.6/de/System.Text.RegularExpressions.xml", "ref/netstandard1.6/es/System.Text.RegularExpressions.xml", "ref/netstandard1.6/fr/System.Text.RegularExpressions.xml", "ref/netstandard1.6/it/System.Text.RegularExpressions.xml", "ref/netstandard1.6/ja/System.Text.RegularExpressions.xml", "ref/netstandard1.6/ko/System.Text.RegularExpressions.xml", "ref/netstandard1.6/ru/System.Text.RegularExpressions.xml", "ref/netstandard1.6/zh-hans/System.Text.RegularExpressions.xml", "ref/netstandard1.6/zh-hant/System.Text.RegularExpressions.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.text.regularexpressions.4.1.0.nupkg.sha512", "system.text.regularexpressions.nuspec" ] }, "System.Threading/4.3.0": { "sha512": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "type": "package", "path": "system.threading/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/netcore50/System.Threading.dll", "lib/netstandard1.3/System.Threading.dll", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/netcore50/System.Threading.dll", "ref/netcore50/System.Threading.xml", "ref/netcore50/de/System.Threading.xml", "ref/netcore50/es/System.Threading.xml", "ref/netcore50/fr/System.Threading.xml", "ref/netcore50/it/System.Threading.xml", "ref/netcore50/ja/System.Threading.xml", "ref/netcore50/ko/System.Threading.xml", "ref/netcore50/ru/System.Threading.xml", "ref/netcore50/zh-hans/System.Threading.xml", "ref/netcore50/zh-hant/System.Threading.xml", "ref/netstandard1.0/System.Threading.dll", "ref/netstandard1.0/System.Threading.xml", "ref/netstandard1.0/de/System.Threading.xml", "ref/netstandard1.0/es/System.Threading.xml", "ref/netstandard1.0/fr/System.Threading.xml", "ref/netstandard1.0/it/System.Threading.xml", "ref/netstandard1.0/ja/System.Threading.xml", "ref/netstandard1.0/ko/System.Threading.xml", "ref/netstandard1.0/ru/System.Threading.xml", "ref/netstandard1.0/zh-hans/System.Threading.xml", "ref/netstandard1.0/zh-hant/System.Threading.xml", "ref/netstandard1.3/System.Threading.dll", "ref/netstandard1.3/System.Threading.xml", "ref/netstandard1.3/de/System.Threading.xml", "ref/netstandard1.3/es/System.Threading.xml", "ref/netstandard1.3/fr/System.Threading.xml", "ref/netstandard1.3/it/System.Threading.xml", "ref/netstandard1.3/ja/System.Threading.xml", "ref/netstandard1.3/ko/System.Threading.xml", "ref/netstandard1.3/ru/System.Threading.xml", "ref/netstandard1.3/zh-hans/System.Threading.xml", "ref/netstandard1.3/zh-hant/System.Threading.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "runtimes/aot/lib/netcore50/System.Threading.dll", "system.threading.4.3.0.nupkg.sha512", "system.threading.nuspec" ] }, "System.Threading.Overlapped/4.3.0": { "sha512": "m3HQ2dPiX/DSTpf+yJt8B0c+SRvzfqAJKx+QDWi+VLhz8svLT23MVjEOHPF/KiSLeArKU/iHescrbLd3yVgyNg==", "type": "package", "path": "system.threading.overlapped/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/net46/System.Threading.Overlapped.dll", "ref/net46/System.Threading.Overlapped.dll", "ref/netstandard1.3/System.Threading.Overlapped.dll", "ref/netstandard1.3/System.Threading.Overlapped.xml", "ref/netstandard1.3/de/System.Threading.Overlapped.xml", "ref/netstandard1.3/es/System.Threading.Overlapped.xml", "ref/netstandard1.3/fr/System.Threading.Overlapped.xml", "ref/netstandard1.3/it/System.Threading.Overlapped.xml", "ref/netstandard1.3/ja/System.Threading.Overlapped.xml", "ref/netstandard1.3/ko/System.Threading.Overlapped.xml", "ref/netstandard1.3/ru/System.Threading.Overlapped.xml", "ref/netstandard1.3/zh-hans/System.Threading.Overlapped.xml", "ref/netstandard1.3/zh-hant/System.Threading.Overlapped.xml", "runtimes/unix/lib/netstandard1.3/System.Threading.Overlapped.dll", "runtimes/win/lib/net46/System.Threading.Overlapped.dll", "runtimes/win/lib/netcore50/System.Threading.Overlapped.dll", "runtimes/win/lib/netstandard1.3/System.Threading.Overlapped.dll", "system.threading.overlapped.4.3.0.nupkg.sha512", "system.threading.overlapped.nuspec" ] }, "System.Threading.Tasks/4.3.0": { "sha512": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "type": "package", "path": "system.threading.tasks/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/netcore50/System.Threading.Tasks.dll", "ref/netcore50/System.Threading.Tasks.xml", "ref/netcore50/de/System.Threading.Tasks.xml", "ref/netcore50/es/System.Threading.Tasks.xml", "ref/netcore50/fr/System.Threading.Tasks.xml", "ref/netcore50/it/System.Threading.Tasks.xml", "ref/netcore50/ja/System.Threading.Tasks.xml", "ref/netcore50/ko/System.Threading.Tasks.xml", "ref/netcore50/ru/System.Threading.Tasks.xml", "ref/netcore50/zh-hans/System.Threading.Tasks.xml", "ref/netcore50/zh-hant/System.Threading.Tasks.xml", "ref/netstandard1.0/System.Threading.Tasks.dll", "ref/netstandard1.0/System.Threading.Tasks.xml", "ref/netstandard1.0/de/System.Threading.Tasks.xml", "ref/netstandard1.0/es/System.Threading.Tasks.xml", "ref/netstandard1.0/fr/System.Threading.Tasks.xml", "ref/netstandard1.0/it/System.Threading.Tasks.xml", "ref/netstandard1.0/ja/System.Threading.Tasks.xml", "ref/netstandard1.0/ko/System.Threading.Tasks.xml", "ref/netstandard1.0/ru/System.Threading.Tasks.xml", "ref/netstandard1.0/zh-hans/System.Threading.Tasks.xml", "ref/netstandard1.0/zh-hant/System.Threading.Tasks.xml", "ref/netstandard1.3/System.Threading.Tasks.dll", "ref/netstandard1.3/System.Threading.Tasks.xml", "ref/netstandard1.3/de/System.Threading.Tasks.xml", "ref/netstandard1.3/es/System.Threading.Tasks.xml", "ref/netstandard1.3/fr/System.Threading.Tasks.xml", "ref/netstandard1.3/it/System.Threading.Tasks.xml", "ref/netstandard1.3/ja/System.Threading.Tasks.xml", "ref/netstandard1.3/ko/System.Threading.Tasks.xml", "ref/netstandard1.3/ru/System.Threading.Tasks.xml", "ref/netstandard1.3/zh-hans/System.Threading.Tasks.xml", "ref/netstandard1.3/zh-hant/System.Threading.Tasks.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.threading.tasks.4.3.0.nupkg.sha512", "system.threading.tasks.nuspec" ] }, "System.Threading.Tasks.Extensions/4.0.0": { "sha512": "pH4FZDsZQ/WmgJtN4LWYmRdJAEeVkyriSwrv2Teoe5FOU0Yxlb6II6GL8dBPOfRmutHGATduj3ooMt7dJ2+i+w==", "type": "package", "path": "system.threading.tasks.extensions/4.0.0", "files": [ ".nupkg.metadata", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/netstandard1.0/System.Threading.Tasks.Extensions.dll", "lib/netstandard1.0/System.Threading.Tasks.Extensions.xml", "lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll", "lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml", "system.threading.tasks.extensions.4.0.0.nupkg.sha512", "system.threading.tasks.extensions.nuspec" ] }, "System.Threading.Thread/4.3.0": { "sha512": "OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==", "type": "package", "path": "system.threading.thread/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net46/System.Threading.Thread.dll", "lib/netcore50/_._", "lib/netstandard1.3/System.Threading.Thread.dll", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net46/System.Threading.Thread.dll", "ref/netstandard1.3/System.Threading.Thread.dll", "ref/netstandard1.3/System.Threading.Thread.xml", "ref/netstandard1.3/de/System.Threading.Thread.xml", "ref/netstandard1.3/es/System.Threading.Thread.xml", "ref/netstandard1.3/fr/System.Threading.Thread.xml", "ref/netstandard1.3/it/System.Threading.Thread.xml", "ref/netstandard1.3/ja/System.Threading.Thread.xml", "ref/netstandard1.3/ko/System.Threading.Thread.xml", "ref/netstandard1.3/ru/System.Threading.Thread.xml", "ref/netstandard1.3/zh-hans/System.Threading.Thread.xml", "ref/netstandard1.3/zh-hant/System.Threading.Thread.xml", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.threading.thread.4.3.0.nupkg.sha512", "system.threading.thread.nuspec" ] }, "System.Threading.ThreadPool/4.3.0": { "sha512": "k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==", "type": "package", "path": "system.threading.threadpool/4.3.0", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net46/System.Threading.ThreadPool.dll", "lib/netcore50/_._", "lib/netstandard1.3/System.Threading.ThreadPool.dll", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net46/System.Threading.ThreadPool.dll", "ref/netstandard1.3/System.Threading.ThreadPool.dll", "ref/netstandard1.3/System.Threading.ThreadPool.xml", "ref/netstandard1.3/de/System.Threading.ThreadPool.xml", "ref/netstandard1.3/es/System.Threading.ThreadPool.xml", "ref/netstandard1.3/fr/System.Threading.ThreadPool.xml", "ref/netstandard1.3/it/System.Threading.ThreadPool.xml", "ref/netstandard1.3/ja/System.Threading.ThreadPool.xml", "ref/netstandard1.3/ko/System.Threading.ThreadPool.xml", "ref/netstandard1.3/ru/System.Threading.ThreadPool.xml", "ref/netstandard1.3/zh-hans/System.Threading.ThreadPool.xml", "ref/netstandard1.3/zh-hant/System.Threading.ThreadPool.xml", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.threading.threadpool.4.3.0.nupkg.sha512", "system.threading.threadpool.nuspec" ] }, "System.Threading.Timer/4.0.1": { "sha512": "saGfUV8uqVW6LeURiqxcGhZ24PzuRNaUBtbhVeuUAvky1naH395A/1nY0P2bWvrw/BreRtIB/EzTDkGBpqCwEw==", "type": "package", "path": "system.threading.timer/4.0.1", "files": [ ".nupkg.metadata", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net451/_._", "lib/portable-net451+win81+wpa81/_._", "lib/win81/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net451/_._", "ref/netcore50/System.Threading.Timer.dll", "ref/netcore50/System.Threading.Timer.xml", "ref/netcore50/de/System.Threading.Timer.xml", "ref/netcore50/es/System.Threading.Timer.xml", "ref/netcore50/fr/System.Threading.Timer.xml", "ref/netcore50/it/System.Threading.Timer.xml", "ref/netcore50/ja/System.Threading.Timer.xml", "ref/netcore50/ko/System.Threading.Timer.xml", "ref/netcore50/ru/System.Threading.Timer.xml", "ref/netcore50/zh-hans/System.Threading.Timer.xml", "ref/netcore50/zh-hant/System.Threading.Timer.xml", "ref/netstandard1.2/System.Threading.Timer.dll", "ref/netstandard1.2/System.Threading.Timer.xml", "ref/netstandard1.2/de/System.Threading.Timer.xml", "ref/netstandard1.2/es/System.Threading.Timer.xml", "ref/netstandard1.2/fr/System.Threading.Timer.xml", "ref/netstandard1.2/it/System.Threading.Timer.xml", "ref/netstandard1.2/ja/System.Threading.Timer.xml", "ref/netstandard1.2/ko/System.Threading.Timer.xml", "ref/netstandard1.2/ru/System.Threading.Timer.xml", "ref/netstandard1.2/zh-hans/System.Threading.Timer.xml", "ref/netstandard1.2/zh-hant/System.Threading.Timer.xml", "ref/portable-net451+win81+wpa81/_._", "ref/win81/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.threading.timer.4.0.1.nupkg.sha512", "system.threading.timer.nuspec" ] }, "System.Xml.ReaderWriter/4.0.11": { "sha512": "ZIiLPsf67YZ9zgr31vzrFaYQqxRPX9cVHjtPSnmx4eN6lbS/yEyYNr2vs1doGDEscF0tjCZFsk9yUg1sC9e8tg==", "type": "package", "path": "system.xml.readerwriter/4.0.11", "files": [ ".nupkg.metadata", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net45/_._", "lib/netcore50/System.Xml.ReaderWriter.dll", "lib/netstandard1.3/System.Xml.ReaderWriter.dll", "lib/portable-net45+win8+wp8+wpa81/_._", "lib/win8/_._", "lib/wp80/_._", "lib/wpa81/_._", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net45/_._", "ref/netcore50/System.Xml.ReaderWriter.dll", "ref/netcore50/System.Xml.ReaderWriter.xml", "ref/netcore50/de/System.Xml.ReaderWriter.xml", "ref/netcore50/es/System.Xml.ReaderWriter.xml", "ref/netcore50/fr/System.Xml.ReaderWriter.xml", "ref/netcore50/it/System.Xml.ReaderWriter.xml", "ref/netcore50/ja/System.Xml.ReaderWriter.xml", "ref/netcore50/ko/System.Xml.ReaderWriter.xml", "ref/netcore50/ru/System.Xml.ReaderWriter.xml", "ref/netcore50/zh-hans/System.Xml.ReaderWriter.xml", "ref/netcore50/zh-hant/System.Xml.ReaderWriter.xml", "ref/netstandard1.0/System.Xml.ReaderWriter.dll", "ref/netstandard1.0/System.Xml.ReaderWriter.xml", "ref/netstandard1.0/de/System.Xml.ReaderWriter.xml", "ref/netstandard1.0/es/System.Xml.ReaderWriter.xml", "ref/netstandard1.0/fr/System.Xml.ReaderWriter.xml", "ref/netstandard1.0/it/System.Xml.ReaderWriter.xml", "ref/netstandard1.0/ja/System.Xml.ReaderWriter.xml", "ref/netstandard1.0/ko/System.Xml.ReaderWriter.xml", "ref/netstandard1.0/ru/System.Xml.ReaderWriter.xml", "ref/netstandard1.0/zh-hans/System.Xml.ReaderWriter.xml", "ref/netstandard1.0/zh-hant/System.Xml.ReaderWriter.xml", "ref/netstandard1.3/System.Xml.ReaderWriter.dll", "ref/netstandard1.3/System.Xml.ReaderWriter.xml", "ref/netstandard1.3/de/System.Xml.ReaderWriter.xml", "ref/netstandard1.3/es/System.Xml.ReaderWriter.xml", "ref/netstandard1.3/fr/System.Xml.ReaderWriter.xml", "ref/netstandard1.3/it/System.Xml.ReaderWriter.xml", "ref/netstandard1.3/ja/System.Xml.ReaderWriter.xml", "ref/netstandard1.3/ko/System.Xml.ReaderWriter.xml", "ref/netstandard1.3/ru/System.Xml.ReaderWriter.xml", "ref/netstandard1.3/zh-hans/System.Xml.ReaderWriter.xml", "ref/netstandard1.3/zh-hant/System.Xml.ReaderWriter.xml", "ref/portable-net45+win8+wp8+wpa81/_._", "ref/win8/_._", "ref/wp80/_._", "ref/wpa81/_._", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.xml.readerwriter.4.0.11.nupkg.sha512", "system.xml.readerwriter.nuspec" ] }, "System.Xml.XmlDocument/4.0.1": { "sha512": "2eZu6IP+etFVBBFUFzw2w6J21DqIN5eL9Y8r8JfJWUmV28Z5P0SNU01oCisVHQgHsDhHPnmq2s1hJrJCFZWloQ==", "type": "package", "path": "system.xml.xmldocument/4.0.1", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net46/System.Xml.XmlDocument.dll", "lib/netstandard1.3/System.Xml.XmlDocument.dll", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net46/System.Xml.XmlDocument.dll", "ref/netstandard1.3/System.Xml.XmlDocument.dll", "ref/netstandard1.3/System.Xml.XmlDocument.xml", "ref/netstandard1.3/de/System.Xml.XmlDocument.xml", "ref/netstandard1.3/es/System.Xml.XmlDocument.xml", "ref/netstandard1.3/fr/System.Xml.XmlDocument.xml", "ref/netstandard1.3/it/System.Xml.XmlDocument.xml", "ref/netstandard1.3/ja/System.Xml.XmlDocument.xml", "ref/netstandard1.3/ko/System.Xml.XmlDocument.xml", "ref/netstandard1.3/ru/System.Xml.XmlDocument.xml", "ref/netstandard1.3/zh-hans/System.Xml.XmlDocument.xml", "ref/netstandard1.3/zh-hant/System.Xml.XmlDocument.xml", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.xml.xmldocument.4.0.1.nupkg.sha512", "system.xml.xmldocument.nuspec" ] }, "System.Xml.XPath/4.0.1": { "sha512": "UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==", "type": "package", "path": "system.xml.xpath/4.0.1", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/net46/System.Xml.XPath.dll", "lib/netstandard1.3/System.Xml.XPath.dll", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/net46/System.Xml.XPath.dll", "ref/netstandard1.3/System.Xml.XPath.dll", "ref/netstandard1.3/System.Xml.XPath.xml", "ref/netstandard1.3/de/System.Xml.XPath.xml", "ref/netstandard1.3/es/System.Xml.XPath.xml", "ref/netstandard1.3/fr/System.Xml.XPath.xml", "ref/netstandard1.3/it/System.Xml.XPath.xml", "ref/netstandard1.3/ja/System.Xml.XPath.xml", "ref/netstandard1.3/ko/System.Xml.XPath.xml", "ref/netstandard1.3/ru/System.Xml.XPath.xml", "ref/netstandard1.3/zh-hans/System.Xml.XPath.xml", "ref/netstandard1.3/zh-hant/System.Xml.XPath.xml", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.xml.xpath.4.0.1.nupkg.sha512", "system.xml.xpath.nuspec" ] }, "System.Xml.XPath.XmlDocument/4.0.1": { "sha512": "Zm2BdeanuncYs3NhCj4c9e1x3EXFzFBVv2wPEc/Dj4ZbI9R8ecLSR5frAsx4zJCPBtKQreQ7Q/KxJEohJZbfzA==", "type": "package", "path": "system.xml.xpath.xmldocument/4.0.1", "files": [ ".nupkg.metadata", ".signature.p7s", "ThirdPartyNotices.txt", "dotnet_library_license.txt", "lib/MonoAndroid10/_._", "lib/MonoTouch10/_._", "lib/netstandard1.3/System.Xml.XPath.XmlDocument.dll", "lib/xamarinios10/_._", "lib/xamarinmac20/_._", "lib/xamarintvos10/_._", "lib/xamarinwatchos10/_._", "ref/MonoAndroid10/_._", "ref/MonoTouch10/_._", "ref/netstandard1.3/System.Xml.XPath.XmlDocument.dll", "ref/netstandard1.3/System.Xml.XPath.XmlDocument.xml", "ref/netstandard1.3/de/System.Xml.XPath.XmlDocument.xml", "ref/netstandard1.3/es/System.Xml.XPath.XmlDocument.xml", "ref/netstandard1.3/fr/System.Xml.XPath.XmlDocument.xml", "ref/netstandard1.3/it/System.Xml.XPath.XmlDocument.xml", "ref/netstandard1.3/ja/System.Xml.XPath.XmlDocument.xml", "ref/netstandard1.3/ko/System.Xml.XPath.XmlDocument.xml", "ref/netstandard1.3/ru/System.Xml.XPath.XmlDocument.xml", "ref/netstandard1.3/zh-hans/System.Xml.XPath.XmlDocument.xml", "ref/netstandard1.3/zh-hant/System.Xml.XPath.XmlDocument.xml", "ref/xamarinios10/_._", "ref/xamarinmac20/_._", "ref/xamarintvos10/_._", "ref/xamarinwatchos10/_._", "system.xml.xpath.xmldocument.4.0.1.nupkg.sha512", "system.xml.xpath.xmldocument.nuspec" ] } }, "projectFileDependencyGroups": { ".NETStandard,Version=v2.0": [ "DotNetty.Buffers >= 0.6.0", "MySql.Data >= 8.0.19", "NETStandard.Library >= 2.0.3", "Newtonsoft.Json >= 12.0.2" ] }, "packageFolders": { "C:\\Users\\Vitalik\\.nuget\\packages\\": {}, "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder": {} }, "project": { "version": "1.0.0", "restore": { "projectUniqueName": "C:\\Users\\Vitalik\\Desktop\\Source\\BrawlStars.Utilities\\BrawlStars.Utilities.csproj", "projectName": "BrawlStars.Utilities", "projectPath": "C:\\Users\\Vitalik\\Desktop\\Source\\BrawlStars.Utilities\\BrawlStars.Utilities.csproj", "packagesPath": "C:\\Users\\Vitalik\\.nuget\\packages\\", "outputPath": "C:\\Users\\Vitalik\\Desktop\\Source\\BrawlStars.Utilities\\obj\\", "projectStyle": "PackageReference", "fallbackFolders": [ "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder" ], "configFilePaths": [ "C:\\Users\\Vitalik\\AppData\\Roaming\\NuGet\\NuGet.Config", "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" ], "originalTargetFrameworks": [ "netstandard2.0" ], "sources": { "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, "https://api.nuget.org/v3/index.json": {} }, "frameworks": { "netstandard2.0": { "projectReferences": {} } }, "warningProperties": { "warnAsError": [ "NU1605" ] } }, "frameworks": { "netstandard2.0": { "dependencies": { "DotNetty.Buffers": { "target": "Package", "version": "[0.6.0, )" }, "MySql.Data": { "target": "Package", "version": "[8.0.19, )" }, "NETStandard.Library": { "suppressParent": "All", "target": "Package", "version": "[2.0.3, )", "autoReferenced": true }, "Newtonsoft.Json": { "target": "Package", "version": "[12.0.2, )" } }, "imports": [ "net461", "net462", "net47", "net471", "net472", "net48" ], "assetTargetFallback": true, "warn": true, "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.201\\RuntimeIdentifierGraph.json" } } } } ================================================ FILE: Source/BrawlStars.Utilities/obj/project.nuget.cache ================================================ { "version": 2, "dgSpecHash": "DZonxFF3ibTHeCXQ8CghfnD3w0he6BK8Chrk8rDVWgEnUeK/EIZLIpnLkP6xnhGi/CMx3jl2oTfNM6M3us8U9g==", "success": true, "projectFilePath": "C:\\Users\\Vitalik\\Desktop\\Source\\BrawlStars.Utilities\\BrawlStars.Utilities.csproj", "expectedPackageFiles": [ "C:\\Users\\Vitalik\\.nuget\\packages\\bouncycastle.netcore\\1.8.3\\bouncycastle.netcore.1.8.3.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\dotnetty.buffers\\0.6.0\\dotnetty.buffers.0.6.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\dotnetty.common\\0.6.0\\dotnetty.common.0.6.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\google.protobuf\\3.6.1\\google.protobuf.3.6.1.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\microsoft.csharp\\4.0.1\\microsoft.csharp.4.0.1.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\1.1.0\\microsoft.extensions.dependencyinjection.abstractions.1.1.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\microsoft.extensions.logging\\1.1.1\\microsoft.extensions.logging.1.1.1.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\1.1.1\\microsoft.extensions.logging.abstractions.1.1.1.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\microsoft.netcore.platforms\\1.1.0\\microsoft.netcore.platforms.1.1.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\microsoft.win32.primitives\\4.3.0\\microsoft.win32.primitives.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\mysql.data\\8.0.19\\mysql.data.8.0.19.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\netstandard.library\\2.0.3\\netstandard.library.2.0.3.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\newtonsoft.json\\12.0.2\\newtonsoft.json.12.0.2.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\runtime.native.system\\4.3.0\\runtime.native.system.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\runtime.native.system.security.cryptography\\4.0.0\\runtime.native.system.security.cryptography.4.0.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\ssh.net\\2016.1.0\\ssh.net.2016.1.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\sshnet.security.cryptography\\1.2.0\\sshnet.security.cryptography.1.2.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.collections\\4.3.0\\system.collections.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.collections.concurrent\\4.0.12\\system.collections.concurrent.4.0.12.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.componentmodel\\4.3.0\\system.componentmodel.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.configuration.configurationmanager\\4.4.1\\system.configuration.configurationmanager.4.4.1.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.diagnostics.contracts\\4.3.0\\system.diagnostics.contracts.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.diagnostics.debug\\4.3.0\\system.diagnostics.debug.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.diagnostics.tools\\4.0.1\\system.diagnostics.tools.4.0.1.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.diagnostics.tracesource\\4.0.0\\system.diagnostics.tracesource.4.0.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.diagnostics.tracing\\4.3.0\\system.diagnostics.tracing.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.dynamic.runtime\\4.0.11\\system.dynamic.runtime.4.0.11.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.globalization\\4.3.0\\system.globalization.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.io\\4.3.0\\system.io.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.io.filesystem\\4.3.0\\system.io.filesystem.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.io.filesystem.primitives\\4.3.0\\system.io.filesystem.primitives.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.linq\\4.3.0\\system.linq.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.linq.expressions\\4.1.0\\system.linq.expressions.4.1.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.net.nameresolution\\4.0.0\\system.net.nameresolution.4.0.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.net.networkinformation\\4.3.0\\system.net.networkinformation.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.net.primitives\\4.3.0\\system.net.primitives.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.net.sockets\\4.3.0\\system.net.sockets.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.objectmodel\\4.0.12\\system.objectmodel.4.0.12.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.reflection\\4.3.0\\system.reflection.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.reflection.emit\\4.0.1\\system.reflection.emit.4.0.1.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.reflection.emit.ilgeneration\\4.0.1\\system.reflection.emit.ilgeneration.4.0.1.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.reflection.emit.lightweight\\4.0.1\\system.reflection.emit.lightweight.4.0.1.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.reflection.extensions\\4.0.1\\system.reflection.extensions.4.0.1.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.reflection.primitives\\4.3.0\\system.reflection.primitives.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.reflection.typeextensions\\4.1.0\\system.reflection.typeextensions.4.1.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.resources.resourcemanager\\4.3.0\\system.resources.resourcemanager.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\4.5.2\\system.runtime.compilerservices.unsafe.4.5.2.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.runtime.extensions\\4.3.0\\system.runtime.extensions.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.runtime.handles\\4.3.0\\system.runtime.handles.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.runtime.interopservices\\4.3.0\\system.runtime.interopservices.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.runtime.numerics\\4.0.1\\system.runtime.numerics.4.0.1.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.security.accesscontrol\\4.6.0\\system.security.accesscontrol.4.6.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.security.cryptography.algorithms\\4.2.0\\system.security.cryptography.algorithms.4.2.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.security.cryptography.encoding\\4.0.0\\system.security.cryptography.encoding.4.0.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.security.cryptography.primitives\\4.0.0\\system.security.cryptography.primitives.4.0.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.security.cryptography.protecteddata\\4.4.0\\system.security.cryptography.protecteddata.4.4.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.security.permissions\\4.6.0\\system.security.permissions.4.6.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.security.principal.windows\\4.6.0\\system.security.principal.windows.4.6.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.text.encoding\\4.3.0\\system.text.encoding.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.text.encoding.codepages\\4.4.0\\system.text.encoding.codepages.4.4.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.text.encoding.extensions\\4.0.11\\system.text.encoding.extensions.4.0.11.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.text.regularexpressions\\4.1.0\\system.text.regularexpressions.4.1.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.threading\\4.3.0\\system.threading.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.threading.overlapped\\4.3.0\\system.threading.overlapped.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.threading.tasks\\4.3.0\\system.threading.tasks.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.threading.tasks.extensions\\4.0.0\\system.threading.tasks.extensions.4.0.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.threading.thread\\4.3.0\\system.threading.thread.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.threading.threadpool\\4.3.0\\system.threading.threadpool.4.3.0.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.threading.timer\\4.0.1\\system.threading.timer.4.0.1.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.xml.readerwriter\\4.0.11\\system.xml.readerwriter.4.0.11.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.xml.xmldocument\\4.0.1\\system.xml.xmldocument.4.0.1.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.xml.xpath\\4.0.1\\system.xml.xpath.4.0.1.nupkg.sha512", "C:\\Users\\Vitalik\\.nuget\\packages\\system.xml.xpath.xmldocument\\4.0.1\\system.xml.xpath.xmldocument.4.0.1.nupkg.sha512" ], "logs": [] } ================================================ FILE: Source/BrawlStars.sln ================================================ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.28809.33 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BrawlStars", "BrawlStars\BrawlStars.csproj", "{9D0CA4C8-4661-4D51-AE5D-5EDB16C9C796}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BrawlStars.Utilities", "BrawlStars.Utilities\BrawlStars.Utilities.csproj", "{7F835EF1-3FC7-40A5-81C4-502071DBEB1F}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {9D0CA4C8-4661-4D51-AE5D-5EDB16C9C796}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9D0CA4C8-4661-4D51-AE5D-5EDB16C9C796}.Debug|Any CPU.Build.0 = Debug|Any CPU {9D0CA4C8-4661-4D51-AE5D-5EDB16C9C796}.Release|Any CPU.ActiveCfg = Release|Any CPU {9D0CA4C8-4661-4D51-AE5D-5EDB16C9C796}.Release|Any CPU.Build.0 = Release|Any CPU {7F835EF1-3FC7-40A5-81C4-502071DBEB1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7F835EF1-3FC7-40A5-81C4-502071DBEB1F}.Debug|Any CPU.Build.0 = Debug|Any CPU {7F835EF1-3FC7-40A5-81C4-502071DBEB1F}.Release|Any CPU.ActiveCfg = Release|Any CPU {7F835EF1-3FC7-40A5-81C4-502071DBEB1F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {EAFDB0A5-529C-498E-8A90-5389E2B0CF3B} EndGlobalSection EndGlobal