eagle importer: fix incorrect conversion UTF8/wxString.

When importing a eagle board file using wxXmlDocument, the strings in eagle BOARD
(UTF8 encoded) are correctly converted to wxString (using unicode wide chars)
So trying to reconvert these strings using FROM_UTF8( <wxString>.c_str() )
is incorrect and can break initial string if non ASCII7 chars are found
This commit is contained in:
jean-pierre charras 2022-04-09 15:33:01 +02:00
parent 239f0214ac
commit 5e52539939
3 changed files with 210 additions and 211 deletions

View File

@ -662,7 +662,7 @@ void EAGLE_PLUGIN::loadLayerDefs( wxXmlNode* aLayers )
// these function provide their own protection against non enabled layers:
if( layer >= 0 && layer < PCB_LAYER_ID_COUNT ) // layer should be valid
{
m_board->SetLayerName( layer, FROM_UTF8( it->name.c_str() ) );
m_board->SetLayerName( layer, it->name );
m_board->SetLayerType( layer, LT_SIGNAL );
}
@ -749,7 +749,7 @@ void EAGLE_PLUGIN::loadPlain( wxXmlNode* aGraphics )
pcbtxt->SetLayer( layer );
wxString kicadText = interpret_text( t.text );
pcbtxt->SetText( FROM_UTF8( kicadText.c_str() ) );
pcbtxt->SetText( kicadText );
pcbtxt->SetTextPos( VECTOR2I( kicad_x( t.x ), kicad_y( t.y ) ) );
double ratio = t.ratio ? *t.ratio : 8; // DTD says 8 is default
@ -1166,8 +1166,7 @@ void EAGLE_PLUGIN::loadElements( wxXmlNode* aElements )
if( it == m_templates.end() )
{
wxString emsg = wxString::Format( _( "No '%s' package in library '%s'." ),
FROM_UTF8( e.package.c_str() ),
FROM_UTF8( e.library.c_str() ) );
e.package, e.library );
THROW_IO_ERROR( emsg );
}
@ -1225,7 +1224,7 @@ void EAGLE_PLUGIN::loadElements( wxXmlNode* aElements )
reference.Append( "0" );
footprint->SetReference( reference );
footprint->SetValue( FROM_UTF8( e.value.c_str() ) );
footprint->SetValue( e.value );
if( !e.smashed )
{
@ -1568,7 +1567,7 @@ void EAGLE_PLUGIN::orientFPText( FOOTPRINT* aFootprint, const EELEMENT& e, FP_TE
if( a.value )
{
aFPText->SetText( FROM_UTF8( a.value->c_str() ) );
aFPText->SetText( *a.value );
}
if( a.x && a.y ) // OPT
@ -1731,7 +1730,7 @@ FOOTPRINT* EAGLE_PLUGIN::makeFootprint( wxXmlNode* aPackage, const wxString& aPk
const wxString& itemName = packageItem->GetName();
if( itemName == wxT( "description" ) )
m->SetDescription( FROM_UTF8( packageItem->GetNodeContent().c_str() ) );
m->SetDescription( packageItem->GetNodeContent() );
else if( itemName == wxT( "wire" ) )
packageWire( m.get(), packageItem );
else if( itemName == wxT( "pad" ) )
@ -1957,7 +1956,7 @@ void EAGLE_PLUGIN::packageText( FOOTPRINT* aFootprint, wxXmlNode* aTree ) const
aFootprint->Add( txt );
}
txt->SetText( FROM_UTF8( t.text.c_str() ) );
txt->SetText( t.text );
VECTOR2I pos( kicad_x( t.x ), kicad_y( t.y ) );
@ -2428,7 +2427,7 @@ void EAGLE_PLUGIN::packageSMD( FOOTPRINT* aFootprint, wxXmlNode* aTree ) const
void EAGLE_PLUGIN::transferPad( const EPAD_COMMON& aEaglePad, PAD* aPad ) const
{
aPad->SetNumber( FROM_UTF8( aEaglePad.name.c_str() ) );
aPad->SetNumber( aEaglePad.name );
// pad's "Position" is not relative to the footprint's,
// whereas Pos0 is relative to the footprint's but is the unrotated coordinate.
@ -3135,7 +3134,7 @@ void EAGLE_PLUGIN::FootprintEnumerate( wxArrayString& aFootprintNames, const wxS
// the library.
for( FOOTPRINT_MAP::const_iterator it = m_templates.begin(); it != m_templates.end(); ++it )
aFootprintNames.Add( FROM_UTF8( it->first.c_str() ) );
aFootprintNames.Add( it->first );
if( !errorMsg.IsEmpty() && !aBestEfforts )
THROW_IO_ERROR( errorMsg );

View File

@ -1,13 +1,13 @@
(footprint "GP3906-TLP" (version 20220308) (generator pcbnew)
(footprint "GP3906-TLP" (version 20220331) (generator pcbnew)
(layer "F.Cu")
(descr "")
(descr "<h3>GP3906-TLP PoT GPS Module</h3>\n<p>The GP3906-TLP is a POT (Patch on Top) GPS module which is special designed for ultra low power consumption purpose environment. It is a GPS receiver providing a solution that high position and speed accuracy performances as well as high sensitivity and tracking capabilities in urban conditions. The GPS chipsets inside the module are designed by MediaTek Inc., which is the world's leading digital media solution provider and largest fab-less IC company in Taiwan. The module can support up to 66 channels. The GPS solution enables small form factor devices. They deliver major advancements in GPS performances, accuracy, integration, computing power and flexibility. They are designed to simplify the embedded system integration process.</p>\n\n<p>Features:\n<ul><li>Based on MediaTek Single Chip Architecture (MT3339).</li>\n<li>ARM7 based application processor</li>\n<li>High sensitivity: -165dBm tracking</li>\n<li>L1 frequency, C/A code</li>\n<li>Channels: 66 acquisition, 22 simultaneous tracking</li>\n<li>Low power consumption: 26mA @ acquisition, 20mA @ tracking</li>\n<li>Cold/Warm/Hot start time: <35/<33/<1 seconds</li>\n<li>Maximum update rate up to 10Hz</li>\n<li>GPS data interface: TTL level serial port</li>\n<li>Support NMEA 0183 standard V3.01 and backward compliance</li>\n<li>Support SBAS WAAS, EGNOS, GAGAN and MSAS</li>\n<li>Dimension16mm x 16mm x 6.7mm</li>\n<li>RoHS compliant</li>\n<li>Advanced software features</li>\n<ul><li>AlwaysLocate TM advanced location awareness technology</li>\n<li>EPO TM orbit prediction</li>\n<li>Supports logger function (LOCUS)</li></ul></ul></p>\n<p><a href=\"https://cdn.sparkfun.com/assets/learn_tutorials/4/6/8/GP3906-TLP_DataSheet_Rev_A01.pdf\">Datasheet</a></p>")
(fp_text reference ">NAME" (at -7.62 -8.382) (layer "F.SilkS")
(effects (font (size 0.48768 0.48768) (thickness 0.12192)) (justify left bottom))
(tstamp 65e96d96-25bc-4fb8-938a-bf16734ac8a0)
(tstamp 17d210dd-e5fd-4175-b1c9-9cfddae4ea65)
)
(fp_text value ">VALUE" (at -7.62 8.382) (layer "F.Fab")
(effects (font (size 0.48768 0.48768) (thickness 0.12192)) (justify left top))
(tstamp 0d49907b-5d77-43cd-a3af-f21f6423c7a9)
(tstamp 2b08b3bf-4fe1-4cee-84bd-1c2398b32a4d)
)
(fp_poly
(pts
@ -17,7 +17,7 @@
(xy -9.15 -7.4)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp 0729bb22-6bdf-4124-bc0b-4bfa03aadbf9))
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp 7da82794-59a1-44a5-9ffb-3131c0269652))
(fp_poly
(pts
(xy -9.15 -4.6)
@ -26,7 +26,7 @@
(xy -9.15 -5.9)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp 313605f2-4282-4cd6-815d-33b79681dc4c))
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp 729b5ece-45c5-40e5-9b45-127f581e7598))
(fp_poly
(pts
(xy -9.15 -3.1)
@ -35,7 +35,7 @@
(xy -9.15 -4.4)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp 08a6a99a-8636-45df-8799-76b5a6c9c368))
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp 7deed4e2-662b-49e5-a68a-b5d9d5b1c62e))
(fp_poly
(pts
(xy -9.15 -1.6)
@ -44,7 +44,7 @@
(xy -9.15 -2.9)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp c409899d-d803-4124-88ed-23df5d35ca38))
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp 98e1974d-1099-4441-9388-555b973aa395))
(fp_poly
(pts
(xy -9.15 -0.1)
@ -53,7 +53,7 @@
(xy -9.15 -1.4)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp 7db36c73-08b6-4f8d-afe5-4a798bf9ff84))
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp d4e1cbae-6546-487a-a7c9-0b421678319e))
(fp_poly
(pts
(xy -9.15 1.4)
@ -62,7 +62,7 @@
(xy -9.15 0.1)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp a1b25495-aae0-4a38-96f5-c41eee21cdcb))
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp 5d0ecd6d-5328-4457-8409-41fda829cf0d))
(fp_poly
(pts
(xy -9.15 2.9)
@ -71,7 +71,7 @@
(xy -9.15 1.6)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp 04b0f06e-9b4d-4697-a137-d693d8ab0b57))
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp ab2f2dc0-c301-4698-9303-5420c0a2a8d3))
(fp_poly
(pts
(xy -9.15 4.4)
@ -80,7 +80,7 @@
(xy -9.15 3.1)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp af0b0811-bada-4f74-a75c-a1d8bd7efd74))
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp d2e8dccf-6c41-43ad-8122-3c0db594f73d))
(fp_poly
(pts
(xy -9.15 5.9)
@ -89,7 +89,7 @@
(xy -9.15 4.6)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp b25c00ed-be02-4966-9246-77766dfb4923))
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp 41a1d987-7348-4526-b622-8cfc76d59bbd))
(fp_poly
(pts
(xy -9.15 7.4)
@ -98,7 +98,7 @@
(xy -9.15 6.1)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp ad0e5061-0a2c-46b7-8b82-3d26b70250f4))
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp 70dc4e0a-7759-4dbb-afe6-55aa427c6416))
(fp_poly
(pts
(xy 9.15 -7.4)
@ -107,7 +107,7 @@
(xy 9.15 -6.1)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp 6a32ba96-d9eb-4997-be55-afaaf5a5b15b))
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp a31c643b-3a79-4a3a-bd33-ffd43c1c997b))
(fp_poly
(pts
(xy 9.15 -5.9)
@ -116,7 +116,7 @@
(xy 9.15 -4.6)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp 57b13529-d05f-41df-a4aa-30cf0a3fe39e))
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp a0bf39d9-1b33-4e6f-b387-9e206f437d07))
(fp_poly
(pts
(xy 9.15 -4.4)
@ -125,7 +125,7 @@
(xy 9.15 -3.1)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp adaed14c-3485-452b-93ea-d9f72fbdd3dd))
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp 34d8b11a-c2a8-4bba-a734-14dc781b9b44))
(fp_poly
(pts
(xy 9.15 -2.9)
@ -134,7 +134,7 @@
(xy 9.15 -1.6)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp e59da9b9-c069-4c41-9416-5870cf2ee7bd))
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp 5e154a1f-efe9-4a87-8a13-cded2fe80e61))
(fp_poly
(pts
(xy 9.15 -1.4)
@ -143,7 +143,7 @@
(xy 9.15 -0.1)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp f1b0171c-799b-4b19-8987-dc348f066170))
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp 23782b4d-91f1-4a5f-8bec-9beaff414433))
(fp_poly
(pts
(xy 9.15 0.1)
@ -152,7 +152,7 @@
(xy 9.15 1.4)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp 83996a33-1ece-4bf4-adc7-e3ecf0afa52d))
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp 42ac3b9e-f8e5-4ca9-9c43-0cad4f53521a))
(fp_poly
(pts
(xy 9.15 1.6)
@ -161,7 +161,7 @@
(xy 9.15 2.9)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp a2167f1a-ac76-4ad1-a8a4-5ffd784f22ca))
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp 05ccd153-f5c2-440e-8204-8935292e8223))
(fp_poly
(pts
(xy 9.15 3.1)
@ -170,7 +170,7 @@
(xy 9.15 4.4)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp c4198515-708a-4d44-bb0a-65c0aef969f7))
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp 50903bee-53b1-44b7-ae00-05a277dcbfc8))
(fp_poly
(pts
(xy 9.15 4.6)
@ -179,7 +179,7 @@
(xy 9.15 5.9)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp caee4c63-c7fe-4b8f-962b-3b31e3e8bd5d))
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp 9d893fb7-2879-49f8-99f8-9abca5cb6418))
(fp_poly
(pts
(xy 9.15 6.1)
@ -188,41 +188,41 @@
(xy 9.15 7.4)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp f8f324ec-9e08-40c4-a37d-0d2a0999e4ed))
(stroke (width 0) (type default)) (fill solid) (layer "F.Paste") (tstamp 617c6db7-b7e7-4f1b-91ef-b26a2ec10742))
(fp_line (start -8 -8) (end -8 -7.45)
(stroke (width 0.2032) (type solid)) (layer "F.SilkS") (tstamp 134a5d17-ccd7-4307-942b-3b166a58add3))
(stroke (width 0.2032) (type solid)) (layer "F.SilkS") (tstamp bc62726f-0ea7-4566-986b-590663249018))
(fp_line (start -8 -8) (end 8 -8)
(stroke (width 0.2032) (type solid)) (layer "F.SilkS") (tstamp e5e97c30-7034-479e-b140-0b7e517218d4))
(stroke (width 0.2032) (type solid)) (layer "F.SilkS") (tstamp 384346b6-ef6a-4a4f-9a1f-e77476e8f283))
(fp_line (start -8 8) (end -8 7.45)
(stroke (width 0.2032) (type solid)) (layer "F.SilkS") (tstamp 49e3b25b-595e-46cb-beca-408b69d7be61))
(stroke (width 0.2032) (type solid)) (layer "F.SilkS") (tstamp a7940134-2e86-438b-a3c9-b5527dfd6b97))
(fp_line (start 8 -8) (end 8 -7.45)
(stroke (width 0.2032) (type solid)) (layer "F.SilkS") (tstamp f49ea8ed-a55a-47c6-832a-22ee4daad967))
(stroke (width 0.2032) (type solid)) (layer "F.SilkS") (tstamp be400875-e1b9-4cea-98ef-e1db1ea01d97))
(fp_line (start 8 -7.45) (end 8 7.45)
(stroke (width 0.127) (type solid)) (layer "F.SilkS") (tstamp 899dfcad-a4f3-478f-a847-67618b688fb7))
(stroke (width 0.127) (type solid)) (layer "F.SilkS") (tstamp b04adbcf-a6f8-4580-937a-be68223ca2f0))
(fp_line (start 8 8) (end -8 8)
(stroke (width 0.2032) (type solid)) (layer "F.SilkS") (tstamp c10bc1a9-0a76-4121-8bb4-1a5d1bf6c71c))
(stroke (width 0.2032) (type solid)) (layer "F.SilkS") (tstamp ab068c71-fea5-43b2-bff5-93049f3c46b9))
(fp_line (start 8 8) (end 8 7.45)
(stroke (width 0.2032) (type solid)) (layer "F.SilkS") (tstamp e7d2cc48-43eb-4468-96be-2c039b99722d))
(stroke (width 0.2032) (type solid)) (layer "F.SilkS") (tstamp a11171c9-ee78-4abe-b112-fa2a95842011))
(fp_circle (center 5.08 3.809) (end 5.33 3.809)
(stroke (width 0.5) (type solid)) (fill solid) (layer "F.SilkS") (tstamp 3ebc1d19-e11e-4e98-962c-6d874f629abb))
(stroke (width 0.5) (type solid)) (fill solid) (layer "F.SilkS") (tstamp 2a5bec42-b50f-4df3-ba9b-0b434e290e1b))
(fp_circle (center 8.509 8.508) (end 8.759 8.508)
(stroke (width 0.5) (type solid)) (fill solid) (layer "F.SilkS") (tstamp 74ce26e9-2e11-49c4-9ee4-b39a2d869d30))
(stroke (width 0.5) (type solid)) (fill solid) (layer "F.SilkS") (tstamp b999adf9-8612-45ed-a4d7-f9fc3cbe3d05))
(fp_line (start -8 -8) (end 8 -8)
(stroke (width 0.127) (type solid)) (layer "F.Fab") (tstamp b74e229b-8efc-40f2-bbb6-431d5f0c0e1b))
(stroke (width 0.127) (type solid)) (layer "F.Fab") (tstamp 4113075d-3971-4561-967f-47b752a69ebc))
(fp_line (start -8 8) (end -8 -8)
(stroke (width 0.127) (type solid)) (layer "F.Fab") (tstamp 01c93554-2325-4245-953c-b7264898d928))
(stroke (width 0.127) (type solid)) (layer "F.Fab") (tstamp 6a1020a8-e00a-48dd-91db-b1147a7bea17))
(fp_line (start 8 -8) (end 8 8)
(stroke (width 0.127) (type solid)) (layer "F.Fab") (tstamp 2df43b05-8c9d-42a6-8b9f-4a47dacb4dc9))
(stroke (width 0.127) (type solid)) (layer "F.Fab") (tstamp c1222364-c506-4a11-aaf5-54d872a04af9))
(fp_line (start 8 8) (end -8 8)
(stroke (width 0.127) (type solid)) (layer "F.Fab") (tstamp d2b16cb8-0c2e-4772-be8f-a0c2c6f948df))
(stroke (width 0.127) (type solid)) (layer "F.Fab") (tstamp 818e1a40-bac1-4904-93ff-ed10eaba404f))
(fp_circle (center -4 -7.5) (end -3.8 -7.5)
(stroke (width 0.127) (type solid)) (fill none) (layer "F.Fab") (tstamp d6930c4d-afe4-421f-bfa8-de1d99a9fbbc))
(stroke (width 0.127) (type solid)) (fill none) (layer "F.Fab") (tstamp e6e645fc-250f-4538-9fb0-c5c225cf3b5a))
(fp_circle (center -0.7 0) (end 0.5 0)
(stroke (width 0.127) (type solid)) (fill none) (layer "F.Fab") (tstamp be1f04d2-19ac-4e3a-8315-e2ad02adf753))
(stroke (width 0.127) (type solid)) (fill none) (layer "F.Fab") (tstamp a1ba88e6-5fe4-4966-bd4a-d72d7cd7020c))
(fp_circle (center 0 7.5) (end 0.2 7.5)
(stroke (width 0.127) (type solid)) (fill none) (layer "F.Fab") (tstamp 731c3307-0b17-48ac-8d01-5e35e8d89871))
(stroke (width 0.127) (type solid)) (fill none) (layer "F.Fab") (tstamp 06cf149e-0585-4280-b1ec-697945f85e55))
(fp_circle (center 4 -7.5) (end 4.2 -7.5)
(stroke (width 0.127) (type solid)) (fill none) (layer "F.Fab") (tstamp 94dab36d-62f5-46b3-a709-f882851bdede))
(stroke (width 0.127) (type solid)) (fill none) (layer "F.Fab") (tstamp 1dcd8889-b38d-434c-bdb9-34dedafddc06))
(fp_poly
(pts
(xy -6.9365 -6.2865)
@ -238,7 +238,7 @@
(xy -6.9365 -7.2135)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 34a256cd-dcd0-4536-8775-cbb1b2ae2620))
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 2ce2e94a-3e59-4fe2-a8fe-c486f98e39b4))
(fp_poly
(pts
(xy -6.9365 -4.7865)
@ -254,7 +254,7 @@
(xy -6.9365 -5.7135)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp ba7debfe-c56c-4673-b71a-71a485e72b9f))
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 16494409-14bd-4591-a5e2-54da80795802))
(fp_poly
(pts
(xy -6.9365 -3.2865)
@ -270,7 +270,7 @@
(xy -6.9365 -4.2135)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 49689d72-baa8-4682-9adf-73c9f78f7e77))
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp cf5a99d5-13cc-4271-8298-375fb6c26c85))
(fp_poly
(pts
(xy -6.9365 -1.7865)
@ -286,7 +286,7 @@
(xy -6.9365 -2.7135)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp dade657d-9132-418a-82f5-e175dc4c950b))
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 5241f903-7e1f-48b7-a4b8-772dd2241638))
(fp_poly
(pts
(xy -6.9365 -0.2865)
@ -302,7 +302,7 @@
(xy -6.9365 -1.2135)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 9b587a28-c5f7-41a2-a893-bac863e101b9))
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 23f34b35-09e4-4abd-812b-ebcddb896f26))
(fp_poly
(pts
(xy -6.9365 1.2135)
@ -318,7 +318,7 @@
(xy -6.9365 0.2865)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 66d6d0ac-9dfb-4813-b6b0-13e7351213c9))
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 9ae3594d-cee7-4eb5-ad82-610095b546e4))
(fp_poly
(pts
(xy -6.9365 2.7135)
@ -334,7 +334,7 @@
(xy -6.9365 1.7865)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 3afc2997-00e9-46c9-ac1d-05ba9e90eab3))
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 9dae01ab-f70b-4b42-9025-6933727f058d))
(fp_poly
(pts
(xy -6.9365 4.2135)
@ -350,7 +350,7 @@
(xy -6.9365 3.2865)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 6c7e9386-4afc-4f46-8e28-da5245557172))
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp f39432f4-0a39-4056-98c0-b8d8b2ab8e30))
(fp_poly
(pts
(xy -6.9365 5.7135)
@ -366,7 +366,7 @@
(xy -6.9365 4.7865)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 53dfea20-d016-4293-aaaf-792c7c55a604))
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 4e18eaf0-8a13-4db1-b3fa-44f0f96788d5))
(fp_poly
(pts
(xy -6.9365 7.2135)
@ -382,7 +382,7 @@
(xy -6.9365 6.2865)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 224ea85e-9603-4ce8-b91e-f3f938c7a022))
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 91018e44-fe5b-404f-b0ac-baa5c77d6d8d))
(fp_poly
(pts
(xy 8.0635 -7.051843)
@ -399,7 +399,7 @@
(xy 8.0635 -7.2135)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp eabfadb5-9214-4062-86bb-309ce60fb754))
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 6c00e1eb-2000-42cf-9898-7ab2f142a63b))
(fp_poly
(pts
(xy 8.0635 -5.551843)
@ -416,7 +416,7 @@
(xy 8.0635 -5.7135)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp cb752c1d-79c6-4f36-9450-7302db4e8f5b))
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 1aaa6c1d-38a6-40d0-8108-d27584134ef3))
(fp_poly
(pts
(xy 8.0635 -4.051843)
@ -433,7 +433,7 @@
(xy 8.0635 -4.2135)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp e098f8bd-1f27-4372-882a-d0fba5e63465))
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp acb1a892-1e04-41d1-b8f7-6d7180005b0b))
(fp_poly
(pts
(xy 8.0635 -2.551843)
@ -450,7 +450,7 @@
(xy 8.0635 -2.7135)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp b015f4c1-7dea-47ef-9cd7-ea4e4ab93d10))
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp b83ef74e-bb1b-4c08-bdeb-e7ac6b11ac7f))
(fp_poly
(pts
(xy 8.0635 -1.051843)
@ -467,7 +467,7 @@
(xy 8.0635 -1.2135)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 6c6e9d4e-136e-448b-b3d9-e071c07a0553))
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp c81d0dfe-f6a5-4606-828c-f84dc95f2431))
(fp_poly
(pts
(xy 8.0635 0.448157)
@ -484,7 +484,7 @@
(xy 8.0635 0.2865)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp ab03aa7a-affa-48e6-a93e-4a2fb5b22a8e))
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 3d962dbc-6a7c-4152-a9a7-d8c50183ed42))
(fp_poly
(pts
(xy 8.0635 1.948157)
@ -501,7 +501,7 @@
(xy 8.0635 1.7865)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 73da77d9-7479-499d-9605-d3e7d36f0649))
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp c76f489b-6849-4d00-9f65-6a78fe4336a2))
(fp_poly
(pts
(xy 8.0635 3.448157)
@ -518,7 +518,7 @@
(xy 8.0635 3.2865)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 6f5c789d-7669-49ed-842a-c1d0f7f0c902))
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 5a1dc3ae-e810-4f02-b6b8-cdbdb3563800))
(fp_poly
(pts
(xy 8.0635 4.948157)
@ -535,7 +535,7 @@
(xy 8.0635 4.7865)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp e664e751-a40f-4ed1-8fb4-c89cdad8642f))
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 9528f5a2-72d1-4952-bdda-b396fbe8013a))
(fp_poly
(pts
(xy 8.0635 6.448157)
@ -552,46 +552,46 @@
(xy 8.0635 6.2865)
)
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp 8c966634-9a87-407a-987d-6dc82440dac4))
(pad "" np_thru_hole circle (at -0.7 0) (size 4 4) (drill 4) (layers *.Cu *.Mask) (tstamp 69553fe7-f101-4b06-b4e9-6fbe485f3f65))
(stroke (width 0) (type default)) (fill solid) (layer "F.Fab") (tstamp d1b1895a-c4c5-4098-bdd9-b5880d05e1f4))
(pad "" np_thru_hole circle (at -0.7 0) (size 4 4) (drill 4) (layers *.Cu *.Mask) (tstamp 416d8cfd-1d51-4083-83a4-492f1b869295))
(pad "1" smd rect (at 8 6.75 180) (size 2 1) (layers "F.Cu" "F.Mask")
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 3386a52c-151e-46e2-a046-81598fa3786c))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 3279d37c-d26b-4c38-b374-c8bae145ced8))
(pad "2" smd rect (at 8 5.25 180) (size 2 1) (layers "F.Cu" "F.Mask")
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 5c6136f5-2d1a-44e4-9853-7f2d2fe1cf71))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp b8108224-8e92-4b7c-bf58-2eecedfa2872))
(pad "3" smd rect (at 8 3.75 180) (size 2 1) (layers "F.Cu" "F.Mask")
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp cb865c44-2085-4e2c-b3e7-1e4c0359f621))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp cbaa3d40-3633-4e53-8e42-56ebd4d6f295))
(pad "4" smd rect (at 8 2.25 180) (size 2 1) (layers "F.Cu" "F.Mask")
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 3fdde318-b539-4db6-87e0-f9bf644af6d1))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 83d6294e-4e09-4de9-8cca-b91328f5d469))
(pad "5" smd rect (at 8 0.75 180) (size 2 1) (layers "F.Cu" "F.Mask")
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp fc45c226-2bcc-4536-ae98-7850b8d08bfe))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp a2a7ee0c-4033-4fda-bbdd-447b5b010302))
(pad "6" smd rect (at 8 -0.75 180) (size 2 1) (layers "F.Cu" "F.Mask")
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp d2c0e4c9-6772-42c1-ae2d-9242490f18cf))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 7e63166d-2383-4520-a6d4-ebb14be1d36f))
(pad "7" smd rect (at 8 -2.25 180) (size 2 1) (layers "F.Cu" "F.Mask")
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 4da74b77-7a2d-44fe-a8c1-de788aaaf39e))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp bb34ad35-2319-4d5d-ab09-f8351fc273d2))
(pad "8" smd rect (at 8 -3.75 180) (size 2 1) (layers "F.Cu" "F.Mask")
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 4e995ee6-f8ae-4350-b9d7-212c68955dbe))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 7e9f581f-1a80-4b32-8757-1f89d2a3cf79))
(pad "9" smd rect (at 8 -5.25 180) (size 2 1) (layers "F.Cu" "F.Mask")
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 2a94f3f7-bcc9-4ae4-9492-ccb7e8279231))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp bd532487-48e0-44f8-8774-9901b5339efb))
(pad "10" smd rect (at 8 -6.75 180) (size 2 1) (layers "F.Cu" "F.Mask")
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp bd5e5af3-98b3-466d-b7ba-8918ce6f9cfe))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp c2cc28f0-64fc-4d42-b247-51bbd90b56f4))
(pad "11" smd rect (at -8 -6.75) (size 2 1) (layers "F.Cu" "F.Mask")
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 89dfd043-f2f6-4c67-92b4-200a3375abfb))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp ea0556f7-9108-44bd-ab94-499c9d8d326e))
(pad "12" smd rect (at -8 -5.25) (size 2 1) (layers "F.Cu" "F.Mask")
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 499929d9-1cef-466b-91df-4419de178ff3))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 8aeef8af-7685-4f6d-9371-458a29df5b1f))
(pad "13" smd rect (at -8 -3.75) (size 2 1) (layers "F.Cu" "F.Mask")
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 2a6dfc5c-88d4-49e5-8a1f-4dbd95b59139))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp c76b8075-322a-4c4f-bff1-71c1f3013648))
(pad "14" smd rect (at -8 -2.25) (size 2 1) (layers "F.Cu" "F.Mask")
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp a8e4bef4-5fa1-475d-9e61-68930f75dc3a))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 6ac834db-7149-4f32-ae3e-7fca31b7c502))
(pad "15" smd rect (at -8 -0.75) (size 2 1) (layers "F.Cu" "F.Mask")
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 950a083a-e600-46fa-85d3-722a8fa27516))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 3bdbf431-688f-4bf4-8140-be407ae449c9))
(pad "16" smd rect (at -8 0.75) (size 2 1) (layers "F.Cu" "F.Mask")
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 5fe3f842-a4d6-43d7-8976-365a9a45b22f))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 82f8f3a6-b9ab-405d-94b1-971e708d58f6))
(pad "17" smd rect (at -8 2.25) (size 2 1) (layers "F.Cu" "F.Mask")
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp e6ca7ec4-08be-4c3b-8fc4-04f2cc174cec))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp cbe41c31-61d5-4dba-9e7c-bb6944143953))
(pad "18" smd rect (at -8 3.75) (size 2 1) (layers "F.Cu" "F.Mask")
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 2ea0efa5-74cd-409e-8f84-90cdf00a99d2))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 648d3ac5-8c0a-4861-96ec-42db33127b35))
(pad "19" smd rect (at -8 5.25) (size 2 1) (layers "F.Cu" "F.Mask")
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp e8d5d543-47ce-4161-812a-667d0d6c079f))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 8672de1d-0dce-45da-a42c-4c15065b8264))
(pad "20" smd rect (at -8 6.75) (size 2 1) (layers "F.Cu" "F.Mask")
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp d28ecd6b-caa4-43e5-bfe3-f8688a0ec855))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 7b8569de-b87a-451b-8a40-1561aef4e28d))
)

View File

@ -1,242 +1,242 @@
(footprint "UBLOX_ZOE_M8-0-10" (version 20220308) (generator pcbnew)
(footprint "UBLOX_ZOE_M8-0-10" (version 20220331) (generator pcbnew)
(layer "F.Cu")
(descr "")
(descr "<h3>UBLOX ZOE-M8Q-0-10</h3>\n<p>The ZOE-M8G and ZOE-M8Q are u-bloxs super small, highly integrated GNSS SiP (System in Package) modules\nbased on the high performing u-blox M8 concurrent positioning engine. The ultra-miniature form factor integrates\na complete GNSS receiver including SAW filter, LNA and TCXO. The ZOE-M8Q is\nthe 3 V variant.</p> \n\n<p><b>Phyical Characteristics</b></p>\n<ul>\n<li>LGA</li>\n<li>51 Pins</li>\n<li>4.5mm X 4.5mm X 1mm</li>\n<li>51 Pins</li>\n</ul>")
(fp_text reference ">NAME" (at -2.246 -3.135) (layer "F.SilkS")
(effects (font (size 0.92 0.92) (thickness 0.08)) (justify left bottom))
(tstamp bd6d1eb1-50c7-4d67-93f2-2832ffb3b441)
(tstamp 6b9c0cf6-0afe-4392-bebe-5a3cf06ff9a6)
)
(fp_text value ">VALUE" (at -2.373 3.865) (layer "F.Fab")
(effects (font (size 0.92 0.92) (thickness 0.08)) (justify left bottom))
(tstamp 03093573-decf-46ad-aec2-bb3bd45dad9e)
(tstamp 9ccdb9ca-d390-4c47-81bc-dca23d6b3429)
)
(fp_line (start -2.346 1.746) (end -2.346 -1.754)
(stroke (width 0.1) (type solid)) (layer "F.SilkS") (tstamp 9e9fa056-b802-47d4-8399-2843273c48fe))
(stroke (width 0.1) (type solid)) (layer "F.SilkS") (tstamp a12e3f55-f361-43d8-8cb2-5a0f031f5bf1))
(fp_line (start -1.746 -2.354) (end 1.754 -2.354)
(stroke (width 0.1) (type solid)) (layer "F.SilkS") (tstamp 8f777f6f-62e0-4061-8864-9adf06b2a93d))
(stroke (width 0.1) (type solid)) (layer "F.SilkS") (tstamp 8b684f84-47e8-4a28-956d-ef55646339cc))
(fp_line (start -1.746 2.346) (end 1.754 2.346)
(stroke (width 0.1) (type solid)) (layer "F.SilkS") (tstamp 38f1eeb5-eadf-47a3-a9e4-232f530afdd7))
(stroke (width 0.1) (type solid)) (layer "F.SilkS") (tstamp 04f940fb-d776-45c3-9b8c-0f3830c5cd4e))
(fp_line (start 2.354 1.746) (end 2.354 -1.754)
(stroke (width 0.1) (type solid)) (layer "F.SilkS") (tstamp b2b5960c-f61d-4c0e-bab4-182f1748ba27))
(stroke (width 0.1) (type solid)) (layer "F.SilkS") (tstamp 2b8e4aca-d101-4f58-880f-831871a152eb))
(fp_circle (center -2.738 -2.754) (end -2.611 -2.754)
(stroke (width 0.254) (type solid)) (fill solid) (layer "F.SilkS") (tstamp 97fca20f-78c1-4b31-b59b-a8f66aa56a1f))
(stroke (width 0.254) (type solid)) (fill solid) (layer "F.SilkS") (tstamp 338e9531-4898-46ca-81ef-c40e3982896f))
(fp_circle (center -1.9982 -1.5039) (end -1.9232 -1.5039)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp f12d8f73-46c8-4f50-b231-60590c93ce8e))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 9b61d399-066b-47d1-bc96-08afaf71d188))
(fp_circle (center -1.9982 -1.0039) (end -1.9232 -1.0039)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 3e0280b9-fdff-4306-8fc0-52bfbd1f38c1))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 3c65b9b6-6293-4e21-8f4c-d64a19fc86e7))
(fp_circle (center -1.9982 -0.5039) (end -1.9232 -0.5039)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp e7fa3c0b-fbac-4a77-b0c0-8564e32ba987))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 77bce948-fd45-49d1-909d-822495dac08e))
(fp_circle (center -1.9982 -0.0039) (end -1.9232 -0.0039)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 905f478d-bd83-41f3-a17e-214eb737c241))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 97a242b7-8611-4a19-ab33-7204e73556bd))
(fp_circle (center -1.9982 0.4961) (end -1.9232 0.4961)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 7cebf2d5-9efc-483b-8c5f-de6c5bf5cef5))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 26c4f8a9-cda3-45dd-983f-e298f1088b07))
(fp_circle (center -1.9982 0.9961) (end -1.9232 0.9961)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 28c25439-fe01-4751-8191-553f65cbc575))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 74e72b8b-fb2d-47f6-be88-103b14dd524a))
(fp_circle (center -1.9982 1.4961) (end -1.9232 1.4961)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp a0b0cb4e-25d8-4e7e-a936-30c5d8654ac1))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 9e851376-02b4-4a7b-a56d-7cbb0f1a299a))
(fp_circle (center -1.9965 -2.0059) (end -1.9215 -2.0059)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 1c389fc0-2a34-463c-81ce-3cc0d4842d1b))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 052b488e-0cdc-4120-b867-f65a5fbeaad0))
(fp_circle (center -1.9965 1.9941) (end -1.9215 1.9941)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp e679ff08-a4b3-411d-975a-df29b027f7ae))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp f80bf887-d491-4084-bf90-b0618448816c))
(fp_circle (center -1.4965 -2.0059) (end -1.4215 -2.0059)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 8df66b9b-a5ad-4f24-a0a2-a219dc1f974b))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 7e45c8f8-7924-4ff2-a823-b0b48aeaf2ff))
(fp_circle (center -1.4965 1.9941) (end -1.4215 1.9941)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 4c869f33-8b3d-47ed-8c82-9220de8976ed))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp c369d6a8-8d0c-47e7-9139-4cd86359ca0a))
(fp_circle (center -0.9983 -0.0042) (end -0.9233 -0.0042)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp f0090f28-8dd2-4140-99b4-18bfa3e72f17))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 9bf64209-b1b9-4154-9c50-bb0a837b0896))
(fp_circle (center -0.9973 -0.5051) (end -0.9223 -0.5051)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp b1c55fce-32cc-4ba1-a927-c10289e71de1))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp fd2f72cf-d58e-4c8c-af80-39c7e0be7b48))
(fp_circle (center -0.9973 0.9973) (end -0.9223 0.9973)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 0ce93059-017a-41aa-a81e-aa309b5db8d8))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp edc91ee1-7fa0-452e-96d1-347037ebd400))
(fp_circle (center -0.9965 -2.0059) (end -0.9215 -2.0059)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 7e9097c8-a249-4500-b8b9-cd926afbee21))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 12b5afe3-6df8-4558-a284-c359e745b761))
(fp_circle (center -0.9965 1.9941) (end -0.9215 1.9941)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp d1d44f41-7286-4244-840c-579b0f9d3449))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 6e0382a4-2b93-4867-86f6-f88731459ac5))
(fp_circle (center -0.9952 0.498) (end -0.9202 0.498)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 7cd4ca4d-5ced-4b6b-aa9b-64d9616e8eba))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 54052a43-148d-4494-87d3-1f05cd3e9a08))
(fp_circle (center -0.9948 -1.0038) (end -0.9198 -1.0038)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp cfc7e297-4067-4cc3-9321-f9a47c1622f7))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp d15ba0fb-fe78-4da0-9c67-03dd7ebeb805))
(fp_circle (center -0.499 -0.5035) (end -0.424 -0.5035)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 5f23e158-9053-43e7-8632-35c56d7d135b))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 084ab58e-df92-4de9-aabe-612d8057daef))
(fp_circle (center -0.4965 -2.0059) (end -0.4215 -2.0059)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 979b6e19-f1e7-4697-bfcd-504e8464fae8))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 208a7137-52b0-4699-8b8a-c812bd9e9b4f))
(fp_circle (center -0.4965 1.9941) (end -0.4215 1.9941)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 3a47f31e-3741-4529-a5ee-fbe050bace30))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 95447692-60ea-42c4-bd73-8f62151f29aa))
(fp_circle (center -0.4964 0.9972) (end -0.4214 0.9972)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp a9b66ef0-e08c-47ca-9a56-013f80b9560f))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp c26ad39a-c2e5-4f74-817c-204b9c02e358))
(fp_circle (center -0.4951 0.4989) (end -0.4201 0.4989)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 320c2a0c-b909-4c15-bc97-2ae844a3751d))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 5dbee79b-6e19-4704-840e-f4d699d8d1e9))
(fp_circle (center -0.4948 -1.0038) (end -0.4198 -1.0038)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp e77ee2ba-cdf8-49b7-afe8-b9f4f7f824fa))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp c129dcfa-0c5b-4911-9672-bcd6aa463849))
(fp_circle (center 0.0027 0.9972) (end 0.0777 0.9972)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 2ea395ba-aaa0-4dd7-81c0-bd8286a22aa2))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 4f3728b6-bd54-4f87-8ee1-a4a9b3e9af59))
(fp_circle (center 0.0035 -2.0059) (end 0.0785 -2.0059)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp d21c6cab-0756-4683-b1fa-6354c859bda4))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp b4ee6684-4081-477f-a752-badadd4b6365))
(fp_circle (center 0.0035 1.9941) (end 0.0785 1.9941)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 67eb6b91-a579-40e1-af01-92d593cd3bfc))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 94581e53-39fc-474e-8b4a-aad682497f19))
(fp_circle (center 0.0052 -1.0038) (end 0.0802 -1.0038)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp a164c583-3619-4559-8393-275bc8e75a03))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp cdcc827b-a7b3-432f-8488-8904caa0e7ab))
(fp_circle (center 0.501 -0.5051) (end 0.576 -0.5051)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 48ffc2ed-23e9-45db-92a9-084fd59143b6))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 1ac417e7-45da-4c62-b317-0966c8f4a105))
(fp_circle (center 0.5024 0.9966) (end 0.5774 0.9966)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 2844eca7-f80f-4ea2-9bb9-f86f5f11761c))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 7cba7eb3-c621-4db7-bbf8-52aa2c2d0e3f))
(fp_circle (center 0.5035 -2.0059) (end 0.5785 -2.0059)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 7468830f-8cf3-44e6-839f-5addd7ae6f88))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 9ec4ed71-7e07-4fd5-8108-fd8bdf86e708))
(fp_circle (center 0.5035 1.9941) (end 0.5785 1.9941)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp b1978603-40e6-4961-9cae-576da21ecc84))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp b157fdff-55f5-46c9-b16e-da70e94bcd3b))
(fp_circle (center 0.5039 0.4989) (end 0.5789 0.4989)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 91831a6e-a956-4f91-acf7-b6034f8cce67))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp d29274e5-0c1b-410b-bd44-1d8af9c34366))
(fp_circle (center 0.5052 -1.0038) (end 0.5802 -1.0038)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp e215cdaa-3c68-40d4-b7ef-3592bf203ef8))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 44d35527-a0ad-476d-8978-2b230af38bee))
(fp_circle (center 1.0018 -0.0029) (end 1.0768 -0.0029)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp a770c212-c441-4b01-9ad1-82dd0f1fe739))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 364d5732-703f-4bf9-a65a-5377890f4061))
(fp_circle (center 1.002 0.4999) (end 1.077 0.4999)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 2a15dfe6-898b-463c-a5b3-6787e7a2785f))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 875c8acc-6bf4-4f55-867f-5edda56a17a2))
(fp_circle (center 1.0032 0.9982) (end 1.0782 0.9982)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp aa27bca1-4090-453d-a3eb-3be8d52702e8))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 19ffeef3-7032-4000-b0eb-d7df54c27009))
(fp_circle (center 1.0035 -2.0059) (end 1.0785 -2.0059)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 82c86b94-1ae3-434e-b123-2e6d01b1ffe9))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp dd3df8cb-1de6-4883-a6e3-698a8fbca7ee))
(fp_circle (center 1.0035 1.9941) (end 1.0785 1.9941)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 79a3bace-b4a4-4f27-85ad-cb16fd4105e6))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp b7f15845-bbec-43df-87b6-d7044e638a64))
(fp_circle (center 1.0052 -1.0038) (end 1.0802 -1.0038)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 7a00be4d-c473-49ca-87bb-213fa05ca758))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp b9f45e99-43ff-4cce-80c6-5e5c02eee283))
(fp_circle (center 1.5035 -2.0059) (end 1.5785 -2.0059)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 6b1ec393-156b-42fb-8c5f-3e38e809611c))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 20803479-880a-4fea-8b79-045d3cc86d63))
(fp_circle (center 1.5035 1.9941) (end 1.5785 1.9941)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 4280181c-6ad9-4b7b-a8b7-d442a1ac11ee))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp fa221ad5-fdab-4d3d-9ab4-c0ed9d67bc55))
(fp_circle (center 2.0035 -2.0059) (end 2.0785 -2.0059)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 466ddb6b-5576-4f67-b910-13faf50da818))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 0fbf8438-3068-4c1b-8ae3-dc756c1ac546))
(fp_circle (center 2.0035 -1.5022) (end 2.0785 -1.5022)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp a507a3b4-3e6b-414a-9717-589abab4f9c5))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 591d7346-8f2c-46cc-a307-f1240625cc73))
(fp_circle (center 2.0035 -1.0022) (end 2.0785 -1.0022)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp db80d178-2b67-4558-bb91-a92efee514c9))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 3f66c8b4-68ac-4bdd-b136-a8f4a09db4eb))
(fp_circle (center 2.0035 -0.5022) (end 2.0785 -0.5022)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 7ac928af-009e-4b28-8767-4db0af710353))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 255b1379-ce74-4ee4-9b63-0faec14b6eb3))
(fp_circle (center 2.0035 -0.0022) (end 2.0785 -0.0022)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 2d20d4ec-7245-4cca-8bbe-b7338ce77276))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp ca6b1988-f8cc-4124-af33-1834e9c003fa))
(fp_circle (center 2.0035 0.4978) (end 2.0785 0.4978)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 23f7cf04-acfb-4a0a-aafa-c3e35ab8636a))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 31e3863b-833a-4246-ae45-8158ee5c099d))
(fp_circle (center 2.0035 0.9978) (end 2.0785 0.9978)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 631b44c9-b41a-4d2f-98ea-1986403c1945))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp b2a95a41-8f63-436f-8067-5b6a2c0050fb))
(fp_circle (center 2.0035 1.4978) (end 2.0785 1.4978)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp fd46bf60-92fd-4ebe-a151-ada9b9a1ea03))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 9098930f-4278-42fa-872d-f1802e7a6030))
(fp_circle (center 2.0035 1.9941) (end 2.0785 1.9941)
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp 95b7bd79-eeb5-496d-9c82-e6e3c5641e6b))
(stroke (width 0.15) (type solid)) (fill solid) (layer "F.Mask") (tstamp ac7b338b-9909-49ad-8210-6f6526938314))
(fp_line (start -2.413 -2.413) (end -2.413 2.413)
(stroke (width 0.0508) (type solid)) (layer "F.CrtYd") (tstamp 61b708f7-6983-4447-81cc-7c61c568dd33))
(stroke (width 0.0508) (type solid)) (layer "F.CrtYd") (tstamp 1a67ecd8-9474-448c-bf4d-32ecfa444e85))
(fp_line (start -2.413 2.413) (end 2.413 2.413)
(stroke (width 0.0508) (type solid)) (layer "F.CrtYd") (tstamp 48c22a39-847b-424f-987c-4f2f81d56b31))
(stroke (width 0.0508) (type solid)) (layer "F.CrtYd") (tstamp 99f0c42e-0e0e-4424-908f-3bb484570be8))
(fp_line (start 2.413 -2.413) (end -2.413 -2.413)
(stroke (width 0.0508) (type solid)) (layer "F.CrtYd") (tstamp 69ae3fea-4667-4aae-ad3c-06fc1d82c243))
(stroke (width 0.0508) (type solid)) (layer "F.CrtYd") (tstamp e6816a35-5f5d-4b5d-88f2-71c3afc1911e))
(fp_line (start 2.413 2.413) (end 2.413 -2.413)
(stroke (width 0.0508) (type solid)) (layer "F.CrtYd") (tstamp 1071c9e7-5a26-4b73-a92d-e0937185449b))
(stroke (width 0.0508) (type solid)) (layer "F.CrtYd") (tstamp b3da81b9-c869-408c-af16-39cb19f65c7e))
(fp_line (start -2.246 -2.254) (end -2.246 2.246)
(stroke (width 0.05) (type solid)) (layer "F.Fab") (tstamp 34774841-353f-4e20-a534-20cf6ee9152d))
(stroke (width 0.05) (type solid)) (layer "F.Fab") (tstamp 54dd0f0a-3d50-442e-9654-a8970ceee59a))
(fp_line (start -2.246 2.246) (end 2.254 2.246)
(stroke (width 0.05) (type solid)) (layer "F.Fab") (tstamp 92fe6754-09bb-4648-b7af-21ae65cbc765))
(stroke (width 0.05) (type solid)) (layer "F.Fab") (tstamp de76ccb6-3f46-49e2-845f-d49660940df9))
(fp_line (start 2.254 -2.254) (end -2.246 -2.254)
(stroke (width 0.05) (type solid)) (layer "F.Fab") (tstamp ee2bf275-6be2-4061-aeae-3aa6bd5241a5))
(stroke (width 0.05) (type solid)) (layer "F.Fab") (tstamp bc7e1b9e-b436-45c7-ba2a-bf8db2f6059a))
(fp_line (start 2.254 2.246) (end 2.254 -2.254)
(stroke (width 0.05) (type solid)) (layer "F.Fab") (tstamp daf2e0cc-6214-4a8b-b4de-1a9bc7a99d3a))
(stroke (width 0.05) (type solid)) (layer "F.Fab") (tstamp a1a6db09-21c7-41f1-b623-5dbbd4972275))
(pad "1" smd roundrect (at -1.996 -2.004) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 04530c84-5084-4888-a222-3dcb163dd486))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp fe937577-3df8-4e8e-afb2-b0645ea2cf9f))
(pad "2" smd roundrect (at -1.496 -2.004) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 75894c5f-cd4e-432d-9a5a-c40495a3bae5))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp f8a16b08-ec37-4d57-9f64-2ba134c70d02))
(pad "3" smd roundrect (at -0.996 -2.004) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp dfb4bb17-b338-4840-8949-b8a7eef77fb7))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 5b55b300-94f4-4721-87d1-500c661e86a6))
(pad "4" smd roundrect (at -0.496 -2.004) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp d2b2eaa7-0eb1-415e-aa29-651e69f9a839))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 6981f95a-0baf-499f-8058-78b7b966d8d7))
(pad "5" smd roundrect (at 0.004 -2.004) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 8fbb7c28-6e23-4d81-a045-c0a95063c270))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 915fe81e-c9c1-4f97-8610-5c8add9011f9))
(pad "6" smd roundrect (at 0.504 -2.004) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp f9989f6b-51ad-47b9-b2dd-461d218594fd))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 9f7947ff-bd2d-4428-8f70-67b1eee76b69))
(pad "7" smd roundrect (at 1.004 -2.004) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 53716e90-8754-4909-a8b9-f752100e35a4))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp ab27c2b4-b807-40f2-bc91-2e935e6a5fe9))
(pad "8" smd roundrect (at 1.504 -2.004) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 50d1b54e-25d0-44e2-b6bf-032969737b18))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 400275f6-b83f-45a6-9513-d690547f0e7f))
(pad "9" smd roundrect (at 2.004 -2.004) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 221fd878-cfca-4bda-8e3f-fb595f61bf37))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 57de447d-bb13-401f-9939-870b5872e84a))
(pad "10" smd roundrect (at 2.004 -1.504) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 15cd6557-4c23-41bf-8ed2-d73d57e312ad))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp a195b63e-8089-43c9-a1f9-329843746c37))
(pad "11" smd roundrect (at 2.004 -1.004) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 1eb06b59-4506-4410-9330-f1d75b75b303))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 5a6591d6-4f32-40f7-a76d-dc3cac8d9f7d))
(pad "12" smd roundrect (at 2.004 -0.504) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 979b8be4-6fbe-4ec2-a58e-664258c441ca))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 4ae2599c-d679-487b-a0f0-172089741ab9))
(pad "13" smd roundrect (at 2.004 -0.004) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp dfeb73f1-7b40-408a-ad87-8b16384303a7))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 1f01ca4d-4ca6-4bee-ba79-b62cb76bddf4))
(pad "14" smd roundrect (at 2.004 0.496) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 2f7766c4-f576-4981-bbb8-af11992942fa))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 9115c308-e168-438e-93e8-36a4b0208233))
(pad "15" smd roundrect (at 2.004 0.996) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp beeb7c06-9740-47a3-9624-730610b8ad6f))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp d24ff8ff-d1ba-428a-bce5-5299b8079c01))
(pad "16" smd roundrect (at 2.004 1.496) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 4c8db64c-dea3-40d4-b1ea-e18d66f1cade))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp eb88f9b2-06a2-4eb9-9e4f-3cc5417a36d2))
(pad "17" smd roundrect (at 2.004 1.996) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp aa9788f4-8620-4032-88f6-d9c14f2c444d))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 5ce82f3f-7e1e-4998-99be-a8b5bbe9fbac))
(pad "18" smd roundrect (at 1.504 1.996) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 05f4833f-4e65-4f06-be67-3b44a43f8e37))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp e822b743-0c9c-4263-8b18-bba789ffd58f))
(pad "19" smd roundrect (at 1.004 1.996) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 13f7a5a7-9c87-4d0c-81ca-19c76b8ebcb4))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 95e06c80-7d81-4808-a440-533b8d549313))
(pad "20" smd roundrect (at 0.504 1.996) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp ce3f51d1-d73c-41fa-8506-9bec89b9325d))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 09355a59-11dd-4fd8-9d4a-13d6d524e6f2))
(pad "21" smd roundrect (at 0.004 1.996) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 94fcd890-45cf-4e00-b5e6-f173769fa521))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 2ef91d36-d762-4886-a732-b037160d6efb))
(pad "22" smd roundrect (at -0.496 1.996) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 094263c1-fac3-4f23-b52c-6754a5f2728c))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 7b3295b0-eb87-49d4-a942-572a0f24847f))
(pad "23" smd roundrect (at -0.996 1.996) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp dacb94f8-6b98-478a-a44e-7f0f48f86b1c))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 16e67ed7-9013-45ee-9b76-f4de48e2201f))
(pad "24" smd roundrect (at -1.496 1.996) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp d0019561-77fd-4a99-be24-e2fd7cddaf27))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 040b6eea-9724-42cc-8dea-c9f7321e07ec))
(pad "25" smd roundrect (at -1.996 1.996) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 9836f22a-0bf3-4eff-bf78-71fff11c9d6a))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 081338b5-e821-4b49-97ed-38a6d4991bdd))
(pad "26" smd roundrect (at -1.996 1.496) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp b35005c7-649c-4275-a83f-c3c524d4de47))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 309af8d2-be2b-4ed1-828f-6c21ebff8f0b))
(pad "27" smd roundrect (at -1.996 0.996) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 10aa565c-4ea1-458a-a4fb-a1a2e14dd00c))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp f913d592-4a7f-4ae8-9153-ad908601ec44))
(pad "28" smd roundrect (at -1.996 0.496) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 89a3b699-9bf0-43ee-b9fc-3d855c3e0b3d))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 9cb98d40-47ca-48f1-81b8-26194303712d))
(pad "29" smd roundrect (at -1.996 -0.004) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp fb05976d-c7d5-4352-b0ad-edfb7964c10e))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp a2537fe2-8aa7-49a2-bd46-cd29984210ec))
(pad "30" smd roundrect (at -1.996 -0.504) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 3e3fabdd-4fea-45f8-b84b-c11541e8dca2))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 6df928d7-f39c-4f23-a13d-3e798e865e53))
(pad "31" smd roundrect (at -1.996 -1.004) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp c6a8150f-603a-464b-9c40-c5e94b270adf))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 5c6b4765-b11b-4956-a81d-254c40900fa6))
(pad "32" smd roundrect (at -1.996 -1.504) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp e841937e-567f-4afb-ad39-e544c86fd2d1))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 0a5f6260-4e38-49e1-b816-2a86a967ea36))
(pad "33" smd roundrect (at -0.996 -1.004) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 52c718e7-c869-42b1-987d-5646118ebdfd))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 90e43781-cce3-470c-b31a-bfb389e6bbd3))
(pad "34" smd roundrect (at -0.496 -1.004) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 70f2db97-bc3b-4cfc-80cb-a9f0db2f5bd7))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp b0594ffc-4eb7-4d35-941d-bfe131c4ad28))
(pad "35" smd roundrect (at 0.004 -1.004) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp b50dfc0c-cd7a-4b28-a7ce-660cd240d28d))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 8040129c-51e4-44ec-9842-c8de4d5e6f7e))
(pad "36" smd roundrect (at 0.504 -1.004) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 5f92d99f-838c-4e68-ba51-49c2e12f01f9))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp a0f6a0cf-7c35-40e6-b707-0a9530b7be69))
(pad "37" smd roundrect (at 1.004 -1.004) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp cc9a88a3-9c5a-4447-90d6-d539e9157131))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 0f518e68-caa5-4004-a38c-ad6cc7f449c7))
(pad "38" smd roundrect (at 1.004 -0.004) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp c76a095e-27aa-4cc6-8f16-646f86169ade))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 3f1d0f88-5376-4c36-9921-2217c283d968))
(pad "39" smd roundrect (at 1.004 0.496) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp dcbaa165-907e-4a33-91f6-bd07aca83723))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 1afafeee-4e1e-43b8-a162-68bbbba964ec))
(pad "40" smd roundrect (at 1.004 0.996) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp e2b7b70c-9f46-4259-be50-7d369c5f3c26))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 18386641-07dd-4363-9979-a7027c42b4b4))
(pad "41" smd roundrect (at 0.504 0.996) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 15a97914-4b6d-40b0-8569-5afa05936256))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp ddb6b8b1-d761-4472-8e57-5763db4e4ece))
(pad "42" smd roundrect (at 0.004 0.996) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 51ab7a9c-eb4e-4e6f-b659-353d27cf4f0e))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 5da269a7-866d-407b-acde-84e5a123849f))
(pad "43" smd roundrect (at -0.496 0.996) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 034539bf-c18b-48b2-a302-fabb597c2294))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 55c38ae4-5e5f-4f5b-a09d-2e8b7335bfc3))
(pad "44" smd roundrect (at -0.996 0.996) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 2ec58084-f859-4408-8e83-52cd4ba58762))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 9c9a51d4-006f-4c33-b9e8-7b19445d0899))
(pad "45" smd roundrect (at -0.996 0.496) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp c19ca932-b02a-4041-b485-789ca7c73135))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 3a0c149f-868a-49d7-a17a-feb76356431d))
(pad "46" smd roundrect (at -0.996 -0.004) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp f9d7fe0f-c02e-4e13-acd1-a0d135d5b1f7))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 9fc4512b-d63f-4bc3-b75b-f4d677507166))
(pad "47" smd roundrect (at -0.996 -0.504) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 16a5ba73-a986-435b-9939-4749c72a70ae))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp a7af7a9b-737d-4709-80c8-87a9948ba10b))
(pad "48" smd roundrect (at -0.496 -0.504) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 3adf7588-568b-4604-a3ee-ba0673e16e25))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp f5180453-4388-43fa-b86a-09578f1da07e))
(pad "49" smd roundrect (at 0.504 -0.504) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 33472f98-8b16-4dea-8cdd-9c9cb9ed4747))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp a0213fe0-6788-4c72-ae02-c24f6a2cf0f1))
(pad "50" smd roundrect (at 0.504 0.496) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 66ce5cd7-e363-46c1-8d7d-59eb31aad6aa))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 786bc1ef-ad4d-4c51-b7d2-1e7c25cea783))
(pad "51" smd roundrect (at -0.496 0.496) (size 0.25 0.25) (layers "F.Cu" "F.Paste") (roundrect_rratio 0.5)
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 5da5c80f-c4db-474a-a8bf-3d87d39d5233))
(solder_mask_margin 0.1016) (thermal_bridge_angle 45) (tstamp 938edcd3-c77d-40e7-a04a-d828419203af))
)