/* MACHINE-GENERATED ! */

frame short {
	__0: vec @(Iox, 0mm)
	line @ . w
	__1: vec .(Lox, 0mm)
	__2: vec .(Iix, 0mm)
	line __1 . w
	__3: vec __0(0mm, -Ly)
	line __0 . w
	__4: vec __1(0mm, -Ly)
	line __3 . w
	line . __1 w
	__5: vec __2(Lix, 0mm)
	__6: vec __2(0mm, -Ly)
	line __2 . w
	__7: vec __5(0mm, -Ly)
	line __6 . w
	line . __5 w
	__8: vec __5(Iix, 0mm)
	line __5 . w
	__9: vec .(Lox, 0mm)
	__10: vec .(Iox, 0mm)
	line __9 . w
	__11: vec __8(0mm, -Ly)
	line __8 . w
	__12: vec __9(0mm, -Ly)
	line . __11 w
	line __9 . w
	__13: vec @(0mm, H)
	line . @ w
	__14: vec .(Iox, 0mm)
	line __13 . w
	__15: vec .(Lox, 0mm)
	__16: vec .(Iix, 0mm)
	line __15 . w
	__17: vec .(Lix, 0mm)
	__18: vec .(Iix, 0mm)
	line __17 . w
	__19: vec .(Lox, 0mm)
	__20: vec .(Iox, 0mm)
	line __19 . w
	line . __10 w
	__21: vec __14(0mm, Ly)
	line . __14 w
	__22: vec __15(0mm, Ly)
	line __21 . w
	line . __15 w
	__23: vec __16(0mm, Ly)
	line . __16 w
	__24: vec __17(0mm, Ly)
	line __23 . w
	line . __17 w
	__25: vec __18(0mm, Ly)
	line . __18 w
	__26: vec __19(0mm, Ly)
	line . __25 w
	line . __19 w
}

frame debug {
	table
	    { Wdbg, Hdbg }
	    { 14.5mm, 9.5mm }

	__0: vec @(Wdbg, Hdbg)
	rect @ . w
}

frame dc {
	table
	    { Wdc, Hdc }
	    { 9.4mm, 11.4mm }

	__0: vec @(-Wdc, Hdc)
	rect @ . w
}

frame ether {
	table
	    { Weth, Heth }
	    { 16.5mm, 14mm }

	__0: vec @(Weth, Heth)
	rect @ . w
}

frame rgb {
	set Rrgb = 6.3mm

	__0: vec @(0mm, Rrgb)
	circ @ . w
}

frame rear {
	table
	    { Irgbx, Irgby, Drgb }
	    { 25.5mm, 14.5mm, 15mm }

	table
	    { Iethx, Iethy }
	    { 67mm, 7mm }

	table
	    { Idcx, Idcy }
	    { 14.8mm, 6.6mm }

	table
	    { Idbgx, Idbgy }
	    { 88.1mm, 14.5mm }

	loop if = 1, rear

	__0: vec @(Irgbx, Irgby)
	frame rgb .
	__1: vec .(Drgb, 0mm)
	frame rgb .
	__2: vec .(Drgb, 0mm)
	frame rgb .
	__3: vec @(Iethx, Iethy)
	frame ether .
	__4: vec @(Ws, 0mm)
	__5: vec .(-Idcx, Idcy)
	frame dc .
	__6: vec @(Idbgx, Idbgy)
	frame debug .
	frame short @
}

frame usb {
	table
	    { Wusb, Husb }
	    { 8.5mm, 15.5mm }

	__0: vec @(-Wusb, Husb)
	rect . @ w
}

frame but {
	set Rbut = 4mm+0.1mm

	__0: vec @(0mm, Rbut)
	circ @ . w
}

frame front {
	table
	    { Ibutx, Ibuty, Dbut }
	    { 54.5mm, 10.5mm, 14mm }

	table
	    { Iusbx, Iusby, Dusb }
	    { 18.5mm, 6.5mm+1.4mm, 12.5mm }

	loop if = 1, front

	__0: vec @(Ibutx, Ibuty)
	frame but .
	__1: vec .(Dbut, 0mm)
	frame but .
	__2: vec .(Dbut, 0mm)
	frame but .
	__3: vec @(Ws, 0mm)
	__4: vec .(-Iusbx, Iusby)
	frame usb .
	__5: vec .(-Dusb, 0mm)
	frame usb .
	frame short @
}

package "M1-$part"
unit mm

table
    { Iox, Lox, Ly, Iix, Lix }
    { 10mm, 12mm, 3mm, 33mm, 21mm }

set w = 0.1mm

table
    { H, Ws }
    { 36.5mm, 2*(Iox+Lox+Iix)+Lix }

table
    { part, front, rear }
    { "front", 1, 0 }
    { "rear", 0, 1 }

frame front @
frame rear @