From e75f60093b1709f0fa4dd69b582c63269448657a Mon Sep 17 00:00:00 2001 From: jaseg Date: Sat, 15 Jan 2022 21:36:59 +0100 Subject: Add a whole zoo of gerber files from different EDA packages --- gerbonara/gerber/tests/resources/upverter/LICENSE | 674 +++++++++ gerbonara/gerber/tests/resources/upverter/README | 1 + .../tests/resources/upverter/design_export.drl | 83 ++ .../tests/resources/upverter/design_export.gbl | 372 +++++ .../tests/resources/upverter/design_export.gbo | 35 + .../tests/resources/upverter/design_export.gbp | 101 ++ .../tests/resources/upverter/design_export.gbs | 214 +++ .../tests/resources/upverter/design_export.gko | 14 + .../tests/resources/upverter/design_export.gtl | 278 ++++ .../tests/resources/upverter/design_export.gto | 1545 ++++++++++++++++++++ .../tests/resources/upverter/design_export.gtp | 4 + .../tests/resources/upverter/design_export.gts | 118 ++ .../tests/resources/upverter/design_export.xln | 102 ++ .../gerber/tests/resources/upverter/layers.cfg | 10 + 14 files changed, 3551 insertions(+) create mode 100644 gerbonara/gerber/tests/resources/upverter/LICENSE create mode 100644 gerbonara/gerber/tests/resources/upverter/README create mode 100644 gerbonara/gerber/tests/resources/upverter/design_export.drl create mode 100644 gerbonara/gerber/tests/resources/upverter/design_export.gbl create mode 100644 gerbonara/gerber/tests/resources/upverter/design_export.gbo create mode 100644 gerbonara/gerber/tests/resources/upverter/design_export.gbp create mode 100644 gerbonara/gerber/tests/resources/upverter/design_export.gbs create mode 100644 gerbonara/gerber/tests/resources/upverter/design_export.gko create mode 100644 gerbonara/gerber/tests/resources/upverter/design_export.gtl create mode 100644 gerbonara/gerber/tests/resources/upverter/design_export.gto create mode 100644 gerbonara/gerber/tests/resources/upverter/design_export.gtp create mode 100644 gerbonara/gerber/tests/resources/upverter/design_export.gts create mode 100644 gerbonara/gerber/tests/resources/upverter/design_export.xln create mode 100644 gerbonara/gerber/tests/resources/upverter/layers.cfg (limited to 'gerbonara/gerber/tests/resources/upverter') diff --git a/gerbonara/gerber/tests/resources/upverter/LICENSE b/gerbonara/gerber/tests/resources/upverter/LICENSE new file mode 100644 index 0000000..ef7e7ef --- /dev/null +++ b/gerbonara/gerber/tests/resources/upverter/LICENSE @@ -0,0 +1,674 @@ +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. + + {one line to give the program's name and a brief idea of what it does.} + Copyright (C) {year} {name of author} + + 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: + + {project} Copyright (C) {year} {fullname} + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/gerbonara/gerber/tests/resources/upverter/README b/gerbonara/gerber/tests/resources/upverter/README new file mode 100644 index 0000000..024500e --- /dev/null +++ b/gerbonara/gerber/tests/resources/upverter/README @@ -0,0 +1 @@ +From https://github.com/sportiduino/sportiduino diff --git a/gerbonara/gerber/tests/resources/upverter/design_export.drl b/gerbonara/gerber/tests/resources/upverter/design_export.drl new file mode 100644 index 0000000..9bf5976 --- /dev/null +++ b/gerbonara/gerber/tests/resources/upverter/design_export.drl @@ -0,0 +1,83 @@ +M48 +M71,TZ +FMAT,2 +T1C0.635 +T2C0.85 +T3C0.9 +T4C1.0 +T5C1.016 +T6C1.1 +T7C1.15 +% +T1 +X-33.975Y29.575 +T2 +X-50.245Y29.675 +X-60.405Y29.675 +X-46.525Y29.725 +X-36.365Y29.725 +T3 +X-37.23Y35.425 +X-39.77Y35.425 +T4 +X-45.31Y21.945 +X-47.81Y21.945 +X-50.41Y21.945 +X-52.91Y21.945 +X-66.525Y30.525 +X-66.525Y34.525 +T5 +X-35.11Y18.3 +X-35.11Y15.635 +X-65.59Y7.975 +X-65.59Y10.515 +X-65.59Y13.055 +X-65.59Y15.595 +X-65.59Y18.135 +X-65.59Y20.675 +T6 +X-60.14Y35.425 +X-57.6Y35.425 +X-55.06Y35.425 +X-52.52Y35.425 +X-49.98Y35.425 +X-47.44Y35.425 +X-44.9Y35.425 +X-42.36Y35.425 +X-33.999999Y-4.84 +X-33.999999Y-7.38 +X-33.999999Y-9.92 +X-33.999999Y-12.46 +X-33.999999Y-15.0 +X-33.999999Y-17.54 +X-58.84Y2.815 +X-61.38Y2.815 +X-63.92Y2.815 +X-66.46Y2.815 +X-56.3Y2.815 +X-69.0Y2.815 +T7 +X-35.11Y10.42 +X-35.11Y12.96 +X-35.11Y21.945 +X-37.61Y21.945 +X-40.21Y21.945 +X-42.71Y21.945 +X-55.51Y21.945 +X-58.01Y21.945 +X-60.51Y21.945 +X-63.01Y21.945 +X-35.11Y6.705 +X-37.61Y6.705 +X-40.21Y6.705 +X-42.71Y6.705 +X-45.21Y6.705 +X-47.81Y6.705 +X-50.41Y6.705 +X-52.91Y6.705 +X-60.51Y6.705 +X-58.01Y6.705 +X-63.05Y6.705 +X-55.41Y6.705 +T00 +M30 diff --git a/gerbonara/gerber/tests/resources/upverter/design_export.gbl b/gerbonara/gerber/tests/resources/upverter/design_export.gbl new file mode 100644 index 0000000..b08e824 --- /dev/null +++ b/gerbonara/gerber/tests/resources/upverter/design_export.gbl @@ -0,0 +1,372 @@ +%FSLAX33Y33*% +%MOMM*% +%AMRect-W1650000-H1650000-RO1.500* +21,1,1.65,1.65,0.,0.,90*% +%AMRect-W1405236-H517986-RO1.000* +21,1,1.405236,0.517986,0.,0.,180*% +%AMRR-H517986-W1405236-R258993-RO1.000* +21,1,0.88725,0.517986,0.,0.,180* +1,1,0.517986,0.443625,-0.* +1,1,0.517986,-0.443625,-0.* +1,1,0.517986,-0.443625,0.* +1,1,0.517986,0.443625,0.*% +%AMRect-W1650000-H1650000-RO0.500* +21,1,1.65,1.65,0.,0.,270*% +%AMRect-W2000000-H2000000-RO1.500* +21,1,2.,2.,0.,0.,90*% +%AMRect-W1000000-H1250000-RO0.500* +21,1,1.,1.25,0.,0.,270*% +%AMRect-W1400000-H1400000-RO1.000* +21,1,1.4,1.4,0.,0.,180*% +%AMRR-H2000000-W1000000-R500000-RO0.500* +21,1,1.,1.,0.,0.,270* +1,1,1.,0.5,0.* +1,1,1.,0.5,-0.* +1,1,1.,-0.5,-0.* +1,1,1.,-0.5,0.*% +%AMRR-H1000000-W2000000-R500000-RO0.500* +21,1,1.,1.,0.,0.,270* +1,1,1.,0.,0.5* +1,1,1.,0.,-0.5* +1,1,1.,-0.,-0.5* +1,1,1.,-0.,0.5*% +%AMRect-W2000000-H1000000-RO0.500* +21,1,2.,1.,0.,0.,270*% +%ADD10C,0.3*% +%ADD11C,1.0668*% +%ADD12C,1.65*% +%ADD13Rect-W1650000-H1650000-RO1.500*% +%ADD14C,1.65*% +%ADD15Rect-W1405236-H517986-RO1.000*% +%ADD16RR-H517986-W1405236-R258993-RO1.000*% +%ADD17C,1.65*% +%ADD18Rect-W1650000-H1650000-RO0.500*% +%ADD19C,2.*% +%ADD20C,2.*% +%ADD21C,1.6*% +%ADD22C,2.029999*% +%ADD23C,2.029999*% +%ADD24Rect-W2000000-H2000000-RO1.500*% +%ADD25C,1.35*% +%ADD26C,1.35*% +%ADD27Rect-W1000000-H1250000-RO0.500*% +%ADD28C,1.4*% +%ADD29Rect-W1400000-H1400000-RO1.000*% +%ADD30RR-H2000000-W1000000-R500000-RO0.500*% +%ADD31RR-H1000000-W2000000-R500000-RO0.500*% +%ADD32Rect-W2000000-H1000000-RO0.500*% +D10* +%LNbottom copper_traces*% +G01* +X-49350Y16975D02* +X-46700Y16975D01* +X-34325Y20400D02* +X-33575Y21150D01* +X-58075Y-3650D02* +X-57225Y-2800D01* +X-55625Y18375D02* +X-53725Y16475D01* +X-49850Y16475D02* +X-49350Y16975D01* +X-36950Y-16550D02* +X-36000Y-17500D01* +X-61490Y14475D02* +X-53850Y14475D01* +X-46600Y13170D02* +X-44880Y13170D01* +X-39450Y16980D02* +X-38255Y16980D01* +X-66545Y3050D02* +X-68875Y5380D01* +X-42225Y-3550D02* +X-42225Y-1300D01* +X-39600Y15710D02* +X-40590Y15710D01* +X-49135Y13510D02* +X-47650Y12025D01* +X-36947Y20400D02* +X-34325Y20400D01* +X-44250Y20405D02* +X-42710Y21945D01* +X-40590Y18050D02* +X-39297Y18050D01* +X-63850Y-2150D02* +X-63850Y2650D01* +X-41950Y18600D02* +X-40400Y20150D01* +X-33575Y21150D02* +X-33575Y22600D01* +X-65450Y13275D02* +X-62300Y16425D01* +X-44250Y15258D02* +X-44250Y20405D01* +X-39297Y18050D02* +X-36947Y20400D01* +X-62350Y-3650D02* +X-63850Y-2150D01* +X-68875Y5380D02* +X-68875Y10500D01* +X-62300Y16475D02* +X-49850Y16475D01* +X-57600Y35425D02* +X-56125Y33950D01* +X-41650Y14440D02* +X-39450Y14440D01* +X-41950Y16100D02* +X-41950Y18600D01* +X-64150Y-5850D02* +X-66545Y-3455D01* +X-37525Y21425D02* +X-37525Y21945D01* +X-69000Y-14425D02* +X-66250Y-17175D01* +X-46600Y14440D02* +X-45068Y14440D01* +X-38385Y24075D02* +X-40210Y22250D01* +X-37775Y33950D02* +X-33975Y30150D01* +X-57225Y-2800D02* +X-57225Y-1150D01* +X-40590Y15710D02* +X-41005Y16125D01* +X-40400Y20150D02* +X-38800Y20150D01* +X-41005Y13170D02* +X-39600Y13170D01* +X-69000Y-14425D02* +X-69000Y2815D01* +X-55625Y21945D02* +X-55625Y18375D01* +X-33975Y30150D02* +X-33975Y29725D01* +X-49135Y15710D02* +X-49135Y13510D01* +X-37175Y-0300D02* +X-37150Y-0300D01* +X-37975Y0500D02* +X-36950Y-0525D01* +X-36950Y-16550D02* +X-36950Y-0525D01* +X-44065Y12025D02* +X-41650Y14440D01* +X-39025Y0500D02* +X-37975Y0500D01* +X-41005Y13170D02* +X-43225Y10950D01* +X-44880Y13170D02* +X-41950Y16100D01* +X-41005Y17635D02* +X-40590Y18050D01* +X-36000Y-17500D02* +X-34350Y-17500D01* +X-53850Y11775D02* +X-53850Y14375D01* +X-62825Y22300D02* +X-63100Y22025D01* +X-38800Y20150D02* +X-37525Y21425D01* +X-37650Y16375D02* +X-37650Y6745D01* +X-38255Y16980D02* +X-37650Y16375D01* +X-40825Y-1300D02* +X-39025Y0500D01* +X-45068Y14440D02* +X-44250Y15258D01* +X-56125Y33950D02* +X-37775Y33950D01* +X-53025Y10950D02* +X-43225Y10950D01* +X-53025Y10950D02* +X-53850Y11775D01* +X-49135Y15710D02* +X-46700Y15710D01* +X-66545Y-3455D02* +X-66545Y2900D01* +X-64150Y-5850D02* +X-44525Y-5850D01* +X-38385Y24075D02* +X-35050Y24075D01* +X-66525Y12850D02* +X-65590Y12850D01* +X-58840Y-1300D02* +X-58840Y2435D01* +X-68875Y10500D02* +X-66525Y12850D01* +X-58875Y-16200D02* +X-59850Y-17175D01* +X-58875Y-14075D02* +X-58875Y-16200D01* +X-47650Y12025D02* +X-44065Y12025D01* +X-62350Y-3650D02* +X-58075Y-3650D01* +X-44525Y-5850D02* +X-42225Y-3550D01* +X-65450Y10515D02* +X-61490Y14475D01* +X-59850Y-17175D02* +X-66250Y-17175D01* +X-35050Y24075D02* +X-33575Y22600D01* +X-41005Y16125D02* +X-41005Y17635D01* +X-49900Y16475D02* +X-49135Y15710D01* +D11* +X-33975Y29575D03* +%LNbottom copper component 104f474019bc45ae*% +D12* +X-57600Y35425D03* +X-55060Y35425D03* +X-52520Y35425D03* +X-49980Y35425D03* +X-47440Y35425D03* +X-44900Y35425D03* +X-42360Y35425D03* +D13* +X-60140Y35425D03* +%LNbottom copper component 6423f2fbdbf0fd51*% +D14* +X-34000Y-4840D03* +X-34000Y-7380D03* +X-34000Y-9920D03* +X-34000Y-12460D03* +X-34000Y-15000D03* +X-34000Y-17540D03* +%LNbottom copper component 6ec8fa02dcc931b8*% +D15* +X-39600Y16980D03* +D16* +X-39600Y15710D03* +X-39600Y14440D03* +X-39600Y13170D03* +X-46600Y13170D03* +X-46600Y14440D03* +X-46600Y15710D03* +X-46600Y16980D03* +%LNbottom copper component 2e760206f6eb6219*% +D17* +X-58840Y2815D03* +X-61380Y2815D03* +X-63920Y2815D03* +X-66460Y2815D03* +X-69000Y2815D03* +D18* +X-56300Y2815D03* +%LNbottom copper component 725756eb9d5a0c3e*% +D19* +X-35110Y10420D03* +X-35110Y12960D03* +D20* +X-35110Y21945D03* +X-37610Y21945D03* +X-40210Y21945D03* +X-42710Y21945D03* +D21* +X-45310Y21945D03* +X-47810Y21945D03* +X-50410Y21945D03* +X-52910Y21945D03* +D20* +X-55510Y21945D03* +X-58010Y21945D03* +X-60510Y21945D03* +X-63010Y21945D03* +X-37610Y6705D03* +X-40210Y6705D03* +X-42710Y6705D03* +X-45210Y6705D03* +X-47810Y6705D03* +X-50410Y6705D03* +X-52910Y6705D03* +X-60510Y6705D03* +X-58010Y6705D03* +X-63050Y6705D03* +X-55410Y6705D03* +D22* +X-35110Y18300D03* +X-35110Y15635D03* +D23* +X-65590Y7975D03* +X-65590Y10515D03* +X-65590Y13055D03* +X-65590Y15595D03* +X-65590Y18135D03* +X-65590Y20675D03* +D24* +X-35110Y6705D03* +%LNbottom copper component e41e54bbfcc8de48*% +D25* +X-50245Y29675D03* +X-60405Y29675D03* +%LNbottom copper component bcffb8a9274f0d14*% +D26* +X-46525Y29725D03* +X-36365Y29725D03* +%LNbottom copper component 78a424b639101169*% +D27* +X-53725Y16475D03* +X-53725Y14475D03* +%LNbottom copper component 51561cf638072ae7*% +D21* +X-66525Y30525D03* +X-66525Y34525D03* +%LNbottom copper component 243e2b77924b8e62*% +D28* +X-39770Y35425D03* +D29* +X-37230Y35425D03* +%LNbottom copper component eb69e66ac07ddab8*% +D30* +X-38975Y-13050D03* +D31* +X-54225Y-1300D03* +X-51225Y-14300D03* +D30* +X-38975Y-4050D03* +D31* +X-43725Y-1300D03* +X-52725Y-14300D03* +D30* +X-38975Y-7050D03* +D31* +X-43725Y-14300D03* +X-58725Y-14300D03* +X-55725Y-14300D03* +D32* +X-58725Y-1300D03* +D31* +X-55725Y-1300D03* +X-48225Y-1300D03* +X-40725Y-14300D03* +X-45225Y-1300D03* +X-42225Y-14300D03* +X-51225Y-1300D03* +D30* +X-38975Y-11550D03* +D31* +X-57225Y-1300D03* +X-57225Y-14300D03* +X-42225Y-1300D03* +X-46725Y-14300D03* +X-46725Y-1300D03* +X-40725Y-1300D03* +X-52725Y-1300D03* +X-49725Y-1300D03* +D30* +X-38975Y-8550D03* +X-38975Y-10050D03* +D31* +X-45225Y-14300D03* +D30* +X-38975Y-5550D03* +D31* +X-49725Y-14300D03* +D30* +X-38975Y-2550D03* +D31* +X-48225Y-14300D03* +X-54225Y-14300D03* +M02* \ No newline at end of file diff --git a/gerbonara/gerber/tests/resources/upverter/design_export.gbo b/gerbonara/gerber/tests/resources/upverter/design_export.gbo new file mode 100644 index 0000000..81a1c10 --- /dev/null +++ b/gerbonara/gerber/tests/resources/upverter/design_export.gbo @@ -0,0 +1,35 @@ +%FSLAX33Y33*% +%MOMM*% +%ADD10C,0.15*% +%ADD11C,1.*% +%ADD12C,0.5*% +%ADD13C,0.5*% +D10* +%LNbottom silkscreen_traces*% +%LNbottom silkscreen component 6ec8fa02dcc931b8*% +G01* +X-45398Y17715D02* +X-45398Y12435D01* +X-40802Y12435* +X-40802Y17715* +X-45398Y17715* +D11* +X-41902Y16740D03* +D12* +X-38300Y16980D03* +%LNbottom silkscreen component 78a424b639101169*% +D10* +X-52600Y16733D02* +X-52600Y14217D01* +X-54850Y16733D02* +X-54850Y14217D01* +%LNbottom silkscreen component eb69e66ac07ddab8*% +X-65975Y-14300D02* +X-65975Y-1300D01* +X-65975Y-14300D02* +X-60475Y-14300D01* +X-65975Y-1300D02* +X-60475Y-1300D01* +D13* +X-58725Y0300D03* +M02* \ No newline at end of file diff --git a/gerbonara/gerber/tests/resources/upverter/design_export.gbp b/gerbonara/gerber/tests/resources/upverter/design_export.gbp new file mode 100644 index 0000000..7fefefe --- /dev/null +++ b/gerbonara/gerber/tests/resources/upverter/design_export.gbp @@ -0,0 +1,101 @@ +%FSLAX33Y33*% +%MOMM*% +%AMRect-W1405236-H517986-RO1.000* +21,1,1.405236,0.517986,0.,0.,180*% +%AMRR-H517986-W1405236-R258993-RO1.000* +21,1,0.88725,0.517986,0.,0.,180* +1,1,0.517986,0.443625,-0.* +1,1,0.517986,-0.443625,-0.* +1,1,0.517986,-0.443625,0.* +1,1,0.517986,0.443625,0.*% +%AMRect-W1000000-H1250000-RO0.500* +21,1,1.,1.25,0.,0.,270*% +%AMRR-H2000000-W1000000-R500000-RO0.500* +21,1,1.,1.,0.,0.,270* +1,1,1.,0.5,0.* +1,1,1.,0.5,-0.* +1,1,1.,-0.5,-0.* +1,1,1.,-0.5,0.*% +%AMRR-H1000000-W2000000-R500000-RO0.500* +21,1,1.,1.,0.,0.,270* +1,1,1.,0.,0.5* +1,1,1.,0.,-0.5* +1,1,1.,-0.,-0.5* +1,1,1.,-0.,0.5*% +%AMRect-W2000000-H1000000-RO0.500* +21,1,2.,1.,0.,0.,270*% +%ADD10Rect-W1405236-H517986-RO1.000*% +%ADD11RR-H517986-W1405236-R258993-RO1.000*% +%ADD12Rect-W1000000-H1250000-RO0.500*% +%ADD13RR-H2000000-W1000000-R500000-RO0.500*% +%ADD14RR-H1000000-W2000000-R500000-RO0.500*% +%ADD15Rect-W2000000-H1000000-RO0.500*% +D10* +%LNbottom paste_traces*% +%LNbottom paste component 6ec8fa02dcc931b8*% +G01* +X-39600Y16980D03* +D11* +X-39600Y15710D03* +X-39600Y14440D03* +X-39600Y13170D03* +X-46600Y13170D03* +X-46600Y14440D03* +X-46600Y15710D03* +X-46600Y16980D03* +%LNbottom paste component 78a424b639101169*% +D12* +X-53725Y16475D03* +X-53725Y14475D03* +%LNbottom paste component eb69e66ac07ddab8*% +D13* +X-38975Y-13050D03* +D14* +X-54225Y-1300D03* +X-51225Y-14300D03* +D13* +X-38975Y-4050D03* +D14* +X-43725Y-1300D03* +X-52725Y-14300D03* +D13* +X-38975Y-7050D03* +D14* +X-43725Y-14300D03* +X-58725Y-14300D03* +X-55725Y-14300D03* +D15* +X-58725Y-1300D03* +D14* +X-55725Y-1300D03* +X-48225Y-1300D03* +X-40725Y-14300D03* +X-45225Y-1300D03* +X-42225Y-14300D03* +X-51225Y-1300D03* +D13* +X-38975Y-11550D03* +D14* +X-57225Y-1300D03* +X-57225Y-14300D03* +X-42225Y-1300D03* +X-46725Y-14300D03* +X-46725Y-1300D03* +X-40725Y-1300D03* +X-52725Y-1300D03* +X-49725Y-1300D03* +D13* +X-38975Y-8550D03* +X-38975Y-10050D03* +D14* +X-45225Y-14300D03* +D13* +X-38975Y-5550D03* +D14* +X-49725Y-14300D03* +D13* +X-38975Y-2550D03* +D14* +X-48225Y-14300D03* +X-54225Y-14300D03* +M02* \ No newline at end of file diff --git a/gerbonara/gerber/tests/resources/upverter/design_export.gbs b/gerbonara/gerber/tests/resources/upverter/design_export.gbs new file mode 100644 index 0000000..a652bec --- /dev/null +++ b/gerbonara/gerber/tests/resources/upverter/design_export.gbs @@ -0,0 +1,214 @@ +%FSLAX33Y33*% +%MOMM*% +%AMRect-W1650000-H1650000-RO1.500* +21,1,1.65,1.65,0.,0.,90*% +%AMRect-W1405236-H517986-RO1.000* +21,1,1.405236,0.517986,0.,0.,180*% +%AMRR-H517986-W1405236-R258993-RO1.000* +21,1,0.88725,0.517986,0.,0.,180* +1,1,0.517986,0.443625,-0.* +1,1,0.517986,-0.443625,-0.* +1,1,0.517986,-0.443625,0.* +1,1,0.517986,0.443625,0.*% +%AMRect-W1650000-H1650000-RO0.500* +21,1,1.65,1.65,0.,0.,270*% +%AMRect-W2000000-H2000000-RO1.500* +21,1,2.,2.,0.,0.,90*% +%AMRect-W1000000-H1250000-RO0.500* +21,1,1.,1.25,0.,0.,270*% +%AMRect-W1400000-H1400000-RO1.000* +21,1,1.4,1.4,0.,0.,180*% +%AMRR-H2000000-W1000000-R500000-RO0.500* +21,1,1.,1.,0.,0.,270* +1,1,1.,0.5,0.* +1,1,1.,0.5,-0.* +1,1,1.,-0.5,-0.* +1,1,1.,-0.5,0.*% +%AMRR-H1000000-W2000000-R500000-RO0.500* +21,1,1.,1.,0.,0.,270* +1,1,1.,0.,0.5* +1,1,1.,0.,-0.5* +1,1,1.,-0.,-0.5* +1,1,1.,-0.,0.5*% +%AMRect-W2000000-H1000000-RO0.500* +21,1,2.,1.,0.,0.,270*% +%ADD10C,1.0668*% +%ADD11C,1.65*% +%ADD12Rect-W1650000-H1650000-RO1.500*% +%ADD13C,1.65*% +%ADD14Rect-W1405236-H517986-RO1.000*% +%ADD15RR-H517986-W1405236-R258993-RO1.000*% +%ADD16C,1.65*% +%ADD17Rect-W1650000-H1650000-RO0.500*% +%ADD18C,2.*% +%ADD19C,2.*% +%ADD20C,1.6*% +%ADD21C,2.029999*% +%ADD22C,2.029999*% +%ADD23Rect-W2000000-H2000000-RO1.500*% +%ADD24C,1.35*% +%ADD25C,1.35*% +%ADD26Rect-W1000000-H1250000-RO0.500*% +%ADD27C,1.4*% +%ADD28Rect-W1400000-H1400000-RO1.000*% +%ADD29RR-H2000000-W1000000-R500000-RO0.500*% +%ADD30RR-H1000000-W2000000-R500000-RO0.500*% +%ADD31Rect-W2000000-H1000000-RO0.500*% +D10* +%LNbottom solder mask_traces*% +G01* +X-33975Y29575D03* +%LNbottom solder mask component 104f474019bc45ae*% +D11* +X-57600Y35425D03* +X-55060Y35425D03* +X-52520Y35425D03* +X-49980Y35425D03* +X-47440Y35425D03* +X-44900Y35425D03* +X-42360Y35425D03* +D12* +X-60140Y35425D03* +%LNbottom solder mask component 6423f2fbdbf0fd51*% +D13* +X-34000Y-4840D03* +X-34000Y-7380D03* +X-34000Y-9920D03* +X-34000Y-12460D03* +X-34000Y-15000D03* +X-34000Y-17540D03* +%LNbottom solder mask component 6ec8fa02dcc931b8*% +D14* +X-39600Y16980D03* +D15* +X-39600Y15710D03* +X-39600Y14440D03* +X-39600Y13170D03* +X-46600Y13170D03* +X-46600Y14440D03* +X-46600Y15710D03* +X-46600Y16980D03* +%LNbottom solder mask component 2e760206f6eb6219*% +D16* +X-58840Y2815D03* +X-61380Y2815D03* +X-63920Y2815D03* +X-66460Y2815D03* +X-69000Y2815D03* +D17* +X-56300Y2815D03* +%LNbottom solder mask component 725756eb9d5a0c3e*% +D18* +X-35110Y10420D03* +X-35110Y12960D03* +D19* +X-35110Y21945D03* +X-37610Y21945D03* +X-40210Y21945D03* +X-42710Y21945D03* +D20* +X-45310Y21945D03* +X-47810Y21945D03* +X-50410Y21945D03* +X-52910Y21945D03* +D19* +X-55510Y21945D03* +X-58010Y21945D03* +X-60510Y21945D03* +X-63010Y21945D03* +X-37610Y6705D03* +X-40210Y6705D03* +X-42710Y6705D03* +X-45210Y6705D03* +X-47810Y6705D03* +X-50410Y6705D03* +X-52910Y6705D03* +X-60510Y6705D03* +X-58010Y6705D03* +X-63050Y6705D03* +X-55410Y6705D03* +D21* +X-35110Y18300D03* +X-35110Y15635D03* +D22* +X-65590Y7975D03* +X-65590Y10515D03* +X-65590Y13055D03* +X-65590Y15595D03* +X-65590Y18135D03* +X-65590Y20675D03* +D23* +X-35110Y6705D03* +%LNbottom solder mask component e41e54bbfcc8de48*% +D24* +X-50245Y29675D03* +X-60405Y29675D03* +%LNbottom solder mask component bcffb8a9274f0d14*% +D25* +X-46525Y29725D03* +X-36365Y29725D03* +%LNbottom solder mask component 78a424b639101169*% +D26* +X-53725Y16475D03* +X-53725Y14475D03* +%LNbottom solder mask component 51561cf638072ae7*% +D20* +X-66525Y30525D03* +X-66525Y34525D03* +%LNbottom solder mask component 243e2b77924b8e62*% +D27* +X-39770Y35425D03* +D28* +X-37230Y35425D03* +%LNbottom solder mask component eb69e66ac07ddab8*% +D29* +X-38975Y-13050D03* +D30* +X-54225Y-1300D03* +X-51225Y-14300D03* +D29* +X-38975Y-4050D03* +D30* +X-43725Y-1300D03* +X-52725Y-14300D03* +D29* +X-38975Y-7050D03* +D30* +X-43725Y-14300D03* +X-58725Y-14300D03* +X-55725Y-14300D03* +D31* +X-58725Y-1300D03* +D30* +X-55725Y-1300D03* +X-48225Y-1300D03* +X-40725Y-14300D03* +X-45225Y-1300D03* +X-42225Y-14300D03* +X-51225Y-1300D03* +D29* +X-38975Y-11550D03* +D30* +X-57225Y-1300D03* +X-57225Y-14300D03* +X-42225Y-1300D03* +X-46725Y-14300D03* +X-46725Y-1300D03* +X-40725Y-1300D03* +X-52725Y-1300D03* +X-49725Y-1300D03* +D29* +X-38975Y-8550D03* +X-38975Y-10050D03* +D30* +X-45225Y-14300D03* +D29* +X-38975Y-5550D03* +D30* +X-49725Y-14300D03* +D29* +X-38975Y-2550D03* +D30* +X-48225Y-14300D03* +X-54225Y-14300D03* +M02* \ No newline at end of file diff --git a/gerbonara/gerber/tests/resources/upverter/design_export.gko b/gerbonara/gerber/tests/resources/upverter/design_export.gko new file mode 100644 index 0000000..c03662b --- /dev/null +++ b/gerbonara/gerber/tests/resources/upverter/design_export.gko @@ -0,0 +1,14 @@ +%FSLAX33Y33*% +%MOMM*% +%ADD10C,0.508*% +D10* +%LNpath-0*% +G01* +X-71000Y38225D02* +X-31675Y38225D01* +X-31550Y-21800* +X-71050Y-21650* +X-71000Y34125* +X-71000Y38225* +%LNmechanical details_traces*% +M02* \ No newline at end of file diff --git a/gerbonara/gerber/tests/resources/upverter/design_export.gtl b/gerbonara/gerber/tests/resources/upverter/design_export.gtl new file mode 100644 index 0000000..7042ad4 --- /dev/null +++ b/gerbonara/gerber/tests/resources/upverter/design_export.gtl @@ -0,0 +1,278 @@ +%FSLAX33Y33*% +%MOMM*% +%AMRect-W1650000-H1650000-RO1.500* +21,1,1.65,1.65,0.,0.,90*% +%AMRect-W1650000-H1650000-RO0.500* +21,1,1.65,1.65,0.,0.,270*% +%AMRect-W2000000-H2000000-RO1.500* +21,1,2.,2.,0.,0.,90*% +%AMRect-W1400000-H1400000-RO1.000* +21,1,1.4,1.4,0.,0.,180*% +%ADD10C,0.3*% +%ADD11C,1.0668*% +%ADD12C,1.65*% +%ADD13Rect-W1650000-H1650000-RO1.500*% +%ADD14C,1.65*% +%ADD15C,1.65*% +%ADD16Rect-W1650000-H1650000-RO0.500*% +%ADD17C,2.*% +%ADD18C,2.*% +%ADD19C,1.6*% +%ADD20C,2.029999*% +%ADD21C,2.029999*% +%ADD22Rect-W2000000-H2000000-RO1.500*% +%ADD23C,1.35*% +%ADD24C,1.35*% +%ADD25C,1.4*% +%ADD26Rect-W1400000-H1400000-RO1.000*% +D10* +%LNtop copper_traces*% +G01* +X-37610Y21945D02* +X-37610Y25935D01* +X-65750Y13275D02* +X-67775Y15300D01* +X-46850Y35175D02* +X-37610Y25935D01* +X-39550Y35150D02* +X-36375Y31975D01* +X-65700Y10675D02* +X-69025Y14000D01* +X-51250Y36350D02* +X-50875Y36725D01* +X-37975Y18200D02* +X-36225Y19950D01* +X-33110Y4765D02* +X-33725Y4150D01* +X-67775Y15300D02* +X-67775Y31475D01* +X-32425Y4425D02* +X-32425Y12060D01* +X-50875Y36725D02* +X-46075Y36725D01* +X-63120Y4545D02* +X-63120Y6475D01* +X-42975Y-8550D02* +X-42975Y2450D01* +X-49075Y28625D02* +X-50125Y29675D01* +X-55150Y6225D02* +X-55150Y6825D01* +X-42800Y22035D02* +X-42800Y28273D01* +X-60405Y29675D02* +X-65675Y29675D01* +X-46852Y33777D02* +X-48600Y33777D01* +X-34975Y6975D02* +X-37975Y9975D01* +X-41275Y4150D02* +X-42975Y2450D01* +X-33025Y20850D02* +X-33025Y28750D01* +X-46525Y29450D02* +X-46800Y29725D01* +X-32425Y12060D02* +X-33325Y12960D01* +X-66300Y34800D02* +X-63650Y37450D01* +X-63725Y35525D02* +X-60150Y35525D01* +X-34355Y-9920D02* +X-33700Y-9920D01* +X-45210Y-10065D02* +X-45210Y6800D01* +X-66923Y34525D02* +X-66600Y34525D01* +X-65450Y10515D02* +X-59440Y10515D01* +X-47650Y19400D02* +X-46525Y20525D01* +X-50398Y32925D02* +X-51250Y33777D01* +X-45210Y-10065D02* +X-40225Y-15050D01* +X-38975Y-12550D02* +X-34175Y-12550D01* +X-47452Y32925D02* +X-42800Y28273D01* +X-41275Y4150D02* +X-33725Y4150D01* +X-50325Y19050D02* +X-49075Y20300D01* +X-35110Y21945D02* +X-35110Y25685D01* +X-45725Y-17500D02* +X-33915Y-17500D01* +X-59440Y10515D02* +X-55450Y6525D01* +X-42975Y-8550D02* +X-38975Y-12550D01* +X-61625Y3050D02* +X-63120Y4545D01* +X-33925Y19950D02* +X-33025Y20850D01* +X-49075Y20300D02* +X-49075Y28625D01* +X-55150Y35425D02* +X-55150Y37400D01* +X-35110Y25685D02* +X-42360Y32935D01* +X-69025Y14000D02* +X-69025Y32423D01* +X-42360Y32935D02* +X-42360Y35425D01* +X-60510Y6625D02* +X-56700Y2815D01* +X-36375Y29725D02* +X-36375Y31975D01* +X-33025Y28750D02* +X-33975Y29700D01* +X-67775Y31475D02* +X-63725Y35525D01* +X-46852Y33777D02* +X-40075Y27000D01* +X-33110Y4765D02* +X-33110Y8960D01* +X-39175Y37450D02* +X-37400Y35675D01* +X-69025Y32423D02* +X-66923Y34525D01* +X-33110Y8960D02* +X-34450Y10300D01* +X-47400Y34925D02* +X-47400Y35675D01* +X-55450Y6705D02* +X-53450Y4705D01* +X-40225Y-15050D02* +X-34225Y-15050D01* +X-46525Y20525D02* +X-46525Y29450D01* +X-46075Y36725D02* +X-44900Y35550D01* +X-48600Y33777D02* +X-49777Y34955D01* +X-50325Y7000D02* +X-50325Y19050D01* +X-65675Y29675D02* +X-66525Y30525D01* +X-50398Y32925D02* +X-47452Y32925D01* +X-66300Y34175D02* +X-66300Y34800D01* +X-33325Y12960D02* +X-35110Y12960D01* +X-38525Y-1675D02* +X-32425Y4425D01* +X-63650Y37450D02* +X-39175Y37450D01* +X-40075Y21945D02* +X-40075Y27000D01* +X-53450Y-9775D02* +X-45725Y-17500D01* +X-47650Y7125D02* +X-47650Y19400D01* +X-38525Y-5395D02* +X-38525Y-1675D01* +X-34445Y-7380D02* +X-33800Y-7380D01* +X-36225Y19950D02* +X-33925Y19950D01* +X-53450Y-9775D02* +X-53450Y4705D01* +X-51250Y33777D02* +X-51250Y36350D01* +X-37975Y9975D02* +X-37975Y18200D01* +X-38525Y-5395D02* +X-34000Y-9920D01* +D11* +X-33975Y29575D03* +%LNtop copper component 104f474019bc45ae*% +D12* +X-57600Y35425D03* +X-55060Y35425D03* +X-52520Y35425D03* +X-49980Y35425D03* +X-47440Y35425D03* +X-44900Y35425D03* +X-42360Y35425D03* +D13* +X-60140Y35425D03* +%LNtop copper component 6423f2fbdbf0fd51*% +D14* +X-34000Y-4840D03* +X-34000Y-7380D03* +X-34000Y-9920D03* +X-34000Y-12460D03* +X-34000Y-15000D03* +X-34000Y-17540D03* +%LNtop copper component 2e760206f6eb6219*% +D15* +X-58840Y2815D03* +X-61380Y2815D03* +X-63920Y2815D03* +X-66460Y2815D03* +X-69000Y2815D03* +D16* +X-56300Y2815D03* +%LNtop copper component 725756eb9d5a0c3e*% +D17* +X-35110Y10420D03* +X-35110Y12960D03* +D18* +X-35110Y21945D03* +X-37610Y21945D03* +X-40210Y21945D03* +X-42710Y21945D03* +D19* +X-45310Y21945D03* +X-47810Y21945D03* +X-50410Y21945D03* +X-52910Y21945D03* +D18* +X-55510Y21945D03* +X-58010Y21945D03* +X-60510Y21945D03* +X-63010Y21945D03* +X-37610Y6705D03* +X-40210Y6705D03* +X-42710Y6705D03* +X-45210Y6705D03* +X-47810Y6705D03* +X-50410Y6705D03* +X-52910Y6705D03* +X-60510Y6705D03* +X-58010Y6705D03* +X-63050Y6705D03* +X-55410Y6705D03* +D20* +X-35110Y18300D03* +X-35110Y15635D03* +D21* +X-65590Y7975D03* +X-65590Y10515D03* +X-65590Y13055D03* +X-65590Y15595D03* +X-65590Y18135D03* +X-65590Y20675D03* +D22* +X-35110Y6705D03* +%LNtop copper component e41e54bbfcc8de48*% +D23* +X-50245Y29675D03* +X-60405Y29675D03* +%LNtop copper component bcffb8a9274f0d14*% +D24* +X-46525Y29725D03* +X-36365Y29725D03* +%LNtop copper component 51561cf638072ae7*% +D19* +X-66525Y30525D03* +X-66525Y34525D03* +%LNtop copper component 243e2b77924b8e62*% +D25* +X-39770Y35425D03* +D26* +X-37230Y35425D03* +M02* \ No newline at end of file diff --git a/gerbonara/gerber/tests/resources/upverter/design_export.gto b/gerbonara/gerber/tests/resources/upverter/design_export.gto new file mode 100644 index 0000000..73ae5c8 --- /dev/null +++ b/gerbonara/gerber/tests/resources/upverter/design_export.gto @@ -0,0 +1,1545 @@ +%FSLAX33Y33*% +%MOMM*% +%ADD10C,0.15*% +%ADD11C,0.5*% +%ADD12C,0.2*% +D10* +%LNtop silkscreen_traces*% +%LNtop silkscreen component 104f474019bc45ae*% +G01* +X-61835Y33730D02* +X-61835Y37120D01* +X-61835Y33730D02* +X-40665Y33730D01* +X-40665Y37120* +X-61835Y37120* +D11* +X-60140Y33405D03* +%LNtop silkscreen component 6423f2fbdbf0fd51*% +D12* +X-35270Y-18810D02* +X-35270Y-3570D01* +X-32730Y-3570* +X-32730Y-18810* +X-35270Y-18810* +%LNtop silkscreen component 725756eb9d5a0c3e*% +D10* +X-33639Y5234D02* +X-67061Y5234D01* +X-67061Y23416* +X-33639Y23416* +X-33639Y5234* +D11* +X-35110Y4734D03* +%LNtop silkscreen component e41e54bbfcc8de48*% +D10* +X-49145Y27954D02* +X-61505Y27954D01* +X-49145Y27954D02* +X-49145Y31395D01* +X-61505Y31395* +X-61505Y27954* +%LNtop silkscreen component bcffb8a9274f0d14*% +X-47625Y31445D02* +X-35265Y31445D01* +X-47625Y31445D02* +X-47625Y28005D01* +X-35265Y28005* +X-35265Y31445* +%LNtop silkscreen component 243e2b77924b8e62*% +G75* +G03* +X-37200Y36810D02* +X-39800Y36810I-1300J-1386D01* +G75* +X-39800Y34045D02* +X-37200Y34045I1300J1386D01* +%LNtext*% +G36* +G01* +X-41927Y26760D02* +X-42038Y26760D01* +X-42038Y27471D01* +X-42060Y27452D01* +X-42085Y27433D01* +X-42113Y27414D01* +X-42144Y27394D01* +X-42176Y27376D01* +X-42206Y27361D01* +X-42235Y27348D01* +X-42262Y27337D01* +X-42262Y27445D01* +X-42216Y27468D01* +X-42174Y27493D01* +X-42135Y27521D01* +X-42098Y27551D01* +X-42066Y27582D01* +X-42038Y27613D01* +X-42016Y27643D01* +X-41999Y27673D01* +X-41927Y27673D01* +X-41927Y26760D01* +X-41927Y26760D01* +X-41641Y26998D02* +X-41524Y27008D01* +X-41515Y26968D01* +X-41502Y26933D01* +X-41485Y26904D01* +X-41463Y26879D01* +X-41438Y26861D01* +X-41411Y26847D01* +X-41381Y26839D01* +X-41349Y26836D01* +X-41310Y26840D01* +X-41274Y26851D01* +X-41242Y26870D01* +X-41212Y26897D01* +X-41188Y26930D01* +X-41171Y26968D01* +X-41160Y27011D01* +X-41157Y27058D01* +X-41160Y27104D01* +X-41170Y27144D01* +X-41187Y27179D01* +X-41210Y27209D01* +X-41239Y27233D01* +X-41272Y27250D01* +X-41309Y27261D01* +X-41351Y27264D01* +X-41377Y27263D01* +X-41402Y27258D01* +X-41426Y27250D01* +X-41448Y27240D01* +X-41469Y27227D01* +X-41487Y27212D01* +X-41503Y27195D01* +X-41516Y27176D01* +X-41621Y27190D01* +X-41533Y27657D01* +X-41081Y27657D01* +X-41081Y27550D01* +X-41444Y27550D01* +X-41493Y27306D01* +X-41451Y27331D01* +X-41409Y27348D01* +X-41365Y27359D01* +X-41321Y27363D01* +X-41264Y27358D01* +X-41211Y27342D01* +X-41163Y27316D01* +X-41120Y27280D01* +X-41084Y27236D01* +X-41059Y27186D01* +X-41043Y27130D01* +X-41038Y27068D01* +X-41043Y27009D01* +X-41056Y26953D01* +X-41079Y26902D01* +X-41110Y26855D01* +X-41158Y26807D01* +X-41214Y26772D01* +X-41277Y26751D01* +X-41349Y26744D01* +X-41408Y26749D01* +X-41462Y26762D01* +X-41509Y26784D01* +X-41551Y26814D01* +X-41586Y26852D01* +X-41613Y26895D01* +X-41631Y26944D01* +X-41641Y26998D01* +X-41641Y26998D01* +X-40935Y27208D02* +X-40933Y27285D01* +X-40926Y27354D01* +X-40916Y27415D01* +X-40901Y27468D01* +X-40883Y27514D01* +X-40860Y27555D01* +X-40834Y27590D01* +X-40803Y27619D01* +X-40768Y27643D01* +X-40729Y27659D01* +X-40686Y27669D01* +X-40638Y27673D01* +X-40603Y27671D01* +X-40570Y27665D01* +X-40539Y27656D01* +X-40510Y27643D01* +X-40483Y27627D01* +X-40459Y27607D01* +X-40438Y27585D01* +X-40419Y27558D01* +X-40402Y27529D01* +X-40387Y27497D01* +X-40373Y27462D01* +X-40362Y27423D01* +X-40353Y27380D01* +X-40347Y27330D01* +X-40343Y27272D01* +X-40342Y27208D01* +X-40344Y27132D01* +X-40350Y27064D01* +X-40360Y27003D01* +X-40375Y26950D01* +X-40393Y26904D01* +X-40416Y26863D01* +X-40442Y26828D01* +X-40473Y26798D01* +X-40508Y26775D01* +X-40547Y26758D01* +X-40590Y26748D01* +X-40638Y26744D01* +X-40647Y26745D01* +X-40638Y26836D01* +X-40601Y26841D01* +X-40567Y26855D01* +X-40537Y26878D01* +X-40509Y26911D01* +X-40486Y26957D01* +X-40470Y27022D01* +X-40460Y27106D01* +X-40457Y27208D01* +X-40460Y27311D01* +X-40470Y27395D01* +X-40486Y27460D01* +X-40509Y27507D01* +X-40537Y27539D01* +X-40568Y27562D01* +X-40602Y27576D01* +X-40639Y27580D01* +X-40676Y27576D01* +X-40709Y27564D01* +X-40737Y27544D01* +X-40762Y27515D01* +X-40787Y27465D01* +X-40806Y27397D01* +X-40816Y27311D01* +X-40820Y27208D01* +X-40820Y27208D01* +X-40817Y27106D01* +X-40807Y27022D01* +X-40790Y26957D01* +X-40768Y26910D01* +X-40740Y26878D01* +X-40709Y26855D01* +X-40675Y26841D01* +X-40638Y26836D01* +X-40647Y26745D01* +X-40700Y26750D01* +X-40756Y26768D01* +X-40804Y26798D01* +X-40845Y26839D01* +X-40884Y26904D01* +X-40912Y26988D01* +X-40929Y27089D01* +X-40935Y27208D01* +X-40935Y27208D01* +X-39886Y27089D02* +X-39880Y27175D01* +X-39861Y27248D01* +X-39829Y27310D01* +X-39784Y27360D01* +X-39740Y27392D01* +X-39690Y27415D01* +X-39636Y27429D01* +X-39577Y27433D01* +X-39512Y27428D01* +X-39454Y27411D01* +X-39401Y27383D01* +X-39355Y27344D01* +X-39317Y27296D01* +X-39291Y27238D01* +X-39274Y27173D01* +X-39269Y27099D01* +X-39271Y27038D01* +X-39279Y26985D01* +X-39290Y26938D01* +X-39307Y26899D01* +X-39328Y26864D01* +X-39354Y26834D01* +X-39384Y26808D01* +X-39418Y26785D01* +X-39455Y26768D01* +X-39494Y26755D01* +X-39535Y26748D01* +X-39577Y26745D01* +X-39585Y26746D01* +X-39577Y26837D01* +X-39537Y26841D01* +X-39501Y26853D01* +X-39468Y26872D01* +X-39439Y26900D01* +X-39415Y26936D01* +X-39398Y26980D01* +X-39387Y27032D01* +X-39384Y27093D01* +X-39387Y27150D01* +X-39398Y27200D01* +X-39415Y27243D01* +X-39439Y27278D01* +X-39469Y27306D01* +X-39501Y27325D01* +X-39538Y27337D01* +X-39577Y27341D01* +X-39617Y27337D01* +X-39654Y27325D01* +X-39687Y27306D01* +X-39716Y27278D01* +X-39740Y27243D01* +X-39758Y27200D01* +X-39768Y27149D01* +X-39771Y27089D01* +X-39771Y27089D01* +X-39768Y27030D01* +X-39758Y26979D01* +X-39740Y26935D01* +X-39716Y26900D01* +X-39687Y26872D01* +X-39654Y26853D01* +X-39617Y26841D01* +X-39577Y26837D01* +X-39585Y26746D01* +X-39643Y26751D01* +X-39702Y26767D01* +X-39755Y26795D01* +X-39801Y26834D01* +X-39838Y26883D01* +X-39865Y26942D01* +X-39881Y27011D01* +X-39886Y27089D01* +X-39886Y27089D01* +X-39138Y26760D02* +X-39138Y27669D01* +X-39027Y27669D01* +X-39027Y27343D01* +X-38985Y27383D01* +X-38938Y27411D01* +X-38886Y27428D01* +X-38829Y27433D01* +X-38794Y27432D01* +X-38761Y27426D01* +X-38730Y27417D01* +X-38702Y27405D01* +X-38677Y27389D01* +X-38656Y27370D01* +X-38639Y27349D01* +X-38625Y27325D01* +X-38615Y27297D01* +X-38608Y27263D01* +X-38603Y27223D01* +X-38602Y27177D01* +X-38602Y26760D01* +X-38713Y26760D01* +X-38713Y27177D01* +X-38716Y27216D01* +X-38722Y27250D01* +X-38734Y27277D01* +X-38750Y27299D01* +X-38770Y27316D01* +X-38793Y27328D01* +X-38821Y27335D01* +X-38852Y27337D01* +X-38877Y27336D01* +X-38900Y27331D01* +X-38923Y27323D01* +X-38946Y27312D01* +X-38966Y27298D01* +X-38983Y27281D01* +X-38997Y27263D01* +X-39008Y27242D01* +X-39016Y27218D01* +X-39022Y27189D01* +X-39025Y27157D01* +X-39027Y27120D01* +X-39027Y26760D01* +X-39138Y26760D01* +X-39138Y26760D01* +X-38432Y26760D02* +X-38432Y27419D01* +X-38332Y27419D01* +X-38332Y27326D01* +X-38315Y27349D01* +X-38296Y27370D01* +X-38274Y27388D01* +X-38250Y27404D01* +X-38223Y27417D01* +X-38194Y27426D01* +X-38164Y27432D01* +X-38132Y27433D01* +X-38097Y27432D01* +X-38066Y27426D01* +X-38037Y27416D01* +X-38012Y27403D01* +X-37991Y27386D01* +X-37972Y27367D01* +X-37958Y27344D01* +X-37946Y27318D01* +X-37904Y27369D01* +X-37856Y27405D01* +X-37803Y27426D01* +X-37743Y27433D01* +X-37697Y27430D01* +X-37656Y27420D01* +X-37621Y27403D01* +X-37592Y27379D01* +X-37569Y27348D01* +X-37553Y27310D01* +X-37543Y27265D01* +X-37539Y27212D01* +X-37539Y26760D01* +X-37650Y26760D01* +X-37650Y27175D01* +X-37651Y27206D01* +X-37653Y27232D01* +X-37657Y27254D01* +X-37661Y27271D01* +X-37668Y27285D01* +X-37677Y27298D01* +X-37688Y27309D01* +X-37701Y27319D01* +X-37716Y27327D01* +X-37732Y27332D01* +X-37749Y27336D01* +X-37768Y27337D01* +X-37801Y27334D01* +X-37831Y27325D01* +X-37859Y27311D01* +X-37883Y27291D01* +X-37903Y27264D01* +X-37917Y27230D01* +X-37926Y27190D01* +X-37929Y27143D01* +X-37929Y26760D01* +X-38041Y26760D01* +X-38041Y27188D01* +X-38042Y27223D01* +X-38047Y27253D01* +X-38056Y27279D01* +X-38068Y27300D01* +X-38084Y27316D01* +X-38104Y27327D01* +X-38128Y27334D01* +X-38157Y27337D01* +X-38180Y27335D01* +X-38202Y27331D01* +X-38224Y27323D01* +X-38244Y27312D01* +X-38263Y27298D01* +X-38279Y27281D01* +X-38292Y27262D01* +X-38302Y27239D01* +X-38310Y27213D01* +X-38316Y27181D01* +X-38319Y27144D01* +X-38320Y27102D01* +X-38320Y26760D01* +X-38432Y26760D01* +X-38432Y26760D01* +X-64602Y28747D02* +X-64602Y28996D01* +X-64849Y28996D01* +X-64849Y29100D01* +X-64602Y29100D01* +X-64602Y29348D01* +X-64496Y29348D01* +X-64496Y29100D01* +X-64249Y29100D01* +X-64249Y28996D01* +X-64496Y28996D01* +X-64496Y28747D01* +X-64602Y28747D01* +X-64602Y28747D01* +X-35907Y36525D02* +X-35907Y37434D01* +X-35787Y37434D01* +X-35787Y36632D01* +X-35339Y36632D01* +X-35339Y36525D01* +X-35907Y36525D01* +X-35907Y36525D01* +X-35193Y36525D02* +X-35193Y37434D01* +X-34536Y37434D01* +X-34536Y37327D01* +X-35073Y37327D01* +X-35073Y37048D01* +X-34570Y37048D01* +X-34570Y36942D01* +X-35073Y36942D01* +X-35073Y36632D01* +X-34515Y36632D01* +X-34515Y36525D01* +X-35193Y36525D01* +X-35193Y36525D01* +X-34349Y36525D02* +X-34349Y37434D01* +X-34037Y37434D01* +X-34037Y37327D01* +X-34228Y37327D01* +X-34228Y36632D01* +X-34228Y36632D01* +X-34034Y36632D01* +X-33992Y36633D01* +X-33954Y36636D01* +X-33921Y36642D01* +X-33893Y36649D01* +X-33869Y36658D01* +X-33847Y36669D01* +X-33828Y36682D01* +X-33812Y36696D01* +X-33791Y36719D01* +X-33774Y36746D01* +X-33758Y36777D01* +X-33745Y36811D01* +X-33734Y36849D01* +X-33727Y36891D01* +X-33723Y36937D01* +X-33721Y36986D01* +X-33724Y37054D01* +X-33733Y37112D01* +X-33747Y37163D01* +X-33768Y37206D01* +X-33793Y37241D01* +X-33820Y37270D01* +X-33849Y37292D01* +X-33882Y37308D01* +X-33910Y37316D01* +X-33945Y37322D01* +X-33987Y37326D01* +X-34037Y37327D01* +X-34037Y37434D01* +X-34035Y37434D01* +X-33986Y37433D01* +X-33942Y37431D01* +X-33905Y37427D01* +X-33874Y37421D01* +X-33836Y37410D01* +X-33801Y37396D01* +X-33769Y37378D01* +X-33740Y37356D01* +X-33707Y37323D01* +X-33677Y37287D01* +X-33653Y37246D01* +X-33633Y37201D01* +X-33617Y37152D01* +X-33606Y37099D01* +X-33599Y37044D01* +X-33597Y36985D01* +X-33599Y36934D01* +X-33603Y36887D01* +X-33611Y36842D01* +X-33621Y36801D01* +X-33634Y36763D01* +X-33649Y36728D01* +X-33665Y36696D01* +X-33683Y36669D01* +X-33703Y36644D01* +X-33723Y36622D01* +X-33744Y36603D01* +X-33766Y36586D01* +X-33790Y36572D01* +X-33816Y36560D01* +X-33844Y36549D01* +X-33875Y36541D01* +X-33907Y36534D01* +X-33943Y36529D01* +X-33981Y36526D01* +X-34021Y36525D01* +X-34349Y36525D01* +X-34349Y36525D01* +X-65411Y25859D02* +X-65184Y25879D01* +X-65173Y25814D01* +X-65157Y25755D01* +X-65136Y25702D01* +X-65109Y25655D01* +X-65075Y25614D01* +X-65034Y25576D01* +X-64984Y25543D01* +X-64926Y25514D01* +X-64862Y25490D01* +X-64794Y25473D01* +X-64722Y25463D01* +X-64647Y25460D01* +X-64580Y25462D01* +X-64517Y25470D01* +X-64459Y25483D01* +X-64404Y25501D01* +X-64354Y25523D01* +X-64312Y25549D01* +X-64276Y25579D01* +X-64247Y25613D01* +X-64224Y25649D01* +X-64208Y25688D01* +X-64199Y25727D01* +X-64195Y25769D01* +X-64199Y25810D01* +X-64208Y25849D01* +X-64223Y25885D01* +X-64245Y25918D01* +X-64274Y25949D01* +X-64311Y25977D01* +X-64356Y26002D01* +X-64409Y26025D01* +X-64456Y26042D01* +X-64526Y26062D01* +X-64618Y26086D01* +X-64732Y26114D01* +X-64848Y26144D01* +X-64946Y26172D01* +X-65024Y26200D01* +X-65083Y26227D01* +X-65144Y26264D01* +X-65197Y26304D01* +X-65241Y26348D01* +X-65278Y26397D01* +X-65306Y26449D01* +X-65325Y26504D01* +X-65337Y26562D01* +X-65341Y26623D01* +X-65337Y26691D01* +X-65322Y26756D01* +X-65297Y26820D01* +X-65263Y26880D01* +X-65220Y26937D01* +X-65167Y26986D01* +X-65106Y27028D01* +X-65035Y27062D01* +X-64958Y27089D01* +X-64877Y27109D01* +X-64791Y27120D01* +X-64701Y27124D01* +X-64603Y27120D01* +X-64511Y27108D01* +X-64425Y27088D01* +X-64345Y27059D01* +X-64272Y27023D01* +X-64208Y26979D01* +X-64153Y26927D01* +X-64107Y26867D01* +X-64071Y26802D01* +X-64044Y26733D01* +X-64026Y26659D01* +X-64018Y26581D01* +X-64249Y26564D01* +X-64264Y26645D01* +X-64290Y26715D01* +X-64327Y26775D01* +X-64375Y26824D01* +X-64435Y26863D01* +X-64508Y26890D01* +X-64593Y26907D01* +X-64692Y26912D01* +X-64793Y26907D01* +X-64880Y26892D01* +X-64952Y26867D01* +X-65010Y26832D01* +X-65053Y26790D01* +X-65085Y26744D01* +X-65103Y26694D01* +X-65110Y26639D01* +X-65105Y26592D01* +X-65092Y26550D01* +X-65070Y26512D01* +X-65039Y26478D01* +X-64990Y26446D01* +X-64913Y26414D01* +X-64809Y26381D01* +X-64676Y26348D01* +X-64541Y26316D01* +X-64429Y26286D01* +X-64340Y26258D01* +X-64274Y26232D01* +X-64199Y26193D01* +X-64136Y26150D01* +X-64082Y26101D01* +X-64039Y26047D01* +X-64006Y25989D01* +X-63982Y25926D01* +X-63968Y25859D01* +X-63964Y25788D01* +X-63969Y25717D01* +X-63984Y25648D01* +X-64010Y25580D01* +X-64047Y25515D01* +X-64093Y25454D01* +X-64148Y25401D01* +X-64212Y25355D01* +X-64285Y25315D01* +X-64366Y25284D01* +X-64451Y25262D01* +X-64541Y25248D01* +X-64636Y25244D01* +X-64754Y25248D01* +X-64863Y25262D01* +X-64961Y25284D01* +X-65049Y25316D01* +X-65128Y25356D01* +X-65198Y25406D01* +X-65259Y25465D01* +X-65311Y25532D01* +X-65353Y25607D01* +X-65383Y25686D01* +X-65403Y25770D01* +X-65411Y25859D01* +X-65411Y25859D01* +X-63663Y24770D02* +X-63663Y26592D01* +X-63460Y26592D01* +X-63460Y26421D01* +X-63351Y26314D01* +X-63351Y26314D01* +X-63399Y26239D01* +X-63434Y26150D01* +X-63454Y26046D01* +X-63461Y25926D01* +X-63461Y25926D01* +X-63455Y25807D01* +X-63435Y25705D01* +X-63403Y25619D01* +X-63358Y25550D01* +X-63304Y25497D01* +X-63244Y25459D01* +X-63179Y25436D01* +X-63109Y25429D01* +X-63037Y25437D01* +X-62971Y25460D01* +X-62910Y25500D01* +X-62854Y25555D01* +X-62808Y25626D01* +X-62775Y25715D01* +X-62755Y25821D01* +X-62748Y25945D01* +X-62755Y26063D01* +X-62774Y26165D01* +X-62806Y26251D01* +X-62852Y26322D01* +X-62906Y26377D01* +X-62965Y26416D01* +X-63030Y26439D01* +X-63099Y26447D01* +X-63168Y26439D01* +X-63233Y26414D01* +X-63295Y26372D01* +X-63351Y26314D01* +X-63460Y26421D01* +X-63423Y26468D01* +X-63383Y26509D01* +X-63342Y26543D01* +X-63298Y26572D01* +X-63250Y26594D01* +X-63197Y26609D01* +X-63140Y26619D01* +X-63078Y26622D01* +X-62996Y26616D01* +X-62919Y26600D01* +X-62847Y26573D01* +X-62780Y26535D01* +X-62720Y26487D01* +X-62667Y26430D01* +X-62622Y26365D01* +X-62586Y26290D01* +X-62557Y26209D01* +X-62536Y26124D01* +X-62524Y26036D01* +X-62520Y25943D01* +X-62524Y25845D01* +X-62538Y25751D01* +X-62561Y25663D01* +X-62592Y25579D01* +X-62633Y25503D01* +X-62681Y25437D01* +X-62738Y25379D01* +X-62803Y25331D01* +X-62873Y25294D01* +X-62945Y25267D01* +X-63019Y25251D01* +X-63094Y25245D01* +X-63148Y25248D01* +X-63200Y25257D01* +X-63249Y25272D01* +X-63294Y25292D01* +X-63337Y25317D01* +X-63375Y25346D01* +X-63410Y25377D01* +X-63440Y25411D01* +X-63440Y24770D01* +X-63663Y24770D01* +X-63663Y24770D01* +X-62334Y25934D02* +X-62321Y26105D01* +X-62283Y26252D01* +X-62219Y26376D01* +X-62130Y26476D01* +X-62041Y26540D01* +X-61942Y26585D01* +X-61834Y26613D01* +X-61716Y26622D01* +X-61587Y26611D01* +X-61469Y26577D01* +X-61365Y26522D01* +X-61272Y26444D01* +X-61197Y26346D01* +X-61143Y26232D01* +X-61111Y26101D01* +X-61100Y25952D01* +X-61105Y25832D01* +X-61119Y25725D01* +X-61143Y25632D01* +X-61176Y25552D01* +X-61219Y25483D01* +X-61270Y25423D01* +X-61330Y25370D01* +X-61398Y25326D01* +X-61473Y25291D01* +X-61550Y25265D01* +X-61632Y25250D01* +X-61716Y25245D01* +X-61732Y25247D01* +X-61716Y25429D01* +X-61637Y25437D01* +X-61564Y25460D01* +X-61498Y25500D01* +X-61440Y25555D01* +X-61391Y25627D01* +X-61357Y25715D01* +X-61336Y25820D01* +X-61329Y25941D01* +X-61336Y26056D01* +X-61357Y26156D01* +X-61392Y26241D01* +X-61440Y26311D01* +X-61499Y26366D01* +X-61565Y26406D01* +X-61637Y26429D01* +X-61716Y26437D01* +X-61796Y26429D01* +X-61869Y26406D01* +X-61935Y26367D01* +X-61994Y26312D01* +X-62042Y26241D01* +X-62077Y26155D01* +X-62097Y26052D01* +X-62104Y25934D01* +X-62104Y25934D01* +X-62097Y25815D01* +X-62077Y25712D01* +X-62042Y25626D01* +X-61994Y25555D01* +X-61935Y25500D01* +X-61869Y25460D01* +X-61796Y25437D01* +X-61716Y25429D01* +X-61732Y25247D01* +X-61848Y25256D01* +X-61966Y25290D01* +X-62071Y25345D01* +X-62163Y25423D01* +X-62238Y25521D01* +X-62291Y25639D01* +X-62323Y25777D01* +X-62334Y25934D01* +X-62334Y25934D01* +X-60841Y25275D02* +X-60841Y26592D01* +X-60640Y26592D01* +X-60640Y26392D01* +X-60602Y26457D01* +X-60566Y26509D01* +X-60531Y26549D01* +X-60498Y26577D01* +X-60464Y26597D01* +X-60429Y26611D01* +X-60393Y26619D01* +X-60354Y26622D01* +X-60298Y26617D01* +X-60241Y26604D01* +X-60183Y26581D01* +X-60125Y26550D01* +X-60202Y26343D01* +X-60243Y26364D01* +X-60284Y26379D01* +X-60325Y26388D01* +X-60366Y26391D01* +X-60401Y26388D01* +X-60435Y26380D01* +X-60467Y26366D01* +X-60497Y26347D01* +X-60524Y26323D01* +X-60547Y26295D01* +X-60566Y26262D01* +X-60580Y26225D01* +X-60596Y26164D01* +X-60608Y26100D01* +X-60615Y26034D01* +X-60617Y25965D01* +X-60617Y25275D01* +X-60841Y25275D01* +X-60841Y25275D01* +X-59505Y25475D02* +X-59473Y25277D01* +X-59519Y25269D01* +X-59562Y25263D01* +X-59603Y25259D01* +X-59641Y25258D01* +X-59699Y25260D01* +X-59749Y25267D01* +X-59793Y25279D01* +X-59830Y25296D01* +X-59861Y25317D01* +X-59887Y25341D01* +X-59908Y25367D01* +X-59924Y25397D01* +X-59936Y25437D01* +X-59945Y25494D01* +X-59950Y25569D01* +X-59951Y25661D01* +X-59951Y26418D01* +X-60115Y26418D01* +X-60115Y26592D01* +X-59951Y26592D01* +X-59951Y26918D01* +X-59729Y27052D01* +X-59729Y26592D01* +X-59505Y26592D01* +X-59505Y26418D01* +X-59729Y26418D01* +X-59729Y25648D01* +X-59729Y25605D01* +X-59726Y25570D01* +X-59723Y25543D01* +X-59718Y25526D01* +X-59711Y25513D01* +X-59702Y25501D01* +X-59692Y25491D01* +X-59679Y25482D01* +X-59664Y25475D01* +X-59647Y25470D01* +X-59626Y25467D01* +X-59603Y25466D01* +X-59583Y25467D01* +X-59560Y25468D01* +X-59534Y25471D01* +X-59505Y25475D01* +X-59505Y25475D01* +X-59285Y25275D02* +X-59285Y26592D01* +X-59062Y26592D01* +X-59062Y25275D01* +X-59285Y25275D01* +X-59285Y25275D01* +X-59285Y26836D02* +X-59285Y27093D01* +X-59062Y27093D01* +X-59062Y26836D01* +X-59285Y26836D01* +X-59285Y26836D01* +X-57868Y25275D02* +X-57868Y25441D01* +X-57969Y25546D01* +X-57966Y25548D01* +X-57922Y25616D01* +X-57890Y25700D01* +X-57871Y25799D01* +X-57864Y25914D01* +X-57871Y26040D01* +X-57890Y26148D01* +X-57923Y26238D01* +X-57968Y26311D01* +X-58023Y26366D01* +X-58085Y26405D01* +X-58152Y26429D01* +X-58225Y26437D01* +X-58296Y26430D01* +X-58362Y26407D01* +X-58421Y26369D01* +X-58474Y26316D01* +X-58517Y26246D01* +X-58549Y26159D01* +X-58567Y26054D01* +X-58574Y25932D01* +X-58574Y25932D01* +X-58567Y25814D01* +X-58547Y25711D01* +X-58514Y25625D01* +X-58467Y25554D01* +X-58411Y25499D01* +X-58351Y25460D01* +X-58285Y25437D01* +X-58215Y25429D01* +X-58145Y25436D01* +X-58080Y25459D01* +X-58020Y25496D01* +X-57969Y25546D01* +X-57868Y25441D01* +X-57938Y25355D01* +X-58023Y25294D01* +X-58122Y25257D01* +X-58236Y25245D01* +X-58313Y25251D01* +X-58387Y25267D01* +X-58458Y25294D01* +X-58526Y25332D01* +X-58588Y25380D01* +X-58643Y25436D01* +X-58690Y25501D01* +X-58730Y25575D01* +X-58762Y25655D01* +X-58785Y25742D01* +X-58798Y25834D01* +X-58803Y25932D01* +X-58799Y26029D01* +X-58787Y26120D01* +X-58766Y26208D01* +X-58737Y26290D01* +X-58700Y26366D01* +X-58655Y26432D01* +X-58602Y26489D01* +X-58540Y26536D01* +X-58472Y26574D01* +X-58401Y26600D01* +X-58325Y26617D01* +X-58246Y26622D01* +X-58188Y26619D01* +X-58134Y26609D01* +X-58082Y26594D01* +X-58034Y26572D01* +X-57990Y26545D01* +X-57950Y26514D01* +X-57914Y26479D01* +X-57883Y26441D01* +X-57883Y27093D01* +X-57661Y27093D01* +X-57661Y25275D01* +X-57868Y25275D01* +X-57868Y25275D01* +X-56447Y25275D02* +X-56447Y25468D01* +X-56530Y25371D01* +X-56628Y25301D01* +X-56739Y25259D01* +X-56864Y25245D01* +X-56922Y25248D01* +X-56977Y25256D01* +X-57031Y25270D01* +X-57082Y25290D01* +X-57129Y25314D01* +X-57170Y25340D01* +X-57204Y25370D01* +X-57232Y25402D01* +X-57255Y25438D01* +X-57274Y25477D01* +X-57289Y25521D01* +X-57301Y25568D01* +X-57307Y25605D01* +X-57311Y25653D01* +X-57314Y25710D01* +X-57315Y25776D01* +X-57315Y26592D01* +X-57091Y26592D01* +X-57091Y25862D01* +X-57091Y25781D01* +X-57088Y25715D01* +X-57084Y25664D01* +X-57078Y25626D01* +X-57064Y25584D01* +X-57045Y25547D01* +X-57020Y25515D01* +X-56988Y25488D01* +X-56952Y25466D01* +X-56912Y25450D01* +X-56868Y25441D01* +X-56820Y25437D01* +X-56770Y25441D01* +X-56722Y25450D01* +X-56676Y25466D01* +X-56631Y25489D01* +X-56590Y25517D01* +X-56556Y25550D01* +X-56528Y25587D01* +X-56507Y25629D01* +X-56491Y25678D01* +X-56479Y25738D01* +X-56472Y25807D01* +X-56470Y25886D01* +X-56470Y26592D01* +X-56247Y26592D01* +X-56247Y25275D01* +X-56447Y25275D01* +X-56447Y25275D01* +X-55896Y25275D02* +X-55896Y26592D01* +X-55673Y26592D01* +X-55673Y25275D01* +X-55896Y25275D01* +X-55896Y25275D01* +X-55896Y26836D02* +X-55896Y27093D01* +X-55673Y27093D01* +X-55673Y26836D01* +X-55896Y26836D01* +X-55896Y26836D01* +X-55333Y25275D02* +X-55333Y26592D01* +X-55132Y26592D01* +X-55132Y26405D01* +X-55051Y26500D01* +X-54955Y26568D01* +X-54842Y26608D01* +X-54713Y26622D01* +X-54654Y26619D01* +X-54598Y26611D01* +X-54545Y26598D01* +X-54494Y26579D01* +X-54447Y26556D01* +X-54407Y26530D01* +X-54372Y26500D01* +X-54344Y26467D01* +X-54321Y26431D01* +X-54302Y26391D01* +X-54287Y26348D01* +X-54275Y26302D01* +X-54269Y26265D01* +X-54266Y26217D01* +X-54263Y26157D01* +X-54263Y26085D01* +X-54263Y25275D01* +X-54486Y25275D01* +X-54486Y26076D01* +X-54487Y26140D01* +X-54492Y26195D01* +X-54500Y26242D01* +X-54512Y26280D01* +X-54527Y26312D01* +X-54548Y26341D01* +X-54574Y26366D01* +X-54604Y26388D01* +X-54639Y26406D01* +X-54676Y26418D01* +X-54717Y26426D01* +X-54760Y26428D01* +X-54829Y26423D01* +X-54893Y26406D01* +X-54952Y26377D01* +X-55006Y26338D01* +X-55051Y26282D01* +X-55084Y26207D01* +X-55103Y26111D01* +X-55110Y25994D01* +X-55110Y25275D01* +X-55333Y25275D01* +X-55333Y25275D01* +X-54003Y25934D02* +X-53991Y26105D01* +X-53952Y26252D01* +X-53889Y26376D01* +X-53800Y26476D01* +X-53710Y26540D01* +X-53611Y26585D01* +X-53503Y26613D01* +X-53386Y26622D01* +X-53256Y26611D01* +X-53139Y26577D01* +X-53034Y26522D01* +X-52942Y26444D01* +X-52866Y26346D01* +X-52812Y26232D01* +X-52780Y26101D01* +X-52769Y25952D01* +X-52774Y25832D01* +X-52788Y25725D01* +X-52812Y25632D01* +X-52846Y25552D01* +X-52888Y25483D01* +X-52939Y25423D01* +X-52999Y25370D01* +X-53068Y25326D01* +X-53142Y25291D01* +X-53220Y25265D01* +X-53301Y25250D01* +X-53386Y25245D01* +X-53401Y25247D01* +X-53386Y25429D01* +X-53306Y25437D01* +X-53233Y25460D01* +X-53168Y25500D01* +X-53109Y25555D01* +X-53061Y25627D01* +X-53026Y25715D01* +X-53006Y25820D01* +X-52999Y25941D01* +X-53006Y26056D01* +X-53026Y26156D01* +X-53061Y26241D01* +X-53110Y26311D01* +X-53169Y26366D01* +X-53234Y26406D01* +X-53307Y26429D01* +X-53386Y26437D01* +X-53466Y26429D01* +X-53539Y26406D01* +X-53605Y26367D01* +X-53663Y26312D01* +X-53712Y26241D01* +X-53746Y26155D01* +X-53767Y26052D01* +X-53774Y25934D01* +X-53774Y25934D01* +X-53767Y25815D01* +X-53746Y25712D01* +X-53712Y25626D01* +X-53663Y25555D01* +X-53605Y25500D01* +X-53539Y25460D01* +X-53466Y25437D01* +X-53386Y25429D01* +X-53401Y25247D01* +X-53517Y25256D01* +X-53636Y25290D01* +X-53741Y25345D01* +X-53833Y25423D01* +X-53907Y25521D01* +X-53961Y25639D01* +X-53993Y25777D01* +X-54003Y25934D01* +X-54003Y25934D01* +X-68307Y31675D02* +X-68307Y32584D01* +X-67966Y32584D01* +X-67916Y32582D01* +X-67872Y32577D01* +X-67833Y32569D01* +X-67799Y32556D01* +X-67769Y32541D01* +X-67743Y32521D01* +X-67720Y32498D01* +X-67700Y32472D01* +X-67685Y32443D01* +X-67673Y32413D01* +X-67667Y32383D01* +X-67665Y32352D01* +X-67667Y32323D01* +X-67672Y32295D01* +X-67682Y32268D01* +X-67696Y32242D01* +X-67714Y32217D01* +X-67736Y32195D01* +X-67762Y32176D01* +X-67792Y32159D01* +X-67827Y32073D01* +X-67843Y32080D01* +X-67869Y32086D01* +X-67900Y32091D01* +X-67936Y32094D01* +X-67976Y32095D01* +X-68187Y32095D01* +X-68187Y31782D01* +X-68187Y31782D01* +X-67960Y31782D01* +X-67933Y31783D01* +X-67911Y31783D01* +X-67892Y31785D01* +X-67878Y31787D01* +X-67859Y31791D01* +X-67840Y31797D01* +X-67824Y31803D01* +X-67809Y31811D01* +X-67796Y31821D01* +X-67784Y31833D01* +X-67773Y31846D01* +X-67763Y31862D01* +X-67755Y31879D01* +X-67750Y31898D01* +X-67746Y31917D01* +X-67745Y31939D01* +X-67747Y31963D01* +X-67752Y31986D01* +X-67760Y32007D01* +X-67771Y32027D01* +X-67785Y32044D01* +X-67802Y32059D01* +X-67822Y32071D01* +X-67827Y32073D01* +X-67792Y32159D01* +X-67835Y32231D01* +X-67819Y32243D01* +X-67806Y32258D01* +X-67796Y32275D01* +X-67789Y32294D01* +X-67784Y32314D01* +X-67783Y32337D01* +X-67784Y32359D01* +X-67788Y32380D01* +X-67795Y32399D01* +X-67805Y32417D01* +X-67817Y32433D01* +X-67831Y32446D01* +X-67848Y32456D01* +X-67867Y32464D01* +X-67890Y32470D01* +X-67921Y32474D01* +X-67960Y32476D01* +X-68005Y32477D01* +X-68187Y32477D01* +X-68187Y32202D01* +X-68187Y32202D01* +X-67990Y32202D01* +X-67953Y32203D01* +X-67921Y32205D01* +X-67896Y32208D01* +X-67875Y32213D01* +X-67854Y32221D01* +X-67835Y32231D01* +X-67792Y32159D01* +X-67753Y32144D01* +X-67719Y32126D01* +X-67689Y32103D01* +X-67665Y32076D01* +X-67645Y32046D01* +X-67632Y32013D01* +X-67623Y31977D01* +X-67621Y31939D01* +X-67622Y31907D01* +X-67627Y31877D01* +X-67636Y31848D01* +X-67647Y31820D01* +X-67662Y31794D01* +X-67678Y31771D01* +X-67695Y31752D01* +X-67714Y31735D01* +X-67735Y31721D01* +X-67759Y31709D01* +X-67785Y31699D01* +X-67814Y31690D01* +X-67845Y31684D01* +X-67880Y31679D01* +X-67919Y31676D01* +X-67960Y31675D01* +X-68307Y31675D01* +X-68307Y31675D01* +X-67038Y31675D02* +X-67038Y31772D01* +X-67079Y31723D01* +X-67128Y31688D01* +X-67184Y31667D01* +X-67247Y31660D01* +X-67275Y31662D01* +X-67303Y31666D01* +X-67330Y31673D01* +X-67355Y31682D01* +X-67379Y31694D01* +X-67399Y31708D01* +X-67417Y31722D01* +X-67430Y31739D01* +X-67442Y31756D01* +X-67451Y31776D01* +X-67459Y31798D01* +X-67465Y31821D01* +X-67468Y31840D01* +X-67470Y31864D01* +X-67471Y31892D01* +X-67472Y31926D01* +X-67472Y32334D01* +X-67360Y32334D01* +X-67360Y31968D01* +X-67360Y31928D01* +X-67358Y31895D01* +X-67356Y31869D01* +X-67353Y31850D01* +X-67346Y31830D01* +X-67337Y31811D01* +X-67324Y31795D01* +X-67309Y31781D01* +X-67291Y31770D01* +X-67270Y31763D01* +X-67248Y31758D01* +X-67224Y31756D01* +X-67200Y31758D01* +X-67176Y31763D01* +X-67152Y31771D01* +X-67130Y31782D01* +X-67110Y31796D01* +X-67092Y31812D01* +X-67078Y31831D01* +X-67068Y31852D01* +X-67060Y31877D01* +X-67054Y31906D01* +X-67051Y31941D01* +X-67049Y31981D01* +X-67049Y32334D01* +X-66938Y32334D01* +X-66938Y31675D01* +X-67038Y31675D01* +X-67038Y31675D01* +X-66822Y31675D02* +X-66822Y31766D01* +X-66403Y32247D01* +X-66437Y32245D01* +X-66470Y32244D01* +X-66500Y32243D01* +X-66528Y32243D01* +X-66797Y32243D01* +X-66797Y32334D01* +X-66259Y32334D01* +X-66259Y32260D01* +X-66615Y31842D01* +X-66684Y31766D01* +X-66647Y31768D01* +X-66611Y31770D01* +X-66577Y31771D01* +X-66543Y31771D01* +X-66239Y31771D01* +X-66239Y31675D01* +X-66822Y31675D01* +X-66822Y31675D01* +X-66187Y31675D02* +X-66187Y31766D01* +X-65768Y32247D01* +X-65802Y32245D01* +X-65835Y32244D01* +X-65865Y32243D01* +X-65893Y32243D01* +X-66162Y32243D01* +X-66162Y32334D01* +X-65624Y32334D01* +X-65624Y32260D01* +X-65980Y31842D01* +X-66049Y31766D01* +X-66012Y31768D01* +X-65976Y31770D01* +X-65942Y31771D01* +X-65908Y31771D01* +X-65604Y31771D01* +X-65604Y31675D01* +X-66187Y31675D01* +X-66187Y31675D01* +X-65042Y31887D02* +X-64927Y31873D01* +X-64943Y31825D01* +X-64966Y31783D01* +X-64994Y31747D01* +X-65028Y31716D01* +X-65067Y31692D01* +X-65112Y31674D01* +X-65161Y31664D01* +X-65216Y31660D01* +X-65285Y31666D01* +X-65346Y31682D01* +X-65399Y31710D01* +X-65445Y31749D01* +X-65482Y31798D01* +X-65509Y31856D01* +X-65525Y31923D01* +X-65530Y31999D01* +X-65525Y32077D01* +X-65509Y32146D01* +X-65482Y32206D01* +X-65444Y32257D01* +X-65398Y32297D01* +X-65346Y32326D01* +X-65287Y32343D01* +X-65222Y32348D01* +X-65213Y32348D01* +X-65221Y32257D01* +X-65258Y32253D01* +X-65292Y32244D01* +X-65323Y32228D01* +X-65350Y32205D01* +X-65374Y32177D01* +X-65391Y32145D01* +X-65403Y32108D01* +X-65408Y32068D01* +X-65408Y32068D01* +X-65041Y32068D01* +X-65046Y32106D01* +X-65055Y32140D01* +X-65067Y32169D01* +X-65083Y32192D01* +X-65112Y32220D01* +X-65144Y32241D01* +X-65181Y32253D01* +X-65221Y32257D01* +X-65213Y32348D01* +X-65159Y32343D01* +X-65102Y32326D01* +X-65051Y32298D01* +X-65007Y32259D01* +X-64970Y32209D01* +X-64944Y32150D01* +X-64928Y32082D01* +X-64923Y32006D01* +X-64923Y32000D01* +X-64923Y31993D01* +X-64923Y31985D01* +X-64924Y31976D01* +X-65415Y31976D01* +X-65408Y31925D01* +X-65396Y31880D01* +X-65378Y31842D01* +X-65353Y31810D01* +X-65324Y31784D01* +X-65291Y31766D01* +X-65255Y31755D01* +X-65216Y31752D01* +X-65186Y31754D01* +X-65159Y31760D01* +X-65134Y31770D01* +X-65111Y31784D01* +X-65090Y31803D01* +X-65072Y31826D01* +X-65056Y31854D01* +X-65042Y31887D01* +X-65042Y31887D01* +X-64788Y31675D02* +X-64788Y32334D01* +X-64687Y32334D01* +X-64687Y32234D01* +X-64668Y32266D01* +X-64650Y32292D01* +X-64633Y32312D01* +X-64616Y32326D01* +X-64600Y32336D01* +X-64582Y32343D01* +X-64564Y32347D01* +X-64545Y32348D01* +X-64516Y32346D01* +X-64488Y32339D01* +X-64459Y32328D01* +X-64430Y32312D01* +X-64468Y32209D01* +X-64489Y32220D01* +X-64509Y32227D01* +X-64530Y32232D01* +X-64550Y32233D01* +X-64568Y32232D01* +X-64585Y32228D01* +X-64601Y32221D01* +X-64616Y32211D01* +X-64629Y32199D01* +X-64641Y32185D01* +X-64650Y32168D01* +X-64657Y32150D01* +X-64666Y32120D01* +X-64671Y32088D01* +X-64675Y32054D01* +X-64676Y32020D01* +X-64676Y31675D01* +X-64788Y31675D01* +X-64788Y31675D01* +X-39957Y32972D02* +X-39957Y33221D01* +X-40204Y33221D01* +X-40204Y33325D01* +X-39957Y33325D01* +X-39957Y33573D01* +X-39851Y33573D01* +X-39851Y33325D01* +X-39604Y33325D01* +X-39604Y33221D01* +X-39851Y33221D01* +X-39851Y32972D01* +X-39957Y32972D01* +X-39957Y32972D01* +G37* +M02* \ No newline at end of file diff --git a/gerbonara/gerber/tests/resources/upverter/design_export.gtp b/gerbonara/gerber/tests/resources/upverter/design_export.gtp new file mode 100644 index 0000000..490c529 --- /dev/null +++ b/gerbonara/gerber/tests/resources/upverter/design_export.gtp @@ -0,0 +1,4 @@ +%FSLAX33Y33*% +%MOMM*% +%LNtop paste_traces*% +M02* \ No newline at end of file diff --git a/gerbonara/gerber/tests/resources/upverter/design_export.gts b/gerbonara/gerber/tests/resources/upverter/design_export.gts new file mode 100644 index 0000000..32ecd25 --- /dev/null +++ b/gerbonara/gerber/tests/resources/upverter/design_export.gts @@ -0,0 +1,118 @@ +%FSLAX33Y33*% +%MOMM*% +%AMRect-W1650000-H1650000-RO1.500* +21,1,1.65,1.65,0.,0.,90*% +%AMRect-W1650000-H1650000-RO0.500* +21,1,1.65,1.65,0.,0.,270*% +%AMRect-W2000000-H2000000-RO1.500* +21,1,2.,2.,0.,0.,90*% +%AMRect-W1400000-H1400000-RO1.000* +21,1,1.4,1.4,0.,0.,180*% +%ADD10C,1.0668*% +%ADD11C,1.65*% +%ADD12Rect-W1650000-H1650000-RO1.500*% +%ADD13C,1.65*% +%ADD14C,1.65*% +%ADD15Rect-W1650000-H1650000-RO0.500*% +%ADD16C,2.*% +%ADD17C,2.*% +%ADD18C,1.6*% +%ADD19C,2.029999*% +%ADD20C,2.029999*% +%ADD21Rect-W2000000-H2000000-RO1.500*% +%ADD22C,1.35*% +%ADD23C,1.35*% +%ADD24C,1.4*% +%ADD25Rect-W1400000-H1400000-RO1.000*% +D10* +%LNtop solder mask_traces*% +G01* +X-33975Y29575D03* +%LNtop solder mask component 104f474019bc45ae*% +D11* +X-57600Y35425D03* +X-55060Y35425D03* +X-52520Y35425D03* +X-49980Y35425D03* +X-47440Y35425D03* +X-44900Y35425D03* +X-42360Y35425D03* +D12* +X-60140Y35425D03* +%LNtop solder mask component 6423f2fbdbf0fd51*% +D13* +X-34000Y-4840D03* +X-34000Y-7380D03* +X-34000Y-9920D03* +X-34000Y-12460D03* +X-34000Y-15000D03* +X-34000Y-17540D03* +%LNtop solder mask component 2e760206f6eb6219*% +D14* +X-58840Y2815D03* +X-61380Y2815D03* +X-63920Y2815D03* +X-66460Y2815D03* +X-69000Y2815D03* +D15* +X-56300Y2815D03* +%LNtop solder mask component 725756eb9d5a0c3e*% +D16* +X-35110Y10420D03* +X-35110Y12960D03* +D17* +X-35110Y21945D03* +X-37610Y21945D03* +X-40210Y21945D03* +X-42710Y21945D03* +D18* +X-45310Y21945D03* +X-47810Y21945D03* +X-50410Y21945D03* +X-52910Y21945D03* +D17* +X-55510Y21945D03* +X-58010Y21945D03* +X-60510Y21945D03* +X-63010Y21945D03* +X-37610Y6705D03* +X-40210Y6705D03* +X-42710Y6705D03* +X-45210Y6705D03* +X-47810Y6705D03* +X-50410Y6705D03* +X-52910Y6705D03* +X-60510Y6705D03* +X-58010Y6705D03* +X-63050Y6705D03* +X-55410Y6705D03* +D19* +X-35110Y18300D03* +X-35110Y15635D03* +D20* +X-65590Y7975D03* +X-65590Y10515D03* +X-65590Y13055D03* +X-65590Y15595D03* +X-65590Y18135D03* +X-65590Y20675D03* +D21* +X-35110Y6705D03* +%LNtop solder mask component e41e54bbfcc8de48*% +D22* +X-50245Y29675D03* +X-60405Y29675D03* +%LNtop solder mask component bcffb8a9274f0d14*% +D23* +X-46525Y29725D03* +X-36365Y29725D03* +%LNtop solder mask component 51561cf638072ae7*% +D18* +X-66525Y30525D03* +X-66525Y34525D03* +%LNtop solder mask component 243e2b77924b8e62*% +D24* +X-39770Y35425D03* +D25* +X-37230Y35425D03* +M02* \ No newline at end of file diff --git a/gerbonara/gerber/tests/resources/upverter/design_export.xln b/gerbonara/gerber/tests/resources/upverter/design_export.xln new file mode 100644 index 0000000..210700b --- /dev/null +++ b/gerbonara/gerber/tests/resources/upverter/design_export.xln @@ -0,0 +1,102 @@ +%FSLAX33Y33*% +%MOMM*% +%ADD10C,0.635*% +%ADD11C,1.1*% +%ADD12C,1.1*% +%ADD13C,1.1*% +%ADD14C,1.15*% +%ADD15C,1.15*% +%ADD16C,1.*% +%ADD17C,1.016*% +%ADD18C,1.016*% +%ADD19C,0.85*% +%ADD20C,0.85*% +%ADD21C,0.9*% +D10* +%LNhole_traces*% +G01* +X-33975Y29575D03* +%LNhole component 104f474019bc45ae*% +D11* +X-60140Y35425D03* +X-57600Y35425D03* +X-55060Y35425D03* +X-52520Y35425D03* +X-49980Y35425D03* +X-47440Y35425D03* +X-44900Y35425D03* +X-42360Y35425D03* +%LNhole component 6423f2fbdbf0fd51*% +D12* +X-34000Y-4840D03* +X-34000Y-7380D03* +X-34000Y-9920D03* +X-34000Y-12460D03* +X-34000Y-15000D03* +X-34000Y-17540D03* +%LNhole component 2e760206f6eb6219*% +D13* +X-58840Y2815D03* +X-61380Y2815D03* +X-63920Y2815D03* +X-66460Y2815D03* +X-56300Y2815D03* +X-69000Y2815D03* +%LNhole component 725756eb9d5a0c3e*% +D14* +X-35110Y10420D03* +X-35110Y12960D03* +D15* +X-35110Y21945D03* +X-37610Y21945D03* +X-40210Y21945D03* +X-42710Y21945D03* +D16* +X-45310Y21945D03* +X-47810Y21945D03* +X-50410Y21945D03* +X-52910Y21945D03* +D15* +X-55510Y21945D03* +X-58010Y21945D03* +X-60510Y21945D03* +X-63010Y21945D03* +X-35110Y6705D03* +X-37610Y6705D03* +X-40210Y6705D03* +X-42710Y6705D03* +X-45210Y6705D03* +X-47810Y6705D03* +X-50410Y6705D03* +X-52910Y6705D03* +X-60510Y6705D03* +X-58010Y6705D03* +X-63050Y6705D03* +X-55410Y6705D03* +D17* +X-35110Y18300D03* +X-35110Y15635D03* +D18* +X-65590Y7975D03* +X-65590Y10515D03* +X-65590Y13055D03* +X-65590Y15595D03* +X-65590Y18135D03* +X-65590Y20675D03* +%LNhole component e41e54bbfcc8de48*% +D19* +X-50245Y29675D03* +X-60405Y29675D03* +%LNhole component bcffb8a9274f0d14*% +D20* +X-46525Y29725D03* +X-36365Y29725D03* +%LNhole component 51561cf638072ae7*% +D16* +X-66525Y30525D03* +X-66525Y34525D03* +%LNhole component 243e2b77924b8e62*% +D21* +X-37230Y35425D03* +X-39770Y35425D03* +M02* \ No newline at end of file diff --git a/gerbonara/gerber/tests/resources/upverter/layers.cfg b/gerbonara/gerber/tests/resources/upverter/layers.cfg new file mode 100644 index 0000000..db449b5 --- /dev/null +++ b/gerbonara/gerber/tests/resources/upverter/layers.cfg @@ -0,0 +1,10 @@ +hole, design_export.xln +top silkscreen, design_export.gto +top solder mask, design_export.gts +top paste, design_export.gtp +top copper, design_export.gtl +bottom copper, design_export.gbl +bottom paste, design_export.gbp +bottom solder mask, design_export.gbs +bottom silkscreen, design_export.gbo +mechanical details, design_export.gko -- cgit