Compare commits
	
		
			14 Commits
		
	
	
		
			20180821-3
			...
			2021-02-25
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 63de1f5ab5 | ||
|  | 642aec419a | ||
|  | caf6e24d04 | ||
|  | 31a938693a | ||
|  | 45c89704f0 | ||
|  | 8d3a0e92de | ||
|  | db78e3dcdb | ||
|  | da1deecb4c | ||
|  | df30ce9477 | ||
|  | b2defa0eec | ||
|  | 4880b5c0c3 | ||
|  | 114856e529 | ||
|  | 589ab5f19a | ||
|  | bbb2b57328 | 
							
								
								
									
										445
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						| @@ -1,15 +1,12 @@ | |||||||
| (This file copied from Digilines mod) | License for code: LGPL 3.0 | ||||||
|  | License for media and all other assets:  CC-by-SA 4.0 | ||||||
|  |  | ||||||
| The LGPLv3 applies to all code in this project. | ############################################################################### | ||||||
| The WTFPL applies to textures and any other content in this project which is |  | ||||||
| not source code. |  | ||||||
|  |  | ||||||
| ============================================================= |                    GNU LESSER GENERAL PUBLIC LICENSE | ||||||
|  |  | ||||||
| GNU LESSER GENERAL PUBLIC LICENSE |  | ||||||
|                        Version 3, 29 June 2007 |                        Version 3, 29 June 2007 | ||||||
|  |  | ||||||
|  Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> |  Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> | ||||||
|  Everyone is permitted to copy and distribute verbatim copies |  Everyone is permitted to copy and distribute verbatim copies | ||||||
|  of this license document, but changing it is not allowed. |  of this license document, but changing it is not allowed. | ||||||
|  |  | ||||||
| @@ -172,20 +169,432 @@ apply, that proxy's public statement of acceptance of any version is | |||||||
| permanent authorization for you to choose that version for the | permanent authorization for you to choose that version for the | ||||||
| Library. | Library. | ||||||
|  |  | ||||||
|  | ############################################################################### | ||||||
|  |  | ||||||
| ============================================================= | Attribution-ShareAlike 4.0 International | ||||||
|  |  | ||||||
|  | ======================================================================= | ||||||
|  |  | ||||||
|  | Creative Commons Corporation ("Creative Commons") is not a law firm and | ||||||
|  | does not provide legal services or legal advice. Distribution of | ||||||
|  | Creative Commons public licenses does not create a lawyer-client or | ||||||
|  | other relationship. Creative Commons makes its licenses and related | ||||||
|  | information available on an "as-is" basis. Creative Commons gives no | ||||||
|  | warranties regarding its licenses, any material licensed under their | ||||||
|  | terms and conditions, or any related information. Creative Commons | ||||||
|  | disclaims all liability for damages resulting from their use to the | ||||||
|  | fullest extent possible. | ||||||
|  |  | ||||||
|  | Using Creative Commons Public Licenses | ||||||
|  |  | ||||||
|  | Creative Commons public licenses provide a standard set of terms and | ||||||
|  | conditions that creators and other rights holders may use to share | ||||||
|  | original works of authorship and other material subject to copyright | ||||||
|  | and certain other rights specified in the public license below. The | ||||||
|  | following considerations are for informational purposes only, are not | ||||||
|  | exhaustive, and do not form part of our licenses. | ||||||
|  |  | ||||||
|  |      Considerations for licensors: Our public licenses are | ||||||
|  |      intended for use by those authorized to give the public | ||||||
|  |      permission to use material in ways otherwise restricted by | ||||||
|  |      copyright and certain other rights. Our licenses are | ||||||
|  |      irrevocable. Licensors should read and understand the terms | ||||||
|  |      and conditions of the license they choose before applying it. | ||||||
|  |      Licensors should also secure all rights necessary before | ||||||
|  |      applying our licenses so that the public can reuse the | ||||||
|  |      material as expected. Licensors should clearly mark any | ||||||
|  |      material not subject to the license. This includes other CC- | ||||||
|  |      licensed material, or material used under an exception or | ||||||
|  |      limitation to copyright. More considerations for licensors: | ||||||
|  | 	wiki.creativecommons.org/Considerations_for_licensors | ||||||
|  |  | ||||||
|  |      Considerations for the public: By using one of our public | ||||||
|  |      licenses, a licensor grants the public permission to use the | ||||||
|  |      licensed material under specified terms and conditions. If | ||||||
|  |      the licensor's permission is not necessary for any reason--for | ||||||
|  |      example, because of any applicable exception or limitation to | ||||||
|  |      copyright--then that use is not regulated by the license. Our | ||||||
|  |      licenses grant only permissions under copyright and certain | ||||||
|  |      other rights that a licensor has authority to grant. Use of | ||||||
|  |      the licensed material may still be restricted for other | ||||||
|  |      reasons, including because others have copyright or other | ||||||
|  |      rights in the material. A licensor may make special requests, | ||||||
|  |      such as asking that all changes be marked or described. | ||||||
|  |      Although not required by our licenses, you are encouraged to | ||||||
|  |      respect those requests where reasonable. More considerations | ||||||
|  |      for the public:  | ||||||
|  | 	wiki.creativecommons.org/Considerations_for_licensees | ||||||
|  |  | ||||||
|  | ======================================================================= | ||||||
|  |  | ||||||
|  | Creative Commons Attribution-ShareAlike 4.0 International Public | ||||||
|  | License | ||||||
|  |  | ||||||
|  | By exercising the Licensed Rights (defined below), You accept and agree | ||||||
|  | to be bound by the terms and conditions of this Creative Commons | ||||||
|  | Attribution-ShareAlike 4.0 International Public License ("Public | ||||||
|  | License"). To the extent this Public License may be interpreted as a | ||||||
|  | contract, You are granted the Licensed Rights in consideration of Your | ||||||
|  | acceptance of these terms and conditions, and the Licensor grants You | ||||||
|  | such rights in consideration of benefits the Licensor receives from | ||||||
|  | making the Licensed Material available under these terms and | ||||||
|  | conditions. | ||||||
|  |  | ||||||
|  |  | ||||||
|  DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE  | Section 1 -- Definitions. | ||||||
|                     Version 2, December 2004  |  | ||||||
|  |  | ||||||
|  Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>  |   a. Adapted Material means material subject to Copyright and Similar | ||||||
|  |      Rights that is derived from or based upon the Licensed Material | ||||||
|  |      and in which the Licensed Material is translated, altered, | ||||||
|  |      arranged, transformed, or otherwise modified in a manner requiring | ||||||
|  |      permission under the Copyright and Similar Rights held by the | ||||||
|  |      Licensor. For purposes of this Public License, where the Licensed | ||||||
|  |      Material is a musical work, performance, or sound recording, | ||||||
|  |      Adapted Material is always produced where the Licensed Material is | ||||||
|  |      synched in timed relation with a moving image. | ||||||
|  |  | ||||||
|  Everyone is permitted to copy and distribute verbatim or modified  |   b. Adapter's License means the license You apply to Your Copyright | ||||||
|  copies of this license document, and changing it is allowed as long  |      and Similar Rights in Your contributions to Adapted Material in | ||||||
|  as the name is changed.  |      accordance with the terms and conditions of this Public License. | ||||||
|  |  | ||||||
|             DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE  |   c. BY-SA Compatible License means a license listed at | ||||||
|    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION  |      creativecommons.org/compatiblelicenses, approved by Creative | ||||||
|  |      Commons as essentially the equivalent of this Public License. | ||||||
|  |  | ||||||
|   0. You just DO WHAT THE FUCK YOU WANT TO. |   d. Copyright and Similar Rights means copyright and/or similar rights | ||||||
|  |      closely related to copyright including, without limitation, | ||||||
|  |      performance, broadcast, sound recording, and Sui Generis Database | ||||||
|  |      Rights, without regard to how the rights are labeled or | ||||||
|  |      categorized. For purposes of this Public License, the rights | ||||||
|  |      specified in Section 2(b)(1)-(2) are not Copyright and Similar | ||||||
|  |      Rights. | ||||||
|  |  | ||||||
|  |   e. Effective Technological Measures means those measures that, in the | ||||||
|  |      absence of proper authority, may not be circumvented under laws | ||||||
|  |      fulfilling obligations under Article 11 of the WIPO Copyright | ||||||
|  |      Treaty adopted on December 20, 1996, and/or similar international | ||||||
|  |      agreements. | ||||||
|  |  | ||||||
|  |   f. Exceptions and Limitations means fair use, fair dealing, and/or | ||||||
|  |      any other exception or limitation to Copyright and Similar Rights | ||||||
|  |      that applies to Your use of the Licensed Material. | ||||||
|  |  | ||||||
|  |   g. License Elements means the license attributes listed in the name | ||||||
|  |      of a Creative Commons Public License. The License Elements of this | ||||||
|  |      Public License are Attribution and ShareAlike. | ||||||
|  |  | ||||||
|  |   h. Licensed Material means the artistic or literary work, database, | ||||||
|  |      or other material to which the Licensor applied this Public | ||||||
|  |      License. | ||||||
|  |  | ||||||
|  |   i. Licensed Rights means the rights granted to You subject to the | ||||||
|  |      terms and conditions of this Public License, which are limited to | ||||||
|  |      all Copyright and Similar Rights that apply to Your use of the | ||||||
|  |      Licensed Material and that the Licensor has authority to license. | ||||||
|  |  | ||||||
|  |   j. Licensor means the individual(s) or entity(ies) granting rights | ||||||
|  |      under this Public License. | ||||||
|  |  | ||||||
|  |   k. Share means to provide material to the public by any means or | ||||||
|  |      process that requires permission under the Licensed Rights, such | ||||||
|  |      as reproduction, public display, public performance, distribution, | ||||||
|  |      dissemination, communication, or importation, and to make material | ||||||
|  |      available to the public including in ways that members of the | ||||||
|  |      public may access the material from a place and at a time | ||||||
|  |      individually chosen by them. | ||||||
|  |  | ||||||
|  |   l. Sui Generis Database Rights means rights other than copyright | ||||||
|  |      resulting from Directive 96/9/EC of the European Parliament and of | ||||||
|  |      the Council of 11 March 1996 on the legal protection of databases, | ||||||
|  |      as amended and/or succeeded, as well as other essentially | ||||||
|  |      equivalent rights anywhere in the world. | ||||||
|  |  | ||||||
|  |   m. You means the individual or entity exercising the Licensed Rights | ||||||
|  |      under this Public License. Your has a corresponding meaning. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Section 2 -- Scope. | ||||||
|  |  | ||||||
|  |   a. License grant. | ||||||
|  |  | ||||||
|  |        1. Subject to the terms and conditions of this Public License, | ||||||
|  |           the Licensor hereby grants You a worldwide, royalty-free, | ||||||
|  |           non-sublicensable, non-exclusive, irrevocable license to | ||||||
|  |           exercise the Licensed Rights in the Licensed Material to: | ||||||
|  |  | ||||||
|  |             a. reproduce and Share the Licensed Material, in whole or | ||||||
|  |                in part; and | ||||||
|  |  | ||||||
|  |             b. produce, reproduce, and Share Adapted Material. | ||||||
|  |  | ||||||
|  |        2. Exceptions and Limitations. For the avoidance of doubt, where | ||||||
|  |           Exceptions and Limitations apply to Your use, this Public | ||||||
|  |           License does not apply, and You do not need to comply with | ||||||
|  |           its terms and conditions. | ||||||
|  |  | ||||||
|  |        3. Term. The term of this Public License is specified in Section | ||||||
|  |           6(a). | ||||||
|  |  | ||||||
|  |        4. Media and formats; technical modifications allowed. The | ||||||
|  |           Licensor authorizes You to exercise the Licensed Rights in | ||||||
|  |           all media and formats whether now known or hereafter created, | ||||||
|  |           and to make technical modifications necessary to do so. The | ||||||
|  |           Licensor waives and/or agrees not to assert any right or | ||||||
|  |           authority to forbid You from making technical modifications | ||||||
|  |           necessary to exercise the Licensed Rights, including | ||||||
|  |           technical modifications necessary to circumvent Effective | ||||||
|  |           Technological Measures. For purposes of this Public License, | ||||||
|  |           simply making modifications authorized by this Section 2(a) | ||||||
|  |           (4) never produces Adapted Material. | ||||||
|  |  | ||||||
|  |        5. Downstream recipients. | ||||||
|  |  | ||||||
|  |             a. Offer from the Licensor -- Licensed Material. Every | ||||||
|  |                recipient of the Licensed Material automatically | ||||||
|  |                receives an offer from the Licensor to exercise the | ||||||
|  |                Licensed Rights under the terms and conditions of this | ||||||
|  |                Public License. | ||||||
|  |  | ||||||
|  |             b. Additional offer from the Licensor -- Adapted Material. | ||||||
|  |                Every recipient of Adapted Material from You | ||||||
|  |                automatically receives an offer from the Licensor to | ||||||
|  |                exercise the Licensed Rights in the Adapted Material | ||||||
|  |                under the conditions of the Adapter's License You apply. | ||||||
|  |  | ||||||
|  |             c. No downstream restrictions. You may not offer or impose | ||||||
|  |                any additional or different terms or conditions on, or | ||||||
|  |                apply any Effective Technological Measures to, the | ||||||
|  |                Licensed Material if doing so restricts exercise of the | ||||||
|  |                Licensed Rights by any recipient of the Licensed | ||||||
|  |                Material. | ||||||
|  |  | ||||||
|  |        6. No endorsement. Nothing in this Public License constitutes or | ||||||
|  |           may be construed as permission to assert or imply that You | ||||||
|  |           are, or that Your use of the Licensed Material is, connected | ||||||
|  |           with, or sponsored, endorsed, or granted official status by, | ||||||
|  |           the Licensor or others designated to receive attribution as | ||||||
|  |           provided in Section 3(a)(1)(A)(i). | ||||||
|  |  | ||||||
|  |   b. Other rights. | ||||||
|  |  | ||||||
|  |        1. Moral rights, such as the right of integrity, are not | ||||||
|  |           licensed under this Public License, nor are publicity, | ||||||
|  |           privacy, and/or other similar personality rights; however, to | ||||||
|  |           the extent possible, the Licensor waives and/or agrees not to | ||||||
|  |           assert any such rights held by the Licensor to the limited | ||||||
|  |           extent necessary to allow You to exercise the Licensed | ||||||
|  |           Rights, but not otherwise. | ||||||
|  |  | ||||||
|  |        2. Patent and trademark rights are not licensed under this | ||||||
|  |           Public License. | ||||||
|  |  | ||||||
|  |        3. To the extent possible, the Licensor waives any right to | ||||||
|  |           collect royalties from You for the exercise of the Licensed | ||||||
|  |           Rights, whether directly or through a collecting society | ||||||
|  |           under any voluntary or waivable statutory or compulsory | ||||||
|  |           licensing scheme. In all other cases the Licensor expressly | ||||||
|  |           reserves any right to collect such royalties. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Section 3 -- License Conditions. | ||||||
|  |  | ||||||
|  | Your exercise of the Licensed Rights is expressly made subject to the | ||||||
|  | following conditions. | ||||||
|  |  | ||||||
|  |   a. Attribution. | ||||||
|  |  | ||||||
|  |        1. If You Share the Licensed Material (including in modified | ||||||
|  |           form), You must: | ||||||
|  |  | ||||||
|  |             a. retain the following if it is supplied by the Licensor | ||||||
|  |                with the Licensed Material: | ||||||
|  |  | ||||||
|  |                  i. identification of the creator(s) of the Licensed | ||||||
|  |                     Material and any others designated to receive | ||||||
|  |                     attribution, in any reasonable manner requested by | ||||||
|  |                     the Licensor (including by pseudonym if | ||||||
|  |                     designated); | ||||||
|  |  | ||||||
|  |                 ii. a copyright notice; | ||||||
|  |  | ||||||
|  |                iii. a notice that refers to this Public License; | ||||||
|  |  | ||||||
|  |                 iv. a notice that refers to the disclaimer of | ||||||
|  |                     warranties; | ||||||
|  |  | ||||||
|  |                  v. a URI or hyperlink to the Licensed Material to the | ||||||
|  |                     extent reasonably practicable; | ||||||
|  |  | ||||||
|  |             b. indicate if You modified the Licensed Material and | ||||||
|  |                retain an indication of any previous modifications; and | ||||||
|  |  | ||||||
|  |             c. indicate the Licensed Material is licensed under this | ||||||
|  |                Public License, and include the text of, or the URI or | ||||||
|  |                hyperlink to, this Public License. | ||||||
|  |  | ||||||
|  |        2. You may satisfy the conditions in Section 3(a)(1) in any | ||||||
|  |           reasonable manner based on the medium, means, and context in | ||||||
|  |           which You Share the Licensed Material. For example, it may be | ||||||
|  |           reasonable to satisfy the conditions by providing a URI or | ||||||
|  |           hyperlink to a resource that includes the required | ||||||
|  |           information. | ||||||
|  |  | ||||||
|  |        3. If requested by the Licensor, You must remove any of the | ||||||
|  |           information required by Section 3(a)(1)(A) to the extent | ||||||
|  |           reasonably practicable. | ||||||
|  |  | ||||||
|  |   b. ShareAlike. | ||||||
|  |  | ||||||
|  |      In addition to the conditions in Section 3(a), if You Share | ||||||
|  |      Adapted Material You produce, the following conditions also apply. | ||||||
|  |  | ||||||
|  |        1. The Adapter's License You apply must be a Creative Commons | ||||||
|  |           license with the same License Elements, this version or | ||||||
|  |           later, or a BY-SA Compatible License. | ||||||
|  |  | ||||||
|  |        2. You must include the text of, or the URI or hyperlink to, the | ||||||
|  |           Adapter's License You apply. You may satisfy this condition | ||||||
|  |           in any reasonable manner based on the medium, means, and | ||||||
|  |           context in which You Share Adapted Material. | ||||||
|  |  | ||||||
|  |        3. You may not offer or impose any additional or different terms | ||||||
|  |           or conditions on, or apply any Effective Technological | ||||||
|  |           Measures to, Adapted Material that restrict exercise of the | ||||||
|  |           rights granted under the Adapter's License You apply. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Section 4 -- Sui Generis Database Rights. | ||||||
|  |  | ||||||
|  | Where the Licensed Rights include Sui Generis Database Rights that | ||||||
|  | apply to Your use of the Licensed Material: | ||||||
|  |  | ||||||
|  |   a. for the avoidance of doubt, Section 2(a)(1) grants You the right | ||||||
|  |      to extract, reuse, reproduce, and Share all or a substantial | ||||||
|  |      portion of the contents of the database; | ||||||
|  |  | ||||||
|  |   b. if You include all or a substantial portion of the database | ||||||
|  |      contents in a database in which You have Sui Generis Database | ||||||
|  |      Rights, then the database in which You have Sui Generis Database | ||||||
|  |      Rights (but not its individual contents) is Adapted Material, | ||||||
|  |  | ||||||
|  |      including for purposes of Section 3(b); and | ||||||
|  |   c. You must comply with the conditions in Section 3(a) if You Share | ||||||
|  |      all or a substantial portion of the contents of the database. | ||||||
|  |  | ||||||
|  | For the avoidance of doubt, this Section 4 supplements and does not | ||||||
|  | replace Your obligations under this Public License where the Licensed | ||||||
|  | Rights include other Copyright and Similar Rights. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Section 5 -- Disclaimer of Warranties and Limitation of Liability. | ||||||
|  |  | ||||||
|  |   a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE | ||||||
|  |      EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS | ||||||
|  |      AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF | ||||||
|  |      ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, | ||||||
|  |      IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, | ||||||
|  |      WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR | ||||||
|  |      PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, | ||||||
|  |      ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT | ||||||
|  |      KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT | ||||||
|  |      ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. | ||||||
|  |  | ||||||
|  |   b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE | ||||||
|  |      TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, | ||||||
|  |      NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, | ||||||
|  |      INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, | ||||||
|  |      COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR | ||||||
|  |      USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN | ||||||
|  |      ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR | ||||||
|  |      DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR | ||||||
|  |      IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. | ||||||
|  |  | ||||||
|  |   c. The disclaimer of warranties and limitation of liability provided | ||||||
|  |      above shall be interpreted in a manner that, to the extent | ||||||
|  |      possible, most closely approximates an absolute disclaimer and | ||||||
|  |      waiver of all liability. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Section 6 -- Term and Termination. | ||||||
|  |  | ||||||
|  |   a. This Public License applies for the term of the Copyright and | ||||||
|  |      Similar Rights licensed here. However, if You fail to comply with | ||||||
|  |      this Public License, then Your rights under this Public License | ||||||
|  |      terminate automatically. | ||||||
|  |  | ||||||
|  |   b. Where Your right to use the Licensed Material has terminated under | ||||||
|  |      Section 6(a), it reinstates: | ||||||
|  |  | ||||||
|  |        1. automatically as of the date the violation is cured, provided | ||||||
|  |           it is cured within 30 days of Your discovery of the | ||||||
|  |           violation; or | ||||||
|  |  | ||||||
|  |        2. upon express reinstatement by the Licensor. | ||||||
|  |  | ||||||
|  |      For the avoidance of doubt, this Section 6(b) does not affect any | ||||||
|  |      right the Licensor may have to seek remedies for Your violations | ||||||
|  |      of this Public License. | ||||||
|  |  | ||||||
|  |   c. For the avoidance of doubt, the Licensor may also offer the | ||||||
|  |      Licensed Material under separate terms or conditions or stop | ||||||
|  |      distributing the Licensed Material at any time; however, doing so | ||||||
|  |      will not terminate this Public License. | ||||||
|  |  | ||||||
|  |   d. Sections 1, 5, 6, 7, and 8 survive termination of this Public | ||||||
|  |      License. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Section 7 -- Other Terms and Conditions. | ||||||
|  |  | ||||||
|  |   a. The Licensor shall not be bound by any additional or different | ||||||
|  |      terms or conditions communicated by You unless expressly agreed. | ||||||
|  |  | ||||||
|  |   b. Any arrangements, understandings, or agreements regarding the | ||||||
|  |      Licensed Material not stated herein are separate from and | ||||||
|  |      independent of the terms and conditions of this Public License. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Section 8 -- Interpretation. | ||||||
|  |  | ||||||
|  |   a. For the avoidance of doubt, this Public License does not, and | ||||||
|  |      shall not be interpreted to, reduce, limit, restrict, or impose | ||||||
|  |      conditions on any use of the Licensed Material that could lawfully | ||||||
|  |      be made without permission under this Public License. | ||||||
|  |  | ||||||
|  |   b. To the extent possible, if any provision of this Public License is | ||||||
|  |      deemed unenforceable, it shall be automatically reformed to the | ||||||
|  |      minimum extent necessary to make it enforceable. If the provision | ||||||
|  |      cannot be reformed, it shall be severed from this Public License | ||||||
|  |      without affecting the enforceability of the remaining terms and | ||||||
|  |      conditions. | ||||||
|  |  | ||||||
|  |   c. No term or condition of this Public License will be waived and no | ||||||
|  |      failure to comply consented to unless expressly agreed to by the | ||||||
|  |      Licensor. | ||||||
|  |  | ||||||
|  |   d. Nothing in this Public License constitutes or may be interpreted | ||||||
|  |      as a limitation upon, or waiver of, any privileges and immunities | ||||||
|  |      that apply to the Licensor or You, including from the legal | ||||||
|  |      processes of any jurisdiction or authority. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ======================================================================= | ||||||
|  |  | ||||||
|  | Creative Commons is not a party to its public | ||||||
|  | licenses. Notwithstanding, Creative Commons may elect to apply one of | ||||||
|  | its public licenses to material it publishes and in those instances | ||||||
|  | will be considered the “Licensor.” The text of the Creative Commons | ||||||
|  | public licenses is dedicated to the public domain under the CC0 Public | ||||||
|  | Domain Dedication. Except for the limited purpose of indicating that | ||||||
|  | material is shared under a Creative Commons public license or as | ||||||
|  | otherwise permitted by the Creative Commons policies published at | ||||||
|  | creativecommons.org/policies, Creative Commons does not authorize the | ||||||
|  | use of the trademark "Creative Commons" or any other trademark or logo | ||||||
|  | of Creative Commons without its prior written consent including, | ||||||
|  | without limitation, in connection with any unauthorized modifications | ||||||
|  | to any of its public licenses or any other arrangements, | ||||||
|  | understandings, or agreements concerning use of licensed material. For | ||||||
|  | the avoidance of doubt, this paragraph does not form part of the | ||||||
|  | public licenses. | ||||||
|  |  | ||||||
|  | Creative Commons may be contacted at creativecommons.org. | ||||||
|   | |||||||
							
								
								
									
										92
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						| @@ -2,6 +2,13 @@ | |||||||
| -- by Vanessa Dannenberg | -- by Vanessa Dannenberg | ||||||
|  |  | ||||||
| led_marquee = {} | led_marquee = {} | ||||||
|  | led_marquee.scheduled_messages = {} | ||||||
|  |  | ||||||
|  | led_marquee.message_minimum_time   = tonumber(minetest.settings:get("led_marquee_message_minimum_time"))   or 0.5 | ||||||
|  |  | ||||||
|  | led_marquee.message_schedule_dtime = tonumber(minetest.settings:get("led_marquee_message_schedule_dtime")) or 0.2 | ||||||
|  | led_marquee.message_schedule_size  = tonumber(minetest.settings:get("led_marquee_message_schedule_size"))  or 10 | ||||||
|  | led_marquee.relay_timer = 0 | ||||||
|  |  | ||||||
| local S | local S | ||||||
| if minetest.get_modpath("intllib") then | if minetest.get_modpath("intllib") then | ||||||
| @@ -96,7 +103,12 @@ local char_to_color = { | |||||||
| -- the following functions based on the so-named ones in Jeija's digilines mod | -- the following functions based on the so-named ones in Jeija's digilines mod | ||||||
|  |  | ||||||
| local reset_meta = function(pos) | local reset_meta = function(pos) | ||||||
| 	minetest.get_meta(pos):set_string("formspec", "field[channel;Channel;${channel}]") | 	minetest.get_meta(pos):set_string("formspec", | ||||||
|  | 			"formspec_version[4]".. | ||||||
|  | 			"size[8,4]".. | ||||||
|  | 			"button_exit[3,2.5;2,0.5;proceed;Proceed]".. | ||||||
|  | 			"field[1.75,1.5;4.5,0.5;channel;Channel;${channel}]" | ||||||
|  | 	) | ||||||
| end | end | ||||||
|  |  | ||||||
| local on_digiline_receive_std = function(pos, node, channel, msg) | local on_digiline_receive_std = function(pos, node, channel, msg) | ||||||
| @@ -128,7 +140,12 @@ local make_iso = function(s) | |||||||
| 	local s2 = "" | 	local s2 = "" | ||||||
| 	while i <= string.len(s) do | 	while i <= string.len(s) do | ||||||
| 		if string.byte(s,i) > 159 then | 		if string.byte(s,i) > 159 then | ||||||
| 			s2 = s2..string.char(get_iso(string.sub(s, i, i+1))) | 			local ciso = get_iso(string.sub(s, i, i+1)) | ||||||
|  | 			if ciso >= 0 and ciso < 256 then | ||||||
|  | 				s2 = s2..string.char(ciso) | ||||||
|  | 			else | ||||||
|  | 				s2 = s2..string.char(127) | ||||||
|  | 			end | ||||||
| 			i = i + 2 | 			i = i + 2 | ||||||
| 		else | 		else | ||||||
| 			s2 = s2..string.sub(s, i, i) | 			s2 = s2..string.sub(s, i, i) | ||||||
| @@ -143,7 +160,7 @@ end | |||||||
| led_marquee.set_timer = function(pos, timeout) | led_marquee.set_timer = function(pos, timeout) | ||||||
| 	local timer = minetest.get_node_timer(pos) | 	local timer = minetest.get_node_timer(pos) | ||||||
| 	timer:stop() | 	timer:stop() | ||||||
| 	if not timeout or timeout < 0.2 or timeout > 5 then return false end | 	if not timeout or timeout < led_marquee.message_minimum_time or timeout > 5 then return false end | ||||||
|  |  | ||||||
| 	if timeout > 0 then | 	if timeout > 0 then | ||||||
| 		local meta = minetest.get_meta(pos) | 		local meta = minetest.get_meta(pos) | ||||||
| @@ -184,7 +201,7 @@ led_marquee.scroll_text = function(pos, elapsed, skip) | |||||||
| 			break | 			break | ||||||
| 		end | 		end | ||||||
| 	end | 	end | ||||||
| 	led_marquee.display_msg(pos, channel, "/"..colorchar..string.sub(msg, f)..string.rep(" ", skip + 1)) | 	led_marquee.schedule_msg(pos, channel, "/"..colorchar..string.sub(msg, f)..string.rep(" ", skip + 1)) | ||||||
|  |  | ||||||
| 	meta:set_int("index", f) | 	meta:set_int("index", f) | ||||||
| 	if not elapsed or elapsed < 0.2 then return false end | 	if not elapsed or elapsed < 0.2 then return false end | ||||||
| @@ -213,6 +230,27 @@ led_marquee.decode_color = function(msg) | |||||||
|  |  | ||||||
| end | end | ||||||
|  |  | ||||||
|  | minetest.register_globalstep(function(dtime) | ||||||
|  | 	if dtime <= led_marquee.message_schedule_dtime | ||||||
|  | 	  and (#led_marquee.scheduled_messages) > 0 then | ||||||
|  | 		led_marquee.display_msg( | ||||||
|  | 			led_marquee.scheduled_messages[1].pos, | ||||||
|  | 			led_marquee.scheduled_messages[1].channel, | ||||||
|  | 			led_marquee.scheduled_messages[1].msg | ||||||
|  | 		) | ||||||
|  | 	end | ||||||
|  | 	table.remove(led_marquee.scheduled_messages, 1) | ||||||
|  | end) | ||||||
|  |  | ||||||
|  | led_marquee.schedule_msg = function(pos, channel, msg) | ||||||
|  | 	local idx = #led_marquee.scheduled_messages | ||||||
|  | 	led_marquee.scheduled_messages[idx+1] = { pos=pos, channel=channel, msg=msg } | ||||||
|  |  | ||||||
|  | 	if idx >= led_marquee.message_schedule_size then | ||||||
|  | 		table.remove(led_marquee.scheduled_messages, 1) | ||||||
|  | 	end | ||||||
|  | end | ||||||
|  |  | ||||||
| led_marquee.display_msg = function(pos, channel, msg) | led_marquee.display_msg = function(pos, channel, msg) | ||||||
| 	msg = string.sub(msg, 1, 6144).." " | 	msg = string.sub(msg, 1, 6144).." " | ||||||
| 	if string.sub(msg,1,1) == string.char(255) then -- treat it as incoming UTF-8 | 	if string.sub(msg,1,1) == string.char(255) then -- treat it as incoming UTF-8 | ||||||
| @@ -312,13 +350,13 @@ local on_digiline_receive_string = function(pos, node, channel, msg) | |||||||
| 				led_marquee.set_timer(pos, 0) | 				led_marquee.set_timer(pos, 0) | ||||||
| 				msg = string.rep(" ", 2048) | 				msg = string.rep(" ", 2048) | ||||||
| 				meta:set_string("last_msg", msg) | 				meta:set_string("last_msg", msg) | ||||||
| 				led_marquee.display_msg(pos, channel, msg) | 				led_marquee.schedule_msg(pos, channel, msg) | ||||||
| 				meta:set_int("index", 1) | 				meta:set_int("index", 1) | ||||||
| 			elseif msg == "allon" then | 			elseif msg == "allon" then | ||||||
| 				led_marquee.set_timer(pos, 0) | 				led_marquee.set_timer(pos, 0) | ||||||
| 				msg = string.rep(string.char(144), 2048) | 				msg = string.rep(string.char(144), 2048) | ||||||
| 				meta:set_string("last_msg", msg) | 				meta:set_string("last_msg", msg) | ||||||
| 				led_marquee.display_msg(pos, channel, msg) | 				led_marquee.schedule_msg(pos, channel, msg) | ||||||
| 				meta:set_int("index", 1) | 				meta:set_int("index", 1) | ||||||
| 			elseif msg == "start_scroll" then | 			elseif msg == "start_scroll" then | ||||||
| 				local timeout = meta:get_int("timeout") | 				local timeout = meta:get_int("timeout") | ||||||
| @@ -327,8 +365,8 @@ local on_digiline_receive_string = function(pos, node, channel, msg) | |||||||
| 				led_marquee.set_timer(pos, 0) | 				led_marquee.set_timer(pos, 0) | ||||||
| 				return | 				return | ||||||
| 			elseif string.sub(msg, 1, 12) == "scroll_speed" then | 			elseif string.sub(msg, 1, 12) == "scroll_speed" then | ||||||
| 				local timeout = tonumber(string.sub(msg, 13)) | 				local timeout = tonumber(string.sub(msg, 13)) or 0 | ||||||
| 				led_marquee.set_timer(pos, timeout) | 				led_marquee.set_timer(pos, math.max(timeout, led_marquee.message_minimum_time)) | ||||||
| 			elseif string.sub(msg, 1, 11) == "scroll_step" then | 			elseif string.sub(msg, 1, 11) == "scroll_step" then | ||||||
| 				local skip = tonumber(string.sub(msg, 12)) | 				local skip = tonumber(string.sub(msg, 12)) | ||||||
| 				led_marquee.scroll_text(pos, nil, skip) | 				led_marquee.scroll_text(pos, nil, skip) | ||||||
| @@ -341,9 +379,12 @@ local on_digiline_receive_string = function(pos, node, channel, msg) | |||||||
| 			else | 			else | ||||||
| 				msg = string.gsub(msg, "//", string.char(30)) | 				msg = string.gsub(msg, "//", string.char(30)) | ||||||
| 				led_marquee.set_timer(pos, 0) | 				led_marquee.set_timer(pos, 0) | ||||||
|  | 				local last_msg = meta:get_string("last_msg") | ||||||
| 				meta:set_string("last_msg", msg) | 				meta:set_string("last_msg", msg) | ||||||
| 				led_marquee.display_msg(pos, channel, msg) | 				led_marquee.schedule_msg(pos, channel, msg) | ||||||
| 				meta:set_int("index", 1) | 				if last_msg ~= msg then | ||||||
|  | 					meta:set_int("index", 1) | ||||||
|  | 				end | ||||||
| 			end | 			end | ||||||
| 		else | 		else | ||||||
| 			local asc = string.byte(msg) | 			local asc = string.byte(msg) | ||||||
| @@ -355,7 +396,7 @@ local on_digiline_receive_string = function(pos, node, channel, msg) | |||||||
| 		end | 		end | ||||||
| 	elseif msg and type(msg) == "number" then | 	elseif msg and type(msg) == "number" then | ||||||
| 		meta:set_string("last_msg", tostring(msg)) | 		meta:set_string("last_msg", tostring(msg)) | ||||||
| 		led_marquee.display_msg(pos, channel, tostring(msg)) | 		led_marquee.schedule_msg(pos, channel, tostring(msg)) | ||||||
| 		meta:set_int("index", 1) | 		meta:set_int("index", 1) | ||||||
| 	end | 	end | ||||||
| end | end | ||||||
| @@ -366,23 +407,17 @@ for i = 31, 255 do | |||||||
| 	local groups = { cracky = 2, not_in_creative_inventory = 1} | 	local groups = { cracky = 2, not_in_creative_inventory = 1} | ||||||
| 	local light = LIGHT_MAX-2 | 	local light = LIGHT_MAX-2 | ||||||
| 	local description = S("LED marquee panel ("..i..")") | 	local description = S("LED marquee panel ("..i..")") | ||||||
| 	local tiles = { | 	local leds = "led_marquee_char_"..i..".png^[mask:led_marquee_leds_on.png" | ||||||
| 				{ name="led_marquee_base.png", color="white"}, |  | ||||||
| 				{ name="led_marquee_leds_off.png", color="white"}, |  | ||||||
| 				"led_marquee_char_"..i..".png", |  | ||||||
| 			} |  | ||||||
|  |  | ||||||
| 	if i == 31 then | 	if i == 31 then | ||||||
| 		tiles = { | 		leds ={ | ||||||
| 			{ name="led_marquee_base.png", color="white"}, | 			name = "led_marquee_char_31.png^[mask:led_marquee_leds_on_cursor.png", | ||||||
| 			{ name="led_marquee_leds_off.png", color="white"}, | 			animation = {type = "vertical_frames", aspect_w = 32, aspect_h = 32, length = 0.75} | ||||||
| 				{ |  | ||||||
| 				name = "led_marquee_char_31.png", |  | ||||||
| 				animation = {type = "vertical_frames", aspect_w = 32, aspect_h = 32, length = 0.75} |  | ||||||
| 				} |  | ||||||
| 		} | 		} | ||||||
| 	end | 	end | ||||||
|  |  | ||||||
|  | 	local wimage | ||||||
|  |  | ||||||
| 	if i == 32 then | 	if i == 32 then | ||||||
| 		groups = {cracky = 2} | 		groups = {cracky = 2} | ||||||
| 		light = nil | 		light = nil | ||||||
| @@ -394,7 +429,11 @@ for i = 31, 255 do | |||||||
| 		description = description, | 		description = description, | ||||||
| 		drawtype = "mesh", | 		drawtype = "mesh", | ||||||
| 		mesh = "led_marquee.obj", | 		mesh = "led_marquee.obj", | ||||||
| 		tiles = tiles, | 		tiles = { | ||||||
|  | 			{ name = "led_marquee_base.png", color = "white" }, | ||||||
|  | 			{ name = "led_marquee_leds_off.png", color = "white" } | ||||||
|  | 		}, | ||||||
|  | 		overlay_tiles = { "", leds }, | ||||||
| 		inventory_image = wimage, | 		inventory_image = wimage, | ||||||
| 		wield_image = wimage, | 		wield_image = wimage, | ||||||
| 		palette="led_marquee_palette.png", | 		palette="led_marquee_palette.png", | ||||||
| @@ -409,6 +448,11 @@ for i = 31, 255 do | |||||||
| 			reset_meta(pos) | 			reset_meta(pos) | ||||||
| 		end, | 		end, | ||||||
| 		on_receive_fields = function(pos, formname, fields, sender) | 		on_receive_fields = function(pos, formname, fields, sender) | ||||||
|  | 			local name = sender:get_player_name() | ||||||
|  | 			if minetest.is_protected(pos, name) and not minetest.check_player_privs(name, {protection_bypass=true}) then | ||||||
|  | 				minetest.record_protection_violation(pos, name) | ||||||
|  | 				return | ||||||
|  | 			end | ||||||
| 			if (fields.channel) then | 			if (fields.channel) then | ||||||
| 				minetest.get_meta(pos):set_string("channel", fields.channel) | 				minetest.get_meta(pos):set_string("channel", fields.channel) | ||||||
| 			end | 			end | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								mod.conf
									
									
									
									
									
								
							
							
						
						| @@ -1 +1,2 @@ | |||||||
| name = led_marquee | name = led_marquee | ||||||
|  | min_minetest_version = 5.2.0 | ||||||
|   | |||||||
| @@ -21,10 +21,6 @@ v -0.500000 -0.453125 0.468750 | |||||||
| v -0.500000 -0.453125 -0.468750 | v -0.500000 -0.453125 -0.468750 | ||||||
| v -0.500000 -0.437500 -0.484375 | v -0.500000 -0.437500 -0.484375 | ||||||
| v -0.500000 -0.437500 -0.500000 | v -0.500000 -0.437500 -0.500000 | ||||||
| v 0.500000 -0.449125 -0.468750 |  | ||||||
| v -0.500000 -0.449125 -0.468750 |  | ||||||
| v -0.500000 -0.449125 0.468750 |  | ||||||
| v 0.500000 -0.449125 0.468750 |  | ||||||
| vt 0.681855 0.961799 | vt 0.681855 0.961799 | ||||||
| vt 0.723891 0.992824 | vt 0.723891 0.992824 | ||||||
| vt 0.723891 0.000000 | vt 0.723891 0.000000 | ||||||
| @@ -69,10 +65,6 @@ vt 0.000000 0.000000 | |||||||
| vt 1.000000 0.000000 | vt 1.000000 0.000000 | ||||||
| vt 1.000000 1.000000 | vt 1.000000 1.000000 | ||||||
| vt 0.000000 1.000000 | vt 0.000000 1.000000 | ||||||
| vt 0.000000 0.000000 |  | ||||||
| vt 1.000000 0.000000 |  | ||||||
| vt 1.000000 1.000000 |  | ||||||
| vt 0.000000 1.000000 |  | ||||||
| vn 1.0000 0.0000 0.0000 | vn 1.0000 0.0000 0.0000 | ||||||
| vn 0.0000 -1.0000 -0.0000 | vn 0.0000 -1.0000 -0.0000 | ||||||
| vn -1.0000 0.0000 0.0000 | vn -1.0000 0.0000 0.0000 | ||||||
| @@ -106,7 +98,5 @@ f 7/26/8 6/38/8 19/19/8 | |||||||
| f 19/19/6 6/38/6 5/20/6 | f 19/19/6 6/38/6 5/20/6 | ||||||
| f 15/22/6 10/39/6 9/23/6 | f 15/22/6 10/39/6 9/23/6 | ||||||
| f 8/25/7 17/40/7 16/24/7 | f 8/25/7 17/40/7 16/24/7 | ||||||
| g Cube_Cube_LEDs_Cube_Cube_LEDs_leds_off | g Cube_Cube_LEDs_Cube_Cube_LEDs_base_led_marquee_leds_off.png | ||||||
| f 1/41/6 2/42/6 3/43/6 4/44/6 | f 1/41/6 2/42/6 3/43/6 4/44/6 | ||||||
| g Cube_Cube_LEDs_Cube_Cube_LEDs_leds_on |  | ||||||
| f 21/45/6 22/46/6 23/47/6 24/48/6 |  | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								screenshot_20180816_234431.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 649 KiB | 
							
								
								
									
										
											BIN
										
									
								
								screenshot_20180816_234431_1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 649 KiB | 
| Before Width: | Height: | Size: 419 B After Width: | Height: | Size: 208 B | 
| Before Width: | Height: | Size: 460 B After Width: | Height: | Size: 89 B | 
| Before Width: | Height: | Size: 495 B After Width: | Height: | Size: 94 B | 
| Before Width: | Height: | Size: 485 B After Width: | Height: | Size: 98 B | 
| Before Width: | Height: | Size: 493 B After Width: | Height: | Size: 92 B | 
| Before Width: | Height: | Size: 437 B After Width: | Height: | Size: 86 B | 
| Before Width: | Height: | Size: 449 B After Width: | Height: | Size: 90 B | 
| Before Width: | Height: | Size: 451 B After Width: | Height: | Size: 88 B | 
| Before Width: | Height: | Size: 298 B After Width: | Height: | Size: 89 B | 
| Before Width: | Height: | Size: 420 B After Width: | Height: | Size: 85 B | 
| Before Width: | Height: | Size: 594 B After Width: | Height: | Size: 91 B | 
| Before Width: | Height: | Size: 424 B After Width: | Height: | Size: 82 B | 
| Before Width: | Height: | Size: 429 B After Width: | Height: | Size: 85 B | 
| Before Width: | Height: | Size: 472 B After Width: | Height: | Size: 87 B | 
| Before Width: | Height: | Size: 492 B After Width: | Height: | Size: 91 B | 
| Before Width: | Height: | Size: 441 B After Width: | Height: | Size: 84 B | 
| Before Width: | Height: | Size: 450 B After Width: | Height: | Size: 89 B | 
| Before Width: | Height: | Size: 454 B After Width: | Height: | Size: 89 B | 
| Before Width: | Height: | Size: 416 B After Width: | Height: | Size: 81 B | 
| Before Width: | Height: | Size: 460 B After Width: | Height: | Size: 87 B | 
| Before Width: | Height: | Size: 486 B After Width: | Height: | Size: 93 B | 
| Before Width: | Height: | Size: 473 B After Width: | Height: | Size: 93 B | 
| Before Width: | Height: | Size: 344 B After Width: | Height: | Size: 86 B | 
| Before Width: | Height: | Size: 453 B After Width: | Height: | Size: 86 B | 
| Before Width: | Height: | Size: 445 B After Width: | Height: | Size: 88 B | 
| Before Width: | Height: | Size: 371 B After Width: | Height: | Size: 79 B | 
| Before Width: | Height: | Size: 447 B After Width: | Height: | Size: 88 B | 
| Before Width: | Height: | Size: 400 B After Width: | Height: | Size: 81 B | 
| Before Width: | Height: | Size: 568 B After Width: | Height: | Size: 93 B | 
| Before Width: | Height: | Size: 348 B After Width: | Height: | Size: 94 B | 
| Before Width: | Height: | Size: 338 B After Width: | Height: | Size: 89 B | 
| Before Width: | Height: | Size: 210 B After Width: | Height: | Size: 76 B | 
| Before Width: | Height: | Size: 279 B After Width: | Height: | Size: 79 B | 
| Before Width: | Height: | Size: 262 B After Width: | Height: | Size: 78 B | 
| Before Width: | Height: | Size: 274 B After Width: | Height: | Size: 78 B | 
| Before Width: | Height: | Size: 276 B After Width: | Height: | Size: 83 B | 
| Before Width: | Height: | Size: 268 B After Width: | Height: | Size: 84 B | 
| Before Width: | Height: | Size: 302 B After Width: | Height: | Size: 83 B | 
| Before Width: | Height: | Size: 268 B After Width: | Height: | Size: 81 B | 
| Before Width: | Height: | Size: 451 B After Width: | Height: | Size: 84 B | 
| Before Width: | Height: | Size: 272 B After Width: | Height: | Size: 83 B | 
| Before Width: | Height: | Size: 306 B After Width: | Height: | Size: 84 B | 
| Before Width: | Height: | Size: 305 B After Width: | Height: | Size: 84 B | 
| Before Width: | Height: | Size: 302 B After Width: | Height: | Size: 81 B | 
| Before Width: | Height: | Size: 352 B After Width: | Height: | Size: 84 B | 
| Before Width: | Height: | Size: 270 B After Width: | Height: | Size: 75 B | 
| Before Width: | Height: | Size: 336 B After Width: | Height: | Size: 95 B | 
| Before Width: | Height: | Size: 318 B After Width: | Height: | Size: 92 B | 
| Before Width: | Height: | Size: 314 B After Width: | Height: | Size: 88 B | 
| Before Width: | Height: | Size: 309 B After Width: | Height: | Size: 88 B | 
| Before Width: | Height: | Size: 323 B After Width: | Height: | Size: 91 B | 
| Before Width: | Height: | Size: 316 B After Width: | Height: | Size: 90 B | 
| Before Width: | Height: | Size: 359 B After Width: | Height: | Size: 96 B | 
| Before Width: | Height: | Size: 352 B After Width: | Height: | Size: 95 B | 
| Before Width: | Height: | Size: 244 B After Width: | Height: | Size: 83 B | 
| Before Width: | Height: | Size: 325 B After Width: | Height: | Size: 95 B | 
| Before Width: | Height: | Size: 362 B After Width: | Height: | Size: 102 B | 
| Before Width: | Height: | Size: 379 B After Width: | Height: | Size: 99 B | 
| Before Width: | Height: | Size: 494 B After Width: | Height: | Size: 102 B | 
| Before Width: | Height: | Size: 518 B After Width: | Height: | Size: 105 B | 
| Before Width: | Height: | Size: 500 B After Width: | Height: | Size: 101 B | 
| Before Width: | Height: | Size: 96 B After Width: | Height: | Size: 71 B | 
| Before Width: | Height: | Size: 336 B After Width: | Height: | Size: 88 B | 
| Before Width: | Height: | Size: 367 B After Width: | Height: | Size: 95 B | 
| Before Width: | Height: | Size: 399 B After Width: | Height: | Size: 102 B | 
| Before Width: | Height: | Size: 369 B After Width: | Height: | Size: 88 B | 
| Before Width: | Height: | Size: 332 B After Width: | Height: | Size: 91 B | 
| Before Width: | Height: | Size: 266 B After Width: | Height: | Size: 82 B | 
| Before Width: | Height: | Size: 396 B After Width: | Height: | Size: 97 B | 
| Before Width: | Height: | Size: 203 B After Width: | Height: | Size: 77 B | 
| Before Width: | Height: | Size: 438 B After Width: | Height: | Size: 101 B | 
| Before Width: | Height: | Size: 363 B After Width: | Height: | Size: 93 B | 
| Before Width: | Height: | Size: 293 B After Width: | Height: | Size: 83 B | 
| Before Width: | Height: | Size: 230 B After Width: | Height: | Size: 81 B | 
| Before Width: | Height: | Size: 203 B After Width: | Height: | Size: 77 B | 
| Before Width: | Height: | Size: 461 B After Width: | Height: | Size: 101 B | 
| Before Width: | Height: | Size: 203 B After Width: | Height: | Size: 79 B | 
| Before Width: | Height: | Size: 280 B After Width: | Height: | Size: 88 B | 
| Before Width: | Height: | Size: 297 B After Width: | Height: | Size: 91 B | 
| Before Width: | Height: | Size: 319 B After Width: | Height: | Size: 90 B | 
| Before Width: | Height: | Size: 291 B After Width: | Height: | Size: 90 B | 
| Before Width: | Height: | Size: 250 B After Width: | Height: | Size: 82 B | 
| Before Width: | Height: | Size: 307 B After Width: | Height: | Size: 85 B | 
| Before Width: | Height: | Size: 343 B After Width: | Height: | Size: 85 B | 
| Before Width: | Height: | Size: 216 B After Width: | Height: | Size: 76 B | 
| Before Width: | Height: | Size: 227 B After Width: | Height: | Size: 78 B | 
| Before Width: | Height: | Size: 304 B After Width: | Height: | Size: 90 B | 
| Before Width: | Height: | Size: 345 B After Width: | Height: | Size: 96 B | 
| Before Width: | Height: | Size: 317 B After Width: | Height: | Size: 83 B | 
| Before Width: | Height: | Size: 465 B After Width: | Height: | Size: 106 B | 
| Before Width: | Height: | Size: 435 B After Width: | Height: | Size: 102 B | 
| Before Width: | Height: | Size: 478 B After Width: | Height: | Size: 103 B | 
| Before Width: | Height: | Size: 348 B After Width: | Height: | Size: 97 B | 
| Before Width: | Height: | Size: 408 B After Width: | Height: | Size: 99 B |