+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Off
- Copyright (C) 2003 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import br.ufrgs.ece.AIC.*;
-
-class AICOff
-{
- static final int BASE=0x800000;
- static AIC aic;
-
- public static void main(String[] args)
- {
- System.out.println("AIC Off");
- System.out.println("Copyright (C) Walter Fetter Lages, 2003.\n");
-
- aic=new AIC(BASE,24.0,20e3,2000);
- aic.off();
- }
-}
+++ /dev/null
-all: AICOff.tini
-
-AICOff.class: AICOff.java ../lib/AIC.jar
- javac ${JAVAFLAGS} ${CLASSPATH} AICOff.java
-
-AICOff.tini: AICOff.class ../lib/AIC.jar
- java ${CLASSPATH} TINIConvertor -f AICOff.class ${APIDBPATH} ${NATLIB} -o AICOff.tini ${LIBPATH}
-
-clean:
- rm -f *.bak *~ *.class
-
-distclean: clean
- rm -f AICOff.tini
-
-upload: AICOff.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Brake Real Time Test
- User Interface Module
- Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import com.dalsemi.system.*;
-
-public class BrakeRtTest
-{
- public static native int startRealtime(int period);
- public static native void stopRealtime();
-
- public static void main(String[] args)
- {
- System.out.println("BrakeRtTest");
- System.out.println("Copyright (C) Walter Fetter Lages, 2005.\n");
-
- int tfms=0;
- if(args.length==1)
- {
- tfms=Integer.parseInt(args[0]);
- }
- else
- {
- System.out.println("Usage:\tBrakeRtTest ms");
- System.exit(1);
- }
-
- System.out.print("Loading native library...");
- System.loadLibrary("braketest.tlib");
- System.out.println("done.");
-
- int us=10000;
- System.out.print("Starting real-time timer with "+us+" us period...");
- int period=startRealtime(us);
- System.out.println("done.");
- System.out.println("Effective period: "+period+" us.");
-
- System.out.println("Running BrakeRtTest for "+tfms+" ms...");
- long t0=TINIOS.uptimeMillis();
- long t=0;
- while(t <= tfms)
- {
- t=TINIOS.uptimeMillis()-t0;
- System.out.print("t="+t+"ms ");
- }
- System.out.println("...done.");
-
- System.out.print("Stoping real-time timer...");
- stopRealtime();
- System.out.println("done.");
- }
-}
+++ /dev/null
-all: BrakeRtTest.tini
-
-BrakeRtTest.class: BrakeRtTest.java
- ${JAVAC} ${CLASSPATH} ${JAVAFLAGS} BrakeRtTest.java
-
-braketest.mpp: braketest.a51
- ${ASMMACRO} -I${ASMINC} -e- braketest.a51
-
-braketest.tlib: braketest.mpp ../lib/aicio.mpp.lib
- cat braketest.mpp ${TRTAIPATH}/lib/rtai.mpp.lib ../lib/aicio.mpp.lib > tmp.mpp
- echo end >> tmp.mpp
- ${ASM} ${ASMOPT} tmp.mpp
- mv tmp.tlib braketest.tlib
- mv tmp.lst braketest.lst
-
-braketest.a51: braketest.c
- ${SDCC} ${SDCCCMPFLAGS} braketest.c
-
-BrakeRtTest.tini: BrakeRtTest.class braketest.tlib
- java ${CLASSPATH} TINIConvertor -n braketest.tlib -f BrakeRtTest.class ${APIDBPATH} -o BrakeRtTest.tini
-
-
-clean:
- rm -f *.bak *~ BrakeRtTest.class braketest.tlib braketest.mpp braketest.lst braketest.a51 globals.mpp tmp.mpp tmp.lst
-
-distclean: clean
- rm -f BrakeRtTest.tini
-
-upload: BrakeRtTest.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Brake Real Time Test
- Real Time Module
- Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <rtai_sched.h>
-#include <pthread.h>
-
-#include <aicio.h>
-
-#define BASE 0x800000
-
-extern volatile pthread_t th;
-
-void braketest_globals(void) _naked
-{
- _asm
-th: db 0,0,0,0
-braketest_time_1_1: db 0,0,0,0
- _endasm;
-}
-
-
-void *braketest(void *arg)
-{
- static int time=0;
-
- if(time) brake_apply(); else brake_release();
- time=~time;
-
- return NULL;
-}
-
-
-/* public static native int startRealtime(int period) */
-long Native_startRealtime(void) _JavaNative
-{
- volatile long period=NatLib_LoadInt(0);
- start_rt_timer(micro2count(period));
- pthread_create(&th,NULL,braketest,NULL);
-
- brake_initialize(BASE);
-
- _asm
- clr a
- _endasm;
-
- return period;
-}
-
-/* public static native void stopRealtime() */
-void Native_stopRealtime(void) _JavaNative
-{
- pthread_cancel(th);
- stop_rt_timer();
-
- _asm
- clr a
- _endasm;
-}
-
+++ /dev/null
-;******************************************************************************
-;
-; Actuator Interface Card
-; Brake Real Time Test
-; Real Time Module Global Variables
-; Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-;
-; 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 2 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, write to the Free Software
-; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-;
-; You can also obtain a copy of the GNU General Public License
-; at <http://www.gnu.org/licenses>.
-;
-;*******************************************************************************/
-
-
-braketest_time_1_1: db 0,0,0,0
-th: db 0,0,0,0
- end
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Brake Apply
- Copyright (C) 2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import br.ufrgs.ece.AIC.*;
-
-class BrakeApply
-{
- static final int BASE=0x800000;
-
- static AIC aic;
-
- public static void main(String[] args)
- {
- System.out.println("AIC Brake Apply");
- System.out.println("Copyright (C) Walter Fetter Lages, 2004.\n");
-
- aic=new AIC(BASE,24.0,20e3,2000);
-
- aic.brake.apply();
- }
-}
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Brake Release
- Copyright (C) 2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import br.ufrgs.ece.AIC.*;
-
-class BrakeRelease
-{
- static final int BASE=0x800000;
-
- static AIC aic;
-
- public static void main(String[] args)
- {
- System.out.println("AIC Brake Release");
- System.out.println("Copyright (C) Walter Fetter Lages, 2004.\n");
-
- aic=new AIC(BASE,24.0,20e3,2000);
-
- aic.brake.release();
- }
-}
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Brake Test
- Copyright (C) 2002...2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import br.ufrgs.ece.AIC.*;
-import com.dalsemi.system.*;
-import java.lang.Math.*;
-
-class BrakeTest
-{
- static final int BASE=0x800000;
- static final int ST=1000;
-
- static AIC aic;
-
- private static void delay(int ms)
- {
- long time=TINIOS.uptimeMillis();
- while(TINIOS.uptimeMillis() < time+ms);
- }
-
- public static void main(String[] args)
- {
- int i;
- boolean run=true;
-
- System.out.println("AIC Brake Test Program");
- System.out.println("Copyright (C) Walter Fetter Lages, 2002...2004.\n");
-
- aic=new AIC(BASE,24.0,20e3,2000);
- aic.on();
-
- while(run)
- {
- aic.brake.release();
- System.out.println("Brake released");
- delay(ST);
- aic.brake.apply();
- System.out.println("Brake applied");
- delay(ST);
- }
- aic.off();
- }
-}
+++ /dev/null
-all: BrakeTest.tini BrakeApply.tini BrakeRelease.tini
-
-BrakeTest.class: BrakeTest.java ../lib/AIC.jar
- javac ${JAVAFLAGS} ${CLASSPATH} BrakeTest.java
-
-BrakeTest.tini: BrakeTest.class ../lib/AIC.jar
- java ${CLASSPATH} TINIConvertor -f BrakeTest.class ${APIDBPATH} ${NATLIB} -o BrakeTest.tini ${LIBPATH}
-
-BrakeApply.class: BrakeApply.java ../lib/AIC.jar
- javac ${JAVAFLAGS} ${CLASSPATH} BrakeApply.java
-
-BrakeApply.tini: BrakeApply.class ../lib/AIC.jar
- java ${CLASSPATH} TINIConvertor -f BrakeApply.class ${APIDBPATH} ${NATLIB} -o BrakeApply.tini ${LIBPATH}
-
-BrakeRelease.class: BrakeRelease.java ../lib/AIC.jar
- javac ${JAVAFLAGS} ${CLASSPATH} BrakeRelease.java
-
-BrakeRelease.tini: BrakeRelease.class ../lib/AIC.jar
- java ${CLASSPATH} TINIConvertor -f BrakeRelease.class ${APIDBPATH} ${NATLIB} -o BrakeRelease.tini ${LIBPATH}
-
-clean:
- rm -f *.bak *~ BrakeTest.class BrakeApply.class BrakeRelease.class
-
-distclean: clean
- rm -f BrakeTest.tini BrakeApply.tini BrakeRelease.tini
-
-upload: BrakeTest.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- CAN Receive Test
- Copyright (C) 2003 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import com.dalsemi.comm.*;
-import com.dalsemi.system.*;
-
-public class CANRx
-{
- /* 125Kbit/s with crystal of 18.432MHz */
- static final int CAN_DIVISOR = 7;
- static final int CAN_TSEG1 = 13;
- static final int CAN_TSEG2 = 7;
- static final int CAN_SJW = 1;
- static final byte CANBUSNUM = CanBus.CANBUS0;
-// static final byte CANBUSNUM = CanBus.CANBUS1;
-
- static void dumpFrame(CanFrame frame)
- {
- System.out.println("ID: "+Integer.toHexString(frame.ID));
- if (frame.extendedID)
- System.out.println("Extended ID");
- else
- System.out.println("Standard ID");
- if (frame.remoteFrameRequest)
- System.out.println("Remote Frame");
- else
- System.out.println("Data Frame");
- System.out.println("Length: "+frame.length);
- for (int i = 0;i < frame.length;i++)
- System.out.print(Integer.toHexString(frame.data[i] & 0xFF)+" ");
- System.out.println();
- }
-
- static final boolean dopassive = false;
-
- static void main(String args[])
- {
- try
- {
- System.out.println("CAN Receive Test");
-
- final int DUMPCOUNT = 1;
- long start,stop;
-
- CanBus a = new CanBus(CANBUSNUM);
- a.setBaudRatePrescaler(CAN_DIVISOR);
- a.setTSEG1(CAN_TSEG1);
- a.setTSEG2(CAN_TSEG2);
- a.setSynchronizationJumpWidth(CAN_SJW);
-
-// a.setReceiveQueueLimit(1);
-// a.setTransmitQueueLimit(1);
- System.out.println("Frames available to read: "+a.receiveFramesAvailable());
-
- // Now, we tell the CAN Controller to jump on the bus.
- if (dopassive)
- {
- System.out.println("Enabling passive receive");
- a.enableControllerPassive();
- }
- else
- {
- System.out.println("Enabling regular receive");
- a.enableController();
- }
-
- // Set message center one to receive
- a.setMessageCenterRXMode(1);
- // Set message center one to not use mask filtering
- a.setMessageCenterMessageIDMaskEnable(1,false);
- // Set message center one to match this 11 bit id
- a.set11BitMessageCenterArbitrationID(1,0x69);
- // Set message center one to allow reception of messages.
- a.enableMessageCenter(1);
-
- // Create the frame for recieve() to fill
- CanFrame frame = new CanFrame();
-
- for(int count=0;count <= 100;count++)
- {
- System.out.println("count=" +count);
-
- // Block waiting on a frame reception.
- a.receive(frame);
-
- for (int i = 0;i < frame.length;i++)
- System.out.print(Integer.toHexString(frame.data[i] & 0xFF)+" ");
- System.out.println();
-// dumpFrame(frame);
-
- }
- a.close();
-
- System.out.println("Normal Exit");
- }
- catch (Throwable e)
- {
- System.out.println("Exception");
- System.out.println(e);
- }
- }
-}
+++ /dev/null
-bin
-put CANRx.tini
-quit
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- CAN Transmit Test
- Copyright (C) 2003 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import com.dalsemi.comm.*;
-import com.dalsemi.system.*;
-
-public class CANTx
-{
- /* 125Kbit/s with crystal of 18.432MHz */
- static final int CAN_DIVISOR = 7;
- static final int CAN_TSEG1 = 13;
- static final int CAN_TSEG2 = 7;
- static final int CAN_SJW = 1;
- static final byte CANBUSNUM = CanBus.CANBUS0;
-// static final byte CANBUSNUM = CanBus.CANBUS1;
-
- static void main(String args[])
- {
- try
- {
- System.out.println("CAN Transmit Test");
-
- CanBus a = new CanBus(CANBUSNUM);
- a.setBaudRatePrescaler(CAN_DIVISOR);
- a.setTSEG1(CAN_TSEG1);
- a.setTSEG2(CAN_TSEG2);
- a.setSynchronizationJumpWidth(CAN_SJW);
-
- // Now, we tell the CAN Controller to jump on the bus.
- a.enableController();
-
- // Set message center one to transmit. This allows any outgoing messages
- // to use this register.
- a.setMessageCenterTXMode(1);
-
- byte[] temp = new byte[8];
-
- temp[0] = (byte)0xAA;
- temp[1] = 0x55;
-
- for(int count=0;count <= 100;count++)
- {
- System.out.println("Count=" + count);
- temp[2] = (byte)count;
- temp[3] = (byte)(count >> 8);
-
- // Send a frame using standard (11 bit) ID, block until frame is ACKed
- a.sendDataFrame(0x69, false, temp);
- Thread.sleep(300);
-
- }
- a.close();
-
- System.out.println("Normal Exit");
- }
- catch (Throwable e)
- {
- System.out.println("Exception");
- System.out.println(e);
- }
- }
-}
+++ /dev/null
-bin
-put CANTx.tini
-quit
+++ /dev/null
-all: CANRx.tini CANTx.tini
-
-CANRx.class: CANRx.java
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} CANRx.java
-
-CANRx.tini: CANRx.class
- java ${CLASSPATH} BuildDependency ${DEPNAME} ${DEPFILE} ${DEPPATH} -f CANRx.class ${APIDBPATH} -o CANRx.tini ${LIBPATH}
-
-CANTx.class: CANTx.java
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} CANTx.java
-
-CANTx.tini: CANTx.class
- java ${CLASSPATH} BuildDependency ${DEPNAME} ${DEPFILE} ${DEPPATH} -f CANTx.class ${APIDBPATH} -o CANTx.tini ${LIBPATH}
-
-clean:
- rm -f *.bak *~ CANRx.class CANTx.class
-
-distclean: clean
- rm -f CANRx.tini CANTx.tini
-
-upload: CANRx.tini CANTx.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
+++ /dev/null
-bin
-put CANRx.tini
-put CANTx.tini
-quit
+2006.06.11 Inicio do projeto aic-2.0.0
+
2008.02.15 Incluido destrutor virtual na classe AIC_COMM.
Alterada a implementacao da serializacao de valores double
Criada a versao 1.6.1
+
2006.02.24 Incluidos os esquematicos e o layout do PCB no arquivo de
documentacao em pdf.
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Command Daemon
- Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import br.ufrgs.ece.AIC.*;
-import com.dalsemi.comm.*;
-import com.dalsemi.system.*;
-import java.io.*;
-import java.lang.*;
-
-class CmdDaemon extends Thread
-{
- static final int BASE=0x800000;
-
- static AIC aic;
- static Host host;
- static boolean debug=false;
- static boolean udp=false;
- static boolean help=false;
-
- public static void main(String[] args) throws IOException,CanBusException
- {
- int i;
- int hostarg=0;
-
- System.out.println("AIC Command Daemon");
- System.out.println("Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>.\n");
-
- switch(args.length)
- {
- case 0:
- {
- help=true;
- break;
- }
- case 1:
- {
- if(args[0].equals("-debug") ||
- args[0].equals("-UDP")) help=true;
- break;
- }
- case 2:
- {
- hostarg=1;
- if(args[0].equals("-debug")) debug=true;
- else help=true;
- break;
- }
- case 3:
- {
- hostarg=1;
- if(args[0].equals("-UDP")) udp=true;
- else help=true;
- break;
- }
- case 4:
- {
- hostarg=2;
- if(args[0].equals("-debug")) debug=true;
- else help=true;
- if(args[1].equals("-UDP")) udp=true;
- else help=true;
- break;
- }
- default:
- {
- help=true;
- }
- }
-
-
- if(help)
- {
- System.out.println("Usage:\tjava CmdDaemon.tini [-debug] aic_id");
- System.out.println("\tor");
- System.out.println("\tjava CmdDaemon.tini [-debug] -UDP controller_host status_port");
- System.exit(1);
- }
- try
- {
- aic=new AIC(BASE,24.0,20e3,2000);
- if(udp) host=new HostUDP(args[hostarg],Integer.parseInt(args[hostarg+1]));
- else host=new HostCAN(Integer.parseInt(args[hostarg]));
-
- GetCommand getCommand=new GetCommand();
- getCommand.setPriority(Thread.MAX_PRIORITY);
- getCommand.start();
-
- if(debug) System.out.println("getCommand priority="+getCommand.getPriority());
- }
- catch (NumberFormatException nfe)
- {
- System.out.println("Usage: java CmdDaemon.tini [-debug] [-UDP controller_host port] | aicid");
- System.exit(1);
- }
- }
-}
-
-
-class GetCommand extends CmdDaemon
-{
- public void run()
- {
- try
- {
- aic.on();
- aic.brake.release();
-
- for(int k=0;;k++)
- {
- if(debug) System.out.print("k="+k+"\t");
-
- int cmd=host.command();
-
- if(debug) System.out.print("Command="+ cmd +"\t");
-
- switch(cmd)
- {
- case Host.MOTOR_ON:
- {
- if(debug) System.out.print("Motor on\t");
- aic.motor.on();
- break;
- }
- case Host.MOTOR_OFF:
- {
- if(debug) System.out.print("Motor off\t");
- aic.motor.off();
- break;
- }
- case Host.MOTOR_ACT:
- {
- if(debug) System.out.print("Voltage="+host.voltage()+"\t");
- aic.motor.set(host.voltage());
- break;
- }
- case Host.BRAKE_RELEASE:
- {
- if(debug) System.out.print("Brake release\t");
- aic.brake.release();
- break;
- }
- case Host.BRAKE_APPLY:
- {
- if(debug) System.out.print("Brake apply\t");
- aic.brake.apply();
- break;
- }
-/* case Host.RESET:
- {
- if(debug) System.out.print("Reset\t");
- aic.reset();
- break;
- }
-*/
- default:
- {
- if(debug) System.out.print("Invalid\t");
- break;
- }
-
- }
- if(debug) System.out.println("");
- }
- }
- catch (Exception all)
- {
- all.printStackTrace();
- }
- }
-}
+++ /dev/null
-all: CmdDaemon.tini
-
-CmdDaemon.class: CmdDaemon.java ../lib/AIC.jar
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} CmdDaemon.java
-
-CmdDaemon.tini: CmdDaemon.class ../lib/AIC.jar
- java ${CLASSPATH} BuildDependency ${DEPNAME} ${DEPFILE} ${DEPPATH} -f CmdDaemon.class ${APIDBPATH} -o CmdDaemon.tini ${LIBPATH} ${NATLIB}
-
-clean:
- rm -f *.bak *~ *.class
-
-distclean: clean
- rm -f CmdDaemon.tini
-
-upload: CmdDaemon.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
\ No newline at end of file
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Door Daemon
- Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import br.ufrgs.ece.AIC.*;
-import com.dalsemi.system.*;
-import com.dalsemi.tininet.*;
-import java.net.*;
-
-class DoorDaemon extends Thread
-{
- private static final int BASE=0x800000;
- private static final int DD_PORT=9880;
-
- private TINIDatagramSocket ddsock;
-
- static AIC aic;
-
- public static void main(String[] args)
- {
- int i;
- int hostarg=0;
-
- System.out.println("AIC Door Daemon");
- System.out.println("Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>.\n");
-
- try
- {
- aic=new AIC(BASE,24.0,20e3,2000);
-
- TINIDatagramSocket ddsock=new TINIDatagramSocket(DD_PORT);
-
- byte[] buff= new byte[256];
- DatagramPacket p=new DatagramPacket(buff,256);
-
- byte[] rmadd= new byte[18];
-
- for(;;)
- {
-
- ddsock.receive(p,rmadd,0);
-
- Chap chap=new Chap(rmadd);
- chap.start();
- sleep(1000);
- chap.stop();
- }
- }
- catch (Exception all)
- {
- all.printStackTrace();
- }
- }
-}
-
-
-class Chap extends DoorDaemon
-{
- // socket for transmitting challenge
- private TINIDatagramSocket chsock;
- private InetAddress chaddr;
- private int chport;
-
- public Chap(byte[] rmadd)
- {
- try
- {
- chsock=new TINIDatagramSocket();
- int chip=(((int)rmadd[12]) << 24) | (((int)rmadd[13]) << 16) | (((int)rmadd[14]) << 8) | (int)rmadd[15];
- chaddr=InetAddress.getByName(rmadd[12]+"."+rmadd[13]+"."+rmadd[14]+"."+rmadd[15]);
- chport=(((int)rmadd[16]) << 8) | (int)rmadd[17];
- }
- catch (Exception all)
- {
- all.printStackTrace();
- }
- }
-
- public void run()
- {
- int challenge=Security.getRandom();
- byte[] chbuff=new byte[4];
-
- byte[] passwd="abcd".getBytes();
-
- for(int i=0;i < 4;i++)
- {
- chbuff[i]=(byte)((challenge >> (8*i)) & 0xff);
- passwd[i]=(byte)(chbuff[i] ^ passwd[i]);
- }
- byte[] hash=Security.hashMessage(passwd);
-
- try
- {
- DatagramPacket chp=new DatagramPacket(chbuff,4,chaddr,chport);
- chsock.send(chp);
-
- byte[] respbuff= new byte[256];
- DatagramPacket respp=new DatagramPacket(respbuff,256);
-
- chsock.receive(respp);
-
- if(respbuff==hash)
- {
- aic.on();
- aic.brake.release();
- sleep(1000);
- aic.brake.apply();
- aic.off();
- }
- }
- catch (Exception all)
- {
- all.printStackTrace();
- }
- }
-}
-
-
+++ /dev/null
-all: DoorDaemon.tini
-
-DoorDaemon.class: DoorDaemon.java ../lib/AIC.jar
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} DoorDaemon.java
-
-DoorDaemon.tini: DoorDaemon.class ../lib/AIC.jar
- java ${CLASSPATH} BuildDependency ${DEPNAME} ${DEPFILE} ${DEPPATH} -f DoorDaemon.class ${APIDBPATH} -o DoorDaemon.tini ${LIBPATH} ${NATLIB}
-
-clean:
- rm -f *.bak *~ *.class
-
-distclean: clean
- rm -f DoorDaemon.tini
-
-upload: DoorDaemon.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
\ No newline at end of file
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Door Open
- Copyright (C) 2006 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import br.ufrgs.ece.AIC.*;
-import com.dalsemi.system.*;
-import java.lang.Math.*;
-
-class DoorOpen
-{
- static final int BASE=0x800000;
- static final int ST=1000;
-
- static AIC aic;
-
- private static void delay(int ms)
- {
- long time=TINIOS.uptimeMillis();
- while(TINIOS.uptimeMillis() < time+ms);
- }
-
- public static void main(String[] args)
- {
- int i;
-
-
-// System.out.println("AIC Door Open");
-// System.out.println("Copyright (C) Walter Fetter Lages, 2006.\n");
-
- aic=new AIC(BASE,24.0,20e3,2000);
-// aic.on();
-
- aic.brake.release();
- System.out.print("Door open...");
- delay(ST);
- aic.brake.apply();
- System.out.println("closed");
-
-// aic.off();
- }
-}
+++ /dev/null
-all: DoorOpen.tini
-
-DoorOpen.class: DoorOpen.java ../lib/AIC.jar
- javac ${JAVAFLAGS} ${CLASSPATH} DoorOpen.java
-
-DoorOpen.tini: DoorOpen.class ../lib/AIC.jar
- java ${CLASSPATH} TINIConvertor -f DoorOpen.class ${APIDBPATH} ${NATLIB} -o DoorOpen.tini ${LIBPATH}
-
-clean:
- rm -f *.bak *~ DoorOpen.class
-
-distclean: clean
- rm -f DoorOpen.tini
-
-upload: DoorOpen.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Door Post Handler
-
- Copyright (C) 2006 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-import br.ufrgs.ece.AIC.*;
-import java.io.*;
-import java.lang.*;
-import java.util.*;
-import com.dalsemi.tininet.http.*;
-import com.dalsemi.system.*;
-
-public class DoorHandler implements PostScript
-{
- static final int BASE=0x800000;
- static AIC aic;
- static boolean first=true;
-
- private static void delay(int ms)
- {
- long time=TINIOS.uptimeMillis();
- while(TINIOS.uptimeMillis() < time+ms);
- }
-
- /**
- * This method handles all responses to the the HTTP POST
- *
- * @param data - a Vector of PostElements holding all supplied fields and Values in pairs
- * @param out - an Output Stream to the client socket
- * @param work - HTTPWorker contains utility functions used to URL encode our response
- * @throws IOException if an IO error occurs
- */
-
- public void handlePost(Vector data,OutputStream out,HTTPWorker work) throws IOException
- {
- if(first)
- {
- aic=new AIC(BASE,24.0,20e3,2000);
- first=false;
- }
-
- // Response page
-
- // HTML headers
- StringBuffer strBuff=new StringBuffer("<html>\r\n"
- + "<META HTTP-EQUIV=REFRESH CONTENT=\"3;URL=http://d111\">\r\n"
- + "<title>Door Control</title>\r\n"
- + "<body><center><h1>Door Control</h1>\r\n");
-
- PostElement passwd = (PostElement)data.elementAt(0);
-
- if(passwd.value.equals("Password"))
- {
- aic.brake.release();
- strBuff.append("<img src=\"http://d111/open2.jpg\"><br>Door Open.\r\n");
- }
- else
- {
- strBuff.append("<img src=\"http://d111/closed2.jpg\"><br>Sorry!\r\n");
- }
-
- // Use HTTPWorker's encode body function to generate the URL encoded response
- out.write(work.encodeBody(HTTPServer.HTTP_OK,"OK",HTTPServer.MIME_TEXT_HTML,strBuff.length()));
-
- // Send out the bytes of our response page
- out.write(strBuff.toString().getBytes());
-
- // Ensure that our data is written imediatly
- out.flush();
-
- delay(2000);
- aic.brake.apply();
- }
-}
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Door Web Server
- Copyright (C) 2006 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import com.dalsemi.tininet.http.HTTPServer;
-import com.dalsemi.tininet.http.HTTPServerException;
-
-class DoorWeb
-{
- static Object lock;
-
- public static void main(String[] args)
- {
- System.out.println("Door Web Server");
- System.out.println("Copyright (C) 2006 Walter Fetter Lages <w.fetter@ieee.org>.\n");
-
- HTTPServer httpd=new HTTPServer(80);
- httpd.setHTTPRoot("/html");
- httpd.setIndexPage("index.html");
- httpd.setLogFilename("/log/DoorWeb.txt");
- httpd.setLogging(true);
-
- System.out.println("Door web server running...");
-
- while (true)
- {
- try
- {
- httpd.serviceRequests();
- }
- catch (HTTPServerException e)
- {
- System.out.println("Error occured while servicing requests: " + e.getMessage());
- }
- }
- }
-}
+++ /dev/null
-DEPNAME:=-add HTTPSERVER
-
-all: DoorWeb.tini
-
-DoorWeb.class: DoorWeb.java ../lib/AIC.jar
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} $<
-
-DoorHandler.class: DoorHandler.java ../lib/AIC.jar
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} $<
-
-DoorWeb.tini: DoorWeb.class DoorHandler.class ../lib/AIC.jar
- java ${CLASSPATH} BuildDependency ${DEPNAME} ${DEPFILE} ${DEPPATH} -f DoorHandler.class -f DoorWeb.class -o $@ ${LIBPATH} ${NATLIB} ${APIDBPATH}
-
-clean:
- rm -f *.bak *~ *.class
-
-distclean: clean
- rm -f DoorWeb.tini
-
-upload: DoorWeb.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
-
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">\r
-<html>\r
-<head>\r
-<title>Door Control</title>\r
-</head>\r
-<body>\r
-<center>\r
-<h1>Door Control</h1>\r
-<form method="post" enctype="application/x-www-form-urlencoded" action="DoorHandler">\r
-<img src="closed2.jpg"><br>\r
-Password: <input type="password" name="password">\r
-<input type="submit" value="Open">\r
-</form>\r
-</center>\r
-</body>\r
-</html>\r
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Encoder Real Time Test
- Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import com.dalsemi.system.*;
-import java.lang.Math.*;
-
-class EncoderRtRead
-{
- public static native int startRealtime(int period);
- public static native void stopRealtime();
- public static native float encoderGet();
- static final int ST=100;
-
- private static void delay(int ms)
- {
- long time=TINIOS.uptimeMillis();
- while(TINIOS.uptimeMillis() < time+ms);
- }
-
- static void iter(long t)
- {
- long timeread=TINIOS.uptimeMillis();
- float disp=encoderGet();
- System.out.print("t="+t+" ms");
- System.out.println("\tEncoder read: " + disp);
- delay(ST);
- }
-
- public static void main(String[] args)
- {
- int i;
- boolean run=true;
-
- System.out.println("AIC Encoder Real Time Test Program");
- System.out.println("Copyright (C) Walter Fetter Lages, 2005.\n");
-
- int tfms=0;
- if(args.length==1)
- {
- tfms=Integer.parseInt(args[0]);
- }
- else
- {
- System.out.println("Usage:\tEncoderRtRead ms");
- System.exit(1);
- }
-
- System.out.print("Loading native library...");
- System.loadLibrary("encoderread.tlib");
- System.out.println("done.");
-
- int us=10000;
- System.out.print("Starting real-time timer with "+us+" us period...");
- int period=startRealtime(us);
- System.out.println("done.");
- System.out.println("Effective period: "+period+" us.");
-
- System.out.println("Running EncoderRtRead for "+tfms+" ms...");
-
- long t0=TINIOS.uptimeMillis();
- long t=0;
- while(t <= tfms)
- {
- t=TINIOS.uptimeMillis()-t0;
- iter(t);
- }
- System.out.println("...done.");
-
- System.out.print("Stoping real-time timer...");
- stopRealtime();
- System.out.println("done.");
-
- }
-}
+++ /dev/null
-all: EncoderRtRead.tini
-
-EncoderRtRead.class: EncoderRtRead.java ../lib/AIC.jar
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} EncoderRtRead.java
-
-encoderread.mpp: encoderread.a51
- ${ASMMACRO} -I${ASMINC} -e- encoderread.a51
-
-encoderread.tlib: encoderread.mpp ../lib/aicio.mpp.lib
- cat encoderread.mpp ${TRTAIPATH}/lib/rtai.mpp.lib ../lib/aicio.mpp.lib > tmp.mpp
- echo end >> tmp.mpp
- ${ASM} ${ASMOPT} tmp.mpp
- mv tmp.tlib encoderread.tlib
- mv tmp.lst encoderread.lst
-
-encoderread.a51: encoderread.c
- ${SDCC} ${SDCCCMPFLAGS} encoderread.c
-
-EncoderRtRead.tini: EncoderRtRead.class encoderread.tlib
- java ${CLASSPATH} TINIConvertor -n encoderread.tlib -f EncoderRtRead.class ${APIDBPATH} -o EncoderRtRead.tini
-
-
-clean:
- rm -f *.bak *~ EncoderRtRead.class encoderread.tlib encoderread.mpp encoderread.lst encoderread.a51 globals.mpp tmp.mpp tmp.lst
-
-distclean: clean
- rm -f EncoderRtRead.tini
-
-upload: EncoderRtRead.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
-
\ No newline at end of file
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Encoder Real Time Test
- Real Time Module
- Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <rtai_sched.h>
-#include <pthread.h>
-
-#include <aicio.h>
-
-#define BASE 0x800000
-
-volatile pthread_t th;
-volatile float disp;
-
-void encodertest_globals(void) _naked
-{
- _asm
-th: db 0,0,0,0
-disp: db 0,0,0,0
- _endasm;
-}
-
-void *encoderread(void *arg)
-{
- disp=encoder_read();
- return NULL;
-}
-
-/* public static native int startRealtime(int period) */
-long Native_startRealtime(void) _JavaNative
-{
- volatile long period=NatLib_LoadInt(0);
- start_rt_timer(micro2count(period));
- pthread_create(&th,NULL,encoderread,NULL);
-
- encoder_initialize(BASE,2048);
-
- brake_release();
-
- _asm
- clr a
- _endasm;
-
- return period;
-}
-
-/* public static native void stopRealtime() */
-void Native_stopRealtime(void) _JavaNative
-{
- brake_apply();
-
- pthread_cancel(th);
- stop_rt_timer();
-
- _asm
- clr a
- _endasm;
-}
-
-/* public static native float encoderGet() */
-float Native_encoderGet(void) _JavaNative
-{
- return disp;
-}
-
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Encoder Real Time Test
- Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import com.dalsemi.system.*;
-import java.lang.Math.*;
-
-class EncoderRtTest
-{
- public static native int startRealtime(int period);
- public static native void stopRealtime();
- public static native int encoderGet();
- static final int ST=100;
-
- private static void delay(int ms)
- {
- long time=TINIOS.uptimeMillis();
- while(TINIOS.uptimeMillis() < time+ms);
- }
-
- static void iter(long t)
- {
- long timeread=TINIOS.uptimeMillis();
- int count=encoderGet();
- System.out.print("t="+t+" ms");
- System.out.println("\tEncoder count: " + count);
- delay(ST);
- }
-
- public static void main(String[] args)
- {
- int i;
- boolean run=true;
-
- System.out.println("AIC Encoder Real Time Test Program");
- System.out.println("Copyright (C) Walter Fetter Lages, 2005.\n");
-
- int tfms=0;
- if(args.length==1)
- {
- tfms=Integer.parseInt(args[0]);
- }
- else
- {
- System.out.println("Usage:\tEncoderRtTest ms");
- System.exit(1);
- }
-
- System.out.print("Loading native library...");
- System.loadLibrary("encodertest.tlib");
- System.out.println("done.");
-
- int us=10000;
- System.out.print("Starting real-time timer with "+us+" us period...");
- int period=startRealtime(us);
- System.out.println("done.");
- System.out.println("Effective period: "+period+" us.");
-
- System.out.println("Running EncoderRtTest for "+tfms+" ms...");
-
- long t0=TINIOS.uptimeMillis();
- long t=0;
- while(t <= tfms)
- {
- t=TINIOS.uptimeMillis()-t0;
- iter(t);
- }
- System.out.println("...done.");
-
- System.out.print("Stoping real-time timer...");
- stopRealtime();
- System.out.println("done.");
-
- }
-}
+++ /dev/null
-all: EncoderRtTest.tini
-
-EncoderRtTest.class: EncoderRtTest.java ../lib/AIC.jar
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} EncoderRtTest.java
-
-encodertest.mpp: encodertest.a51
- ${ASMMACRO} -I${ASMINC} -e- encodertest.a51
-
-encodertest.tlib: encodertest.mpp ../lib/aicio.mpp.lib
- cat encodertest.mpp ${TRTAIPATH}/lib/rtai.mpp.lib ../lib/aicio.mpp.lib > tmp.mpp
- echo end >> tmp.mpp
- ${ASM} ${ASMOPT} tmp.mpp
- mv tmp.tlib encodertest.tlib
- mv tmp.lst encodertest.lst
-
-encodertest.a51: encodertest.c
- ${SDCC} ${SDCCCMPFLAGS} encodertest.c
-
-EncoderRtTest.tini: EncoderRtTest.class encodertest.tlib
- java ${CLASSPATH} TINIConvertor -n encodertest.tlib -f EncoderRtTest.class ${APIDBPATH} -o EncoderRtTest.tini
-
-
-clean:
- rm -f *.bak *~ EncoderRtTest.class encodertest.tlib encodertest.mpp encodertest.lst encodertest.a51 globals.mpp tmp.mpp tmp.lst
-
-distclean: clean
- rm -f EncoderRtTest.tini
-
-upload: EncoderRtTest.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Encoder Real Time Test
- Real Time Module
- Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <rtai_sched.h>
-#include <pthread.h>
-
-#include <aicio.h>
-
-#define BASE 0x800000
-
-volatile pthread_t th;
-volatile long count;
-
-void encodertest_globals(void) _naked
-{
- _asm
-th: db 0,0,0,0
-count: db 0,0,0,0
- _endasm;
-}
-
-void *encodertest(void *arg)
-{
- count=encoder_get_count();
- return NULL;
-}
-
-/* public static native int startRealtime(int period) */
-long Native_startRealtime(void) _JavaNative
-{
- volatile long period=NatLib_LoadInt(0);
- start_rt_timer(micro2count(period));
- pthread_create(&th,NULL,encodertest,NULL);
-
- encoder_initialize(BASE,2000);
-
- brake_release();
-
- _asm
- clr a
- _endasm;
-
- return period;
-}
-
-/* public static native void stopRealtime() */
-void Native_stopRealtime(void) _JavaNative
-{
- brake_apply();
-
- pthread_cancel(th);
- stop_rt_timer();
-
- _asm
- clr a
- _endasm;
-}
-
-/* public static native int encoderGet() */
-long Native_encoderGet(void) _JavaNative
-{
- return count;
-}
-
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Encoder Clear
- Copyright (C) 2002, 2003 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import com.dalsemi.system.*;
-import java.io.*;
-import java.lang.Math.*;
-
-class EncoderClear
-{
- static final int BASE=0x800000;
-
- private static final int ENCODER=0x90000;
-
-
- public static void main(String[] args) throws IOException
- {
- System.out.println("AIC Encoder Clear Program");
- System.out.println("Copyright (C) Walter Fetter Lages, 2003.\n");
-
- DataPort encPort;
- encPort=new DataPort(BASE+ENCODER);
- encPort.setFIFOMode(true);
- encPort.setStretchCycles(DataPort.STRETCH2);
-
- try
- {
- encPort.write((byte)0);
- }
- catch (IllegalAddressException iae)
- {
- iae.printStackTrace();
- }
-
- }
-}
+++ /dev/null
-bin
-put EncoderClear.tini
-quit
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Encoder Read
- Copyright (C) 2002, 2003 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import com.dalsemi.system.*;
-import java.io.*;
-import java.lang.Math.*;
-
-class EncoderRead
-{
- static final int BASE=0x800000;
-
- private static final int ENCODER=0x90000;
-
- public static void main(String[] args) throws IOException
- {
- System.out.println("AIC Encoder Read Program");
- System.out.println("Copyright (C) Walter Fetter Lages, 2003.\n");
-
- DataPort encPort;
- encPort=new DataPort(BASE+ENCODER);
- encPort.setStretchCycles(DataPort.STRETCH2);
- int count;
- byte[] hilo=new byte[2];
-
- encPort.setFIFOMode(false);
-
- try
- {
- encPort.read(hilo,0,2);
- }
- catch (IllegalAddressException iae)
- {
- iae.printStackTrace();
- }
-
- count=(hilo[0] << 8) | (hilo[1] & 0x000000ff);
-
- System.out.println("Count: " + count);
- }
-}
+++ /dev/null
-bin
-put EncoderRead.tini
-quit
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Encoder Test
- Copyright (C) 2002, 2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import br.ufrgs.ece.AIC.*;
-import com.dalsemi.system.*;
-import java.lang.Math.*;
-
-class EncoderTest
-{
- static final int BASE=0x800000;
- static final int ST=500;
- static final double MV=12.0;
-
- static AIC aic;
-
- static long timeread0=0;
-
- private static void delay(int ms)
- {
- long time=TINIOS.uptimeMillis();
- while(TINIOS.uptimeMillis() < time+ms);
- }
-
- static void iter(int i)
- {
- aic.motor.set(i);
- System.out.print("Motor Voltage: " + i);
-
- long timeread=TINIOS.uptimeMillis();
- int count=aic.encoder.getCountAndClear();
- System.out.print("\tEncoder count: " + count);
- System.out.println("\tMotor speed: " + (2*java.lang.Math.PI*count/aic.encoder.PULSES/(timeread-timeread0)*1000));
- timeread0=timeread;
- delay(ST);
- }
-
- public static void main(String[] args)
- {
- int i;
- boolean run=true;
-
- System.out.println("AIC Encoder Test Program");
- System.out.println("Copyright (C) Walter Fetter Lages, 2003...2004.\n");
-
- // Janus encoders are 500ppr
-// aic=new AIC(BASE,24.0,20e3,2000);
-
- // ASEA encoders are 2048 ppr
- aic=new AIC(BASE,24.0,20e3,8192);
-
- aic.on();
-
- aic.brake.release();
-
- for(i=0;(i <= MV) && run;i++) iter(i);
-
- while(run)
- {
- for(i=-(int)MV;(i <= MV) && run;i++) iter(i);
- for(i=(int)MV;(i >= -MV) && run;i--) iter(i);
- }
- aic.off();
-
- }
-}
+++ /dev/null
-bin
-put EncoderTest.tini
-quit
+++ /dev/null
-TARGET=aic5
-
-all: EncoderTest.tini EncoderClear.tini EncoderRead.tini
-
-EncoderTest.class: EncoderTest.java ../lib/AIC.jar
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} EncoderTest.java
-
-EncoderTest.tini: EncoderTest.class ../lib/AIC.jar
- java ${CLASSPATH} TINIConvertor -f EncoderTest.class ${APIDBPATH} ${NATLIB} -o EncoderTest.tini ${LIBPATH} -n brake.tlib -n encoder.tlib -n index.tlib -n pwm.tlib
-
-EncoderClear.class: EncoderClear.java
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} EncoderClear.java
-
-EncoderClear.tini: EncoderClear.class
- java ${CLASSPATH} TINIConvertor -f EncoderClear.class ${APIDBPATH} -o EncoderClear.tini ${LIBPATH}
-
-EncoderRead.class: EncoderRead.java
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} EncoderRead.java
-
-EncoderRead.tini: EncoderRead.class
- java ${CLASSPATH} TINIConvertor -f EncoderRead.class ${APIDBPATH} -o EncoderRead.tini ${LIBPATH}
-
-clean:
- rm -f *.bak *~ *.class
-
-distclean: clean
- rm -f *.tini
-
-upload: EncoderTest.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
+++ /dev/null
-bin
-put EncoderTest.tini
-put EncoderClear.tini
-put EncoderRead.tini
-quit
--- /dev/null
+/*\r
+ FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.\r
+\r
+ This file is part of the FreeRTOS.org distribution.\r
+\r
+ FreeRTOS.org is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ FreeRTOS.org is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with FreeRTOS.org; if not, write to the Free Software\r
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+\r
+ A special exception to the GPL can be applied should you wish to distribute\r
+ a combined work that includes FreeRTOS.org, without being obliged to provide\r
+ the source code for any proprietary components. See the licensing section\r
+ of http://www.FreeRTOS.org for full details of how and when the exception\r
+ can be applied.\r
+\r
+ ***************************************************************************\r
+\r
+ Please ensure to read the configuration and relevant port sections of the \r
+ online documentation.\r
+\r
+ +++ http://www.FreeRTOS.org +++\r
+ Documentation, latest information, license and contact details. \r
+\r
+ +++ http://www.SafeRTOS.com +++\r
+ A version that is certified for use in safety critical systems.\r
+\r
+ +++ http://www.OpenRTOS.com +++\r
+ Commercial support, development, porting, licensing and training services.\r
+\r
+ ***************************************************************************\r
+*/\r
+\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+#include "croutine.h"\r
+\r
+/* Lists for ready and blocked co-routines. --------------------*/\r
+static xList pxReadyCoRoutineLists[ configMAX_CO_ROUTINE_PRIORITIES ]; /*< Prioritised ready co-routines. */\r
+static xList xDelayedCoRoutineList1; /*< Delayed co-routines. */\r
+static xList xDelayedCoRoutineList2; /*< Delayed co-routines (two lists are used - one for delays that have overflowed the current tick count. */\r
+static xList * pxDelayedCoRoutineList; /*< Points to the delayed co-routine list currently being used. */\r
+static xList * pxOverflowDelayedCoRoutineList; /*< Points to the delayed co-routine list currently being used to hold co-routines that have overflowed the current tick count. */\r
+static xList xPendingReadyList; /*< Holds co-routines that have been readied by an external event. They cannot be added directly to the ready lists as the ready lists cannot be accessed by interrupts. */\r
+\r
+/* Other file private variables. --------------------------------*/\r
+corCRCB * pxCurrentCoRoutine = NULL;\r
+static unsigned portBASE_TYPE uxTopCoRoutineReadyPriority = 0;\r
+static portTickType xCoRoutineTickCount = 0;\r
+\r
+/* The initial state of the co-routine when it is created. */\r
+#define corINITIAL_STATE ( 0 )\r
+\r
+/*\r
+ * Place the co-routine represented by pxCRCB into the appropriate ready queue\r
+ * for the priority. It is inserted at the end of the list.\r
+ *\r
+ * This macro accesses the co-routine ready lists and therefore must not be\r
+ * used from within an ISR.\r
+ */\r
+#define prvAddCoRoutineToReadyQueue( pxCRCB ) \\r
+{ \\r
+ if( pxCRCB->uxPriority > uxTopCoRoutineReadyPriority ) \\r
+ { \\r
+ uxTopCoRoutineReadyPriority = pxCRCB->uxPriority; \\r
+ } \\r
+ vListInsertEnd( ( xList * ) &( pxReadyCoRoutineLists[ pxCRCB->uxPriority ] ), &( pxCRCB->xGenericListItem ) ); \\r
+} \r
+\r
+/*\r
+ * Utility to ready all the lists used by the scheduler. This is called\r
+ * automatically upon the creation of the first co-routine.\r
+ */\r
+static void prvInitialiseCoRoutineLists( void );\r
+\r
+/*\r
+ * Co-routines that are readied by an interrupt cannot be placed directly into\r
+ * the ready lists (there is no mutual exclusion). Instead they are placed in\r
+ * in the pending ready list in order that they can later be moved to the ready\r
+ * list by the co-routine scheduler.\r
+ */\r
+static inline void prvCheckPendingReadyList( void );\r
+\r
+/*\r
+ * Macro that looks at the list of co-routines that are currently delayed to\r
+ * see if any require waking.\r
+ *\r
+ * Co-routines are stored in the queue in the order of their wake time -\r
+ * meaning once one co-routine has been found whose timer has not expired\r
+ * we need not look any further down the list.\r
+ */\r
+static inline void prvCheckDelayedList( void );\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+signed portBASE_TYPE xCoRoutineCreate( crCOROUTINE_CODE pxCoRoutineCode, unsigned portBASE_TYPE uxPriority, unsigned portBASE_TYPE uxIndex )\r
+{\r
+signed portBASE_TYPE xReturn;\r
+corCRCB *pxCoRoutine;\r
+\r
+ /* Allocate the memory that will store the co-routine control block. */\r
+ pxCoRoutine = ( corCRCB * ) pvPortMalloc( sizeof( corCRCB ) );\r
+ if( pxCoRoutine )\r
+ {\r
+ /* If pxCurrentCoRoutine is NULL then this is the first co-routine to\r
+ be created and the co-routine data structures need initialising. */\r
+ if( pxCurrentCoRoutine == NULL )\r
+ {\r
+ pxCurrentCoRoutine = pxCoRoutine;\r
+ prvInitialiseCoRoutineLists();\r
+ }\r
+\r
+ /* Check the priority is within limits. */\r
+ if( uxPriority >= configMAX_CO_ROUTINE_PRIORITIES )\r
+ {\r
+ uxPriority = configMAX_CO_ROUTINE_PRIORITIES - 1;\r
+ }\r
+\r
+ /* Fill out the co-routine control block from the function parameters. */\r
+ pxCoRoutine->uxState = corINITIAL_STATE;\r
+ pxCoRoutine->uxPriority = uxPriority;\r
+ pxCoRoutine->uxIndex = uxIndex;\r
+ pxCoRoutine->pxCoRoutineFunction = pxCoRoutineCode;\r
+\r
+ /* Initialise all the other co-routine control block parameters. */\r
+ vListInitialiseItem( &( pxCoRoutine->xGenericListItem ) );\r
+ vListInitialiseItem( &( pxCoRoutine->xEventListItem ) );\r
+\r
+ /* Set the co-routine control block as a link back from the xListItem.\r
+ This is so we can get back to the containing CRCB from a generic item\r
+ in a list. */\r
+ listSET_LIST_ITEM_OWNER( &( pxCoRoutine->xGenericListItem ), pxCoRoutine );\r
+ listSET_LIST_ITEM_OWNER( &( pxCoRoutine->xEventListItem ), pxCoRoutine );\r
+ \r
+ /* Event lists are always in priority order. */\r
+ listSET_LIST_ITEM_VALUE( &( pxCoRoutine->xEventListItem ), configMAX_PRIORITIES - ( portTickType ) uxPriority );\r
+ \r
+ /* Now the co-routine has been initialised it can be added to the ready\r
+ list at the correct priority. */\r
+ prvAddCoRoutineToReadyQueue( pxCoRoutine );\r
+\r
+ xReturn = pdPASS;\r
+ }\r
+ else\r
+ { \r
+ xReturn = errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY;\r
+ }\r
+ \r
+ return xReturn; \r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vCoRoutineAddToDelayedList( portTickType xTicksToDelay, xList *pxEventList )\r
+{\r
+portTickType xTimeToWake;\r
+\r
+ /* Calculate the time to wake - this may overflow but this is\r
+ not a problem. */\r
+ xTimeToWake = xCoRoutineTickCount + xTicksToDelay;\r
+\r
+ /* We must remove ourselves from the ready list before adding\r
+ ourselves to the blocked list as the same list item is used for\r
+ both lists. */\r
+ vListRemove( ( xListItem * ) &( pxCurrentCoRoutine->xGenericListItem ) );\r
+\r
+ /* The list item will be inserted in wake time order. */\r
+ listSET_LIST_ITEM_VALUE( &( pxCurrentCoRoutine->xGenericListItem ), xTimeToWake );\r
+\r
+ if( xTimeToWake < xCoRoutineTickCount )\r
+ {\r
+ /* Wake time has overflowed. Place this item in the\r
+ overflow list. */\r
+ vListInsert( ( xList * ) pxOverflowDelayedCoRoutineList, ( xListItem * ) &( pxCurrentCoRoutine->xGenericListItem ) );\r
+ }\r
+ else\r
+ {\r
+ /* The wake time has not overflowed, so we can use the\r
+ current block list. */\r
+ vListInsert( ( xList * ) pxDelayedCoRoutineList, ( xListItem * ) &( pxCurrentCoRoutine->xGenericListItem ) );\r
+ }\r
+\r
+ if( pxEventList )\r
+ {\r
+ /* Also add the co-routine to an event list. If this is done then the\r
+ function must be called with interrupts disabled. */\r
+ vListInsert( pxEventList, &( pxCurrentCoRoutine->xEventListItem ) );\r
+ }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static inline void prvCheckPendingReadyList( void )\r
+{\r
+ /* Are there any co-routines waiting to get moved to the ready list? These\r
+ are co-routines that have been readied by an ISR. The ISR cannot access\r
+ the ready lists itself. */\r
+ while( !listLIST_IS_EMPTY( &xPendingReadyList ) )\r
+ {\r
+ corCRCB *pxUnblockedCRCB;\r
+\r
+ /* The pending ready list can be accessed by an ISR. */\r
+ portDISABLE_INTERRUPTS();\r
+ { \r
+ pxUnblockedCRCB = ( corCRCB * ) listGET_OWNER_OF_HEAD_ENTRY( (&xPendingReadyList) ); \r
+ vListRemove( &( pxUnblockedCRCB->xEventListItem ) );\r
+ }\r
+ portENABLE_INTERRUPTS();\r
+\r
+ vListRemove( &( pxUnblockedCRCB->xGenericListItem ) );\r
+ prvAddCoRoutineToReadyQueue( pxUnblockedCRCB ); \r
+ }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static inline void prvCheckDelayedList( void )\r
+{\r
+static portTickType xLastTickCount, xPassedTicks;\r
+corCRCB *pxCRCB;\r
+\r
+ xPassedTicks = xTaskGetTickCount() - xLastTickCount;\r
+ while( xPassedTicks )\r
+ {\r
+ xCoRoutineTickCount++;\r
+ xPassedTicks--;\r
+\r
+ /* If the tick count has overflowed we need to swap the ready lists. */\r
+ if( xCoRoutineTickCount == 0 )\r
+ {\r
+ xList * pxTemp;\r
+\r
+ /* Tick count has overflowed so we need to swap the delay lists. If there are\r
+ any items in pxDelayedCoRoutineList here then there is an error! */\r
+ pxTemp = pxDelayedCoRoutineList;\r
+ pxDelayedCoRoutineList = pxOverflowDelayedCoRoutineList;\r
+ pxOverflowDelayedCoRoutineList = pxTemp;\r
+ }\r
+\r
+ /* See if this tick has made a timeout expire. */\r
+ while( ( pxCRCB = ( corCRCB * ) listGET_OWNER_OF_HEAD_ENTRY( pxDelayedCoRoutineList ) ) != NULL )\r
+ { \r
+ if( xCoRoutineTickCount < listGET_LIST_ITEM_VALUE( &( pxCRCB->xGenericListItem ) ) ) \r
+ { \r
+ /* Timeout not yet expired. */ \r
+ break; \r
+ } \r
+\r
+ portDISABLE_INTERRUPTS();\r
+ {\r
+ /* The event could have occurred just before this critical\r
+ section. If this is the case then the generic list item will\r
+ have been moved to the pending ready list and the following\r
+ line is still valid. Also the pvContainer parameter will have\r
+ been set to NULL so the following lines are also valid. */\r
+ vListRemove( &( pxCRCB->xGenericListItem ) ); \r
+\r
+ /* Is the co-routine waiting on an event also? */ \r
+ if( pxCRCB->xEventListItem.pvContainer ) \r
+ { \r
+ vListRemove( &( pxCRCB->xEventListItem ) ); \r
+ }\r
+ }\r
+ portENABLE_INTERRUPTS();\r
+\r
+ prvAddCoRoutineToReadyQueue( pxCRCB ); \r
+ } \r
+ }\r
+\r
+ xLastTickCount = xCoRoutineTickCount;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vCoRoutineSchedule( void )\r
+{\r
+ /* See if any co-routines readied by events need moving to the ready lists. */\r
+ prvCheckPendingReadyList();\r
+\r
+ /* See if any delayed co-routines have timed out. */\r
+ prvCheckDelayedList();\r
+\r
+ /* Find the highest priority queue that contains ready co-routines. */\r
+ while( listLIST_IS_EMPTY( &( pxReadyCoRoutineLists[ uxTopCoRoutineReadyPriority ] ) ) )\r
+ {\r
+ if( uxTopCoRoutineReadyPriority == 0 )\r
+ {\r
+ /* No more co-routines to check. */\r
+ return;\r
+ }\r
+ --uxTopCoRoutineReadyPriority;\r
+ }\r
+\r
+ /* listGET_OWNER_OF_NEXT_ENTRY walks through the list, so the co-routines\r
+ of the same priority get an equal share of the processor time. */\r
+ listGET_OWNER_OF_NEXT_ENTRY( pxCurrentCoRoutine, &( pxReadyCoRoutineLists[ uxTopCoRoutineReadyPriority ] ) );\r
+\r
+ /* Call the co-routine. */\r
+ ( pxCurrentCoRoutine->pxCoRoutineFunction )( pxCurrentCoRoutine, pxCurrentCoRoutine->uxIndex );\r
+\r
+ return;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvInitialiseCoRoutineLists( void )\r
+{\r
+unsigned portBASE_TYPE uxPriority;\r
+\r
+ for( uxPriority = 0; uxPriority < configMAX_CO_ROUTINE_PRIORITIES; uxPriority++ )\r
+ {\r
+ vListInitialise( ( xList * ) &( pxReadyCoRoutineLists[ uxPriority ] ) );\r
+ }\r
+\r
+ vListInitialise( ( xList * ) &xDelayedCoRoutineList1 );\r
+ vListInitialise( ( xList * ) &xDelayedCoRoutineList2 );\r
+ vListInitialise( ( xList * ) &xPendingReadyList );\r
+\r
+ /* Start with pxDelayedCoRoutineList using list1 and the\r
+ pxOverflowDelayedCoRoutineList using list2. */\r
+ pxDelayedCoRoutineList = &xDelayedCoRoutineList1;\r
+ pxOverflowDelayedCoRoutineList = &xDelayedCoRoutineList2;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+signed portBASE_TYPE xCoRoutineRemoveFromEventList( const xList *pxEventList )\r
+{\r
+corCRCB *pxUnblockedCRCB;\r
+signed portBASE_TYPE xReturn;\r
+\r
+ /* This function is called from within an interrupt. It can only access\r
+ event lists and the pending ready list. */\r
+ pxUnblockedCRCB = ( corCRCB * ) listGET_OWNER_OF_HEAD_ENTRY( pxEventList );\r
+ vListRemove( &( pxUnblockedCRCB->xEventListItem ) );\r
+ vListInsertEnd( ( xList * ) &( xPendingReadyList ), &( pxUnblockedCRCB->xEventListItem ) );\r
+\r
+ if( pxUnblockedCRCB->uxPriority >= pxCurrentCoRoutine->uxPriority )\r
+ {\r
+ xReturn = pdTRUE;\r
+ }\r
+ else\r
+ {\r
+ xReturn = pdFALSE;\r
+ }\r
+\r
+ return xReturn;\r
+}\r
+\r
--- /dev/null
+/*\r
+ FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.\r
+\r
+ This file is part of the FreeRTOS.org distribution.\r
+\r
+ FreeRTOS.org is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ FreeRTOS.org is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with FreeRTOS.org; if not, write to the Free Software\r
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+\r
+ A special exception to the GPL can be applied should you wish to distribute\r
+ a combined work that includes FreeRTOS.org, without being obliged to provide\r
+ the source code for any proprietary components. See the licensing section\r
+ of http://www.FreeRTOS.org for full details of how and when the exception\r
+ can be applied.\r
+\r
+ ***************************************************************************\r
+\r
+ Please ensure to read the configuration and relevant port sections of the \r
+ online documentation.\r
+\r
+ +++ http://www.FreeRTOS.org +++\r
+ Documentation, latest information, license and contact details. \r
+\r
+ +++ http://www.SafeRTOS.com +++\r
+ A version that is certified for use in safety critical systems.\r
+\r
+ +++ http://www.OpenRTOS.com +++\r
+ Commercial support, development, porting, licensing and training services.\r
+\r
+ ***************************************************************************\r
+*/\r
+\r
+#ifndef INC_FREERTOS_H\r
+#define INC_FREERTOS_H\r
+\r
+\r
+/*\r
+ * Include the generic headers required for the FreeRTOS port being used.\r
+ */\r
+#include <stddef.h>\r
+\r
+/* Basic FreeRTOS definitions. */\r
+#include "projdefs.h"\r
+\r
+/* Application specific configuration options. */\r
+#include "FreeRTOSConfig.h"\r
+\r
+/* Definitions specific to the port being used. */\r
+#include "portable.h"\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+/*\r
+ * Check all the required application specific macros have been defined.\r
+ * These macros are application specific and (as downloaded) are defined\r
+ * within FreeRTOSConfig.h.\r
+ */\r
+\r
+#ifndef configUSE_PREEMPTION\r
+ #error Missing definition: configUSE_PREEMPTION should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.\r
+#endif\r
+\r
+#ifndef configUSE_IDLE_HOOK\r
+ #error Missing definition: configUSE_IDLE_HOOK should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.\r
+#endif\r
+\r
+#ifndef configUSE_TICK_HOOK\r
+ #error Missing definition: configUSE_TICK_HOOK should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.\r
+#endif\r
+\r
+#ifndef configUSE_CO_ROUTINES\r
+ #error Missing definition: configUSE_CO_ROUTINES should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.\r
+#endif\r
+\r
+#ifndef INCLUDE_vTaskPrioritySet\r
+ #error Missing definition: INCLUDE_vTaskPrioritySet should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.\r
+#endif\r
+\r
+#ifndef INCLUDE_uxTaskPriorityGet\r
+ #error Missing definition: INCLUDE_uxTaskPriorityGet should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.\r
+#endif\r
+\r
+#ifndef INCLUDE_vTaskDelete \r
+ #error Missing definition: INCLUDE_vTaskDelete should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.\r
+#endif\r
+\r
+#ifndef INCLUDE_vTaskCleanUpResources\r
+ #error Missing definition: INCLUDE_vTaskCleanUpResources should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.\r
+#endif\r
+\r
+#ifndef INCLUDE_vTaskSuspend \r
+ #error Missing definition: INCLUDE_vTaskSuspend should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.\r
+#endif\r
+\r
+#ifndef INCLUDE_vTaskDelayUntil\r
+ #error Missing definition: INCLUDE_vTaskDelayUntil should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.\r
+#endif\r
+\r
+#ifndef INCLUDE_vTaskDelay\r
+ #error Missing definition: INCLUDE_vTaskDelay should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.\r
+#endif\r
+\r
+#ifndef configUSE_16_BIT_TICKS\r
+ #error Missing definition: configUSE_16_BIT_TICKS should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.\r
+#endif\r
+\r
+#ifndef configUSE_RECURSIVE_MUTEXES\r
+ #define configUSE_RECURSIVE_MUTEXES 0\r
+#endif\r
+\r
+#ifndef configUSE_MUTEXES\r
+ #define configUSE_MUTEXES 0\r
+#endif\r
+\r
+#ifndef configUSE_COUNTING_SEMAPHORES\r
+ #define configUSE_COUNTING_SEMAPHORES 0\r
+#endif\r
+\r
+#ifndef configUSE_ALTERNATIVE_API\r
+ #define configUSE_ALTERNATIVE_API 0\r
+#endif\r
+\r
+#if ( configUSE_MUTEXES == 1 )\r
+ /* xTaskGetCurrentTaskHandle is used by the priority inheritance mechanism\r
+ within the mutex implementation so must be available if mutexes are used. */\r
+ #undef INCLUDE_xTaskGetCurrentTaskHandle\r
+ #define INCLUDE_xTaskGetCurrentTaskHandle 1\r
+#else\r
+ #ifndef INCLUDE_xTaskGetCurrentTaskHandle\r
+ #define INCLUDE_xTaskGetCurrentTaskHandle 0\r
+ #endif\r
+#endif\r
+\r
+#endif /* INC_FREERTOS_H */\r
--- /dev/null
+/*\r
+ FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.\r
+\r
+ This file is part of the FreeRTOS.org distribution.\r
+\r
+ FreeRTOS.org is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ FreeRTOS.org is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with FreeRTOS.org; if not, write to the Free Software\r
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+\r
+ A special exception to the GPL can be applied should you wish to distribute\r
+ a combined work that includes FreeRTOS.org, without being obliged to provide\r
+ the source code for any proprietary components. See the licensing section\r
+ of http://www.FreeRTOS.org for full details of how and when the exception\r
+ can be applied.\r
+\r
+ ***************************************************************************\r
+\r
+ Please ensure to read the configuration and relevant port sections of the \r
+ online documentation.\r
+\r
+ +++ http://www.FreeRTOS.org +++\r
+ Documentation, latest information, license and contact details. \r
+\r
+ +++ http://www.SafeRTOS.com +++\r
+ A version that is certified for use in safety critical systems.\r
+\r
+ +++ http://www.OpenRTOS.com +++\r
+ Commercial support, development, porting, licensing and training services.\r
+\r
+ ***************************************************************************\r
+*/\r
+#ifndef CO_ROUTINE_H\r
+#define CO_ROUTINE_H\r
+\r
+#include "list.h"\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+/* Used to hide the implementation of the co-routine control block. The\r
+control block structure however has to be included in the header due to\r
+the macro implementation of the co-routine functionality. */\r
+typedef void * xCoRoutineHandle;\r
+\r
+/* Defines the prototype to which co-routine functions must conform. */\r
+typedef void (*crCOROUTINE_CODE)( xCoRoutineHandle, unsigned portBASE_TYPE );\r
+\r
+typedef struct corCoRoutineControlBlock\r
+{\r
+ crCOROUTINE_CODE pxCoRoutineFunction;\r
+ xListItem xGenericListItem; /*< List item used to place the CRCB in ready and blocked queues. */\r
+ xListItem xEventListItem; /*< List item used to place the CRCB in event lists. */\r
+ unsigned portBASE_TYPE uxPriority; /*< The priority of the co-routine in relation to other co-routines. */\r
+ unsigned portBASE_TYPE uxIndex; /*< Used to distinguish between co-routines when multiple co-routines use the same co-routine function. */\r
+ unsigned portSHORT uxState; /*< Used internally by the co-routine implementation. */\r
+} corCRCB; /* Co-routine control block. Note must be identical in size down to uxPriority with tskTCB. */\r
+\r
+/**\r
+ * croutine. h\r
+ *<pre>\r
+ portBASE_TYPE xCoRoutineCreate(\r
+ crCOROUTINE_CODE pxCoRoutineCode,\r
+ unsigned portBASE_TYPE uxPriority,\r
+ unsigned portBASE_TYPE uxIndex\r
+ );</pre>\r
+ *\r
+ * Create a new co-routine and add it to the list of co-routines that are\r
+ * ready to run.\r
+ *\r
+ * @param pxCoRoutineCode Pointer to the co-routine function. Co-routine\r
+ * functions require special syntax - see the co-routine section of the WEB\r
+ * documentation for more information.\r
+ *\r
+ * @param uxPriority The priority with respect to other co-routines at which\r
+ * the co-routine will run.\r
+ *\r
+ * @param uxIndex Used to distinguish between different co-routines that\r
+ * execute the same function. See the example below and the co-routine section\r
+ * of the WEB documentation for further information.\r
+ *\r
+ * @return pdPASS if the co-routine was successfully created and added to a ready\r
+ * list, otherwise an error code defined with ProjDefs.h.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ // Co-routine to be created.\r
+ void vFlashCoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )\r
+ {\r
+ // Variables in co-routines must be declared static if they must maintain value across a blocking call.\r
+ // This may not be necessary for const variables.\r
+ static const char cLedToFlash[ 2 ] = { 5, 6 };\r
+ static const portTickType xTimeToDelay[ 2 ] = { 200, 400 };\r
+\r
+ // Must start every co-routine with a call to crSTART();\r
+ crSTART( xHandle );\r
+\r
+ for( ;; )\r
+ {\r
+ // This co-routine just delays for a fixed period, then toggles\r
+ // an LED. Two co-routines are created using this function, so\r
+ // the uxIndex parameter is used to tell the co-routine which\r
+ // LED to flash and how long to delay. This assumes xQueue has\r
+ // already been created.\r
+ vParTestToggleLED( cLedToFlash[ uxIndex ] );\r
+ crDELAY( xHandle, uxFlashRates[ uxIndex ] );\r
+ }\r
+\r
+ // Must end every co-routine with a call to crEND();\r
+ crEND();\r
+ }\r
+\r
+ // Function that creates two co-routines.\r
+ void vOtherFunction( void )\r
+ {\r
+ unsigned char ucParameterToPass;\r
+ xTaskHandle xHandle;\r
+ \r
+ // Create two co-routines at priority 0. The first is given index 0\r
+ // so (from the code above) toggles LED 5 every 200 ticks. The second\r
+ // is given index 1 so toggles LED 6 every 400 ticks.\r
+ for( uxIndex = 0; uxIndex < 2; uxIndex++ )\r
+ {\r
+ xCoRoutineCreate( vFlashCoRoutine, 0, uxIndex );\r
+ }\r
+ }\r
+ </pre>\r
+ * \defgroup xCoRoutineCreate xCoRoutineCreate\r
+ * \ingroup Tasks\r
+ */\r
+signed portBASE_TYPE xCoRoutineCreate( crCOROUTINE_CODE pxCoRoutineCode, unsigned portBASE_TYPE uxPriority, unsigned portBASE_TYPE uxIndex );\r
+\r
+\r
+/**\r
+ * croutine. h\r
+ *<pre>\r
+ void vCoRoutineSchedule( void );</pre>\r
+ *\r
+ * Run a co-routine.\r
+ *\r
+ * vCoRoutineSchedule() executes the highest priority co-routine that is able\r
+ * to run. The co-routine will execute until it either blocks, yields or is\r
+ * preempted by a task. Co-routines execute cooperatively so one\r
+ * co-routine cannot be preempted by another, but can be preempted by a task.\r
+ *\r
+ * If an application comprises of both tasks and co-routines then\r
+ * vCoRoutineSchedule should be called from the idle task (in an idle task\r
+ * hook).\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ // This idle task hook will schedule a co-routine each time it is called.\r
+ // The rest of the idle task will execute between co-routine calls.\r
+ void vApplicationIdleHook( void )\r
+ {\r
+ vCoRoutineSchedule();\r
+ }\r
+\r
+ // Alternatively, if you do not require any other part of the idle task to\r
+ // execute, the idle task hook can call vCoRoutineScheduler() within an\r
+ // infinite loop.\r
+ void vApplicationIdleHook( void )\r
+ {\r
+ for( ;; )\r
+ {\r
+ vCoRoutineSchedule();\r
+ }\r
+ }\r
+ </pre>\r
+ * \defgroup vCoRoutineSchedule vCoRoutineSchedule\r
+ * \ingroup Tasks\r
+ */\r
+void vCoRoutineSchedule( void );\r
+\r
+/**\r
+ * croutine. h\r
+ * <pre>\r
+ crSTART( xCoRoutineHandle xHandle );</pre>\r
+ *\r
+ * This macro MUST always be called at the start of a co-routine function.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ // Co-routine to be created.\r
+ void vACoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )\r
+ {\r
+ // Variables in co-routines must be declared static if they must maintain value across a blocking call.\r
+ static portLONG ulAVariable;\r
+\r
+ // Must start every co-routine with a call to crSTART();\r
+ crSTART( xHandle );\r
+\r
+ for( ;; )\r
+ {\r
+ // Co-routine functionality goes here.\r
+ }\r
+\r
+ // Must end every co-routine with a call to crEND();\r
+ crEND();\r
+ }</pre>\r
+ * \defgroup crSTART crSTART\r
+ * \ingroup Tasks\r
+ */\r
+#define crSTART( pxCRCB ) switch( ( ( corCRCB * )pxCRCB )->uxState ) { case 0:\r
+\r
+/**\r
+ * croutine. h\r
+ * <pre>\r
+ crEND();</pre>\r
+ *\r
+ * This macro MUST always be called at the end of a co-routine function.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ // Co-routine to be created.\r
+ void vACoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )\r
+ {\r
+ // Variables in co-routines must be declared static if they must maintain value across a blocking call.\r
+ static portLONG ulAVariable;\r
+\r
+ // Must start every co-routine with a call to crSTART();\r
+ crSTART( xHandle );\r
+\r
+ for( ;; )\r
+ {\r
+ // Co-routine functionality goes here.\r
+ }\r
+\r
+ // Must end every co-routine with a call to crEND();\r
+ crEND();\r
+ }</pre>\r
+ * \defgroup crSTART crSTART\r
+ * \ingroup Tasks\r
+ */\r
+#define crEND() }\r
+\r
+/*\r
+ * These macros are intended for internal use by the co-routine implementation\r
+ * only. The macros should not be used directly by application writers.\r
+ */\r
+#define crSET_STATE0( xHandle ) ( ( corCRCB * )xHandle)->uxState = (__LINE__ * 2); return; case (__LINE__ * 2):\r
+#define crSET_STATE1( xHandle ) ( ( corCRCB * )xHandle)->uxState = ((__LINE__ * 2)+1); return; case ((__LINE__ * 2)+1):\r
+\r
+/**\r
+ * croutine. h\r
+ *<pre>\r
+ crDELAY( xCoRoutineHandle xHandle, portTickType xTicksToDelay );</pre>\r
+ *\r
+ * Delay a co-routine for a fixed period of time.\r
+ *\r
+ * crDELAY can only be called from the co-routine function itself - not\r
+ * from within a function called by the co-routine function. This is because\r
+ * co-routines do not maintain their own stack.\r
+ *\r
+ * @param xHandle The handle of the co-routine to delay. This is the xHandle\r
+ * parameter of the co-routine function.\r
+ *\r
+ * @param xTickToDelay The number of ticks that the co-routine should delay\r
+ * for. The actual amount of time this equates to is defined by\r
+ * configTICK_RATE_HZ (set in FreeRTOSConfig.h). The constant portTICK_RATE_MS\r
+ * can be used to convert ticks to milliseconds.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ // Co-routine to be created.\r
+ void vACoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )\r
+ {\r
+ // Variables in co-routines must be declared static if they must maintain value across a blocking call.\r
+ // This may not be necessary for const variables.\r
+ // We are to delay for 200ms.\r
+ static const xTickType xDelayTime = 200 / portTICK_RATE_MS;\r
+\r
+ // Must start every co-routine with a call to crSTART();\r
+ crSTART( xHandle );\r
+\r
+ for( ;; )\r
+ {\r
+ // Delay for 200ms.\r
+ crDELAY( xHandle, xDelayTime );\r
+\r
+ // Do something here.\r
+ }\r
+\r
+ // Must end every co-routine with a call to crEND();\r
+ crEND();\r
+ }</pre>\r
+ * \defgroup crDELAY crDELAY\r
+ * \ingroup Tasks\r
+ */\r
+#define crDELAY( xHandle, xTicksToDelay ) \\r
+ if( xTicksToDelay > 0 ) \\r
+ { \\r
+ vCoRoutineAddToDelayedList( xTicksToDelay, NULL ); \\r
+ } \\r
+ crSET_STATE0( xHandle );\r
+\r
+/**\r
+ * <pre>\r
+ crQUEUE_SEND(\r
+ xCoRoutineHandle xHandle,\r
+ xQueueHandle pxQueue,\r
+ void *pvItemToQueue,\r
+ portTickType xTicksToWait,\r
+ portBASE_TYPE *pxResult\r
+ )</pre>\r
+ *\r
+ * The macro's crQUEUE_SEND() and crQUEUE_RECEIVE() are the co-routine\r
+ * equivalent to the xQueueSend() and xQueueReceive() functions used by tasks.\r
+ *\r
+ * crQUEUE_SEND and crQUEUE_RECEIVE can only be used from a co-routine whereas\r
+ * xQueueSend() and xQueueReceive() can only be used from tasks.\r
+ *\r
+ * crQUEUE_SEND can only be called from the co-routine function itself - not\r
+ * from within a function called by the co-routine function. This is because\r
+ * co-routines do not maintain their own stack.\r
+ *\r
+ * See the co-routine section of the WEB documentation for information on\r
+ * passing data between tasks and co-routines and between ISR's and\r
+ * co-routines.\r
+ *\r
+ * @param xHandle The handle of the calling co-routine. This is the xHandle\r
+ * parameter of the co-routine function.\r
+ *\r
+ * @param pxQueue The handle of the queue on which the data will be posted.\r
+ * The handle is obtained as the return value when the queue is created using\r
+ * the xQueueCreate() API function.\r
+ *\r
+ * @param pvItemToQueue A pointer to the data being posted onto the queue.\r
+ * The number of bytes of each queued item is specified when the queue is\r
+ * created. This number of bytes is copied from pvItemToQueue into the queue\r
+ * itself.\r
+ *\r
+ * @param xTickToDelay The number of ticks that the co-routine should block\r
+ * to wait for space to become available on the queue, should space not be\r
+ * available immediately. The actual amount of time this equates to is defined\r
+ * by configTICK_RATE_HZ (set in FreeRTOSConfig.h). The constant\r
+ * portTICK_RATE_MS can be used to convert ticks to milliseconds (see example\r
+ * below).\r
+ *\r
+ * @param pxResult The variable pointed to by pxResult will be set to pdPASS if\r
+ * data was successfully posted onto the queue, otherwise it will be set to an\r
+ * error defined within ProjDefs.h.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ // Co-routine function that blocks for a fixed period then posts a number onto\r
+ // a queue.\r
+ static void prvCoRoutineFlashTask( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )\r
+ {\r
+ // Variables in co-routines must be declared static if they must maintain value across a blocking call.\r
+ static portBASE_TYPE xNumberToPost = 0;\r
+ static portBASE_TYPE xResult;\r
+\r
+ // Co-routines must begin with a call to crSTART().\r
+ crSTART( xHandle );\r
+\r
+ for( ;; )\r
+ {\r
+ // This assumes the queue has already been created.\r
+ crQUEUE_SEND( xHandle, xCoRoutineQueue, &xNumberToPost, NO_DELAY, &xResult );\r
+\r
+ if( xResult != pdPASS )\r
+ {\r
+ // The message was not posted!\r
+ }\r
+\r
+ // Increment the number to be posted onto the queue.\r
+ xNumberToPost++;\r
+\r
+ // Delay for 100 ticks.\r
+ crDELAY( xHandle, 100 );\r
+ }\r
+\r
+ // Co-routines must end with a call to crEND().\r
+ crEND();\r
+ }</pre>\r
+ * \defgroup crQUEUE_SEND crQUEUE_SEND\r
+ * \ingroup Tasks\r
+ */\r
+#define crQUEUE_SEND( xHandle, pxQueue, pvItemToQueue, xTicksToWait, pxResult ) \\r
+{ \\r
+ *pxResult = xQueueCRSend( pxQueue, pvItemToQueue, xTicksToWait ); \\r
+ if( *pxResult == errQUEUE_BLOCKED ) \\r
+ { \\r
+ crSET_STATE0( xHandle ); \\r
+ *pxResult = xQueueCRSend( pxQueue, pvItemToQueue, 0 ); \\r
+ } \\r
+ if( *pxResult == errQUEUE_YIELD ) \\r
+ { \\r
+ crSET_STATE1( xHandle ); \\r
+ *pxResult = pdPASS; \\r
+ } \\r
+}\r
+\r
+/**\r
+ * croutine. h\r
+ * <pre>\r
+ crQUEUE_RECEIVE(\r
+ xCoRoutineHandle xHandle,\r
+ xQueueHandle pxQueue,\r
+ void *pvBuffer,\r
+ portTickType xTicksToWait,\r
+ portBASE_TYPE *pxResult\r
+ )</pre>\r
+ *\r
+ * The macro's crQUEUE_SEND() and crQUEUE_RECEIVE() are the co-routine\r
+ * equivalent to the xQueueSend() and xQueueReceive() functions used by tasks.\r
+ *\r
+ * crQUEUE_SEND and crQUEUE_RECEIVE can only be used from a co-routine whereas\r
+ * xQueueSend() and xQueueReceive() can only be used from tasks.\r
+ *\r
+ * crQUEUE_RECEIVE can only be called from the co-routine function itself - not\r
+ * from within a function called by the co-routine function. This is because\r
+ * co-routines do not maintain their own stack.\r
+ *\r
+ * See the co-routine section of the WEB documentation for information on\r
+ * passing data between tasks and co-routines and between ISR's and\r
+ * co-routines.\r
+ *\r
+ * @param xHandle The handle of the calling co-routine. This is the xHandle\r
+ * parameter of the co-routine function.\r
+ *\r
+ * @param pxQueue The handle of the queue from which the data will be received.\r
+ * The handle is obtained as the return value when the queue is created using\r
+ * the xQueueCreate() API function.\r
+ *\r
+ * @param pvBuffer The buffer into which the received item is to be copied.\r
+ * The number of bytes of each queued item is specified when the queue is\r
+ * created. This number of bytes is copied into pvBuffer.\r
+ *\r
+ * @param xTickToDelay The number of ticks that the co-routine should block\r
+ * to wait for data to become available from the queue, should data not be\r
+ * available immediately. The actual amount of time this equates to is defined\r
+ * by configTICK_RATE_HZ (set in FreeRTOSConfig.h). The constant\r
+ * portTICK_RATE_MS can be used to convert ticks to milliseconds (see the\r
+ * crQUEUE_SEND example).\r
+ *\r
+ * @param pxResult The variable pointed to by pxResult will be set to pdPASS if\r
+ * data was successfully retrieved from the queue, otherwise it will be set to\r
+ * an error code as defined within ProjDefs.h.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ // A co-routine receives the number of an LED to flash from a queue. It\r
+ // blocks on the queue until the number is received.\r
+ static void prvCoRoutineFlashWorkTask( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )\r
+ {\r
+ // Variables in co-routines must be declared static if they must maintain value across a blocking call.\r
+ static portBASE_TYPE xResult;\r
+ static unsigned portBASE_TYPE uxLEDToFlash;\r
+\r
+ // All co-routines must start with a call to crSTART().\r
+ crSTART( xHandle );\r
+\r
+ for( ;; )\r
+ {\r
+ // Wait for data to become available on the queue.\r
+ crQUEUE_RECEIVE( xHandle, xCoRoutineQueue, &uxLEDToFlash, portMAX_DELAY, &xResult );\r
+\r
+ if( xResult == pdPASS )\r
+ {\r
+ // We received the LED to flash - flash it!\r
+ vParTestToggleLED( uxLEDToFlash );\r
+ }\r
+ }\r
+\r
+ crEND();\r
+ }</pre>\r
+ * \defgroup crQUEUE_RECEIVE crQUEUE_RECEIVE\r
+ * \ingroup Tasks\r
+ */\r
+#define crQUEUE_RECEIVE( xHandle, pxQueue, pvBuffer, xTicksToWait, pxResult ) \\r
+{ \\r
+ *pxResult = xQueueCRReceive( pxQueue, pvBuffer, xTicksToWait ); \\r
+ if( *pxResult == errQUEUE_BLOCKED ) \\r
+ { \\r
+ crSET_STATE0( xHandle ); \\r
+ *pxResult = xQueueCRReceive( pxQueue, pvBuffer, 0 ); \\r
+ } \\r
+ if( *pxResult == errQUEUE_YIELD ) \\r
+ { \\r
+ crSET_STATE1( xHandle ); \\r
+ *pxResult = pdPASS; \\r
+ } \\r
+}\r
+\r
+/**\r
+ * croutine. h\r
+ * <pre>\r
+ crQUEUE_SEND_FROM_ISR(\r
+ xQueueHandle pxQueue,\r
+ void *pvItemToQueue,\r
+ portBASE_TYPE xCoRoutinePreviouslyWoken\r
+ )</pre>\r
+ *\r
+ * The macro's crQUEUE_SEND_FROM_ISR() and crQUEUE_RECEIVE_FROM_ISR() are the\r
+ * co-routine equivalent to the xQueueSendFromISR() and xQueueReceiveFromISR()\r
+ * functions used by tasks.\r
+ *\r
+ * crQUEUE_SEND_FROM_ISR() and crQUEUE_RECEIVE_FROM_ISR() can only be used to\r
+ * pass data between a co-routine and and ISR, whereas xQueueSendFromISR() and\r
+ * xQueueReceiveFromISR() can only be used to pass data between a task and and\r
+ * ISR.\r
+ *\r
+ * crQUEUE_SEND_FROM_ISR can only be called from an ISR to send data to a queue\r
+ * that is being used from within a co-routine.\r
+ *\r
+ * See the co-routine section of the WEB documentation for information on\r
+ * passing data between tasks and co-routines and between ISR's and\r
+ * co-routines.\r
+ *\r
+ * @param xQueue The handle to the queue on which the item is to be posted.\r
+ *\r
+ * @param pvItemToQueue A pointer to the item that is to be placed on the\r
+ * queue. The size of the items the queue will hold was defined when the\r
+ * queue was created, so this many bytes will be copied from pvItemToQueue\r
+ * into the queue storage area.\r
+ *\r
+ * @param xCoRoutinePreviouslyWoken This is included so an ISR can post onto\r
+ * the same queue multiple times from a single interrupt. The first call\r
+ * should always pass in pdFALSE. Subsequent calls should pass in\r
+ * the value returned from the previous call.\r
+ *\r
+ * @return pdTRUE if a co-routine was woken by posting onto the queue. This is\r
+ * used by the ISR to determine if a context switch may be required following\r
+ * the ISR.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ // A co-routine that blocks on a queue waiting for characters to be received.\r
+ static void vReceivingCoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )\r
+ {\r
+ portCHAR cRxedChar;\r
+ portBASE_TYPE xResult;\r
+\r
+ // All co-routines must start with a call to crSTART().\r
+ crSTART( xHandle );\r
+\r
+ for( ;; )\r
+ {\r
+ // Wait for data to become available on the queue. This assumes the\r
+ // queue xCommsRxQueue has already been created!\r
+ crQUEUE_RECEIVE( xHandle, xCommsRxQueue, &uxLEDToFlash, portMAX_DELAY, &xResult );\r
+\r
+ // Was a character received?\r
+ if( xResult == pdPASS )\r
+ {\r
+ // Process the character here.\r
+ }\r
+ }\r
+\r
+ // All co-routines must end with a call to crEND().\r
+ crEND();\r
+ }\r
+\r
+ // An ISR that uses a queue to send characters received on a serial port to\r
+ // a co-routine.\r
+ void vUART_ISR( void )\r
+ {\r
+ portCHAR cRxedChar;\r
+ portBASE_TYPE xCRWokenByPost = pdFALSE;\r
+\r
+ // We loop around reading characters until there are none left in the UART.\r
+ while( UART_RX_REG_NOT_EMPTY() )\r
+ {\r
+ // Obtain the character from the UART.\r
+ cRxedChar = UART_RX_REG;\r
+\r
+ // Post the character onto a queue. xCRWokenByPost will be pdFALSE\r
+ // the first time around the loop. If the post causes a co-routine\r
+ // to be woken (unblocked) then xCRWokenByPost will be set to pdTRUE.\r
+ // In this manner we can ensure that if more than one co-routine is\r
+ // blocked on the queue only one is woken by this ISR no matter how\r
+ // many characters are posted to the queue.\r
+ xCRWokenByPost = crQUEUE_SEND_FROM_ISR( xCommsRxQueue, &cRxedChar, xCRWokenByPost );\r
+ }\r
+ }</pre>\r
+ * \defgroup crQUEUE_SEND_FROM_ISR crQUEUE_SEND_FROM_ISR\r
+ * \ingroup Tasks\r
+ */\r
+#define crQUEUE_SEND_FROM_ISR( pxQueue, pvItemToQueue, xCoRoutinePreviouslyWoken ) xQueueCRSendFromISR( pxQueue, pvItemToQueue, xCoRoutinePreviouslyWoken )\r
+\r
+\r
+/**\r
+ * croutine. h\r
+ * <pre>\r
+ crQUEUE_SEND_FROM_ISR(\r
+ xQueueHandle pxQueue,\r
+ void *pvBuffer,\r
+ portBASE_TYPE * pxCoRoutineWoken\r
+ )</pre>\r
+ *\r
+ * The macro's crQUEUE_SEND_FROM_ISR() and crQUEUE_RECEIVE_FROM_ISR() are the\r
+ * co-routine equivalent to the xQueueSendFromISR() and xQueueReceiveFromISR()\r
+ * functions used by tasks.\r
+ *\r
+ * crQUEUE_SEND_FROM_ISR() and crQUEUE_RECEIVE_FROM_ISR() can only be used to\r
+ * pass data between a co-routine and and ISR, whereas xQueueSendFromISR() and\r
+ * xQueueReceiveFromISR() can only be used to pass data between a task and and\r
+ * ISR.\r
+ *\r
+ * crQUEUE_RECEIVE_FROM_ISR can only be called from an ISR to receive data\r
+ * from a queue that is being used from within a co-routine (a co-routine\r
+ * posted to the queue).\r
+ *\r
+ * See the co-routine section of the WEB documentation for information on\r
+ * passing data between tasks and co-routines and between ISR's and\r
+ * co-routines.\r
+ *\r
+ * @param xQueue The handle to the queue on which the item is to be posted.\r
+ *\r
+ * @param pvBuffer A pointer to a buffer into which the received item will be\r
+ * placed. The size of the items the queue will hold was defined when the\r
+ * queue was created, so this many bytes will be copied from the queue into\r
+ * pvBuffer.\r
+ *\r
+ * @param pxCoRoutineWoken A co-routine may be blocked waiting for space to become\r
+ * available on the queue. If crQUEUE_RECEIVE_FROM_ISR causes such a\r
+ * co-routine to unblock *pxCoRoutineWoken will get set to pdTRUE, otherwise\r
+ * *pxCoRoutineWoken will remain unchanged.\r
+ *\r
+ * @return pdTRUE an item was successfully received from the queue, otherwise\r
+ * pdFALSE.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ // A co-routine that posts a character to a queue then blocks for a fixed\r
+ // period. The character is incremented each time.\r
+ static void vSendingCoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex )\r
+ {\r
+ // cChar holds its value while this co-routine is blocked and must therefore\r
+ // be declared static.\r
+ static portCHAR cCharToTx = 'a';\r
+ portBASE_TYPE xResult;\r
+\r
+ // All co-routines must start with a call to crSTART().\r
+ crSTART( xHandle );\r
+\r
+ for( ;; )\r
+ {\r
+ // Send the next character to the queue.\r
+ crQUEUE_SEND( xHandle, xCoRoutineQueue, &cCharToTx, NO_DELAY, &xResult );\r
+\r
+ if( xResult == pdPASS )\r
+ {\r
+ // The character was successfully posted to the queue.\r
+ }\r
+ else\r
+ {\r
+ // Could not post the character to the queue.\r
+ }\r
+\r
+ // Enable the UART Tx interrupt to cause an interrupt in this\r
+ // hypothetical UART. The interrupt will obtain the character\r
+ // from the queue and send it.\r
+ ENABLE_RX_INTERRUPT();\r
+\r
+ // Increment to the next character then block for a fixed period.\r
+ // cCharToTx will maintain its value across the delay as it is\r
+ // declared static.\r
+ cCharToTx++;\r
+ if( cCharToTx > 'x' )\r
+ {\r
+ cCharToTx = 'a';\r
+ }\r
+ crDELAY( 100 );\r
+ }\r
+\r
+ // All co-routines must end with a call to crEND().\r
+ crEND();\r
+ }\r
+\r
+ // An ISR that uses a queue to receive characters to send on a UART.\r
+ void vUART_ISR( void )\r
+ {\r
+ portCHAR cCharToTx;\r
+ portBASE_TYPE xCRWokenByPost = pdFALSE;\r
+\r
+ while( UART_TX_REG_EMPTY() )\r
+ {\r
+ // Are there any characters in the queue waiting to be sent?\r
+ // xCRWokenByPost will automatically be set to pdTRUE if a co-routine\r
+ // is woken by the post - ensuring that only a single co-routine is\r
+ // woken no matter how many times we go around this loop.\r
+ if( crQUEUE_RECEIVE_FROM_ISR( pxQueue, &cCharToTx, &xCRWokenByPost ) )\r
+ {\r
+ SEND_CHARACTER( cCharToTx );\r
+ }\r
+ }\r
+ }</pre>\r
+ * \defgroup crQUEUE_RECEIVE_FROM_ISR crQUEUE_RECEIVE_FROM_ISR\r
+ * \ingroup Tasks\r
+ */\r
+#define crQUEUE_RECEIVE_FROM_ISR( pxQueue, pvBuffer, pxCoRoutineWoken ) xQueueCRReceiveFromISR( pxQueue, pvBuffer, pxCoRoutineWoken )\r
+\r
+/*\r
+ * This function is intended for internal use by the co-routine macros only.\r
+ * The macro nature of the co-routine implementation requires that the\r
+ * prototype appears here. The function should not be used by application\r
+ * writers.\r
+ *\r
+ * Removes the current co-routine from its ready list and places it in the\r
+ * appropriate delayed list.\r
+ */\r
+void vCoRoutineAddToDelayedList( portTickType xTicksToDelay, xList *pxEventList );\r
+\r
+/*\r
+ * This function is intended for internal use by the queue implementation only.\r
+ * The function should not be used by application writers.\r
+ *\r
+ * Removes the highest priority co-routine from the event list and places it in\r
+ * the pending ready list.\r
+ */\r
+signed portBASE_TYPE xCoRoutineRemoveFromEventList( const xList *pxEventList );\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif /* CO_ROUTINE_H */\r
--- /dev/null
+/*\r
+ FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.\r
+\r
+ This file is part of the FreeRTOS.org distribution.\r
+\r
+ FreeRTOS.org is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ FreeRTOS.org is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with FreeRTOS.org; if not, write to the Free Software\r
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+\r
+ A special exception to the GPL can be applied should you wish to distribute\r
+ a combined work that includes FreeRTOS.org, without being obliged to provide\r
+ the source code for any proprietary components. See the licensing section\r
+ of http://www.FreeRTOS.org for full details of how and when the exception\r
+ can be applied.\r
+\r
+ ***************************************************************************\r
+\r
+ Please ensure to read the configuration and relevant port sections of the \r
+ online documentation.\r
+\r
+ +++ http://www.FreeRTOS.org +++\r
+ Documentation, latest information, license and contact details. \r
+\r
+ +++ http://www.SafeRTOS.com +++\r
+ A version that is certified for use in safety critical systems.\r
+\r
+ +++ http://www.OpenRTOS.com +++\r
+ Commercial support, development, porting, licensing and training services.\r
+\r
+ ***************************************************************************\r
+*/\r
+\r
+/*\r
+ * This is the list implementation used by the scheduler. While it is tailored\r
+ * heavily for the schedulers needs, it is also available for use by\r
+ * application code.\r
+ *\r
+ * xLists can only store pointers to xListItems. Each xListItem contains a\r
+ * numeric value (xItemValue). Most of the time the lists are sorted in\r
+ * descending item value order.\r
+ *\r
+ * Lists are created already containing one list item. The value of this\r
+ * item is the maximum possible that can be stored, it is therefore always at\r
+ * the end of the list and acts as a marker. The list member pxHead always\r
+ * points to this marker - even though it is at the tail of the list. This\r
+ * is because the tail contains a wrap back pointer to the true head of\r
+ * the list.\r
+ *\r
+ * In addition to it's value, each list item contains a pointer to the next\r
+ * item in the list (pxNext), a pointer to the list it is in (pxContainer)\r
+ * and a pointer to back to the object that contains it. These later two\r
+ * pointers are included for efficiency of list manipulation. There is\r
+ * effectively a two way link between the object containing the list item and\r
+ * the list item itself.\r
+ *\r
+ *\r
+ * \page ListIntroduction List Implementation\r
+ * \ingroup FreeRTOSIntro\r
+ */\r
+\r
+/*\r
+ Changes from V4.3.1\r
+\r
+ + Included local const within listGET_OWNER_OF_NEXT_ENTRY() to assist\r
+ compiler with optimisation. Thanks B.R.\r
+*/\r
+\r
+#ifndef LIST_H\r
+#define LIST_H\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+/*\r
+ * Definition of the only type of object that a list can contain.\r
+ */\r
+struct xLIST_ITEM\r
+{\r
+ portTickType xItemValue; /*< The value being listed. In most cases this is used to sort the list in descending order. */\r
+ volatile struct xLIST_ITEM * pxNext; /*< Pointer to the next xListItem in the list. */\r
+ volatile struct xLIST_ITEM * pxPrevious;/*< Pointer to the previous xListItem in the list. */\r
+ void * pvOwner; /*< Pointer to the object (normally a TCB) that contains the list item. There is therefore a two way link between the object containing the list item and the list item itself. */\r
+ void * pvContainer; /*< Pointer to the list in which this list item is placed (if any). */\r
+};\r
+typedef struct xLIST_ITEM xListItem; /* For some reason lint wants this as two separate definitions. */\r
+\r
+struct xMINI_LIST_ITEM\r
+{\r
+ portTickType xItemValue;\r
+ volatile struct xLIST_ITEM *pxNext;\r
+ volatile struct xLIST_ITEM *pxPrevious;\r
+};\r
+typedef struct xMINI_LIST_ITEM xMiniListItem;\r
+\r
+/*\r
+ * Definition of the type of queue used by the scheduler.\r
+ */\r
+typedef struct xLIST\r
+{\r
+ volatile unsigned portBASE_TYPE uxNumberOfItems;\r
+ volatile xListItem * pxIndex; /*< Used to walk through the list. Points to the last item returned by a call to pvListGetOwnerOfNextEntry (). */\r
+ volatile xMiniListItem xListEnd; /*< List item that contains the maximum possible item value meaning it is always at the end of the list and is therefore used as a marker. */\r
+} xList;\r
+\r
+/*\r
+ * Access macro to set the owner of a list item. The owner of a list item\r
+ * is the object (usually a TCB) that contains the list item.\r
+ *\r
+ * \page listSET_LIST_ITEM_OWNER listSET_LIST_ITEM_OWNER\r
+ * \ingroup LinkedList\r
+ */\r
+#define listSET_LIST_ITEM_OWNER( pxListItem, pxOwner ) ( pxListItem )->pvOwner = ( void * ) pxOwner\r
+\r
+/*\r
+ * Access macro to set the value of the list item. In most cases the value is\r
+ * used to sort the list in descending order.\r
+ *\r
+ * \page listSET_LIST_ITEM_VALUE listSET_LIST_ITEM_VALUE\r
+ * \ingroup LinkedList\r
+ */\r
+#define listSET_LIST_ITEM_VALUE( pxListItem, xValue ) ( pxListItem )->xItemValue = xValue\r
+\r
+/*\r
+ * Access macro the retrieve the value of the list item. The value can\r
+ * represent anything - for example a the priority of a task, or the time at\r
+ * which a task should be unblocked.\r
+ *\r
+ * \page listGET_LIST_ITEM_VALUE listGET_LIST_ITEM_VALUE\r
+ * \ingroup LinkedList\r
+ */\r
+#define listGET_LIST_ITEM_VALUE( pxListItem ) ( ( pxListItem )->xItemValue )\r
+\r
+/*\r
+ * Access macro to determine if a list contains any items. The macro will\r
+ * only have the value true if the list is empty.\r
+ *\r
+ * \page listLIST_IS_EMPTY listLIST_IS_EMPTY\r
+ * \ingroup LinkedList\r
+ */\r
+#define listLIST_IS_EMPTY( pxList ) ( ( pxList )->uxNumberOfItems == ( unsigned portBASE_TYPE ) 0 )\r
+\r
+/*\r
+ * Access macro to return the number of items in the list.\r
+ */\r
+#define listCURRENT_LIST_LENGTH( pxList ) ( ( pxList )->uxNumberOfItems )\r
+\r
+/*\r
+ * Access function to obtain the owner of the next entry in a list.\r
+ *\r
+ * The list member pxIndex is used to walk through a list. Calling\r
+ * listGET_OWNER_OF_NEXT_ENTRY increments pxIndex to the next item in the list\r
+ * and returns that entries pxOwner parameter. Using multiple calls to this\r
+ * function it is therefore possible to move through every item contained in\r
+ * a list.\r
+ *\r
+ * The pxOwner parameter of a list item is a pointer to the object that owns\r
+ * the list item. In the scheduler this is normally a task control block.\r
+ * The pxOwner parameter effectively creates a two way link between the list\r
+ * item and its owner.\r
+ *\r
+ * @param pxList The list from which the next item owner is to be returned.\r
+ *\r
+ * \page listGET_OWNER_OF_NEXT_ENTRY listGET_OWNER_OF_NEXT_ENTRY\r
+ * \ingroup LinkedList\r
+ */\r
+#define listGET_OWNER_OF_NEXT_ENTRY( pxTCB, pxList ) \\r
+{ \\r
+xList * const pxConstList = pxList; \\r
+ /* Increment the index to the next item and return the item, ensuring */ \\r
+ /* we don't return the marker used at the end of the list. */ \\r
+ ( pxConstList )->pxIndex = ( pxConstList )->pxIndex->pxNext; \\r
+ if( ( pxConstList )->pxIndex == ( xListItem * ) &( ( pxConstList )->xListEnd ) ) \\r
+ { \\r
+ ( pxConstList )->pxIndex = ( pxConstList )->pxIndex->pxNext; \\r
+ } \\r
+ pxTCB = ( pxConstList )->pxIndex->pvOwner; \\r
+}\r
+\r
+\r
+/*\r
+ * Access function to obtain the owner of the first entry in a list. Lists\r
+ * are normally sorted in ascending item value order.\r
+ *\r
+ * This function returns the pxOwner member of the first item in the list.\r
+ * The pxOwner parameter of a list item is a pointer to the object that owns\r
+ * the list item. In the scheduler this is normally a task control block.\r
+ * The pxOwner parameter effectively creates a two way link between the list\r
+ * item and its owner.\r
+ *\r
+ * @param pxList The list from which the owner of the head item is to be\r
+ * returned.\r
+ *\r
+ * \page listGET_OWNER_OF_HEAD_ENTRY listGET_OWNER_OF_HEAD_ENTRY\r
+ * \ingroup LinkedList\r
+ */\r
+#define listGET_OWNER_OF_HEAD_ENTRY( pxList ) ( ( pxList->uxNumberOfItems != ( unsigned portBASE_TYPE ) 0 ) ? ( (&( pxList->xListEnd ))->pxNext->pvOwner ) : ( NULL ) )\r
+\r
+/*\r
+ * Check to see if a list item is within a list. The list item maintains a\r
+ * "container" pointer that points to the list it is in. All this macro does\r
+ * is check to see if the container and the list match.\r
+ *\r
+ * @param pxList The list we want to know if the list item is within.\r
+ * @param pxListItem The list item we want to know if is in the list.\r
+ * @return pdTRUE is the list item is in the list, otherwise pdFALSE.\r
+ * pointer against\r
+ */\r
+#define listIS_CONTAINED_WITHIN( pxList, pxListItem ) ( ( pxListItem )->pvContainer == ( void * ) pxList )\r
+\r
+/*\r
+ * Must be called before a list is used! This initialises all the members\r
+ * of the list structure and inserts the xListEnd item into the list as a\r
+ * marker to the back of the list.\r
+ *\r
+ * @param pxList Pointer to the list being initialised.\r
+ *\r
+ * \page vListInitialise vListInitialise\r
+ * \ingroup LinkedList\r
+ */\r
+void vListInitialise( xList *pxList );\r
+\r
+/*\r
+ * Must be called before a list item is used. This sets the list container to\r
+ * null so the item does not think that it is already contained in a list.\r
+ *\r
+ * @param pxItem Pointer to the list item being initialised.\r
+ *\r
+ * \page vListInitialiseItem vListInitialiseItem\r
+ * \ingroup LinkedList\r
+ */\r
+void vListInitialiseItem( xListItem *pxItem );\r
+\r
+/*\r
+ * Insert a list item into a list. The item will be inserted into the list in\r
+ * a position determined by its item value (descending item value order).\r
+ *\r
+ * @param pxList The list into which the item is to be inserted.\r
+ *\r
+ * @param pxNewListItem The item to that is to be placed in the list.\r
+ *\r
+ * \page vListInsert vListInsert\r
+ * \ingroup LinkedList\r
+ */\r
+void vListInsert( xList *pxList, xListItem *pxNewListItem );\r
+\r
+/*\r
+ * Insert a list item into a list. The item will be inserted in a position\r
+ * such that it will be the last item within the list returned by multiple\r
+ * calls to listGET_OWNER_OF_NEXT_ENTRY.\r
+ *\r
+ * The list member pvIndex is used to walk through a list. Calling\r
+ * listGET_OWNER_OF_NEXT_ENTRY increments pvIndex to the next item in the list.\r
+ * Placing an item in a list using vListInsertEnd effectively places the item\r
+ * in the list position pointed to by pvIndex. This means that every other\r
+ * item within the list will be returned by listGET_OWNER_OF_NEXT_ENTRY before\r
+ * the pvIndex parameter again points to the item being inserted.\r
+ *\r
+ * @param pxList The list into which the item is to be inserted.\r
+ *\r
+ * @param pxNewListItem The list item to be inserted into the list.\r
+ *\r
+ * \page vListInsertEnd vListInsertEnd\r
+ * \ingroup LinkedList\r
+ */\r
+void vListInsertEnd( xList *pxList, xListItem *pxNewListItem );\r
+\r
+/*\r
+ * Remove an item from a list. The list item has a pointer to the list that\r
+ * it is in, so only the list item need be passed into the function.\r
+ *\r
+ * @param vListRemove The item to be removed. The item will remove itself from\r
+ * the list pointed to by it's pxContainer parameter.\r
+ *\r
+ * \page vListRemove vListRemove\r
+ * \ingroup LinkedList\r
+ */\r
+void vListRemove( xListItem *pxItemToRemove );\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif\r
+\r
--- /dev/null
+/*\r
+ FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.\r
+\r
+ This file is part of the FreeRTOS.org distribution.\r
+\r
+ FreeRTOS.org is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ FreeRTOS.org is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with FreeRTOS.org; if not, write to the Free Software\r
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+\r
+ A special exception to the GPL can be applied should you wish to distribute\r
+ a combined work that includes FreeRTOS.org, without being obliged to provide\r
+ the source code for any proprietary components. See the licensing section\r
+ of http:www.FreeRTOS.org for full details of how and when the exception\r
+ can be applied.\r
+\r
+ ***************************************************************************\r
+\r
+ Please ensure to read the configuration and relevant port sections of the \r
+ online documentation.\r
+\r
+ +++ http://www.FreeRTOS.org +++\r
+ Documentation, latest information, license and contact details. \r
+\r
+ +++ http://www.SafeRTOS.com +++\r
+ A version that is certified for use in safety critical systems.\r
+\r
+ +++ http://www.OpenRTOS.com +++\r
+ Commercial support, development, porting, licensing and training services.\r
+\r
+ ***************************************************************************\r
+*/\r
+\r
+/*-----------------------------------------------------------\r
+ * Portable layer API. Each function must be defined for each port.\r
+ *----------------------------------------------------------*/\r
+\r
+#ifndef PORTABLE_H\r
+#define PORTABLE_H\r
+\r
+/* Include the macro file relevant to the port being used. */\r
+\r
+#ifdef OPEN_WATCOM_INDUSTRIAL_PC_PORT\r
+ #include "..\..\source\portable\owatcom\16bitdos\pc\portmacro.h"\r
+ typedef void ( __interrupt __far *pxISR )();\r
+#endif\r
+\r
+#ifdef OPEN_WATCOM_FLASH_LITE_186_PORT\r
+ #include "..\..\source\portable\owatcom\16bitdos\flsh186\portmacro.h"\r
+ typedef void ( __interrupt __far *pxISR )();\r
+#endif\r
+\r
+#ifdef GCC_MEGA_AVR\r
+ #include "../portable/GCC/ATMega323/portmacro.h"\r
+#endif\r
+\r
+#ifdef IAR_MEGA_AVR\r
+ #include "../portable/IAR/ATMega323/portmacro.h"\r
+#endif\r
+\r
+#ifdef MPLAB_PIC24_PORT\r
+ #include "..\..\Source\portable\MPLAB\PIC24_dsPIC\portmacro.h"\r
+#endif\r
+\r
+#ifdef MPLAB_DSPIC_PORT\r
+ #include "../../Source/portable/MPLAB/PIC24_dsPIC/portmacro.h"\r
+#endif\r
+\r
+#ifdef AIC_DSPIC_PORT\r
+#include "../../FreeRTOS/portable/AIC-2.0.0/portmacro.h"\r
+#endif\r
+\r
+#ifdef MPLAB_PIC18F_PORT\r
+ #include "..\..\source\portable\MPLAB\PIC18F\portmacro.h"\r
+#endif\r
+\r
+#ifdef MPLAB_PIC32MX_PORT\r
+ #include "..\..\Source\portable\MPLAB\PIC32MX\portmacro.h"\r
+#endif\r
+\r
+#ifdef _FEDPICC\r
+ #include "libFreeRTOS/Include/portmacro.h"\r
+#endif\r
+\r
+#ifdef SDCC_CYGNAL\r
+ #include "../../Source/portable/SDCC/Cygnal/portmacro.h"\r
+#endif\r
+\r
+#ifdef GCC_ARM7\r
+ #include "../../Source/portable/GCC/ARM7_LPC2000/portmacro.h"\r
+#endif\r
+\r
+#ifdef GCC_ARM7_ECLIPSE\r
+ #include "portmacro.h"\r
+#endif\r
+\r
+#ifdef ROWLEY_LPC23xx\r
+ #include "../../Source/portable/GCC/ARM7_LPC23xx/portmacro.h"\r
+#endif\r
+\r
+#ifdef GCC_MSP430\r
+ #include "../../Source/portable/GCC/MSP430F449/portmacro.h"\r
+#endif\r
+\r
+#ifdef ROWLEY_MSP430\r
+ #include "../../Source/portable/Rowley/MSP430F449/portmacro.h"\r
+#endif\r
+\r
+#ifdef KEIL_ARM7\r
+ #include "..\..\Source\portable\Keil\ARM7\portmacro.h"\r
+#endif\r
+\r
+#ifdef SAM7_GCC\r
+ #include "../../Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h"\r
+#endif\r
+\r
+#ifdef SAM7_IAR\r
+ #include "..\..\Source\portable\IAR\AtmelSAM7S64\portmacro.h"\r
+#endif\r
+\r
+#ifdef LPC2000_IAR\r
+ #include "..\..\Source\portable\IAR\LPC2000\portmacro.h"\r
+#endif\r
+\r
+#ifdef STR71X_IAR\r
+ #include "..\..\Source\portable\IAR\STR71x\portmacro.h"\r
+#endif\r
+\r
+#ifdef STR75X_IAR\r
+ #include "..\..\Source\portable\IAR\STR75x\portmacro.h"\r
+#endif\r
+ \r
+#ifdef STR75X_GCC\r
+ #include "..\..\Source\portable\GCC\STR75x\portmacro.h"\r
+#endif\r
+\r
+#ifdef STR91X_IAR\r
+ #include "..\..\Source\portable\IAR\STR91x\portmacro.h"\r
+#endif\r
+ \r
+#ifdef GCC_H8S\r
+ #include "../../Source/portable/GCC/H8S2329/portmacro.h"\r
+#endif\r
+\r
+#ifdef GCC_AT91FR40008\r
+ #include "../../Source/portable/GCC/ARM7_AT91FR40008/portmacro.h"\r
+#endif\r
+\r
+#ifdef RVDS_ARMCM3_LM3S102\r
+ #include "../../Source/portable/RVDS/ARM_CM3/portmacro.h"\r
+#endif\r
+\r
+#ifdef GCC_ARMCM3_LM3S102\r
+ #include "../../Source/portable/GCC/ARM_CM3/portmacro.h"\r
+#endif\r
+\r
+#ifdef GCC_ARMCM3\r
+ #include "../../Source/portable/GCC/ARM_CM3/portmacro.h"\r
+#endif\r
+\r
+#ifdef IAR_ARM_CM3\r
+ #include "../../Source/portable/IAR/ARM_CM3/portmacro.h"\r
+#endif\r
+\r
+#ifdef IAR_ARMCM3_LM\r
+ #include "../../Source/portable/IAR/ARM_CM3/portmacro.h"\r
+#endif\r
+ \r
+#ifdef HCS12_CODE_WARRIOR\r
+ #include "../../Source/portable/CodeWarrior/HCS12/portmacro.h"\r
+#endif \r
+\r
+#ifdef MICROBLAZE_GCC\r
+ #include "../../Source/portable/GCC/MicroBlaze/portmacro.h"\r
+#endif\r
+\r
+#ifdef TERN_EE\r
+ #include "..\..\Source\portable\Paradigm\Tern_EE\small\portmacro.h"\r
+#endif\r
+\r
+#ifdef GCC_HCS12\r
+ #include "../../Source/portable/GCC/HCS12/portmacro.h"\r
+#endif\r
+\r
+#ifdef GCC_MCF5235\r
+ #include "../../Source/portable/GCC/MCF5235/portmacro.h"\r
+#endif\r
+\r
+#ifdef BCC_INDUSTRIAL_PC_PORT\r
+ /* A short file name has to be used in place of the normal\r
+ FreeRTOSConfig.h when using the Borland compiler. */\r
+ #include "frconfig.h"\r
+ #include "..\portable\BCC\16BitDOS\PC\prtmacro.h"\r
+ typedef void ( __interrupt __far *pxISR )();\r
+#endif\r
+\r
+#ifdef BCC_FLASH_LITE_186_PORT\r
+ /* A short file name has to be used in place of the normal\r
+ FreeRTOSConfig.h when using the Borland compiler. */\r
+ #include "frconfig.h"\r
+ #include "..\portable\BCC\16BitDOS\flsh186\prtmacro.h"\r
+ typedef void ( __interrupt __far *pxISR )();\r
+#endif\r
+\r
+#ifdef __GNUC__\r
+ #ifdef __AVR32_AVR32A__\r
+ #include "portmacro.h"\r
+ #endif\r
+#endif\r
+\r
+#ifdef __ICCAVR32__\r
+ #ifdef __CORE__\r
+ #if __CORE__ == __AVR32A__\r
+ #include "portmacro.h"\r
+ #endif\r
+ #endif\r
+#endif\r
+\r
+#ifdef __91467D\r
+ #include "portmacro.h"\r
+#endif\r
+\r
+#ifdef __96340\r
+ #include "portmacro.h"\r
+#endif\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+/*\r
+ * Setup the stack of a new task so it is ready to be placed under the\r
+ * scheduler control. The registers have to be placed on the stack in\r
+ * the order that the port expects to find them.\r
+ */\r
+portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters );\r
+\r
+/*\r
+ * Map to the memory management routines required for the port.\r
+ */\r
+void *pvPortMalloc( size_t xSize );\r
+void vPortFree( void *pv );\r
+void vPortInitialiseBlocks( void );\r
+\r
+/*\r
+ * Setup the hardware ready for the scheduler to take control. This generally\r
+ * sets up a tick interrupt and sets timers for the correct tick frequency.\r
+ */\r
+portBASE_TYPE xPortStartScheduler( void );\r
+\r
+/*\r
+ * Undo any hardware/ISR setup that was performed by xPortStartScheduler() so\r
+ * the hardware is left in its original condition after the scheduler stops\r
+ * executing.\r
+ */\r
+void vPortEndScheduler( void );\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif /* PORTABLE_H */\r
+\r
--- /dev/null
+/*\r
+ FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.\r
+\r
+ This file is part of the FreeRTOS.org distribution.\r
+\r
+ FreeRTOS.org is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ FreeRTOS.org is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with FreeRTOS.org; if not, write to the Free Software\r
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+\r
+ A special exception to the GPL can be applied should you wish to distribute\r
+ a combined work that includes FreeRTOS.org, without being obliged to provide\r
+ the source code for any proprietary components. See the licensing section \r
+ of http://www.FreeRTOS.org for full details of how and when the exception\r
+ can be applied.\r
+\r
+ ***************************************************************************\r
+\r
+ Please ensure to read the configuration and relevant port sections of the \r
+ online documentation.\r
+\r
+ +++ http://www.FreeRTOS.org +++\r
+ Documentation, latest information, license and contact details. \r
+\r
+ +++ http://www.SafeRTOS.com +++\r
+ A version that is certified for use in safety critical systems.\r
+\r
+ +++ http://www.OpenRTOS.com +++\r
+ Commercial support, development, porting, licensing and training services.\r
+\r
+ ***************************************************************************\r
+*/\r
+\r
+#ifndef PROJDEFS_H\r
+#define PROJDEFS_H\r
+\r
+/* Defines to prototype to which task functions must conform. */\r
+typedef void (*pdTASK_CODE)( void * );\r
+\r
+#define pdTRUE ( 1 )\r
+#define pdFALSE ( 0 )\r
+\r
+#define pdPASS ( 1 )\r
+#define pdFAIL ( 0 )\r
+#define errQUEUE_EMPTY ( 0 )\r
+#define errQUEUE_FULL ( 0 )\r
+\r
+/* Error definitions. */\r
+#define errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY ( -1 )\r
+#define errNO_TASK_TO_RUN ( -2 )\r
+#define errQUEUE_BLOCKED ( -4 )\r
+#define errQUEUE_YIELD ( -5 )\r
+\r
+#endif /* PROJDEFS_H */\r
+\r
+\r
+\r
--- /dev/null
+/*\r
+ FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.\r
+\r
+ This file is part of the FreeRTOS.org distribution.\r
+\r
+ FreeRTOS.org is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ FreeRTOS.org is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with FreeRTOS.org; if not, write to the Free Software\r
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+\r
+ A special exception to the GPL can be applied should you wish to distribute\r
+ a combined work that includes FreeRTOS.org, without being obliged to provide\r
+ the source code for any proprietary components. See the licensing section\r
+ of http://www.FreeRTOS.org for full details of how and when the exception\r
+ can be applied.\r
+\r
+ ***************************************************************************\r
+\r
+ Please ensure to read the configuration and relevant port sections of the \r
+ online documentation.\r
+\r
+ +++ http://www.FreeRTOS.org +++\r
+ Documentation, latest information, license and contact details. \r
+\r
+ +++ http://www.SafeRTOS.com +++\r
+ A version that is certified for use in safety critical systems.\r
+\r
+ +++ http://www.OpenRTOS.com +++\r
+ Commercial support, development, porting, licensing and training services.\r
+\r
+ ***************************************************************************\r
+*/\r
+\r
+#ifndef QUEUE_H\r
+#define QUEUE_H\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+typedef void * xQueueHandle;\r
+\r
+/* For internal use only. */\r
+#define queueSEND_TO_BACK ( 0 )\r
+#define queueSEND_TO_FRONT ( 1 )\r
+\r
+\r
+/**\r
+ * queue. h\r
+ * <pre>\r
+ xQueueHandle xQueueCreate(\r
+ unsigned portBASE_TYPE uxQueueLength,\r
+ unsigned portBASE_TYPE uxItemSize\r
+ );\r
+ * </pre>\r
+ *\r
+ * Creates a new queue instance. This allocates the storage required by the\r
+ * new queue and returns a handle for the queue.\r
+ *\r
+ * @param uxQueueLength The maximum number of items that the queue can contain.\r
+ *\r
+ * @param uxItemSize The number of bytes each item in the queue will require.\r
+ * Items are queued by copy, not by reference, so this is the number of bytes\r
+ * that will be copied for each posted item. Each item on the queue must be\r
+ * the same size.\r
+ *\r
+ * @return If the queue is successfully create then a handle to the newly\r
+ * created queue is returned. If the queue cannot be created then 0 is\r
+ * returned.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ struct AMessage\r
+ {\r
+ portCHAR ucMessageID;\r
+ portCHAR ucData[ 20 ];\r
+ };\r
+\r
+ void vATask( void *pvParameters )\r
+ {\r
+ xQueueHandle xQueue1, xQueue2;\r
+\r
+ // Create a queue capable of containing 10 unsigned long values.\r
+ xQueue1 = xQueueCreate( 10, sizeof( unsigned portLONG ) );\r
+ if( xQueue1 == 0 )\r
+ {\r
+ // Queue was not created and must not be used.\r
+ }\r
+\r
+ // Create a queue capable of containing 10 pointers to AMessage structures.\r
+ // These should be passed by pointer as they contain a lot of data.\r
+ xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) );\r
+ if( xQueue2 == 0 )\r
+ {\r
+ // Queue was not created and must not be used.\r
+ }\r
+\r
+ // ... Rest of task code.\r
+ }\r
+ </pre>\r
+ * \defgroup xQueueCreate xQueueCreate\r
+ * \ingroup QueueManagement\r
+ */\r
+xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize );\r
+\r
+/**\r
+ * queue. h\r
+ * <pre>\r
+ portBASE_TYPE xQueueSendToToFront(\r
+ xQueueHandle xQueue,\r
+ const void * pvItemToQueue,\r
+ portTickType xTicksToWait\r
+ );\r
+ * </pre>\r
+ *\r
+ * This is a macro that calls xQueueGenericSend().\r
+ *\r
+ * Post an item to the front of a queue. The item is queued by copy, not by\r
+ * reference. This function must not be called from an interrupt service\r
+ * routine. See xQueueSendFromISR () for an alternative which may be used\r
+ * in an ISR.\r
+ *\r
+ * @param xQueue The handle to the queue on which the item is to be posted.\r
+ *\r
+ * @param pvItemToQueue A pointer to the item that is to be placed on the\r
+ * queue. The size of the items the queue will hold was defined when the\r
+ * queue was created, so this many bytes will be copied from pvItemToQueue\r
+ * into the queue storage area.\r
+ *\r
+ * @param xTicksToWait The maximum amount of time the task should block\r
+ * waiting for space to become available on the queue, should it already\r
+ * be full. The call will return immediately if this is set to 0. The\r
+ * time is defined in tick periods so the constant portTICK_RATE_MS\r
+ * should be used to convert to real time if this is required.\r
+ *\r
+ * @return pdTRUE if the item was successfully posted, otherwise errQUEUE_FULL.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ struct AMessage\r
+ {\r
+ portCHAR ucMessageID;\r
+ portCHAR ucData[ 20 ];\r
+ } xMessage;\r
+\r
+ unsigned portLONG ulVar = 10UL;\r
+\r
+ void vATask( void *pvParameters )\r
+ {\r
+ xQueueHandle xQueue1, xQueue2;\r
+ struct AMessage *pxMessage;\r
+\r
+ // Create a queue capable of containing 10 unsigned long values.\r
+ xQueue1 = xQueueCreate( 10, sizeof( unsigned portLONG ) );\r
+\r
+ // Create a queue capable of containing 10 pointers to AMessage structures.\r
+ // These should be passed by pointer as they contain a lot of data.\r
+ xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) );\r
+\r
+ // ...\r
+\r
+ if( xQueue1 != 0 )\r
+ {\r
+ // Send an unsigned long. Wait for 10 ticks for space to become\r
+ // available if necessary.\r
+ if( xQueueSendToFront( xQueue1, ( void * ) &ulVar, ( portTickType ) 10 ) != pdPASS )\r
+ {\r
+ // Failed to post the message, even after 10 ticks.\r
+ }\r
+ }\r
+\r
+ if( xQueue2 != 0 )\r
+ {\r
+ // Send a pointer to a struct AMessage object. Don't block if the\r
+ // queue is already full.\r
+ pxMessage = & xMessage;\r
+ xQueueSendToFront( xQueue2, ( void * ) &pxMessage, ( portTickType ) 0 );\r
+ }\r
+\r
+ // ... Rest of task code.\r
+ }\r
+ </pre>\r
+ * \defgroup xQueueSend xQueueSend\r
+ * \ingroup QueueManagement\r
+ */\r
+#define xQueueSendToFront( xQueue, pvItemToQueue, xTicksToWait ) xQueueGenericSend( xQueue, pvItemToQueue, xTicksToWait, queueSEND_TO_FRONT )\r
+\r
+/**\r
+ * queue. h\r
+ * <pre>\r
+ portBASE_TYPE xQueueSendToBack(\r
+ xQueueHandle xQueue,\r
+ const void * pvItemToQueue,\r
+ portTickType xTicksToWait\r
+ );\r
+ * </pre>\r
+ *\r
+ * This is a macro that calls xQueueGenericSend().\r
+ *\r
+ * Post an item to the back of a queue. The item is queued by copy, not by\r
+ * reference. This function must not be called from an interrupt service\r
+ * routine. See xQueueSendFromISR () for an alternative which may be used\r
+ * in an ISR.\r
+ *\r
+ * @param xQueue The handle to the queue on which the item is to be posted.\r
+ *\r
+ * @param pvItemToQueue A pointer to the item that is to be placed on the\r
+ * queue. The size of the items the queue will hold was defined when the\r
+ * queue was created, so this many bytes will be copied from pvItemToQueue\r
+ * into the queue storage area.\r
+ *\r
+ * @param xTicksToWait The maximum amount of time the task should block\r
+ * waiting for space to become available on the queue, should it already\r
+ * be full. The call will return immediately if this is set to 0. The\r
+ * time is defined in tick periods so the constant portTICK_RATE_MS\r
+ * should be used to convert to real time if this is required.\r
+ *\r
+ * @return pdTRUE if the item was successfully posted, otherwise errQUEUE_FULL.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ struct AMessage\r
+ {\r
+ portCHAR ucMessageID;\r
+ portCHAR ucData[ 20 ];\r
+ } xMessage;\r
+\r
+ unsigned portLONG ulVar = 10UL;\r
+\r
+ void vATask( void *pvParameters )\r
+ {\r
+ xQueueHandle xQueue1, xQueue2;\r
+ struct AMessage *pxMessage;\r
+\r
+ // Create a queue capable of containing 10 unsigned long values.\r
+ xQueue1 = xQueueCreate( 10, sizeof( unsigned portLONG ) );\r
+\r
+ // Create a queue capable of containing 10 pointers to AMessage structures.\r
+ // These should be passed by pointer as they contain a lot of data.\r
+ xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) );\r
+\r
+ // ...\r
+\r
+ if( xQueue1 != 0 )\r
+ {\r
+ // Send an unsigned long. Wait for 10 ticks for space to become\r
+ // available if necessary.\r
+ if( xQueueSendToBack( xQueue1, ( void * ) &ulVar, ( portTickType ) 10 ) != pdPASS )\r
+ {\r
+ // Failed to post the message, even after 10 ticks.\r
+ }\r
+ }\r
+\r
+ if( xQueue2 != 0 )\r
+ {\r
+ // Send a pointer to a struct AMessage object. Don't block if the\r
+ // queue is already full.\r
+ pxMessage = & xMessage;\r
+ xQueueSendToBack( xQueue2, ( void * ) &pxMessage, ( portTickType ) 0 );\r
+ }\r
+\r
+ // ... Rest of task code.\r
+ }\r
+ </pre>\r
+ * \defgroup xQueueSend xQueueSend\r
+ * \ingroup QueueManagement\r
+ */\r
+#define xQueueSendToBack( xQueue, pvItemToQueue, xTicksToWait ) xQueueGenericSend( xQueue, pvItemToQueue, xTicksToWait, queueSEND_TO_BACK )\r
+\r
+/**\r
+ * queue. h\r
+ * <pre>\r
+ portBASE_TYPE xQueueSend(\r
+ xQueueHandle xQueue,\r
+ const void * pvItemToQueue,\r
+ portTickType xTicksToWait\r
+ );\r
+ * </pre>\r
+ *\r
+ * This is a macro that calls xQueueGenericSend(). It is included for\r
+ * backward compatibility with versions of FreeRTOS.org that did not\r
+ * include the xQueueSendToFront() and xQueueSendToBack() macros. It is\r
+ * equivalent to xQueueSendToBack().\r
+ *\r
+ * Post an item on a queue. The item is queued by copy, not by reference.\r
+ * This function must not be called from an interrupt service routine.\r
+ * See xQueueSendFromISR () for an alternative which may be used in an ISR.\r
+ *\r
+ * @param xQueue The handle to the queue on which the item is to be posted.\r
+ *\r
+ * @param pvItemToQueue A pointer to the item that is to be placed on the\r
+ * queue. The size of the items the queue will hold was defined when the\r
+ * queue was created, so this many bytes will be copied from pvItemToQueue\r
+ * into the queue storage area.\r
+ *\r
+ * @param xTicksToWait The maximum amount of time the task should block\r
+ * waiting for space to become available on the queue, should it already\r
+ * be full. The call will return immediately if this is set to 0. The\r
+ * time is defined in tick periods so the constant portTICK_RATE_MS\r
+ * should be used to convert to real time if this is required.\r
+ *\r
+ * @return pdTRUE if the item was successfully posted, otherwise errQUEUE_FULL.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ struct AMessage\r
+ {\r
+ portCHAR ucMessageID;\r
+ portCHAR ucData[ 20 ];\r
+ } xMessage;\r
+\r
+ unsigned portLONG ulVar = 10UL;\r
+\r
+ void vATask( void *pvParameters )\r
+ {\r
+ xQueueHandle xQueue1, xQueue2;\r
+ struct AMessage *pxMessage;\r
+\r
+ // Create a queue capable of containing 10 unsigned long values.\r
+ xQueue1 = xQueueCreate( 10, sizeof( unsigned portLONG ) );\r
+\r
+ // Create a queue capable of containing 10 pointers to AMessage structures.\r
+ // These should be passed by pointer as they contain a lot of data.\r
+ xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) );\r
+\r
+ // ...\r
+\r
+ if( xQueue1 != 0 )\r
+ {\r
+ // Send an unsigned long. Wait for 10 ticks for space to become\r
+ // available if necessary.\r
+ if( xQueueSend( xQueue1, ( void * ) &ulVar, ( portTickType ) 10 ) != pdPASS )\r
+ {\r
+ // Failed to post the message, even after 10 ticks.\r
+ }\r
+ }\r
+\r
+ if( xQueue2 != 0 )\r
+ {\r
+ // Send a pointer to a struct AMessage object. Don't block if the\r
+ // queue is already full.\r
+ pxMessage = & xMessage;\r
+ xQueueSend( xQueue2, ( void * ) &pxMessage, ( portTickType ) 0 );\r
+ }\r
+\r
+ // ... Rest of task code.\r
+ }\r
+ </pre>\r
+ * \defgroup xQueueSend xQueueSend\r
+ * \ingroup QueueManagement\r
+ */\r
+#define xQueueSend( xQueue, pvItemToQueue, xTicksToWait ) xQueueGenericSend( xQueue, pvItemToQueue, xTicksToWait, queueSEND_TO_BACK )\r
+\r
+\r
+/**\r
+ * queue. h\r
+ * <pre>\r
+ portBASE_TYPE xQueueGenericSend(\r
+ xQueueHandle xQueue,\r
+ const void * pvItemToQueue,\r
+ portTickType xTicksToWait\r
+ portBASE_TYPE xCopyPosition\r
+ );\r
+ * </pre>\r
+ *\r
+ * It is preferred that the macros xQueueSend(), xQueueSendToFront() and\r
+ * xQueueSendToBack() are used in place of calling this function directly.\r
+ *\r
+ * Post an item on a queue. The item is queued by copy, not by reference.\r
+ * This function must not be called from an interrupt service routine.\r
+ * See xQueueSendFromISR () for an alternative which may be used in an ISR.\r
+ *\r
+ * @param xQueue The handle to the queue on which the item is to be posted.\r
+ *\r
+ * @param pvItemToQueue A pointer to the item that is to be placed on the\r
+ * queue. The size of the items the queue will hold was defined when the\r
+ * queue was created, so this many bytes will be copied from pvItemToQueue\r
+ * into the queue storage area.\r
+ *\r
+ * @param xTicksToWait The maximum amount of time the task should block\r
+ * waiting for space to become available on the queue, should it already\r
+ * be full. The call will return immediately if this is set to 0. The\r
+ * time is defined in tick periods so the constant portTICK_RATE_MS\r
+ * should be used to convert to real time if this is required.\r
+ *\r
+ * @param xCopyPosition Can take the value queueSEND_TO_BACK to place the\r
+ * item at the back of the queue, or queueSEND_TO_FRONT to place the item\r
+ * at the front of the queue (for high priority messages).\r
+ *\r
+ * @return pdTRUE if the item was successfully posted, otherwise errQUEUE_FULL.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ struct AMessage\r
+ {\r
+ portCHAR ucMessageID;\r
+ portCHAR ucData[ 20 ];\r
+ } xMessage;\r
+\r
+ unsigned portLONG ulVar = 10UL;\r
+\r
+ void vATask( void *pvParameters )\r
+ {\r
+ xQueueHandle xQueue1, xQueue2;\r
+ struct AMessage *pxMessage;\r
+\r
+ // Create a queue capable of containing 10 unsigned long values.\r
+ xQueue1 = xQueueCreate( 10, sizeof( unsigned portLONG ) );\r
+\r
+ // Create a queue capable of containing 10 pointers to AMessage structures.\r
+ // These should be passed by pointer as they contain a lot of data.\r
+ xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) );\r
+\r
+ // ...\r
+\r
+ if( xQueue1 != 0 )\r
+ {\r
+ // Send an unsigned long. Wait for 10 ticks for space to become\r
+ // available if necessary.\r
+ if( xQueueGenericSend( xQueue1, ( void * ) &ulVar, ( portTickType ) 10, queueSEND_TO_BACK ) != pdPASS )\r
+ {\r
+ // Failed to post the message, even after 10 ticks.\r
+ }\r
+ }\r
+\r
+ if( xQueue2 != 0 )\r
+ {\r
+ // Send a pointer to a struct AMessage object. Don't block if the\r
+ // queue is already full.\r
+ pxMessage = & xMessage;\r
+ xQueueGenericSend( xQueue2, ( void * ) &pxMessage, ( portTickType ) 0, queueSEND_TO_BACK );\r
+ }\r
+\r
+ // ... Rest of task code.\r
+ }\r
+ </pre>\r
+ * \defgroup xQueueSend xQueueSend\r
+ * \ingroup QueueManagement\r
+ */\r
+signed portBASE_TYPE xQueueGenericSend( xQueueHandle xQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition );\r
+\r
+/**\r
+ * queue. h\r
+ * <pre>\r
+ portBASE_TYPE xQueuePeek(\r
+ xQueueHandle xQueue,\r
+ void *pvBuffer,\r
+ portTickType xTicksToWait\r
+ );</pre>\r
+ *\r
+ * This is a macro that calls the xQueueGenericReceive() function.\r
+ *\r
+ * Receive an item from a queue without removing the item from the queue.\r
+ * The item is received by copy so a buffer of adequate size must be\r
+ * provided. The number of bytes copied into the buffer was defined when\r
+ * the queue was created.\r
+ *\r
+ * Successfully received items remain on the queue so will be returned again\r
+ * by the next call, or a call to xQueueReceive().\r
+ *\r
+ * This macro must not be used in an interrupt service routine.\r
+ *\r
+ * @param pxQueue The handle to the queue from which the item is to be\r
+ * received.\r
+ *\r
+ * @param pvBuffer Pointer to the buffer into which the received item will\r
+ * be copied.\r
+ *\r
+ * @param xTicksToWait The maximum amount of time the task should block\r
+ * waiting for an item to receive should the queue be empty at the time\r
+ * of the call. The time is defined in tick periods so the constant\r
+ * portTICK_RATE_MS should be used to convert to real time if this is required.\r
+ *\r
+ * @return pdTRUE if an item was successfully received from the queue,\r
+ * otherwise pdFALSE.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ struct AMessage\r
+ {\r
+ portCHAR ucMessageID;\r
+ portCHAR ucData[ 20 ];\r
+ } xMessage;\r
+\r
+ xQueueHandle xQueue;\r
+\r
+ // Task to create a queue and post a value.\r
+ void vATask( void *pvParameters )\r
+ {\r
+ struct AMessage *pxMessage;\r
+\r
+ // Create a queue capable of containing 10 pointers to AMessage structures.\r
+ // These should be passed by pointer as they contain a lot of data.\r
+ xQueue = xQueueCreate( 10, sizeof( struct AMessage * ) );\r
+ if( xQueue == 0 )\r
+ {\r
+ // Failed to create the queue.\r
+ }\r
+\r
+ // ...\r
+\r
+ // Send a pointer to a struct AMessage object. Don't block if the\r
+ // queue is already full.\r
+ pxMessage = & xMessage;\r
+ xQueueSend( xQueue, ( void * ) &pxMessage, ( portTickType ) 0 );\r
+\r
+ // ... Rest of task code.\r
+ }\r
+\r
+ // Task to peek the data from the queue.\r
+ void vADifferentTask( void *pvParameters )\r
+ {\r
+ struct AMessage *pxRxedMessage;\r
+\r
+ if( xQueue != 0 )\r
+ {\r
+ // Peek a message on the created queue. Block for 10 ticks if a\r
+ // message is not immediately available.\r
+ if( xQueuePeek( xQueue, &( pxRxedMessage ), ( portTickType ) 10 ) )\r
+ {\r
+ // pcRxedMessage now points to the struct AMessage variable posted\r
+ // by vATask, but the item still remains on the queue.\r
+ }\r
+ }\r
+\r
+ // ... Rest of task code.\r
+ }\r
+ </pre>\r
+ * \defgroup xQueueReceive xQueueReceive\r
+ * \ingroup QueueManagement\r
+ */\r
+#define xQueuePeek( xQueue, pvBuffer, xTicksToWait ) xQueueGenericReceive( xQueue, pvBuffer, xTicksToWait, pdTRUE )\r
+\r
+/**\r
+ * queue. h\r
+ * <pre>\r
+ portBASE_TYPE xQueueReceive(\r
+ xQueueHandle xQueue,\r
+ void *pvBuffer,\r
+ portTickType xTicksToWait\r
+ );</pre>\r
+ *\r
+ * This is a macro that calls the xQueueGenericReceive() function.\r
+ *\r
+ * Receive an item from a queue. The item is received by copy so a buffer of\r
+ * adequate size must be provided. The number of bytes copied into the buffer\r
+ * was defined when the queue was created.\r
+ *\r
+ * Successfully received items are removed from the queue.\r
+ *\r
+ * This function must not be used in an interrupt service routine. See\r
+ * xQueueReceiveFromISR for an alternative that can.\r
+ *\r
+ * @param pxQueue The handle to the queue from which the item is to be\r
+ * received.\r
+ *\r
+ * @param pvBuffer Pointer to the buffer into which the received item will\r
+ * be copied.\r
+ *\r
+ * @param xTicksToWait The maximum amount of time the task should block\r
+ * waiting for an item to receive should the queue be empty at the time\r
+ * of the call. The time is defined in tick periods so the constant\r
+ * portTICK_RATE_MS should be used to convert to real time if this is required.\r
+ *\r
+ * @return pdTRUE if an item was successfully received from the queue,\r
+ * otherwise pdFALSE.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ struct AMessage\r
+ {\r
+ portCHAR ucMessageID;\r
+ portCHAR ucData[ 20 ];\r
+ } xMessage;\r
+\r
+ xQueueHandle xQueue;\r
+\r
+ // Task to create a queue and post a value.\r
+ void vATask( void *pvParameters )\r
+ {\r
+ struct AMessage *pxMessage;\r
+\r
+ // Create a queue capable of containing 10 pointers to AMessage structures.\r
+ // These should be passed by pointer as they contain a lot of data.\r
+ xQueue = xQueueCreate( 10, sizeof( struct AMessage * ) );\r
+ if( xQueue == 0 )\r
+ {\r
+ // Failed to create the queue.\r
+ }\r
+\r
+ // ...\r
+\r
+ // Send a pointer to a struct AMessage object. Don't block if the\r
+ // queue is already full.\r
+ pxMessage = & xMessage;\r
+ xQueueSend( xQueue, ( void * ) &pxMessage, ( portTickType ) 0 );\r
+\r
+ // ... Rest of task code.\r
+ }\r
+\r
+ // Task to receive from the queue.\r
+ void vADifferentTask( void *pvParameters )\r
+ {\r
+ struct AMessage *pxRxedMessage;\r
+\r
+ if( xQueue != 0 )\r
+ {\r
+ // Receive a message on the created queue. Block for 10 ticks if a\r
+ // message is not immediately available.\r
+ if( xQueueReceive( xQueue, &( pxRxedMessage ), ( portTickType ) 10 ) )\r
+ {\r
+ // pcRxedMessage now points to the struct AMessage variable posted\r
+ // by vATask.\r
+ }\r
+ }\r
+\r
+ // ... Rest of task code.\r
+ }\r
+ </pre>\r
+ * \defgroup xQueueReceive xQueueReceive\r
+ * \ingroup QueueManagement\r
+ */\r
+#define xQueueReceive( xQueue, pvBuffer, xTicksToWait ) xQueueGenericReceive( xQueue, pvBuffer, xTicksToWait, pdFALSE )\r
+\r
+\r
+/**\r
+ * queue. h\r
+ * <pre>\r
+ portBASE_TYPE xQueueGenericReceive(\r
+ xQueueHandle xQueue,\r
+ void *pvBuffer,\r
+ portTickType xTicksToWait\r
+ portBASE_TYPE xJustPeek\r
+ );</pre>\r
+ *\r
+ * It is preferred that the macro xQueueReceive() be used rather than calling\r
+ * this function directly.\r
+ *\r
+ * Receive an item from a queue. The item is received by copy so a buffer of\r
+ * adequate size must be provided. The number of bytes copied into the buffer\r
+ * was defined when the queue was created.\r
+ *\r
+ * This function must not be used in an interrupt service routine. See\r
+ * xQueueReceiveFromISR for an alternative that can.\r
+ *\r
+ * @param pxQueue The handle to the queue from which the item is to be\r
+ * received.\r
+ *\r
+ * @param pvBuffer Pointer to the buffer into which the received item will\r
+ * be copied.\r
+ *\r
+ * @param xTicksToWait The maximum amount of time the task should block\r
+ * waiting for an item to receive should the queue be empty at the time\r
+ * of the call. The time is defined in tick periods so the constant\r
+ * portTICK_RATE_MS should be used to convert to real time if this is required.\r
+ *\r
+ * @param xJustPeek When set to true, the item received from the queue is not\r
+ * actually removed from the queue - meaning a subsequent call to\r
+ * xQueueReceive() will return the same item. When set to false, the item\r
+ * being received from the queue is also removed from the queue.\r
+ *\r
+ * @return pdTRUE if an item was successfully received from the queue,\r
+ * otherwise pdFALSE.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ struct AMessage\r
+ {\r
+ portCHAR ucMessageID;\r
+ portCHAR ucData[ 20 ];\r
+ } xMessage;\r
+\r
+ xQueueHandle xQueue;\r
+\r
+ // Task to create a queue and post a value.\r
+ void vATask( void *pvParameters )\r
+ {\r
+ struct AMessage *pxMessage;\r
+\r
+ // Create a queue capable of containing 10 pointers to AMessage structures.\r
+ // These should be passed by pointer as they contain a lot of data.\r
+ xQueue = xQueueCreate( 10, sizeof( struct AMessage * ) );\r
+ if( xQueue == 0 )\r
+ {\r
+ // Failed to create the queue.\r
+ }\r
+\r
+ // ...\r
+\r
+ // Send a pointer to a struct AMessage object. Don't block if the\r
+ // queue is already full.\r
+ pxMessage = & xMessage;\r
+ xQueueSend( xQueue, ( void * ) &pxMessage, ( portTickType ) 0 );\r
+\r
+ // ... Rest of task code.\r
+ }\r
+\r
+ // Task to receive from the queue.\r
+ void vADifferentTask( void *pvParameters )\r
+ {\r
+ struct AMessage *pxRxedMessage;\r
+\r
+ if( xQueue != 0 )\r
+ {\r
+ // Receive a message on the created queue. Block for 10 ticks if a\r
+ // message is not immediately available.\r
+ if( xQueueGenericReceive( xQueue, &( pxRxedMessage ), ( portTickType ) 10 ) )\r
+ {\r
+ // pcRxedMessage now points to the struct AMessage variable posted\r
+ // by vATask.\r
+ }\r
+ }\r
+\r
+ // ... Rest of task code.\r
+ }\r
+ </pre>\r
+ * \defgroup xQueueReceive xQueueReceive\r
+ * \ingroup QueueManagement\r
+ */\r
+signed portBASE_TYPE xQueueGenericReceive( xQueueHandle xQueue, const void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeek );\r
+\r
+/**\r
+ * queue. h\r
+ * <pre>unsigned portBASE_TYPE uxQueueMessagesWaiting( const xQueueHandle xQueue );</pre>\r
+ *\r
+ * Return the number of messages stored in a queue.\r
+ *\r
+ * @param xQueue A handle to the queue being queried.\r
+ *\r
+ * @return The number of messages available in the queue.\r
+ *\r
+ * \page uxQueueMessagesWaiting uxQueueMessagesWaiting\r
+ * \ingroup QueueManagement\r
+ */\r
+unsigned portBASE_TYPE uxQueueMessagesWaiting( const xQueueHandle xQueue );\r
+\r
+/**\r
+ * queue. h\r
+ * <pre>void vQueueDelete( xQueueHandle xQueue );</pre>\r
+ *\r
+ * Delete a queue - freeing all the memory allocated for storing of items\r
+ * placed on the queue.\r
+ *\r
+ * @param xQueue A handle to the queue to be deleted.\r
+ *\r
+ * \page vQueueDelete vQueueDelete\r
+ * \ingroup QueueManagement\r
+ */\r
+void vQueueDelete( xQueueHandle xQueue );\r
+\r
+/**\r
+ * queue. h\r
+ * <pre>\r
+ portBASE_TYPE xQueueSendToFrontFromISR(\r
+ xQueueHandle pxQueue,\r
+ const void *pvItemToQueue,\r
+ portBASE_TYPE xTaskPreviouslyWoken\r
+ );\r
+ </pre>\r
+ *\r
+ * This is a macro that calls xQueueGenericSendFromISR().\r
+ *\r
+ * Post an item to the front of a queue. It is safe to use this macro from\r
+ * within an interrupt service routine.\r
+ *\r
+ * Items are queued by copy not reference so it is preferable to only\r
+ * queue small items, especially when called from an ISR. In most cases\r
+ * it would be preferable to store a pointer to the item being queued.\r
+ *\r
+ * @param xQueue The handle to the queue on which the item is to be posted.\r
+ *\r
+ * @param pvItemToQueue A pointer to the item that is to be placed on the\r
+ * queue. The size of the items the queue will hold was defined when the\r
+ * queue was created, so this many bytes will be copied from pvItemToQueue\r
+ * into the queue storage area.\r
+ *\r
+ * @param cTaskPreviouslyWoken This is included so an ISR can post onto\r
+ * the same queue multiple times from a single interrupt. The first call\r
+ * should always pass in pdFALSE. Subsequent calls should pass in\r
+ * the value returned from the previous call. See the file serial .c in the\r
+ * PC port for a good example of this mechanism.\r
+ *\r
+ * @return pdTRUE if a task was woken by posting onto the queue. This is\r
+ * used by the ISR to determine if a context switch may be required following\r
+ * the ISR.\r
+ *\r
+ * Example usage for buffered IO (where the ISR can obtain more than one value\r
+ * per call):\r
+ <pre>\r
+ void vBufferISR( void )\r
+ {\r
+ portCHAR cIn;\r
+ portBASE_TYPE xTaskWokenByPost;\r
+\r
+ // We have not woken a task at the start of the ISR.\r
+ cTaskWokenByPost = pdFALSE;\r
+\r
+ // Loop until the buffer is empty.\r
+ do\r
+ {\r
+ // Obtain a byte from the buffer.\r
+ cIn = portINPUT_BYTE( RX_REGISTER_ADDRESS ); \r
+\r
+ // Post the byte. The first time round the loop cTaskWokenByPost\r
+ // will be pdFALSE. If the queue send causes a task to wake we do\r
+ // not want the task to run until we have finished the ISR, so\r
+ // xQueueSendFromISR does not cause a context switch. Also we\r
+ // don't want subsequent posts to wake any other tasks, so we store\r
+ // the return value back into cTaskWokenByPost so xQueueSendFromISR\r
+ // knows not to wake any task the next iteration of the loop.\r
+ xTaskWokenByPost = xQueueSendToFrontFromISR( xRxQueue, &cIn, cTaskWokenByPost );\r
+\r
+ } while( portINPUT_BYTE( BUFFER_COUNT ) );\r
+\r
+ // Now the buffer is empty we can switch context if necessary.\r
+ if( cTaskWokenByPost )\r
+ {\r
+ taskYIELD ();\r
+ }\r
+ }\r
+ </pre>\r
+ *\r
+ * \defgroup xQueueSendFromISR xQueueSendFromISR\r
+ * \ingroup QueueManagement\r
+ */\r
+#define xQueueSendToFrontFromISR( pxQueue, pvItemToQueue, xTaskPreviouslyWoken ) xQueueGenericSendFromISR( pxQueue, pvItemToQueue, xTaskPreviouslyWoken, queueSEND_TO_FRONT )\r
+\r
+\r
+/**\r
+ * queue. h\r
+ * <pre>\r
+ portBASE_TYPE xQueueSendToBackFromISR(\r
+ xQueueHandle pxQueue,\r
+ const void *pvItemToQueue,\r
+ portBASE_TYPE xTaskPreviouslyWoken\r
+ );\r
+ </pre>\r
+ *\r
+ * This is a macro that calls xQueueGenericSendFromISR().\r
+ *\r
+ * Post an item to the back of a queue. It is safe to use this macro from\r
+ * within an interrupt service routine.\r
+ *\r
+ * Items are queued by copy not reference so it is preferable to only\r
+ * queue small items, especially when called from an ISR. In most cases\r
+ * it would be preferable to store a pointer to the item being queued.\r
+ *\r
+ * @param xQueue The handle to the queue on which the item is to be posted.\r
+ *\r
+ * @param pvItemToQueue A pointer to the item that is to be placed on the\r
+ * queue. The size of the items the queue will hold was defined when the\r
+ * queue was created, so this many bytes will be copied from pvItemToQueue\r
+ * into the queue storage area.\r
+ *\r
+ * @param cTaskPreviouslyWoken This is included so an ISR can post onto\r
+ * the same queue multiple times from a single interrupt. The first call\r
+ * should always pass in pdFALSE. Subsequent calls should pass in\r
+ * the value returned from the previous call. See the file serial .c in the\r
+ * PC port for a good example of this mechanism.\r
+ *\r
+ * @return pdTRUE if a task was woken by posting onto the queue. This is\r
+ * used by the ISR to determine if a context switch may be required following\r
+ * the ISR.\r
+ *\r
+ * Example usage for buffered IO (where the ISR can obtain more than one value\r
+ * per call):\r
+ <pre>\r
+ void vBufferISR( void )\r
+ {\r
+ portCHAR cIn;\r
+ portBASE_TYPE xTaskWokenByPost;\r
+\r
+ // We have not woken a task at the start of the ISR.\r
+ cTaskWokenByPost = pdFALSE;\r
+\r
+ // Loop until the buffer is empty.\r
+ do\r
+ {\r
+ // Obtain a byte from the buffer.\r
+ cIn = portINPUT_BYTE( RX_REGISTER_ADDRESS ); \r
+\r
+ // Post the byte. The first time round the loop cTaskWokenByPost\r
+ // will be pdFALSE. If the queue send causes a task to wake we do\r
+ // not want the task to run until we have finished the ISR, so\r
+ // xQueueSendFromISR does not cause a context switch. Also we\r
+ // don't want subsequent posts to wake any other tasks, so we store\r
+ // the return value back into cTaskWokenByPost so xQueueSendFromISR\r
+ // knows not to wake any task the next iteration of the loop.\r
+ xTaskWokenByPost = xQueueSendToBackFromISR( xRxQueue, &cIn, cTaskWokenByPost );\r
+\r
+ } while( portINPUT_BYTE( BUFFER_COUNT ) );\r
+\r
+ // Now the buffer is empty we can switch context if necessary.\r
+ if( cTaskWokenByPost )\r
+ {\r
+ taskYIELD ();\r
+ }\r
+ }\r
+ </pre>\r
+ *\r
+ * \defgroup xQueueSendFromISR xQueueSendFromISR\r
+ * \ingroup QueueManagement\r
+ */\r
+#define xQueueSendToBackFromISR( pxQueue, pvItemToQueue, xTaskPreviouslyWoken ) xQueueGenericSendFromISR( pxQueue, pvItemToQueue, xTaskPreviouslyWoken, queueSEND_TO_BACK )\r
+\r
+\r
+/**\r
+ * queue. h\r
+ * <pre>\r
+ portBASE_TYPE xQueueSendFromISR(\r
+ xQueueHandle pxQueue,\r
+ const void *pvItemToQueue,\r
+ portBASE_TYPE xTaskPreviouslyWoken\r
+ );\r
+ </pre>\r
+ *\r
+ * This is a macro that calls xQueueGenericSendFromISR(). It is included\r
+ * for backward compatibility with versions of FreeRTOS.org that did not\r
+ * include the xQueueSendToBackFromISR() and xQueueSendToFrontFromISR()\r
+ * macros.\r
+ *\r
+ * Post an item to the back of a queue. It is safe to use this function from\r
+ * within an interrupt service routine.\r
+ *\r
+ * Items are queued by copy not reference so it is preferable to only\r
+ * queue small items, especially when called from an ISR. In most cases\r
+ * it would be preferable to store a pointer to the item being queued.\r
+ *\r
+ * @param xQueue The handle to the queue on which the item is to be posted.\r
+ *\r
+ * @param pvItemToQueue A pointer to the item that is to be placed on the\r
+ * queue. The size of the items the queue will hold was defined when the\r
+ * queue was created, so this many bytes will be copied from pvItemToQueue\r
+ * into the queue storage area.\r
+ *\r
+ * @param cTaskPreviouslyWoken This is included so an ISR can post onto\r
+ * the same queue multiple times from a single interrupt. The first call\r
+ * should always pass in pdFALSE. Subsequent calls should pass in\r
+ * the value returned from the previous call. See the file serial .c in the\r
+ * PC port for a good example of this mechanism.\r
+ *\r
+ * @return pdTRUE if a task was woken by posting onto the queue. This is\r
+ * used by the ISR to determine if a context switch may be required following\r
+ * the ISR.\r
+ *\r
+ * Example usage for buffered IO (where the ISR can obtain more than one value\r
+ * per call):\r
+ <pre>\r
+ void vBufferISR( void )\r
+ {\r
+ portCHAR cIn;\r
+ portBASE_TYPE xTaskWokenByPost;\r
+\r
+ // We have not woken a task at the start of the ISR.\r
+ cTaskWokenByPost = pdFALSE;\r
+\r
+ // Loop until the buffer is empty.\r
+ do\r
+ {\r
+ // Obtain a byte from the buffer.\r
+ cIn = portINPUT_BYTE( RX_REGISTER_ADDRESS ); \r
+\r
+ // Post the byte. The first time round the loop cTaskWokenByPost\r
+ // will be pdFALSE. If the queue send causes a task to wake we do\r
+ // not want the task to run until we have finished the ISR, so\r
+ // xQueueSendFromISR does not cause a context switch. Also we\r
+ // don't want subsequent posts to wake any other tasks, so we store\r
+ // the return value back into cTaskWokenByPost so xQueueSendFromISR\r
+ // knows not to wake any task the next iteration of the loop.\r
+ xTaskWokenByPost = xQueueSendFromISR( xRxQueue, &cIn, cTaskWokenByPost );\r
+\r
+ } while( portINPUT_BYTE( BUFFER_COUNT ) );\r
+\r
+ // Now the buffer is empty we can switch context if necessary.\r
+ if( cTaskWokenByPost )\r
+ {\r
+ taskYIELD ();\r
+ }\r
+ }\r
+ </pre>\r
+ *\r
+ * \defgroup xQueueSendFromISR xQueueSendFromISR\r
+ * \ingroup QueueManagement\r
+ */\r
+#define xQueueSendFromISR( pxQueue, pvItemToQueue, xTaskPreviouslyWoken ) xQueueGenericSendFromISR( pxQueue, pvItemToQueue, xTaskPreviouslyWoken, queueSEND_TO_BACK )\r
+\r
+/**\r
+ * queue. h\r
+ * <pre>\r
+ portBASE_TYPE xQueueGenericSendFromISR(\r
+ xQueueHandle pxQueue,\r
+ const void *pvItemToQueue,\r
+ portBASE_TYPE xTaskPreviouslyWoken\r
+ portBASE_TYPE xCopyPosition\r
+ );\r
+ </pre>\r
+ *\r
+ * It is preferred that the macros xQueueSendFromISR(),\r
+ * xQueueSendToFrontFromISR() and xQueueSendToBackFromISR() be used in place\r
+ * of calling this function directly.\r
+ *\r
+ * Post an item on a queue. It is safe to use this function from within an\r
+ * interrupt service routine.\r
+ *\r
+ * Items are queued by copy not reference so it is preferable to only\r
+ * queue small items, especially when called from an ISR. In most cases\r
+ * it would be preferable to store a pointer to the item being queued.\r
+ *\r
+ * @param xQueue The handle to the queue on which the item is to be posted.\r
+ *\r
+ * @param pvItemToQueue A pointer to the item that is to be placed on the\r
+ * queue. The size of the items the queue will hold was defined when the\r
+ * queue was created, so this many bytes will be copied from pvItemToQueue\r
+ * into the queue storage area.\r
+ *\r
+ * @param cTaskPreviouslyWoken This is included so an ISR can post onto\r
+ * the same queue multiple times from a single interrupt. The first call\r
+ * should always pass in pdFALSE. Subsequent calls should pass in\r
+ * the value returned from the previous call. See the file serial .c in the\r
+ * PC port for a good example of this mechanism.\r
+ *\r
+ * @param xCopyPosition Can take the value queueSEND_TO_BACK to place the\r
+ * item at the back of the queue, or queueSEND_TO_FRONT to place the item\r
+ * at the front of the queue (for high priority messages).\r
+ *\r
+ * @return pdTRUE if a task was woken by posting onto the queue. This is\r
+ * used by the ISR to determine if a context switch may be required following\r
+ * the ISR.\r
+ *\r
+ * Example usage for buffered IO (where the ISR can obtain more than one value\r
+ * per call):\r
+ <pre>\r
+ void vBufferISR( void )\r
+ {\r
+ portCHAR cIn;\r
+ portBASE_TYPE xTaskWokenByPost;\r
+\r
+ // We have not woken a task at the start of the ISR.\r
+ cTaskWokenByPost = pdFALSE;\r
+\r
+ // Loop until the buffer is empty.\r
+ do\r
+ {\r
+ // Obtain a byte from the buffer.\r
+ cIn = portINPUT_BYTE( RX_REGISTER_ADDRESS ); \r
+\r
+ // Post the byte. The first time round the loop cTaskWokenByPost\r
+ // will be pdFALSE. If the queue send causes a task to wake we do\r
+ // not want the task to run until we have finished the ISR, so\r
+ // xQueueSendFromISR does not cause a context switch. Also we\r
+ // don't want subsequent posts to wake any other tasks, so we store\r
+ // the return value back into cTaskWokenByPost so xQueueSendFromISR\r
+ // knows not to wake any task the next iteration of the loop.\r
+ xTaskWokenByPost = xQueueGenericSendFromISR( xRxQueue, &cIn, cTaskWokenByPost, queueSEND_TO_BACK );\r
+\r
+ } while( portINPUT_BYTE( BUFFER_COUNT ) );\r
+\r
+ // Now the buffer is empty we can switch context if necessary.\r
+ if( cTaskWokenByPost )\r
+ {\r
+ taskYIELD ();\r
+ }\r
+ }\r
+ </pre>\r
+ *\r
+ * \defgroup xQueueSendFromISR xQueueSendFromISR\r
+ * \ingroup QueueManagement\r
+ */\r
+signed portBASE_TYPE xQueueGenericSendFromISR( xQueueHandle pxQueue, const void * const pvItemToQueue, signed portBASE_TYPE xTaskPreviouslyWoken, portBASE_TYPE xCopyPosition );\r
+\r
+/**\r
+ * queue. h\r
+ * <pre>\r
+ portBASE_TYPE xQueueReceiveFromISR(\r
+ xQueueHandle pxQueue,\r
+ void *pvBuffer,\r
+ portBASE_TYPE *pxTaskWoken\r
+ );\r
+ * </pre>\r
+ *\r
+ * Receive an item from a queue. It is safe to use this function from within an\r
+ * interrupt service routine.\r
+ *\r
+ * @param pxQueue The handle to the queue from which the item is to be\r
+ * received.\r
+ *\r
+ * @param pvBuffer Pointer to the buffer into which the received item will\r
+ * be copied.\r
+ *\r
+ * @param pxTaskWoken A task may be blocked waiting for space to become\r
+ * available on the queue. If xQueueReceiveFromISR causes such a task to\r
+ * unblock *pxTaskWoken will get set to pdTRUE, otherwise *pxTaskWoken will\r
+ * remain unchanged.\r
+ *\r
+ * @return pdTRUE if an item was successfully received from the queue,\r
+ * otherwise pdFALSE.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+\r
+ xQueueHandle xQueue;\r
+\r
+ // Function to create a queue and post some values.\r
+ void vAFunction( void *pvParameters )\r
+ {\r
+ portCHAR cValueToPost;\r
+ const portTickType xBlockTime = ( portTickType )0xff;\r
+\r
+ // Create a queue capable of containing 10 characters.\r
+ xQueue = xQueueCreate( 10, sizeof( portCHAR ) );\r
+ if( xQueue == 0 )\r
+ {\r
+ // Failed to create the queue.\r
+ }\r
+\r
+ // ...\r
+\r
+ // Post some characters that will be used within an ISR. If the queue\r
+ // is full then this task will block for xBlockTime ticks.\r
+ cValueToPost = 'a';\r
+ xQueueSend( xQueue, ( void * ) &cValueToPost, xBlockTime );\r
+ cValueToPost = 'b';\r
+ xQueueSend( xQueue, ( void * ) &cValueToPost, xBlockTime );\r
+\r
+ // ... keep posting characters ... this task may block when the queue\r
+ // becomes full.\r
+\r
+ cValueToPost = 'c';\r
+ xQueueSend( xQueue, ( void * ) &cValueToPost, xBlockTime );\r
+ }\r
+\r
+ // ISR that outputs all the characters received on the queue.\r
+ void vISR_Routine( void )\r
+ {\r
+ portBASE_TYPE xTaskWokenByReceive = pdFALSE;\r
+ portCHAR cRxedChar;\r
+\r
+ while( xQueueReceiveFromISR( xQueue, ( void * ) &cRxedChar, &xTaskWokenByReceive) )\r
+ {\r
+ // A character was received. Output the character now.\r
+ vOutputCharacter( cRxedChar );\r
+\r
+ // If removing the character from the queue woke the task that was\r
+ // posting onto the queue cTaskWokenByReceive will have been set to\r
+ // pdTRUE. No matter how many times this loop iterates only one\r
+ // task will be woken.\r
+ }\r
+\r
+ if( cTaskWokenByPost != ( portCHAR ) pdFALSE;\r
+ {\r
+ taskYIELD ();\r
+ }\r
+ }\r
+ </pre>\r
+ * \defgroup xQueueReceiveFromISR xQueueReceiveFromISR\r
+ * \ingroup QueueManagement\r
+ */\r
+signed portBASE_TYPE xQueueReceiveFromISR( xQueueHandle pxQueue, const void * const pvBuffer, signed portBASE_TYPE *pxTaskWoken );\r
+\r
+/* \r
+ * xQueueAltGenericSend() is an alternative version of xQueueGenericSend().\r
+ * Likewise xQueueAltGenericReceive() is an alternative version of\r
+ * xQueueGenericReceive().\r
+ *\r
+ * The source code that implements the alternative (Alt) API is much \r
+ * simpler because it executes everything from within a critical section. \r
+ * This is the approach taken by many other RTOSes, but FreeRTOS.org has the \r
+ * preferred fully featured API too. The fully featured API has more \r
+ * complex code that takes longer to execute, but makes much less use of \r
+ * critical sections. Therefore the alternative API sacrifices interrupt \r
+ * responsiveness to gain execution speed, whereas the fully featured API\r
+ * sacrifices execution speed to ensure better interrupt responsiveness.\r
+ */\r
+signed portBASE_TYPE xQueueAltGenericSend( xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition );\r
+signed portBASE_TYPE xQueueAltGenericReceive( xQueueHandle pxQueue, const void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking );\r
+#define xQueueAltSendToFront( xQueue, pvItemToQueue, xTicksToWait ) xQueueAltGenericSend( xQueue, pvItemToQueue, xTicksToWait, queueSEND_TO_FRONT )\r
+#define xQueueAltSendToBack( xQueue, pvItemToQueue, xTicksToWait ) xQueueAltGenericSend( xQueue, pvItemToQueue, xTicksToWait, queueSEND_TO_BACK )\r
+#define xQueueAltReceive( xQueue, pvBuffer, xTicksToWait ) xQueueAltGenericReceive( xQueue, pvBuffer, xTicksToWait, pdFALSE )\r
+#define xQueueAltPeek( xQueue, pvBuffer, xTicksToWait ) xQueueAltGenericReceive( xQueue, pvBuffer, xTicksToWait, pdTRUE )\r
+\r
+/*\r
+ * The functions defined above are for passing data to and from tasks. The\r
+ * functions below are the equivalents for passing data to and from\r
+ * co-routines.\r
+ *\r
+ * These functions are called from the co-routine macro implementation and\r
+ * should not be called directly from application code. Instead use the macro\r
+ * wrappers defined within croutine.h.\r
+ */\r
+signed portBASE_TYPE xQueueCRSendFromISR( xQueueHandle pxQueue, const void *pvItemToQueue, signed portBASE_TYPE xCoRoutinePreviouslyWoken );\r
+signed portBASE_TYPE xQueueCRReceiveFromISR( xQueueHandle pxQueue, void *pvBuffer, signed portBASE_TYPE *pxTaskWoken );\r
+signed portBASE_TYPE xQueueCRSend( xQueueHandle pxQueue, const void *pvItemToQueue, portTickType xTicksToWait );\r
+signed portBASE_TYPE xQueueCRReceive( xQueueHandle pxQueue, void *pvBuffer, portTickType xTicksToWait );\r
+\r
+/*\r
+ * For internal use only. Use xSemaphoreCreateMutex() or\r
+ * xSemaphoreCreateCounting() instead of calling these functions directly.\r
+ */\r
+xQueueHandle xQueueCreateMutex( void );\r
+xQueueHandle xQueueCreateCountingSemaphore( unsigned portBASE_TYPE uxCountValue, unsigned portBASE_TYPE uxInitialCount );\r
+\r
+/*\r
+ * For internal use only. Use xSemaphoreTakeMutexRecursive() or\r
+ * xSemaphoreGiveMutexRecursive() instead of calling these functions directly.\r
+ */\r
+portBASE_TYPE xQueueTakeMutexRecursive( xQueueHandle xMutex, portTickType xBlockTime );\r
+portBASE_TYPE xQueueGiveMutexRecursive( xQueueHandle xMutex );\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif /* QUEUE_H */\r
+\r
--- /dev/null
+/*\r
+ FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.\r
+\r
+ This file is part of the FreeRTOS.org distribution.\r
+\r
+ FreeRTOS.org is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ FreeRTOS.org is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with FreeRTOS.org; if not, write to the Free Software\r
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+\r
+ A special exception to the GPL can be applied should you wish to distribute\r
+ a combined work that includes FreeRTOS.org, without being obliged to provide\r
+ the source code for any proprietary components. See the licensing section \r
+ of http://www.FreeRTOS.org for full details of how and when the exception\r
+ can be applied.\r
+\r
+ ***************************************************************************\r
+\r
+ Please ensure to read the configuration and relevant port sections of the \r
+ online documentation.\r
+\r
+ +++ http://www.FreeRTOS.org +++\r
+ Documentation, latest information, license and contact details. \r
+\r
+ +++ http://www.SafeRTOS.com +++\r
+ A version that is certified for use in safety critical systems.\r
+\r
+ +++ http://www.OpenRTOS.com +++\r
+ Commercial support, development, porting, licensing and training services.\r
+\r
+ ***************************************************************************\r
+*/\r
+\r
+#ifndef SEMAPHORE_H\r
+#define SEMAPHORE_H\r
+\r
+#include "queue.h"\r
+\r
+typedef xQueueHandle xSemaphoreHandle;\r
+\r
+#define semBINARY_SEMAPHORE_QUEUE_LENGTH ( ( unsigned portCHAR ) 1 )\r
+#define semSEMAPHORE_QUEUE_ITEM_LENGTH ( ( unsigned portCHAR ) 0 )\r
+#define semGIVE_BLOCK_TIME ( ( portTickType ) 0 )\r
+\r
+\r
+/**\r
+ * semphr. h\r
+ * <pre>vSemaphoreCreateBinary( xSemaphoreHandle xSemaphore )</pre>\r
+ *\r
+ * <i>Macro</i> that implements a semaphore by using the existing queue mechanism.\r
+ * The queue length is 1 as this is a binary semaphore. The data size is 0\r
+ * as we don't want to actually store any data - we just want to know if the\r
+ * queue is empty or full.\r
+ *\r
+ * This type of semaphore can be used for pure synchronisation between tasks or\r
+ * between an interrupt and a task. The semaphore need not be given back once\r
+ * obtained, so one task/interrupt can continuously 'give' the semaphore while\r
+ * another continuously 'takes' the semaphore. For this reason this type of\r
+ * semaphore does not use a priority inheritance mechanism. For an alternative\r
+ * that does use priority inheritance see xSemaphoreCreateMutex().\r
+ *\r
+ * @param xSemaphore Handle to the created semaphore. Should be of type xSemaphoreHandle.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ xSemaphoreHandle xSemaphore;\r
+\r
+ void vATask( void * pvParameters )\r
+ {\r
+ // Semaphore cannot be used before a call to vSemaphoreCreateBinary ().\r
+ // This is a macro so pass the variable in directly.\r
+ vSemaphoreCreateBinary( xSemaphore );\r
+\r
+ if( xSemaphore != NULL )\r
+ {\r
+ // The semaphore was created successfully.\r
+ // The semaphore can now be used. \r
+ }\r
+ }\r
+ </pre>\r
+ * \defgroup vSemaphoreCreateBinary vSemaphoreCreateBinary\r
+ * \ingroup Semaphores\r
+ */\r
+#define vSemaphoreCreateBinary( xSemaphore ) { \\r
+ xSemaphore = xQueueCreate( ( unsigned portBASE_TYPE ) 1, semSEMAPHORE_QUEUE_ITEM_LENGTH ); \\r
+ if( xSemaphore != NULL ) \\r
+ { \\r
+ xSemaphoreGive( xSemaphore ); \\r
+ } \\r
+ }\r
+\r
+/**\r
+ * semphr. h\r
+ * xSemaphoreTake( \r
+ * xSemaphoreHandle xSemaphore, \r
+ * portTickType xBlockTime \r
+ * )</pre>\r
+ *\r
+ * <i>Macro</i> to obtain a semaphore. The semaphore must have previously been\r
+ * created with a call to vSemaphoreCreateBinary(), xSemaphoreCreateMutex() or\r
+ * xSemaphoreCreateCounting().\r
+ *\r
+ * @param xSemaphore A handle to the semaphore being taken - obtained when\r
+ * the semaphore was created.\r
+ *\r
+ * @param xBlockTime The time in ticks to wait for the semaphore to become\r
+ * available. The macro portTICK_RATE_MS can be used to convert this to a\r
+ * real time. A block time of zero can be used to poll the semaphore. A block\r
+ * time of portMAX_DELAY can be used to block indefinitely (provided\r
+ * INCLUDE_vTaskSuspend is set to 1 in FreeRTOSConfig.h).\r
+ *\r
+ * @return pdTRUE if the semaphore was obtained. pdFALSE\r
+ * if xBlockTime expired without the semaphore becoming available.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ xSemaphoreHandle xSemaphore = NULL;\r
+\r
+ // A task that creates a semaphore.\r
+ void vATask( void * pvParameters )\r
+ {\r
+ // Create the semaphore to guard a shared resource.\r
+ vSemaphoreCreateBinary( xSemaphore );\r
+ }\r
+\r
+ // A task that uses the semaphore.\r
+ void vAnotherTask( void * pvParameters )\r
+ {\r
+ // ... Do other things.\r
+\r
+ if( xSemaphore != NULL )\r
+ {\r
+ // See if we can obtain the semaphore. If the semaphore is not available\r
+ // wait 10 ticks to see if it becomes free. \r
+ if( xSemaphoreTake( xSemaphore, ( portTickType ) 10 ) == pdTRUE )\r
+ {\r
+ // We were able to obtain the semaphore and can now access the\r
+ // shared resource.\r
+\r
+ // ...\r
+\r
+ // We have finished accessing the shared resource. Release the \r
+ // semaphore.\r
+ xSemaphoreGive( xSemaphore );\r
+ }\r
+ else\r
+ {\r
+ // We could not obtain the semaphore and can therefore not access\r
+ // the shared resource safely.\r
+ }\r
+ }\r
+ }\r
+ </pre>\r
+ * \defgroup xSemaphoreTake xSemaphoreTake\r
+ * \ingroup Semaphores\r
+ */\r
+#define xSemaphoreTake( xSemaphore, xBlockTime ) xQueueGenericReceive( ( xQueueHandle ) xSemaphore, NULL, xBlockTime, pdFALSE )\r
+\r
+/**\r
+ * semphr. h\r
+ * xSemaphoreTakeRecursive( \r
+ * xSemaphoreHandle xMutex, \r
+ * portTickType xBlockTime \r
+ * )\r
+ *\r
+ * <i>Macro</i> to recursively obtain, or 'take', a mutex type semaphore. \r
+ * The mutex must have previously been created using a call to \r
+ * xSemaphoreCreateRecursiveMutex();\r
+ * \r
+ * configUSE_RECURSIVE_MUTEXES must be set to 1 in FreeRTOSConfig.h for this\r
+ * macro to be available.\r
+ * \r
+ * This macro must not be used on mutexes created using xSemaphoreCreateMutex().\r
+ *\r
+ * A mutex used recursively can be 'taken' repeatedly by the owner. The mutex \r
+ * doesn't become available again until the owner has called \r
+ * xSemaphoreGiveRecursive() for each successful 'take' request. For example, \r
+ * if a task successfully 'takes' the same mutex 5 times then the mutex will \r
+ * not be available to any other task until it has also 'given' the mutex back\r
+ * exactly five times.\r
+ *\r
+ * @param xMutex A handle to the mutex being obtained. This is the\r
+ * handle returned by xSemaphoreCreateRecursiveMutex();\r
+ *\r
+ * @param xBlockTime The time in ticks to wait for the semaphore to become\r
+ * available. The macro portTICK_RATE_MS can be used to convert this to a\r
+ * real time. A block time of zero can be used to poll the semaphore. If\r
+ * the task already owns the semaphore then xSemaphoreTakeRecursive() will\r
+ * return immediately no matter what the value of xBlockTime. \r
+ *\r
+ * @return pdTRUE if the semaphore was obtained. pdFALSE if xBlockTime\r
+ * expired without the semaphore becoming available.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ xSemaphoreHandle xMutex = NULL;\r
+\r
+ // A task that creates a mutex.\r
+ void vATask( void * pvParameters )\r
+ {\r
+ // Create the mutex to guard a shared resource.\r
+ xMutex = xSemaphoreCreateRecursiveMutex();\r
+ }\r
+\r
+ // A task that uses the mutex.\r
+ void vAnotherTask( void * pvParameters )\r
+ {\r
+ // ... Do other things.\r
+\r
+ if( xMutex != NULL )\r
+ {\r
+ // See if we can obtain the mutex. If the mutex is not available\r
+ // wait 10 ticks to see if it becomes free. \r
+ if( xSemaphoreTakeRecursive( xSemaphore, ( portTickType ) 10 ) == pdTRUE )\r
+ {\r
+ // We were able to obtain the mutex and can now access the\r
+ // shared resource.\r
+\r
+ // ...\r
+ // For some reason due to the nature of the code further calls to \r
+ // xSemaphoreTakeRecursive() are made on the same mutex. In real\r
+ // code these would not be just sequential calls as this would make\r
+ // no sense. Instead the calls are likely to be buried inside\r
+ // a more complex call structure.\r
+ xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 );\r
+ xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 );\r
+\r
+ // The mutex has now been 'taken' three times, so will not be \r
+ // available to another task until it has also been given back\r
+ // three times. Again it is unlikely that real code would have\r
+ // these calls sequentially, but instead buried in a more complex\r
+ // call structure. This is just for illustrative purposes.\r
+ xSemaphoreGiveRecursive( xMutex );\r
+ xSemaphoreGiveRecursive( xMutex );\r
+ xSemaphoreGiveRecursive( xMutex );\r
+\r
+ // Now the mutex can be taken by other tasks.\r
+ }\r
+ else\r
+ {\r
+ // We could not obtain the mutex and can therefore not access\r
+ // the shared resource safely.\r
+ }\r
+ }\r
+ }\r
+ </pre>\r
+ * \defgroup xSemaphoreTakeRecursive xSemaphoreTakeRecursive\r
+ * \ingroup Semaphores\r
+ */\r
+#define xSemaphoreTakeRecursive( xMutex, xBlockTime ) xQueueTakeMutexRecursive( xMutex, xBlockTime )\r
+\r
+\r
+/* \r
+ * xSemaphoreAltTake() is an alternative version of xSemaphoreTake().\r
+ *\r
+ * The source code that implements the alternative (Alt) API is much \r
+ * simpler because it executes everything from within a critical section. \r
+ * This is the approach taken by many other RTOSes, but FreeRTOS.org has the \r
+ * preferred fully featured API too. The fully featured API has more \r
+ * complex code that takes longer to execute, but makes much less use of \r
+ * critical sections. Therefore the alternative API sacrifices interrupt \r
+ * responsiveness to gain execution speed, whereas the fully featured API\r
+ * sacrifices execution speed to ensure better interrupt responsiveness.\r
+ */\r
+#define xSemaphoreAltTake( xSemaphore, xBlockTime ) xQueueAltGenericReceive( ( xQueueHandle ) xSemaphore, NULL, xBlockTime, pdFALSE )\r
+\r
+/**\r
+ * semphr. h\r
+ * <pre>xSemaphoreGive( xSemaphoreHandle xSemaphore )</pre>\r
+ *\r
+ * <i>Macro</i> to release a semaphore. The semaphore must have previously been\r
+ * created with a call to vSemaphoreCreateBinary(), xSemaphoreCreateMutex() or\r
+ * xSemaphoreCreateCounting(). and obtained using sSemaphoreTake().\r
+ *\r
+ * This macro must not be used from an ISR. See xSemaphoreGiveFromISR () for\r
+ * an alternative which can be used from an ISR.\r
+ *\r
+ * This macro must also not be used on semaphores created using \r
+ * xSemaphoreCreateRecursiveMutex().\r
+ *\r
+ * @param xSemaphore A handle to the semaphore being released. This is the\r
+ * handle returned when the semaphore was created.\r
+ *\r
+ * @return pdTRUE if the semaphore was released. pdFALSE if an error occurred.\r
+ * Semaphores are implemented using queues. An error can occur if there is\r
+ * no space on the queue to post a message - indicating that the \r
+ * semaphore was not first obtained correctly.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ xSemaphoreHandle xSemaphore = NULL;\r
+\r
+ void vATask( void * pvParameters )\r
+ {\r
+ // Create the semaphore to guard a shared resource.\r
+ vSemaphoreCreateBinary( xSemaphore );\r
+\r
+ if( xSemaphore != NULL )\r
+ {\r
+ if( xSemaphoreGive( xSemaphore ) != pdTRUE )\r
+ {\r
+ // We would expect this call to fail because we cannot give\r
+ // a semaphore without first "taking" it!\r
+ }\r
+\r
+ // Obtain the semaphore - don't block if the semaphore is not\r
+ // immediately available.\r
+ if( xSemaphoreTake( xSemaphore, ( portTickType ) 0 ) )\r
+ {\r
+ // We now have the semaphore and can access the shared resource.\r
+\r
+ // ...\r
+\r
+ // We have finished accessing the shared resource so can free the\r
+ // semaphore.\r
+ if( xSemaphoreGive( xSemaphore ) != pdTRUE )\r
+ {\r
+ // We would not expect this call to fail because we must have\r
+ // obtained the semaphore to get here.\r
+ }\r
+ }\r
+ }\r
+ }\r
+ </pre>\r
+ * \defgroup xSemaphoreGive xSemaphoreGive\r
+ * \ingroup Semaphores\r
+ */\r
+#define xSemaphoreGive( xSemaphore ) xQueueGenericSend( ( xQueueHandle ) xSemaphore, NULL, semGIVE_BLOCK_TIME, queueSEND_TO_BACK )\r
+\r
+/**\r
+ * semphr. h\r
+ * <pre>xSemaphoreGiveRecursive( xSemaphoreHandle xMutex )</pre>\r
+ *\r
+ * <i>Macro</i> to recursively release, or 'give', a mutex type semaphore.\r
+ * The mutex must have previously been created using a call to \r
+ * xSemaphoreCreateRecursiveMutex();\r
+ * \r
+ * configUSE_RECURSIVE_MUTEXES must be set to 1 in FreeRTOSConfig.h for this\r
+ * macro to be available.\r
+ *\r
+ * This macro must not be used on mutexes created using xSemaphoreCreateMutex().\r
+ * \r
+ * A mutex used recursively can be 'taken' repeatedly by the owner. The mutex \r
+ * doesn't become available again until the owner has called \r
+ * xSemaphoreGiveRecursive() for each successful 'take' request. For example, \r
+ * if a task successfully 'takes' the same mutex 5 times then the mutex will \r
+ * not be available to any other task until it has also 'given' the mutex back\r
+ * exactly five times.\r
+ *\r
+ * @param xMutex A handle to the mutex being released, or 'given'. This is the\r
+ * handle returned by xSemaphoreCreateMutex();\r
+ *\r
+ * @return pdTRUE if the semaphore was given.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ xSemaphoreHandle xMutex = NULL;\r
+\r
+ // A task that creates a mutex.\r
+ void vATask( void * pvParameters )\r
+ {\r
+ // Create the mutex to guard a shared resource.\r
+ xMutex = xSemaphoreCreateRecursiveMutex();\r
+ }\r
+\r
+ // A task that uses the mutex.\r
+ void vAnotherTask( void * pvParameters )\r
+ {\r
+ // ... Do other things.\r
+\r
+ if( xMutex != NULL )\r
+ {\r
+ // See if we can obtain the mutex. If the mutex is not available\r
+ // wait 10 ticks to see if it becomes free. \r
+ if( xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 ) == pdTRUE )\r
+ {\r
+ // We were able to obtain the mutex and can now access the\r
+ // shared resource.\r
+\r
+ // ...\r
+ // For some reason due to the nature of the code further calls to \r
+ // xSemaphoreTakeRecursive() are made on the same mutex. In real\r
+ // code these would not be just sequential calls as this would make\r
+ // no sense. Instead the calls are likely to be buried inside\r
+ // a more complex call structure.\r
+ xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 );\r
+ xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 );\r
+\r
+ // The mutex has now been 'taken' three times, so will not be \r
+ // available to another task until it has also been given back\r
+ // three times. Again it is unlikely that real code would have\r
+ // these calls sequentially, it would be more likely that the calls\r
+ // to xSemaphoreGiveRecursive() would be called as a call stack\r
+ // unwound. This is just for demonstrative purposes.\r
+ xSemaphoreGiveRecursive( xMutex );\r
+ xSemaphoreGiveRecursive( xMutex );\r
+ xSemaphoreGiveRecursive( xMutex );\r
+\r
+ // Now the mutex can be taken by other tasks.\r
+ }\r
+ else\r
+ {\r
+ // We could not obtain the mutex and can therefore not access\r
+ // the shared resource safely.\r
+ }\r
+ }\r
+ }\r
+ </pre>\r
+ * \defgroup xSemaphoreGiveRecursive xSemaphoreGiveRecursive\r
+ * \ingroup Semaphores\r
+ */\r
+#define xSemaphoreGiveRecursive( xMutex ) xQueueGiveMutexRecursive( xMutex )\r
+\r
+/* \r
+ * xSemaphoreAltGive() is an alternative version of xSemaphoreGive().\r
+ *\r
+ * The source code that implements the alternative (Alt) API is much \r
+ * simpler because it executes everything from within a critical section. \r
+ * This is the approach taken by many other RTOSes, but FreeRTOS.org has the \r
+ * preferred fully featured API too. The fully featured API has more \r
+ * complex code that takes longer to execute, but makes much less use of \r
+ * critical sections. Therefore the alternative API sacrifices interrupt \r
+ * responsiveness to gain execution speed, whereas the fully featured API\r
+ * sacrifices execution speed to ensure better interrupt responsiveness.\r
+ */\r
+#define xSemaphoreAltGive( xSemaphore ) xQueueAltGenericSend( ( xQueueHandle ) xSemaphore, NULL, semGIVE_BLOCK_TIME, queueSEND_TO_BACK )\r
+\r
+/**\r
+ * semphr. h\r
+ * <pre>\r
+ xSemaphoreGiveFromISR( \r
+ xSemaphoreHandle xSemaphore, \r
+ portSHORT sTaskPreviouslyWoken \r
+ )</pre>\r
+ *\r
+ * <i>Macro</i> to release a semaphore. The semaphore must have previously been\r
+ * created with a call to vSemaphoreCreateBinary() or xSemaphoreCreateCounting().\r
+ *\r
+ * Mutex type semaphores (those created using a call to xSemaphoreCreateMutex())\r
+ * must not be used with this macro.\r
+ *\r
+ * This macro can be used from an ISR.\r
+ *\r
+ * @param xSemaphore A handle to the semaphore being released. This is the\r
+ * handle returned when the semaphore was created.\r
+ *\r
+ * @param sTaskPreviouslyWoken This is included so an ISR can make multiple calls\r
+ * to xSemaphoreGiveFromISR () from a single interrupt. The first call\r
+ * should always pass in pdFALSE. Subsequent calls should pass in\r
+ * the value returned from the previous call. See the file serial .c in the\r
+ * PC port for a good example of using xSemaphoreGiveFromISR ().\r
+ *\r
+ * @return pdTRUE if a task was woken by releasing the semaphore. This is \r
+ * used by the ISR to determine if a context switch may be required following\r
+ * the ISR.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ #define LONG_TIME 0xffff\r
+ #define TICKS_TO_WAIT 10\r
+ xSemaphoreHandle xSemaphore = NULL;\r
+\r
+ // Repetitive task.\r
+ void vATask( void * pvParameters )\r
+ {\r
+ for( ;; )\r
+ {\r
+ // We want this task to run every 10 ticks of a timer. The semaphore \r
+ // was created before this task was started.\r
+\r
+ // Block waiting for the semaphore to become available.\r
+ if( xSemaphoreTake( xSemaphore, LONG_TIME ) == pdTRUE )\r
+ {\r
+ // It is time to execute.\r
+\r
+ // ...\r
+\r
+ // We have finished our task. Return to the top of the loop where\r
+ // we will block on the semaphore until it is time to execute \r
+ // again. Note when using the semaphore for synchronisation with an\r
+ // ISR in this manner there is no need to 'give' the semaphore back.\r
+ }\r
+ }\r
+ }\r
+\r
+ // Timer ISR\r
+ void vTimerISR( void * pvParameters )\r
+ {\r
+ static unsigned portCHAR ucLocalTickCount = 0;\r
+ static portBASE_TYPE xTaskWoken;\r
+\r
+ // A timer tick has occurred.\r
+\r
+ // ... Do other time functions.\r
+\r
+ // Is it time for vATask () to run?\r
+ xTaskWoken = pdFALSE;\r
+ ucLocalTickCount++;\r
+ if( ucLocalTickCount >= TICKS_TO_WAIT )\r
+ {\r
+ // Unblock the task by releasing the semaphore.\r
+ xTaskWoken = xSemaphoreGiveFromISR( xSemaphore, xTaskWoken );\r
+\r
+ // Reset the count so we release the semaphore again in 10 ticks time.\r
+ ucLocalTickCount = 0;\r
+ }\r
+\r
+ if( xTaskWoken != pdFALSE )\r
+ {\r
+ // We can force a context switch here. Context switching from an\r
+ // ISR uses port specific syntax. Check the demo task for your port\r
+ // to find the syntax required.\r
+ }\r
+ }\r
+ </pre>\r
+ * \defgroup xSemaphoreGiveFromISR xSemaphoreGiveFromISR\r
+ * \ingroup Semaphores\r
+ */\r
+#define xSemaphoreGiveFromISR( xSemaphore, xTaskPreviouslyWoken ) xQueueGenericSendFromISR( ( xQueueHandle ) xSemaphore, NULL, xTaskPreviouslyWoken, queueSEND_TO_BACK )\r
+\r
+/**\r
+ * semphr. h\r
+ * <pre>xSemaphoreHandle xSemaphoreCreateMutex( void )</pre>\r
+ *\r
+ * <i>Macro</i> that implements a mutex semaphore by using the existing queue \r
+ * mechanism.\r
+ *\r
+ * Mutexes created using this macro can be accessed using the xSemaphoreTake()\r
+ * and xSemaphoreGive() macros. The xSemaphoreTakeRecursive() and \r
+ * xSemaphoreGiveRecursive() macros should not be used.\r
+ * \r
+ * This type of semaphore uses a priority inheritance mechanism so a task \r
+ * 'taking' a semaphore MUST ALWAYS 'give' the semaphore back once the \r
+ * semaphore it is no longer required. \r
+ *\r
+ * Mutex type semaphores cannot be used from within interrupt service routines. \r
+ *\r
+ * See xSemaphoreCreateBinary() for an alternative implementation that can be \r
+ * used for pure synchronisation (where one task or interrupt always 'gives' the \r
+ * semaphore and another always 'takes' the semaphore) and from within interrupt \r
+ * service routines.\r
+ *\r
+ * @return xSemaphore Handle to the created mutex semaphore. Should be of type \r
+ * xSemaphoreHandle.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ xSemaphoreHandle xSemaphore;\r
+\r
+ void vATask( void * pvParameters )\r
+ {\r
+ // Semaphore cannot be used before a call to xSemaphoreCreateMutex().\r
+ // This is a macro so pass the variable in directly.\r
+ xSemaphore = xSemaphoreCreateMutex();\r
+\r
+ if( xSemaphore != NULL )\r
+ {\r
+ // The semaphore was created successfully.\r
+ // The semaphore can now be used. \r
+ }\r
+ }\r
+ </pre>\r
+ * \defgroup vSemaphoreCreateMutex vSemaphoreCreateMutex\r
+ * \ingroup Semaphores\r
+ */\r
+#define xSemaphoreCreateMutex() xQueueCreateMutex()\r
+\r
+\r
+/**\r
+ * semphr. h\r
+ * <pre>xSemaphoreHandle xSemaphoreCreateRecursiveMutex( void )</pre>\r
+ *\r
+ * <i>Macro</i> that implements a recursive mutex by using the existing queue \r
+ * mechanism.\r
+ *\r
+ * Mutexes created using this macro can be accessed using the \r
+ * xSemaphoreTakeRecursive() and xSemaphoreGiveRecursive() macros. The \r
+ * xSemaphoreTake() and xSemaphoreGive() macros should not be used.\r
+ *\r
+ * A mutex used recursively can be 'taken' repeatedly by the owner. The mutex \r
+ * doesn't become available again until the owner has called \r
+ * xSemaphoreGiveRecursive() for each successful 'take' request. For example, \r
+ * if a task successfully 'takes' the same mutex 5 times then the mutex will \r
+ * not be available to any other task until it has also 'given' the mutex back\r
+ * exactly five times.\r
+ * \r
+ * This type of semaphore uses a priority inheritance mechanism so a task \r
+ * 'taking' a semaphore MUST ALWAYS 'give' the semaphore back once the \r
+ * semaphore it is no longer required. \r
+ *\r
+ * Mutex type semaphores cannot be used from within interrupt service routines. \r
+ *\r
+ * See xSemaphoreCreateBinary() for an alternative implementation that can be \r
+ * used for pure synchronisation (where one task or interrupt always 'gives' the \r
+ * semaphore and another always 'takes' the semaphore) and from within interrupt \r
+ * service routines.\r
+ *\r
+ * @return xSemaphore Handle to the created mutex semaphore. Should be of type \r
+ * xSemaphoreHandle.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ xSemaphoreHandle xSemaphore;\r
+\r
+ void vATask( void * pvParameters )\r
+ {\r
+ // Semaphore cannot be used before a call to xSemaphoreCreateMutex().\r
+ // This is a macro so pass the variable in directly.\r
+ xSemaphore = xSemaphoreCreateRecursiveMutex();\r
+\r
+ if( xSemaphore != NULL )\r
+ {\r
+ // The semaphore was created successfully.\r
+ // The semaphore can now be used. \r
+ }\r
+ }\r
+ </pre>\r
+ * \defgroup vSemaphoreCreateMutex vSemaphoreCreateMutex\r
+ * \ingroup Semaphores\r
+ */\r
+#define xSemaphoreCreateRecursiveMutex() xQueueCreateMutex()\r
+\r
+/**\r
+ * semphr. h\r
+ * <pre>xSemaphoreHandle xSemaphoreCreateCounting( unsigned portBASE_TYPE uxMaxCount, unsigned portBASE_TYPE uxInitialCount )</pre>\r
+ *\r
+ * <i>Macro</i> that creates a counting semaphore by using the existing \r
+ * queue mechanism. \r
+ *\r
+ * Counting semaphores are typically used for two things:\r
+ *\r
+ * 1) Counting events. \r
+ *\r
+ * In this usage scenario an event handler will 'give' a semaphore each time\r
+ * an event occurs (incrementing the semaphore count value), and a handler \r
+ * task will 'take' a semaphore each time it processes an event \r
+ * (decrementing the semaphore count value). The count value is therefore \r
+ * the difference between the number of events that have occurred and the \r
+ * number that have been processed. In this case it is desirable for the \r
+ * initial count value to be zero.\r
+ *\r
+ * 2) Resource management.\r
+ *\r
+ * In this usage scenario the count value indicates the number of resources\r
+ * available. To obtain control of a resource a task must first obtain a \r
+ * semaphore - decrementing the semaphore count value. When the count value\r
+ * reaches zero there are no free resources. When a task finishes with the\r
+ * resource it 'gives' the semaphore back - incrementing the semaphore count\r
+ * value. In this case it is desirable for the initial count value to be\r
+ * equal to the maximum count value, indicating that all resources are free.\r
+ *\r
+ * @param uxMaxCount The maximum count value that can be reached. When the \r
+ * semaphore reaches this value it can no longer be 'given'.\r
+ *\r
+ * @param uxInitialCount The count value assigned to the semaphore when it is\r
+ * created.\r
+ *\r
+ * @return Handle to the created semaphore. Null if the semaphore could not be\r
+ * created.\r
+ * \r
+ * Example usage:\r
+ <pre>\r
+ xSemaphoreHandle xSemaphore;\r
+\r
+ void vATask( void * pvParameters )\r
+ {\r
+ xSemaphoreHandle xSemaphore = NULL;\r
+\r
+ // Semaphore cannot be used before a call to xSemaphoreCreateCounting().\r
+ // The max value to which the semaphore can count should be 10, and the\r
+ // initial value assigned to the count should be 0.\r
+ xSemaphore = xSemaphoreCreateCounting( 10, 0 );\r
+\r
+ if( xSemaphore != NULL )\r
+ {\r
+ // The semaphore was created successfully.\r
+ // The semaphore can now be used. \r
+ }\r
+ }\r
+ </pre>\r
+ * \defgroup xSemaphoreCreateCounting xSemaphoreCreateCounting\r
+ * \ingroup Semaphores\r
+ */\r
+#define xSemaphoreCreateCounting( uxMaxCount, uxInitialCount ) xQueueCreateCountingSemaphore( uxMaxCount, uxInitialCount )\r
+\r
+\r
+#endif /* SEMAPHORE_H */\r
+\r
+\r
--- /dev/null
+/*\r
+ FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.\r
+\r
+ This file is part of the FreeRTOS.org distribution.\r
+\r
+ FreeRTOS.org is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ FreeRTOS.org is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with FreeRTOS.org; if not, write to the Free Software\r
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+\r
+ A special exception to the GPL can be applied should you wish to distribute\r
+ a combined work that includes FreeRTOS.org, without being obliged to provide\r
+ the source code for any proprietary components. See the licensing section\r
+ of http://www.FreeRTOS.org for full details of how and when the exception\r
+ can be applied.\r
+\r
+ ***************************************************************************\r
+\r
+ Please ensure to read the configuration and relevant port sections of the \r
+ online documentation.\r
+\r
+ +++ http://www.FreeRTOS.org +++\r
+ Documentation, latest information, license and contact details. \r
+\r
+ +++ http://www.SafeRTOS.com +++\r
+ A version that is certified for use in safety critical systems.\r
+\r
+ +++ http://www.OpenRTOS.com +++\r
+ Commercial support, development, porting, licensing and training services.\r
+\r
+ ***************************************************************************\r
+*/\r
+\r
+/*\r
+Changes since V4.3.1:\r
+\r
+ + Added xTaskGetSchedulerState() function.\r
+*/\r
+\r
+#ifndef TASK_H\r
+#define TASK_H\r
+\r
+#include "portable.h"\r
+#include "list.h"\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+/*-----------------------------------------------------------\r
+ * MACROS AND DEFINITIONS\r
+ *----------------------------------------------------------*/\r
+\r
+#define tskKERNEL_VERSION_NUMBER "V4.7.2"\r
+\r
+/**\r
+ * task. h\r
+ *\r
+ * Type by which tasks are referenced. For example, a call to xTaskCreate\r
+ * returns (via a pointer parameter) an xTaskHandle variable that can then\r
+ * be used as a parameter to vTaskDelete to delete the task.\r
+ *\r
+ * \page xTaskHandle xTaskHandle\r
+ * \ingroup Tasks\r
+ */\r
+typedef void * xTaskHandle;\r
+\r
+/*\r
+ * Used internally only.\r
+ */\r
+typedef struct xTIME_OUT\r
+{\r
+ portBASE_TYPE xOverflowCount;\r
+ portTickType xTimeOnEntering;\r
+} xTimeOutType;\r
+\r
+/*\r
+ * Defines the priority used by the idle task. This must not be modified.\r
+ *\r
+ * \ingroup TaskUtils\r
+ */\r
+#define tskIDLE_PRIORITY ( ( unsigned portBASE_TYPE ) 0 )\r
+\r
+/**\r
+ * task. h\r
+ *\r
+ * Macro for forcing a context switch.\r
+ *\r
+ * \page taskYIELD taskYIELD\r
+ * \ingroup SchedulerControl\r
+ */\r
+#define taskYIELD() portYIELD()\r
+\r
+/**\r
+ * task. h\r
+ *\r
+ * Macro to mark the start of a critical code region. Preemptive context\r
+ * switches cannot occur when in a critical region.\r
+ *\r
+ * NOTE: This may alter the stack (depending on the portable implementation)\r
+ * so must be used with care!\r
+ *\r
+ * \page taskENTER_CRITICAL taskENTER_CRITICAL\r
+ * \ingroup SchedulerControl\r
+ */\r
+#define taskENTER_CRITICAL() portENTER_CRITICAL()\r
+\r
+/**\r
+ * task. h\r
+ *\r
+ * Macro to mark the end of a critical code region. Preemptive context\r
+ * switches cannot occur when in a critical region.\r
+ *\r
+ * NOTE: This may alter the stack (depending on the portable implementation)\r
+ * so must be used with care!\r
+ *\r
+ * \page taskEXIT_CRITICAL taskEXIT_CRITICAL\r
+ * \ingroup SchedulerControl\r
+ */\r
+#define taskEXIT_CRITICAL() portEXIT_CRITICAL()\r
+\r
+/**\r
+ * task. h\r
+ *\r
+ * Macro to disable all maskable interrupts.\r
+ *\r
+ * \page taskDISABLE_INTERRUPTS taskDISABLE_INTERRUPTS\r
+ * \ingroup SchedulerControl\r
+ */\r
+#define taskDISABLE_INTERRUPTS() portDISABLE_INTERRUPTS()\r
+\r
+/**\r
+ * task. h\r
+ *\r
+ * Macro to enable microcontroller interrupts.\r
+ *\r
+ * \page taskENABLE_INTERRUPTS taskENABLE_INTERRUPTS\r
+ * \ingroup SchedulerControl\r
+ */\r
+#define taskENABLE_INTERRUPTS() portENABLE_INTERRUPTS()\r
+\r
+/* Definitions returned by xTaskGetSchedulerState(). */\r
+#define taskSCHEDULER_NOT_STARTED 0\r
+#define taskSCHEDULER_RUNNING 1\r
+#define taskSCHEDULER_SUSPENDED 2\r
+\r
+/*-----------------------------------------------------------\r
+ * TASK CREATION API\r
+ *----------------------------------------------------------*/\r
+\r
+/**\r
+ * task. h\r
+ *<pre>\r
+ portBASE_TYPE xTaskCreate(\r
+ pdTASK_CODE pvTaskCode,\r
+ const portCHAR * const pcName,\r
+ unsigned portSHORT usStackDepth,\r
+ void *pvParameters,\r
+ unsigned portBASE_TYPE uxPriority,\r
+ xTaskHandle *pvCreatedTask\r
+ );</pre>\r
+ *\r
+ * Create a new task and add it to the list of tasks that are ready to run.\r
+ *\r
+ * @param pvTaskCode Pointer to the task entry function. Tasks\r
+ * must be implemented to never return (i.e. continuous loop).\r
+ *\r
+ * @param pcName A descriptive name for the task. This is mainly used to\r
+ * facilitate debugging. Max length defined by tskMAX_TASK_NAME_LEN - default\r
+ * is 16.\r
+ *\r
+ * @param usStackDepth The size of the task stack specified as the number of\r
+ * variables the stack can hold - not the number of bytes. For example, if\r
+ * the stack is 16 bits wide and usStackDepth is defined as 100, 200 bytes\r
+ * will be allocated for stack storage.\r
+ *\r
+ * @param pvParameters Pointer that will be used as the parameter for the task\r
+ * being created.\r
+ *\r
+ * @param uxPriority The priority at which the task should run.\r
+ *\r
+ * @param pvCreatedTask Used to pass back a handle by which the created task\r
+ * can be referenced.\r
+ *\r
+ * @return pdPASS if the task was successfully created and added to a ready\r
+ * list, otherwise an error code defined in the file errors. h\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ // Task to be created.\r
+ void vTaskCode( void * pvParameters )\r
+ {\r
+ for( ;; )\r
+ {\r
+ // Task code goes here.\r
+ }\r
+ }\r
+\r
+ // Function that creates a task.\r
+ void vOtherFunction( void )\r
+ {\r
+ unsigned char ucParameterToPass;\r
+ xTaskHandle xHandle;\r
+ \r
+ // Create the task, storing the handle.\r
+ xTaskCreate( vTaskCode, "NAME", STACK_SIZE, &ucParameterToPass, tskIDLE_PRIORITY, &xHandle );\r
+ \r
+ // Use the handle to delete the task.\r
+ vTaskDelete( xHandle );\r
+ }\r
+ </pre>\r
+ * \defgroup xTaskCreate xTaskCreate\r
+ * \ingroup Tasks\r
+ */\r
+signed portBASE_TYPE xTaskCreate( pdTASK_CODE pvTaskCode, const signed portCHAR * const pcName, unsigned portSHORT usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pvCreatedTask );\r
+\r
+/**\r
+ * task. h\r
+ * <pre>void vTaskDelete( xTaskHandle pxTask );</pre>\r
+ *\r
+ * INCLUDE_vTaskDelete must be defined as 1 for this function to be available.\r
+ * See the configuration section for more information.\r
+ *\r
+ * Remove a task from the RTOS real time kernels management. The task being\r
+ * deleted will be removed from all ready, blocked, suspended and event lists.\r
+ *\r
+ * NOTE: The idle task is responsible for freeing the kernel allocated\r
+ * memory from tasks that have been deleted. It is therefore important that\r
+ * the idle task is not starved of microcontroller processing time if your\r
+ * application makes any calls to vTaskDelete (). Memory allocated by the\r
+ * task code is not automatically freed, and should be freed before the task\r
+ * is deleted.\r
+ *\r
+ * See the demo application file death.c for sample code that utilises\r
+ * vTaskDelete ().\r
+ *\r
+ * @param pxTask The handle of the task to be deleted. Passing NULL will\r
+ * cause the calling task to be deleted.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ void vOtherFunction( void )\r
+ {\r
+ xTaskHandle xHandle;\r
+ \r
+ // Create the task, storing the handle.\r
+ xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );\r
+ \r
+ // Use the handle to delete the task.\r
+ vTaskDelete( xHandle );\r
+ }\r
+ </pre>\r
+ * \defgroup vTaskDelete vTaskDelete\r
+ * \ingroup Tasks\r
+ */\r
+void vTaskDelete( xTaskHandle pxTask );\r
+\r
+\r
+/*-----------------------------------------------------------\r
+ * TASK CONTROL API\r
+ *----------------------------------------------------------*/\r
+\r
+/**\r
+ * task. h\r
+ * <pre>void vTaskDelay( portTickType xTicksToDelay );</pre>\r
+ *\r
+ * Delay a task for a given number of ticks. The actual time that the\r
+ * task remains blocked depends on the tick rate. The constant\r
+ * portTICK_RATE_MS can be used to calculate real time from the tick\r
+ * rate - with the resolution of one tick period.\r
+ *\r
+ * INCLUDE_vTaskDelay must be defined as 1 for this function to be available.\r
+ * See the configuration section for more information.\r
+ *\r
+ * @param xTicksToDelay The amount of time, in tick periods, that\r
+ * the calling task should block.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ // Wait 10 ticks before performing an action.\r
+ // NOTE:\r
+ // This is for demonstration only and would be better achieved\r
+ // using vTaskDelayUntil ().\r
+ void vTaskFunction( void * pvParameters )\r
+ {\r
+ portTickType xDelay, xNextTime;\r
+\r
+ // Calc the time at which we want to perform the action\r
+ // next.\r
+ xNextTime = xTaskGetTickCount () + ( portTickType ) 10;\r
+\r
+ for( ;; )\r
+ {\r
+ xDelay = xNextTime - xTaskGetTickCount ();\r
+ xNextTime += ( portTickType ) 10;\r
+\r
+ // Guard against overflow\r
+ if( xDelay <= ( portTickType ) 10 )\r
+ {\r
+ vTaskDelay( xDelay );\r
+ }\r
+\r
+ // Perform action here.\r
+ }\r
+ }\r
+ </pre>\r
+ * \defgroup vTaskDelay vTaskDelay\r
+ * \ingroup TaskCtrl\r
+ */\r
+void vTaskDelay( portTickType xTicksToDelay );\r
+\r
+/**\r
+ * task. h\r
+ * <pre>void vTaskDelayUntil( portTickType *pxPreviousWakeTime, portTickType xTimeIncrement );</pre>\r
+ *\r
+ * INCLUDE_vTaskDelayUntil must be defined as 1 for this function to be available.\r
+ * See the configuration section for more information.\r
+ *\r
+ * Delay a task until a specified time. This function can be used by cyclical\r
+ * tasks to ensure a constant execution frequency.\r
+ *\r
+ * This function differs from vTaskDelay () in one important aspect: vTaskDelay () will\r
+ * cause a task to block for the specified number of ticks from the time vTaskDelay () is\r
+ * called. It is therefore difficult to use vTaskDelay () by itself to generate a fixed\r
+ * execution frequency as the time between a task starting to execute and that task\r
+ * calling vTaskDelay () may not be fixed [the task may take a different path though the\r
+ * code between calls, or may get interrupted or preempted a different number of times\r
+ * each time it executes].\r
+ *\r
+ * Whereas vTaskDelay () specifies a wake time relative to the time at which the function\r
+ * is called, vTaskDelayUntil () specifies the absolute (exact) time at which it wishes to\r
+ * unblock.\r
+ *\r
+ * The constant portTICK_RATE_MS can be used to calculate real time from the tick\r
+ * rate - with the resolution of one tick period.\r
+ *\r
+ * @param pxPreviousWakeTime Pointer to a variable that holds the time at which the\r
+ * task was last unblocked. The variable must be initialised with the current time\r
+ * prior to its first use (see the example below). Following this the variable is\r
+ * automatically updated within vTaskDelayUntil ().\r
+ *\r
+ * @param xTimeIncrement The cycle time period. The task will be unblocked at\r
+ * time *pxPreviousWakeTime + xTimeIncrement. Calling vTaskDelayUntil with the\r
+ * same xTimeIncrement parameter value will cause the task to execute with\r
+ * a fixed interface period.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ // Perform an action every 10 ticks.\r
+ void vTaskFunction( void * pvParameters )\r
+ {\r
+ portTickType xLastWakeTime;\r
+ const portTickType xFrequency = 10;\r
+\r
+ // Initialise the xLastWakeTime variable with the current time.\r
+ xLastWakeTime = xTaskGetTickCount ();\r
+ for( ;; )\r
+ {\r
+ // Wait for the next cycle.\r
+ vTaskDelayUntil( &xLastWakeTime, xFrequency );\r
+\r
+ // Perform action here.\r
+ }\r
+ }\r
+ </pre>\r
+ * \defgroup vTaskDelayUntil vTaskDelayUntil\r
+ * \ingroup TaskCtrl\r
+ */\r
+void vTaskDelayUntil( portTickType * const pxPreviousWakeTime, portTickType xTimeIncrement );\r
+\r
+/**\r
+ * task. h\r
+ * <pre>unsigned portBASE_TYPE uxTaskPriorityGet( xTaskHandle pxTask );</pre>\r
+ *\r
+ * INCLUDE_xTaskPriorityGet must be defined as 1 for this function to be available.\r
+ * See the configuration section for more information.\r
+ *\r
+ * Obtain the priority of any task.\r
+ *\r
+ * @param pxTask Handle of the task to be queried. Passing a NULL\r
+ * handle results in the priority of the calling task being returned.\r
+ *\r
+ * @return The priority of pxTask.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ void vAFunction( void )\r
+ {\r
+ xTaskHandle xHandle;\r
+ \r
+ // Create a task, storing the handle.\r
+ xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );\r
+ \r
+ // ...\r
+\r
+ // Use the handle to obtain the priority of the created task.\r
+ // It was created with tskIDLE_PRIORITY, but may have changed\r
+ // it itself.\r
+ if( uxTaskPriorityGet( xHandle ) != tskIDLE_PRIORITY )\r
+ {\r
+ // The task has changed it's priority.\r
+ }\r
+\r
+ // ...\r
+\r
+ // Is our priority higher than the created task?\r
+ if( uxTaskPriorityGet( xHandle ) < uxTaskPriorityGet( NULL ) )\r
+ {\r
+ // Our priority (obtained using NULL handle) is higher.\r
+ }\r
+ }\r
+ </pre>\r
+ * \defgroup uxTaskPriorityGet uxTaskPriorityGet\r
+ * \ingroup TaskCtrl\r
+ */\r
+unsigned portBASE_TYPE uxTaskPriorityGet( xTaskHandle pxTask );\r
+\r
+/**\r
+ * task. h\r
+ * <pre>void vTaskPrioritySet( xTaskHandle pxTask, unsigned portBASE_TYPE uxNewPriority );</pre>\r
+ *\r
+ * INCLUDE_vTaskPrioritySet must be defined as 1 for this function to be available.\r
+ * See the configuration section for more information.\r
+ *\r
+ * Set the priority of any task.\r
+ *\r
+ * A context switch will occur before the function returns if the priority\r
+ * being set is higher than the currently executing task.\r
+ *\r
+ * @param pxTask Handle to the task for which the priority is being set.\r
+ * Passing a NULL handle results in the priority of the calling task being set.\r
+ *\r
+ * @param uxNewPriority The priority to which the task will be set.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ void vAFunction( void )\r
+ {\r
+ xTaskHandle xHandle;\r
+ \r
+ // Create a task, storing the handle.\r
+ xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );\r
+\r
+ // ...\r
+\r
+ // Use the handle to raise the priority of the created task.\r
+ vTaskPrioritySet( xHandle, tskIDLE_PRIORITY + 1 );\r
+\r
+ // ...\r
+\r
+ // Use a NULL handle to raise our priority to the same value.\r
+ vTaskPrioritySet( NULL, tskIDLE_PRIORITY + 1 );\r
+ }\r
+ </pre>\r
+ * \defgroup vTaskPrioritySet vTaskPrioritySet\r
+ * \ingroup TaskCtrl\r
+ */\r
+void vTaskPrioritySet( xTaskHandle pxTask, unsigned portBASE_TYPE uxNewPriority );\r
+\r
+/**\r
+ * task. h\r
+ * <pre>void vTaskSuspend( xTaskHandle pxTaskToSuspend );</pre>\r
+ *\r
+ * INCLUDE_vTaskSuspend must be defined as 1 for this function to be available.\r
+ * See the configuration section for more information.\r
+ *\r
+ * Suspend any task. When suspended a task will never get any microcontroller\r
+ * processing time, no matter what its priority.\r
+ *\r
+ * Calls to vTaskSuspend are not accumulative -\r
+ * i.e. calling vTaskSuspend () twice on the same task still only requires one\r
+ * call to vTaskResume () to ready the suspended task.\r
+ *\r
+ * @param pxTaskToSuspend Handle to the task being suspended. Passing a NULL\r
+ * handle will cause the calling task to be suspended.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ void vAFunction( void )\r
+ {\r
+ xTaskHandle xHandle;\r
+ \r
+ // Create a task, storing the handle.\r
+ xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );\r
+ \r
+ // ...\r
+\r
+ // Use the handle to suspend the created task.\r
+ vTaskSuspend( xHandle );\r
+\r
+ // ...\r
+ \r
+ // The created task will not run during this period, unless\r
+ // another task calls vTaskResume( xHandle ).\r
+ \r
+ //...\r
+ \r
+\r
+ // Suspend ourselves.\r
+ vTaskSuspend( NULL );\r
+\r
+ // We cannot get here unless another task calls vTaskResume\r
+ // with our handle as the parameter.\r
+ }\r
+ </pre>\r
+ * \defgroup vTaskSuspend vTaskSuspend\r
+ * \ingroup TaskCtrl\r
+ */\r
+void vTaskSuspend( xTaskHandle pxTaskToSuspend );\r
+\r
+/**\r
+ * task. h\r
+ * <pre>void vTaskResume( xTaskHandle pxTaskToResume );</pre>\r
+ *\r
+ * INCLUDE_vTaskSuspend must be defined as 1 for this function to be available.\r
+ * See the configuration section for more information.\r
+ *\r
+ * Resumes a suspended task.\r
+ *\r
+ * A task that has been suspended by one of more calls to vTaskSuspend ()\r
+ * will be made available for running again by a single call to\r
+ * vTaskResume ().\r
+ *\r
+ * @param pxTaskToResume Handle to the task being readied.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ void vAFunction( void )\r
+ {\r
+ xTaskHandle xHandle;\r
+ \r
+ // Create a task, storing the handle.\r
+ xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );\r
+ \r
+ // ...\r
+\r
+ // Use the handle to suspend the created task.\r
+ vTaskSuspend( xHandle );\r
+\r
+ // ...\r
+ \r
+ // The created task will not run during this period, unless\r
+ // another task calls vTaskResume( xHandle ).\r
+ \r
+ //...\r
+ \r
+\r
+ // Resume the suspended task ourselves.\r
+ vTaskResume( xHandle );\r
+\r
+ // The created task will once again get microcontroller processing\r
+ // time in accordance with it priority within the system.\r
+ }\r
+ </pre>\r
+ * \defgroup vTaskResume vTaskResume\r
+ * \ingroup TaskCtrl\r
+ */\r
+void vTaskResume( xTaskHandle pxTaskToResume );\r
+\r
+/**\r
+ * task. h\r
+ * <pre>void xTaskResumeFromISR( xTaskHandle pxTaskToResume );</pre>\r
+ *\r
+ * INCLUDE_xTaskResumeFromISR must be defined as 1 for this function to be \r
+ * available. See the configuration section for more information.\r
+ *\r
+ * An implementation of vTaskResume() that can be called from within an ISR.\r
+ *\r
+ * A task that has been suspended by one of more calls to vTaskSuspend ()\r
+ * will be made available for running again by a single call to\r
+ * xTaskResumeFromISR ().\r
+ *\r
+ * @param pxTaskToResume Handle to the task being readied.\r
+ *\r
+ * \defgroup vTaskResumeFromISR vTaskResumeFromISR\r
+ * \ingroup TaskCtrl\r
+ */\r
+portBASE_TYPE xTaskResumeFromISR( xTaskHandle pxTaskToResume );\r
+\r
+/*-----------------------------------------------------------\r
+ * SCHEDULER CONTROL\r
+ *----------------------------------------------------------*/\r
+\r
+/**\r
+ * task. h\r
+ * <pre>void vTaskStartScheduler( void );</pre>\r
+ *\r
+ * Starts the real time kernel tick processing. After calling the kernel\r
+ * has control over which tasks are executed and when. This function\r
+ * does not return until an executing task calls vTaskEndScheduler ().\r
+ *\r
+ * At least one task should be created via a call to xTaskCreate ()\r
+ * before calling vTaskStartScheduler (). The idle task is created\r
+ * automatically when the first application task is created.\r
+ *\r
+ * See the demo application file main.c for an example of creating\r
+ * tasks and starting the kernel.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ void vAFunction( void )\r
+ {\r
+ // Create at least one task before starting the kernel.\r
+ xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );\r
+\r
+ // Start the real time kernel with preemption.\r
+ vTaskStartScheduler ();\r
+\r
+ // Will not get here unless a task calls vTaskEndScheduler ()\r
+ }\r
+ </pre>\r
+ *\r
+ * \defgroup vTaskStartScheduler vTaskStartScheduler\r
+ * \ingroup SchedulerControl\r
+ */\r
+void vTaskStartScheduler( void );\r
+\r
+/**\r
+ * task. h\r
+ * <pre>void vTaskEndScheduler( void );</pre>\r
+ *\r
+ * Stops the real time kernel tick. All created tasks will be automatically\r
+ * deleted and multitasking (either preemptive or cooperative) will\r
+ * stop. Execution then resumes from the point where vTaskStartScheduler ()\r
+ * was called, as if vTaskStartScheduler () had just returned.\r
+ *\r
+ * See the demo application file main. c in the demo/PC directory for an\r
+ * example that uses vTaskEndScheduler ().\r
+ *\r
+ * vTaskEndScheduler () requires an exit function to be defined within the\r
+ * portable layer (see vPortEndScheduler () in port. c for the PC port). This\r
+ * performs hardware specific operations such as stopping the kernel tick.\r
+ *\r
+ * vTaskEndScheduler () will cause all of the resources allocated by the\r
+ * kernel to be freed - but will not free resources allocated by application\r
+ * tasks.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ void vTaskCode( void * pvParameters )\r
+ {\r
+ for( ;; )\r
+ {\r
+ // Task code goes here.\r
+\r
+ // At some point we want to end the real time kernel processing\r
+ // so call ...\r
+ vTaskEndScheduler ();\r
+ }\r
+ }\r
+\r
+ void vAFunction( void )\r
+ {\r
+ // Create at least one task before starting the kernel.\r
+ xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );\r
+\r
+ // Start the real time kernel with preemption.\r
+ vTaskStartScheduler ();\r
+\r
+ // Will only get here when the vTaskCode () task has called\r
+ // vTaskEndScheduler (). When we get here we are back to single task\r
+ // execution.\r
+ }\r
+ </pre>\r
+ *\r
+ * \defgroup vTaskEndScheduler vTaskEndScheduler\r
+ * \ingroup SchedulerControl\r
+ */\r
+void vTaskEndScheduler( void );\r
+\r
+/**\r
+ * task. h\r
+ * <pre>void vTaskSuspendAll( void );</pre>\r
+ *\r
+ * Suspends all real time kernel activity while keeping interrupts (including the\r
+ * kernel tick) enabled.\r
+ *\r
+ * After calling vTaskSuspendAll () the calling task will continue to execute\r
+ * without risk of being swapped out until a call to xTaskResumeAll () has been\r
+ * made.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ void vTask1( void * pvParameters )\r
+ {\r
+ for( ;; )\r
+ {\r
+ // Task code goes here.\r
+\r
+ // ...\r
+\r
+ // At some point the task wants to perform a long operation during\r
+ // which it does not want to get swapped out. It cannot use\r
+ // taskENTER_CRITICAL ()/taskEXIT_CRITICAL () as the length of the\r
+ // operation may cause interrupts to be missed - including the\r
+ // ticks.\r
+\r
+ // Prevent the real time kernel swapping out the task.\r
+ vTaskSuspendAll ();\r
+\r
+ // Perform the operation here. There is no need to use critical\r
+ // sections as we have all the microcontroller processing time.\r
+ // During this time interrupts will still operate and the kernel\r
+ // tick count will be maintained.\r
+\r
+ // ...\r
+\r
+ // The operation is complete. Restart the kernel.\r
+ xTaskResumeAll ();\r
+ }\r
+ }\r
+ </pre>\r
+ * \defgroup vTaskSuspendAll vTaskSuspendAll\r
+ * \ingroup SchedulerControl\r
+ */\r
+void vTaskSuspendAll( void );\r
+\r
+/**\r
+ * task. h\r
+ * <pre>portCHAR xTaskResumeAll( void );</pre>\r
+ *\r
+ * Resumes real time kernel activity following a call to vTaskSuspendAll ().\r
+ * After a call to vTaskSuspendAll () the kernel will take control of which\r
+ * task is executing at any time.\r
+ *\r
+ * @return If resuming the scheduler caused a context switch then pdTRUE is\r
+ * returned, otherwise pdFALSE is returned.\r
+ *\r
+ * Example usage:\r
+ <pre>\r
+ void vTask1( void * pvParameters )\r
+ {\r
+ for( ;; )\r
+ {\r
+ // Task code goes here.\r
+\r
+ // ...\r
+\r
+ // At some point the task wants to perform a long operation during\r
+ // which it does not want to get swapped out. It cannot use\r
+ // taskENTER_CRITICAL ()/taskEXIT_CRITICAL () as the length of the\r
+ // operation may cause interrupts to be missed - including the\r
+ // ticks.\r
+\r
+ // Prevent the real time kernel swapping out the task.\r
+ vTaskSuspendAll ();\r
+\r
+ // Perform the operation here. There is no need to use critical\r
+ // sections as we have all the microcontroller processing time.\r
+ // During this time interrupts will still operate and the real\r
+ // time kernel tick count will be maintained.\r
+\r
+ // ...\r
+\r
+ // The operation is complete. Restart the kernel. We want to force\r
+ // a context switch - but there is no point if resuming the scheduler\r
+ // caused a context switch already.\r
+ if( !xTaskResumeAll () )\r
+ {\r
+ taskYIELD ();\r
+ }\r
+ }\r
+ }\r
+ </pre>\r
+ * \defgroup xTaskResumeAll xTaskResumeAll\r
+ * \ingroup SchedulerControl\r
+ */\r
+signed portBASE_TYPE xTaskResumeAll( void );\r
+\r
+\r
+/*-----------------------------------------------------------\r
+ * TASK UTILITIES\r
+ *----------------------------------------------------------*/\r
+\r
+/**\r
+ * task. h\r
+ * <PRE>volatile portTickType xTaskGetTickCount( void );</PRE>\r
+ *\r
+ * @return The count of ticks since vTaskStartScheduler was called.\r
+ *\r
+ * \page xTaskGetTickCount xTaskGetTickCount\r
+ * \ingroup TaskUtils\r
+ */\r
+portTickType xTaskGetTickCount( void );\r
+\r
+/**\r
+ * task. h\r
+ * <PRE>unsigned portSHORT uxTaskGetNumberOfTasks( void );</PRE>\r
+ *\r
+ * @return The number of tasks that the real time kernel is currently managing.\r
+ * This includes all ready, blocked and suspended tasks. A task that\r
+ * has been deleted but not yet freed by the idle task will also be\r
+ * included in the count.\r
+ *\r
+ * \page uxTaskGetNumberOfTasks uxTaskGetNumberOfTasks\r
+ * \ingroup TaskUtils\r
+ */\r
+unsigned portBASE_TYPE uxTaskGetNumberOfTasks( void );\r
+\r
+/**\r
+ * task. h\r
+ * <PRE>void vTaskList( portCHAR *pcWriteBuffer );</PRE>\r
+ *\r
+ * configUSE_TRACE_FACILITY, INCLUDE_vTaskDelete and INCLUDE_vTaskSuspend\r
+ * must all be defined as 1 for this function to be available.\r
+ * See the configuration section for more information.\r
+ *\r
+ * NOTE: This function will disable interrupts for its duration. It is\r
+ * not intended for normal application runtime use but as a debug aid.\r
+ *\r
+ * Lists all the current tasks, along with their current state and stack\r
+ * usage high water mark.\r
+ *\r
+ * Tasks are reported as blocked ('B'), ready ('R'), deleted ('D') or\r
+ * suspended ('S').\r
+ *\r
+ * @param pcWriteBuffer A buffer into which the above mentioned details\r
+ * will be written, in ascii form. This buffer is assumed to be large\r
+ * enough to contain the generated report. Approximately 40 bytes per\r
+ * task should be sufficient.\r
+ *\r
+ * \page vTaskList vTaskList\r
+ * \ingroup TaskUtils\r
+ */\r
+void vTaskList( signed portCHAR *pcWriteBuffer );\r
+\r
+/**\r
+ * task. h\r
+ * <PRE>void vTaskStartTrace( portCHAR * pcBuffer, unsigned portBASE_TYPE uxBufferSize );</PRE>\r
+ *\r
+ * Starts a real time kernel activity trace. The trace logs the identity of\r
+ * which task is running when.\r
+ *\r
+ * The trace file is stored in binary format. A separate DOS utility called\r
+ * convtrce.exe is used to convert this into a tab delimited text file which\r
+ * can be viewed and plotted in a spread sheet.\r
+ *\r
+ * @param pcBuffer The buffer into which the trace will be written.\r
+ *\r
+ * @param ulBufferSize The size of pcBuffer in bytes. The trace will continue\r
+ * until either the buffer in full, or ulTaskEndTrace () is called.\r
+ *\r
+ * \page vTaskStartTrace vTaskStartTrace\r
+ * \ingroup TaskUtils\r
+ */\r
+void vTaskStartTrace( signed portCHAR * pcBuffer, unsigned portLONG ulBufferSize );\r
+\r
+/**\r
+ * task. h\r
+ * <PRE>unsigned portLONG ulTaskEndTrace( void );</PRE>\r
+ *\r
+ * Stops a kernel activity trace. See vTaskStartTrace ().\r
+ *\r
+ * @return The number of bytes that have been written into the trace buffer.\r
+ *\r
+ * \page usTaskEndTrace usTaskEndTrace\r
+ * \ingroup TaskUtils\r
+ */\r
+unsigned portLONG ulTaskEndTrace( void );\r
+\r
+\r
+/*-----------------------------------------------------------\r
+ * SCHEDULER INTERNALS AVAILABLE FOR PORTING PURPOSES\r
+ *----------------------------------------------------------*/\r
+\r
+/*\r
+ * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE. IT IS ONLY\r
+ * INTENDED FOR USE WHEN IMPLEMENTING A PORT OF THE SCHEDULER AND IS\r
+ * AN INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER.\r
+ *\r
+ * Called from the real time kernel tick (either preemptive or cooperative),\r
+ * this increments the tick count and checks if any tasks that are blocked\r
+ * for a finite period required removing from a blocked list and placing on\r
+ * a ready list.\r
+ */\r
+inline void vTaskIncrementTick( void );\r
+\r
+/*\r
+ * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE. IT IS AN\r
+ * INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER.\r
+ *\r
+ * THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED.\r
+ *\r
+ * Removes the calling task from the ready list and places it both\r
+ * on the list of tasks waiting for a particular event, and the\r
+ * list of delayed tasks. The task will be removed from both lists\r
+ * and replaced on the ready list should either the event occur (and\r
+ * there be no higher priority tasks waiting on the same event) or\r
+ * the delay period expires.\r
+ *\r
+ * @param pxEventList The list containing tasks that are blocked waiting\r
+ * for the event to occur.\r
+ *\r
+ * @param xTicksToWait The maximum amount of time that the task should wait\r
+ * for the event to occur. This is specified in kernel ticks,the constant\r
+ * portTICK_RATE_MS can be used to convert kernel ticks into a real time\r
+ * period.\r
+ */\r
+void vTaskPlaceOnEventList( const xList * const pxEventList, portTickType xTicksToWait );\r
+\r
+/*\r
+ * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE. IT IS AN\r
+ * INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER.\r
+ *\r
+ * THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED.\r
+ *\r
+ * Removes a task from both the specified event list and the list of blocked\r
+ * tasks, and places it on a ready queue.\r
+ *\r
+ * xTaskRemoveFromEventList () will be called if either an event occurs to\r
+ * unblock a task, or the block timeout period expires.\r
+ *\r
+ * @return pdTRUE if the task being removed has a higher priority than the task\r
+ * making the call, otherwise pdFALSE.\r
+ */\r
+signed portBASE_TYPE xTaskRemoveFromEventList( const xList * const pxEventList );\r
+\r
+/*\r
+ * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE. IT IS AN\r
+ * INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER.\r
+ *\r
+ * INCLUDE_vTaskCleanUpResources and INCLUDE_vTaskSuspend must be defined as 1\r
+ * for this function to be available.\r
+ * See the configuration section for more information.\r
+ *\r
+ * Empties the ready and delayed queues of task control blocks, freeing the\r
+ * memory allocated for the task control block and task stacks as it goes.\r
+ */\r
+void vTaskCleanUpResources( void );\r
+\r
+/*\r
+ * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE. IT IS ONLY\r
+ * INTENDED FOR USE WHEN IMPLEMENTING A PORT OF THE SCHEDULER AND IS\r
+ * AN INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER.\r
+ *\r
+ * Sets the pointer to the current TCB to the TCB of the highest priority task\r
+ * that is ready to run.\r
+ */\r
+inline void vTaskSwitchContext( void );\r
+\r
+/*\r
+ * Return the handle of the calling task.\r
+ */\r
+xTaskHandle xTaskGetCurrentTaskHandle( void );\r
+\r
+/*\r
+ * Capture the current time status for future reference.\r
+ */\r
+void vTaskSetTimeOutState( xTimeOutType * const pxTimeOut );\r
+\r
+/*\r
+ * Compare the time status now with that previously captured to see if the\r
+ * timeout has expired.\r
+ */\r
+portBASE_TYPE xTaskCheckForTimeOut( xTimeOutType * const pxTimeOut, portTickType * const pxTicksToWait );\r
+\r
+/*\r
+ * Shortcut used by the queue implementation to prevent unnecessary call to\r
+ * taskYIELD();\r
+ */\r
+void vTaskMissedYield( void );\r
+\r
+/*\r
+ * Returns the scheduler state as taskSCHEDULER_RUNNING,\r
+ * taskSCHEDULER_NOT_STARTED or taskSCHEDULER_SUSPENDED.\r
+ */\r
+portBASE_TYPE xTaskGetSchedulerState( void );\r
+\r
+/*\r
+ * Raises the priority of the mutex holder to that of the calling task should\r
+ * the mutex holder have a priority less than the calling task.\r
+ */\r
+void vTaskPriorityInherit( xTaskHandle * const pxMutexHolder );\r
+\r
+/*\r
+ * Set the priority of a task back to its proper priority in the case that it\r
+ * inherited a higher priority while it was holding a semaphore.\r
+ */\r
+void vTaskPriorityDisinherit( xTaskHandle * const pxMutexHolder );\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+#endif /* TASK_H */\r
+\r
+\r
+\r
--- /dev/null
+/*\r
+ FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.\r
+\r
+ This file is part of the FreeRTOS.org distribution.\r
+\r
+ FreeRTOS.org is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ FreeRTOS.org is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with FreeRTOS.org; if not, write to the Free Software\r
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+\r
+ A special exception to the GPL can be applied should you wish to distribute\r
+ a combined work that includes FreeRTOS.org, without being obliged to provide\r
+ the source code for any proprietary components. See the licensing section\r
+ of http://www.FreeRTOS.org for full details of how and when the exception\r
+ can be applied.\r
+\r
+ ***************************************************************************\r
+\r
+ Please ensure to read the configuration and relevant port sections of the \r
+ online documentation.\r
+\r
+ +++ http://www.FreeRTOS.org +++\r
+ Documentation, latest information, license and contact details. \r
+\r
+ +++ http://www.SafeRTOS.com +++\r
+ A version that is certified for use in safety critical systems.\r
+\r
+ +++ http://www.OpenRTOS.com +++\r
+ Commercial support, development, porting, licensing and training services.\r
+\r
+ ***************************************************************************\r
+*/\r
+\r
+/*\r
+Changes from V1.2.0\r
+\r
+ + Removed the volatile modifier from the function parameters. This was\r
+ only ever included to prevent compiler warnings. Now warnings are\r
+ removed by casting parameters where the calls are made.\r
+\r
+ + prvListGetOwnerOfNextEntry() and prvListGetOwnerOfHeadEntry() have been\r
+ removed from the c file and added as macros to the h file.\r
+\r
+ + uxNumberOfItems has been added to the list structure. This removes the\r
+ need for a pointer comparison when checking if a list is empty, and so\r
+ is slightly faster.\r
+\r
+ + Removed the NULL check in vListRemove(). This makes the call faster but\r
+ necessitates any application code utilising the list implementation to\r
+ ensure NULL pointers are not passed.\r
+\r
+Changes from V2.0.0\r
+\r
+ + Double linked the lists to allow faster removal item removal.\r
+\r
+Changes from V2.6.1\r
+\r
+ + Make use of the new portBASE_TYPE definition where ever appropriate.\r
+\r
+Changes from V3.0.0\r
+\r
+ + API changes as described on the FreeRTOS.org WEB site.\r
+\r
+Changes from V3.2.4\r
+\r
+ + Removed the pxHead member of the xList structure. This always pointed\r
+ to the same place so has been removed to free a few bytes of RAM.\r
+\r
+ + Introduced the xMiniListItem structure that does not include the \r
+ xListItem members that are not required by the xListEnd member of a list.\r
+ Again this was done to reduce RAM usage.\r
+\r
+ + Changed the volatile definitions of some structure members to clean up\r
+ the code where the list structures are used.\r
+\r
+Changes from V4.0.4\r
+\r
+ + Optimised vListInsert() in the case when the wake time is the maximum \r
+ tick count value.\r
+*/\r
+\r
+#include <stdlib.h>\r
+#include "FreeRTOS.h"\r
+#include "list.h"\r
+\r
+/*-----------------------------------------------------------\r
+ * PUBLIC LIST API documented in list.h\r
+ *----------------------------------------------------------*/\r
+\r
+void vListInitialise( xList *pxList )\r
+{\r
+ /* The list structure contains a list item which is used to mark the\r
+ end of the list. To initialise the list the list end is inserted\r
+ as the only list entry. */\r
+ pxList->pxIndex = ( xListItem * ) &( pxList->xListEnd );\r
+\r
+ /* The list end value is the highest possible value in the list to\r
+ ensure it remains at the end of the list. */\r
+ pxList->xListEnd.xItemValue = portMAX_DELAY;\r
+\r
+ /* The list end next and previous pointers point to itself so we know\r
+ when the list is empty. */\r
+ pxList->xListEnd.pxNext = ( xListItem * ) &( pxList->xListEnd );\r
+ pxList->xListEnd.pxPrevious = ( xListItem * ) &( pxList->xListEnd );\r
+\r
+ pxList->uxNumberOfItems = 0;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vListInitialiseItem( xListItem *pxItem )\r
+{\r
+ /* Make sure the list item is not recorded as being on a list. */\r
+ pxItem->pvContainer = NULL;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vListInsertEnd( xList *pxList, xListItem *pxNewListItem )\r
+{\r
+volatile xListItem * pxIndex;\r
+\r
+ /* Insert a new list item into pxList, but rather than sort the list,\r
+ makes the new list item the last item to be removed by a call to\r
+ pvListGetOwnerOfNextEntry. This means it has to be the item pointed to by\r
+ the pxIndex member. */\r
+ pxIndex = pxList->pxIndex;\r
+\r
+ pxNewListItem->pxNext = pxIndex->pxNext;\r
+ pxNewListItem->pxPrevious = pxList->pxIndex;\r
+ pxIndex->pxNext->pxPrevious = ( volatile xListItem * ) pxNewListItem;\r
+ pxIndex->pxNext = ( volatile xListItem * ) pxNewListItem;\r
+ pxList->pxIndex = ( volatile xListItem * ) pxNewListItem;\r
+\r
+ /* Remember which list the item is in. */\r
+ pxNewListItem->pvContainer = ( void * ) pxList;\r
+\r
+ ( pxList->uxNumberOfItems )++;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vListInsert( xList *pxList, xListItem *pxNewListItem )\r
+{\r
+volatile xListItem *pxIterator;\r
+portTickType xValueOfInsertion;\r
+\r
+ /* Insert the new list item into the list, sorted in ulListItem order. */\r
+ xValueOfInsertion = pxNewListItem->xItemValue;\r
+\r
+ /* If the list already contains a list item with the same item value then\r
+ the new list item should be placed after it. This ensures that TCB's which\r
+ are stored in ready lists (all of which have the same ulListItem value)\r
+ get an equal share of the CPU. However, if the xItemValue is the same as \r
+ the back marker the iteration loop below will not end. This means we need\r
+ to guard against this by checking the value first and modifying the \r
+ algorithm slightly if necessary. */\r
+ if( xValueOfInsertion == portMAX_DELAY )\r
+ {\r
+ pxIterator = pxList->xListEnd.pxPrevious;\r
+ }\r
+ else\r
+ {\r
+ for( pxIterator = ( xListItem * ) &( pxList->xListEnd ); pxIterator->pxNext->xItemValue <= xValueOfInsertion; pxIterator = pxIterator->pxNext )\r
+ {\r
+ /* There is nothing to do here, we are just iterating to the\r
+ wanted insertion position. */\r
+ }\r
+ }\r
+\r
+ pxNewListItem->pxNext = pxIterator->pxNext;\r
+ pxNewListItem->pxNext->pxPrevious = ( volatile xListItem * ) pxNewListItem;\r
+ pxNewListItem->pxPrevious = pxIterator;\r
+ pxIterator->pxNext = ( volatile xListItem * ) pxNewListItem;\r
+\r
+ /* Remember which list the item is in. This allows fast removal of the\r
+ item later. */\r
+ pxNewListItem->pvContainer = ( void * ) pxList;\r
+\r
+ ( pxList->uxNumberOfItems )++;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vListRemove( xListItem *pxItemToRemove )\r
+{\r
+xList * pxList;\r
+\r
+ pxItemToRemove->pxNext->pxPrevious = pxItemToRemove->pxPrevious;\r
+ pxItemToRemove->pxPrevious->pxNext = pxItemToRemove->pxNext;\r
+ \r
+ /* The list item knows which list it is in. Obtain the list from the list\r
+ item. */\r
+ pxList = ( xList * ) pxItemToRemove->pvContainer;\r
+\r
+ /* Make sure the index is left pointing to a valid item. */\r
+ if( pxList->pxIndex == pxItemToRemove )\r
+ {\r
+ pxList->pxIndex = pxItemToRemove->pxPrevious;\r
+ }\r
+\r
+ pxItemToRemove->pvContainer = NULL;\r
+ ( pxList->uxNumberOfItems )--;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
--- /dev/null
+/*\r
+ FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.\r
+\r
+ This file is part of the FreeRTOS.org distribution.\r
+\r
+ FreeRTOS.org is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ FreeRTOS.org is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with FreeRTOS.org; if not, write to the Free Software\r
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+\r
+ A special exception to the GPL can be applied should you wish to distribute\r
+ a combined work that includes FreeRTOS.org, without being obliged to provide\r
+ the source code for any proprietary components. See the licensing section \r
+ of http://www.FreeRTOS.org for full details of how and when the exception\r
+ can be applied.\r
+\r
+ ***************************************************************************\r
+\r
+ Please ensure to read the configuration and relevant port sections of the \r
+ online documentation.\r
+\r
+ +++ http://www.FreeRTOS.org +++\r
+ Documentation, latest information, license and contact details. \r
+\r
+ +++ http://www.SafeRTOS.com +++\r
+ A version that is certified for use in safety critical systems.\r
+\r
+ +++ http://www.OpenRTOS.com +++\r
+ Commercial support, development, porting, licensing and training services.\r
+\r
+ ***************************************************************************\r
+*/\r
+\r
+/*\r
+ Changes from V4.2.1\r
+\r
+ + Introduced the configKERNEL_INTERRUPT_PRIORITY definition.\r
+*/\r
+\r
+/*-----------------------------------------------------------\r
+ * Implementation of functions defined in portable.h for the PIC24 port.\r
+ *----------------------------------------------------------*/\r
+\r
+/* Scheduler include files. */\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+\r
+/* Hardware specifics. */\r
+#define portBIT_SET 1\r
+#define portTIMER_PRESCALE 8\r
+#define portINITIAL_SR 0\r
+\r
+/* Defined for backward compatability with project created prior to \r
+FreeRTOS.org V4.3.0. */\r
+#ifndef configKERNEL_INTERRUPT_PRIORITY\r
+ #define configKERNEL_INTERRUPT_PRIORITY 1\r
+#endif\r
+\r
+/* The program counter is only 23 bits. */\r
+#define portUNUSED_PR_BITS 0x7f\r
+\r
+/* Records the nesting depth of calls to portENTER_CRITICAL(). */\r
+unsigned portBASE_TYPE uxCriticalNesting = 0xef;\r
+\r
+#if configKERNEL_INTERRUPT_PRIORITY != 1\r
+ #error If configKERNEL_INTERRUPT_PRIORITY is not 1 then the #32 in the following macros needs changing to equal the portINTERRUPT_BITS value, which is ( configKERNEL_INTERRUPT_PRIORITY << 5 )\r
+#endif\r
+\r
+\r
+#define portRESTORE_CONTEXT() \\r
+ asm volatile( "MOV _pxCurrentTCB, W0 \n" /* Restore the stack pointer for the task. */ \\r
+ "MOV [W0], W15 \n" \\r
+ "POP W0 \n" /* Restore the critical nesting counter for the task. */ \\r
+ "MOV W0, _uxCriticalNesting \n" \\r
+ "POP PSVPAG \n" \\r
+ "POP CORCON \n" \\r
+ "POP DOENDH \n" \\r
+ "POP DOENDL \n" \\r
+ "POP DOSTARTH \n" \\r
+ "POP DOSTARTL \n" \\r
+ "POP DCOUNT \n" \\r
+ "POP ACCBU \n" \\r
+ "POP ACCBH \n" \\r
+ "POP ACCBL \n" \\r
+ "POP ACCAU \n" \\r
+ "POP ACCAH \n" \\r
+ "POP ACCAL \n" \\r
+ "POP TBLPAG \n" \\r
+ "POP RCOUNT \n" /* Restore the registers from the stack. */ \\r
+ "POP W14 \n" \\r
+ "POP.D W12 \n" \\r
+ "POP.D W10 \n" \\r
+ "POP.D W8 \n" \\r
+ "POP.D W6 \n" \\r
+ "POP.D W4 \n" \\r
+ "POP.D W2 \n" \\r
+ "POP.D W0 \n" \\r
+ "POP SR " );\r
+\r
+\r
+#define portSAVE_CONTEXT() \\r
+ asm volatile( "PUSH SR \n" /* Save the SR used by the task.... */ \\r
+ "PUSH W0 \n" /* ....then disable interrupts. */ \\r
+ "MOV #32, W0 \n" \\r
+ "MOV W0, SR \n" \\r
+ "PUSH W1 \n" /* Save registers to the stack. */ \\r
+ "PUSH.D W2 \n" \\r
+ "PUSH.D W4 \n" \\r
+ "PUSH.D W6 \n" \\r
+ "PUSH.D W8 \n" \\r
+ "PUSH.D W10 \n" \\r
+ "PUSH.D W12 \n" \\r
+ "PUSH W14 \n" \\r
+ "PUSH RCOUNT \n" \\r
+ "PUSH TBLPAG \n" \\r
+ "PUSH ACCAL \n" \\r
+ "PUSH ACCAH \n" \\r
+ "PUSH ACCAU \n" \\r
+ "PUSH ACCBL \n" \\r
+ "PUSH ACCBH \n" \\r
+ "PUSH ACCBU \n" \\r
+ "PUSH DCOUNT \n" \\r
+ "PUSH DOSTARTL \n" \\r
+ "PUSH DOSTARTH \n" \\r
+ "PUSH DOENDL \n" \\r
+ "PUSH DOENDH \n" \\r
+ "PUSH CORCON \n" \\r
+ "PUSH PSVPAG \n" \\r
+ "MOV _uxCriticalNesting, W0 \n" /* Save the critical nesting counter for the task. */ \\r
+ "PUSH W0 \n" \\r
+ "MOV _pxCurrentTCB, W0 \n" /* Save the new top of stack into the TCB. */ \\r
+ "MOV W15, [W0] " );\r
+\r
+/*\r
+ * Setup the timer used to generate the tick interrupt.\r
+ */\r
+static void prvSetupTimerInterrupt( void );\r
+\r
+/* \r
+ * See header file for description. \r
+ */\r
+portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters )\r
+{\r
+unsigned portSHORT usCode;\r
+portBASE_TYPE i;\r
+\r
+const portSTACK_TYPE xInitialStack[] = \r
+{\r
+ 0x1111, /* W1 */\r
+ 0x2222, /* W2 */\r
+ 0x3333, /* W3 */\r
+ 0x4444, /* W4 */\r
+ 0x5555, /* W5 */\r
+ 0x6666, /* W6 */\r
+ 0x7777, /* W7 */\r
+ 0x8888, /* W8 */\r
+ 0x9999, /* W9 */\r
+ 0xaaaa, /* W10 */\r
+ 0xbbbb, /* W11 */\r
+ 0xcccc, /* W12 */\r
+ 0xdddd, /* W13 */\r
+ 0xeeee, /* W14 */\r
+ 0xcdce, /* RCOUNT */\r
+ 0xabac, /* TBLPAG */\r
+\r
+ /* dsPIC specific registers. */\r
+ 0x0202, /* ACCAL */\r
+ 0x0303, /* ACCAH */\r
+ 0x0404, /* ACCAU */\r
+ 0x0505, /* ACCBL */\r
+ 0x0606, /* ACCBH */\r
+ 0x0707, /* ACCBU */\r
+ 0x0808, /* DCOUNT */\r
+ 0x090a, /* DOSTARTL */\r
+ 0x1010, /* DOSTARTH */\r
+ 0x1110, /* DOENDL */\r
+ 0x1212, /* DOENDH */\r
+};\r
+\r
+ /* Setup the stack as if a yield had occurred.\r
+\r
+ Save the low bytes of the program counter. */\r
+ usCode = ( unsigned portSHORT ) pxCode;\r
+ *pxTopOfStack = ( portSTACK_TYPE ) usCode;\r
+ pxTopOfStack++;\r
+\r
+ /* Save the high byte of the program counter. This will always be zero\r
+ here as it is passed in a 16bit pointer. If the address is greater than\r
+ 16 bits then the pointer will point to a jump table. */\r
+ *pxTopOfStack = ( portSTACK_TYPE ) 0;\r
+ pxTopOfStack++;\r
+\r
+ /* Status register with interrupts enabled. */\r
+ *pxTopOfStack = portINITIAL_SR;\r
+ pxTopOfStack++;\r
+\r
+ /* Parameters are passed in W0. */\r
+ *pxTopOfStack = ( portSTACK_TYPE ) pvParameters;\r
+ pxTopOfStack++;\r
+\r
+ for( i = 0; i < ( sizeof( xInitialStack ) / sizeof( portSTACK_TYPE ) ); i++ )\r
+ {\r
+ *pxTopOfStack = xInitialStack[ i ];\r
+ pxTopOfStack++;\r
+ }\r
+\r
+ *pxTopOfStack = CORCON;\r
+ pxTopOfStack++;\r
+ *pxTopOfStack = PSVPAG;\r
+ pxTopOfStack++;\r
+\r
+ /* Finally the critical nesting depth. */\r
+ *pxTopOfStack = 0x00;\r
+ pxTopOfStack++;\r
+\r
+ return pxTopOfStack;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+portBASE_TYPE xPortStartScheduler( void )\r
+{\r
+ /* Setup a timer for the tick ISR. */\r
+ prvSetupTimerInterrupt(); \r
+\r
+ /* Restore the context of the first task to run. */\r
+ portRESTORE_CONTEXT();\r
+\r
+ /* Simulate the end of the yield function. */\r
+ asm volatile ( "return" );\r
+\r
+ /* Should not reach here. */\r
+ return pdTRUE;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vPortEndScheduler( void )\r
+{\r
+ /* It is unlikely that the scheduler for the PIC port will get stopped\r
+ once running. If required disable the tick interrupt here, then return \r
+ to xPortStartScheduler(). */\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+/*\r
+ * Manual context switch. This is similar to the tick context switch,\r
+ * but does not increment the tick count. It must be identical to the\r
+ * tick context switch in how it stores the stack of a task.\r
+ */\r
+void vPortYield( void )\r
+{\r
+ portSAVE_CONTEXT();\r
+ vTaskSwitchContext();\r
+ portRESTORE_CONTEXT();\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+/*\r
+ * Setup a timer for a regular tick.\r
+ */\r
+static void prvSetupTimerInterrupt( void )\r
+{\r
+const unsigned portLONG ulCompareMatch = ( configCPU_CLOCK_HZ / portTIMER_PRESCALE ) / configTICK_RATE_HZ;\r
+\r
+ /* Prescale of 8. */\r
+ T1CON = 0;\r
+ TMR1 = 0;\r
+\r
+ PR1 = ( unsigned portSHORT ) ulCompareMatch;\r
+\r
+ /* Setup timer 1 interrupt priority. */\r
+ IPC0bits.T1IP = configKERNEL_INTERRUPT_PRIORITY;\r
+\r
+ /* Clear the interrupt as a starting condition. */\r
+ IFS0bits.T1IF = 0;\r
+\r
+ /* Enable the interrupt. */\r
+ IEC0bits.T1IE = 1;\r
+\r
+ /* Setup the prescale value. */\r
+// T1CONbits.TCKPS0 = 1;\r
+// T1CONbits.TCKPS1 = 0;\r
+ T1CONbits.TCKPS = 1;\r
+\r
+ /* Start the timer. */\r
+ T1CONbits.TON = 1;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vPortEnterCritical( void )\r
+{\r
+ portDISABLE_INTERRUPTS();\r
+ uxCriticalNesting++;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vPortExitCritical( void )\r
+{\r
+ uxCriticalNesting--;\r
+ if( uxCriticalNesting == 0 )\r
+ {\r
+ portENABLE_INTERRUPTS();\r
+ }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void __attribute__((__interrupt__, auto_psv)) _T1Interrupt( void )\r
+{\r
+ vTaskIncrementTick();\r
+\r
+ /* Clear the timer interrupt. */\r
+ IFS0bits.T1IF = 0;\r
+\r
+ #if configUSE_PREEMPTION == 1\r
+ portYIELD();\r
+ #endif\r
+}\r
--- /dev/null
+/*\r
+ FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.\r
+\r
+ This file is part of the FreeRTOS.org distribution.\r
+\r
+ FreeRTOS.org is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ FreeRTOS.org is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with FreeRTOS.org; if not, write to the Free Software\r
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+\r
+ A special exception to the GPL can be applied should you wish to distribute\r
+ a combined work that includes FreeRTOS.org, without being obliged to provide\r
+ the source code for any proprietary components. See the licensing section \r
+ of http://www.FreeRTOS.org for full details of how and when the exception\r
+ can be applied.\r
+\r
+ ***************************************************************************\r
+\r
+ Please ensure to read the configuration and relevant port sections of the \r
+ online documentation.\r
+\r
+ +++ http://www.FreeRTOS.org +++\r
+ Documentation, latest information, license and contact details. \r
+\r
+ +++ http://www.SafeRTOS.com +++\r
+ A version that is certified for use in safety critical systems.\r
+\r
+ +++ http://www.OpenRTOS.com +++\r
+ Commercial support, development, porting, licensing and training services.\r
+\r
+ ***************************************************************************\r
+*/\r
+\r
+#ifndef PORTMACRO_H\r
+#define PORTMACRO_H\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+/*-----------------------------------------------------------\r
+ * Port specific definitions. \r
+ *\r
+ * The settings in this file configure FreeRTOS correctly for the\r
+ * given hardware and compiler.\r
+ *\r
+ * These settings should not be altered.\r
+ *-----------------------------------------------------------\r
+ */\r
+\r
+/* Type definitions. */\r
+#define portCHAR char\r
+#define portFLOAT float\r
+#define portDOUBLE double\r
+#define portLONG long\r
+#define portSHORT short\r
+#define portSTACK_TYPE unsigned short\r
+#define portBASE_TYPE short\r
+\r
+#if( configUSE_16_BIT_TICKS == 1 )\r
+ typedef unsigned portSHORT portTickType;\r
+ #define portMAX_DELAY ( portTickType ) 0xffff\r
+#else\r
+ typedef unsigned portLONG portTickType;\r
+ #define portMAX_DELAY ( portTickType ) 0xffffffff\r
+#endif\r
+/*-----------------------------------------------------------*/\r
+\r
+/* Hardware specifics. */\r
+#define portBYTE_ALIGNMENT 2\r
+#define portSTACK_GROWTH 1\r
+#define portTICK_RATE_MS ( ( portTickType ) 1000 / configTICK_RATE_HZ ) \r
+/*-----------------------------------------------------------*/\r
+\r
+/* Critical section management. */\r
+#define portINTERRUPT_BITS ( ( unsigned portSHORT ) configKERNEL_INTERRUPT_PRIORITY << ( unsigned portSHORT ) 5 )\r
+\r
+#define portDISABLE_INTERRUPTS() SR |= portINTERRUPT_BITS \r
+#define portENABLE_INTERRUPTS() SR &= ~portINTERRUPT_BITS\r
+\r
+/* Note that exiting a critical sectino will set the IPL bits to 0, nomatter\r
+what their value was prior to entering the critical section. */\r
+extern void vPortEnterCritical( void );\r
+extern void vPortExitCritical( void );\r
+#define portENTER_CRITICAL() vPortEnterCritical()\r
+#define portEXIT_CRITICAL() vPortExitCritical()\r
+/*-----------------------------------------------------------*/\r
+\r
+/* Task utilities. */\r
+extern void vPortYield( void );\r
+#define portYIELD() asm volatile ( "CALL _vPortYield \n" \\r
+ "NOP " );\r
+/*-----------------------------------------------------------*/\r
+\r
+/* Task function macros as described on the FreeRTOS.org WEB site. */\r
+#define portTASK_FUNCTION_PROTO( vFunction, pvParameters ) void vFunction( void *pvParameters )\r
+#define portTASK_FUNCTION( vFunction, pvParameters ) void vFunction( void *pvParameters )\r
+/*-----------------------------------------------------------*/\r
+\r
+/* Compiler specifics. */\r
+#define inline\r
+\r
+#define portNOP() asm volatile ( "NOP" )\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif /* PORTMACRO_H */\r
+\r
--- /dev/null
+/*\r
+ FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.\r
+\r
+ This file is part of the FreeRTOS.org distribution.\r
+\r
+ FreeRTOS.org is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ FreeRTOS.org is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with FreeRTOS.org; if not, write to the Free Software\r
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+\r
+ A special exception to the GPL can be applied should you wish to distribute\r
+ a combined work that includes FreeRTOS.org, without being obliged to provide\r
+ the source code for any proprietary components. See the licensing section \r
+ of http://www.FreeRTOS.org for full details of how and when the exception\r
+ can be applied.\r
+\r
+ ***************************************************************************\r
+\r
+ Please ensure to read the configuration and relevant port sections of the \r
+ online documentation.\r
+\r
+ +++ http://www.FreeRTOS.org +++\r
+ Documentation, latest information, license and contact details. \r
+\r
+ +++ http://www.SafeRTOS.com +++\r
+ A version that is certified for use in safety critical systems.\r
+\r
+ +++ http://www.OpenRTOS.com +++\r
+ Commercial support, development, porting, licensing and training services.\r
+\r
+ ***************************************************************************\r
+*/\r
+\r
+/* \r
+\r
+Changes between V2.5.1 and V2.5.1\r
+\r
+ + The memory pool has been defined within a struct to ensure correct memory\r
+ alignment on 32bit systems.\r
+\r
+Changes between V2.6.1 and V3.0.0\r
+\r
+ + An overflow check has been added to ensure the next free byte variable \r
+ does not wrap around.\r
+*/\r
+\r
+\r
+/*\r
+ * The simplest possible implementation of pvPortMalloc(). Note that this\r
+ * implementation does NOT allow allocated memory to be freed again.\r
+ *\r
+ * See heap_2.c and heap_3.c for alternative implementations, and the memory\r
+ * management pages of http://www.FreeRTOS.org for more information.\r
+ */\r
+#include <stdlib.h>\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+\r
+/* Setup the correct byte alignment mask for the defined byte alignment. */\r
+\r
+#if portBYTE_ALIGNMENT == 8\r
+ #define heapBYTE_ALIGNMENT_MASK ( ( size_t ) 0x0007 )\r
+#endif\r
+\r
+#if portBYTE_ALIGNMENT == 4\r
+ #define heapBYTE_ALIGNMENT_MASK ( ( size_t ) 0x0003 )\r
+#endif\r
+\r
+#if portBYTE_ALIGNMENT == 2\r
+ #define heapBYTE_ALIGNMENT_MASK ( ( size_t ) 0x0001 )\r
+#endif\r
+\r
+#if portBYTE_ALIGNMENT == 1 \r
+ #define heapBYTE_ALIGNMENT_MASK ( ( size_t ) 0x0000 )\r
+#endif\r
+\r
+#ifndef heapBYTE_ALIGNMENT_MASK\r
+ #error "Invalid portBYTE_ALIGNMENT definition"\r
+#endif\r
+\r
+/* Allocate the memory for the heap. The struct is used to force byte\r
+alignment without using any non-portable code. */\r
+static struct xRTOS_HEAP\r
+{\r
+ unsigned portLONG ulDummy;\r
+ unsigned portCHAR ucHeap[ configTOTAL_HEAP_SIZE ];\r
+} xHeap;\r
+\r
+static size_t xNextFreeByte = ( size_t ) 0;\r
+/*-----------------------------------------------------------*/\r
+\r
+void *pvPortMalloc( size_t xWantedSize )\r
+{\r
+void *pvReturn = NULL; \r
+\r
+ /* Ensure that blocks are always aligned to the required number of bytes. */\r
+ #if portBYTE_ALIGNMENT != 1\r
+ if( xWantedSize & heapBYTE_ALIGNMENT_MASK )\r
+ {\r
+ /* Byte alignment required. */\r
+ xWantedSize += ( portBYTE_ALIGNMENT - ( xWantedSize & heapBYTE_ALIGNMENT_MASK ) );\r
+ }\r
+ #endif\r
+\r
+ vTaskSuspendAll();\r
+ {\r
+ /* Check there is enough room left for the allocation. */\r
+ if( ( ( xNextFreeByte + xWantedSize ) < configTOTAL_HEAP_SIZE ) &&\r
+ ( ( xNextFreeByte + xWantedSize ) > xNextFreeByte ) )/* Check for overflow. */\r
+ {\r
+ /* Return the next free byte then increment the index past this\r
+ block. */\r
+ pvReturn = &( xHeap.ucHeap[ xNextFreeByte ] );\r
+ xNextFreeByte += xWantedSize; \r
+ } \r
+ }\r
+ xTaskResumeAll();\r
+\r
+ return pvReturn;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vPortFree( void *pv )\r
+{\r
+ /* Memory cannot be freed using this scheme. See heap_2.c and heap_3.c \r
+ for alternative implementations, and the memory management pages of \r
+ http://www.FreeRTOS.org for more information. */\r
+ ( void ) pv;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vPortInitialiseBlocks( void )\r
+{\r
+ /* Only required when static memory is not cleared. */\r
+ xNextFreeByte = ( size_t ) 0;\r
+}\r
+\r
+\r
--- /dev/null
+/*\r
+ FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.\r
+\r
+ This file is part of the FreeRTOS.org distribution.\r
+\r
+ FreeRTOS.org is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ FreeRTOS.org is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with FreeRTOS.org; if not, write to the Free Software\r
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+\r
+ A special exception to the GPL can be applied should you wish to distribute\r
+ a combined work that includes FreeRTOS.org, without being obliged to provide\r
+ the source code for any proprietary components. See the licensing section\r
+ of http://www.FreeRTOS.org for full details of how and when the exception\r
+ can be applied.\r
+\r
+ ***************************************************************************\r
+\r
+ Please ensure to read the configuration and relevant port sections of the \r
+ online documentation.\r
+\r
+ +++ http://www.FreeRTOS.org +++\r
+ Documentation, latest information, license and contact details. \r
+\r
+ +++ http://www.SafeRTOS.com +++\r
+ A version that is certified for use in safety critical systems.\r
+\r
+ +++ http://www.OpenRTOS.com +++\r
+ Commercial support, development, porting, licensing and training services.\r
+\r
+ ***************************************************************************\r
+*/\r
+\r
+/*\r
+ * A sample implementation of pvPortMalloc() and vPortFree() that permits\r
+ * allocated blocks to be freed, but does not combine adjacent free blocks\r
+ * into a single larger block.\r
+ *\r
+ * See heap_1.c and heap_3.c for alternative implementations, and the memory\r
+ * management pages of http://www.FreeRTOS.org for more information.\r
+ */\r
+#include <stdlib.h>\r
+\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+\r
+/* Setup the correct byte alignment mask for the defined byte alignment. */\r
+\r
+#if portBYTE_ALIGNMENT == 8\r
+ #define heapBYTE_ALIGNMENT_MASK ( ( size_t ) 0x0007 )\r
+#endif\r
+\r
+#if portBYTE_ALIGNMENT == 4\r
+ #define heapBYTE_ALIGNMENT_MASK ( ( size_t ) 0x0003 )\r
+#endif\r
+\r
+#if portBYTE_ALIGNMENT == 2\r
+ #define heapBYTE_ALIGNMENT_MASK ( ( size_t ) 0x0001 )\r
+#endif\r
+\r
+#if portBYTE_ALIGNMENT == 1\r
+ #define heapBYTE_ALIGNMENT_MASK ( ( size_t ) 0x0000 )\r
+#endif\r
+\r
+#ifndef heapBYTE_ALIGNMENT_MASK\r
+ #error "Invalid portBYTE_ALIGNMENT definition"\r
+#endif\r
+\r
+/* Allocate the memory for the heap. The struct is used to force byte\r
+alignment without using any non-portable code. */\r
+static struct xRTOS_HEAP\r
+{\r
+ unsigned portLONG ulDummy;\r
+ unsigned portCHAR ucHeap[ configTOTAL_HEAP_SIZE ];\r
+} xHeap;\r
+\r
+/* Define the linked list structure. This is used to link free blocks in order\r
+of their size. */\r
+typedef struct A_BLOCK_LINK\r
+{\r
+ struct A_BLOCK_LINK *pxNextFreeBlock; /*<< The next free block in the list. */\r
+ size_t xBlockSize; /*<< The size of the free block. */\r
+} xBlockLink;\r
+\r
+\r
+static const unsigned portSHORT heapSTRUCT_SIZE = ( sizeof( xBlockLink ) + ( sizeof( xBlockLink ) % portBYTE_ALIGNMENT ) );\r
+#define heapMINIMUM_BLOCK_SIZE ( ( size_t ) ( heapSTRUCT_SIZE * 2 ) )\r
+\r
+/* Create a couple of list links to mark the start and end of the list. */\r
+static xBlockLink xStart, xEnd;\r
+\r
+/* STATIC FUNCTIONS ARE DEFINED AS MACROS TO MINIMIZE THE FUNCTION CALL DEPTH. */\r
+\r
+/*\r
+ * Insert a block into the list of free blocks - which is ordered by size of\r
+ * the block. Small blocks at the start of the list and large blocks at the end\r
+ * of the list.\r
+ */\r
+#define prvInsertBlockIntoFreeList( pxBlockToInsert ) \\r
+{ \\r
+xBlockLink *pxIterator; \\r
+size_t xBlockSize; \\r
+ \\r
+ xBlockSize = pxBlockToInsert->xBlockSize; \\r
+ \\r
+ /* Iterate through the list until a block is found that has a larger size */ \\r
+ /* than the block we are inserting. */ \\r
+ for( pxIterator = &xStart; pxIterator->pxNextFreeBlock->xBlockSize < xBlockSize; pxIterator = pxIterator->pxNextFreeBlock ) \\r
+ { \\r
+ /* There is nothing to do here - just iterate to the correct position. */ \\r
+ } \\r
+ \\r
+ /* Update the list to include the block being inserted in the correct */ \\r
+ /* position. */ \\r
+ pxBlockToInsert->pxNextFreeBlock = pxIterator->pxNextFreeBlock; \\r
+ pxIterator->pxNextFreeBlock = pxBlockToInsert; \\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+#define prvHeapInit() \\r
+{ \\r
+xBlockLink *pxFirstFreeBlock; \\r
+ \\r
+ /* xStart is used to hold a pointer to the first item in the list of free */ \\r
+ /* blocks. The void cast is used to prevent compiler warnings. */ \\r
+ xStart.pxNextFreeBlock = ( void * ) xHeap.ucHeap; \\r
+ xStart.xBlockSize = ( size_t ) 0; \\r
+ \\r
+ /* xEnd is used to mark the end of the list of free blocks. */ \\r
+ xEnd.xBlockSize = configTOTAL_HEAP_SIZE; \\r
+ xEnd.pxNextFreeBlock = NULL; \\r
+ \\r
+ /* To start with there is a single free block that is sized to take up the \\r
+ entire heap space. */ \\r
+ pxFirstFreeBlock = ( void * ) xHeap.ucHeap; \\r
+ pxFirstFreeBlock->xBlockSize = configTOTAL_HEAP_SIZE; \\r
+ pxFirstFreeBlock->pxNextFreeBlock = &xEnd; \\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void *pvPortMalloc( size_t xWantedSize )\r
+{\r
+xBlockLink *pxBlock, *pxPreviousBlock, *pxNewBlockLink;\r
+static portBASE_TYPE xHeapHasBeenInitialised = pdFALSE;\r
+void *pvReturn = NULL;\r
+\r
+ vTaskSuspendAll();\r
+ {\r
+ /* If this is the first call to malloc then the heap will require\r
+ initialisation to setup the list of free blocks. */\r
+ if( xHeapHasBeenInitialised == pdFALSE )\r
+ {\r
+ prvHeapInit();\r
+ xHeapHasBeenInitialised = pdTRUE;\r
+ }\r
+\r
+ /* The wanted size is increased so it can contain a xBlockLink\r
+ structure in addition to the requested amount of bytes. */\r
+ if( xWantedSize > 0 )\r
+ {\r
+ xWantedSize += heapSTRUCT_SIZE;\r
+\r
+ /* Ensure that blocks are always aligned to the required number of bytes. */\r
+ if( xWantedSize & heapBYTE_ALIGNMENT_MASK )\r
+ {\r
+ /* Byte alignment required. */\r
+ xWantedSize += ( portBYTE_ALIGNMENT - ( xWantedSize & heapBYTE_ALIGNMENT_MASK ) );\r
+ }\r
+ }\r
+\r
+ if( ( xWantedSize > 0 ) && ( xWantedSize < configTOTAL_HEAP_SIZE ) )\r
+ {\r
+ /* Blocks are stored in byte order - traverse the list from the start\r
+ (smallest) block until one of adequate size is found. */\r
+ pxPreviousBlock = &xStart;\r
+ pxBlock = xStart.pxNextFreeBlock;\r
+ while( ( pxBlock->xBlockSize < xWantedSize ) && ( pxBlock->pxNextFreeBlock ) )\r
+ {\r
+ pxPreviousBlock = pxBlock;\r
+ pxBlock = pxBlock->pxNextFreeBlock;\r
+ }\r
+\r
+ /* If we found the end marker then a block of adequate size was not found. */\r
+ if( pxBlock != &xEnd )\r
+ {\r
+ /* Return the memory space - jumping over the xBlockLink structure\r
+ at its start. */\r
+ pvReturn = ( void * ) ( ( ( unsigned portCHAR * ) pxPreviousBlock->pxNextFreeBlock ) + heapSTRUCT_SIZE );\r
+\r
+ /* This block is being returned for use so must be taken our of the\r
+ list of free blocks. */\r
+ pxPreviousBlock->pxNextFreeBlock = pxBlock->pxNextFreeBlock;\r
+\r
+ /* If the block is larger than required it can be split into two. */\r
+ if( ( pxBlock->xBlockSize - xWantedSize ) > heapMINIMUM_BLOCK_SIZE )\r
+ {\r
+ /* This block is to be split into two. Create a new block\r
+ following the number of bytes requested. The void cast is\r
+ used to prevent byte alignment warnings from the compiler. */\r
+ pxNewBlockLink = ( void * ) ( ( ( unsigned portCHAR * ) pxBlock ) + xWantedSize );\r
+ \r
+ /* Calculate the sizes of two blocks split from the single\r
+ block. */\r
+ pxNewBlockLink->xBlockSize = pxBlock->xBlockSize - xWantedSize; \r
+ pxBlock->xBlockSize = xWantedSize; \r
+ \r
+ /* Insert the new block into the list of free blocks. */\r
+ prvInsertBlockIntoFreeList( ( pxNewBlockLink ) );\r
+ }\r
+ }\r
+ }\r
+ }\r
+ xTaskResumeAll();\r
+\r
+ return pvReturn;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vPortFree( void *pv )\r
+{\r
+unsigned portCHAR *puc = ( unsigned portCHAR * ) pv;\r
+xBlockLink *pxLink;\r
+\r
+ if( pv )\r
+ {\r
+ /* The memory being freed will have an xBlockLink structure immediately\r
+ before it. */\r
+ puc -= heapSTRUCT_SIZE;\r
+\r
+ /* This casting is to keep the compiler from issuing warnings. */\r
+ pxLink = ( void * ) puc;\r
+\r
+ vTaskSuspendAll();\r
+ { \r
+ /* Add this block to the list of free blocks. */\r
+ prvInsertBlockIntoFreeList( ( ( xBlockLink * ) pxLink ) );\r
+ }\r
+ xTaskResumeAll();\r
+ }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
--- /dev/null
+/*\r
+ FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.\r
+\r
+ This file is part of the FreeRTOS.org distribution.\r
+\r
+ FreeRTOS.org is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ FreeRTOS.org is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with FreeRTOS.org; if not, write to the Free Software\r
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+\r
+ A special exception to the GPL can be applied should you wish to distribute\r
+ a combined work that includes FreeRTOS.org, without being obliged to provide\r
+ the source code for any proprietary components. See the licensing section \r
+ of http://www.FreeRTOS.org for full details of how and when the exception\r
+ can be applied.\r
+\r
+ ***************************************************************************\r
+\r
+ Please ensure to read the configuration and relevant port sections of the \r
+ online documentation.\r
+\r
+ +++ http://www.FreeRTOS.org +++\r
+ Documentation, latest information, license and contact details. \r
+\r
+ +++ http://www.SafeRTOS.com +++\r
+ A version that is certified for use in safety critical systems.\r
+\r
+ +++ http://www.OpenRTOS.com +++\r
+ Commercial support, development, porting, licensing and training services.\r
+\r
+ ***************************************************************************\r
+*/\r
+\r
+\r
+/*\r
+ * Implementation of pvPortMalloc() and vPortFree() that relies on the\r
+ * compilers own malloc() and free() implementations.\r
+ *\r
+ * This file can only be used if the linker is configured to to generate\r
+ * a heap memory area.\r
+ *\r
+ * See heap_2.c and heap_1.c for alternative implementations, and the memory\r
+ * management pages of http://www.FreeRTOS.org for more information.\r
+ */\r
+\r
+#include <stdlib.h>\r
+\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+void *pvPortMalloc( size_t xWantedSize )\r
+{\r
+void *pvReturn;\r
+\r
+ vTaskSuspendAll();\r
+ {\r
+ pvReturn = malloc( xWantedSize );\r
+ }\r
+ xTaskResumeAll();\r
+\r
+ return pvReturn;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vPortFree( void *pv )\r
+{\r
+ if( pv )\r
+ {\r
+ vTaskSuspendAll();\r
+ {\r
+ free( pv );\r
+ }\r
+ xTaskResumeAll();\r
+ }\r
+}\r
+\r
+\r
+\r
--- /dev/null
+Each real time kernel port consists of three files that contain the core kernel\r
+components and are common to every port, and one or more files that are \r
+specific to a particular microcontroller and/or compiler.\r
+\r
+\r
++ The FreeRTOS/Source/Portable/MemMang directory contains the three sample \r
+memory allocators as described on the http://www.FreeRTOS.org WEB site.\r
+\r
++ The other directories each contain files specific to a particular \r
+microcontroller or compiler.\r
+\r
+\r
+\r
+For example, if you are interested in the GCC port for the ATMega323 \r
+microcontroller then the port specific files are contained in\r
+FreeRTOS/Source/Portable/GCC/ATMega323 directory. If this is the only\r
+port you are interested in then all the other directories can be\r
+ignored.\r
+\r
--- /dev/null
+/*\r
+ FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.\r
+\r
+ This file is part of the FreeRTOS.org distribution.\r
+\r
+ FreeRTOS.org is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ FreeRTOS.org is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with FreeRTOS.org; if not, write to the Free Software\r
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+\r
+ A special exception to the GPL can be applied should you wish to distribute\r
+ a combined work that includes FreeRTOS.org, without being obliged to provide\r
+ the source code for any proprietary components. See the licensing section\r
+ of http://www.FreeRTOS.org for full details of how and when the exception\r
+ can be applied.\r
+\r
+ ***************************************************************************\r
+\r
+ Please ensure to read the configuration and relevant port sections of the \r
+ online documentation.\r
+\r
+ +++ http://www.FreeRTOS.org +++\r
+ Documentation, latest information, license and contact details. \r
+\r
+ +++ http://www.SafeRTOS.com +++\r
+ A version that is certified for use in safety critical systems.\r
+\r
+ +++ http://www.OpenRTOS.com +++\r
+ Commercial support, development, porting, licensing and training services.\r
+\r
+ ***************************************************************************\r
+*/\r
+\r
+#include <stdlib.h>\r
+#include <string.h>\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+#include "croutine.h"\r
+\r
+/*-----------------------------------------------------------\r
+ * PUBLIC LIST API documented in list.h\r
+ *----------------------------------------------------------*/\r
+\r
+/* Constants used with the cRxLock and cTxLock structure members. */\r
+#define queueUNLOCKED ( ( signed portBASE_TYPE ) -1 )\r
+#define queueERRONEOUS_UNBLOCK ( -1 )\r
+\r
+/* For internal use only. */\r
+#define queueSEND_TO_BACK ( 0 )\r
+#define queueSEND_TO_FRONT ( 1 )\r
+\r
+/* Effectively make a union out of the xQUEUE structure. */\r
+#define pxMutexHolder pcTail\r
+#define uxQueueType pcHead\r
+#define uxRecursiveCallCount pcReadFrom\r
+#define queueQUEUE_IS_MUTEX NULL\r
+\r
+/* Semaphores do not actually store or copy data, so have an items size of\r
+zero. */\r
+#define queueSEMAPHORE_QUEUE_ITEM_LENGTH ( 0 )\r
+#define queueDONT_BLOCK ( ( portTickType ) 0 )\r
+#define queueMUTEX_GIVE_BLOCK_TIME ( ( portTickType ) 0 )\r
+/*\r
+ * Definition of the queue used by the scheduler.\r
+ * Items are queued by copy, not reference.\r
+ */\r
+typedef struct QueueDefinition\r
+{\r
+ signed portCHAR *pcHead; /*< Points to the beginning of the queue storage area. */\r
+ signed portCHAR *pcTail; /*< Points to the byte at the end of the queue storage area. Once more byte is allocated than necessary to store the queue items, this is used as a marker. */\r
+\r
+ signed portCHAR *pcWriteTo; /*< Points to the free next place in the storage area. */\r
+ signed portCHAR *pcReadFrom; /*< Points to the last place that a queued item was read from. */\r
+\r
+ xList xTasksWaitingToSend; /*< List of tasks that are blocked waiting to post onto this queue. Stored in priority order. */\r
+ xList xTasksWaitingToReceive; /*< List of tasks that are blocked waiting to read from this queue. Stored in priority order. */\r
+\r
+ volatile unsigned portBASE_TYPE uxMessagesWaiting;/*< The number of items currently in the queue. */\r
+ unsigned portBASE_TYPE uxLength; /*< The length of the queue defined as the number of items it will hold, not the number of bytes. */\r
+ unsigned portBASE_TYPE uxItemSize; /*< The size of each items that the queue will hold. */\r
+\r
+ signed portBASE_TYPE xRxLock; /*< Stores the number of items received from the queue (removed from the queue) while the queue was locked. Set to queueUNLOCKED when the queue is not locked. */\r
+ signed portBASE_TYPE xTxLock; /*< Stores the number of items transmitted to the queue (added to the queue) while the queue was locked. Set to queueUNLOCKED when the queue is not locked. */\r
+} xQUEUE;\r
+/*-----------------------------------------------------------*/\r
+\r
+/*\r
+ * Inside this file xQueueHandle is a pointer to a xQUEUE structure.\r
+ * To keep the definition private the API header file defines it as a\r
+ * pointer to void.\r
+ */\r
+typedef xQUEUE * xQueueHandle;\r
+\r
+/*\r
+ * Prototypes for public functions are included here so we don't have to\r
+ * include the API header file (as it defines xQueueHandle differently). These\r
+ * functions are documented in the API header file.\r
+ */\r
+xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize );\r
+signed portBASE_TYPE xQueueGenericSend( xQueueHandle xQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition );\r
+unsigned portBASE_TYPE uxQueueMessagesWaiting( const xQueueHandle pxQueue );\r
+void vQueueDelete( xQueueHandle xQueue );\r
+signed portBASE_TYPE xQueueGenericSendFromISR( xQueueHandle pxQueue, const void * const pvItemToQueue, signed portBASE_TYPE xTaskPreviouslyWoken, portBASE_TYPE xCopyPosition );\r
+signed portBASE_TYPE xQueueGenericReceive( xQueueHandle pxQueue, const void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking );\r
+signed portBASE_TYPE xQueueReceiveFromISR( xQueueHandle pxQueue, const void * const pvBuffer, signed portBASE_TYPE *pxTaskWoken );\r
+xQueueHandle xQueueCreateMutex( void );\r
+xQueueHandle xQueueCreateCountingSemaphore( unsigned portBASE_TYPE uxCountValue, unsigned portBASE_TYPE uxInitialCount );\r
+portBASE_TYPE xQueueTakeMutexRecursive( xQueueHandle xMutex, portTickType xBlockTime );\r
+portBASE_TYPE xQueueGiveMutexRecursive( xQueueHandle xMutex );\r
+signed portBASE_TYPE xQueueAltGenericSend( xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition );\r
+signed portBASE_TYPE xQueueAltGenericReceive( xQueueHandle pxQueue, const void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking );\r
+\r
+#if configUSE_CO_ROUTINES == 1\r
+ signed portBASE_TYPE xQueueCRSendFromISR( xQueueHandle pxQueue, const void *pvItemToQueue, signed portBASE_TYPE xCoRoutinePreviouslyWoken );\r
+ signed portBASE_TYPE xQueueCRReceiveFromISR( xQueueHandle pxQueue, void *pvBuffer, signed portBASE_TYPE *pxTaskWoken );\r
+ signed portBASE_TYPE xQueueCRSend( xQueueHandle pxQueue, const void *pvItemToQueue, portTickType xTicksToWait );\r
+ signed portBASE_TYPE xQueueCRReceive( xQueueHandle pxQueue, void *pvBuffer, portTickType xTicksToWait );\r
+#endif\r
+\r
+/*\r
+ * Unlocks a queue locked by a call to prvLockQueue. Locking a queue does not\r
+ * prevent an ISR from adding or removing items to the queue, but does prevent\r
+ * an ISR from removing tasks from the queue event lists. If an ISR finds a\r
+ * queue is locked it will instead increment the appropriate queue lock count\r
+ * to indicate that a task may require unblocking. When the queue in unlocked\r
+ * these lock counts are inspected, and the appropriate action taken.\r
+ */\r
+static void prvUnlockQueue( xQueueHandle pxQueue );\r
+\r
+/*\r
+ * Uses a critical section to determine if there is any data in a queue.\r
+ *\r
+ * @return pdTRUE if the queue contains no items, otherwise pdFALSE.\r
+ */\r
+static signed portBASE_TYPE prvIsQueueEmpty( const xQueueHandle pxQueue );\r
+\r
+/*\r
+ * Uses a critical section to determine if there is any space in a queue.\r
+ *\r
+ * @return pdTRUE if there is no space, otherwise pdFALSE;\r
+ */\r
+static signed portBASE_TYPE prvIsQueueFull( const xQueueHandle pxQueue );\r
+\r
+/*\r
+ * Copies an item into the queue, either at the front of the queue or the\r
+ * back of the queue.\r
+ */\r
+static void prvCopyDataToQueue( xQUEUE *pxQueue, const void *pvItemToQueue, portBASE_TYPE xPosition );\r
+\r
+/*\r
+ * Copies an item out of a queue.\r
+ */\r
+static void prvCopyDataFromQueue( xQUEUE * const pxQueue, const void *pvBuffer );\r
+/*-----------------------------------------------------------*/\r
+\r
+/*\r
+ * Macro to mark a queue as locked. Locking a queue prevents an ISR from\r
+ * accessing the queue event lists.\r
+ */\r
+#define prvLockQueue( pxQueue ) \\r
+{ \\r
+ taskENTER_CRITICAL(); \\r
+ ++( pxQueue->xRxLock ); \\r
+ ++( pxQueue->xTxLock ); \\r
+ taskEXIT_CRITICAL(); \\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+\r
+/*-----------------------------------------------------------\r
+ * PUBLIC QUEUE MANAGEMENT API documented in queue.h\r
+ *----------------------------------------------------------*/\r
+\r
+xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize )\r
+{\r
+xQUEUE *pxNewQueue;\r
+size_t xQueueSizeInBytes;\r
+\r
+ /* Allocate the new queue structure. */\r
+ if( uxQueueLength > ( unsigned portBASE_TYPE ) 0 )\r
+ {\r
+ pxNewQueue = ( xQUEUE * ) pvPortMalloc( sizeof( xQUEUE ) );\r
+ if( pxNewQueue != NULL )\r
+ {\r
+ /* Create the list of pointers to queue items. The queue is one byte\r
+ longer than asked for to make wrap checking easier/faster. */\r
+ xQueueSizeInBytes = ( size_t ) ( uxQueueLength * uxItemSize ) + ( size_t ) 1;\r
+\r
+ pxNewQueue->pcHead = ( signed portCHAR * ) pvPortMalloc( xQueueSizeInBytes );\r
+ if( pxNewQueue->pcHead != NULL )\r
+ {\r
+ /* Initialise the queue members as described above where the\r
+ queue type is defined. */\r
+ pxNewQueue->pcTail = pxNewQueue->pcHead + ( uxQueueLength * uxItemSize );\r
+ pxNewQueue->uxMessagesWaiting = 0;\r
+ pxNewQueue->pcWriteTo = pxNewQueue->pcHead;\r
+ pxNewQueue->pcReadFrom = pxNewQueue->pcHead + ( ( uxQueueLength - 1 ) * uxItemSize );\r
+ pxNewQueue->uxLength = uxQueueLength;\r
+ pxNewQueue->uxItemSize = uxItemSize;\r
+ pxNewQueue->xRxLock = queueUNLOCKED;\r
+ pxNewQueue->xTxLock = queueUNLOCKED;\r
+\r
+ /* Likewise ensure the event queues start with the correct state. */\r
+ vListInitialise( &( pxNewQueue->xTasksWaitingToSend ) );\r
+ vListInitialise( &( pxNewQueue->xTasksWaitingToReceive ) );\r
+\r
+ return pxNewQueue;\r
+ }\r
+ else\r
+ {\r
+ vPortFree( pxNewQueue );\r
+ }\r
+ }\r
+ }\r
+\r
+ /* Will only reach here if we could not allocate enough memory or no memory\r
+ was required. */\r
+ return NULL;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+#if ( configUSE_MUTEXES == 1 )\r
+\r
+ xQueueHandle xQueueCreateMutex( void )\r
+ {\r
+ xQUEUE *pxNewQueue;\r
+ \r
+ /* Allocate the new queue structure. */\r
+ pxNewQueue = ( xQUEUE * ) pvPortMalloc( sizeof( xQUEUE ) );\r
+ if( pxNewQueue != NULL )\r
+ {\r
+ /* Information required for priority inheritance. */\r
+ pxNewQueue->pxMutexHolder = NULL;\r
+ pxNewQueue->uxQueueType = queueQUEUE_IS_MUTEX;\r
+ \r
+ /* Queues used as a mutex no data is actually copied into or out\r
+ of the queue. */\r
+ pxNewQueue->pcWriteTo = NULL;\r
+ pxNewQueue->pcReadFrom = NULL;\r
+ \r
+ /* Each mutex has a length of 1 (like a binary semaphore) and\r
+ an item size of 0 as nothing is actually copied into or out\r
+ of the mutex. */\r
+ pxNewQueue->uxMessagesWaiting = 0;\r
+ pxNewQueue->uxLength = 1;\r
+ pxNewQueue->uxItemSize = 0;\r
+ pxNewQueue->xRxLock = queueUNLOCKED;\r
+ pxNewQueue->xTxLock = queueUNLOCKED;\r
+ \r
+ /* Ensure the event queues start with the correct state. */\r
+ vListInitialise( &( pxNewQueue->xTasksWaitingToSend ) );\r
+ vListInitialise( &( pxNewQueue->xTasksWaitingToReceive ) );\r
+\r
+ /* Start with the semaphore in the expected state. */\r
+ xQueueGenericSend( pxNewQueue, NULL, 0, queueSEND_TO_BACK );\r
+ }\r
+ \r
+ return pxNewQueue;\r
+ }\r
+\r
+#endif /* configUSE_MUTEXES */\r
+/*-----------------------------------------------------------*/\r
+\r
+#if configUSE_RECURSIVE_MUTEXES == 1\r
+\r
+ portBASE_TYPE xQueueGiveMutexRecursive( xQueueHandle pxMutex )\r
+ {\r
+ portBASE_TYPE xReturn;\r
+\r
+ /* If this is the task that holds the mutex then pxMutexHolder will not \r
+ change outside of this task. If this task does not hold the mutex then\r
+ pxMutexHolder can never coincidentally equal the tasks handle, and as\r
+ this is the only condition we are interested in it does not matter if\r
+ pxMutexHolder is accessed simultaneously by another task. Therefore no\r
+ mutual exclusion is required to test the pxMutexHolder variable. */\r
+ if( pxMutex->pxMutexHolder == xTaskGetCurrentTaskHandle() )\r
+ {\r
+ /* uxRecursiveCallCount cannot be zero if pxMutexHolder is equal to\r
+ the task handle, therefore no underflow check is required. Also, \r
+ uxRecursiveCallCount is only modified by the mutex holder, and as\r
+ there can only be one, no mutual exclusion is required to modify the\r
+ uxRecursiveCallCount member. */\r
+ ( pxMutex->uxRecursiveCallCount )--;\r
+\r
+ /* Have we unwound the call count? */\r
+ if( pxMutex->uxRecursiveCallCount == 0 )\r
+ {\r
+ /* Return the mutex. This will automatically unblock any other\r
+ task that might be waiting to access the mutex. */\r
+ xQueueGenericSend( pxMutex, NULL, queueMUTEX_GIVE_BLOCK_TIME, queueSEND_TO_BACK );\r
+ }\r
+\r
+ xReturn = pdPASS;\r
+ }\r
+ else\r
+ {\r
+ /* We cannot give the mutex because we are not the holder. */\r
+ xReturn = pdFAIL;\r
+ }\r
+\r
+ return xReturn;\r
+ }\r
+\r
+#endif /* configUSE_RECURSIVE_MUTEXES */\r
+/*-----------------------------------------------------------*/\r
+\r
+#if configUSE_RECURSIVE_MUTEXES == 1\r
+\r
+ portBASE_TYPE xQueueTakeMutexRecursive( xQueueHandle pxMutex, portTickType xBlockTime )\r
+ {\r
+ portBASE_TYPE xReturn;\r
+\r
+ /* Comments regarding mutual exclusion as per those within \r
+ xQueueGiveMutexRecursive(). */\r
+\r
+ if( pxMutex->pxMutexHolder == xTaskGetCurrentTaskHandle() )\r
+ {\r
+ ( pxMutex->uxRecursiveCallCount )++;\r
+ xReturn = pdPASS;\r
+ }\r
+ else\r
+ {\r
+ xReturn = xQueueGenericReceive( pxMutex, NULL, xBlockTime, pdFALSE );\r
+\r
+ /* pdPASS will only be returned if we successfully obtained the mutex,\r
+ we may have blocked to reach here. */\r
+ if( xReturn == pdPASS )\r
+ {\r
+ ( pxMutex->uxRecursiveCallCount )++;\r
+ }\r
+ }\r
+\r
+ return xReturn;\r
+ }\r
+\r
+#endif /* configUSE_RECURSIVE_MUTEXES */\r
+/*-----------------------------------------------------------*/\r
+\r
+#if configUSE_COUNTING_SEMAPHORES == 1\r
+\r
+ xQueueHandle xQueueCreateCountingSemaphore( unsigned portBASE_TYPE uxCountValue, unsigned portBASE_TYPE uxInitialCount )\r
+ {\r
+ xQueueHandle pxHandle;\r
+ \r
+ pxHandle = xQueueCreate( ( unsigned portBASE_TYPE ) uxCountValue, queueSEMAPHORE_QUEUE_ITEM_LENGTH );\r
+\r
+ if( pxHandle != NULL )\r
+ {\r
+ pxHandle->uxMessagesWaiting = uxInitialCount;\r
+ }\r
+\r
+ return pxHandle;\r
+ }\r
+\r
+#endif /* configUSE_COUNTING_SEMAPHORES */\r
+/*-----------------------------------------------------------*/\r
+\r
+signed portBASE_TYPE xQueueGenericSend( xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition )\r
+{\r
+signed portBASE_TYPE xReturn = pdPASS;\r
+xTimeOutType xTimeOut;\r
+\r
+ /* Make sure other tasks do not access the queue. */\r
+ vTaskSuspendAll();\r
+\r
+ /* Capture the current time status for future reference. */\r
+ vTaskSetTimeOutState( &xTimeOut );\r
+\r
+ /* It is important that this is the only thread/ISR that modifies the\r
+ ready or delayed lists until xTaskResumeAll() is called. Places where\r
+ the ready/delayed lists are modified include:\r
+\r
+ + vTaskDelay() - Nothing can call vTaskDelay as the scheduler is\r
+ suspended, vTaskDelay() cannot be called from an ISR.\r
+ + vTaskPrioritySet() - Has a critical section around the access.\r
+ + vTaskSwitchContext() - This will not get executed while the scheduler\r
+ is suspended.\r
+ + prvCheckDelayedTasks() - This will not get executed while the\r
+ scheduler is suspended.\r
+ + xTaskCreate() - Has a critical section around the access.\r
+ + vTaskResume() - Has a critical section around the access.\r
+ + xTaskResumeAll() - Has a critical section around the access.\r
+ + xTaskRemoveFromEventList - Checks to see if the scheduler is\r
+ suspended. If so then the TCB being removed from the event is\r
+ removed from the event and added to the xPendingReadyList.\r
+ */\r
+\r
+ /* Make sure interrupts do not access the queue event list. */\r
+ prvLockQueue( pxQueue );\r
+\r
+ /* It is important that interrupts to not access the event list of the\r
+ queue being modified here. Places where the event list is modified\r
+ include:\r
+\r
+ + xQueueGenericSendFromISR(). This checks the lock on the queue to see\r
+ if it has access. If the queue is locked then the Tx lock count is\r
+ incremented to signify that a task waiting for data can be made ready\r
+ once the queue lock is removed. If the queue is not locked then\r
+ a task can be moved from the event list, but will not be removed\r
+ from the delayed list or placed in the ready list until the scheduler\r
+ is unlocked.\r
+\r
+ + xQueueReceiveFromISR(). As per xQueueGenericSendFromISR().\r
+ */\r
+ \r
+ /* If the queue is already full we may have to block. */\r
+ do\r
+ {\r
+ if( prvIsQueueFull( pxQueue ) )\r
+ {\r
+ /* The queue is full - do we want to block or just leave without\r
+ posting? */\r
+ if( xTicksToWait > ( portTickType ) 0 )\r
+ {\r
+ /* We are going to place ourselves on the xTasksWaitingToSend event\r
+ list, and will get woken should the delay expire, or space become\r
+ available on the queue.\r
+ \r
+ As detailed above we do not require mutual exclusion on the event\r
+ list as nothing else can modify it or the ready lists while we\r
+ have the scheduler suspended and queue locked.\r
+ \r
+ It is possible that an ISR has removed data from the queue since we\r
+ checked if any was available. If this is the case then the data\r
+ will have been copied from the queue, and the queue variables\r
+ updated, but the event list will not yet have been checked to see if\r
+ anything is waiting as the queue is locked. */\r
+ vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToSend ), xTicksToWait );\r
+ \r
+ /* Force a context switch now as we are blocked. We can do\r
+ this from within a critical section as the task we are\r
+ switching to has its own context. When we return here (i.e. we\r
+ unblock) we will leave the critical section as normal.\r
+ \r
+ It is possible that an ISR has caused an event on an unrelated and\r
+ unlocked queue. If this was the case then the event list for that\r
+ queue will have been updated but the ready lists left unchanged -\r
+ instead the readied task will have been added to the pending ready\r
+ list. */\r
+ taskENTER_CRITICAL();\r
+ {\r
+ /* We can safely unlock the queue and scheduler here as\r
+ interrupts are disabled. We must not yield with anything\r
+ locked, but we can yield from within a critical section.\r
+ \r
+ Tasks that have been placed on the pending ready list cannot\r
+ be tasks that are waiting for events on this queue. See\r
+ in comment xTaskRemoveFromEventList(). */\r
+ prvUnlockQueue( pxQueue );\r
+ \r
+ /* Resuming the scheduler may cause a yield. If so then there\r
+ is no point yielding again here. */\r
+ if( !xTaskResumeAll() )\r
+ {\r
+ taskYIELD();\r
+ }\r
+\r
+ /* We want to check to see if the queue is still full\r
+ before leaving the critical section. This is to prevent\r
+ this task placing an item into the queue due to an\r
+ interrupt making space on the queue between critical\r
+ sections (when there might be a higher priority task\r
+ blocked on the queue that cannot run yet because the\r
+ scheduler gets suspended). */\r
+ if( pxQueue->uxMessagesWaiting == pxQueue->uxLength )\r
+ {\r
+ /* We unblocked but there is no space in the queue,\r
+ we probably timed out. */\r
+ xReturn = errQUEUE_FULL;\r
+ }\r
+ \r
+ /* Before leaving the critical section we have to ensure\r
+ exclusive access again. */\r
+ vTaskSuspendAll();\r
+ prvLockQueue( pxQueue ); \r
+ }\r
+ taskEXIT_CRITICAL();\r
+ }\r
+ }\r
+ \r
+ /* If xReturn is errQUEUE_FULL then we unblocked when the queue\r
+ was still full. Don't check it again now as it is possible that\r
+ an interrupt has removed an item from the queue since we left the\r
+ critical section and we don't want to write to the queue in case\r
+ there is a task of higher priority blocked waiting for space to\r
+ be available on the queue. If this is the case the higher priority\r
+ task will execute when the scheduler is unsupended. */\r
+ if( xReturn != errQUEUE_FULL )\r
+ {\r
+ /* When we are here it is possible that we unblocked as space became\r
+ available on the queue. It is also possible that an ISR posted to the\r
+ queue since we left the critical section, so it may be that again there\r
+ is no space. This would only happen if a task and ISR post onto the\r
+ same queue. */\r
+ taskENTER_CRITICAL();\r
+ {\r
+ if( pxQueue->uxMessagesWaiting < pxQueue->uxLength )\r
+ {\r
+ /* There is room in the queue, copy the data into the queue. */ \r
+ prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition );\r
+ xReturn = pdPASS;\r
+ \r
+ /* Update the TxLock count so prvUnlockQueue knows to check for\r
+ tasks waiting for data to become available in the queue. */\r
+ ++( pxQueue->xTxLock );\r
+ }\r
+ else\r
+ {\r
+ xReturn = errQUEUE_FULL;\r
+ }\r
+ }\r
+ taskEXIT_CRITICAL();\r
+ }\r
+\r
+ if( xReturn == errQUEUE_FULL )\r
+ {\r
+ if( xTicksToWait > 0 )\r
+ {\r
+ if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE )\r
+ {\r
+ xReturn = queueERRONEOUS_UNBLOCK;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ while( xReturn == queueERRONEOUS_UNBLOCK );\r
+\r
+ prvUnlockQueue( pxQueue );\r
+ xTaskResumeAll();\r
+\r
+ return xReturn;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+#if configUSE_ALTERNATIVE_API == 1\r
+\r
+ signed portBASE_TYPE xQueueAltGenericSend( xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition )\r
+ {\r
+ signed portBASE_TYPE xReturn;\r
+ xTimeOutType xTimeOut;\r
+\r
+ /* The source code that implements the alternative (Alt) API is much \r
+ simpler because it executes everything from within a critical section. \r
+ This is the approach taken by many other RTOSes, but FreeRTOS.org has the \r
+ preferred fully featured API too. The fully featured API has more \r
+ complex code that takes longer to execute, but makes much less use of \r
+ critical sections. Therefore the alternative API sacrifices interrupt \r
+ responsiveness to gain execution speed, whereas the fully featured API\r
+ sacrifices execution speed to ensure better interrupt responsiveness. */\r
+\r
+ taskENTER_CRITICAL();\r
+ {\r
+ /* Capture the current time status for future reference. */\r
+ vTaskSetTimeOutState( &xTimeOut );\r
+\r
+ /* If the queue is already full we may have to block. */\r
+ do\r
+ {\r
+ if( pxQueue->uxMessagesWaiting == pxQueue->uxLength )\r
+ {\r
+ /* The queue is full - do we want to block or just leave without\r
+ posting? */\r
+ if( xTicksToWait > ( portTickType ) 0 )\r
+ {\r
+ /* We are going to place ourselves on the xTasksWaitingToSend \r
+ event list, and will get woken should the delay expire, or \r
+ space become available on the queue. */\r
+ vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToSend ), xTicksToWait );\r
+ \r
+ /* Force a context switch now as we are blocked. We can do\r
+ this from within a critical section as the task we are\r
+ switching to has its own context. When we return here (i.e.\r
+ we unblock) we will leave the critical section as normal. */\r
+ taskYIELD();\r
+ }\r
+ }\r
+ \r
+ if( pxQueue->uxMessagesWaiting < pxQueue->uxLength )\r
+ {\r
+ /* There is room in the queue, copy the data into the queue. */ \r
+ prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition );\r
+ xReturn = pdPASS;\r
+\r
+ if( !listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) )\r
+ {\r
+ if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE )\r
+ {\r
+ /* The task waiting has a higher priority. */\r
+ taskYIELD();\r
+ }\r
+ } \r
+ }\r
+ else\r
+ {\r
+ xReturn = errQUEUE_FULL;\r
+\r
+ if( xTicksToWait > 0 )\r
+ { \r
+ if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE )\r
+ {\r
+ /* Another task must have accessed the queue between \r
+ this task unblocking and actually executing. */\r
+ xReturn = queueERRONEOUS_UNBLOCK;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ while( xReturn == queueERRONEOUS_UNBLOCK );\r
+ }\r
+ taskEXIT_CRITICAL();\r
+\r
+ return xReturn;\r
+ }\r
+\r
+#endif /* configUSE_ALTERNATIVE_API */\r
+/*-----------------------------------------------------------*/\r
+\r
+#if configUSE_ALTERNATIVE_API == 1\r
+\r
+ signed portBASE_TYPE xQueueAltGenericReceive( xQueueHandle pxQueue, const void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking )\r
+ {\r
+ signed portBASE_TYPE xReturn = pdTRUE;\r
+ xTimeOutType xTimeOut;\r
+ signed portCHAR *pcOriginalReadPosition;\r
+\r
+ /* The source code that implements the alternative (Alt) API is much \r
+ simpler because it executes everything from within a critical section. \r
+ This is the approach taken by many other RTOSes, but FreeRTOS.org has the \r
+ preferred fully featured API too. The fully featured API has more \r
+ complex code that takes longer to execute, but makes much less use of \r
+ critical sections. Therefore the alternative API sacrifices interrupt \r
+ responsiveness to gain execution speed, whereas the fully featured API\r
+ sacrifices execution speed to ensure better interrupt responsiveness. */\r
+\r
+ taskENTER_CRITICAL();\r
+ {\r
+ /* Capture the current time status for future reference. */\r
+ vTaskSetTimeOutState( &xTimeOut );\r
+\r
+ do\r
+ {\r
+ /* If there are no messages in the queue we may have to block. */\r
+ if( pxQueue->uxMessagesWaiting == ( unsigned portBASE_TYPE ) 0 )\r
+ {\r
+ /* There are no messages in the queue, do we want to block or just\r
+ leave with nothing? */ \r
+ if( xTicksToWait > ( portTickType ) 0 )\r
+ {\r
+ #if ( configUSE_MUTEXES == 1 )\r
+ {\r
+ if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX )\r
+ {\r
+ vTaskPriorityInherit( ( void * const ) pxQueue->pxMutexHolder );\r
+ }\r
+ }\r
+ #endif\r
+ \r
+ vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait );\r
+ taskYIELD();\r
+ }\r
+ }\r
+ \r
+ if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 )\r
+ {\r
+ /* Remember our read position in case we are just peeking. */\r
+ pcOriginalReadPosition = pxQueue->pcReadFrom;\r
+\r
+ prvCopyDataFromQueue( pxQueue, pvBuffer );\r
+\r
+ if( xJustPeeking == pdFALSE )\r
+ {\r
+ /* We are actually removing data. */\r
+ --( pxQueue->uxMessagesWaiting );\r
+ \r
+ #if ( configUSE_MUTEXES == 1 )\r
+ {\r
+ if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX )\r
+ {\r
+ /* Record the information required to implement\r
+ priority inheritance should it become necessary. */\r
+ pxQueue->pxMutexHolder = xTaskGetCurrentTaskHandle();\r
+ }\r
+ }\r
+ #endif\r
+\r
+ if( !listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) )\r
+ {\r
+ if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE )\r
+ {\r
+ /* The task waiting has a higher priority. */\r
+ taskYIELD();\r
+ }\r
+ }\r
+ }\r
+ else\r
+ {\r
+ /* We are not removing the data, so reset our read\r
+ pointer. */\r
+ pxQueue->pcReadFrom = pcOriginalReadPosition;\r
+ }\r
+ \r
+ xReturn = pdPASS; \r
+ }\r
+ else\r
+ {\r
+ xReturn = errQUEUE_EMPTY;\r
+\r
+ if( xTicksToWait > 0 )\r
+ {\r
+ if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE )\r
+ {\r
+ xReturn = queueERRONEOUS_UNBLOCK;\r
+ }\r
+ }\r
+ }\r
+\r
+ } while( xReturn == queueERRONEOUS_UNBLOCK );\r
+ }\r
+ taskEXIT_CRITICAL();\r
+\r
+ return xReturn;\r
+ }\r
+\r
+#endif /* configUSE_ALTERNATIVE_API */\r
+/*-----------------------------------------------------------*/\r
+\r
+signed portBASE_TYPE xQueueGenericSendFromISR( xQueueHandle pxQueue, const void * const pvItemToQueue, signed portBASE_TYPE xTaskPreviouslyWoken, portBASE_TYPE xCopyPosition )\r
+{\r
+ /* Similar to xQueueGenericSend, except we don't block if there is no room\r
+ in the queue. Also we don't directly wake a task that was blocked on a\r
+ queue read, instead we return a flag to say whether a context switch is\r
+ required or not (i.e. has a task with a higher priority than us been woken\r
+ by this post). */\r
+ if( pxQueue->uxMessagesWaiting < pxQueue->uxLength )\r
+ {\r
+ prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition );\r
+\r
+ /* If the queue is locked we do not alter the event list. This will\r
+ be done when the queue is unlocked later. */\r
+ if( pxQueue->xTxLock == queueUNLOCKED )\r
+ {\r
+ /* We only want to wake one task per ISR, so check that a task has\r
+ not already been woken. */\r
+ if( !xTaskPreviouslyWoken ) \r
+ {\r
+ if( !listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) )\r
+ {\r
+ if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE )\r
+ {\r
+ /* The task waiting has a higher priority so record that a\r
+ context switch is required. */\r
+ return pdTRUE;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ else\r
+ {\r
+ /* Increment the lock count so the task that unlocks the queue\r
+ knows that data was posted while it was locked. */\r
+ ++( pxQueue->xTxLock );\r
+ }\r
+ }\r
+\r
+ return xTaskPreviouslyWoken;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+signed portBASE_TYPE xQueueGenericReceive( xQueueHandle pxQueue, const void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking )\r
+{\r
+signed portBASE_TYPE xReturn = pdTRUE;\r
+xTimeOutType xTimeOut;\r
+signed portCHAR *pcOriginalReadPosition;\r
+\r
+ /* This function is very similar to xQueueGenericSend(). See comments\r
+ within xQueueGenericSend() for a more detailed explanation.\r
+\r
+ Make sure other tasks do not access the queue. */\r
+ vTaskSuspendAll();\r
+\r
+ /* Capture the current time status for future reference. */\r
+ vTaskSetTimeOutState( &xTimeOut );\r
+\r
+ /* Make sure interrupts do not access the queue. */\r
+ prvLockQueue( pxQueue );\r
+\r
+ do\r
+ {\r
+ /* If there are no messages in the queue we may have to block. */\r
+ if( prvIsQueueEmpty( pxQueue ) )\r
+ {\r
+ /* There are no messages in the queue, do we want to block or just\r
+ leave with nothing? */ \r
+ if( xTicksToWait > ( portTickType ) 0 )\r
+ {\r
+ #if ( configUSE_MUTEXES == 1 )\r
+ {\r
+ if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX )\r
+ {\r
+ portENTER_CRITICAL();\r
+ vTaskPriorityInherit( ( void * ) pxQueue->pxMutexHolder );\r
+ portEXIT_CRITICAL();\r
+ }\r
+ }\r
+ #endif\r
+ \r
+ vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait );\r
+ taskENTER_CRITICAL();\r
+ {\r
+ prvUnlockQueue( pxQueue );\r
+ if( !xTaskResumeAll() )\r
+ {\r
+ taskYIELD();\r
+ }\r
+\r
+ if( pxQueue->uxMessagesWaiting == ( unsigned portBASE_TYPE ) 0 )\r
+ {\r
+ /* We unblocked but the queue is empty. We probably\r
+ timed out. */\r
+ xReturn = errQUEUE_EMPTY;\r
+ }\r
+ \r
+ vTaskSuspendAll();\r
+ prvLockQueue( pxQueue );\r
+ }\r
+ taskEXIT_CRITICAL();\r
+ }\r
+ }\r
+ \r
+ if( xReturn != errQUEUE_EMPTY )\r
+ {\r
+ taskENTER_CRITICAL();\r
+ {\r
+ if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 )\r
+ {\r
+ /* Remember our read position in case we are just peeking. */\r
+ pcOriginalReadPosition = pxQueue->pcReadFrom;\r
+\r
+ prvCopyDataFromQueue( pxQueue, pvBuffer );\r
+\r
+ if( xJustPeeking == pdFALSE )\r
+ {\r
+ /* We are actually removing data. */\r
+ --( pxQueue->uxMessagesWaiting );\r
+ \r
+ /* Increment the lock count so prvUnlockQueue knows to check for\r
+ tasks waiting for space to become available on the queue. */\r
+ ++( pxQueue->xRxLock );\r
+ \r
+ #if ( configUSE_MUTEXES == 1 )\r
+ {\r
+ if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX )\r
+ {\r
+ /* Record the information required to implement\r
+ priority inheritance should it become necessary. */\r
+ pxQueue->pxMutexHolder = xTaskGetCurrentTaskHandle();\r
+ }\r
+ }\r
+ #endif\r
+ }\r
+ else\r
+ {\r
+ /* We are not removing the data, so reset our read\r
+ pointer. */\r
+ pxQueue->pcReadFrom = pcOriginalReadPosition;\r
+\r
+ /* The data is being left in the queue, so increment the\r
+ lock count so prvUnlockQueue knows to check for other\r
+ tasks waiting for the data to be available. */\r
+ ++( pxQueue->xTxLock ); \r
+ }\r
+ \r
+ xReturn = pdPASS; \r
+ }\r
+ else\r
+ {\r
+ xReturn = errQUEUE_EMPTY;\r
+ }\r
+ }\r
+ taskEXIT_CRITICAL();\r
+ }\r
+\r
+ if( xReturn == errQUEUE_EMPTY )\r
+ {\r
+ if( xTicksToWait > 0 )\r
+ {\r
+ if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE )\r
+ {\r
+ xReturn = queueERRONEOUS_UNBLOCK;\r
+ }\r
+ }\r
+ }\r
+ } while( xReturn == queueERRONEOUS_UNBLOCK );\r
+\r
+ /* We no longer require exclusive access to the queue. */\r
+ prvUnlockQueue( pxQueue );\r
+ xTaskResumeAll();\r
+\r
+ return xReturn;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+signed portBASE_TYPE xQueueReceiveFromISR( xQueueHandle pxQueue, const void * const pvBuffer, signed portBASE_TYPE *pxTaskWoken )\r
+{\r
+signed portBASE_TYPE xReturn;\r
+\r
+ /* We cannot block from an ISR, so check there is data available. */\r
+ if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 )\r
+ {\r
+ prvCopyDataFromQueue( pxQueue, pvBuffer );\r
+ --( pxQueue->uxMessagesWaiting );\r
+\r
+ /* If the queue is locked we will not modify the event list. Instead\r
+ we update the lock count so the task that unlocks the queue will know\r
+ that an ISR has removed data while the queue was locked. */\r
+ if( pxQueue->xRxLock == queueUNLOCKED )\r
+ {\r
+ /* We only want to wake one task per ISR, so check that a task has\r
+ not already been woken. */\r
+ if( !( *pxTaskWoken ) )\r
+ {\r
+ if( !listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) )\r
+ {\r
+ if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE )\r
+ {\r
+ /* The task waiting has a higher priority than us so\r
+ force a context switch. */\r
+ *pxTaskWoken = pdTRUE;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ else\r
+ {\r
+ /* Increment the lock count so the task that unlocks the queue\r
+ knows that data was removed while it was locked. */\r
+ ++( pxQueue->xRxLock );\r
+ }\r
+\r
+ xReturn = pdPASS;\r
+ }\r
+ else\r
+ {\r
+ xReturn = pdFAIL;\r
+ }\r
+\r
+ return xReturn;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+unsigned portBASE_TYPE uxQueueMessagesWaiting( const xQueueHandle pxQueue )\r
+{\r
+unsigned portBASE_TYPE uxReturn;\r
+\r
+ taskENTER_CRITICAL();\r
+ uxReturn = pxQueue->uxMessagesWaiting;\r
+ taskEXIT_CRITICAL();\r
+\r
+ return uxReturn;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vQueueDelete( xQueueHandle pxQueue )\r
+{\r
+ vPortFree( pxQueue->pcHead );\r
+ vPortFree( pxQueue );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvCopyDataToQueue( xQUEUE *pxQueue, const void *pvItemToQueue, portBASE_TYPE xPosition )\r
+{\r
+ if( pxQueue->uxItemSize == 0 )\r
+ {\r
+ #if ( configUSE_MUTEXES == 1 )\r
+ {\r
+ if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX )\r
+ {\r
+ /* The mutex is no longer being held. */\r
+ vTaskPriorityDisinherit( ( void * ) pxQueue->pxMutexHolder );\r
+ pxQueue->pxMutexHolder = NULL;\r
+ }\r
+ }\r
+ #endif\r
+ }\r
+ else if( xPosition == queueSEND_TO_BACK )\r
+ {\r
+ memcpy( ( void * ) pxQueue->pcWriteTo, pvItemToQueue, ( unsigned ) pxQueue->uxItemSize );\r
+ pxQueue->pcWriteTo += pxQueue->uxItemSize;\r
+ if( pxQueue->pcWriteTo >= pxQueue->pcTail )\r
+ {\r
+ pxQueue->pcWriteTo = pxQueue->pcHead;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ memcpy( ( void * ) pxQueue->pcReadFrom, pvItemToQueue, ( unsigned ) pxQueue->uxItemSize );\r
+ pxQueue->pcReadFrom -= pxQueue->uxItemSize;\r
+ if( pxQueue->pcReadFrom < pxQueue->pcHead )\r
+ {\r
+ pxQueue->pcReadFrom = ( pxQueue->pcTail - pxQueue->uxItemSize );\r
+ } \r
+ }\r
+\r
+ ++( pxQueue->uxMessagesWaiting );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvCopyDataFromQueue( xQUEUE * const pxQueue, const void *pvBuffer )\r
+{\r
+ if( pxQueue->uxQueueType != queueQUEUE_IS_MUTEX )\r
+ {\r
+ pxQueue->pcReadFrom += pxQueue->uxItemSize;\r
+ if( pxQueue->pcReadFrom >= pxQueue->pcTail )\r
+ {\r
+ pxQueue->pcReadFrom = pxQueue->pcHead;\r
+ }\r
+ memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->pcReadFrom, ( unsigned ) pxQueue->uxItemSize );\r
+ } \r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvUnlockQueue( xQueueHandle pxQueue )\r
+{\r
+ /* THIS FUNCTION MUST BE CALLED WITH THE SCHEDULER SUSPENDED. */\r
+\r
+ /* The lock counts contains the number of extra data items placed or\r
+ removed from the queue while the queue was locked. When a queue is\r
+ locked items can be added or removed, but the event lists cannot be\r
+ updated. */\r
+ taskENTER_CRITICAL();\r
+ {\r
+ --( pxQueue->xTxLock );\r
+\r
+ /* See if data was added to the queue while it was locked. */\r
+ if( pxQueue->xTxLock > queueUNLOCKED )\r
+ {\r
+ pxQueue->xTxLock = queueUNLOCKED;\r
+\r
+ /* Data was posted while the queue was locked. Are any tasks\r
+ blocked waiting for data to become available? */\r
+ if( !listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) )\r
+ {\r
+ /* Tasks that are removed from the event list will get added to\r
+ the pending ready list as the scheduler is still suspended. */\r
+ if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE )\r
+ {\r
+ /* The task waiting has a higher priority so record that a\r
+ context switch is required. */\r
+ vTaskMissedYield();\r
+ }\r
+ } \r
+ }\r
+ }\r
+ taskEXIT_CRITICAL();\r
+\r
+ /* Do the same for the Rx lock. */\r
+ taskENTER_CRITICAL();\r
+ {\r
+ --( pxQueue->xRxLock );\r
+\r
+ if( pxQueue->xRxLock > queueUNLOCKED )\r
+ {\r
+ pxQueue->xRxLock = queueUNLOCKED;\r
+\r
+ if( !listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) )\r
+ {\r
+ if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE )\r
+ {\r
+ vTaskMissedYield();\r
+ }\r
+ } \r
+ }\r
+ }\r
+ taskEXIT_CRITICAL();\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static signed portBASE_TYPE prvIsQueueEmpty( const xQueueHandle pxQueue )\r
+{\r
+signed portBASE_TYPE xReturn;\r
+\r
+ taskENTER_CRITICAL();\r
+ xReturn = ( pxQueue->uxMessagesWaiting == ( unsigned portBASE_TYPE ) 0 );\r
+ taskEXIT_CRITICAL();\r
+\r
+ return xReturn;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static signed portBASE_TYPE prvIsQueueFull( const xQueueHandle pxQueue )\r
+{\r
+signed portBASE_TYPE xReturn;\r
+\r
+ taskENTER_CRITICAL();\r
+ xReturn = ( pxQueue->uxMessagesWaiting == pxQueue->uxLength );\r
+ taskEXIT_CRITICAL();\r
+\r
+ return xReturn;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+#if configUSE_CO_ROUTINES == 1\r
+signed portBASE_TYPE xQueueCRSend( xQueueHandle pxQueue, const void *pvItemToQueue, portTickType xTicksToWait )\r
+{\r
+signed portBASE_TYPE xReturn;\r
+ \r
+ /* If the queue is already full we may have to block. A critical section\r
+ is required to prevent an interrupt removing something from the queue\r
+ between the check to see if the queue is full and blocking on the queue. */\r
+ portDISABLE_INTERRUPTS();\r
+ {\r
+ if( prvIsQueueFull( pxQueue ) )\r
+ {\r
+ /* The queue is full - do we want to block or just leave without\r
+ posting? */\r
+ if( xTicksToWait > ( portTickType ) 0 )\r
+ {\r
+ /* As this is called from a coroutine we cannot block directly, but\r
+ return indicating that we need to block. */\r
+ vCoRoutineAddToDelayedList( xTicksToWait, &( pxQueue->xTasksWaitingToSend ) ); \r
+ portENABLE_INTERRUPTS();\r
+ return errQUEUE_BLOCKED;\r
+ }\r
+ else\r
+ {\r
+ portENABLE_INTERRUPTS();\r
+ return errQUEUE_FULL;\r
+ }\r
+ }\r
+ }\r
+ portENABLE_INTERRUPTS();\r
+ \r
+ portNOP();\r
+\r
+ portDISABLE_INTERRUPTS();\r
+ {\r
+ if( pxQueue->uxMessagesWaiting < pxQueue->uxLength )\r
+ {\r
+ /* There is room in the queue, copy the data into the queue. */ \r
+ prvCopyDataToQueue( pxQueue, pvItemToQueue, queueSEND_TO_BACK );\r
+ xReturn = pdPASS;\r
+\r
+ /* Were any co-routines waiting for data to become available? */\r
+ if( !listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) )\r
+ {\r
+ /* In this instance the co-routine could be placed directly\r
+ into the ready list as we are within a critical section.\r
+ Instead the same pending ready list mechanism is used as if\r
+ the event were caused from within an interrupt. */\r
+ if( xCoRoutineRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE )\r
+ {\r
+ /* The co-routine waiting has a higher priority so record\r
+ that a yield might be appropriate. */\r
+ xReturn = errQUEUE_YIELD;\r
+ }\r
+ }\r
+ }\r
+ else\r
+ {\r
+ xReturn = errQUEUE_FULL;\r
+ }\r
+ }\r
+ portENABLE_INTERRUPTS();\r
+\r
+ return xReturn;\r
+}\r
+#endif\r
+/*-----------------------------------------------------------*/\r
+\r
+#if configUSE_CO_ROUTINES == 1\r
+signed portBASE_TYPE xQueueCRReceive( xQueueHandle pxQueue, void *pvBuffer, portTickType xTicksToWait )\r
+{\r
+signed portBASE_TYPE xReturn;\r
+\r
+ /* If the queue is already empty we may have to block. A critical section\r
+ is required to prevent an interrupt adding something to the queue\r
+ between the check to see if the queue is empty and blocking on the queue. */\r
+ portDISABLE_INTERRUPTS();\r
+ {\r
+ if( pxQueue->uxMessagesWaiting == ( unsigned portBASE_TYPE ) 0 )\r
+ {\r
+ /* There are no messages in the queue, do we want to block or just\r
+ leave with nothing? */ \r
+ if( xTicksToWait > ( portTickType ) 0 )\r
+ {\r
+ /* As this is a co-routine we cannot block directly, but return\r
+ indicating that we need to block. */\r
+ vCoRoutineAddToDelayedList( xTicksToWait, &( pxQueue->xTasksWaitingToReceive ) );\r
+ portENABLE_INTERRUPTS();\r
+ return errQUEUE_BLOCKED;\r
+ }\r
+ else\r
+ {\r
+ portENABLE_INTERRUPTS();\r
+ return errQUEUE_FULL;\r
+ }\r
+ }\r
+ }\r
+ portENABLE_INTERRUPTS();\r
+\r
+ portNOP();\r
+\r
+ portDISABLE_INTERRUPTS();\r
+ {\r
+ if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 )\r
+ {\r
+ /* Data is available from the queue. */\r
+ pxQueue->pcReadFrom += pxQueue->uxItemSize;\r
+ if( pxQueue->pcReadFrom >= pxQueue->pcTail )\r
+ {\r
+ pxQueue->pcReadFrom = pxQueue->pcHead;\r
+ }\r
+ --( pxQueue->uxMessagesWaiting );\r
+ memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->pcReadFrom, ( unsigned ) pxQueue->uxItemSize );\r
+\r
+ xReturn = pdPASS;\r
+\r
+ /* Were any co-routines waiting for space to become available? */\r
+ if( !listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) )\r
+ {\r
+ /* In this instance the co-routine could be placed directly\r
+ into the ready list as we are within a critical section.\r
+ Instead the same pending ready list mechanism is used as if\r
+ the event were caused from within an interrupt. */\r
+ if( xCoRoutineRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE )\r
+ {\r
+ xReturn = errQUEUE_YIELD;\r
+ }\r
+ } \r
+ }\r
+ else\r
+ {\r
+ xReturn = pdFAIL;\r
+ }\r
+ }\r
+ portENABLE_INTERRUPTS();\r
+\r
+ return xReturn;\r
+}\r
+#endif\r
+/*-----------------------------------------------------------*/\r
+\r
+\r
+\r
+#if configUSE_CO_ROUTINES == 1\r
+signed portBASE_TYPE xQueueCRSendFromISR( xQueueHandle pxQueue, const void *pvItemToQueue, signed portBASE_TYPE xCoRoutinePreviouslyWoken )\r
+{\r
+ /* Cannot block within an ISR so if there is no space on the queue then\r
+ exit without doing anything. */\r
+ if( pxQueue->uxMessagesWaiting < pxQueue->uxLength )\r
+ {\r
+ prvCopyDataToQueue( pxQueue, pvItemToQueue, queueSEND_TO_BACK );\r
+\r
+ /* We only want to wake one co-routine per ISR, so check that a\r
+ co-routine has not already been woken. */\r
+ if( !xCoRoutinePreviouslyWoken ) \r
+ {\r
+ if( !listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) )\r
+ {\r
+ if( xCoRoutineRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE )\r
+ {\r
+ return pdTRUE;\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+ return xCoRoutinePreviouslyWoken;\r
+}\r
+#endif\r
+/*-----------------------------------------------------------*/\r
+\r
+#if configUSE_CO_ROUTINES == 1\r
+signed portBASE_TYPE xQueueCRReceiveFromISR( xQueueHandle pxQueue, void *pvBuffer, signed portBASE_TYPE *pxCoRoutineWoken )\r
+{\r
+signed portBASE_TYPE xReturn;\r
+\r
+ /* We cannot block from an ISR, so check there is data available. If\r
+ not then just leave without doing anything. */\r
+ if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 )\r
+ {\r
+ /* Copy the data from the queue. */\r
+ pxQueue->pcReadFrom += pxQueue->uxItemSize;\r
+ if( pxQueue->pcReadFrom >= pxQueue->pcTail )\r
+ {\r
+ pxQueue->pcReadFrom = pxQueue->pcHead;\r
+ }\r
+ --( pxQueue->uxMessagesWaiting );\r
+ memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->pcReadFrom, ( unsigned ) pxQueue->uxItemSize );\r
+\r
+ if( !( *pxCoRoutineWoken ) )\r
+ {\r
+ if( !listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) )\r
+ {\r
+ if( xCoRoutineRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE )\r
+ {\r
+ *pxCoRoutineWoken = pdTRUE;\r
+ }\r
+ }\r
+ }\r
+\r
+ xReturn = pdPASS;\r
+ }\r
+ else\r
+ {\r
+ xReturn = pdFAIL;\r
+ }\r
+\r
+ return xReturn;\r
+}\r
+#endif\r
+/*-----------------------------------------------------------*/\r
+\r
--- /dev/null
+Each real time kernel port consists of three files that contain the core kernel\r
+components and are common to every port, and one or more files that are \r
+specific to a particular microcontroller and or compiler.\r
+\r
++ The FreeRTOS/Source directory contains the three files that are common to \r
+every port. The kernel is contained within these three files.\r
+\r
++ The FreeRTOS/Source/Portable directory contains the files that are specific to \r
+a particular microcontroller and or compiler.\r
+\r
++ The FreeRTOS/Source/include directory contains the real time kernel header \r
+files.\r
+\r
+See the readme file in the FreeRTOS/Source/Portable directory for more \r
+information.
\ No newline at end of file
--- /dev/null
+/*\r
+ FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.\r
+\r
+ This file is part of the FreeRTOS.org distribution.\r
+\r
+ FreeRTOS.org is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ FreeRTOS.org is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with FreeRTOS.org; if not, write to the Free Software\r
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+\r
+ A special exception to the GPL can be applied should you wish to distribute\r
+ a combined work that includes FreeRTOS.org, without being obliged to provide\r
+ the source code for any proprietary components. See the licensing section\r
+ of http://www.FreeRTOS.org for full details of how and when the exception\r
+ can be applied.\r
+\r
+ ***************************************************************************\r
+\r
+ Please ensure to read the configuration and relevant port sections of the \r
+ online documentation.\r
+\r
+ +++ http://www.FreeRTOS.org +++\r
+ Documentation, latest information, license and contact details. \r
+\r
+ +++ http://www.SafeRTOS.com +++\r
+ A version that is certified for use in safety critical systems.\r
+\r
+ +++ http://www.OpenRTOS.com +++\r
+ Commercial support, development, porting, licensing and training services.\r
+\r
+ ***************************************************************************\r
+*/\r
+\r
+/*\r
+Changes from V1.00:\r
+ \r
+ + Call to portRESTORE_CONTEXT has been removed. The first context\r
+ switch is now performed within sPortStartScheduler().\r
+\r
+Changes from V1.01:\r
+\r
+ + More use of 8bit data types.\r
+ + Function name prefixes changed where the data type returned has changed.\r
+ + configUSE_TRACE_FACILITY is no longer defined by default.\r
+\r
+Changes from V1.2.0\r
+\r
+ + Introduced ucTopReadyPriority. This tracks the highest priority ready\r
+ queue that contains a valid TCB and thus makes the context switch\r
+ slightly faster.\r
+\r
+ + prvAddTaskToReadyQueue() has been made a macro.\r
+\r
+Changes from V1.2.6\r
+\r
+ + Added conditional compilation directives.\r
+ + Extended API.\r
+ + Rearranged function order.\r
+ + Creating a task now causes a context switch if the task being created\r
+ has a higher priority than the calling task - assuming the kernel is\r
+ running.\r
+ + vTaskDelete() now only causes a context switch if the calling task is\r
+ the task being deleted.\r
+\r
+Changes from V2.0.0\r
+\r
+ + Allow the type of the tick count to be 16 or 32 bits.\r
+ + Introduce xPendingReadyList feature to allow the time interrupts have to\r
+ be disabled to be minimised.\r
+ + Remove the #if( INCLUDE_vTaskSuspendAll ) statements. vTaskSuspendAll()\r
+ is now always included as it is used by the scheduler itself.\r
+\r
+Changes from V2.1.0\r
+\r
+ + Bug fix - pxCurrentTCB is now initialised before the call to\r
+ prvInitializeTaskLists(). Previously pxCurrentTCB could be accessed\r
+ while null.\r
+\r
+Changed from V2.1.1\r
+\r
+ + Change to where lStackSize is declared within sTaskCreate() to prevent\r
+ compiler warnings with 8051 port.\r
+\r
+Changes from V2.2.0\r
+\r
+ + Explicit use of 'signed' qualifier on portCHAR types added.\r
+ + Changed odd calculation of initial pxTopOfStack value when\r
+ portSTACK_GROWTH < 0.\r
+ + Removed pcVersionNumber definition.\r
+\r
+Changes from V2.5.3\r
+\r
+ + cTaskResumeAll() modified to ensure it can be called prior to the task\r
+ lists being initialised.\r
+\r
+Changes from V2.5.5\r
+\r
+ + Added API function vTaskDelayUntil().\r
+ + Added INCLUDE_vTaskDelay conditional compilation.\r
+\r
+Changes from V2.6.0\r
+\r
+ + Updated the vWriteTraceToBuffer macro to always be 4 byte aligned so it\r
+ can be used on ARM architectures.\r
+ + tskMAX_TASK_NAME_LEN definition replaced with the port specific\r
+ configMAX_TASK_NAME_LEN definition.\r
+ + Removed the call to strcpy when copying across the task name into the\r
+ TCB.\r
+ + Added ucTasksDeleted variable to prevent vTaskSuspendAll() being called\r
+ too often in the idle task.\r
+\r
+Changes between V3.0.0 and V2.6.1\r
+\r
+ + When resuming the scheduler a yield is performed if either a tick has\r
+ been missed, or a task is moved from the pending ready list into a ready\r
+ list. Previously a yield was not performed on this second condition.\r
+ + Introduced the type portBASE_TYPE. This necessitates several API\r
+ changes.\r
+ + Removed the sUsingPreemption variable. The constant defined in\r
+ portmacro.h is now used directly.\r
+ + The idle task can now include an optional hook function - and no longer\r
+ completes its time slice if other tasks with equal priority to it are\r
+ ready to run.\r
+ + See the FreeRTOS.org documentation for more information on V2.x.x to\r
+ V3.x.x modifications.\r
+\r
+Changes from V3.1.1\r
+\r
+ + Modified vTaskPrioritySet() and vTaskResume() to allow these functions to\r
+ be called while the scheduler is suspended.\r
+ + Corrected the task ordering within event lists.\r
+\r
+Changes from V3.2.0\r
+\r
+ + Added function xTaskGetCurrentTaskHandle().\r
+\r
+Changes from V3.2.4\r
+\r
+ + Changed the volatile declarations on some variables to reflect the \r
+ changes to the list definitions.\r
+ + Changed the order of the TCB definition so there is commonality between\r
+ the task control block and a co-routine control block.\r
+ + Allow the scheduler to be started even if no tasks other than the idle\r
+ task has been created. This allows co-routines to run even when no tasks\r
+ have been created.\r
+ + The need for a context switch is now signalled if a task woken by an \r
+ event has a priority greater or equal to the currently running task.\r
+ Previously this was only greater than.\r
+\r
+Changes from V4.0.0\r
+\r
+ + Added the xMissedYield handling.\r
+\r
+Changes from V4.0.1\r
+\r
+ + The function vTaskList() now suspends the scheduler rather than disabling\r
+ interrupts during the creation of the task list. \r
+ + Allow a task to delete itself by passing in its own handle. Previously \r
+ this could only be done by passing in NULL.\r
+ + The tick hook function is now called only within a tick isr. Previously\r
+ it was also called when the tick function was called during the scheduler\r
+ unlocking process.\r
+\r
+Changes from V4.0.3\r
+\r
+ + Extra checks have been placed in vTaskPrioritySet() to avoid unnecessary\r
+ yields.\r
+\r
+Changed from V4.0.4\r
+\r
+ + Bug fix: The 'value' of the event list item is updated when the priority\r
+ of a task is changed. Previously only the priority of the TCB itself was\r
+ changed.\r
+ + When resuming a task a check is first made to see if the task is actually\r
+ suspended.\r
+ + vTaskPrioritySet() and vTaskResume() no longer use the event list item.\r
+ This has not been necessary since V4.0.1 when the xMissedYield handling\r
+ was added.\r
+ + Implement xTaskResumeFromISR().\r
+\r
+Changes from V4.0.5\r
+\r
+ + Added utility functions and xOverflowCount variable to facilitate the\r
+ queue.c changes.\r
+\r
+Changes from V4.1.2\r
+ \r
+ + Tasks that block on events with a timeout of portMAX_DELAY are now\r
+ blocked indefinitely if configINCLUDE_vTaskSuspend is defined. \r
+ Previously portMAX_DELAY was just the longest block time possible.\r
+\r
+Changes from V4.1.3\r
+\r
+ + Very small change made to xTaskCheckForTimeout() as a result of the \r
+ SafeRTOS testing. This corrects the case where the function can return an\r
+ invalid value - but only in an extremely unlikely scenario.\r
+\r
+Changes since V4.3.1:\r
+\r
+ + Added xTaskGetSchedulerState() function.\r
+ + Added prvIsTaskSuspended() to take into account the Occurrence of\r
+ vTaskResume() or vTaskResumeFromISR() being called passing in the\r
+ handle of a task that appears in the Suspended list only because it\r
+ is blocked on an event without a timeout being specified.\r
+ + Updated xTaskCheckForTimeout() to take into account that tasks blocked\r
+ using the Suspended list should never time out.\r
+*/\r
+\r
+#include <stdio.h>\r
+#include <stdlib.h>\r
+#include <string.h>\r
+\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+\r
+/*\r
+ * Macro to define the amount of stack available to the idle task.\r
+ */\r
+#define tskIDLE_STACK_SIZE configMINIMAL_STACK_SIZE\r
+\r
+\r
+/*\r
+ * Default a definitions for backwards compatibility with old\r
+ * portmacro.h files.\r
+ */\r
+#ifndef configMAX_TASK_NAME_LEN\r
+ #define configMAX_TASK_NAME_LEN 16\r
+#endif\r
+\r
+#ifndef configIDLE_SHOULD_YIELD\r
+ #define configIDLE_SHOULD_YIELD 1\r
+#endif\r
+\r
+#if configMAX_TASK_NAME_LEN < 1\r
+ #undef configMAX_TASK_NAME_LEN\r
+ #define configMAX_TASK_NAME_LEN 1\r
+#endif\r
+\r
+#ifndef INCLUDE_xTaskResumeFromISR\r
+ #define INCLUDE_xTaskResumeFromISR 1\r
+#endif\r
+\r
+#ifndef INCLUDE_xTaskGetSchedulerState\r
+ #define INCLUDE_xTaskGetSchedulerState 0\r
+#endif\r
+\r
+/*\r
+ * Task control block. A task control block (TCB) is allocated to each task,\r
+ * and stores the context of the task.\r
+ */\r
+typedef struct tskTaskControlBlock\r
+{\r
+ volatile portSTACK_TYPE *pxTopOfStack; /*< Points to the location of the last item placed on the tasks stack. THIS MUST BE THE FIRST MEMBER OF THE STRUCT. */\r
+ xListItem xGenericListItem; /*< List item used to place the TCB in ready and blocked queues. */\r
+ xListItem xEventListItem; /*< List item used to place the TCB in event lists. */\r
+ unsigned portBASE_TYPE uxPriority; /*< The priority of the task where 0 is the lowest priority. */\r
+ portSTACK_TYPE *pxStack; /*< Points to the start of the stack. */\r
+ signed portCHAR pcTaskName[ configMAX_TASK_NAME_LEN ];/*< Descriptive name given to the task when created. Facilitates debugging only. */\r
+\r
+ #if ( configUSE_TRACE_FACILITY == 1 )\r
+ unsigned portBASE_TYPE uxTCBNumber; /*< This is used for tracing the scheduler and making debugging easier only. */\r
+ #endif \r
+ \r
+ #if ( configUSE_MUTEXES == 1 )\r
+ unsigned portBASE_TYPE uxBasePriority;\r
+ #endif\r
+ \r
+} tskTCB;\r
+\r
+/*lint -e956 */\r
+\r
+tskTCB * volatile pxCurrentTCB = NULL; \r
+\r
+/* Lists for ready and blocked tasks. --------------------*/\r
+\r
+static xList pxReadyTasksLists[ configMAX_PRIORITIES ]; /*< Prioritised ready tasks. */\r
+static xList xDelayedTaskList1; /*< Delayed tasks. */\r
+static xList xDelayedTaskList2; /*< Delayed tasks (two lists are used - one for delays that have overflowed the current tick count. */\r
+static xList * volatile pxDelayedTaskList; /*< Points to the delayed task list currently being used. */\r
+static xList * volatile pxOverflowDelayedTaskList; /*< Points to the delayed task list currently being used to hold tasks that have overflowed the current tick count. */\r
+static xList xPendingReadyList; /*< Tasks that have been readied while the scheduler was suspended. They will be moved to the ready queue when the scheduler is resumed. */\r
+\r
+#if ( INCLUDE_vTaskDelete == 1 )\r
+\r
+ static volatile xList xTasksWaitingTermination; /*< Tasks that have been deleted - but the their memory not yet freed. */\r
+ static volatile unsigned portBASE_TYPE uxTasksDeleted = ( unsigned portBASE_TYPE ) 0;\r
+\r
+#endif\r
+\r
+#if ( INCLUDE_vTaskSuspend == 1 )\r
+\r
+ static xList xSuspendedTaskList; /*< Tasks that are currently suspended. */\r
+\r
+#endif\r
+\r
+/* File private variables. --------------------------------*/\r
+static volatile unsigned portBASE_TYPE uxCurrentNumberOfTasks = ( unsigned portBASE_TYPE ) 0;\r
+static volatile portTickType xTickCount = ( portTickType ) 0;\r
+static unsigned portBASE_TYPE uxTopUsedPriority = tskIDLE_PRIORITY;\r
+static volatile unsigned portBASE_TYPE uxTopReadyPriority = tskIDLE_PRIORITY;\r
+static volatile signed portBASE_TYPE xSchedulerRunning = pdFALSE;\r
+static volatile unsigned portBASE_TYPE uxSchedulerSuspended = ( unsigned portBASE_TYPE ) pdFALSE;\r
+static volatile unsigned portBASE_TYPE uxMissedTicks = ( unsigned portBASE_TYPE ) 0;\r
+static volatile portBASE_TYPE xMissedYield = ( portBASE_TYPE ) pdFALSE;\r
+static volatile portBASE_TYPE xNumOfOverflows = ( portBASE_TYPE ) 0;\r
+/* Debugging and trace facilities private variables and macros. ------------*/\r
+\r
+/*\r
+ * The value used to fill the stack of a task when the task is created. This\r
+ * is used purely for checking the high water mark for tasks.\r
+ */\r
+#define tskSTACK_FILL_BYTE ( 0xa5 )\r
+\r
+/*\r
+ * Macros used by vListTask to indicate which state a task is in.\r
+ */\r
+#define tskBLOCKED_CHAR ( ( signed portCHAR ) 'B' )\r
+#define tskREADY_CHAR ( ( signed portCHAR ) 'R' )\r
+#define tskDELETED_CHAR ( ( signed portCHAR ) 'D' )\r
+#define tskSUSPENDED_CHAR ( ( signed portCHAR ) 'S' )\r
+\r
+/*\r
+ * Macros and private variables used by the trace facility.\r
+ */\r
+#if ( configUSE_TRACE_FACILITY == 1 )\r
+\r
+ #define tskSIZE_OF_EACH_TRACE_LINE ( ( unsigned portLONG ) ( sizeof( unsigned portLONG ) + sizeof( unsigned portLONG ) ) )\r
+ static volatile signed portCHAR * volatile pcTraceBuffer;\r
+ static signed portCHAR *pcTraceBufferStart;\r
+ static signed portCHAR *pcTraceBufferEnd;\r
+ static signed portBASE_TYPE xTracing = pdFALSE;\r
+\r
+#endif\r
+\r
+/*\r
+ * Macro that writes a trace of scheduler activity to a buffer. This trace\r
+ * shows which task is running when and is very useful as a debugging tool.\r
+ * As this macro is called each context switch it is a good idea to undefine\r
+ * it if not using the facility.\r
+ */\r
+#if ( configUSE_TRACE_FACILITY == 1 )\r
+\r
+ #define vWriteTraceToBuffer() \\r
+ { \\r
+ if( xTracing ) \\r
+ { \\r
+ static unsigned portBASE_TYPE uxPreviousTask = 255; \\r
+ \\r
+ if( uxPreviousTask != pxCurrentTCB->uxTCBNumber ) \\r
+ { \\r
+ if( ( pcTraceBuffer + tskSIZE_OF_EACH_TRACE_LINE ) < pcTraceBufferEnd ) \\r
+ { \\r
+ uxPreviousTask = pxCurrentTCB->uxTCBNumber; \\r
+ *( unsigned portLONG * ) pcTraceBuffer = ( unsigned portLONG ) xTickCount; \\r
+ pcTraceBuffer += sizeof( unsigned portLONG ); \\r
+ *( unsigned portLONG * ) pcTraceBuffer = ( unsigned portLONG ) uxPreviousTask; \\r
+ pcTraceBuffer += sizeof( unsigned portLONG ); \\r
+ } \\r
+ else \\r
+ { \\r
+ xTracing = pdFALSE; \\r
+ } \\r
+ } \\r
+ } \\r
+ }\r
+\r
+#else\r
+\r
+ #define vWriteTraceToBuffer()\r
+\r
+#endif\r
+\r
+\r
+/*\r
+ * Place the task represented by pxTCB into the appropriate ready queue for\r
+ * the task. It is inserted at the end of the list. One quirk of this is\r
+ * that if the task being inserted is at the same priority as the currently\r
+ * executing task, then it will only be rescheduled after the currently\r
+ * executing task has been rescheduled.\r
+ */\r
+#define prvAddTaskToReadyQueue( pxTCB ) \\r
+{ \\r
+ if( pxTCB->uxPriority > uxTopReadyPriority ) \\r
+ { \\r
+ uxTopReadyPriority = pxTCB->uxPriority; \\r
+ } \\r
+ vListInsertEnd( ( xList * ) &( pxReadyTasksLists[ pxTCB->uxPriority ] ), &( pxTCB->xGenericListItem ) ); \\r
+} \r
+\r
+/*\r
+ * Macro that looks at the list of tasks that are currently delayed to see if\r
+ * any require waking.\r
+ *\r
+ * Tasks are stored in the queue in the order of their wake time - meaning\r
+ * once one tasks has been found whose timer has not expired we need not look\r
+ * any further down the list.\r
+ */\r
+#define prvCheckDelayedTasks() \\r
+{ \\r
+register tskTCB *pxTCB; \\r
+ \\r
+ while( ( pxTCB = ( tskTCB * ) listGET_OWNER_OF_HEAD_ENTRY( pxDelayedTaskList ) ) != NULL ) \\r
+ { \\r
+ if( xTickCount < listGET_LIST_ITEM_VALUE( &( pxTCB->xGenericListItem ) ) ) \\r
+ { \\r
+ break; \\r
+ } \\r
+ vListRemove( &( pxTCB->xGenericListItem ) ); \\r
+ /* Is the task waiting on an event also? */ \\r
+ if( pxTCB->xEventListItem.pvContainer ) \\r
+ { \\r
+ vListRemove( &( pxTCB->xEventListItem ) ); \\r
+ } \\r
+ prvAddTaskToReadyQueue( pxTCB ); \\r
+ } \\r
+} \r
+\r
+/*\r
+ * Several functions take an xTaskHandle parameter that can optionally be NULL,\r
+ * where NULL is used to indicate that the handle of the currently executing\r
+ * task should be used in place of the parameter. This macro simply checks to\r
+ * see if the parameter is NULL and returns a pointer to the appropriate TCB.\r
+ */\r
+#define prvGetTCBFromHandle( pxHandle ) ( ( pxHandle == NULL ) ? ( tskTCB * ) pxCurrentTCB : ( tskTCB * ) pxHandle )\r
+\r
+\r
+/* File private functions. --------------------------------*/\r
+\r
+/*\r
+ * Utility to ready a TCB for a given task. Mainly just copies the parameters\r
+ * into the TCB structure.\r
+ */\r
+static void prvInitialiseTCBVariables( tskTCB *pxTCB, const signed portCHAR * const pcName, unsigned portBASE_TYPE uxPriority );\r
+\r
+/*\r
+ * Utility to ready all the lists used by the scheduler. This is called\r
+ * automatically upon the creation of the first task.\r
+ */\r
+static void prvInitialiseTaskLists( void );\r
+\r
+/*\r
+ * The idle task, which as all tasks is implemented as a never ending loop.\r
+ * The idle task is automatically created and added to the ready lists upon\r
+ * creation of the first user task.\r
+ *\r
+ * The portTASK_FUNCTION_PROTO() macro is used to allow port/compiler specific\r
+ * language extensions. The equivalent prototype for this function is:\r
+ *\r
+ * void prvIdleTask( void *pvParameters );\r
+ *\r
+ */\r
+static portTASK_FUNCTION_PROTO( prvIdleTask, pvParameters );\r
+\r
+/*\r
+ * Utility to free all memory allocated by the scheduler to hold a TCB,\r
+ * including the stack pointed to by the TCB.\r
+ *\r
+ * This does not free memory allocated by the task itself (i.e. memory\r
+ * allocated by calls to pvPortMalloc from within the tasks application code).\r
+ */\r
+#if ( ( INCLUDE_vTaskDelete == 1 ) || ( INCLUDE_vTaskCleanUpResources == 1 ) )\r
+ static void prvDeleteTCB( tskTCB *pxTCB );\r
+#endif\r
+\r
+/*\r
+ * Used only by the idle task. This checks to see if anything has been placed\r
+ * in the list of tasks waiting to be deleted. If so the task is cleaned up\r
+ * and its TCB deleted.\r
+ */\r
+static void prvCheckTasksWaitingTermination( void );\r
+\r
+/*\r
+ * Allocates memory from the heap for a TCB and associated stack. Checks the\r
+ * allocation was successful.\r
+ */\r
+static tskTCB *prvAllocateTCBAndStack( unsigned portSHORT usStackDepth );\r
+\r
+/*\r
+ * Called from vTaskList. vListTasks details all the tasks currently under\r
+ * control of the scheduler. The tasks may be in one of a number of lists.\r
+ * prvListTaskWithinSingleList accepts a list and details the tasks from\r
+ * within just that list.\r
+ *\r
+ * THIS FUNCTION IS INTENDED FOR DEBUGGING ONLY, AND SHOULD NOT BE CALLED FROM\r
+ * NORMAL APPLICATION CODE.\r
+ */\r
+#if ( configUSE_TRACE_FACILITY == 1 )\r
+\r
+ static void prvListTaskWithinSingleList( const signed portCHAR *pcWriteBuffer, xList *pxList, signed portCHAR cStatus );\r
+\r
+#endif\r
+\r
+/*\r
+ * When a task is created, the stack of the task is filled with a known value.\r
+ * This function determines the 'high water mark' of the task stack by\r
+ * determining how much of the stack remains at the original preset value.\r
+ */\r
+#if ( configUSE_TRACE_FACILITY == 1 )\r
+\r
+ unsigned portSHORT usTaskCheckFreeStackSpace( const unsigned portCHAR * pucStackByte );\r
+\r
+#endif\r
+\r
+/*\r
+ * Checks that a task being resumed (unsuspended) is actually in the Suspended\r
+ * state.\r
+ */\r
+#if ( INCLUDE_vTaskSuspend == 1 )\r
+\r
+ static portBASE_TYPE prvIsTaskSuspended( const tskTCB * const pxTCB ); \r
+\r
+#endif\r
+\r
+/*lint +e956 */\r
+\r
+\r
+\r
+\r
+\r
+/*-----------------------------------------------------------\r
+ * TASK CREATION API documented in task.h\r
+ *----------------------------------------------------------*/\r
+\r
+signed portBASE_TYPE xTaskCreate( pdTASK_CODE pvTaskCode, const signed portCHAR * const pcName, unsigned portSHORT usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pxCreatedTask )\r
+{\r
+signed portBASE_TYPE xReturn;\r
+tskTCB * pxNewTCB;\r
+#if ( configUSE_TRACE_FACILITY == 1 )\r
+ static unsigned portBASE_TYPE uxTaskNumber = 0; /*lint !e956 Static is deliberate - this is guarded before use. */\r
+#endif\r
+\r
+ /* Allocate the memory required by the TCB and stack for the new task.\r
+ checking that the allocation was successful. */\r
+ pxNewTCB = prvAllocateTCBAndStack( usStackDepth );\r
+\r
+ if( pxNewTCB != NULL )\r
+ { \r
+ portSTACK_TYPE *pxTopOfStack;\r
+\r
+ /* Setup the newly allocated TCB with the initial state of the task. */\r
+ prvInitialiseTCBVariables( pxNewTCB, pcName, uxPriority );\r
+\r
+ /* Calculate the top of stack address. This depends on whether the\r
+ stack grows from high memory to low (as per the 80x86) or visa versa.\r
+ portSTACK_GROWTH is used to make the result positive or negative as\r
+ required by the port. */\r
+ #if portSTACK_GROWTH < 0\r
+ {\r
+ pxTopOfStack = pxNewTCB->pxStack + ( usStackDepth - 1 );\r
+ }\r
+ #else\r
+ {\r
+ pxTopOfStack = pxNewTCB->pxStack; \r
+ }\r
+ #endif\r
+\r
+ /* Initialize the TCB stack to look as if the task was already running,\r
+ but had been interrupted by the scheduler. The return address is set\r
+ to the start of the task function. Once the stack has been initialised\r
+ the top of stack variable is updated. */\r
+ pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pvTaskCode, pvParameters );\r
+\r
+ /* We are going to manipulate the task queues to add this task to a\r
+ ready list, so must make sure no interrupts occur. */\r
+ portENTER_CRITICAL();\r
+ {\r
+ uxCurrentNumberOfTasks++;\r
+ if( uxCurrentNumberOfTasks == ( unsigned portBASE_TYPE ) 1 )\r
+ {\r
+ /* As this is the first task it must also be the current task. */\r
+ pxCurrentTCB = pxNewTCB;\r
+\r
+ /* This is the first task to be created so do the preliminary\r
+ initialisation required. We will not recover if this call\r
+ fails, but we will report the failure. */\r
+ prvInitialiseTaskLists();\r
+ }\r
+ else\r
+ { \r
+ /* If the scheduler is not already running, make this task the\r
+ current task if it is the highest priority task to be created\r
+ so far. */\r
+ if( xSchedulerRunning == pdFALSE )\r
+ {\r
+ if( pxCurrentTCB->uxPriority <= uxPriority )\r
+ {\r
+ pxCurrentTCB = pxNewTCB; \r
+ }\r
+ }\r
+ } \r
+\r
+ /* Remember the top priority to make context switching faster. Use\r
+ the priority in pxNewTCB as this has been capped to a valid value. */\r
+ if( pxNewTCB->uxPriority > uxTopUsedPriority )\r
+ {\r
+ uxTopUsedPriority = pxNewTCB->uxPriority;\r
+ }\r
+\r
+ #if ( configUSE_TRACE_FACILITY == 1 )\r
+ {\r
+ /* Add a counter into the TCB for tracing only. */\r
+ pxNewTCB->uxTCBNumber = uxTaskNumber;\r
+ uxTaskNumber++;\r
+ }\r
+ #endif\r
+\r
+ prvAddTaskToReadyQueue( pxNewTCB );\r
+\r
+ xReturn = pdPASS;\r
+ }\r
+ portEXIT_CRITICAL();\r
+ }\r
+ else\r
+ {\r
+ xReturn = errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY;\r
+ }\r
+\r
+ if( xReturn == pdPASS )\r
+ {\r
+ if( ( void * ) pxCreatedTask != NULL )\r
+ {\r
+ /* Pass the TCB out - in an anonymous way. The calling function/\r
+ task can use this as a handle to delete the task later if\r
+ required.*/\r
+ *pxCreatedTask = ( xTaskHandle ) pxNewTCB;\r
+ }\r
+\r
+ if( xSchedulerRunning != pdFALSE )\r
+ {\r
+ /* If the created task is of a higher priority than the current task\r
+ then it should run now. */\r
+ if( pxCurrentTCB->uxPriority < uxPriority )\r
+ {\r
+ taskYIELD();\r
+ }\r
+ }\r
+ }\r
+\r
+ return xReturn;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+#if ( INCLUDE_vTaskDelete == 1 )\r
+\r
+ void vTaskDelete( xTaskHandle pxTaskToDelete )\r
+ {\r
+ tskTCB *pxTCB;\r
+\r
+ taskENTER_CRITICAL();\r
+ {\r
+ /* Ensure a yield is performed if the current task is being \r
+ deleted. */\r
+ if( pxTaskToDelete == pxCurrentTCB )\r
+ {\r
+ pxTaskToDelete = NULL;\r
+ }\r
+\r
+ /* If null is passed in here then we are deleting ourselves. */\r
+ pxTCB = prvGetTCBFromHandle( pxTaskToDelete );\r
+\r
+ /* Remove task from the ready list and place in the termination list.\r
+ This will stop the task from be scheduled. The idle task will check\r
+ the termination list and free up any memory allocated by the\r
+ scheduler for the TCB and stack. */\r
+ vListRemove( &( pxTCB->xGenericListItem ) );\r
+\r
+ /* Is the task waiting on an event also? */ \r
+ if( pxTCB->xEventListItem.pvContainer )\r
+ {\r
+ vListRemove( &( pxTCB->xEventListItem ) );\r
+ }\r
+\r
+ vListInsertEnd( ( xList * ) &xTasksWaitingTermination, &( pxTCB->xGenericListItem ) );\r
+\r
+ /* Increment the ucTasksDeleted variable so the idle task knows\r
+ there is a task that has been deleted and that it should therefore\r
+ check the xTasksWaitingTermination list. */\r
+ ++uxTasksDeleted;\r
+ }\r
+ taskEXIT_CRITICAL();\r
+\r
+ /* Force a reschedule if we have just deleted the current task. */\r
+ if( xSchedulerRunning != pdFALSE ) \r
+ {\r
+ if( ( void * ) pxTaskToDelete == NULL )\r
+ {\r
+ taskYIELD();\r
+ }\r
+ }\r
+ }\r
+\r
+#endif\r
+\r
+\r
+\r
+\r
+\r
+\r
+/*-----------------------------------------------------------\r
+ * TASK CONTROL API documented in task.h\r
+ *----------------------------------------------------------*/\r
+\r
+#if ( INCLUDE_vTaskDelayUntil == 1 )\r
+\r
+ void vTaskDelayUntil( portTickType * const pxPreviousWakeTime, portTickType xTimeIncrement )\r
+ {\r
+ portTickType xTimeToWake;\r
+ portBASE_TYPE xAlreadyYielded, xShouldDelay = pdFALSE;\r
+\r
+ vTaskSuspendAll();\r
+ {\r
+ /* Generate the tick time at which the task wants to wake. */\r
+ xTimeToWake = *pxPreviousWakeTime + xTimeIncrement;\r
+\r
+ if( xTickCount < *pxPreviousWakeTime )\r
+ {\r
+ /* The tick count has overflowed since this function was\r
+ lasted called. In this case the only time we should ever\r
+ actually delay is if the wake time has also overflowed,\r
+ and the wake time is greater than the tick time. When this\r
+ is the case it is as if neither time had overflowed. */\r
+ if( ( xTimeToWake < *pxPreviousWakeTime ) && ( xTimeToWake > xTickCount ) )\r
+ {\r
+ xShouldDelay = pdTRUE;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ /* The tick time has not overflowed. In this case we will\r
+ delay if either the wake time has overflowed, and/or the\r
+ tick time is less than the wake time. */\r
+ if( ( xTimeToWake < *pxPreviousWakeTime ) || ( xTimeToWake > xTickCount ) )\r
+ {\r
+ xShouldDelay = pdTRUE;\r
+ }\r
+ }\r
+\r
+ /* Update the wake time ready for the next call. */\r
+ *pxPreviousWakeTime = xTimeToWake;\r
+\r
+ if( xShouldDelay )\r
+ {\r
+ /* We must remove ourselves from the ready list before adding\r
+ ourselves to the blocked list as the same list item is used for\r
+ both lists. */\r
+ vListRemove( ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) );\r
+\r
+ /* The list item will be inserted in wake time order. */\r
+ listSET_LIST_ITEM_VALUE( &( pxCurrentTCB->xGenericListItem ), xTimeToWake );\r
+\r
+ if( xTimeToWake < xTickCount )\r
+ {\r
+ /* Wake time has overflowed. Place this item in the\r
+ overflow list. */\r
+ vListInsert( ( xList * ) pxOverflowDelayedTaskList, ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) );\r
+ }\r
+ else\r
+ {\r
+ /* The wake time has not overflowed, so we can use the\r
+ current block list. */\r
+ vListInsert( ( xList * ) pxDelayedTaskList, ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) );\r
+ }\r
+ }\r
+ }\r
+ xAlreadyYielded = xTaskResumeAll();\r
+\r
+ /* Force a reschedule if xTaskResumeAll has not already done so, we may\r
+ have put ourselves to sleep. */\r
+ if( !xAlreadyYielded )\r
+ {\r
+ taskYIELD();\r
+ }\r
+ } \r
+ \r
+#endif\r
+/*-----------------------------------------------------------*/\r
+\r
+#if ( INCLUDE_vTaskDelay == 1 )\r
+\r
+ void vTaskDelay( portTickType xTicksToDelay )\r
+ {\r
+ portTickType xTimeToWake;\r
+ signed portBASE_TYPE xAlreadyYielded = pdFALSE;\r
+\r
+ /* A delay time of zero just forces a reschedule. */\r
+ if( xTicksToDelay > ( portTickType ) 0 )\r
+ {\r
+ vTaskSuspendAll();\r
+ {\r
+ /* A task that is removed from the event list while the\r
+ scheduler is suspended will not get placed in the ready\r
+ list or removed from the blocked list until the scheduler\r
+ is resumed.\r
+ \r
+ This task cannot be in an event list as it is the currently\r
+ executing task. */\r
+\r
+ /* Calculate the time to wake - this may overflow but this is\r
+ not a problem. */\r
+ xTimeToWake = xTickCount + xTicksToDelay;\r
+\r
+ /* We must remove ourselves from the ready list before adding\r
+ ourselves to the blocked list as the same list item is used for\r
+ both lists. */\r
+ vListRemove( ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) );\r
+\r
+ /* The list item will be inserted in wake time order. */\r
+ listSET_LIST_ITEM_VALUE( &( pxCurrentTCB->xGenericListItem ), xTimeToWake );\r
+\r
+ if( xTimeToWake < xTickCount )\r
+ {\r
+ /* Wake time has overflowed. Place this item in the\r
+ overflow list. */\r
+ vListInsert( ( xList * ) pxOverflowDelayedTaskList, ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) );\r
+ }\r
+ else\r
+ {\r
+ /* The wake time has not overflowed, so we can use the\r
+ current block list. */\r
+ vListInsert( ( xList * ) pxDelayedTaskList, ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) );\r
+ }\r
+ }\r
+ xAlreadyYielded = xTaskResumeAll();\r
+ }\r
+ \r
+ /* Force a reschedule if xTaskResumeAll has not already done so, we may\r
+ have put ourselves to sleep. */\r
+ if( !xAlreadyYielded )\r
+ {\r
+ taskYIELD();\r
+ }\r
+ }\r
+ \r
+#endif\r
+/*-----------------------------------------------------------*/\r
+\r
+#if ( INCLUDE_uxTaskPriorityGet == 1 )\r
+\r
+ unsigned portBASE_TYPE uxTaskPriorityGet( xTaskHandle pxTask )\r
+ {\r
+ tskTCB *pxTCB;\r
+ unsigned portBASE_TYPE uxReturn;\r
+\r
+ taskENTER_CRITICAL();\r
+ {\r
+ /* If null is passed in here then we are changing the\r
+ priority of the calling function. */\r
+ pxTCB = prvGetTCBFromHandle( pxTask );\r
+ uxReturn = pxTCB->uxPriority;\r
+ }\r
+ taskEXIT_CRITICAL();\r
+\r
+ return uxReturn;\r
+ }\r
+\r
+#endif\r
+/*-----------------------------------------------------------*/\r
+\r
+#if ( INCLUDE_vTaskPrioritySet == 1 )\r
+\r
+ void vTaskPrioritySet( xTaskHandle pxTask, unsigned portBASE_TYPE uxNewPriority )\r
+ {\r
+ tskTCB *pxTCB;\r
+ unsigned portBASE_TYPE uxCurrentPriority, xYieldRequired = pdFALSE;\r
+\r
+ /* Ensure the new priority is valid. */\r
+ if( uxNewPriority >= configMAX_PRIORITIES )\r
+ {\r
+ uxNewPriority = configMAX_PRIORITIES - 1;\r
+ }\r
+\r
+ taskENTER_CRITICAL();\r
+ {\r
+ /* If null is passed in here then we are changing the\r
+ priority of the calling function. */\r
+ pxTCB = prvGetTCBFromHandle( pxTask );\r
+ \r
+ #if ( configUSE_MUTEXES == 1 )\r
+ {\r
+ uxCurrentPriority = pxTCB->uxBasePriority;\r
+ }\r
+ #else\r
+ {\r
+ uxCurrentPriority = pxTCB->uxPriority;\r
+ }\r
+ #endif\r
+\r
+ if( uxCurrentPriority != uxNewPriority )\r
+ {\r
+ /* The priority change may have readied a task of higher\r
+ priority than the calling task. */\r
+ if( uxNewPriority > uxCurrentPriority ) \r
+ {\r
+ if( pxTask != NULL )\r
+ {\r
+ /* The priority of another task is being raised. If we\r
+ were raising the priority of the currently running task\r
+ there would be no need to switch as it must have already\r
+ been the highest priority task. */\r
+ xYieldRequired = pdTRUE;\r
+ }\r
+ }\r
+ else if( pxTask == NULL )\r
+ {\r
+ /* Setting our own priority down means there may now be another\r
+ task of higher priority that is ready to execute. */\r
+ xYieldRequired = pdTRUE;\r
+ }\r
+ \r
+ \r
+\r
+ #if ( configUSE_MUTEXES == 1 )\r
+ {\r
+ /* Only change the priority being used if the task is not\r
+ currently using an inherited priority. */\r
+ if( pxTCB->uxBasePriority == pxTCB->uxPriority )\r
+ {\r
+ pxTCB->uxPriority = uxNewPriority;\r
+ }\r
+ \r
+ /* The base priority gets set whatever. */\r
+ pxTCB->uxBasePriority = uxNewPriority; \r
+ }\r
+ #else\r
+ {\r
+ pxTCB->uxPriority = uxNewPriority;\r
+ }\r
+ #endif\r
+\r
+ listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), ( configMAX_PRIORITIES - ( portTickType ) uxNewPriority ) );\r
+\r
+ /* If the task is in the blocked or suspended list we need do\r
+ nothing more than change it's priority variable. However, if\r
+ the task is in a ready list it needs to be removed and placed\r
+ in the queue appropriate to its new priority. */\r
+ if( listIS_CONTAINED_WITHIN( &( pxReadyTasksLists[ uxCurrentPriority ] ), &( pxTCB->xGenericListItem ) ) )\r
+ {\r
+ /* The task is currently in its ready list - remove before adding\r
+ it to it's new ready list. As we are in a critical section we\r
+ can do this even if the scheduler is suspended. */\r
+ vListRemove( &( pxTCB->xGenericListItem ) );\r
+ prvAddTaskToReadyQueue( pxTCB );\r
+ } \r
+ \r
+ if( xYieldRequired == pdTRUE )\r
+ {\r
+ taskYIELD();\r
+ } \r
+ }\r
+ }\r
+ taskEXIT_CRITICAL();\r
+ }\r
+\r
+#endif\r
+/*-----------------------------------------------------------*/\r
+\r
+#if ( INCLUDE_vTaskSuspend == 1 )\r
+\r
+ void vTaskSuspend( xTaskHandle pxTaskToSuspend )\r
+ {\r
+ tskTCB *pxTCB;\r
+\r
+ taskENTER_CRITICAL();\r
+ {\r
+ /* Ensure a yield is performed if the current task is being \r
+ suspended. */\r
+ if( pxTaskToSuspend == pxCurrentTCB )\r
+ {\r
+ pxTaskToSuspend = NULL;\r
+ }\r
+\r
+ /* If null is passed in here then we are suspending ourselves. */\r
+ pxTCB = prvGetTCBFromHandle( pxTaskToSuspend );\r
+\r
+ /* Remove task from the ready/delayed list and place in the suspended list. */\r
+ vListRemove( &( pxTCB->xGenericListItem ) );\r
+\r
+ /* Is the task waiting on an event also? */ \r
+ if( pxTCB->xEventListItem.pvContainer )\r
+ {\r
+ vListRemove( &( pxTCB->xEventListItem ) );\r
+ }\r
+\r
+ vListInsertEnd( ( xList * ) &xSuspendedTaskList, &( pxTCB->xGenericListItem ) );\r
+ }\r
+ taskEXIT_CRITICAL();\r
+\r
+ /* We may have just suspended the current task. */\r
+ if( ( void * ) pxTaskToSuspend == NULL )\r
+ {\r
+ taskYIELD();\r
+ }\r
+ }\r
+\r
+#endif\r
+/*-----------------------------------------------------------*/\r
+\r
+#if ( INCLUDE_vTaskSuspend == 1 )\r
+\r
+ static portBASE_TYPE prvIsTaskSuspended( const tskTCB * const pxTCB )\r
+ {\r
+ portBASE_TYPE xReturn = pdFALSE;\r
+\r
+ /* Is the task we are attempting to resume actually in the\r
+ suspended list? */\r
+ if( listIS_CONTAINED_WITHIN( &xSuspendedTaskList, &( pxTCB->xGenericListItem ) ) != pdFALSE )\r
+ {\r
+ /* Has the task already been resumed from within an ISR? */\r
+ if( listIS_CONTAINED_WITHIN( &xPendingReadyList, &( pxTCB->xEventListItem ) ) != pdTRUE )\r
+ { \r
+ /* Is it in the suspended list because it is in the\r
+ Suspended state? It is possible to be in the suspended\r
+ list because it is blocked on a task with no timeout\r
+ specified. */\r
+ if( listIS_CONTAINED_WITHIN( NULL, &( pxTCB->xEventListItem ) ) == pdTRUE )\r
+ {\r
+ xReturn = pdTRUE;\r
+ }\r
+ }\r
+ }\r
+\r
+ return xReturn;\r
+ }\r
+\r
+#endif\r
+/*-----------------------------------------------------------*/\r
+\r
+#if ( INCLUDE_vTaskSuspend == 1 )\r
+\r
+ void vTaskResume( xTaskHandle pxTaskToResume )\r
+ {\r
+ tskTCB *pxTCB;\r
+\r
+ /* Remove the task from whichever list it is currently in, and place\r
+ it in the ready list. */\r
+ pxTCB = ( tskTCB * ) pxTaskToResume;\r
+\r
+ /* The parameter cannot be NULL as it is impossible to resume the\r
+ currently executing task. */\r
+ if( pxTCB != NULL )\r
+ {\r
+ taskENTER_CRITICAL();\r
+ {\r
+ if( prvIsTaskSuspended( pxTCB ) == pdTRUE )\r
+ {\r
+ /* As we are in a critical section we can access the ready\r
+ lists even if the scheduler is suspended. */\r
+ vListRemove( &( pxTCB->xGenericListItem ) );\r
+ prvAddTaskToReadyQueue( pxTCB );\r
+\r
+ /* We may have just resumed a higher priority task. */\r
+ if( pxTCB->uxPriority >= pxCurrentTCB->uxPriority )\r
+ {\r
+ /* This yield may not cause the task just resumed to run, but\r
+ will leave the lists in the correct state for the next yield. */\r
+ taskYIELD();\r
+ }\r
+ }\r
+ }\r
+ taskEXIT_CRITICAL();\r
+ }\r
+ }\r
+\r
+#endif\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+#if ( ( INCLUDE_xTaskResumeFromISR == 1 ) && ( INCLUDE_vTaskSuspend == 1 ) )\r
+\r
+ portBASE_TYPE xTaskResumeFromISR( xTaskHandle pxTaskToResume )\r
+ {\r
+ portBASE_TYPE xYieldRequired = pdFALSE;\r
+ tskTCB *pxTCB;\r
+\r
+ pxTCB = ( tskTCB * ) pxTaskToResume;\r
+\r
+ if( prvIsTaskSuspended( pxTCB ) == pdTRUE )\r
+ {\r
+ if( uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE )\r
+ {\r
+ xYieldRequired = ( pxTCB->uxPriority >= pxCurrentTCB->uxPriority );\r
+ vListRemove( &( pxTCB->xGenericListItem ) ); \r
+ prvAddTaskToReadyQueue( pxTCB );\r
+ }\r
+ else\r
+ {\r
+ /* We cannot access the delayed or ready lists, so will hold this\r
+ task pending until the scheduler is resumed, at which point a\r
+ yield will be performed if necessary. */\r
+ vListInsertEnd( ( xList * ) &( xPendingReadyList ), &( pxTCB->xEventListItem ) );\r
+ }\r
+ }\r
+\r
+ return xYieldRequired;\r
+ }\r
+\r
+#endif\r
+\r
+\r
+\r
+\r
+/*-----------------------------------------------------------\r
+ * PUBLIC SCHEDULER CONTROL documented in task.h\r
+ *----------------------------------------------------------*/\r
+\r
+\r
+void vTaskStartScheduler( void )\r
+{\r
+portBASE_TYPE xReturn;\r
+\r
+ /* Add the idle task at the lowest priority. */\r
+ xReturn = xTaskCreate( prvIdleTask, ( signed portCHAR * ) "IDLE", tskIDLE_STACK_SIZE, ( void * ) NULL, tskIDLE_PRIORITY, ( xTaskHandle * ) NULL );\r
+\r
+ if( xReturn == pdPASS )\r
+ {\r
+ /* Interrupts are turned off here, to ensure a tick does not occur\r
+ before or during the call to xPortStartScheduler(). The stacks of\r
+ the created tasks contain a status word with interrupts switched on\r
+ so interrupts will automatically get re-enabled when the first task\r
+ starts to run.\r
+ \r
+ STEPPING THROUGH HERE USING A DEBUGGER CAN CAUSE BIG PROBLEMS IF THE\r
+ DEBUGGER ALLOWS INTERRUPTS TO BE PROCESSED. */\r
+ portDISABLE_INTERRUPTS();\r
+\r
+ xSchedulerRunning = pdTRUE;\r
+ xTickCount = ( portTickType ) 0;\r
+\r
+ /* Setting up the timer tick is hardware specific and thus in the\r
+ portable interface. */\r
+ if( xPortStartScheduler() )\r
+ {\r
+ /* Should not reach here as if the scheduler is running the\r
+ function will not return. */\r
+ }\r
+ else\r
+ {\r
+ /* Should only reach here if a task calls xTaskEndScheduler(). */\r
+ }\r
+ }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vTaskEndScheduler( void )\r
+{\r
+ /* Stop the scheduler interrupts and call the portable scheduler end\r
+ routine so the original ISRs can be restored if necessary. The port\r
+ layer must ensure interrupts enable bit is left in the correct state. */\r
+ portDISABLE_INTERRUPTS();\r
+ xSchedulerRunning = pdFALSE;\r
+ vPortEndScheduler();\r
+}\r
+/*----------------------------------------------------------*/\r
+\r
+void vTaskSuspendAll( void )\r
+{\r
+ portENTER_CRITICAL();\r
+ ++uxSchedulerSuspended;\r
+ portEXIT_CRITICAL();\r
+}\r
+/*----------------------------------------------------------*/\r
+\r
+signed portBASE_TYPE xTaskResumeAll( void )\r
+{\r
+register tskTCB *pxTCB;\r
+signed portBASE_TYPE xAlreadyYielded = pdFALSE;\r
+\r
+ /* It is possible that an ISR caused a task to be removed from an event\r
+ list while the scheduler was suspended. If this was the case then the\r
+ removed task will have been added to the xPendingReadyList. Once the\r
+ scheduler has been resumed it is safe to move all the pending ready\r
+ tasks from this list into their appropriate ready list. */\r
+ portENTER_CRITICAL();\r
+ {\r
+ --uxSchedulerSuspended;\r
+\r
+ if( uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE )\r
+ { \r
+ if( uxCurrentNumberOfTasks > ( unsigned portBASE_TYPE ) 0 )\r
+ {\r
+ portBASE_TYPE xYieldRequired = pdFALSE;\r
+ \r
+ /* Move any readied tasks from the pending list into the\r
+ appropriate ready list. */\r
+ while( ( pxTCB = ( tskTCB * ) listGET_OWNER_OF_HEAD_ENTRY( ( ( xList * ) &xPendingReadyList ) ) ) != NULL )\r
+ {\r
+ vListRemove( &( pxTCB->xEventListItem ) );\r
+ vListRemove( &( pxTCB->xGenericListItem ) );\r
+ prvAddTaskToReadyQueue( pxTCB );\r
+ \r
+ /* If we have moved a task that has a priority higher than\r
+ the current task then we should yield. */\r
+ if( pxTCB->uxPriority >= pxCurrentTCB->uxPriority )\r
+ {\r
+ xYieldRequired = pdTRUE;\r
+ }\r
+ }\r
+\r
+ /* If any ticks occurred while the scheduler was suspended then\r
+ they should be processed now. This ensures the tick count does not\r
+ slip, and that any delayed tasks are resumed at the correct time. */\r
+ if( uxMissedTicks > ( unsigned portBASE_TYPE ) 0 )\r
+ {\r
+ while( uxMissedTicks > ( unsigned portBASE_TYPE ) 0 )\r
+ {\r
+ vTaskIncrementTick();\r
+ --uxMissedTicks;\r
+ }\r
+\r
+ /* As we have processed some ticks it is appropriate to yield\r
+ to ensure the highest priority task that is ready to run is\r
+ the task actually running. */\r
+ #if configUSE_PREEMPTION == 1\r
+ {\r
+ xYieldRequired = pdTRUE;\r
+ }\r
+ #endif\r
+ }\r
+ \r
+ if( ( xYieldRequired == pdTRUE ) || ( xMissedYield == pdTRUE ) )\r
+ {\r
+ xAlreadyYielded = pdTRUE;\r
+ xMissedYield = pdFALSE;\r
+ taskYIELD();\r
+ }\r
+ }\r
+ }\r
+ }\r
+ portEXIT_CRITICAL();\r
+\r
+ return xAlreadyYielded;\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+/*-----------------------------------------------------------\r
+ * PUBLIC TASK UTILITIES documented in task.h\r
+ *----------------------------------------------------------*/\r
+\r
+\r
+\r
+portTickType xTaskGetTickCount( void )\r
+{\r
+portTickType xTicks;\r
+\r
+ /* Critical section required if running on a 16 bit processor. */\r
+ taskENTER_CRITICAL();\r
+ {\r
+ xTicks = xTickCount;\r
+ }\r
+ taskEXIT_CRITICAL();\r
+\r
+ return xTicks;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+unsigned portBASE_TYPE uxTaskGetNumberOfTasks( void )\r
+{\r
+unsigned portBASE_TYPE uxNumberOfTasks;\r
+\r
+ taskENTER_CRITICAL();\r
+ uxNumberOfTasks = uxCurrentNumberOfTasks;\r
+ taskEXIT_CRITICAL();\r
+\r
+ return uxNumberOfTasks;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+#if ( ( configUSE_TRACE_FACILITY == 1 ) && ( INCLUDE_vTaskDelete == 1 ) && ( INCLUDE_vTaskSuspend == 1 ) )\r
+\r
+ void vTaskList( signed portCHAR *pcWriteBuffer )\r
+ {\r
+ unsigned portBASE_TYPE uxQueue;\r
+\r
+ /* This is a VERY costly function that should be used for debug only.\r
+ It leaves interrupts disabled for a LONG time. */\r
+\r
+ vTaskSuspendAll();\r
+ {\r
+ /* Run through all the lists that could potentially contain a TCB and\r
+ report the task name, state and stack high water mark. */\r
+\r
+ pcWriteBuffer[ 0 ] = ( signed portCHAR ) 0x00;\r
+ strcat( ( portCHAR * ) pcWriteBuffer, ( const portCHAR * ) "\r\n" );\r
+\r
+ uxQueue = uxTopUsedPriority + 1;\r
+\r
+ do\r
+ {\r
+ uxQueue--;\r
+\r
+ if( !listLIST_IS_EMPTY( &( pxReadyTasksLists[ uxQueue ] ) ) )\r
+ {\r
+ prvListTaskWithinSingleList( pcWriteBuffer, ( xList * ) &( pxReadyTasksLists[ uxQueue ] ), tskREADY_CHAR ); \r
+ }\r
+ }while( uxQueue > ( unsigned portSHORT ) tskIDLE_PRIORITY );\r
+\r
+ if( !listLIST_IS_EMPTY( pxDelayedTaskList ) )\r
+ {\r
+ prvListTaskWithinSingleList( pcWriteBuffer, ( xList * ) pxDelayedTaskList, tskBLOCKED_CHAR );\r
+ }\r
+\r
+ if( !listLIST_IS_EMPTY( pxOverflowDelayedTaskList ) )\r
+ {\r
+ prvListTaskWithinSingleList( pcWriteBuffer, ( xList * ) pxOverflowDelayedTaskList, tskBLOCKED_CHAR );\r
+ }\r
+\r
+ if( !listLIST_IS_EMPTY( &xTasksWaitingTermination ) )\r
+ {\r
+ prvListTaskWithinSingleList( pcWriteBuffer, ( xList * ) &xTasksWaitingTermination, tskDELETED_CHAR );\r
+ }\r
+\r
+ if( !listLIST_IS_EMPTY( &xSuspendedTaskList ) )\r
+ {\r
+ prvListTaskWithinSingleList( pcWriteBuffer, ( xList * ) &xSuspendedTaskList, tskSUSPENDED_CHAR );\r
+ }\r
+ }\r
+ xTaskResumeAll();\r
+ }\r
+\r
+#endif\r
+/*----------------------------------------------------------*/\r
+\r
+#if ( configUSE_TRACE_FACILITY == 1 )\r
+\r
+ void vTaskStartTrace( signed portCHAR * pcBuffer, unsigned portLONG ulBufferSize )\r
+ {\r
+ portENTER_CRITICAL();\r
+ {\r
+ pcTraceBuffer = ( signed portCHAR * )pcBuffer;\r
+ pcTraceBufferStart = pcBuffer;\r
+ pcTraceBufferEnd = pcBuffer + ( ulBufferSize - tskSIZE_OF_EACH_TRACE_LINE );\r
+ xTracing = pdTRUE;\r
+ }\r
+ portEXIT_CRITICAL();\r
+ }\r
+\r
+#endif\r
+/*----------------------------------------------------------*/\r
+\r
+#if ( configUSE_TRACE_FACILITY == 1 )\r
+\r
+ unsigned portLONG ulTaskEndTrace( void )\r
+ {\r
+ unsigned portLONG ulBufferLength;\r
+\r
+ portENTER_CRITICAL();\r
+ xTracing = pdFALSE;\r
+ portEXIT_CRITICAL();\r
+\r
+ ulBufferLength = ( unsigned portLONG ) ( pcTraceBuffer - pcTraceBufferStart );\r
+\r
+ return ulBufferLength;\r
+ }\r
+\r
+#endif\r
+\r
+\r
+\r
+/*-----------------------------------------------------------\r
+ * SCHEDULER INTERNALS AVAILABLE FOR PORTING PURPOSES\r
+ * documented in task.h\r
+ *----------------------------------------------------------*/\r
+\r
+\r
+inline void vTaskIncrementTick( void )\r
+{\r
+ /* Called by the portable layer each time a tick interrupt occurs.\r
+ Increments the tick then checks to see if the new tick value will cause any\r
+ tasks to be unblocked. */\r
+ if( uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE )\r
+ {\r
+ ++xTickCount;\r
+ if( xTickCount == ( portTickType ) 0 )\r
+ {\r
+ xList *pxTemp;\r
+\r
+ /* Tick count has overflowed so we need to swap the delay lists. \r
+ If there are any items in pxDelayedTaskList here then there is \r
+ an error! */\r
+ pxTemp = pxDelayedTaskList;\r
+ pxDelayedTaskList = pxOverflowDelayedTaskList;\r
+ pxOverflowDelayedTaskList = pxTemp;\r
+ xNumOfOverflows++;\r
+ }\r
+\r
+ /* See if this tick has made a timeout expire. */\r
+ prvCheckDelayedTasks();\r
+ }\r
+ else\r
+ {\r
+ ++uxMissedTicks;\r
+\r
+ /* The tick hook gets called at regular intervals, even if the \r
+ scheduler is locked. */\r
+ #if ( configUSE_TICK_HOOK == 1 )\r
+ {\r
+ extern void vApplicationTickHook( void );\r
+\r
+ vApplicationTickHook();\r
+ }\r
+ #endif\r
+ }\r
+\r
+ #if ( configUSE_TICK_HOOK == 1 )\r
+ {\r
+ extern void vApplicationTickHook( void );\r
+\r
+ /* Guard against the tick hook being called when the missed tick\r
+ count is being unwound (when the scheduler is being unlocked. */\r
+ if( uxMissedTicks == 0 )\r
+ {\r
+ vApplicationTickHook();\r
+ }\r
+ }\r
+ #endif\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+#if ( ( INCLUDE_vTaskCleanUpResources == 1 ) && ( INCLUDE_vTaskSuspend == 1 ) )\r
+\r
+ void vTaskCleanUpResources( void )\r
+ {\r
+ unsigned portSHORT usQueue;\r
+ volatile tskTCB *pxTCB;\r
+\r
+ usQueue = ( unsigned portSHORT ) uxTopUsedPriority + ( unsigned portSHORT ) 1;\r
+\r
+ /* Remove any TCB's from the ready queues. */\r
+ do\r
+ {\r
+ usQueue--;\r
+\r
+ while( !listLIST_IS_EMPTY( &( pxReadyTasksLists[ usQueue ] ) ) )\r
+ {\r
+ listGET_OWNER_OF_NEXT_ENTRY( pxTCB, &( pxReadyTasksLists[ usQueue ] ) );\r
+ vListRemove( ( xListItem * ) &( pxTCB->xGenericListItem ) );\r
+\r
+ prvDeleteTCB( ( tskTCB * ) pxTCB );\r
+ }\r
+ }while( usQueue > ( unsigned portSHORT ) tskIDLE_PRIORITY );\r
+\r
+ /* Remove any TCB's from the delayed queue. */\r
+ while( !listLIST_IS_EMPTY( &xDelayedTaskList1 ) )\r
+ {\r
+ listGET_OWNER_OF_NEXT_ENTRY( pxTCB, &xDelayedTaskList1 );\r
+ vListRemove( ( xListItem * ) &( pxTCB->xGenericListItem ) );\r
+\r
+ prvDeleteTCB( ( tskTCB * ) pxTCB );\r
+ }\r
+\r
+ /* Remove any TCB's from the overflow delayed queue. */\r
+ while( !listLIST_IS_EMPTY( &xDelayedTaskList2 ) )\r
+ {\r
+ listGET_OWNER_OF_NEXT_ENTRY( pxTCB, &xDelayedTaskList2 );\r
+ vListRemove( ( xListItem * ) &( pxTCB->xGenericListItem ) );\r
+\r
+ prvDeleteTCB( ( tskTCB * ) pxTCB );\r
+ }\r
+\r
+ while( !listLIST_IS_EMPTY( &xSuspendedTaskList ) )\r
+ {\r
+ listGET_OWNER_OF_NEXT_ENTRY( pxTCB, &xSuspendedTaskList );\r
+ vListRemove( ( xListItem * ) &( pxTCB->xGenericListItem ) );\r
+\r
+ prvDeleteTCB( ( tskTCB * ) pxTCB );\r
+ } \r
+ }\r
+\r
+#endif\r
+/*-----------------------------------------------------------*/\r
+\r
+void vTaskSwitchContext( void )\r
+{\r
+ if( uxSchedulerSuspended != ( unsigned portBASE_TYPE ) pdFALSE )\r
+ {\r
+ /* The scheduler is currently suspended - do not allow a context\r
+ switch. */\r
+ xMissedYield = pdTRUE;\r
+ return;\r
+ }\r
+\r
+ /* Find the highest priority queue that contains ready tasks. */\r
+ while( listLIST_IS_EMPTY( &( pxReadyTasksLists[ uxTopReadyPriority ] ) ) )\r
+ {\r
+ --uxTopReadyPriority;\r
+ }\r
+\r
+ /* listGET_OWNER_OF_NEXT_ENTRY walks through the list, so the tasks of the\r
+ same priority get an equal share of the processor time. */\r
+ listGET_OWNER_OF_NEXT_ENTRY( pxCurrentTCB, &( pxReadyTasksLists[ uxTopReadyPriority ] ) );\r
+ vWriteTraceToBuffer();\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vTaskPlaceOnEventList( const xList * const pxEventList, portTickType xTicksToWait )\r
+{\r
+portTickType xTimeToWake;\r
+\r
+ /* THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED OR THE\r
+ SCHEDULER SUSPENDED. */\r
+\r
+ /* Place the event list item of the TCB in the appropriate event list.\r
+ This is placed in the list in priority order so the highest priority task\r
+ is the first to be woken by the event. */\r
+ vListInsert( ( xList * ) pxEventList, ( xListItem * ) &( pxCurrentTCB->xEventListItem ) );\r
+\r
+ /* We must remove ourselves from the ready list before adding ourselves\r
+ to the blocked list as the same list item is used for both lists. We have\r
+ exclusive access to the ready lists as the scheduler is locked. */\r
+ vListRemove( ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) );\r
+\r
+\r
+ #if ( INCLUDE_vTaskSuspend == 1 )\r
+ { \r
+ if( xTicksToWait == portMAX_DELAY )\r
+ {\r
+ /* Add ourselves to the suspended task list instead of a delayed task\r
+ list to ensure we are not woken by a timing event. We will block\r
+ indefinitely. */\r
+ vListInsertEnd( ( xList * ) &xSuspendedTaskList, ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) );\r
+ }\r
+ else\r
+ {\r
+ /* Calculate the time at which the task should be woken if the event does\r
+ not occur. This may overflow but this doesn't matter. */\r
+ xTimeToWake = xTickCount + xTicksToWait;\r
+ \r
+ listSET_LIST_ITEM_VALUE( &( pxCurrentTCB->xGenericListItem ), xTimeToWake );\r
+ \r
+ if( xTimeToWake < xTickCount )\r
+ {\r
+ /* Wake time has overflowed. Place this item in the overflow list. */\r
+ vListInsert( ( xList * ) pxOverflowDelayedTaskList, ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) );\r
+ }\r
+ else\r
+ {\r
+ /* The wake time has not overflowed, so we can use the current block list. */\r
+ vListInsert( ( xList * ) pxDelayedTaskList, ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) );\r
+ }\r
+ }\r
+ }\r
+ #else\r
+ {\r
+ /* Calculate the time at which the task should be woken if the event does\r
+ not occur. This may overflow but this doesn't matter. */\r
+ xTimeToWake = xTickCount + xTicksToWait;\r
+ \r
+ listSET_LIST_ITEM_VALUE( &( pxCurrentTCB->xGenericListItem ), xTimeToWake );\r
+ \r
+ if( xTimeToWake < xTickCount )\r
+ {\r
+ /* Wake time has overflowed. Place this item in the overflow list. */\r
+ vListInsert( ( xList * ) pxOverflowDelayedTaskList, ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) );\r
+ }\r
+ else\r
+ {\r
+ /* The wake time has not overflowed, so we can use the current block list. */\r
+ vListInsert( ( xList * ) pxDelayedTaskList, ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) );\r
+ }\r
+ }\r
+ #endif\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+signed portBASE_TYPE xTaskRemoveFromEventList( const xList * const pxEventList )\r
+{\r
+tskTCB *pxUnblockedTCB;\r
+portBASE_TYPE xReturn;\r
+\r
+ /* THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED OR THE\r
+ SCHEDULER SUSPENDED. It can also be called from within an ISR. */\r
+\r
+ /* The event list is sorted in priority order, so we can remove the\r
+ first in the list, remove the TCB from the delayed list, and add\r
+ it to the ready list.\r
+ \r
+ If an event is for a queue that is locked then this function will never\r
+ get called - the lock count on the queue will get modified instead. This\r
+ means we can always expect exclusive access to the event list here. */\r
+ pxUnblockedTCB = ( tskTCB * ) listGET_OWNER_OF_HEAD_ENTRY( pxEventList );\r
+ vListRemove( &( pxUnblockedTCB->xEventListItem ) );\r
+\r
+ if( uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE )\r
+ {\r
+ vListRemove( &( pxUnblockedTCB->xGenericListItem ) );\r
+ prvAddTaskToReadyQueue( pxUnblockedTCB );\r
+ }\r
+ else\r
+ {\r
+ /* We cannot access the delayed or ready lists, so will hold this\r
+ task pending until the scheduler is resumed. */\r
+ vListInsertEnd( ( xList * ) &( xPendingReadyList ), &( pxUnblockedTCB->xEventListItem ) );\r
+ }\r
+\r
+ if( pxUnblockedTCB->uxPriority >= pxCurrentTCB->uxPriority )\r
+ {\r
+ /* Return true if the task removed from the event list has\r
+ a higher priority than the calling task. This allows\r
+ the calling task to know if it should force a context\r
+ switch now. */\r
+ xReturn = pdTRUE;\r
+ }\r
+ else\r
+ {\r
+ xReturn = pdFALSE;\r
+ }\r
+\r
+ return xReturn;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vTaskSetTimeOutState( xTimeOutType * const pxTimeOut )\r
+{\r
+ pxTimeOut->xOverflowCount = xNumOfOverflows;\r
+ pxTimeOut->xTimeOnEntering = xTickCount;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+portBASE_TYPE xTaskCheckForTimeOut( xTimeOutType * const pxTimeOut, portTickType * const pxTicksToWait )\r
+{\r
+portBASE_TYPE xReturn;\r
+\r
+ #if ( INCLUDE_vTaskSuspend == 1 )\r
+ /* If INCLUDE_vTaskSuspend is set to 1 and the block time specified is\r
+ the maximum block time then the task should block indefinitely, and\r
+ therefore never time out. */\r
+ if( *pxTicksToWait == portMAX_DELAY )\r
+ {\r
+ xReturn = pdFALSE;\r
+ }\r
+ else /* We are not blocking indefinitely, perform the checks below. */\r
+ #endif\r
+\r
+ if( ( xNumOfOverflows != pxTimeOut->xOverflowCount ) && ( xTickCount >= pxTimeOut->xTimeOnEntering ) )\r
+ {\r
+ /* The tick count is greater than the time at which vTaskSetTimeout()\r
+ was called, but has also overflowed since vTaskSetTimeOut() was called.\r
+ It must have wrapped all the way around and gone past us again. This\r
+ passed since vTaskSetTimeout() was called. */\r
+ xReturn = pdTRUE;\r
+ }\r
+ else if( ( xTickCount - pxTimeOut->xTimeOnEntering ) < *pxTicksToWait )\r
+ {\r
+ /* Not a genuine timeout. Adjust parameters for time remaining. */\r
+ *pxTicksToWait -= ( xTickCount - pxTimeOut->xTimeOnEntering );\r
+ vTaskSetTimeOutState( pxTimeOut );\r
+ xReturn = pdFALSE;\r
+ }\r
+ else\r
+ {\r
+ xReturn = pdTRUE;\r
+ }\r
+\r
+ return xReturn;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vTaskMissedYield( void )\r
+{\r
+ xMissedYield = pdTRUE;\r
+}\r
+\r
+/*\r
+ * -----------------------------------------------------------\r
+ * The Idle task.\r
+ * ----------------------------------------------------------\r
+ *\r
+ * The portTASK_FUNCTION() macro is used to allow port/compiler specific\r
+ * language extensions. The equivalent prototype for this function is:\r
+ *\r
+ * void prvIdleTask( void *pvParameters );\r
+ *\r
+ */\r
+static portTASK_FUNCTION( prvIdleTask, pvParameters )\r
+{\r
+ /* Stop warnings. */\r
+ ( void ) pvParameters;\r
+\r
+ for( ;; )\r
+ {\r
+ /* See if any tasks have been deleted. */\r
+ prvCheckTasksWaitingTermination();\r
+\r
+ #if ( configUSE_PREEMPTION == 0 )\r
+ {\r
+ /* If we are not using preemption we keep forcing a task switch to\r
+ see if any other task has become available. If we are using\r
+ preemption we don't need to do this as any task becoming available\r
+ will automatically get the processor anyway. */\r
+ taskYIELD(); \r
+ }\r
+ #endif\r
+\r
+ #if ( ( configUSE_PREEMPTION == 1 ) && ( configIDLE_SHOULD_YIELD == 1 ) )\r
+ {\r
+ /* When using preemption tasks of equal priority will be\r
+ timesliced. If a task that is sharing the idle priority is ready\r
+ to run then the idle task should yield before the end of the\r
+ timeslice.\r
+ \r
+ A critical region is not required here as we are just reading from\r
+ the list, and an occasional incorrect value will not matter. If\r
+ the ready list at the idle priority contains more than one task\r
+ then a task other than the idle task is ready to execute. */\r
+ if( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ tskIDLE_PRIORITY ] ) ) > ( unsigned portBASE_TYPE ) 1 )\r
+ {\r
+ taskYIELD();\r
+ }\r
+ }\r
+ #endif\r
+\r
+ #if ( configUSE_IDLE_HOOK == 1 )\r
+ {\r
+ extern void vApplicationIdleHook( void );\r
+\r
+ /* Call the user defined function from within the idle task. This\r
+ allows the application designer to add background functionality\r
+ without the overhead of a separate task.\r
+ NOTE: vApplicationIdleHook() MUST NOT, UNDER ANY CIRCUMSTANCES,\r
+ CALL A FUNCTION THAT MIGHT BLOCK. */\r
+ vApplicationIdleHook();\r
+ }\r
+ #endif\r
+ }\r
+} /*lint !e715 pvParameters is not accessed but all task functions require the same prototype. */\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+/*-----------------------------------------------------------\r
+ * File private functions documented at the top of the file.\r
+ *----------------------------------------------------------*/\r
+\r
+\r
+\r
+static void prvInitialiseTCBVariables( tskTCB *pxTCB, const signed portCHAR * const pcName, unsigned portBASE_TYPE uxPriority )\r
+{\r
+ /* Store the function name in the TCB. */\r
+ strncpy( ( char * ) pxTCB->pcTaskName, ( const char * ) pcName, ( unsigned portSHORT ) configMAX_TASK_NAME_LEN );\r
+ pxTCB->pcTaskName[ ( unsigned portSHORT ) configMAX_TASK_NAME_LEN - ( unsigned portSHORT ) 1 ] = '\0';\r
+\r
+ /* This is used as an array index so must ensure it's not too large. */\r
+ if( uxPriority >= configMAX_PRIORITIES )\r
+ {\r
+ uxPriority = configMAX_PRIORITIES - 1;\r
+ }\r
+\r
+ pxTCB->uxPriority = uxPriority;\r
+ #if ( configUSE_MUTEXES == 1 )\r
+ {\r
+ pxTCB->uxBasePriority = uxPriority;\r
+ }\r
+ #endif\r
+\r
+ vListInitialiseItem( &( pxTCB->xGenericListItem ) );\r
+ vListInitialiseItem( &( pxTCB->xEventListItem ) );\r
+\r
+ /* Set the pxTCB as a link back from the xListItem. This is so we can get\r
+ back to the containing TCB from a generic item in a list. */\r
+ listSET_LIST_ITEM_OWNER( &( pxTCB->xGenericListItem ), pxTCB );\r
+\r
+ /* Event lists are always in priority order. */\r
+ listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), configMAX_PRIORITIES - ( portTickType ) uxPriority );\r
+ listSET_LIST_ITEM_OWNER( &( pxTCB->xEventListItem ), pxTCB );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvInitialiseTaskLists( void )\r
+{\r
+unsigned portBASE_TYPE uxPriority;\r
+\r
+ for( uxPriority = 0; uxPriority < configMAX_PRIORITIES; uxPriority++ )\r
+ {\r
+ vListInitialise( ( xList * ) &( pxReadyTasksLists[ uxPriority ] ) );\r
+ }\r
+\r
+ vListInitialise( ( xList * ) &xDelayedTaskList1 );\r
+ vListInitialise( ( xList * ) &xDelayedTaskList2 );\r
+ vListInitialise( ( xList * ) &xPendingReadyList );\r
+\r
+ #if ( INCLUDE_vTaskDelete == 1 )\r
+ {\r
+ vListInitialise( ( xList * ) &xTasksWaitingTermination );\r
+ }\r
+ #endif\r
+\r
+ #if ( INCLUDE_vTaskSuspend == 1 )\r
+ {\r
+ vListInitialise( ( xList * ) &xSuspendedTaskList );\r
+ }\r
+ #endif\r
+\r
+ /* Start with pxDelayedTaskList using list1 and the pxOverflowDelayedTaskList\r
+ using list2. */\r
+ pxDelayedTaskList = &xDelayedTaskList1;\r
+ pxOverflowDelayedTaskList = &xDelayedTaskList2;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvCheckTasksWaitingTermination( void )\r
+{ \r
+ #if ( INCLUDE_vTaskDelete == 1 )\r
+ { \r
+ portBASE_TYPE xListIsEmpty;\r
+\r
+ /* ucTasksDeleted is used to prevent vTaskSuspendAll() being called\r
+ too often in the idle task. */\r
+ if( uxTasksDeleted > ( unsigned portBASE_TYPE ) 0 )\r
+ {\r
+ vTaskSuspendAll();\r
+ xListIsEmpty = listLIST_IS_EMPTY( &xTasksWaitingTermination ); \r
+ xTaskResumeAll();\r
+\r
+ if( !xListIsEmpty )\r
+ {\r
+ tskTCB *pxTCB;\r
+\r
+ portENTER_CRITICAL();\r
+ { \r
+ pxTCB = ( tskTCB * ) listGET_OWNER_OF_HEAD_ENTRY( ( ( xList * ) &xTasksWaitingTermination ) );\r
+ vListRemove( &( pxTCB->xGenericListItem ) );\r
+ --uxCurrentNumberOfTasks;\r
+ --uxTasksDeleted;\r
+ }\r
+ portEXIT_CRITICAL();\r
+\r
+ prvDeleteTCB( pxTCB );\r
+ }\r
+ }\r
+ }\r
+ #endif\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static tskTCB *prvAllocateTCBAndStack( unsigned portSHORT usStackDepth )\r
+{\r
+tskTCB *pxNewTCB;\r
+\r
+ /* Allocate space for the TCB. Where the memory comes from depends on\r
+ the implementation of the port malloc function. */\r
+ pxNewTCB = ( tskTCB * ) pvPortMalloc( sizeof( tskTCB ) );\r
+\r
+ if( pxNewTCB != NULL )\r
+ {\r
+ /* Allocate space for the stack used by the task being created.\r
+ The base of the stack memory stored in the TCB so the task can\r
+ be deleted later if required. */\r
+ pxNewTCB->pxStack = ( portSTACK_TYPE * ) pvPortMalloc( ( ( size_t )usStackDepth ) * sizeof( portSTACK_TYPE ) );\r
+\r
+ if( pxNewTCB->pxStack == NULL )\r
+ {\r
+ /* Could not allocate the stack. Delete the allocated TCB. */\r
+ vPortFree( pxNewTCB ); \r
+ pxNewTCB = NULL; \r
+ } \r
+ else\r
+ {\r
+ /* Just to help debugging. */\r
+ memset( pxNewTCB->pxStack, tskSTACK_FILL_BYTE, usStackDepth * sizeof( portSTACK_TYPE ) );\r
+ }\r
+ }\r
+\r
+ return pxNewTCB;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+#if ( configUSE_TRACE_FACILITY == 1 )\r
+\r
+ static void prvListTaskWithinSingleList( const signed portCHAR *pcWriteBuffer, xList *pxList, signed portCHAR cStatus )\r
+ {\r
+ volatile tskTCB *pxNextTCB, *pxFirstTCB;\r
+ static portCHAR pcStatusString[ 50 ];\r
+ unsigned portSHORT usStackRemaining;\r
+\r
+ /* Write the details of all the TCB's in pxList into the buffer. */\r
+ listGET_OWNER_OF_NEXT_ENTRY( pxFirstTCB, pxList );\r
+ do\r
+ {\r
+ listGET_OWNER_OF_NEXT_ENTRY( pxNextTCB, pxList );\r
+ usStackRemaining = usTaskCheckFreeStackSpace( ( unsigned portCHAR * ) pxNextTCB->pxStack );\r
+ sprintf( pcStatusString, ( portCHAR * ) "%s\t\t%c\t%u\t%u\t%u\r\n", pxNextTCB->pcTaskName, cStatus, ( unsigned int ) pxNextTCB->uxPriority, usStackRemaining, ( unsigned int ) pxNextTCB->uxTCBNumber );\r
+ strcat( ( portCHAR * ) pcWriteBuffer, ( portCHAR * ) pcStatusString );\r
+\r
+ } while( pxNextTCB != pxFirstTCB );\r
+ }\r
+\r
+#endif\r
+/*-----------------------------------------------------------*/\r
+\r
+#if ( configUSE_TRACE_FACILITY == 1 )\r
+ unsigned portSHORT usTaskCheckFreeStackSpace( const unsigned portCHAR * pucStackByte )\r
+ {\r
+ register unsigned portSHORT usCount = 0;\r
+\r
+ while( *pucStackByte == tskSTACK_FILL_BYTE )\r
+ {\r
+ pucStackByte -= portSTACK_GROWTH;\r
+ usCount++;\r
+ }\r
+\r
+ usCount /= sizeof( portSTACK_TYPE );\r
+\r
+ return usCount;\r
+ }\r
+#endif\r
+/*-----------------------------------------------------------*/\r
+\r
+\r
+\r
+#if ( ( INCLUDE_vTaskDelete == 1 ) || ( INCLUDE_vTaskCleanUpResources == 1 ) )\r
+\r
+ static void prvDeleteTCB( tskTCB *pxTCB )\r
+ {\r
+ /* Free up the memory allocated by the scheduler for the task. It is up to\r
+ the task to free any memory allocated at the application level. */\r
+ vPortFree( pxTCB->pxStack );\r
+ vPortFree( pxTCB );\r
+ }\r
+\r
+#endif\r
+\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+#if ( INCLUDE_xTaskGetCurrentTaskHandle == 1 )\r
+\r
+ xTaskHandle xTaskGetCurrentTaskHandle( void )\r
+ {\r
+ xTaskHandle xReturn;\r
+\r
+ portENTER_CRITICAL();\r
+ {\r
+ xReturn = ( xTaskHandle ) pxCurrentTCB;\r
+ }\r
+ portEXIT_CRITICAL();\r
+\r
+ return xReturn;\r
+ }\r
+\r
+#endif\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+#if ( INCLUDE_xTaskGetSchedulerState == 1 )\r
+\r
+ portBASE_TYPE xTaskGetSchedulerState( void )\r
+ {\r
+ portBASE_TYPE xReturn;\r
+ \r
+ if( xSchedulerRunning == pdFALSE )\r
+ {\r
+ xReturn = taskSCHEDULER_NOT_STARTED;\r
+ }\r
+ else\r
+ {\r
+ if( uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE )\r
+ {\r
+ xReturn = taskSCHEDULER_RUNNING;\r
+ }\r
+ else\r
+ {\r
+ xReturn = taskSCHEDULER_SUSPENDED;\r
+ }\r
+ }\r
+ \r
+ return xReturn;\r
+ }\r
+\r
+#endif\r
+\r
+#if ( configUSE_MUTEXES == 1 )\r
+ \r
+ void vTaskPriorityInherit( xTaskHandle * const pxMutexHolder )\r
+ {\r
+ tskTCB * const pxTCB = ( tskTCB * ) pxMutexHolder;\r
+\r
+ if( pxTCB->uxPriority < pxCurrentTCB->uxPriority )\r
+ {\r
+ /* Adjust the mutex holder state to account for its new priority. */\r
+ listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), configMAX_PRIORITIES - ( portTickType ) pxCurrentTCB->uxPriority );\r
+\r
+ /* If the task being modified is in the ready state it will need to\r
+ be moved in to a new list. */\r
+ if( listIS_CONTAINED_WITHIN( &( pxReadyTasksLists[ pxTCB->uxPriority ] ), &( pxTCB->xGenericListItem ) ) )\r
+ {\r
+ vListRemove( &( pxTCB->xGenericListItem ) );\r
+\r
+ /* Inherit the priority before being moved into the new list. */\r
+ pxTCB->uxPriority = pxCurrentTCB->uxPriority;\r
+ prvAddTaskToReadyQueue( pxTCB );\r
+ }\r
+ else\r
+ {\r
+ /* Just inherit the priority. */\r
+ pxTCB->uxPriority = pxCurrentTCB->uxPriority;\r
+ }\r
+ }\r
+ }\r
+\r
+#endif\r
+\r
+#if ( configUSE_MUTEXES == 1 ) \r
+\r
+ void vTaskPriorityDisinherit( xTaskHandle * const pxMutexHolder )\r
+ {\r
+ tskTCB * const pxTCB = ( tskTCB * ) pxMutexHolder;\r
+\r
+ if( pxMutexHolder != NULL )\r
+ {\r
+ if( pxTCB->uxPriority != pxTCB->uxBasePriority )\r
+ {\r
+ /* We must be the running task to be able to give the mutex back.\r
+ Remove ourselves from the ready list we currently appear in. */\r
+ vListRemove( &( pxTCB->xGenericListItem ) );\r
+\r
+ /* Disinherit the priority before adding ourselves into the new\r
+ ready list. */\r
+ pxTCB->uxPriority = pxTCB->uxBasePriority;\r
+ listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), configMAX_PRIORITIES - ( portTickType ) pxTCB->uxPriority );\r
+ prvAddTaskToReadyQueue( pxTCB );\r
+ }\r
+ }\r
+ }\r
+\r
+#endif\r
+\r
+ \r
+\r
+ \r
+\r
+Instalar toolchain:
+
+<http://www.ece.ufrgs.br/~fetter/pub/cross-pic30.tgz>: descompactar como
+root, entrar no diretorio e digitar make
+
+<http://www.ece.ufrgs.br/~fetter/pub/FreeRTOSV7.4.2.zip>: descompactar como
+root em /usr/src/FreeRTOSV7.4.2 e criar um link FreeRTOS ->
+FreeRTOSV7.4.2/FreeRTOS
+
+Em geral tudo deve ser feito logado como usuario normal. Apenas os dois
+pacotes acima devem ser instalados como root.
+
Instalar o software da AIC:
<http://www.ece.ufrgs.br/~fetter/pub/aic-x.y.z.tgz>: descompactar no
-diretorio do usuario:
+diretorio do usuario.
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- IO Daemon
- Copyright (C) 2003, 2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import br.ufrgs.ece.AIC.*;
-import com.dalsemi.comm.*;
-import com.dalsemi.system.*;
-import java.io.*;
-import java.lang.*;
-
-class IODaemon extends Thread
-{
- static final int BASE=0x800000;
- static final int ST=250;
-
- static AIC aic;
- static Host host;
- static boolean debug=false;
- static boolean udp=false;
- static boolean help=false;
-
- public static void main(String[] args) throws IOException,CanBusException
- {
- int i;
- int hostarg=0;
-
- System.out.println("AIC IO Daemon");
- System.out.println("Copyright (C) 2003 Walter Fetter Lages <w.fetter@ieee.org>.\n");
-
- switch(args.length)
- {
- case 0:
- {
- help=true;
- break;
- }
- case 1:
- {
- if(args[0].equals("-debug") ||
- args[0].equals("-UDP")) help=true;
- break;
- }
- case 2:
- {
- hostarg=1;
- if(args[0].equals("-debug")) debug=true;
- else help=true;
- break;
- }
- case 3:
- {
- hostarg=1;
- if(args[0].equals("-UDP")) udp=true;
- else help=true;
- break;
- }
- case 4:
- {
- hostarg=2;
- if(args[0].equals("-debug")) debug=true;
- else help=true;
- if(args[1].equals("-UDP")) udp=true;
- else help=true;
- break;
- }
- default:
- {
- help=true;
- }
- }
-
-
- if(help)
- {
- System.out.println("Usage:\tjava IODaemon.tini [-debug] aic_id");
- System.out.println("\tor");
- System.out.println("\tjava IODaemon.tini [-debug] -UDP controller_host status_port");
- System.exit(1);
- }
- try
- {
- aic=new AIC(BASE,24.0,20e3,2000);
- if(udp) host=new HostUDP(args[hostarg],Integer.parseInt(args[hostarg+1]));
- else host=new HostCAN(Integer.parseInt(args[hostarg]));
- SendSensors sendSensors=new SendSensors();
- sendSensors.setPriority(Thread.MAX_PRIORITY);
- sendSensors.start();
-
- if(debug) System.out.println("sendSensors priority="+sendSensors.getPriority());
-
- GetCommand getCommand=new GetCommand();
- getCommand.setPriority(Thread.MAX_PRIORITY-1);
- getCommand.start();
-
- if(debug) System.out.println("getCommand priority="+getCommand.getPriority());
- }
- catch (NumberFormatException nfe)
- {
- System.out.println("Usage: java IODaemon.tini [-debug] [-UDP controller_host port] | aicid");
- System.exit(1);
- }
- }
-}
-
-
-class GetCommand extends IODaemon
-{
- public void run()
- {
- try
- {
- aic.on();
- aic.brake.release();
-
- for(int k=0;;k++)
- {
- if(debug) System.out.print("k="+k+"\t");
-
- int cmd=host.command();
-
- if(debug) System.out.print("Command="+ cmd +"\t");
-
- switch(cmd)
- {
- case Host.MOTOR_ON:
- {
- if(debug) System.out.print("Motor on\t");
- aic.motor.on();
- break;
- }
- case Host.MOTOR_OFF:
- {
- if(debug) System.out.print("Motor off\t");
- aic.motor.off();
- break;
- }
- case Host.MOTOR_ACT:
- {
- if(debug) System.out.print("Voltage="+host.voltage()+"\t");
- aic.motor.set(host.voltage());
- break;
- }
- case Host.BRAKE_RELEASE:
- {
- if(debug) System.out.print("Brake release\t");
- aic.brake.release();
- break;
- }
- case Host.BRAKE_APPLY:
- {
- if(debug) System.out.print("Brake apply\t");
- aic.brake.apply();
- break;
- }
-/* case Host.RESET:
- {
- if(debug) System.out.print("Reset\t");
- aic.reset();
- break;
- }
-*/
- default:
- {
- if(debug) System.out.print("Invalid\t");
- break;
- }
-
- }
- if(debug) System.out.println("");
- }
- }
- catch (Exception all)
- {
- all.printStackTrace();
- }
- }
-}
-
-class SendSensors extends IODaemon
-{
- public void run()
- {
- int i=0;
- try
- {
- for(;;)
- {
- long timeStart=TINIOS.uptimeMillis();
-
- int index;
- if(aic.index.read()) index=1; else index=0;
-
- double disp=aic.encoder.read();
- if(debug) System.out.print("Encoder="+disp+" rad\tindex="+index+"\t");
- host.sendStatus(disp,index);
-
- long timeEnd=TINIOS.uptimeMillis();
- long blockTime=ST-(timeEnd-timeStart);
- if(debug) System.out.println("Blocking time="+blockTime);
- if(blockTime > 4) Thread.sleep(blockTime);
- }
- }
- catch(Exception all)
- {
- all.printStackTrace();
- }
- }
-}
-
+++ /dev/null
-all: IODaemon.tini
-
-IODaemon.class: IODaemon.java ../lib/AIC.jar
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} IODaemon.java
-
-IODaemon.tini: IODaemon.class ../lib/AIC.jar
- java ${CLASSPATH} BuildDependency ${DEPNAME} ${DEPFILE} ${DEPPATH} -f IODaemon.class ${APIDBPATH} -o IODaemon.tini ${LIBPATH} ${NATLIB}
-
-clean:
- rm -f *.bak *~ *.class
-
-distclean: clean
- rm -f IODaemon.tini
-
-upload: IODaemon.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
\ No newline at end of file
+++ /dev/null
-bin
-put IODaemon.tini
-quit
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Index Real Time Test
- User Interface Module
- Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import com.dalsemi.system.*;
-
-public class IndexRtTest
-{
- public static native int startRealtime(int period);
- public static native void stopRealtime();
- public static native boolean getIndex();
-
- public static void main(String[] args)
- {
- System.out.println("IndexRtTest");
- System.out.println("Copyright (C) Walter Fetter Lages, 2005.\n");
-
- int tfms=0;
- if(args.length==1)
- {
- tfms=Integer.parseInt(args[0]);
- }
- else
- {
- System.out.println("Usage:\tIndexRtTest ms");
- System.exit(1);
- }
-
- System.out.print("Loading native library...");
- System.loadLibrary("indextest.tlib");
- System.out.println("done.");
-
- int us=10000;
- System.out.print("Starting real-time timer with "+us+" us period...");
- int period=startRealtime(us);
- System.out.println("done.");
- System.out.println("Effective period: "+period+" us.");
-
- System.out.println("Running IndexRtTest for "+tfms+" ms...");
- long t0=TINIOS.uptimeMillis();
- long t=0;
- while(t <= tfms)
- {
- t=TINIOS.uptimeMillis()-t0;
- System.out.print("t="+t+" ms");
- System.out.println("\tindex="+getIndex());
- }
- System.out.println("...done.");
-
- System.out.print("Stoping real-time timer...");
- stopRealtime();
- System.out.println("done.");
- }
-}
+++ /dev/null
-all: IndexRtTest.tini
-
-IndexRtTest.class: IndexRtTest.java
- ${JAVAC} ${CLASSPATH} ${JAVAFLAGS} IndexRtTest.java
-
-indextest.mpp: indextest.a51
- ${ASMMACRO} -I${ASMINC} -e- indextest.a51
-
-indextest.tlib: indextest.mpp ../lib/aicio.mpp.lib
- cat indextest.mpp ${TRTAIPATH}/lib/rtai.mpp.lib ../lib/aicio.mpp.lib > tmp.mpp
- echo end >> tmp.mpp
- ${ASM} ${ASMOPT} tmp.mpp
- mv tmp.tlib indextest.tlib
- mv tmp.lst indextest.lst
-
-indextest.a51: indextest.c
- ${SDCC} ${SDCCCMPFLAGS} indextest.c
-
-IndexRtTest.tini: IndexRtTest.class indextest.tlib
- java ${CLASSPATH} TINIConvertor -n indextest.tlib -f IndexRtTest.class ${APIDBPATH} -o IndexRtTest.tini
-
-
-clean:
- rm -f *.bak *~ IndexRtTest.class indextest.tlib indextest.mpp indextest.lst indextest.a51 globals.mpp tmp.mpp tmp.lst
-
-distclean: clean
- rm -f IndexRtTest.tini
-
-upload: IndexRtTest.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
+++ /dev/null
-;******************************************************************************
-;
-; Actuator Interface Card
-; Index Real Time Test
-; Real Time Module Global Variables
-; Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-;
-; 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 2 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, write to the Free Software
-; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-;
-; You can also obtain a copy of the GNU General Public License
-; at <http://www.gnu.org/licenses>.
-;
-;*******************************************************************************/
-
-
-index: db 0,0,0,0
-th: db 0,0,0,0
- end
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Brake Real Time Test
- Real Time Module
- Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-#include <rtai_sched.h>
-#include <pthread.h>
-
-#include <aicio.h>
-
-#define BASE 0x800000
-
-extern volatile pthread_t th;
-extern volatile long index;
-
-void indextest_globals(void) _naked
-{
- _asm
-th: db 0,0,0,0
-index: db 0,0,0,0
- _endasm;
-}
-
-void *indextest(void *arg)
-{
- index=index_read();
- return NULL;
-}
-
-/* public static native int startRealtime(int period) */
-long Native_startRealtime(void) _JavaNative
-{
- volatile long period=NatLib_LoadInt(0);
- start_rt_timer(micro2count(period));
- pthread_create(&th,NULL,indextest,NULL);
-
- index_initialize(BASE);
-
- _asm
- clr a
- _endasm;
-
- return period;
-}
-
-/* public static native void stopRealtime() */
-void Native_stopRealtime(void) _JavaNative
-{
- pthread_cancel(th);
- stop_rt_timer();
-
- _asm
- clr a
- _endasm;
-}
-
-/* public static native boolean getIndex() */
-long Native_getIndex(void) _JavaNative
-{
- return index;
-}
-
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Index Test
- Copyright (C) 2002, 2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import br.ufrgs.ece.AIC.*;
-import com.dalsemi.system.*;
-import java.lang.Math.*;
-
-class IndexTest
-{
- static final int BASE=0x800000;
- static final int ST=500;
-
- static AIC aic;
-
- private static void delay(int ms)
- {
- long time=TINIOS.uptimeMillis();
- while(TINIOS.uptimeMillis() < time+ms);
- }
-
- public static void main(String[] args)
- {
- int i;
- boolean run=true;
-
- System.out.println("AIC Index Test Program");
- System.out.println("Copyright (C) Walter Fetter Lages, 2002...2004.\n");
-
- aic=new AIC(BASE,24.0,20e3,2000);
-
- aic.on();
-
- aic.motor.set(2.0);
-
- while(run)
- {
- System.out.println("Index=" + aic.index.read());
- delay(ST);
- }
- aic.off();
- }
-}
+++ /dev/null
-all: IndexTest.tini
-
-IndexTest.class: IndexTest.java ../lib/AIC.jar
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} IndexTest.java
-
-IndexTest.tini: IndexTest.class ../lib/AIC.jar
- java ${CLASSPATH} TINIConvertor ${NATLIB} -f IndexTest.class ${APIDBPATH} -o IndexTest.tini ${LIBPATH}
-
-clean:
- rm -f *.bak *~ IndexTest.class
-
-distclean: clean
- rm -f IndexTest.tini
-
-upload: IndexTest.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Robot Joint Test
- Copyright (C) 2002, 2003 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import br.ufrgs.ece.AIC.*;
-import com.dalsemi.system.*;
-import java.lang.Math.*;
-
-class JointTest
-{
- static final int BASE=0x800000;
-
- static AIC aic;
-
- private static void delay(int ms)
- {
- long time=TINIOS.uptimeMillis();
- while(TINIOS.uptimeMillis() < time+ms);
- }
-
- static void iter(double v,int ms)
- {
- aic.motor.set(v);
- System.out.print("Motor Voltage: " + v);
- System.out.println("\tIndex: " + aic.index.read());
-
- delay(ms);
- }
-
- public static void main(String[] args)
- {
- int i;
-
- System.out.println("AIC Joint Test Program");
- System.out.println("Copyright (C) Walter Fetter Lages, 2002.\n");
-
- aic=new AIC(BASE,24.0,20e3,2000);
-
- aic.on();
-
- aic.brake.release();
-
- while(!aic.index.read())
- {
- iter(5,1000);
- iter(-5,1000);
- }
- aic.off();
- }
-}
+++ /dev/null
-CLASSPATH=-classpath /opt/tini/bin/tini.jar:/opt/tini/bin/tiniclasses.jar:../lib/AIC.jar
-APIDBPATH=-d /opt/tini/bin/tini.db
-LIBPATH=-path ../lib/AIC.jar
-NATLIB=-n brake.tlib -n encoder.tlib -n index.tlib -n pwm.tlib
-JAVAFLAGS=-O -target 1.1 -source 1.3
-
-all: JointTest.tini
-
-JointTest.class: JointTest.java ../lib/AIC.jar
- javac ${JAVAFLAGS} ${CLASSPATH} JointTest.java
-
-JointTest.tini: JointTest.class ../lib/AIC.jar
- java ${CLASSPATH} TINIConvertor -f JointTest.class ${APIDBPATH} -o JointTest.tini ${LIBPATH} ${NATLIB}
-
-clean:
- rm -f *.bak *~ JointTest.class
-
-distclean: clean
- rm -f JointTest.tini
-
-upload: JointTest.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
-export CLASSPATH=-classpath /opt/tini/bin/tini.jar:/opt/tini/bin/tiniclasses.jar:/opt/tini/bin/modules.jar:../lib/AIC.jar:.
-export DEPPATH=-p /opt/tini/bin/modules.jar
-export DEPFILE=-x /opt/tini/bin/owapi_dep.txt
-export DEPNAME=-add CAN
-export LIBPATH=-path ../lib/AIC.jar
-export NATLIB=-n brake.tlib -n encoder.tlib -n index.tlib -n pwm.tlib
-export APIDBPATH=-d /opt/tini/bin/tini.db
-export PKGPATH=br/ufrgs/ece/AIC
-export JAVAFLAGS=-O -target 1.1 -source 1.3
-export JAVAC=javac
-
-export NATINC=/opt/tini/native/lib
-export ASMINC=../include
-export TINIINC=${ASMINC}/tini.inc ${ASMINC}/tinimacro.inc ${ASMINC}/ds80c390.inc ${ASMINC}/apiequ.inc
-export ASMOPT=-f 1.17 -p 390 -l
-export ASMMACRO=/opt/tini/native/bin/Linux/macro
-export ASM=/opt/tini/native/bin/Linux/a390
-
-export CFLAGS=-O2 -Wall
-export CINCLUDE=-I. -I${HOME}/include -I/usr/realtime/include -I/usr/local/include -I/usr/src/linux/include
-export CLIBS=-lpthread -lcanlib -lcutil -lconio -lncurses
-
-export CPPFLAGS=
-export CPPINCLUDE=-I${HOME}/include/cpp -I/usr/local/include/cpp -I../include
-export CPPLIBDIR=-L${HOME}/lib -L../lib -L/usr/local/lib
-export CPPLIBS=-lcpputil -laic -lcontrol
-export INSTPREFIX=/usr/local
-export LIBINST=$(INSTPREFIX)/lib
-export INCLUDEINST=$(INSTPREFIX)/include
-
-export INCLUDE=${CINCLUDE} ${CPPINCLUDE}
-export FLAGS= ${CFLAGS} ${CPPFLAGS} -DREAL_TIME -DVERBOSE -DDEBUG
-export LIBDIR=${CLIBDIR} ${CPPLIBDIR}
-export LIBS=${CLIBS} ${CPPLIBS}
-
-export CC=gcc
-export CXX=g++
-export CMPFLAGS=${FLAGS} ${INCLUDE}
-export LDFLAGS=${LIBDIR} ${LIBS}
-
-export TRTAIPATH=${HOME}/src/tini/rtai
-export TMATHPATH=${HOME}/src/tini/tmath
-export SDCC=sdcc
-export SDCCFLAGS=-mTININative -S --use-accelerator
-export SDCCINCLUDE=-I${TRTAIPATH}/include -I${TMATHPATH}/include -I../include
-export SDCCCMPFLAGS=${SDCCFLAGS} ${SDCCINCLUDE}
-
-export AIC=aic01
-
-AICPACKAGES= AICOff \
- BrakeTest \
- BrakeRtTest \
- CANTest \
- EncoderTest \
- EncoderRtTest \
- EncoderRtRead \
- IndexTest \
- IndexRtTest \
- IODaemon \
- JointTest \
- MotorReset \
- MotorTest \
- MotorRtTest \
- PwmRtTest \
- PID \
- PIDDaemon \
- StrobeTest \
- DoorDaemon \
- DoorOpen \
- DoorWeb \
- CmdDaemon \
- SputWeb \
- SputPIDWeb \
- SputPIDDaemon
-
-PACKAGES= lib \
- ${AICPACKAGES} \
- aicd \
- braketst \
- encodertst \
- indextst \
- jointtst \
- motortst \
- pid \
- sputtering \
- doc
+export AICROOT=$(HOME)/src/aic
+
+export CC=pic30-elf-gcc
+export CCAR=pic30-elf-ar
+export CCBIN2HEX=pic30-elf-bin2hex
+export CCFLAGS=-Wall -O2 -fomit-frame-pointer -fno-schedule-insns -fno-schedule-insns2
+export CPU=-mcpu=30F4012
+export CCINCDIR=-I$(AICROOT)/include
+export CCLIBDIR=-L/usr/pic30-elf/
+export CCGLDDIR=$(AICROOT)/gld
+export CCGLDFILE=-T $(CCGLDDIR)/p30f4012.gld
+
+export OSROOT=$(AICROOT)/FreeRTOS
+export OSFILES=$(OSROOT)/list.c $(OSROOT)/queue.c $(OSROOT)/tasks.c $(OSROOT)/croutine.c $(OSROOT)/portable/AIC-2.0.0/port.c $(OSROOT)/portable/MemMang/heap_1.c
+export OSOBJS=list.o queue.o tasks.o croutine.o port.o heap_1.o
+export OSINCDIR=-I$(OSROOT)/include -I$(OSROOT)/portable/AIC-2.0.0/
+export OSFLAGS=-DAIC_DSPIC_PORT
+
+export AICLIBDIR=-L$(AICROOT)/lib
+
+AICPACKAGES= dsPICtest \
+ dsPICAICtest \
+ freertostest \
+ freertosAICtest \
+ lib \
+ serialtest
+
+PACKAGES= $(AICPACKAGES)
all:
for i in $(PACKAGES); do $(MAKE) -C $$i; done
+++ /dev/null
-all: MotorReset.tini
-
-MotorReset.class: MotorReset.java ../lib/AIC.jar
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} MotorReset.java
-
-MotorReset.tini: MotorReset.class ../lib/AIC.jar
- java ${CLASSPATH} TINIConvertor -f MotorReset.class ${APIDBPATH} -o MotorReset.tini ${LIBPATH} ${NATLIB}
-
-clean:
- rm -f *.bak *~ MotorReset.class
-
-distclean: clean
- rm -f MotorReset.tini
-
-upload: MotorReset.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Motor Reset
- Copyright (C) 2002, 2003 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import br.ufrgs.ece.AIC.*;
-import com.dalsemi.system.*;
-import java.lang.Math.*;
-
-class MotorReset
-{
- static final int BASE=0x800000;
-
- static AIC aic;
-
- private static void delay(int ms)
- {
- long time=TINIOS.uptimeMillis();
- while(TINIOS.uptimeMillis() < time+ms);
- }
-
- static void iter(double v,int ms)
- {
- aic.motor.set(v);
- System.out.print("Motor Voltage: " + v);
- System.out.println("\tIndex: " + aic.index.read());
-
- delay(ms);
- }
-
- public static void main(String[] args)
- {
-
- System.out.println("AIC Joint Test Program");
- System.out.println("Copyright (C) Walter Fetter Lages, 2002.\n");
-
- aic=new AIC(BASE,24.0,20e3,2000);
-
- aic.on();
-
- aic.brake.release();
-
- double v=0;
-
- while(!aic.index.read())
- {
- if(v < 24.0) v++;
- iter(v,1000);
- }
- aic.off();
- }
-}
+++ /dev/null
-all: MotorRtTest.tini
-
-MotorRtTest.class: MotorRtTest.java ../lib/AIC.jar
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} MotorRtTest.java
-
-motortest.mpp: motortest.a51
- ${ASMMACRO} -I${ASMINC} -e- motortest.a51
-
-motortest.tlib: motortest.mpp ../lib/aicio.mpp.lib
- cat motortest.mpp ${TRTAIPATH}/lib/rtai.mpp.lib ../lib/aicio.mpp.lib > tmp.mpp
- echo end >> tmp.mpp
- ${ASM} ${ASMOPT} tmp.mpp
- mv tmp.tlib motortest.tlib
- mv tmp.lst motortest.lst
-
-motortest.a51: motortest.c
- ${SDCC} ${SDCCCMPFLAGS} motortest.c
-
-MotorRtTest.tini: MotorRtTest.class motortest.tlib
- java ${CLASSPATH} TINIConvertor -n motortest.tlib -f MotorRtTest.class ${APIDBPATH} -o MotorRtTest.tini
-
-
-clean:
- rm -f *.bak *~ MotorRtTest.class motortest.tlib motortest.mpp motortest.lst motortest.a51 globals.mpp tmp.mpp tmp.lst
-
-distclean: clean
- rm -f MotorRtTest.tini
-
-upload: MotorRtTest.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
-
\ No newline at end of file
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Motor Real Time Test
- User Interface Module
- Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import com.dalsemi.system.*;
-import java.lang.Math.*;
-
-class MotorRtTest
-{
- public static native int startRealtime(int period);
- public static native void stopRealtime();
- public static native void motorSet(float voltage);
-
- static final int ST=100;
-
- private static void delay(int ms)
- {
- long time=TINIOS.uptimeMillis();
- while(TINIOS.uptimeMillis() < time+ms);
- }
-
- static void iter(int i)
- {
- motorSet(i);
- System.out.println("Motor Voltage: " + i);
- delay(ST);
- }
-
- public static void main(String[] args)
- {
- int i;
- boolean run=true;
-
- System.out.println("AIC Motor Real Time Test Program");
- System.out.println("Copyright (C) Walter Fetter Lages, 2005.\n");
-
- int tfms=0;
- if(args.length==1)
- {
- tfms=Integer.parseInt(args[0]);
- }
- else
- {
- System.out.println("Usage:\tMotorRtTest ms");
- System.exit(1);
- }
-
- System.out.print("Loading native library...");
- System.loadLibrary("motortest.tlib");
- System.out.println("done.");
-
- int us=10000;
- System.out.print("Starting real-time timer with "+us+" us period...");
- int period=startRealtime(us);
- System.out.println("done.");
- System.out.println("Effective period: "+period+" us.");
-
- System.out.println("Running MotorRtTest for "+tfms+" ms...");
-
- long t0=TINIOS.uptimeMillis();
- long t=TINIOS.uptimeMillis()-t0;
- while(t <= tfms)
- {
- System.out.println("t="+t+" ms");
- for(i=0;(i <= 24) && run;i++) iter(i);
- for(i=24;(i >= -24) && run;i--) iter(i);
- for(i=-24;(i <= 0) && run;i++) iter(i);
- t=TINIOS.uptimeMillis()-t0;
- }
- System.out.println("...done.");
-
- System.out.print("Stoping real-time timer...");
- stopRealtime();
- System.out.println("done.");
- }
-}
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Motor Real Time Test
- Real Time Module
- Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-#include <rtai_sched.h>
-#include <pthread.h>
-
-#include <aicio.h>
-
-#define BASE 0x800000
-
-volatile pthread_t th;
-volatile float motor_test_voltage;
-
-void motortest_globals(void) _naked
-{
- _asm
-th: db 0,0,0,0
-motor_test_voltage: db 0,0,0,0
- _endasm;
-}
-
-void *motortest(void *arg)
-{
- motor_set(motor_test_voltage);
- return NULL;
-}
-
-/* public static native int startRealtime(int period) */
-long Native_startRealtime(void) _JavaNative
-{
- volatile long period;
-
- aic_initialize(BASE,24.0,20e3,2000);
-
- period=NatLib_LoadInt(0);
- start_rt_timer(micro2count(period));
- pthread_create(&th,NULL,motortest,NULL);
-
- pwm_set_duty(500000);
- aic_on();
- brake_release();
-
- _asm
- clr a
- _endasm;
-
- return period;
-}
-
-/* public static native void stopRealtime() */
-void Native_stopRealtime(void) _JavaNative
-{
- brake_apply();
- aic_off();
-
- pthread_cancel(th);
- stop_rt_timer();
-
- aic_finalize();
-
- _asm
- clr a
- _endasm;
-}
-
-/* public static native void motorSet(float voltage) */
-void Native_motorSet(void) _JavaNative
-{
- /*
- volatile long v =NatLib_LoadInt(0);
- voltage=*((float *) &v);
- */
-
- _asm
- clr a
- lcall Natlib_LoadPrimitive ; get parameter in R3:R2:R1:R0
- mov dptr,#motor_test_voltage
- mov a,r0
- movx @dptr,a
- inc dptr
- mov a,r1
- movx @dptr,a
- inc dptr
- mov a,r2
- movx @dptr,a
- inc dptr
- mov a,r3
- movx @dptr,a
- _endasm;
-
- _asm
- clr a
- _endasm;
-}
-
+++ /dev/null
-all: MotorTest.tini
-
-MotorTest.class: MotorTest.java ../lib/AIC.jar
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} MotorTest.java
-
-MotorTest.tini: MotorTest.class ../lib/AIC.jar
- java ${CLASSPATH} TINIConvertor -f MotorTest.class ${APIDBPATH} -o MotorTest.tini ${LIBPATH} ${NATLIB}
-
-clean:
- rm -f *.bak *~ MotorTest.class
-
-distclean: clean
- rm -f MotorTest.tini
-
-upload: MotorTest.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Motor Test
- Copyright (C) 2002...2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import br.ufrgs.ece.AIC.*;
-import com.dalsemi.system.*;
-import java.lang.Math.*;
-
-class MotorTest
-{
- static final int BASE=0x800000;
- static final int ST=100;
-
- static AIC aic;
-
- private static void delay(int ms)
- {
- long time=TINIOS.uptimeMillis();
- while(TINIOS.uptimeMillis() < time+ms);
- }
-
- static void iter(int i)
- {
- aic.motor.set(i);
- System.out.println("Motor Voltage: " + i);
-
- delay(ST);
- }
-
- public static void main(String[] args)
- {
- int i;
- boolean run=true;
-
- System.out.println("AIC Motor Test Program");
- System.out.println("Copyright (C) Walter Fetter Lages, 2002...2004.\n");
-
- int v=Integer.parseInt(args[0]);
- int t=Integer.parseInt(args[1]);
-
- aic=new AIC(BASE,24.0,20e3,2000);
-
- aic.on();
-
- aic.brake.release();
-
- aic.motor.set(v);
- delay(t);
- aic.motor.set(0);
-
- aic.off();
- }
-}
+++ /dev/null
-all: PID.tini
-
-PID.class: PID.java
- ${JAVAC} ${CLASSPATH} ${JAVAFLAGS} PID.java
-
-pid.mpp: pid.a51
- ${ASMMACRO} -I${ASMINC} -e- pid.a51
-
-pid.tlib: pid.mpp ${TRTAIPATH}/lib/rtai.mpp.lib ../lib/aicio.mpp.lib
- cat pid.mpp ${TRTAIPATH}/lib/rtai.mpp.lib ../lib/aicio.mpp.lib > tmp.mpp
- echo end >> tmp.mpp
- ${ASM} ${ASMOPT} tmp.mpp
- mv tmp.tlib pid.tlib
- mv tmp.lst pid.lst
-
-pid.a51: pid.c
- ${SDCC} ${SDCCCMPFLAGS} pid.c
-
-PID.tini: PID.class pid.tlib
- java ${CLASSPATH} TINIConvertor -n pid.tlib -f PID.class ${APIDBPATH} -o PID.tini
-
-
-clean:
- rm -f *.bak *~ PID.class pid.tlib pid.mpp pid.lst pid.a51 globals.mpp tmp.mpp tmp.lst
-
-distclean: clean
- rm -f PID.tini
-
-upload: PID.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
\ No newline at end of file
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- PID
- User Interface Module
- Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import com.dalsemi.system.*;
-
-public class PID
-{
- public static native int startRealtime(int period);
- public static native void stopRealtime();
- public static native void setReference(float reference);
- public static native float getOutput();
-
- public static void main(String[] args)
- {
- System.out.println("PID");
- System.out.println("Copyright (C) Walter Fetter Lages, 2005.\n");
-
- int tfms=0;
- if(args.length==1)
- {
- tfms=Integer.parseInt(args[0]);
- }
- else
- {
- System.out.println("Usage:\tPID ms");
- System.exit(1);
- }
-
- System.out.print("Loading native library...");
- System.loadLibrary("pid.tlib");
- System.out.println("done.");
-
- int us=10000;
- System.out.print("Starting real-time timer with "+us+" us period...");
- int period=startRealtime(us);
- System.out.println("done. Effective period: "+period+" us.");
-
- System.out.println("Running PID for "+tfms+" ms...");
- long t0=TINIOS.uptimeMillis();
- long t=0;
- while(t <= tfms)
- {
- t=TINIOS.uptimeMillis()-t0;
- System.out.print("t="+t+" ms");
- float ref=t/2.0f;
- setReference(ref);
- System.out.println("\treference="+ref+"\toutput="+getOutput());
- }
- System.out.println("...done.");
-
- System.out.print("Stoping real-time timer...");
- stopRealtime();
- System.out.println("done.");
- }
-}
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- PID
- Real Time Module
- Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <rtai_sched.h>
-#include <pthread.h>
-
-#include <tmath.h>
-
-#include <aicio.h>
-
-#define BASE 0x800000
-
-#define Kp 20.0
-#define Ki 5.0
-#define Kd 10.0
-
-#define MIN_U -24.0
-#define MAX_U 24.0
-
-static pthread_t th;
-static float u;
-static float y;
-static float ref;
-static float e1;
-static float e2;
-
-static void pid_dummy(void) _naked
-{
- _asm
-th: db 0,0,0,0
-u: db 0,0,0,0
-y: db 0,0,0,0
-ref: db 0,0,0,0
-e1: db 0,0,0,0
-e2: db 0,0,0,0
- _endasm;
-}
-
-
-/* By now this is not actually a thread as it should be,
- but a function that is called at each timer interrupt */
-void *pid(void *arg)
-{
- float e;
-
-// volatile long *y=(volatile long *)arg;
-// for(;;)
-// {
-// rt_wait_period();
-
- y+=encoder_read_and_clear();
-
- e=ref-y;
-
- u+=Kp*(e-e1)+Ki*e+Kd*(e-2*e1+e2);
- if(u < MIN_U) u=MIN_U;
- if(u > MAX_U) u=MAX_U;
-
- motor_set(u);
-
- e2=e1;
- e1=e;
-// }
- return NULL;
-}
-
-/* public static native int startRealtime(int period) */
-long Native_startRealtime(void) _JavaNative
-{
- volatile long period;
- RTIME count;
-
- aic_initialize(BASE,24.0,20e3,2000);
-
- period = NatLib_LoadInt(0);
- count=micro2count(period);
- start_rt_timer(count);
- pthread_create(&th,NULL,pid,NULL);
- period=count2micro(count);
-
- pwm_set_duty(500000); // debug
- aic_on();
- brake_release();
-
- _asm
- clr a
- _endasm;
-
- return period;
-}
-
-/* public static native void stopRealtime() */
-void Native_stopRealtime(void) _JavaNative
-{
- motor_set(0.0);
- brake_apply();
-
- pthread_cancel(th);
- stop_rt_timer();
-
- aic_off();
-
- aic_finalize();
-
- _asm
- clr a
- _endasm;
-}
-
-/* public static native float getOutput() */
-float Native_getOutput(void) _JavaNative
-{
- return y;
-}
-
-/* public static native void setReference(float reference) */
-void Native_setReference(void) _JavaNative
-{
- /*
- volatile long ref =NatLib_LoadInt(0);
- ref=*((float *) &ref);
- */
-
- _asm
- clr a
- lcall Natlib_LoadPrimitive ; get parameter in R3:R2:R1:R0
- mov dptr,#ref
- mov a,r0
- movx @dptr,a
- inc dptr
- mov a,r1
- movx @dptr,a
- inc dptr
- mov a,r2
- movx @dptr,a
- inc dptr
- mov a,r3
- movx @dptr,a
- clr a
- _endasm;
-}
+++ /dev/null
-all: PIDDaemon.tini
-
-PIDDaemon.class: PIDDaemon.java ../lib/AIC.jar
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} PIDDaemon.java
-
-PIDDaemon.tini: PIDDaemon.class ../lib/AIC.jar
- java ${CLASSPATH} BuildDependency ${DEPNAME} ${DEPFILE} ${DEPPATH} -f PIDDaemon.class ${APIDBPATH} -o PIDDaemon.tini ${LIBPATH} ${NATLIB}
-
-clean:
- rm -f *.bak *~ *.class
-
-distclean: clean
- rm -f PIDDaemon.tini
-
-upload: PIDDaemon.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
\ No newline at end of file
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- PID Daemon
- Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import br.ufrgs.ece.AIC.*;
-import com.dalsemi.comm.*;
-import com.dalsemi.system.*;
-import java.io.*;
-import java.lang.*;
-
-class PIDDaemon extends Thread
-{
- static final int BASE=0x800000;
- static final int ST=250;
-
- static AIC aic;
- static Host host;
- static boolean debug=false;
- static boolean udp=false;
- static boolean help=false;
-
- public static void main(String[] args) throws IOException,CanBusException
- {
- int i;
- int hostarg=0;
-
- System.out.println("AIC PID Daemon");
- System.out.println("Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>.\n");
-
- switch(args.length)
- {
- case 0:
- {
- help=true;
- break;
- }
- case 1:
- {
- if(args[0].equals("-debug") ||
- args[0].equals("-UDP")) help=true;
- break;
- }
- case 2:
- {
- hostarg=1;
- if(args[0].equals("-debug")) debug=true;
- else help=true;
- break;
- }
- case 3:
- {
- hostarg=1;
- if(args[0].equals("-UDP")) udp=true;
- else help=true;
- break;
- }
- case 4:
- {
- hostarg=2;
- if(args[0].equals("-debug")) debug=true;
- else help=true;
- if(args[1].equals("-UDP")) udp=true;
- else help=true;
- break;
- }
- default:
- {
- help=true;
- }
- }
-
-
- if(help)
- {
- System.out.println("Usage:\tjava PIDDaemon.tini [-debug] aic_id");
- System.out.println("\tor");
- System.out.println("\tjava PIDDaemon.tini [-debug] -UDP controller_host status_port");
- System.exit(1);
- }
- try
- {
- aic=new AIC(BASE,24.0,20e3,2000);
- if(udp) host=new HostUDP(args[hostarg],Integer.parseInt(args[hostarg+1]));
- else host=new HostCAN(Integer.parseInt(args[hostarg]));
- SendOutput sendOutput=new SendOutput();
- sendOutput.setPriority(Thread.MAX_PRIORITY);
- sendOutput.start();
-
- if(debug) System.out.println("sendOutput priority="+sendOutput.getPriority());
-
- GetReference getReference=new GetReference();
- getReference.setPriority(Thread.MAX_PRIORITY-1);
- getReference.start();
-
- if(debug) System.out.println("getReference priority="+getReference.getPriority());
- }
- catch (NumberFormatException nfe)
- {
- System.out.println("Usage: java PIDDaemon.tini [-debug] [-UDP controller_host port] | aicid");
- System.exit(1);
- }
- }
-}
-
-
-class GetReference extends PIDDaemon
-{
- public void run()
- {
- try
- {
- aic.on();
- aic.brake.release();
-
- for(int k=0;;k++)
- {
- if(debug) System.out.print("k="+k+"\t");
-
- int cmd=host.command();
-
- if(debug) System.out.print("Command="+ cmd +"\t");
-
- switch(cmd)
- {
- case Host.MOTOR_ON:
- {
- if(debug) System.out.print("Motor on\t");
- aic.motor.on();
- break;
- }
- case Host.MOTOR_OFF:
- {
- if(debug) System.out.print("Motor off\t");
- aic.motor.off();
- break;
- }
- case Host.MOTOR_ACT:
- {
- if(debug) System.out.print("Voltage="+host.voltage()+"\t");
- aic.motor.set(host.voltage());
- break;
- }
- case Host.MOTOR_REF:
- {
- if(debug) System.out.print("Reference="+host.reference()+"\t");
- //aic.pid.set(host.reference());
- break;
- }
- case Host.BRAKE_RELEASE:
- {
- if(debug) System.out.print("Brake release\t");
- aic.brake.release();
- break;
- }
- case Host.BRAKE_APPLY:
- {
- if(debug) System.out.print("Brake apply\t");
- aic.brake.apply();
- break;
- }
-/* case Host.RESET:
- {
- if(debug) System.out.print("Reset\t");
- aic.reset();
- break;
- }
-*/
- default:
- {
- if(debug) System.out.print("Invalid\t");
- break;
- }
-
- }
- if(debug) System.out.println("");
- }
- }
- catch (Exception all)
- {
- all.printStackTrace();
- }
- }
-}
-
-class SendOutput extends PIDDaemon
-{
- public void run()
- {
- int i=0;
- try
- {
- for(;;)
- {
- long timeStart=TINIOS.uptimeMillis();
-
- int index;
- if(aic.index.read()) index=1; else index=0;
-
- double disp=aic.encoder.read();
- if(debug) System.out.print("Encoder="+disp+" rad\tindex="+index+"\t");
- host.sendStatus(disp,index);
-
- long timeEnd=TINIOS.uptimeMillis();
- long blockTime=ST-(timeEnd-timeStart);
- if(debug) System.out.println("Blocking time="+blockTime);
- if(blockTime > 4) Thread.sleep(blockTime);
- }
- }
- catch(Exception all)
- {
- all.printStackTrace();
- }
- }
-}
-
+++ /dev/null
-all: PwmRtTest.tini
-
-PwmRtTest.class: PwmRtTest.java ../lib/AIC.jar
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} PwmRtTest.java
-
-pwmtest.mpp: pwmtest.a51
- ${ASMMACRO} -I${ASMINC} -e- pwmtest.a51
-
-pwmtest.tlib: pwmtest.mpp ../lib/aicio.mpp.lib
- cat pwmtest.mpp ${TRTAIPATH}/lib/rtai.mpp.lib ../lib/aicio.mpp.lib > tmp.mpp
- echo end >> tmp.mpp
- ${ASM} ${ASMOPT} tmp.mpp
- mv tmp.tlib pwmtest.tlib
- mv tmp.lst pwmtest.lst
-
-pwmtest.a51: pwmtest.c ../include/aicio.h
- ${SDCC} ${SDCCCMPFLAGS} pwmtest.c
-
-PwmRtTest.tini: PwmRtTest.class pwmtest.tlib
- java ${CLASSPATH} TINIConvertor -n pwmtest.tlib -f PwmRtTest.class ${APIDBPATH} -o PwmRtTest.tini
-
-
-clean:
- rm -f *.bak *~ PwmRtTest.class pwmtest.tlib pwmtest.mpp pwmtest.lst pwmtest.a51 globals.mpp tmp.mpp tmp.lst
-
-distclean: clean
- rm -f PwmRtTest.tini
-
-upload: PwmRtTest.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
-
\ No newline at end of file
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- PWM Real Time Test
- User Interface Module
- Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import com.dalsemi.system.*;
-import java.lang.Math.*;
-
-class PwmRtTest
-{
- public static native int startRealtime(int period);
- public static native void stopRealtime();
- public static native void pwmSet(int duty);
- static final int ST=100;
-
- private static void delay(int ms)
- {
- long time=TINIOS.uptimeMillis();
- while(TINIOS.uptimeMillis() < time+ms);
- }
-
- static void iter(int i)
- {
- double volt2duty=0.5/24.0;
- int dutycycle=((int)(i*volt2duty*1000000))+500000;
- pwmSet(dutycycle);
- System.out.println("PWM Duty Cicle: " + dutycycle);
- delay(ST);
- }
-
- public static void main(String[] args)
- {
- int i;
- boolean run=true;
-
- System.out.println("AIC PWM Real Time Test Program");
- System.out.println("Copyright (C) Walter Fetter Lages, 2005.\n");
-
- int tfms=0;
- if(args.length==1)
- {
- tfms=Integer.parseInt(args[0]);
- }
- else
- {
- System.out.println("Usage:\tPwmRtTest ms");
- System.exit(1);
- }
-
- System.out.print("Loading native library...");
- System.loadLibrary("pwmtest.tlib");
- System.out.println("done.");
-
- System.out.print("Setting initial PWM duty cicle...");
- pwmSet(500000);
- System.out.println("done.");
-
- int us=10000;
- System.out.print("Starting real-time timer with "+us+" us period...");
- int period=startRealtime(us);
- System.out.println("done.");
- System.out.println("Effective period: "+period+" us.");
-
- System.out.println("Running PwmRtTest for "+tfms+" ms...");
-
- long t0=TINIOS.uptimeMillis();
- long t=0;
- while(t <= tfms)
- {
- System.out.println("t="+t+" ms");
- for(i=0;(i <= 24) && run;i++) iter(i);
- t=TINIOS.uptimeMillis()-t0;
- if(t > tfms) break;
- for(i=24;(i >= -24) && run;i--) iter(i);
- t=TINIOS.uptimeMillis()-t0;
- if(t > tfms) break;
- for(i=-24;(i <= 0) && run;i++) iter(i);
- t=TINIOS.uptimeMillis()-t0;
- }
- System.out.println("...done.");
-
- System.out.print("Stoping real-time timer...");
- stopRealtime();
- System.out.println("done.");
- }
-}
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- PWM Real Time Test
- Real Time Module
- Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-#include <rtai_sched.h>
-#include <pthread.h>
-
-#include <aicio.h>
-
-#define BASE 0x800000
-
-volatile pthread_t th;
-volatile unsigned long duty;
-
-void pwmtest_globals(void) _naked
-{
- _asm
-th: db 0,0,0,0
-duty: db 0,0,0,0
- _endasm;
-}
-
-void *pwmtest(void *arg)
-{
- pwm_set_duty(duty);
- return NULL;
-}
-
-/* public static native int startRealtime(int period) */
-long Native_startRealtime(void) _JavaNative
-{
- unsigned int count;
- volatile long period;
-
- count=((unsigned int)(REF_FREQ/20e3)) & 0xffff;
- pwm_initialize(BASE,MIN_COUNT,count);
- brake_initialize(BASE);
-
- period=NatLib_LoadInt(0);
- start_rt_timer(micro2count(period));
- pthread_create(&th,NULL,pwmtest,NULL);
-
- pwm_set_duty(500000);
- pwm_on();
- brake_release();
-
- _asm
- clr a
- _endasm;
-
- return period;
-}
-
-/* public static native void stopRealtime() */
-void Native_stopRealtime(void) _JavaNative
-{
- brake_apply();
- pwm_off();
-
- pthread_cancel(th);
- stop_rt_timer();
-
- pwm_finalize();
-
- _asm
- clr a
- _endasm;
-}
-
-/* public static native void pwmSet(unsigned int duty) */
-void Native_pwmSet(void) _JavaNative
-{
- duty=NatLib_LoadInt(0);
-
- _asm
- clr a
- _endasm;
-}
-
aic-1.*.* based on TINI DS390 processor
-Em funcao de alteracos no protocolo de aplicacao, os programas desta versao
-que utilizam comunicacao nao sao compativeis com os correspondentes das
-versoes anteriores a 1.2.0. Assim, os daemons que estejam instalados na AIC
-devem ser substituidos pela nova versao.
-
+aic-2.*.* dsPIC30F4012
+ aic-2.0.* MAX5062 MOSFET driver, do not work
+++ /dev/null
-DEPNAME+=-add HTTPSERVER
-NATLIB:=-n sputtering.tlib
-
-all: SputPIDDaemon.tini
-
-SputPIDDaemon.class: SputPIDDaemon.java ../lib/AIC.jar
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} SputPIDDaemon.java
-
-ResetHandler.class: SputPIDDaemon.java ../lib/AIC.jar
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} SputPIDDaemon.java
-
-SputPIDDaemon.tini: SputPIDDaemon.class ../lib/AIC.jar ResetHandler.class
- java ${CLASSPATH} BuildDependency ${DEPNAME} ${DEPFILE} ${DEPPATH} -f SputPIDDaemon.class -f ResetHandler.class -f MotorHandler.class -f ShutterHandler.class ${APIDBPATH} -o SputPIDDaemon.tini ${LIBPATH} ${NATLIB}
-
-clean:
- rm -f *.bak *~ *.class *.tlib
-
-distclean: clean
- rm -f SputPIDDaemon.tini
-
-upload: SputPIDDaemon.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Sputtering PID Daemon
- Copyright (C) 2007 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import br.ufrgs.ece.AIC.*;
-import com.dalsemi.comm.*;
-import com.dalsemi.system.*;
-import java.io.*;
-import java.lang.*;
-
-import com.dalsemi.tininet.http.*;
-import com.dalsemi.tininet.*;
-import java.util.*;
-
-/**
-*/
-public class SputPIDDaemon extends Thread
-{
- static final int ST=250*4;
-
- static Sputtering sputtering=new Sputtering();
- static Host host;
- static boolean debug=false;
- static boolean udp=false;
- static boolean help=false;
-
- public static void main(String[] args) throws IOException,CanBusException
- {
- int hostarg=0;
-
- System.out.println("AIC Sputtering PID Daemon");
- System.out.println("Copyright (C) 2007 Walter Fetter Lages <w.fetter@ieee.org>.\n");
- System.out.println(" 2007 Diego Caberlon Santini <diegos@ece.ufrgs.br>.\n");
-
- switch(args.length)
- {
- case 0:
- {
- help=true;
- break;
- }
- case 1:
- {
- if(args[0].equals("-debug") ||
- args[0].equals("-UDP")) help=true;
- break;
- }
- case 2:
- {
- hostarg=1;
- if(args[0].equals("-debug")) debug=true;
- else help=true;
- break;
- }
- case 3:
- {
- hostarg=1;
- if(args[0].equals("-UDP")) udp=true;
- else help=true;
- break;
- }
- case 4:
- {
- hostarg=2;
- if(args[0].equals("-debug")) debug=true;
- else help=true;
- if(args[1].equals("-UDP")) udp=true;
- else help=true;
- break;
- }
- default:
- {
- help=true;
- }
- }
-
-
- if(help)
- {
- System.out.println("Usage:\tjava PIDDaemon.tini [-debug] aic_id");
- System.out.println("\tor");
- System.out.println("\tjava PIDDaemon.tini [-debug] -UDP controller_host status_port");
- System.exit(1);
- }
- try
- {
- if(udp) host=new HostUDP(args[hostarg],Integer.parseInt(args[hostarg+1]));
- else host=new HostCAN(Integer.parseInt(args[hostarg]));
-
- SendOutput sendOutput=new SendOutput();
- sendOutput.setPriority(Thread.MAX_PRIORITY);
- sendOutput.start();
-
- if(debug) System.out.println("sendOutput priority="+sendOutput.getPriority());
-
- GetReference getReference=new GetReference();
- getReference.setPriority(Thread.MAX_PRIORITY-1);
- getReference.start();
-
- if(debug) System.out.println("getReference priority="+getReference.getPriority());
-
- HTTPServer httpd=new HTTPServer(80);
- httpd.setHTTPRoot("/html");
- httpd.setIndexPage("index.html");
-// httpd.setLogFilename("/log/DoorWeb.txt");
- httpd.setLogging(false);
-
- while (true)
- {
- try
- {
- httpd.serviceRequests();
- }
- catch (HTTPServerException e)
- {
- System.out.println("Error occured while servicing requests: " + e.getMessage());
- }
- }
-
- }
- catch (NumberFormatException nfe)
- {
- System.out.println("Usage: java PIDDaemon.tini [-debug] [-UDP controller_host port] | aicid");
- System.exit(1);
- }
- }
-}
-
-/**
-*/
-class GetReference extends SputPIDDaemon
-{
- public static final int SHUTTER=Host.USER0;
-
- public void run()
- {
- try
- {
- for(int k=0;;k++)
- {
- if(debug) System.out.print("k="+k+"\t");
-
- byte[] args=new byte[256];
- int cmd=host.command(args,256);
-
- if(debug) System.out.println("Command="+ cmd +"\t");
-
- switch(cmd)
- {
- case Host.MOTOR_REF:
- {
- if(debug) System.out.println("Run PID Ref="+host.reference()+"\t");
- while(sputtering.lock() == 0);
-
- int tick=30000;
-
- //ref in rad
- float ref=(float)host.reference();
-
- float y=sputtering.getOutput();
-
- sputtering.setReference(ref);
- if(debug) System.out.print("Starting real-time timer with "+tick+" us period...");
- int period= sputtering.pidStartRealtime(tick);
- if(debug) System.out.println("done. Effective period: "+period+" us.");
-
- if(debug) System.out.println("Running sputtering");
-
- while((Math.abs(ref - y) >= 0.02))
- {
- y=sputtering.getOutput();
- if(debug) System.out.println("\treference="+ref+"\toutput="+y);
- }
- if(debug) System.out.println("done.");
-
- if(debug) System.out.print("Stoping real-time timer...");
- sputtering.pidStopRealtime();
- if(debug) System.out.println("done.");
-
- sputtering.unlock();
- break;
- }
- case Host.RESET:
- {
- if(debug) System.out.print("Reset PID...");
- while(sputtering.lock() == 0);
- sputtering.findHome();
- if(debug) System.out.println("done.");
- sputtering.unlock();
- break;
- }
- case SHUTTER:
- {
- int time=0;
- for(int i=0;i < 4;i++) time=time | ( ( ( ( (int) args[i+1]) & 0xff) << (i*8) ) );
- if(debug) System.out.println("Shutter Open time="+time+"\t");
- while(sputtering.lock() == 0);
-
- int tick=10000;
- //time in usec
- int iref= time/tick;
- sputtering.openShutter(iref);
-
- if(debug) System.out.print("Starting real-time timer with "+tick+" us period...");
- int period= sputtering.shutterStartRealtime(tick);
- if(debug) System.out.println("done. Effective period: "+period+" us.");
-
-
- if(debug) System.out.println("Shutter Opened");
-
- while(sputtering.getTime() <= iref);
-
- if(debug) System.out.println("done.");
-
- if(debug) System.out.print("Stoping real-time timer...");
- sputtering.shutterStopRealtime();
- if(debug) System.out.println("done.");
-
- sputtering.unlock();
- break;
- }
-
- default:
- {
- if(debug) System.out.println("Invalid\t");
- break;
- }
-
- }
- }
- }
- catch (Exception all)
- {
- all.printStackTrace();
- }
- }
-}
-
-/**
-*/
-class SendOutput extends SputPIDDaemon
-{
- public void run()
- {
- try
- {
- for(;;)
- {
- long timeStart=com.dalsemi.system.Clock.getTickCount();
-
- int index=0;
- if(sputtering.getIndex()!=0) index|=Host.INDEX_ON;
- if(sputtering.lock() == 0) index|=Host.BUSY; else sputtering.unlock();
-
- double disp=sputtering.getOutput();
- if(debug) System.out.print("Encoder="+disp+" rad\tindex="+index+"\t");
- host.sendStatus(disp,index);
-
- long timeEnd=com.dalsemi.system.Clock.getTickCount();;
- long blockTime=ST-(timeEnd-timeStart);
- if(debug) System.out.println("Blocking time="+blockTime);
- if(blockTime > 4) Thread.sleep(blockTime);
- }
- }
- catch(Exception all)
- {
- all.printStackTrace();
- }
- }
-}
-
-/**
-*/
-class MotorHandler extends SputPIDDaemon implements PostScript
-{
- /**
- * This method handles all responses to the the HTTP POST
- *
- * @param data - a Vector of PostElements holding all supplied fields and Values in pairs
- * @param out - an Output Stream to the client socket
- * @param work - HTTPWorker contains utility functions used to URL encode our response
- * @throws IOException if an IO error occurs
- */
- public void handlePost(Vector data,OutputStream out,HTTPWorker work) throws IOException
- {
- while(sputtering.lock() == 0);
- // Response page
-
- // HTML headers
-
- StringBuffer strBuff=new StringBuffer("<html>\r\n"
- + "<META HTTP-EQUIV=REFRESH CONTENT=\"10;URL=http://"+TININet.getHostname()+"/\">\r\n"
- + "<title>Motor Control</title>\r\n"
- + "<body><center><h1>Motor Sendo Posicionado... Aguarde</h1>\r\n");
-
- PostElement pref = (PostElement)data.elementAt(0);
-
- // Use HTTPWorker's encode body function to generate the URL encoded response
- out.write(work.encodeBody(HTTPServer.HTTP_OK,"OK",HTTPServer.MIME_TEXT_HTML,strBuff.length()));
-
- // Send out the bytes of our response page
- out.write(strBuff.toString().getBytes());
-
- // Ensure that our data is written imediatly
- out.flush();
-
-
- int iref = Integer.parseInt(pref.value);
- float ref=iref*(float)Math.PI/180;
- sputtering.setReference(ref);
-
- int tfms=10000;
- int tick=30000;
- if(debug) System.out.print("Starting real-time timer with "+tick+" us period...");
- int period= sputtering.pidStartRealtime(tick);
- if(debug) System.out.println("done. Effective period: "+period+" us.");
-
- if(debug) System.out.println("Running PID for "+tfms+" ms...");
- int t0=sputtering.getTime();
- int t=0;
- int t1;
-
- System.gc();
-
- try
- {
- long blockTime=2000;
- if(debug) System.out.println("Blocking time="+blockTime);
- if(blockTime > 4) Thread.sleep(blockTime);
- }
- catch(Exception all)
- {
- all.printStackTrace();
- }
-
- try
- {
- while(t*tick/1000 <= tfms)
- {
- t1=sputtering.getTime();
- t=t1-t0;
- if(debug) System.out.print("t="+t*tick/1000+" ms");
- if(debug) System.out.println("\treference="+ref+"\toutput="+sputtering.getOutput());
- }
- }
- catch(Exception all)
- {
- System.gc();
- }
- if(debug) System.out.println("...done.");
-
- if(debug) System.out.print("Stoping real-time timer...");
- sputtering.pidStopRealtime();
- if(debug) System.out.println("done.");
-
- sputtering.unlock();
- }
-}
-
-/**
-*/
-class ResetHandler extends SputPIDDaemon implements PostScript
-{
- /**
- * This method handles all responses to the the HTTP POST
- *
- * @param data - a Vector of PostElements holding all supplied fields and Values in pairs
- * @param out - an Output Stream to the client socket
- * @param work - HTTPWorker contains utility functions used to URL encode our response
- * @throws IOException if an IO error occurs
- */
- public void handlePost(Vector data,OutputStream out,HTTPWorker work) throws IOException
- {
- while(sputtering.lock() == 0);
-
- // HTML headers
- StringBuffer strBuff=new StringBuffer("<html>\r\n"
- + "<META HTTP-EQUIV=REFRESH CONTENT=\"10;URL=http://"+TININet.getHostname()+"/\">\r\n"
- + "<title>Reset Control</title>\r\n"
- + "<body><center><h1>Motor Sendo Resetado... Aguarde</h1>\r\n");
-
- // Use HTTPWorker's encode body function to generate the URL encoded response
- out.write(work.encodeBody(HTTPServer.HTTP_OK,"OK",HTTPServer.MIME_TEXT_HTML,strBuff.length()));
-
- // Send out the bytes of our response page
- out.write(strBuff.toString().getBytes());
-
- // Ensure that our data is written imediatly
- out.flush();
-
- if(debug) System.out.println("Resetando Motor...");
- sputtering.findHome();
- if(debug) System.out.println("done");
- sputtering.unlock();
- }
-}
-
-/**
-*/
-class ShutterHandler extends SputPIDDaemon implements PostScript
-{
- /**
- * This method handles all responses to the the HTTP POST
- *
- * @param data - a Vector of PostElements holding all supplied fields and Values in pairs
- * @param out - an Output Stream to the client socket
- * @param work - HTTPWorker contains utility functions used to URL encode our response
- * @throws IOException if an IO error occurs
- */
- public void handlePost(Vector data,OutputStream out,HTTPWorker work) throws IOException
- {
- // HTML headers
- while(sputtering.lock() == 0);
- StringBuffer strBuff=new StringBuffer("<html>\r\n"
- + "<META HTTP-EQUIV=REFRESH CONTENT=\"5;URL=http://"+TININet.getHostname()+"/\">\r\n"
- + "<title>Shutter Control</title>\r\n"
- + "<body><center><h1>Shutter Aberto... Aguarde</h1>\r\n");
-
- PostElement pref = (PostElement)data.elementAt(0);
-
- // Use HTTPWorker's encode body function to generate the URL encoded response
- out.write(work.encodeBody(HTTPServer.HTTP_OK,"OK",HTTPServer.MIME_TEXT_HTML,strBuff.length()));
-
- // Send out the bytes of our response page
- out.write(strBuff.toString().getBytes());
-
- // Ensure that our data is written imediatly
- out.flush();
-
- int tick=10000;
-
- int iref = Integer.parseInt(pref.value);
- iref=iref*1000/tick;
- sputtering.openShutter(iref);
-
- if(debug) System.out.println("iRef\n"+iref);
-
- if(debug) System.out.print("Starting real-time timer with "+tick+" us period...");
- int period= sputtering.shutterStartRealtime(tick);
- if(debug) System.out.println("done. Effective period: "+period+" us.");
-
- while(sputtering.getTime() <= iref);
-
- if(debug) System.out.println("...done.");
-
- if(debug) System.out.print("Stoping real-time timer...");
- sputtering.shutterStopRealtime();
- if(debug) System.out.println("done.");
- sputtering.unlock();
- }
-}
+++ /dev/null
-DEPNAME:=-add HTTPSERVER
-NATLIB:=-n sputtering.tlib
-
-all: SputPIDWeb.tini
-
-SputPIDWeb.class: SputPIDWeb.java
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} $^
-
-MotorHandler.class: MotorHandler.java
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} $^
-
-ResetHandler.class: ResetHandler.java
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} $^
-
-ShutterHandler.class: ShutterHandler.java
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} $^
-
-
-SputPIDWeb.tini: SputPIDWeb.class MotorHandler.class ResetHandler.class ../lib/AIC.jar ShutterHandler.class
- java ${CLASSPATH} BuildDependency ${DEPNAME} ${DEPFILE} ${DEPPATH} -f ShutterHandler.class -f ResetHandler.class -f MotorHandler.class -f SputPIDWeb.class -o $@ ${LIBPATH} ${NATLIB} ${APIDBPATH}
-
-clean:
- rm -f *.bak *~ *.class *.tlib
-
-distclean: clean
- rm -f SputPIDWeb.tini
-
-upload: SputPIDWeb.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
-
\ No newline at end of file
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Door Post Handler
-
- Copyright (C) 2006 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-import br.ufrgs.ece.AIC.*;
-import java.io.*;
-import java.lang.*;
-import java.util.*;
-import com.dalsemi.tininet.http.*;
-import com.dalsemi.system.*;
-import com.dalsemi.tininet.*;
-
-public class MotorHandler extends SputPIDWeb implements PostScript
-{
- /**
- * This method handles all responses to the the HTTP POST
- *
- * @param data - a Vector of PostElements holding all supplied fields and Values in pairs
- * @param out - an Output Stream to the client socket
- * @param work - HTTPWorker contains utility functions used to URL encode our response
- * @throws IOException if an IO error occurs
- */
- public void handlePost(Vector data,OutputStream out,HTTPWorker work) throws IOException
- {
- while(sputtering.lock() == 0);
- // Response page
-
- // HTML headers
-
- StringBuffer strBuff=new StringBuffer("<html>\r\n"
- + "<META HTTP-EQUIV=REFRESH CONTENT=\"10;URL=http://"+TININet.getHostname()+"/\">\r\n"
- + "<title>Motor Control</title>\r\n"
- + "<body><center><h1>Motor Sendo Posicionado... Aguarde</h1>\r\n");
-
- PostElement pref = (PostElement)data.elementAt(0);
-
- // Use HTTPWorker's encode body function to generate the URL encoded response
- out.write(work.encodeBody(HTTPServer.HTTP_OK,"OK",HTTPServer.MIME_TEXT_HTML,strBuff.length()));
-
- // Send out the bytes of our response page
- out.write(strBuff.toString().getBytes());
-
- // Ensure that our data is written imediatly
- out.flush();
-
-
- int iref = Integer.parseInt(pref.value);
- float ref=iref*(float)Math.PI/180;
- sputtering.setReference(ref);
-
- int tfms=10000;
-
- int tick=30000;
- System.out.print("Starting real-time timer with "+tick+" us period...");
- int period= sputtering.pidStartRealtime(tick);
- System.out.println("done. Effective period: "+period+" us.");
-
-
- System.out.println("Running PID for "+tfms+" ms...");
- int t0=sputtering.getTime();
- int t=0;
- int t1;
-
- System.gc();
-
- try
- {
- long blockTime=2000;
- System.out.println("Blocking time="+blockTime);
- if(blockTime > 4) Thread.sleep(blockTime);
- }
- catch(Exception all)
- {
- all.printStackTrace();
- }
-
- try
- {
- while(t*tick/1000 <= tfms)
- {
- t1=sputtering.getTime();
- t=t1-t0;
- System.out.print("t="+t*tick/1000+" ms");
- System.out.println("\treference="+ref+"\toutput="+sputtering.getOutput());
- }
- }
- catch(Exception all)
- {
- System.gc();
- }
- System.out.println("...done.");
-
- System.out.print("Stoping real-time timer...");
- sputtering.pidStopRealtime();
- System.out.println("done.");
-
- sputtering.unlock();
- }
-}
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Door Post Handler
-
- Copyright (C) 2006 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-import br.ufrgs.ece.AIC.*;
-import java.io.*;
-import java.lang.*;
-import java.util.*;
-import com.dalsemi.tininet.http.*;
-import com.dalsemi.system.*;
-import com.dalsemi.tininet.*;
-
-public class ResetHandler extends SputPIDWeb implements PostScript
-{
- /**
- * This method handles all responses to the the HTTP POST
- *
- * @param data - a Vector of PostElements holding all supplied fields and Values in pairs
- * @param out - an Output Stream to the client socket
- * @param work - HTTPWorker contains utility functions used to URL encode our response
- * @throws IOException if an IO error occurs
- */
- public void handlePost(Vector data,OutputStream out,HTTPWorker work) throws IOException
- {
- while(sputtering.lock() == 0);
-
- // HTML headers
- StringBuffer strBuff=new StringBuffer("<html>\r\n"
- + "<META HTTP-EQUIV=REFRESH CONTENT=\"10;URL=http://"+TININet.getHostname()+"/\">\r\n"
- + "<title>Reset Control</title>\r\n"
- + "<body><center><h1>Motor Sendo Resetado... Aguarde</h1>\r\n");
-
- // Use HTTPWorker's encode body function to generate the URL encoded response
- out.write(work.encodeBody(HTTPServer.HTTP_OK,"OK",HTTPServer.MIME_TEXT_HTML,strBuff.length()));
-
- // Send out the bytes of our response page
- out.write(strBuff.toString().getBytes());
-
- // Ensure that our data is written imediatly
- out.flush();
-
- System.out.println("Resetando Motor...");
- sputtering.findHome();
- System.out.println("done");
- sputtering.unlock();
- }
-}
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Door Post Handler
-
- Copyright (C) 2006 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-import br.ufrgs.ece.AIC.*;
-import java.io.*;
-import java.lang.*;
-import java.util.*;
-import com.dalsemi.tininet.http.*;
-import com.dalsemi.system.*;
-import com.dalsemi.tininet.*;
-
-public class ShutterHandler extends SputPIDWeb implements PostScript
-{
- /**
- * This method handles all responses to the the HTTP POST
- *
- * @param data - a Vector of PostElements holding all supplied fields and Values in pairs
- * @param out - an Output Stream to the client socket
- * @param work - HTTPWorker contains utility functions used to URL encode our response
- * @throws IOException if an IO error occurs
- */
- public void handlePost(Vector data,OutputStream out,HTTPWorker work) throws IOException
- {
- while(sputtering.lock() == 0);
- StringBuffer strBuff=new StringBuffer("<html>\r\n"
- + "<META HTTP-EQUIV=REFRESH CONTENT=\"5;URL=http://"+TININet.getHostname()+"/\">\r\n"
- + "<title>Shutter Control</title>\r\n"
- + "<body><center><h1>Schutter Aberto... Aguarde</h1>\r\n");
-
- PostElement pref = (PostElement)data.elementAt(0);
-
- // Use HTTPWorker's encode body function to generate the URL encoded response
- out.write(work.encodeBody(HTTPServer.HTTP_OK,"OK",HTTPServer.MIME_TEXT_HTML,strBuff.length()));
-
- // Send out the bytes of our response page
- out.write(strBuff.toString().getBytes());
-
- // Ensure that our data is written imediatly
- out.flush();
-
- int us=10000;
- int iref = Integer.parseInt(pref.value);
- System.out.println("iref\n"+iref);
-
- iref=iref*1000/us;
- sputtering.openShutter(iref);
-
- System.out.print("Starting real-time timer with "+us+" us period...");
- int period= sputtering.shutterStartRealtime(us);
- System.out.println("done. Effective period: "+period+" us.");
-
- while(sputtering.getTime() <= iref);
-
- System.out.println("...done.");
-
- System.out.print("Stoping real-time timer...");
- sputtering.shutterStopRealtime();
- System.out.println("done.");
- sputtering.unlock();
- }
-}
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Sputtering PID Web Server
- Copyright (C) 2007 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import br.ufrgs.ece.AIC.*;
-import com.dalsemi.tininet.http.HTTPServer;
-import com.dalsemi.tininet.http.HTTPServerException;
-
-class SputPIDWeb
-{
- static Sputtering sputtering;
-
- public static void main(String[] args)
- {
- System.out.println("Sputtering PID Web Server");
- System.out.println("Copyright (C) 2007 Walter Fetter Lages <w.fetter@ieee.org>");
- System.out.println(" 2007 Diego Caberlon Santini <w.fetter@ieee.org>.\n");
-
- HTTPServer httpd=new HTTPServer(80);
- httpd.setHTTPRoot("/html");
- httpd.setIndexPage("index.html");
- httpd.setLogging(false);
-
- System.out.println("Sputtering web server running...");
-
- sputtering=new Sputtering();
-
- while (true)
- {
- try
- {
- httpd.serviceRequests();
- }
- catch (HTTPServerException e)
- {
- System.out.println("Error occured while serving requests: " + e.getMessage());
- }
- }
- }
-}
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<html>
-<head>
-</head>
-<FRAMESET COLS="50%, 50%">
- <FRAME SRC="reset.html" NORESIZE>
- <FRAME SRC="shutter.html" NORESIZE>
- </FRAMESET>
-</FRAMESET>>
-<NOFRAMES>
-<body>
-</body>
-</NOFRAMES>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<html>
-<head>
-<title>Motor Control</title>
-</head>
-<FRAMESET ROWS="60%, 40%">
- <FRAME SRC="motor.html" NORESIZE>
- <FRAME SRC="frame.html" NORESIZE>
- </FRAMESET>
-</FRAMESET>>
-<NOFRAMES>
-<body>
-</body>
-</NOFRAMES>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<html>
-<head>
-<title>Motor Control</title>
-</head>
-<body>
-<center>
-<BASE TARGET="_top">
-<h1>Motor Control</h1>
-<HR WIDTH=50%>
-<form method="post" enctype="application/x-www-form-urlencoded"
-action="MotorHandler">
-<input type="radio" name="ref" value="0" > 0<SUP>o</SUP> degree
-<br>
-<input type="radio" name="ref" value="60"> 60<SUP>o</SUP> degree
-<br>
-<input type="radio" name="ref" value="120"> 120<SUP>o</SUP> degree
-<br>
-<input type="radio" name="ref" value="180"> 180<SUP>o</SUP> degree
-<br>
-<input type="radio" name="ref" value="240"> 240<SUP>o</SUP> degree
-<br>
-<input type="radio" name="ref" value="300"> 300<SUP>o</SUP> degree
-<br>
-<br>
-<input type="submit" value="SET">
-</form>
-<HR WIDTH=50%>
-</center>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<html>
-<head>
-<title>Motor Reset</title>
-</head>
-<body>
-<center>
-<BASE TARGET="_top">
-<h1>Motor Reset</h1>
-<br>
-<HR WIDTH=50%>
-<form method="post" enctype="application/x-www-form-urlencoded"
-action="ResetHandler">
-<input type="submit" value="Motor Reset">
-<HR WIDTH=50%>
-</center>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<html>
-<head>
-<title>Shutter Open</title>
-</head>
-<body>
-<center>
-<BASE TARGET="_top">
-<h1>Shutter Open</h1>
-<br>
-<HR WIDTH=50%>
-<form method="post" enctype="application/x-www-form-urlencoded"
-action="ShutterHandler">
-<input type="text" name="ref" size="6" value="[ms]">
-<br>
-<input type="submit" value="Shutter Open">
-<HR WIDTH=50%>
-</center>
-</body>
-</html>
\ No newline at end of file
+++ /dev/null
-DEPNAME:=-add HTTPSERVER
-
-all: SputWeb.tini
-
-SputWeb.class: SputWeb.java ../lib/AIC.jar
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} $<
-
-SputHandler.class: SputHandler.java ../lib/AIC.jar
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} $<
-
-SputWeb.tini: SputWeb.class SputHandler.class ../lib/AIC.jar
- java ${CLASSPATH} BuildDependency ${DEPNAME} ${DEPFILE} ${DEPPATH} -f SputHandler.class -f SputWeb.class -o $@ ${LIBPATH} ${NATLIB} ${APIDBPATH}
-
-clean:
- rm -f *.bak *~ *.class
-
-distclean: clean
- rm -f SputWeb.tini
-
-upload: SputWeb.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
\ No newline at end of file
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Sputtering Post Handler
-
- Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-import br.ufrgs.ece.AIC.*;
-import java.io.*;
-import java.lang.*;
-import java.util.*;
-import com.dalsemi.tininet.http.*;
-
-public class SputHandler implements PostScript
-{
- static final int BASE=0x800000;
- static AIC aic;
- static boolean first=true;
-
- /**
- * This method handles all responses to the the HTTP POST
- *
- * @param data - a Vector of PostElements holding all supplied fields and Values in pairs
- * @param out - an Output Stream to the client socket
- * @param work - HTTPWorker contains utility functions used to URL encode our response
- * @throws IOException if an IO error occurs
- */
- public void handlePost(Vector data,OutputStream out,HTTPWorker work) throws IOException
- {
- if(first)
- {
- aic=new AIC(BASE,24.0,20e3,2000);
- aic.on();
- aic.brake.release();
- aic.motor.on();
- first=false;
- }
-
- System.out.println("Handling POST Request");
-
- PostElement pos = (PostElement)data.elementAt(0);
- System.out.println("Position="+pos.value);
-
- PostElement volt = (PostElement)data.elementAt(1);
- System.out.println("Voltage="+volt.value);
- Float V=Float.valueOf(volt.value);
- double v=V.doubleValue();
-
- aic.motor.set(v);
-
- // Response page
-
- // HTML headers
- StringBuffer strBuff=new StringBuffer("<html><title>Sputtering Control</title>\r\n"
- + "<body><center><h1>Sputtering Control</h1>\r\n");
-
- strBuff.append("Position set at "+pos.value+"\n");
- strBuff.append("Voltage set at "+volt.value+"\n");
-
-
- // HTML footers
- strBuff.append("</center></body></html>");
-
- // Use HTTPWorker's encode body function to generate the URL encoded response
- out.write(work.encodeBody(HTTPServer.HTTP_OK,"OK",HTTPServer.MIME_TEXT_HTML,strBuff.length()));
-
- // Send out the bytes of our response page
- out.write(strBuff.toString().getBytes());
-
- // Ensure that our data is written imediatly
- out.flush();
-
- System.out.println("Finished handling POST request");
- }
-}
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Sputtering Web Daemon
- Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import com.dalsemi.tininet.http.HTTPServer;
-import com.dalsemi.tininet.http.HTTPServerException;
-
-class SputWeb
-{
- static Object lock;
-
- public static void main(String[] args)
- {
- System.out.println("Sputtering Web Daemon");
- System.out.println("Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>.\n");
-
- HTTPServer httpd=new HTTPServer(80);
- httpd.setHTTPRoot("/html");
- httpd.setIndexPage("index.html");
- httpd.setLogFilename("log.txt");
- httpd.setLogging(true);
-
- System.out.println("Sputtering daemon running...");
-
- while (true)
- {
- try
- {
- httpd.serviceRequests();
- }
- catch (HTTPServerException e)
- {
- System.out.println("Error occured while servicing requests: " + e.getMessage());
- }
- }
- }
-}
+++ /dev/null
-<html>\r
-<head>\r
-<title>Sputtering Control</title>\r
-</head>\r
-<body>\r
-<h1>Sputtering Control</h1>\r
-<form method="post" enctype="application/x-www-form-urlencoded" action="SputHandler">\r
-Position: <input type="text" name="position"><br>\r
-Voltage: <input type="text" name="voltage"><br>\r
- <input type="submit" value="Submit">\r
-</form>\r
-</body>\r
-</html>\r
+++ /dev/null
-all: StrobeTest.tini
-
-StrobeTest.class: StrobeTest.java
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} StrobeTest.java
-
-StrobeTest.tini: StrobeTest.class
- java ${CLASSPATH} TINIConvertor -f StrobeTest.class ${APIDBPATH} -o StrobeTest.tini
-
-clean:
- rm -f *.bak *~ StrobeTest.class
-
-distclean: clean
- rm -f StrobeTest.tini
-
-upload: StrobeTest.tini
- for i in ${AIC}; do echo put $^ | ftp $$i; done
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Strobe Test
- Copyright (C) 2002, 2003 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-import com.dalsemi.system.DataPort;
-import com.dalsemi.system.IllegalAddressException;
-
-class StrobeTest
-{
- static final int BASE = 0x800000;
- static final int PWM = BASE+0x80000;
- static final int ENCODER = BASE+0x90000;
- static final int CONTROL = BASE+0xa0000;
-
- public static void main(String[] args)
- {
- DataPort pwm = new DataPort(PWM);
- DataPort encoder = new DataPort(ENCODER);
- DataPort control = new DataPort(CONTROL);
-
- pwm.setFIFOMode(true);
- encoder.setFIFOMode(true);
- control.setFIFOMode(true);
-
- pwm.setStretchCycles(DataPort.STRETCH10);
- encoder.setStretchCycles(DataPort.STRETCH10);
- control.setStretchCycles(DataPort.STRETCH10);
-
- try
- {
- int data=0;
-
- for(;;)
- {
-
- pwm.write(data);
- encoder.write(data);
- control.write(data);
- data=~data;
-
- pwm.read();
- encoder.read();
- control.read();
-
- }
- }
- catch (IllegalAddressException iae)
- {
- iae.printStackTrace();
- }
- }
-}
-- Reorganizar a estrutura de diretorios.
+Por enquanto:
-- Implementar todos os metodos da classe AIC em C.
+1) testar o dsPIC. DONE!
-- Utilizar RCCI/RCCL?
+2) testar o freeRTOS. DONE!
-- Verificar a maxima taxa possivel com CAN. Em Java T=14ms.
-
-- Verificar se e' vantagem implementar a classe HostCan em Assembly, ja' que
-a API CAN e' opcional e implementada em Assembly. Eventualmente aproveitar a
-biblioteca nativa da Dallas e chamar diretamente os metodos nativos.
-
-- Verificar a possibilidade de fazer um piggy-back para utilizar TINIM400.
-
-- Verificar a possibilidade de utilizar SNAP.
-
-- Eventualmente criar versao do IODaemon ou PID totalmente em Assembly ou em
-C.
-
-- Verificar possivel memory leakage no programa jointtst. Apos algum tempo
-executando o led do HD fica acendendo, indicando possivel uso de memoria
-virtual. Ocorre no RTAI 24.x. Tambem ocorre no 3.x?
-
-- Passar a utilizar IPv6
-
-- Alterar camada de aplicacao CAN para torna-la compativel com CanOpen.
-
-- Alterar protocolo de aplicacao UDP para implementar CAN over IP.
-
-- Comunicacao por TCP
-
-- Comunicacao por RS232
-
-- Problemas de aquecimento
- Trocar os reguladores de alimentacao por reguladores chaveados ou
-instalar ventoinhas.
-
-- Implementar PID.
- Implementado, falta testar.
-
-- Portar o Slush para Linux, pelo menos os utilitarios que nao possuem
-equivalente, como o passwd
-
-- Portar o NFS para o TiniOS
- Verificar implementacao existente.
-
-- Montar ambiente para desenvolvimento
-
-- Portar o Linux/RTAI (uClinux ?)
-
-- AIC versao 2.0.0
- TINIM400?
- TSTICK400?
- SNAP?
- DIMMPC?
- DSP?
- ARM?
- FPGA?, Virtex?, Nios?
- USB?
- FireWire?
- Foundation Fieldbus?
- Profibus?
- I2C?
- Compact-PCI?
- PC-104?
- Korebot (http://www.k-team.com)?
+3) testar o dsPIC na AIC. DONE!
+4) testar o freeRTOS na AIC. DONE!
+++ /dev/null
-all: aicd .runinfo
-
-aicd: aicd.cpp ../include/aicsim.h ../include/aichost.h ../lib/libaic.a
- ${CXX} ${CMPFLAGS} -o aicd aicd.cpp ${LDFLAGS}
-
-../lib/libaic.a:
- $(MAKE) -C ../lib
-
-clean:
- rm -f *~ *.bak *.o
-
-install:
-
-distclean: clean
- rm -f aicd .runinfo
-
-.runinfo:
- echo "aicd:lxrt:./aicd;popall:" > .runinfo
-
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Host Interface Simulation
- Copyright (C) 2003 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <errno.h>
-#include <iostream>
-using namespace std;
-#include <pthread.h>
-#include <sys/mman.h>
-#include <string.h>
-
-#include <aichostudp.h>
-#include <aichostcan.h>
-
-#include <aicsim.h>
-
-#include <rtai_lxrt.h>
-
-struct SEND_STATUS_ARGS
-{
- double ST;
- volatile int *run;
- AIC_HOST *controller;
- AIC_SIM *aic;
-};
-
-void *send_status(void *arg)
-{
- struct SEND_STATUS_ARGS *ptr=(struct SEND_STATUS_ARGS *) arg;
-
-#ifdef REAL_TIME
- unsigned long sstsk_name = nam2num("SEND_STATUS");
- struct sched_param sssched;
-
- sssched.sched_priority = sched_get_priority_max(SCHED_FIFO) - 1;
- if(sched_setscheduler(0,SCHED_FIFO, &sssched ) == -1 )
- {
- cerr << "Error setting scheduler: " << strerror(errno) << "\n";
- pthread_exit(NULL);
- }
-
- mlockall(MCL_CURRENT | MCL_FUTURE);
-
- RT_TASK *sstsk;
- if(!(sstsk = rt_task_init(sstsk_name, 1, 0, 0)))
- {
- cerr << "Can't init send_sensor task\n";
- pthread_exit(NULL);
- }
-
- int period = (int) nano2count((RTIME)(ptr->ST*1e9));
-
- rt_make_hard_real_time();
-
- rt_task_make_periodic(sstsk,rt_get_time()+period,period);
-#endif
-
- while(*ptr->run) for(int i=-48;i < 48;i++)
- {
-
-#ifdef REAL_TIME
- rt_task_wait_period();
-#else
- usleep(ptr->ST*1e6)
-#endif
-
-/* if(ptr->controller->getstatus() & AIC_HOST::MOTOR_ON)
- {
- int index;
- double disp=ptr->aic->encoder.read(&index);
- ptr->controller->send_status(disp,index);
- }
-*/
-
- int index;
- double disp=ptr->aic->encoder.read(&index);
- ptr->controller->send_status(disp,index);
- }
-
-
-#ifdef REAL_TIME
- rt_make_soft_real_time();
- rt_task_delete(sstsk);
- munlockall();
-#endif
- pthread_exit(NULL);
- return NULL;
-}
-
-int main(int argc, char *argv[])
-{
- cout << "AIC Host Interface Simulation\n";
- cout << "Copyright (C) Walter Fetter Lages 2003.\n";
-
- if((argc < 2) || (argc > 4) ||
- ((argc >= 3) && strcasecmp(argv[1],"-UDP")))
- {
- cout << "USAGE:\t" << argv[0] << " can_id\n";
- cout << "\tor\n\t" << argv[0] << " -UDP controller [command_port]\n";
- return -1;
- }
-
-
- const double ST=0.1;
-
- AIC_SIM aic;
- AIC_HOST *controller;
-
- switch(argc)
- {
- default:
- case 2: controller=new AIC_HOST_CAN(atoi(argv[1])); break;
- case 3: controller=new AIC_HOST_UDP(argv[2]); break;
- case 4: controller=new AIC_HOST_UDP(argv[2],STATUS_PORT,atoi(argv[3])); break;
- }
-
-#ifdef REAL_TIME
- unsigned long maintsk_name = nam2num("AICD");
- struct sched_param mainsched;
-
- rt_allow_nonroot_hrt();
-
- mainsched.sched_priority = sched_get_priority_max(SCHED_FIFO) - 1;
- if(sched_setscheduler(0,SCHED_FIFO, &mainsched ) == -1 )
- {
- cerr << "Error setting scheduler: " << strerror(errno) << "\n";
- return -1;
- }
-
- mlockall(MCL_CURRENT | MCL_FUTURE);
-
- RT_TASK *maintsk;
- if(!(maintsk = rt_task_init(maintsk_name, 1, 0, 0)))
- {
- cerr << "Can't init aicd task\n";
- return -1;
- }
-
- rt_set_oneshot_mode();
- int period = (int) nano2count((RTIME)(ST*1e9));
- start_rt_timer(period);
-
- rt_make_hard_real_time();
-
- rt_task_make_periodic(maintsk,rt_get_time()+period,period);
-#endif
-
- volatile int run=1;
-
- pthread_t send_status_th;
- struct SEND_STATUS_ARGS ssargs;
- ssargs.ST=ST;
- ssargs.run=&run;
- ssargs.controller= controller;
- ssargs.aic=&aic;
-
- pthread_create(&send_status_th,NULL,&send_status,&ssargs);
-
-
- for(int k=0;run;k++)
- {
-#ifdef VERBOSE
- cout << "k=" << k << "\t";
-#endif
-
- int cmd=controller->command();
- switch(cmd)
- {
- case AIC_MOTOR_ON:
- {
- aic.motor.on();
- break;
- }
- case AIC_MOTOR_OFF:
- {
- run=0;
- aic.motor.off();
- break;
- }
- case AIC_MOTOR_ACT:
- {
- aic.motor=controller->voltage();
- break;
- }
- case AIC_BRAKE_RELEASE:
- {
- aic.brake.release();
- break;
- }
- case AIC_BRAKE_APPLY:
- {
- aic.brake.apply();
- break;
- }
- case AIC_RESET:
- {
- cout << "AIC Reset\t";
-// aic.reset();
- break;
- }
- default:
- {
- cerr << "Controller command \"" << (char) cmd << "\" unknown by aicd, shutting down\n";
- run=0;
- }
- }
-#ifdef VERBOSE
- cout << "\n";
-#endif
-
- }
- pthread_join(send_status_th,NULL);
- aic.motor.off();
- delete controller;
- cout << "\n";
-
-#ifdef REAL_TIME
- rt_make_soft_real_time();
- stop_rt_timer();
- rt_task_delete(maintsk);
-#endif
-
- return 0;
-}
-
+++ /dev/null
-all: braketst
-
-braketst: braketst.cpp ../lib/libaic.a
- ${CXX} ${CMPFLAGS} -o braketst braketst.cpp ${LDFLAGS}
-
-clean:
- rm -f *~ *.bak *.o
-
-install:
-
-distclean: clean
- rm -f braketst
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Brake Test
- Copyright (C) 2003 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <iostream>
-using namespace std;
-#include<string.h>
-
-#include <delay.h>
-
-#include <aicudp.h>
-#include <aiccan.h>
-
-const int ST=1000;
-
-int main(int argc,char *argv[])
-{
- cout << "\nAIC Brake Test Program\n";
- cout << "Copyright (C) 2003 Walter Fetter Lages <w.fetter@ieee.org>.\n\n";
-
- if((argc < 2) || (argc > 4) ||
- ((argc >= 3) && strcasecmp(argv[1],"-UDP")))
- {
- cout << "USAGE:\t" << argv[0] << " can_id\n";
- cout << "\tor\n\t" << argv[0] << " -UDP aic [status_port]\n";
- return -1;
- }
-
- AIC *aic;
- switch(argc)
- {
- default:
- case 2: aic=new AIC_CAN(atoi(argv[1])); break;
- case 3: aic=new AIC_UDP(argv[2]); break;
- case 4: aic=new AIC_UDP(argv[2],atoi(argv[3])); break;
- }
-
- int apply=0;
- for(int i=0;;i++)
- {
- if(apply)
- {
- aic->brake.apply();
- cout << "Brake Applied\t\n";
- }
- else
- {
- aic->brake.release();
- cout << "Brake Released\t\n";
- }
- apply=~apply;
- delay(ST);
- }
-
- aic->brake.apply();
-
- delete aic;
-
- return 0;
-
-}
+++ /dev/null
-# Doxyfile 1.3.7
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-# TAG = value [value, ...]
-# For lists items can also be appended using:
-# TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
-# by quotes) that should identify the project.
-
-PROJECT_NAME = "Actuator Interface Card"
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
-
-PROJECT_NUMBER = "1.5.1"
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY = .
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
-# 2 levels of 10 sub-directories under the output directory of each output
-# format and will distribute the generated files over these directories.
-# Enabling this option can be useful when feeding doxygen a huge amount of source
-# files, where putting all generated files in the same directory would otherwise
-# cause performance problems for the file system.
-
-CREATE_SUBDIRS = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch,
-# Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en
-# (Japanese with English messages), Korean, Korean-en, Norwegian, Polish, Portuguese,
-# Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
-
-OUTPUT_LANGUAGE = English
-
-# This tag can be used to specify the encoding used in the generated output.
-# The encoding is not always determined by the language that is chosen,
-# but also whether or not the output is meant for Windows or non-Windows users.
-# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES
-# forces the Windows encoding (this is the default for the Windows binary),
-# whereas setting the tag to NO uses a Unix-style encoding (the default for
-# all platforms other than Windows).
-
-USE_WINDOWS_ENCODING = NO
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is used
-# as the annotated text. Otherwise, the brief description is used as-is. If left
-# blank, the following values are used ("$name" is automatically replaced with the
-# name of the entity): "The $name class" "The $name widget" "The $name file"
-# "is" "provides" "specifies" "contains" "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF =
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
-# description.
-
-ALWAYS_DETAILED_SEC = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited
-# members of a class in the documentation of that class as if those members were
-# ordinary class members. Constructors, destructors and assignment operators of
-# the base classes will not be shown.
-
-INLINE_INHERITED_MEMB = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user-defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the
-# path to strip.
-
-STRIP_FROM_PATH = ..
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
-# the path mentioned in the documentation of a class, which tells
-# the reader which header file to include in order to use a class.
-# If left blank only the name of the header file containing the class
-# definition is used. Otherwise one should specify the include paths that
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful is your file systems
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like the Qt-style comments (thus requiring an
-# explicit @brief command for a brief description.
-
-JAVADOC_AUTOBRIEF = YES
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
-# comments) as a brief description. This used to be the default behaviour.
-# The new default is to treat a multi-line C++ comment block as a detailed
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the DETAILS_AT_TOP tag is set to YES then Doxygen
-# will output the detailed description near the top, like JavaDoc.
-# If set to NO, the detailed description appears after the member
-# documentation.
-
-DETAILS_AT_TOP = YES
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
-
-INHERIT_DOCS = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC = YES
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE = 8
-
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user-defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES =
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
-# only. Doxygen will then generate output that is more tailored for C.
-# For instance, some of the names that are used will be different. The list
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C = NO
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources
-# only. Doxygen will then generate output that is more tailored for Java.
-# For instance, namespaces will be presented as packages, qualified scopes
-# will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA = NO
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
-
-SUBGROUPING = YES
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL = NO
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
-
-EXTRACT_PRIVATE = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
-
-EXTRACT_STATIC = NO
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES = YES
-
-# This flag is only useful for Objective-C code. When set to YES local
-# methods, which are defined in the implementation section but not in
-# the interface are included in the documentation.
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS = YES
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
-# friend (class|struct|union) declarations.
-# If set to NO (the default) these declarations will be included in the
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
-# documentation blocks found inside the body of a function.
-# If set to NO (the default) these blocks will be appended to the
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS = NO
-
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# users are advised to set this option to NO.
-
-CASE_SENSE_NAMES = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES = YES
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
-
-INLINE_INFO = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
-
-SORT_MEMBER_DOCS = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
-
-SORT_BRIEF_DOCS = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
-# sorted by fully-qualified names, including namespaces. If set to
-# NO (the default), the class list will be sorted only by class name,
-# not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME = YES
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
-
-GENERATE_TODOLIST = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
-
-GENERATE_TESTLIST = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
-
-GENERATE_BUGLIST = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
-# disable (NO) the deprecated list. This list is created by putting
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or define consists of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and defines in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
-
-WARNINGS = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED = YES
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some
-# parameters in a documented function, or documenting parameters that
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR = YES
-
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text.
-
-WARN_FORMAT = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
-
-WARN_LOGFILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
-
-INPUT = . \
- ../include \
- ../lib
-
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp
-# *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm
-
-FILE_PATTERNS = *.dox *.h *.inc *.java
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
-
-RECURSIVE = YES
-
-# The EXCLUDE tag can be used to specify files and/or directories that should
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-
-EXCLUDE =
-
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories
-# that are symbolic links (a Unix filesystem feature) are excluded from the input.
-
-EXCLUDE_SYMLINKS = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories.
-
-EXCLUDE_PATTERNS =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
-
-EXAMPLE_PATH =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
-
-EXAMPLE_PATTERNS =
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
-
-IMAGE_PATH =
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output.
-
-INPUT_FILTER =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-# Note: To get rid of all source code in the generated output, make sure also
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER = NO
-
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES (the default)
-# then for each documented function all documented
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = YES
-
-# If the REFERENCES_RELATION tag is set to YES (the default)
-# then for each documented function all documented entities
-# called/used by that function will be listed.
-
-REFERENCES_RELATION = YES
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX = NO
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX = 5
-
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
-
-GENERATE_HTML = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard header.
-
-HTML_HEADER =
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
-
-HTML_FOOTER =
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# stylesheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET =
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
-# files or namespaces will be aligned in HTML using tables. If set to
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS = YES
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
-# be used to specify the file name of the resulting .chm file. You
-# can add a path in front of the file if the result should not be
-# written to the html output directory.
-
-CHM_FILE =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
-# be used to specify the location (absolute path including file name) of
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND = NO
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
-# top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it.
-
-DISABLE_INDEX = NO
-
-# This tag can be used to set the number of enum values (range [1..20])
-# that doxygen will group on one line in the generated HTML documentation.
-
-ENUM_VALUES_PER_LINE = 4
-
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
-# probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW = YES
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
-
-TREEVIEW_WIDTH = 250
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
-
-GENERATE_LATEX = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
-
-LATEX_CMD_NAME = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
-# default command name.
-
-MAKEINDEX_CMD_NAME = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_LATEX = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, a4wide, letter, legal and
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE = a4wide
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS = YES
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
-# higher quality PDF documentation.
-
-USE_PDFLATEX = YES
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE = YES
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
-# include the index chapters (such as File Index, Compound Index, etc.)
-# in the output.
-
-LATEX_HIDE_INDICES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimized for Word 97 and may not look very pretty with
-# other RTF readers or editors.
-
-GENERATE_RTF = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_RTF = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assignments. You only have to provide
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE =
-
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
-
-GENERATE_MAN = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT = man
-
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation.
-
-GENERATE_XML = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_SCHEMA =
-
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_DTD =
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
-# dump the program listings (including syntax highlighting
-# and cross-referencing information) to the XML output. Note that
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will
-# generate a Perl module file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
-
-GENERATE_PERLMOD = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
-# nicely formatted so it can be parsed by a human reader. This is useful
-# if you want to understand what is going on. On the other hand, if this
-# tag is set to NO the size of the Perl module output will be much smaller
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY = YES
-
-# The names of the make variables in the generated doxyrules.make file
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
-# This is useful so different doxyrules.make files included by the same
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
-
-ENABLE_PREPROCESSING = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION = YES
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_PREDEFINED tags.
-
-EXPAND_ONLY_PREDEF = YES
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
-
-SEARCH_INCLUDES = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
-
-INCLUDE_PATH = ../include
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
-
-INCLUDE_FILE_PATTERNS =
-
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed.
-
-PREDEFINED =
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition.
-
-EXPAND_AS_DEFINED =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all function-like macros that are alone
-# on a line, have an all uppercase name, and do not end with a semicolon. Such
-# function macros are typically used for boiler-plate code, and will confuse the
-# parser if not removed.
-
-SKIP_FUNCTION_MACROS = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles.
-# Optionally an initial location of the external documentation
-# can be added for each tagfile. The format of a tag file without
-# this location is as follows:
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths or
-# URLs. If a location is present for each tag, the installdox tool
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE =
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
-
-ALLEXTERNALS = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
-
-EXTERNAL_GROUPS = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or
-# super classes. Setting the tag to NO turns the diagrams off. Note that this
-# option is superseded by the HAVE_DOT option below. This is only a fallback. It is
-# recommended to install and use dot, since it yields more powerful graphs.
-
-CLASS_DIAGRAMS = YES
-
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT = YES
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-
-UML_LOOK = NO
-
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS = NO
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
-
-INCLUDE_GRAPH = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH = YES
-
-# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will
-# generate a call dependency graph for every global function or class method.
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable call graphs for selected
-# functions only using the \callgraph command.
-
-CALL_GRAPH = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are png, jpg, or gif
-# If left blank png will be used.
-
-DOT_IMAGE_FORMAT = png
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-
-DOT_PATH =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
-
-DOTFILE_DIRS =
-
-# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than
-# this value, doxygen will try to truncate the graph, so that it fits within
-# the specified constraint. Beware that most browsers cannot cope with very
-# large images.
-
-MAX_DOT_GRAPH_WIDTH = 1024
-
-# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than
-# this value, doxygen will try to truncate the graph, so that it fits within
-# the specified constraint. Beware that most browsers cannot cope with very
-# large images.
-
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
-# graphs generated by dot. A depth value of 3 means that only nodes reachable
-# from the root by following a path via at most 3 edges will be shown. Nodes that
-# lay further from the root node will be omitted. Note that setting this option to
-# 1 or 2 may greatly reduce the computation time needed for large code bases. Also
-# note that a graph may be further truncated if the graph's image dimensions are
-# not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT).
-# If 0 is used for the depth value (the default), the graph is not depth-constrained.
-
-MAX_DOT_GRAPH_DEPTH = 0
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermediate dot files that are used to generate
-# the various graphs.
-
-DOT_CLEANUP = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE = YES
-SCHEMS=aictini.sch aicpower.sch aicconn.sch
+GEDA_PATH=/usr/share/gEDA/scheme
+FILES=aicpic.sch aicpower.sch
-all: doc pcb bom html
+all: pdf drc bom partslist net
-doc: aic.pdf
+drc: aic.drc
-aic.ps: aic.dvi
- dvips aic
+bom: aic.bom aic.csv aic.bpp aic.xrf
-aic.pdf: aic.dvi
- dvipdf aic
+partslist: aic.pl1 aic.pl2 aic.pl3
-aic.dvi: aic.tex \
- aictini.eps aicpower.eps aicconn.eps \
- aic_assembly.eps \
- aic_frontsilk.eps aic_front.eps aic_frontmask.eps \
- aic_back.eps aic_backmask.eps \
- aic_fab.eps \
- aic.aux aic.bbl
- latex aic
- latex aic
+net: aic.net
-aic.aux: aic.tex
- latex aic
+pdf: aicpic.eps aicpower.eps
-aic.bbl: aic.bib
- bibtex aic
+pcb: aic.pcb
-aictini.ps: aictini.sch
- gschem -oaictini.ps -s/usr/share/gEDA/scheme/gschem-print.scm aictini.sch
+aicpic.ps: aicpic.sch
+ gschem -o$@ -s$(GEDA_PATH)/print.scm $^
-aictini.eps: aictini.ps
- eps2eps aictini.ps aictini.eps
+aicpic.eps: aicpic.ps
+ eps2eps $^ $@
aicpower.ps: aicpower.sch
- gschem -oaicpower.ps -s/usr/share/gEDA/scheme/gschem-print.scm aicpower.sch
+ gschem -o$@ -s$(GEDA_PATH)/print.scm $^
aicpower.eps: aicpower.ps
- eps2eps aicpower.ps aicpower.eps
+ eps2eps $^ $@
+
+aic.drc: ${FILES} attribs
+ gnetlist -g drc -o aic.drc ${FILES}
-aicconn.ps: aicconn.sch
- gschem -oaicconn.ps -s/usr/share/gEDA/scheme/gschem-print.scm aicconn.sch
-
-aicconn.eps: aicconn.ps
- eps2eps aicconn.ps aicconn.eps
-
-pcb: aic.net #aicpcb.ps aicpcb.pdf #aic.pcb
-
-aic.net: $(SCHEMS)
- gnetlist -g PCB -o aic.net $(SCHEMS)
-
-#aic.pcb: $(SCHEMS)
-# gnetlist -g PCBboard -o aic.pcb $(SCHEMS)
-
-aic_assembly.eps: aic_assembly.ps
- eps2eps aic_assembly.ps aictmp.eps
- pstops -b 1:0\(-3.5cm,0\) aictmp.eps aic_assembly.eps
+aic.bom: ${FILES} attribs
+ gnetlist -g bom -o aic.bom ${FILES}
-aic_frontsilk.eps: aic_frontsilk.ps
- eps2eps aic_frontsilk.ps aictmp.eps
- pstops -b 1:0\(-3.5cm,0\) aictmp.eps aic_frontsilk.eps
-
-aic_front.eps: aic_front.ps
- eps2eps aic_front.ps aictmp.eps
- pstops -b 1:0\(-3.5cm,0\) aictmp.eps aic_front.eps
-
-aic_frontmask.eps: aic_frontmask.ps
- eps2eps aic_frontmask.ps aictmp.eps
- pstops -b 1:0\(-3.5cm,0\) aictmp.eps aic_frontmask.eps
-
-aic_back.eps: aic_back.ps
- eps2eps aic_back.ps aictmp.eps
- pstops -b 1:0\(-3.5cm,0\) aictmp.eps aic_back.eps
-
-aic_backmask.eps: aic_backmask.ps
- eps2eps aic_backmask.ps aictmp.eps
- pstops -b 1:0\(-3.5cm,0\) aictmp.eps aic_backmask.eps
-
-aic_fab.eps: aic_fab.ps
- eps2eps aic_fab.ps aictmp.eps
- pstops -b 1:0\(-3.5cm,0\) aictmp.eps aic_fab.eps
-
-#aicpcb.ps: aic_assembly.ps aic_frontsilk.ps aic_front.ps aic_frontmask.eps \
-# aic_back.ps aic_backmask.ps \
-# aic_fab.ps
-# cat aic_assembly.ps aic_frontsilk.ps aic_front.ps aic_frontmask.eps \
-# aic_back.ps aic_backmask.ps \
-# aic_fab.ps > aictmp.ps
-# ps2ps aictmp.ps aicpcb.ps
-
-#aicpcb.pdf: aicpcb.ps
-# ps2pdf aicpcb.ps
-
-bom: aic.bom aic.bpp aic.xrf
-
-aic.bom: $(SCHEMS) attribs
- gnetlist -g bom -o aic.bom $(SCHEMS)
-
aic.bpp: aic.bom
bompp.sh aic.bom > aic.bpp
aic.xrf: aic.bom
bom_xref.sh aic.bom > aic.xrf
-html: html/index.html
+aic.csv: ${FILES} attribs
+ gnetlist -g bom2 -o aic.csv ${FILES}
-html/index.html: Doxyfile aic.dox
- doxygen
+aic.pl1: ${FILES}
+ gnetlist -g partslist1 -o aic.pl1 ${FILES}
-clean:
- rm -f *.aux *.log *~ *.bak *.bbl *.blg *.old aicconn.ps aicpower.ps aictini.ps *.eps *.dvi
+aic.pl2: ${FILES}
+ gnetlist -g partslist2 -o aic.pl2 ${FILES}
+
+aic.pl3: ${FILES}
+ gnetlist -g partslist3 -o aic.pl3 ${FILES}
-distclean: clean
- rm -f aic*.pdf aic.net aic.bom aic.bpp aic.xrf
- rm -rf html
+aic.net: ${FILES}
+ gnetlist -g PCB -o aic.net ${FILES}
-update: $(SCHEMS)
- gschupdate $(SCHEMS)
+#aic.pdf: aic.ps
+# ps2pdf aic.ps
+
+#aic.ps: modem.ps lpifc.ps option.ps \
+# aic_pin_silk.ps aic_assembly.ps aic_fab.ps \
+# aic_front.ps aic_frontmask.ps aic_frontsilk.ps \
+# aic_back.ps aic_backmask.ps
+# cat modem.ps lpifc.ps option.ps \
+# aic_assembly.ps aic_fab.ps \
+# aic_front.ps aic_frontmask.ps aic_frontsilk.ps \
+# aic_back.ps aic_backmask.ps \
+# aic_pin_silk.ps > tmp.ps
+# ps2ps tmp.ps aic.ps
+
+#aic.pcb: ${FILES} project
+# gsch2pcb project
+
+#aic_pin_silk.ps: aic_frontsilk.ps aic_front.ps
+# MergePCBPS aic_frontsilk.ps aic_front.ps > aic_pin_silk.ps
+
+clean:
+ rm -rf *.log *~ tmp.ps aicpic.ps aicpower.ps *.bak* aic_pin_silk.ps *.eps aic.pcb-
+
+mrproper: clean
+ rm -rf *.drc *.bom *.bpp *.xrf *.csv *.pl1 *.pl2 *.pl3 *.net aic.pdf *.tgz
+
+distclean: mrproper
+ rm -rf aicpic.ps aicpower.ps
--- /dev/null
+G04 start of page 2 for group 0 idx 0 *\r
+G04 Title: (unknown), solder *\r
+G04 Creator: pcb 20100929 *\r
+G04 CreationDate: Thu 18 Nov 2010 07:40:28 PM GMT UTC *\r
+G04 For: andrenb *\r
+G04 Format: Gerber/RS-274X *\r
+G04 PCB-Dimensions: 710000 410000 *\r
+G04 PCB-Coordinate-Origin: lower left *\r
+%MOIN*%\r
+%FSLAX25Y25*%\r
+%LNBACK*%\r
+%ADD11C,0.0100*%\r
+%ADD12C,0.0250*%\r
+%ADD13C,0.0700*%\r
+%ADD14C,0.1200*%\r
+%ADD15C,0.0900*%\r
+%ADD16C,0.0650*%\r
+%ADD17C,0.1150*%\r
+%ADD18C,0.0300*%\r
+%ADD19C,0.0400*%\r
+%ADD20C,0.0550*%\r
+%ADD21C,0.0200*%\r
+%ADD22C,0.0850*%\r
+%ADD23C,0.1000*%\r
+%ADD24C,0.0080*%\r
+%ADD25C,0.0600*%\r
+%ADD26C,0.0800*%\r
+%ADD27C,0.1400*%\r
+%ADD28C,0.1050*%\r
+%ADD29C,0.0280*%\r
+%ADD30C,0.0350*%\r
+%ADD31C,0.0420*%\r
+%ADD32C,0.0430*%\r
+%ADD33C,0.0520*%\r
+G54D11*X40000Y410000D02*X200000D01*\r
+X365000Y92500D02*X270000D01*\r
+X262500Y85000D02*X270000Y92500D01*\r
+G54D12*X330000Y50000D02*Y75000D01*\r
+X340000Y85000D01*\r
+X272500Y155000D02*X465000D01*\r
+G54D13*X330000Y127500D02*Y135000D01*\r
+G54D14*X335000Y137500D02*X460000D01*\r
+G54D15*X462500D02*X467500Y132500D01*\r
+G54D12*X350000Y120000D02*Y125000D01*\r
+X347500Y117500D02*X350000Y120000D01*\r
+G54D14*X487500Y95000D02*X470000Y112500D01*\r
+G54D16*X340000Y70000D02*X347500Y77500D01*\r
+G54D12*X255000Y65000D02*Y60000D01*\r
+G54D16*X235000D02*Y50000D01*\r
+Y60000D02*X245000D01*\r
+G54D12*X432500D02*X475000D01*\r
+G54D13*X372500Y40000D02*X497500D01*\r
+X465000D02*X467500Y42500D01*\r
+Y50000D01*\r
+G54D12*X507500Y70000D02*X355000D01*\r
+G54D16*X515000Y77500D02*X542500Y50000D01*\r
+G54D12*X355000Y70000D02*X350000Y65000D01*\r
+Y40000D01*\r
+G54D16*X340000Y42500D02*Y70000D01*\r
+G54D12*Y85000D02*X522500D01*\r
+G54D16*X347500Y77500D02*X515000D01*\r
+G54D11*X190000Y85000D02*X262500D01*\r
+X225000Y42500D02*X155000D01*\r
+G54D12*X217500Y187500D02*X345000D01*\r
+X332500Y207500D02*X265000D01*\r
+G54D15*X330000Y210000D02*X332500Y212500D01*\r
+G54D13*X330000Y200000D02*Y210000D01*\r
+G54D12*X207500Y155000D02*X177500D01*\r
+X465000Y222500D02*X280000D01*\r
+X350000Y192500D02*Y200000D01*\r
+X345000Y187500D02*X350000Y192500D01*\r
+G54D17*X460000Y212500D02*X335000D01*\r
+G54D12*X477500Y200000D02*Y210000D01*\r
+G54D14*X340000Y172500D02*X552500D01*\r
+G54D11*X225000Y240000D02*X352500D01*\r
+G54D12*X432500Y227500D02*X152500D01*\r
+G54D18*X385000Y245000D02*X162500D01*\r
+G54D11*X492500Y235000D02*X332500D01*\r
+G54D12*X400000Y245000D02*X567500D01*\r
+G54D11*X565000Y250000D02*X325000D01*\r
+G54D12*X242500Y110000D02*X210000D01*\r
+X240000Y80000D02*X255000Y65000D01*\r
+X210000Y110000D02*X205000Y105000D01*\r
+Y90000D01*\r
+X252500Y125000D02*X330000D01*\r
+G54D16*X252500Y135000D02*Y137500D01*\r
+G54D11*X155000Y135000D02*X177500D01*\r
+G54D16*X217500D02*X190000D01*\r
+X217500D02*Y137500D01*\r
+X247500Y142500D02*X252500Y137500D01*\r
+X177500Y85000D02*X190000Y97500D01*\r
+X217500Y137500D02*X222500Y142500D01*\r
+X247500D01*\r
+G54D11*X160000Y47500D02*X215000D01*\r
+X57700Y72500D02*X177500D01*\r
+X165000Y52500D02*X205000D01*\r
+G54D12*X182500Y60000D02*X195000D01*\r
+X177500Y65000D02*X182500Y60000D01*\r
+X177500Y125000D02*X242500D01*\r
+G54D15*X330000Y135000D02*X332500Y137500D01*\r
+G54D11*X315000Y130000D02*X75000D01*\r
+X72500Y127500D01*\r
+X62500D01*\r
+G54D12*X347500Y117500D02*X225000D01*\r
+G54D11*X190000Y85000D02*X177500Y72500D01*\r
+X62500Y202500D02*X122500D01*\r
+X142500Y182500D02*X122500Y202500D01*\r
+X282500Y165000D02*X62500D01*\r
+X160000Y222500D02*X225000D01*\r
+G54D12*X280000D02*X277500Y220000D01*\r
+X252500Y235000D02*X262500D01*\r
+X277500Y220000D02*X272500Y215000D01*\r
+G54D11*X142500Y182500D02*X360000D01*\r
+G54D12*X350000Y40000D02*X340000Y30000D01*\r
+X225000Y97500D02*X252500D01*\r
+G54D16*X340000Y42500D02*X335000Y37500D01*\r
+G54D12*X340000Y30000D02*X195000D01*\r
+G54D16*X247500Y37500D02*X335000D01*\r
+X235000Y50000D02*X247500Y37500D01*\r
+G54D12*X242500Y235000D02*X187500D01*\r
+G54D16*X252500Y260000D02*Y252500D01*\r
+X217500Y260000D02*Y252500D01*\r
+G54D12*X162500Y335000D02*X192500D01*\r
+X245000Y365000D02*X235000D01*\r
+G54D16*X242500Y287500D02*X235000Y280000D01*\r
+X245000D01*\r
+G54D12*X200000Y342500D02*X217500D01*\r
+G54D16*X202500Y330000D02*X177500Y305000D01*\r
+G54D11*X407500Y400000D02*X410000Y397500D01*\r
+X417500Y400000D02*Y370000D01*\r
+X175000Y400000D02*X407500D01*\r
+G54D16*X197500Y380000D02*X205000Y387500D01*\r
+X242500D01*\r
+X250000Y380000D01*\r
+G54D11*X170000Y395000D02*X175000Y400000D01*\r
+X170000Y365000D02*Y395000D01*\r
+X400000Y265000D02*X545000D01*\r
+X405000Y270000D02*X507500D01*\r
+G54D16*X472500Y285000D02*X475000Y287500D01*\r
+X412500Y285000D02*X472500D01*\r
+X407500Y280000D02*X412500Y285000D01*\r
+X492500Y310000D02*Y287500D01*\r
+G54D12*X562500Y310000D02*Y305000D01*\r
+X565000Y302500D01*\r
+G54D16*X552500Y280000D02*Y287500D01*\r
+G54D11*X497500Y330000D02*Y340000D01*\r
+X457500Y315000D02*X495000D01*\r
+X497500Y317500D02*X487500Y327500D01*\r
+X405000Y352500D02*X532500D01*\r
+X442500Y295000D02*X462500D01*\r
+X430000D02*X425000D01*\r
+X435000Y300000D02*X430000Y295000D01*\r
+X410000Y290000D02*X462500D01*\r
+X470000Y327500D02*X462500Y335000D01*\r
+X442500Y315000D02*X435000D01*\r
+X427500Y307500D01*\r
+X450000D02*X457500Y315000D01*\r
+X442500Y345000D02*X492500D01*\r
+G54D19*X460000Y340000D02*X410000D01*\r
+G54D11*X412500Y327500D02*X415000Y330000D01*\r
+X392500Y340000D02*X405000Y352500D01*\r
+G54D12*X372500Y365000D02*X380000D01*\r
+X475000Y357500D02*X400000D01*\r
+G54D11*X410000Y367500D02*X412500Y365000D01*\r
+X435000D01*\r
+X427500Y392500D02*X435000Y400000D01*\r
+X467500D01*\r
+X477500Y390000D01*\r
+X442500Y370000D02*Y392500D01*\r
+X477500Y390000D02*Y387500D01*\r
+G54D12*X482500Y375000D02*X495000Y387500D01*\r
+X540000D02*X547500Y380000D01*\r
+X495000Y387500D02*X540000D01*\r
+G54D11*X410000Y397500D02*Y367500D01*\r
+G54D16*X402500Y365000D02*Y370000D01*\r
+X397500Y375000D01*\r
+G54D11*X435000Y255000D02*X440000Y260000D01*\r
+X460000D02*X440000D01*\r
+X365000Y255000D02*X435000D01*\r
+G54D16*X270000Y260000D02*X262500Y252500D01*\r
+G54D11*X350000Y287500D02*X407500D01*\r
+X352500Y292500D02*X407500D01*\r
+X417500Y302500D01*\r
+X435000Y307500D02*X450000D01*\r
+X405000Y270000D02*X400000Y275000D01*\r
+X407500Y287500D02*X410000Y290000D01*\r
+G54D16*X402500Y280000D02*X407500D01*\r
+G54D11*X430000Y302500D02*X417500D01*\r
+X415000Y315000D02*X402500Y302500D01*\r
+X415000Y307500D02*X405000Y297500D01*\r
+X425000Y315000D02*X415000D01*\r
+X427500Y307500D02*X415000D01*\r
+G54D12*X280000Y322500D02*X472500D01*\r
+G54D11*X462500Y300000D02*X435000D01*\r
+X462500Y335000D02*X430000D01*\r
+X425000Y330000D01*\r
+X415000D02*X425000D01*\r
+X430000Y302500D02*X435000Y307500D01*\r
+X442500Y330000D02*X460000D01*\r
+X377500Y297500D02*X405000D01*\r
+X377500Y327500D02*X412500D01*\r
+X282500Y292500D02*X277500Y297500D01*\r
+X282500Y292500D02*X337500D01*\r
+X280000Y287500D02*X332500D01*\r
+X392500Y335000D02*Y340000D01*\r
+G54D12*X382500D02*Y335000D01*\r
+G54D11*X402500Y302500D03*\r
+X285000D02*X402500D01*\r
+G54D12*X372500Y310000D02*Y322500D01*\r
+G54D11*X170000Y365000D02*X177500Y357500D01*\r
+Y380000D02*X187500Y370000D01*\r
+G54D12*X290000Y365000D02*X297500Y372500D01*\r
+X152500Y347500D02*X217500D01*\r
+X290000Y360000D02*Y365000D01*\r
+X192500Y335000D02*X200000Y342500D01*\r
+G54D16*X202500Y335000D02*Y330000D01*\r
+G54D12*X217500Y347500D02*X235000Y365000D01*\r
+X217500Y342500D02*X225000Y335000D01*\r
+G54D11*X187500Y370000D02*X210000D01*\r
+X305000Y270000D02*X92500D01*\r
+X295000Y275000D02*X87500D01*\r
+X97500Y292500D02*X275000D01*\r
+X70000Y291200D02*X96200D01*\r
+X97500Y292500D01*\r
+X102500Y297500D02*X277500D01*\r
+G54D12*X162500Y285000D02*X190000D01*\r
+G54D11*X102500Y280000D02*X70300D01*\r
+G54D12*X190000Y285000D02*X195000Y280000D01*\r
+G54D11*X217500Y287500D02*X225000Y280000D01*\r
+X200000Y260000D02*X177500D01*\r
+X70300Y280000D02*X70000Y280300D01*\r
+G54D16*X85000Y252500D02*X80000Y257500D01*\r
+Y263900D01*\r
+X262500Y252500D02*X85000D01*\r
+G54D11*X355000Y317500D02*X310000D01*\r
+G54D12*X345000Y330000D02*Y322500D01*\r
+G54D11*X367500Y317500D02*X352500D01*\r
+G54D12*X310000Y350000D02*X315000Y355000D01*\r
+X382500Y340000D02*X400000Y357500D01*\r
+G54D11*X350000Y280000D02*X337500Y292500D01*\r
+X340000Y280000D02*X332500Y287500D01*\r
+X360000Y260000D02*X372500D01*\r
+X345000Y267500D02*X315000D01*\r
+X397500D02*X400000Y265000D01*\r
+Y275000D02*X315000D01*\r
+G54D16*X362500Y267500D02*X387500D01*\r
+G54D11*X247500Y392500D02*X402500D01*\r
+G54D16*X367500Y387500D02*X395000D01*\r
+G54D11*X275000Y292500D02*X280000Y287500D01*\r
+G54D16*Y380000D02*Y360000D01*\r
+G54D12*X297500Y372500D02*X335000D01*\r
+G54D16*X397500Y375000D02*Y385000D01*\r
+X395000Y387500D02*X397500Y385000D01*\r
+X360000Y380000D02*X250000D01*\r
+X360000D02*X367500Y387500D01*\r
+G54D12*X295000Y350000D02*X310000D01*\r
+G54D16*X302500Y342500D02*X317500D01*\r
+X320000Y340000D02*X317500Y342500D01*\r
+X320000Y335000D02*Y340000D01*\r
+X290000Y335000D02*X295000D01*\r
+X302500Y342500D01*\r
+G54D12*X215000Y310000D02*X207500Y302500D01*\r
+X225000Y310000D02*X232500Y302500D01*\r
+X207500D02*X187500D01*\r
+X232500D02*X262500D01*\r
+G54D11*X200000Y287500D02*X217500D01*\r
+G54D16*X270000D02*X242500D01*\r
+G54D11*X647500Y372500D02*X652500Y367500D01*\r
+G54D12*X642500Y362500D02*Y352500D01*\r
+G54D11*X652500Y367500D02*Y362500D01*\r
+G54D12*X602500Y380000D02*X607500D01*\r
+G54D11*X605000Y372500D02*X647500D01*\r
+X625000Y352500D02*X632500D01*\r
+G54D12*X637500Y347500D02*X630000D01*\r
+X642500Y352500D02*X637500Y347500D01*\r
+X625000Y335000D02*Y342500D01*\r
+X630000Y347500D01*\r
+X625000Y335000D02*X617500Y327500D01*\r
+G54D11*X597500Y352500D02*X625000D01*\r
+X602500Y365000D02*Y370000D01*\r
+X605000Y372500D01*\r
+G54D20*X625000Y295000D02*X631890Y301732D01*\r
+G54D11*X582500Y310000D02*Y315000D01*\r
+G54D12*X617500Y327500D02*X577500D01*\r
+G54D11*X582500Y315000D02*X580000Y317500D01*\r
+X487500Y327500D02*X470000D01*\r
+X497500Y330000D02*X502500Y325000D01*\r
+G54D12*X577500Y327500D02*X565000Y340000D01*\r
+X592500Y335000D02*Y327500D01*\r
+G54D11*X502500Y325000D02*X527500D01*\r
+X592500Y295000D02*X507500D01*\r
+X542500Y305000D02*Y310000D01*\r
+X540000Y302500D02*X542500Y305000D01*\r
+X500000Y302500D02*X540000D01*\r
+X542500Y280000D02*Y275000D01*\r
+X580000Y317500D02*X497500D01*\r
+X542500Y275000D02*X547500Y270000D01*\r
+X610000D01*\r
+X532500Y322500D02*X612500D01*\r
+G54D16*X475000Y287500D02*X610000D01*\r
+G54D12*X482500Y365000D02*X492500D01*\r
+G54D11*X502500Y345000D02*X505000Y347500D01*\r
+X502500Y365000D02*Y360000D01*\r
+X497500Y340000D02*X492500Y345000D01*\r
+X502500Y360000D02*X505000Y357500D01*\r
+G54D12*X595000Y372500D02*X602500Y380000D01*\r
+X582500Y370000D02*X585000Y372500D01*\r
+X595000D01*\r
+X547500Y380000D02*X587500D01*\r
+X547500Y370000D02*Y380000D01*\r
+X482500Y375000D02*Y365000D01*\r
+X475000Y357500D02*X482500Y365000D01*\r
+X565000Y340000D02*X520000D01*\r
+G54D11*X505000Y357500D02*X570000D01*\r
+X505000Y347500D02*X562500D01*\r
+X570000Y357500D02*X582500Y345000D01*\r
+X592500Y357500D02*X597500Y352500D01*\r
+X592500Y365000D02*Y357500D01*\r
+G54D12*X582500Y365000D02*Y370000D01*\r
+G54D11*Y345000D02*Y335000D01*\r
+X495000Y315000D02*X497500Y312500D01*\r
+Y305000D01*\r
+X500000Y302500D01*\r
+X502500Y335000D02*Y345000D01*\r
+X482500Y260000D02*X495799D01*\r
+X500000D02*X495000D01*\r
+X477500Y305000D02*X467500D01*\r
+X462500Y300000D01*\r
+Y295000D02*X467500Y300000D01*\r
+X480000D01*\r
+X467500Y295000D02*X462500Y290000D01*\r
+X477500Y295000D02*X467500D01*\r
+X657500Y300000D02*Y317500D01*\r
+X652500Y322500D01*\r
+X657500Y300000D02*Y270000D01*\r
+Y250000D02*X655000Y247500D01*\r
+X657500Y270000D02*Y250000D01*\r
+G54D21*X642500Y322500D02*Y307500D01*\r
+G54D20*X625000Y257500D02*Y295000D01*\r
+G54D12*X575000Y252500D02*Y260000D01*\r
+G54D11*X557500Y237500D02*X620000D01*\r
+G54D12*X567500Y245000D02*X575000Y252500D01*\r
+G54D11*X615000Y265000D02*Y260000D01*\r
+X610000Y270000D02*X615000Y265000D01*\r
+G54D12*X565000Y302500D02*X615000D01*\r
+G54D21*X610000Y287500D02*X630000Y307500D01*\r
+X650000D01*\r
+X652500Y305000D01*\r
+Y302500D01*\r
+G54D20*X619842Y252500D02*X602500D01*\r
+X619842D02*X625000Y257500D01*\r
+G54D11*X620000Y237500D02*X630000Y247500D01*\r
+X655000D02*X630000D01*\r
+G54D14*X600000Y95000D02*X487500D01*\r
+G54D12*X475000Y60000D02*X477500Y57500D01*\r
+X507500Y70000D02*X535000Y42500D01*\r
+X477500Y57500D02*Y50000D01*\r
+X522500Y85000D02*X547500Y60000D01*\r
+G54D13*X652500Y132500D02*X592500D01*\r
+G54D12*X477500Y142500D02*Y125000D01*\r
+G54D13*X467500Y132500D02*Y112500D01*\r
+G54D16*X625000Y102500D02*X652500D01*\r
+G54D13*X467500Y192500D02*Y207500D01*\r
+G54D14*X615000Y187500D02*X475000D01*\r
+G54D22*X467500Y207500D02*X462500Y212500D01*\r
+G54D12*X477500Y210000D02*X465000Y222500D01*\r
+G54D13*X472500Y187500D02*X467500Y192500D01*\r
+X652500Y142500D02*X497500D01*\r
+G54D12*X465000Y155000D02*X477500Y142500D01*\r
+G54D13*X617500Y157500D02*X622500Y152500D01*\r
+X652500D02*X622500D01*\r
+G54D14*X532500Y157499D02*X615000Y157500D01*\r
+G54D12*X600000Y50000D02*X610000Y40000D01*\r
+X614941D01*\r
+G54D13*X622500Y55000D02*Y35000D01*\r
+X629114Y61673D02*X622500Y55000D01*\r
+G54D23*X572500Y110000D02*X592500Y130000D01*\r
+G54D13*X652500Y122500D02*X615000D01*\r
+X620000Y112500D02*X600000Y92500D01*\r
+X652500Y112500D02*X620000D01*\r
+X617500Y30000D02*X622500Y35000D01*\r
+G54D23*X572500Y110000D02*X557500D01*\r
+G54D12*X582500Y42500D02*X590000Y50000D01*\r
+X535000Y42500D02*X582500D01*\r
+X590472Y50000D02*X590551Y50079D01*\r
+G54D16*X542500Y50000D02*X575000D01*\r
+G54D13*X562500Y17500D02*X532500D01*\r
+X617500Y30000D02*X575000D01*\r
+X562500Y17500D01*\r
+X652500Y62500D02*X630000D01*\r
+G54D16*X622500Y72500D02*X652500D01*\r
+G54D12*X600000Y50000D02*X590551Y50079D01*\r
+X547500Y60000D02*X615000D01*\r
+G54D16*X620000Y70000D02*X552500D01*\r
+X615000Y92500D02*Y70000D01*\r
+X620000D02*X622500Y72500D01*\r
+X615000Y92500D02*X625000Y102500D01*\r
+G54D24*X75000Y36000D02*Y40000D01*\r
+X76500Y38500D01*\r
+X78000Y40000D01*\r
+Y36000D02*Y40000D01*\r
+X80701Y38000D02*X81201Y38500D01*\r
+X79701Y38000D02*X80701D01*\r
+X79201Y38500D02*X79701Y38000D01*\r
+X79201Y38500D02*Y39500D01*\r
+X79701Y40000D01*\r
+X81201Y38000D02*Y39500D01*\r
+X81701Y40000D01*\r
+X79701D02*X80701D01*\r
+X81201Y39500D01*\r
+X82902Y36000D02*Y39500D01*\r
+X83402Y40000D01*\r
+X84903Y36000D02*Y39500D01*\r
+X85403Y40000D01*\r
+X84403Y37500D02*X85403D01*\r
+X86904Y40000D02*X88404D01*\r
+X86404Y39500D02*X86904Y40000D01*\r
+X86404Y38500D02*Y39500D01*\r
+Y38500D02*X86904Y38000D01*\r
+X87904D01*\r
+X88404Y38500D01*\r
+X86404Y39000D02*X88404D01*\r
+Y38500D02*Y39000D01*\r
+X90105Y38500D02*Y40000D01*\r
+Y38500D02*X90605Y38000D01*\r
+X91605D01*\r
+X89605D02*X90105Y38500D01*\r
+X94606Y36000D02*Y40000D01*\r
+Y36000D02*X96606D01*\r
+X94606Y38000D02*X96106D01*\r
+X98307Y40000D02*X99807D01*\r
+X97807Y39500D02*X98307Y40000D01*\r
+X97807Y38500D02*Y39500D01*\r
+Y38500D02*X98307Y38000D01*\r
+X99307D01*\r
+X99807Y38500D01*\r
+X97807Y39000D02*X99807D01*\r
+Y38500D02*Y39000D01*\r
+X101508Y36000D02*Y39500D01*\r
+X102008Y40000D01*\r
+X101008Y37500D02*X102008D01*\r
+X103509Y36000D02*Y39500D01*\r
+X104009Y40000D01*\r
+X103009Y37500D02*X104009D01*\r
+X105510Y40000D02*X107010D01*\r
+X105010Y39500D02*X105510Y40000D01*\r
+X105010Y38500D02*Y39500D01*\r
+Y38500D02*X105510Y38000D01*\r
+X106510D01*\r
+X107010Y38500D01*\r
+X105010Y39000D02*X107010D01*\r
+Y38500D02*Y39000D01*\r
+X108711Y38500D02*Y40000D01*\r
+Y38500D02*X109211Y38000D01*\r
+X110211D01*\r
+X108211D02*X108711Y38500D01*\r
+X113212Y36000D02*Y40000D01*\r
+X115212D01*\r
+X117913Y38000D02*X118413Y38500D01*\r
+X116913Y38000D02*X117913D01*\r
+X116413Y38500D02*X116913Y38000D01*\r
+X116413Y38500D02*Y39500D01*\r
+X116913Y40000D01*\r
+X118413Y38000D02*Y39500D01*\r
+X118913Y40000D01*\r
+X116913D02*X117913D01*\r
+X118413Y39500D01*\r
+X121614Y38000D02*X122114Y38500D01*\r
+X120614Y38000D02*X121614D01*\r
+X120114Y38500D02*X120614Y38000D01*\r
+X120114Y38500D02*Y39500D01*\r
+X120614Y40000D01*\r
+X121614D01*\r
+X122114Y39500D01*\r
+X120114Y41000D02*X120614Y41500D01*\r
+X121614D01*\r
+X122114Y41000D01*\r
+Y38000D02*Y41000D01*\r
+X123815Y40000D02*X125315D01*\r
+X123315Y39500D02*X123815Y40000D01*\r
+X123315Y38500D02*Y39500D01*\r
+Y38500D02*X123815Y38000D01*\r
+X124815D01*\r
+X125315Y38500D01*\r
+X123315Y39000D02*X125315D01*\r
+Y38500D02*Y39000D01*\r
+X127016Y40000D02*X128516D01*\r
+X129016Y39500D01*\r
+X128516Y39000D02*X129016Y39500D01*\r
+X127016Y39000D02*X128516D01*\r
+X126516Y38500D02*X127016Y39000D01*\r
+X126516Y38500D02*X127016Y38000D01*\r
+X128516D01*\r
+X129016Y38500D01*\r
+X126516Y39500D02*X127016Y40000D01*\r
+X75500Y28500D02*Y32500D01*\r
+X77000Y28500D02*X77500Y29000D01*\r
+Y32000D01*\r
+X77000Y32500D02*X77500Y32000D01*\r
+X75000Y32500D02*X77000D01*\r
+X75000Y28500D02*X77000D01*\r
+X78701Y29500D02*Y30000D01*\r
+Y31000D02*Y32500D01*\r
+X80202D02*X81702D01*\r
+X79702Y32000D02*X80202Y32500D01*\r
+X79702Y31000D02*Y32000D01*\r
+Y31000D02*X80202Y30500D01*\r
+X81202D01*\r
+X81702Y31000D01*\r
+X79702Y31500D02*X81702D01*\r
+Y31000D02*Y31500D01*\r
+X84403Y30500D02*X84903Y31000D01*\r
+X83403Y30500D02*X84403D01*\r
+X82903Y31000D02*X83403Y30500D01*\r
+X82903Y31000D02*Y32000D01*\r
+X83403Y32500D01*\r
+X84403D01*\r
+X84903Y32000D01*\r
+X82903Y33500D02*X83403Y34000D01*\r
+X84403D01*\r
+X84903Y33500D01*\r
+Y30500D02*Y33500D01*\r
+X86104Y31000D02*Y32000D01*\r
+Y31000D02*X86604Y30500D01*\r
+X87604D01*\r
+X88104Y31000D01*\r
+Y32000D01*\r
+X87604Y32500D02*X88104Y32000D01*\r
+X86604Y32500D02*X87604D01*\r
+X86104Y32000D02*X86604Y32500D01*\r
+X91605D02*X93105D01*\r
+X91105Y32000D02*X91605Y32500D01*\r
+X91105Y29000D02*Y32000D01*\r
+Y29000D02*X91605Y28500D01*\r
+X93105D01*\r
+X95806Y30500D02*X96306Y31000D01*\r
+X94806Y30500D02*X95806D01*\r
+X94306Y31000D02*X94806Y30500D01*\r
+X94306Y31000D02*Y32000D01*\r
+X94806Y32500D01*\r
+X96306Y30500D02*Y32000D01*\r
+X96806Y32500D01*\r
+X94806D02*X95806D01*\r
+X96306Y32000D01*\r
+X98007Y28500D02*Y32500D01*\r
+Y32000D02*X98507Y32500D01*\r
+X99507D01*\r
+X100007Y32000D01*\r
+Y31000D02*Y32000D01*\r
+X99507Y30500D02*X100007Y31000D01*\r
+X98507Y30500D02*X99507D01*\r
+X98007Y31000D02*X98507Y30500D01*\r
+X101708Y32500D02*X103208D01*\r
+X101208Y32000D02*X101708Y32500D01*\r
+X101208Y31000D02*Y32000D01*\r
+Y31000D02*X101708Y30500D01*\r
+X102708D01*\r
+X103208Y31000D01*\r
+X101208Y31500D02*X103208D01*\r
+Y31000D02*Y31500D01*\r
+X104909Y31000D02*Y32500D01*\r
+Y31000D02*X105409Y30500D01*\r
+X106409D01*\r
+X104409D02*X104909Y31000D01*\r
+X107610Y28500D02*Y32000D01*\r
+X108110Y32500D01*\r
+X109111Y31000D02*Y32000D01*\r
+Y31000D02*X109611Y30500D01*\r
+X110611D01*\r
+X111111Y31000D01*\r
+Y32000D01*\r
+X110611Y32500D02*X111111Y32000D01*\r
+X109611Y32500D02*X110611D01*\r
+X109111Y32000D02*X109611Y32500D01*\r
+X112812Y31000D02*Y32500D01*\r
+Y31000D02*X113312Y30500D01*\r
+X113812D01*\r
+X114312Y31000D01*\r
+Y32500D01*\r
+X112312Y30500D02*X112812Y31000D01*\r
+X119313Y28500D02*X119813Y29000D01*\r
+X117813Y28500D02*X119313D01*\r
+X117313Y29000D02*X117813Y28500D01*\r
+X117313Y29000D02*Y30000D01*\r
+X117813Y30500D01*\r
+X119313D01*\r
+X119813Y31000D01*\r
+Y32000D01*\r
+X119313Y32500D02*X119813Y32000D01*\r
+X117813Y32500D02*X119313D01*\r
+X117313Y32000D02*X117813Y32500D01*\r
+X122514Y30500D02*X123014Y31000D01*\r
+X121514Y30500D02*X122514D01*\r
+X121014Y31000D02*X121514Y30500D01*\r
+X121014Y31000D02*Y32000D01*\r
+X121514Y32500D01*\r
+X123014Y30500D02*Y32000D01*\r
+X123514Y32500D01*\r
+X121514D02*X122514D01*\r
+X123014Y32000D01*\r
+X125215Y31000D02*Y32500D01*\r
+Y31000D02*X125715Y30500D01*\r
+X126215D01*\r
+X126715Y31000D01*\r
+Y32500D01*\r
+X124715Y30500D02*X125215Y31000D01*\r
+X128416Y28500D02*Y32000D01*\r
+X128916Y32500D01*\r
+X127916Y30000D02*X128916D01*\r
+X129917Y29500D02*Y30000D01*\r
+Y31000D02*Y32500D01*\r
+X131418Y31000D02*Y32500D01*\r
+Y31000D02*X131918Y30500D01*\r
+X132418D01*\r
+X132918Y31000D01*\r
+Y32500D01*\r
+X130918Y30500D02*X131418Y31000D01*\r
+X134119Y29500D02*Y30000D01*\r
+Y31000D02*Y32500D01*\r
+X75000Y21500D02*Y25000D01*\r
+Y21500D02*X75500Y21000D01*\r
+X77000D01*\r
+X77500Y21500D01*\r
+Y25000D01*\r
+X75000Y23000D02*X77500D01*\r
+X78701Y21000D02*X79701D01*\r
+X79201D02*Y25000D01*\r
+X78701D02*X79701D01*\r
+X81402D02*X82902D01*\r
+X80902Y24500D02*X81402Y25000D01*\r
+X80902Y21500D02*Y24500D01*\r
+Y21500D02*X81402Y21000D01*\r
+X82902D01*\r
+X84103Y23000D02*X86103D01*\r
+X87304Y21500D02*X87804Y21000D01*\r
+X89304D01*\r
+X89804Y21500D01*\r
+Y22500D01*\r
+X87304Y25000D02*X89804Y22500D01*\r
+X87304Y25000D02*X89804D01*\r
+X91005D02*X91505D01*\r
+X92706Y21500D02*X93206Y21000D01*\r
+X94706D01*\r
+X95206Y21500D01*\r
+Y22500D01*\r
+X92706Y25000D02*X95206Y22500D01*\r
+X92706Y25000D02*X95206D01*\r
+X96407D02*X96907D01*\r
+X98108Y24500D02*X98608Y25000D01*\r
+X98108Y21500D02*Y24500D01*\r
+Y21500D02*X98608Y21000D01*\r
+X99608D01*\r
+X100108Y21500D01*\r
+Y24500D01*\r
+X99608Y25000D02*X100108Y24500D01*\r
+X98608Y25000D02*X99608D01*\r
+X98108Y24000D02*X100108Y22000D01*\r
+X103109Y24500D02*X103609Y25000D01*\r
+X103109Y21500D02*X103609Y21000D01*\r
+X103109Y21500D02*Y24500D01*\r
+X105310Y23000D02*X106810D01*\r
+X104810Y23500D02*X105310Y23000D01*\r
+X104810Y23500D02*Y24500D01*\r
+X105310Y25000D01*\r
+X106810D01*\r
+X108011Y21000D02*X108511Y21500D01*\r
+Y24500D01*\r
+X108011Y25000D02*X108511Y24500D01*\r
+X111512Y21500D02*X112012Y21000D01*\r
+X113512D01*\r
+X114012Y21500D01*\r
+Y22500D01*\r
+X111512Y25000D02*X114012Y22500D01*\r
+X111512Y25000D02*X114012D01*\r
+X115213Y24500D02*X115713Y25000D01*\r
+X115213Y21500D02*Y24500D01*\r
+Y21500D02*X115713Y21000D01*\r
+X116713D01*\r
+X117213Y21500D01*\r
+Y24500D01*\r
+X116713Y25000D02*X117213Y24500D01*\r
+X115713Y25000D02*X116713D01*\r
+X115213Y24000D02*X117213Y22000D01*\r
+X118414Y24500D02*X118914Y25000D01*\r
+X118414Y21500D02*Y24500D01*\r
+Y21500D02*X118914Y21000D01*\r
+X119914D01*\r
+X120414Y21500D01*\r
+Y24500D01*\r
+X119914Y25000D02*X120414Y24500D01*\r
+X118914Y25000D02*X119914D01*\r
+X118414Y24000D02*X120414Y22000D01*\r
+X121615Y25000D02*X123615Y23000D01*\r
+Y21500D02*Y23000D01*\r
+X123115Y21000D02*X123615Y21500D01*\r
+X122115Y21000D02*X123115D01*\r
+X121615Y21500D02*X122115Y21000D01*\r
+X121615Y21500D02*Y22500D01*\r
+X122115Y23000D01*\r
+X123615D01*\r
+X75000Y43500D02*X77000D01*\r
+X77500Y44000D01*\r
+Y45000D01*\r
+X77000Y45500D02*X77500Y45000D01*\r
+X75500Y45500D02*X77000D01*\r
+X75500Y43500D02*Y47500D01*\r
+Y45500D02*X77500Y47500D01*\r
+X78701Y46000D02*Y47000D01*\r
+Y46000D02*X79201Y45500D01*\r
+X80201D01*\r
+X80701Y46000D01*\r
+Y47000D01*\r
+X80201Y47500D02*X80701Y47000D01*\r
+X79201Y47500D02*X80201D01*\r
+X78701Y47000D02*X79201Y47500D01*\r
+X83902Y43500D02*Y47500D01*\r
+X83402D02*X83902Y47000D01*\r
+X82402Y47500D02*X83402D01*\r
+X81902Y47000D02*X82402Y47500D01*\r
+X81902Y46000D02*Y47000D01*\r
+Y46000D02*X82402Y45500D01*\r
+X83402D01*\r
+X83902Y46000D01*\r
+X85603D02*Y47500D01*\r
+Y46000D02*X86103Y45500D01*\r
+X87103D01*\r
+X85103D02*X85603Y46000D01*\r
+X88304Y44500D02*Y45000D01*\r
+Y46000D02*Y47500D01*\r
+X90805Y45500D02*X91305Y46000D01*\r
+X89805Y45500D02*X90805D01*\r
+X89305Y46000D02*X89805Y45500D01*\r
+X89305Y46000D02*Y47000D01*\r
+X89805Y47500D01*\r
+X90805D01*\r
+X91305Y47000D01*\r
+X89305Y48500D02*X89805Y49000D01*\r
+X90805D01*\r
+X91305Y48500D01*\r
+Y45500D02*Y48500D01*\r
+X92506Y46000D02*Y47000D01*\r
+Y46000D02*X93006Y45500D01*\r
+X94006D01*\r
+X94506Y46000D01*\r
+Y47000D01*\r
+X94006Y47500D02*X94506Y47000D01*\r
+X93006Y47500D02*X94006D01*\r
+X92506Y47000D02*X93006Y47500D01*\r
+X98007Y43500D02*Y47500D01*\r
+X99507Y43500D02*X100007Y44000D01*\r
+Y47000D01*\r
+X99507Y47500D02*X100007Y47000D01*\r
+X97507Y47500D02*X99507D01*\r
+X97507Y43500D02*X99507D01*\r
+X102708Y45500D02*X103208Y46000D01*\r
+X101708Y45500D02*X102708D01*\r
+X101208Y46000D02*X101708Y45500D01*\r
+X101208Y46000D02*Y47000D01*\r
+X101708Y47500D01*\r
+X103208Y45500D02*Y47000D01*\r
+X103708Y47500D01*\r
+X101708D02*X102708D01*\r
+X103208Y47000D01*\r
+X105409Y46000D02*Y47500D01*\r
+Y46000D02*X105909Y45500D01*\r
+X106409D01*\r
+X106909Y46000D01*\r
+Y47500D01*\r
+X104909Y45500D02*X105409Y46000D01*\r
+X108110Y44500D02*Y45000D01*\r
+Y46000D02*Y47500D01*\r
+X109611D02*X111111D01*\r
+X109111Y47000D02*X109611Y47500D01*\r
+X109111Y46000D02*Y47000D01*\r
+Y46000D02*X109611Y45500D01*\r
+X110611D01*\r
+X111111Y46000D01*\r
+X109111Y46500D02*X111111D01*\r
+Y46000D02*Y46500D01*\r
+X112312Y43500D02*Y47000D01*\r
+X112812Y47500D01*\r
+X115613Y43500D02*X117613D01*\r
+X116613D02*Y47500D01*\r
+X119314Y46000D02*Y47500D01*\r
+Y46000D02*X119814Y45500D01*\r
+X120814D01*\r
+X118814D02*X119314Y46000D01*\r
+X122515Y47500D02*X124015D01*\r
+X122015Y47000D02*X122515Y47500D01*\r
+X122015Y46000D02*Y47000D01*\r
+Y46000D02*X122515Y45500D01*\r
+X123515D01*\r
+X124015Y46000D01*\r
+X122015Y46500D02*X124015D01*\r
+Y46000D02*Y46500D01*\r
+X125216Y45500D02*Y46500D01*\r
+X126216Y47500D01*\r
+X127216Y46500D01*\r
+Y45500D02*Y46500D01*\r
+X128417Y44500D02*Y45000D01*\r
+Y46000D02*Y47500D01*\r
+X129418Y45500D02*X131418D01*\r
+X129418Y47500D02*X131418Y45500D01*\r
+X129418Y47500D02*X131418D01*\r
+X134119Y45500D02*X134619Y46000D01*\r
+X133119Y45500D02*X134119D01*\r
+X132619Y46000D02*X133119Y45500D01*\r
+X132619Y46000D02*Y47000D01*\r
+X133119Y47500D01*\r
+X134619Y45500D02*Y47000D01*\r
+X135119Y47500D01*\r
+X133119D02*X134119D01*\r
+X134619Y47000D01*\r
+X136820Y46000D02*Y47500D01*\r
+Y46000D02*X137320Y45500D01*\r
+X137820D01*\r
+X138320Y46000D01*\r
+Y47500D01*\r
+X136320Y45500D02*X136820Y46000D01*\r
+G54D21*G36*\r
+X222000Y338000D02*Y332000D01*\r
+X228000D01*\r
+Y338000D01*\r
+X222000D01*\r
+G37*\r
+G54D25*X235000Y335000D03*\r
+G54D21*G36*\r
+X369500Y338000D02*Y332000D01*\r
+X375500D01*\r
+Y338000D01*\r
+X369500D01*\r
+G37*\r
+G54D25*X382500Y335000D03*\r
+X392500D03*\r
+X402500D03*\r
+X255000Y365000D03*\r
+X245000D03*\r
+X235000D03*\r
+G54D21*G36*\r
+X287000Y363000D02*Y357000D01*\r
+X293000D01*\r
+Y363000D01*\r
+X287000D01*\r
+G37*\r
+G54D25*X280000Y360000D03*\r
+X225000Y365000D03*\r
+G54D21*G36*\r
+X194500Y383000D02*Y377000D01*\r
+X200500D01*\r
+Y383000D01*\r
+X194500D01*\r
+G37*\r
+G54D25*X177500Y380000D03*\r
+G54D21*G36*\r
+X194500Y360500D02*Y354500D01*\r
+X200500D01*\r
+Y360500D01*\r
+X194500D01*\r
+G37*\r
+G54D25*X177500Y357500D03*\r
+G54D21*G36*\r
+X189500Y338000D02*Y332000D01*\r
+X195500D01*\r
+Y338000D01*\r
+X189500D01*\r
+G37*\r
+G54D25*X202500Y335000D03*\r
+G54D21*G36*\r
+X342000Y373000D02*Y367000D01*\r
+X348000D01*\r
+Y373000D01*\r
+X342000D01*\r
+G37*\r
+G54D25*X345000Y330000D03*\r
+X340000Y280000D03*\r
+X350000D03*\r
+Y310000D03*\r
+X340000D03*\r
+G54D21*G36*\r
+X369500Y283000D02*Y277000D01*\r
+X375500D01*\r
+Y283000D01*\r
+X369500D01*\r
+G37*\r
+G54D25*X382500Y280000D03*\r
+X392500D03*\r
+X402500D03*\r
+Y310000D03*\r
+X392500D03*\r
+X382500D03*\r
+X372500D03*\r
+G54D21*G36*\r
+X312000Y368000D02*Y362000D01*\r
+X318000D01*\r
+Y368000D01*\r
+X312000D01*\r
+G37*\r
+G54D25*X315000Y355000D03*\r
+G54D21*G36*\r
+X394500Y383000D02*Y377000D01*\r
+X400500D01*\r
+Y383000D01*\r
+X394500D01*\r
+G37*\r
+G54D25*X377500Y380000D03*\r
+X402500Y365000D03*\r
+X392500D03*\r
+X382500D03*\r
+X372500D03*\r
+G54D21*G36*\r
+X457000Y373000D02*Y367000D01*\r
+X463000D01*\r
+Y373000D01*\r
+X457000D01*\r
+G37*\r
+G54D25*X425000Y370000D03*\r
+G54D21*G36*\r
+X504500Y383000D02*Y377000D01*\r
+X510500D01*\r
+Y383000D01*\r
+X504500D01*\r
+G37*\r
+G54D25*X487500Y380000D03*\r
+X442500Y370000D03*\r
+X512500Y365000D03*\r
+G54D21*G36*\r
+X529500Y373000D02*Y367000D01*\r
+X535500D01*\r
+Y373000D01*\r
+X529500D01*\r
+G37*\r
+G54D25*X502500Y365000D03*\r
+X492500D03*\r
+X482500D03*\r
+G54D21*G36*\r
+X422000Y318000D02*Y312000D01*\r
+X428000D01*\r
+Y318000D01*\r
+X422000D01*\r
+G37*\r
+G54D25*X460000Y330000D03*\r
+G54D21*G36*\r
+X422000Y333000D02*Y327000D01*\r
+X428000D01*\r
+Y333000D01*\r
+X422000D01*\r
+G37*\r
+G36*\r
+X439500Y318000D02*Y312000D01*\r
+X445500D01*\r
+Y318000D01*\r
+X439500D01*\r
+G37*\r
+G36*\r
+X457000Y288000D02*Y282000D01*\r
+X463000D01*\r
+Y288000D01*\r
+X457000D01*\r
+G37*\r
+G54D25*X460000Y305000D03*\r
+G54D21*G36*\r
+X479500Y283000D02*Y277000D01*\r
+X485500D01*\r
+Y283000D01*\r
+X479500D01*\r
+G37*\r
+G54D25*X492500Y280000D03*\r
+X502500D03*\r
+X512500D03*\r
+X522500D03*\r
+X532500D03*\r
+X542500D03*\r
+X552500D03*\r
+X562500D03*\r
+X572500D03*\r
+X582500D03*\r
+Y310000D03*\r
+X572500D03*\r
+X562500D03*\r
+X552500D03*\r
+X542500D03*\r
+X532500D03*\r
+X522500D03*\r
+X512500D03*\r
+X502500D03*\r
+X492500D03*\r
+X482500D03*\r
+G54D21*G36*\r
+X544500Y333000D02*Y327000D01*\r
+X550500D01*\r
+Y333000D01*\r
+X544500D01*\r
+G37*\r
+G54D25*X512500Y335000D03*\r
+X532500Y330000D03*\r
+G54D21*G36*\r
+X439500Y333000D02*Y327000D01*\r
+X445500D01*\r
+Y333000D01*\r
+X439500D01*\r
+G37*\r
+G36*\r
+X479500Y338000D02*Y332000D01*\r
+X485500D01*\r
+Y338000D01*\r
+X479500D01*\r
+G37*\r
+G54D25*X492500Y335000D03*\r
+X502500D03*\r
+G54D14*X662500Y382500D03*\r
+D03*\r
+G54D21*G36*\r
+X649500Y365500D02*Y359500D01*\r
+X655500D01*\r
+Y365500D01*\r
+X649500D01*\r
+G37*\r
+G54D25*X642500Y362500D03*\r
+X652500Y352500D03*\r
+Y342500D03*\r
+X642500Y352500D03*\r
+Y342500D03*\r
+X632500Y362500D03*\r
+Y352500D03*\r
+Y342500D03*\r
+X592500Y280000D03*\r
+Y310000D03*\r
+X602500Y280000D03*\r
+X612500D03*\r
+Y310000D03*\r
+X602500D03*\r
+X652500Y312500D03*\r
+Y302500D03*\r
+Y292500D03*\r
+X642500D03*\r
+X632500D03*\r
+X652500Y282500D03*\r
+X642500D03*\r
+X632500D03*\r
+X642500Y312500D03*\r
+Y302500D03*\r
+X632500Y312500D03*\r
+Y302500D03*\r
+X547500Y370000D03*\r
+X562500D03*\r
+G54D21*G36*\r
+X604500Y383000D02*Y377000D01*\r
+X610500D01*\r
+Y383000D01*\r
+X604500D01*\r
+G37*\r
+G54D25*X587500Y380000D03*\r
+X612500Y365000D03*\r
+X602500D03*\r
+X592500D03*\r
+X582500D03*\r
+G54D21*G36*\r
+X559500Y333000D02*Y327000D01*\r
+X565500D01*\r
+Y333000D01*\r
+X559500D01*\r
+G37*\r
+G36*\r
+X579500Y338000D02*Y332000D01*\r
+X585500D01*\r
+Y338000D01*\r
+X579500D01*\r
+G37*\r
+G54D25*X592500Y335000D03*\r
+X602500D03*\r
+X612500D03*\r
+X652500Y332500D03*\r
+Y322500D03*\r
+X642500Y332500D03*\r
+Y322500D03*\r
+X632500Y332500D03*\r
+Y322500D03*\r
+G54D21*G36*\r
+X473500Y54000D02*Y46000D01*\r
+X481500D01*\r
+Y54000D01*\r
+X473500D01*\r
+G37*\r
+G54D26*X467500Y50000D03*\r
+X457500D03*\r
+G54D21*G36*\r
+X346000Y54000D02*Y46000D01*\r
+X354000D01*\r
+Y54000D01*\r
+X346000D01*\r
+G37*\r
+G54D26*X340000Y50000D03*\r
+X330000D03*\r
+G54D21*G36*\r
+X473500Y129000D02*Y121000D01*\r
+X481500D01*\r
+Y129000D01*\r
+X473500D01*\r
+G37*\r
+G54D26*X467500Y125000D03*\r
+X457500D03*\r
+G54D21*G36*\r
+X346000Y129000D02*Y121000D01*\r
+X354000D01*\r
+Y129000D01*\r
+X346000D01*\r
+G37*\r
+G54D26*X340000Y125000D03*\r
+X330000D03*\r
+G54D21*G36*\r
+X346000Y204000D02*Y196000D01*\r
+X354000D01*\r
+Y204000D01*\r
+X346000D01*\r
+G37*\r
+G54D26*X340000Y200000D03*\r
+X330000D03*\r
+G54D21*G36*\r
+X59250Y120750D02*Y114250D01*\r
+X65750D01*\r
+Y120750D01*\r
+X59250D01*\r
+G37*\r
+G54D16*X62500Y127500D03*\r
+G54D21*G36*\r
+X59250Y158250D02*Y151750D01*\r
+X65750D01*\r
+Y158250D01*\r
+X59250D01*\r
+G37*\r
+G54D16*X62500Y165000D03*\r
+G54D14*X57500Y33800D03*\r
+G54D21*G36*\r
+X52000Y93000D02*Y87000D01*\r
+X58000D01*\r
+Y93000D01*\r
+X52000D01*\r
+G37*\r
+G54D25*X55000Y72300D03*\r
+G54D13*X64800Y67300D03*\r
+Y94900D03*\r
+G54D14*X57500Y382500D03*\r
+G54D27*X75000Y334500D03*\r
+G54D21*G36*\r
+X59250Y195750D02*Y189250D01*\r
+X65750D01*\r
+Y195750D01*\r
+X59250D01*\r
+G37*\r
+G54D16*X62500Y202500D03*\r
+G54D27*X75000Y236900D03*\r
+G54D21*G36*\r
+X77000Y310500D02*Y304500D01*\r
+X83000D01*\r
+Y310500D01*\r
+X77000D01*\r
+G37*\r
+G54D25*X70000Y302100D03*\r
+X80000Y296600D03*\r
+X70000Y291200D03*\r
+X80000Y285700D03*\r
+X70000Y280300D03*\r
+X80000Y274800D03*\r
+Y263900D03*\r
+X70000Y269400D03*\r
+G54D21*G36*\r
+X214500Y238000D02*Y232000D01*\r
+X220500D01*\r
+Y238000D01*\r
+X214500D01*\r
+G37*\r
+G36*\r
+X214750Y262750D02*Y257250D01*\r
+X220250D01*\r
+Y262750D01*\r
+X214750D01*\r
+G37*\r
+G36*\r
+Y177750D02*Y172250D01*\r
+X220250D01*\r
+Y177750D01*\r
+X214750D01*\r
+G37*\r
+G54D25*X217500Y155000D03*\r
+X177500Y235000D03*\r
+G54D20*Y260000D03*\r
+Y175000D03*\r
+G54D21*G36*\r
+X174500Y158000D02*Y152000D01*\r
+X180500D01*\r
+Y158000D01*\r
+X174500D01*\r
+G37*\r
+G36*\r
+X239500Y263000D02*Y257000D01*\r
+X245500D01*\r
+Y263000D01*\r
+X239500D01*\r
+G37*\r
+G36*\r
+Y238000D02*Y232000D01*\r
+X245500D01*\r
+Y238000D01*\r
+X239500D01*\r
+G37*\r
+G54D25*X252500Y235000D03*\r
+Y260000D03*\r
+G54D21*G36*\r
+X317000Y263000D02*Y257000D01*\r
+X323000D01*\r
+Y263000D01*\r
+X317000D01*\r
+G37*\r
+G54D25*X310000Y260000D03*\r
+G54D21*G36*\r
+X229500Y198000D02*Y192000D01*\r
+X235500D01*\r
+Y198000D01*\r
+X229500D01*\r
+G37*\r
+G54D20*X232500Y175000D03*\r
+G54D21*G36*\r
+X229500Y158000D02*Y152000D01*\r
+X235500D01*\r
+Y158000D01*\r
+X229500D01*\r
+G37*\r
+G36*\r
+X229750Y217750D02*Y212250D01*\r
+X235250D01*\r
+Y217750D01*\r
+X229750D01*\r
+G37*\r
+G54D25*X272500Y195000D03*\r
+G54D21*G36*\r
+X269750Y177750D02*Y172250D01*\r
+X275250D01*\r
+Y177750D01*\r
+X269750D01*\r
+G37*\r
+G54D25*X272500Y155000D03*\r
+G54D20*Y215000D03*\r
+G54D21*G36*\r
+X192000Y63000D02*Y57000D01*\r
+X198000D01*\r
+Y63000D01*\r
+X192000D01*\r
+G37*\r
+G54D25*X205000Y60000D03*\r
+X215000D03*\r
+X225000D03*\r
+X235000D03*\r
+X245000D03*\r
+X255000D03*\r
+Y90000D03*\r
+X245000D03*\r
+G54D21*G36*\r
+X277000Y338000D02*Y332000D01*\r
+X283000D01*\r
+Y338000D01*\r
+X277000D01*\r
+G37*\r
+G54D25*X290000Y335000D03*\r
+X245000D03*\r
+X255000D03*\r
+X330000Y280000D03*\r
+Y310000D03*\r
+X320000D03*\r
+X310000D03*\r
+X300000D03*\r
+X290000D03*\r
+G54D21*G36*\r
+X247000Y383000D02*Y377000D01*\r
+X253000D01*\r
+Y383000D01*\r
+X247000D01*\r
+G37*\r
+G54D25*X230000Y380000D03*\r
+G54D21*G36*\r
+X307000Y338000D02*Y332000D01*\r
+X313000D01*\r
+Y338000D01*\r
+X307000D01*\r
+G37*\r
+G54D25*X320000Y335000D03*\r
+G54D21*G36*\r
+X174500Y308000D02*Y302000D01*\r
+X180500D01*\r
+Y308000D01*\r
+X174500D01*\r
+G37*\r
+G54D25*X177500Y285000D03*\r
+G54D21*G36*\r
+X192000Y283000D02*Y277000D01*\r
+X198000D01*\r
+Y283000D01*\r
+X192000D01*\r
+G37*\r
+G54D25*X205000Y280000D03*\r
+X215000D03*\r
+X225000D03*\r
+X235000D03*\r
+X215000Y310000D03*\r
+G54D21*G36*\r
+X174750Y217750D02*Y212250D01*\r
+X180250D01*\r
+Y217750D01*\r
+X174750D01*\r
+G37*\r
+G54D25*X205000Y310000D03*\r
+X195000D03*\r
+G54D20*X217500Y215000D03*\r
+G54D21*G36*\r
+X284500Y263000D02*Y257000D01*\r
+X290500D01*\r
+Y263000D01*\r
+X284500D01*\r
+G37*\r
+G54D25*X277500Y260000D03*\r
+G54D21*G36*\r
+X277000Y283000D02*Y277000D01*\r
+X283000D01*\r
+Y283000D01*\r
+X277000D01*\r
+G37*\r
+G54D25*X290000Y280000D03*\r
+X300000D03*\r
+X310000D03*\r
+X320000D03*\r
+X245000D03*\r
+X255000D03*\r
+X280000Y310000D03*\r
+X255000D03*\r
+X245000D03*\r
+X235000D03*\r
+Y90000D03*\r
+G54D21*G36*\r
+X239500Y138000D02*Y132000D01*\r
+X245500D01*\r
+Y138000D01*\r
+X239500D01*\r
+G37*\r
+G54D25*X225000Y310000D03*\r
+Y90000D03*\r
+G54D21*G36*\r
+X174500Y198000D02*Y192000D01*\r
+X180500D01*\r
+Y198000D01*\r
+X174500D01*\r
+G37*\r
+G54D25*X217500Y195000D03*\r
+X215000Y90000D03*\r
+X205000D03*\r
+X195000D03*\r
+G54D21*G36*\r
+X174500Y88000D02*Y82000D01*\r
+X180500D01*\r
+Y88000D01*\r
+X174500D01*\r
+G37*\r
+G54D25*X177500Y65000D03*\r
+G54D21*G36*\r
+X214500Y113000D02*Y107000D01*\r
+X220500D01*\r
+Y113000D01*\r
+X214500D01*\r
+G37*\r
+G36*\r
+X239500D02*Y107000D01*\r
+X245500D01*\r
+Y113000D01*\r
+X239500D01*\r
+G37*\r
+G54D25*X252500Y110000D03*\r
+Y135000D03*\r
+G54D21*G36*\r
+X214750Y137750D02*Y132250D01*\r
+X220250D01*\r
+Y137750D01*\r
+X214750D01*\r
+G37*\r
+G54D25*X177500Y110000D03*\r
+G54D20*Y135000D03*\r
+G54D25*X425000Y275000D03*\r
+G54D21*G36*\r
+X473500Y204000D02*Y196000D01*\r
+X481500D01*\r
+Y204000D01*\r
+X473500D01*\r
+G37*\r
+G54D26*X467500Y200000D03*\r
+X457500D03*\r
+G54D25*X442500Y275000D03*\r
+G54D21*G36*\r
+X612000Y263000D02*Y257000D01*\r
+X618000D01*\r
+Y263000D01*\r
+X612000D01*\r
+G37*\r
+G54D25*X632500Y262500D03*\r
+Y252500D03*\r
+X652500Y272500D03*\r
+X642500D03*\r
+X632500D03*\r
+X652500Y262500D03*\r
+X642500D03*\r
+Y252500D03*\r
+Y242500D03*\r
+X652500Y252500D03*\r
+Y242500D03*\r
+X632500D03*\r
+Y232500D03*\r
+Y222500D03*\r
+Y212500D03*\r
+Y202500D03*\r
+X575000Y260000D03*\r
+G54D21*G36*\r
+X554500Y263000D02*Y257000D01*\r
+X560500D01*\r
+Y263000D01*\r
+X554500D01*\r
+G37*\r
+G54D25*X517500Y260000D03*\r
+X500000D03*\r
+G54D21*G36*\r
+X339500Y263000D02*Y257000D01*\r
+X345500D01*\r
+Y263000D01*\r
+X339500D01*\r
+G37*\r
+G54D25*X382500Y260000D03*\r
+G54D21*G36*\r
+X437000Y263000D02*Y257000D01*\r
+X443000D01*\r
+Y263000D01*\r
+X437000D01*\r
+G37*\r
+G54D25*X400000Y260000D03*\r
+G54D21*G36*\r
+X457000Y263000D02*Y257000D01*\r
+X463000D01*\r
+Y263000D01*\r
+X457000D01*\r
+G37*\r
+G36*\r
+X612000Y43000D02*Y37000D01*\r
+X618000D01*\r
+Y43000D01*\r
+X612000D01*\r
+G37*\r
+G54D25*X615000Y30000D03*\r
+G54D21*G36*\r
+X612000Y63000D02*Y57000D01*\r
+X618000D01*\r
+Y63000D01*\r
+X612000D01*\r
+G37*\r
+G54D25*X615000Y70000D03*\r
+G54D14*X662500Y33800D03*\r
+Y32500D03*\r
+G54D21*G36*\r
+X589500Y33000D02*Y27000D01*\r
+X595500D01*\r
+Y33000D01*\r
+X589500D01*\r
+G37*\r
+G54D25*X592500Y50000D03*\r
+G54D21*G36*\r
+X549500Y53000D02*Y47000D01*\r
+X555500D01*\r
+Y53000D01*\r
+X549500D01*\r
+G37*\r
+G54D25*X552500Y30000D03*\r
+G54D21*G36*\r
+X572000Y33000D02*Y27000D01*\r
+X578000D01*\r
+Y33000D01*\r
+X572000D01*\r
+G37*\r
+G54D25*X575000Y50000D03*\r
+X652500Y62500D03*\r
+Y52500D03*\r
+X642500Y62500D03*\r
+Y52500D03*\r
+X632500Y62500D03*\r
+Y52500D03*\r
+G54D21*G36*\r
+X547500Y115000D02*Y105000D01*\r
+X557500D01*\r
+Y115000D01*\r
+X547500D01*\r
+G37*\r
+G54D23*X592500Y110000D03*\r
+G54D21*G36*\r
+X547500Y212500D02*Y202500D01*\r
+X557500D01*\r
+Y212500D01*\r
+X547500D01*\r
+G37*\r
+G54D23*X592500Y207500D03*\r
+G54D25*X652500Y232500D03*\r
+Y222500D03*\r
+Y212500D03*\r
+X642500Y232500D03*\r
+Y222500D03*\r
+Y212500D03*\r
+X652500Y202500D03*\r
+Y192500D03*\r
+Y182500D03*\r
+X642500Y202500D03*\r
+Y192500D03*\r
+X632500D03*\r
+X652500Y162500D03*\r
+Y152500D03*\r
+Y142500D03*\r
+Y132500D03*\r
+Y122500D03*\r
+Y112500D03*\r
+Y102500D03*\r
+Y92500D03*\r
+Y82500D03*\r
+Y72500D03*\r
+Y172500D03*\r
+X642500D03*\r
+Y182500D03*\r
+Y162500D03*\r
+Y152500D03*\r
+Y142500D03*\r
+Y132500D03*\r
+Y122500D03*\r
+Y112500D03*\r
+Y102500D03*\r
+Y92500D03*\r
+Y82500D03*\r
+Y72500D03*\r
+X632500Y182500D03*\r
+Y172500D03*\r
+Y162500D03*\r
+Y152500D03*\r
+Y142500D03*\r
+Y132500D03*\r
+Y122500D03*\r
+Y112500D03*\r
+Y102500D03*\r
+Y92500D03*\r
+Y82500D03*\r
+Y72500D03*\r
+G54D14*X340000Y172500D03*\r
+G54D19*X365000Y92500D03*\r
+X315000Y130000D03*\r
+X360000Y182500D03*\r
+X352500Y292500D03*\r
+X350000Y287500D03*\r
+X315000Y275000D03*\r
+X325000Y250000D03*\r
+G54D22*X360000Y267500D03*\r
+G54D15*X497500Y40000D03*\r
+Y142500D03*\r
+G54D25*X545000Y62500D03*\r
+G54D15*X372500Y40000D03*\r
+G54D25*X400000Y85000D03*\r
+X385000Y70000D03*\r
+G54D26*X392500Y77500D03*\r
+G54D14*X552500Y172500D03*\r
+G54D28*X615000Y122500D03*\r
+G54D14*Y187500D03*\r
+G54D25*X605000Y60000D03*\r
+G54D26*X552500Y70000D03*\r
+G54D14*X592500Y157500D03*\r
+G54D17*X532500Y17500D03*\r
+G54D14*Y157500D03*\r
+G54D25*X432500Y60000D03*\r
+G54D19*X102500Y280000D03*\r
+G54D25*X152500Y347500D03*\r
+X160000Y335000D03*\r
+G54D19*X102500Y297500D03*\r
+G54D25*X187500Y302500D03*\r
+X160000Y285000D03*\r
+G54D19*X87500Y275000D03*\r
+X92500Y270000D03*\r
+X160000Y222500D03*\r
+G54D25*X152500Y227500D03*\r
+X177500Y245000D03*\r
+X160000D03*\r
+X187500Y235000D03*\r
+G54D19*X210000Y370000D03*\r
+G54D25*X262500Y302500D03*\r
+Y207500D03*\r
+G54D19*X305000Y270000D03*\r
+X285000Y302500D03*\r
+G54D25*X295000Y350000D03*\r
+G54D16*X270000Y260000D03*\r
+G54D25*X240000Y80000D03*\r
+X225000Y97500D03*\r
+X252500Y125000D03*\r
+Y97500D03*\r
+G54D19*X155000Y42500D03*\r
+G54D25*X195000Y30000D03*\r
+G54D19*X205000Y52500D03*\r
+X215000Y47500D03*\r
+X225000Y42500D03*\r
+X155000Y135000D03*\r
+X165000Y52500D03*\r
+G54D15*X190000Y97500D03*\r
+G54D19*X160000Y47500D03*\r
+X282500Y165000D03*\r
+G54D25*X177500Y125000D03*\r
+X217500Y187500D03*\r
+X225000Y117500D03*\r
+X242500Y125000D03*\r
+G54D13*X190000Y135000D03*\r
+G54D25*X207500Y155000D03*\r
+X280000Y322500D03*\r
+G54D19*X247500Y392500D03*\r
+G54D15*X270000Y380000D03*\r
+G54D19*X200000Y260000D03*\r
+Y287500D03*\r
+G54D25*X242500Y245000D03*\r
+G54D19*X225000Y222500D03*\r
+Y240000D03*\r
+G54D25*X262500Y235000D03*\r
+G54D13*X270000Y287500D03*\r
+G54D19*X315000Y267500D03*\r
+X295000Y275000D03*\r
+X397500Y267500D03*\r
+G54D22*X387500D03*\r
+G54D19*X367500Y317500D03*\r
+X360000Y260000D03*\r
+X365000Y255000D03*\r
+G54D15*X360000Y380000D03*\r
+G54D19*X417500Y400000D03*\r
+X352500Y240000D03*\r
+X345000Y267500D03*\r
+X332500Y235000D03*\r
+X310000Y317500D03*\r
+X377500Y297500D03*\r
+G54D25*X302500Y322500D03*\r
+G54D15*X327500Y380000D03*\r
+G54D19*X335000Y372500D03*\r
+X507500Y270000D03*\r
+X492500Y235000D03*\r
+X482500Y260000D03*\r
+X507500Y295000D03*\r
+X592500D03*\r
+X480000Y300000D03*\r
+X442500Y295000D03*\r
+X532500Y352500D03*\r
+X377500Y327500D03*\r
+G54D25*X520000Y340000D03*\r
+G54D19*X372500Y260000D03*\r
+G54D25*X385000Y245000D03*\r
+X517500D03*\r
+G54D19*X547500Y357500D03*\r
+X562500Y347500D03*\r
+X527500Y325000D03*\r
+X532500Y322500D03*\r
+G54D15*X602500Y252500D03*\r
+G54D19*X565000Y250000D03*\r
+X545000Y265000D03*\r
+X557500Y237500D03*\r
+X612500Y322500D03*\r
+G54D25*X615000Y302500D03*\r
+G54D19*X442500Y345000D03*\r
+X477500Y387500D03*\r
+X442500Y392500D03*\r
+X435000Y365000D03*\r
+X427500Y392500D03*\r
+X402500D03*\r
+X417500Y370000D03*\r
+G54D15*X410000Y340000D03*\r
+G54D25*X472500Y245000D03*\r
+G54D19*X425000Y295000D03*\r
+G54D25*X400000Y245000D03*\r
+G54D20*X432500Y227500D03*\r
+G54D19*X477500Y295000D03*\r
+G54D25*X472500Y322500D03*\r
+G54D19*X477500Y305000D03*\r
+G54D25*X460000Y340000D03*\r
+G54D29*G54D30*G54D29*G54D30*G54D29*G54D30*G54D29*G54D30*G54D29*G54D30*G54D29*G54D30*G54D29*G54D30*G54D29*G54D30*G54D29*G54D30*G54D29*G54D26*G54D18*G54D29*G54D18*G54D30*G54D29*G54D30*G54D29*G54D18*G54D31*G54D32*G54D26*G54D31*G54D33*G54D26*G54D14*G54D32*G54D14*G54D30*G54D18*G54D30*G54D18*G54D30*G54D18*G54D30*G54D18*G54D30*G54D18*G54D30*G54D18*G54D29*G54D30*G54D29*G54D30*G54D29*G54D18*G54D29*G54D18*G54D30*G54D29*G54D30*G54D29*G54D30*G54D29*G54D30*G54D18*G54D30*G54D18*G54D30*G54D31*G54D30*G54D18*G54D30*G54D26*G54D29*G54D18*G54D25*G54D18*G54D20*G54D21*G54D30*G54D20*G54D30*G54D20*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*M02*\r
--- /dev/null
+G04 start of page 6 for group -4062 idx -4062 *\r
+G04 Title: (unknown), soldermask *\r
+G04 Creator: pcb 20100929 *\r
+G04 CreationDate: Thu 18 Nov 2010 07:40:28 PM GMT UTC *\r
+G04 For: andrenb *\r
+G04 Format: Gerber/RS-274X *\r
+G04 PCB-Dimensions: 710000 410000 *\r
+G04 PCB-Coordinate-Origin: lower left *\r
+%MOIN*%\r
+%FSLAX25Y25*%\r
+%LNBACKMASK*%\r
+%ADD21C,0.0200*%\r
+%ADD34C,0.0660*%\r
+%ADD35C,0.1260*%\r
+%ADD36C,0.0860*%\r
+%ADD37C,0.0710*%\r
+%ADD38C,0.0760*%\r
+%ADD39C,0.1460*%\r
+%ADD40C,0.0610*%\r
+%ADD41C,0.1060*%\r
+G54D21*G36*\r
+X221700Y338300D02*Y331700D01*\r
+X228300D01*\r
+Y338300D01*\r
+X221700D01*\r
+G37*\r
+G54D34*X235000Y335000D03*\r
+G54D21*G36*\r
+X369200Y338300D02*Y331700D01*\r
+X375800D01*\r
+Y338300D01*\r
+X369200D01*\r
+G37*\r
+G54D34*X382500Y335000D03*\r
+X392500D03*\r
+X402500D03*\r
+X255000Y365000D03*\r
+X245000D03*\r
+X235000D03*\r
+G54D21*G36*\r
+X286700Y363300D02*Y356700D01*\r
+X293300D01*\r
+Y363300D01*\r
+X286700D01*\r
+G37*\r
+G54D34*X280000Y360000D03*\r
+X225000Y365000D03*\r
+G54D21*G36*\r
+X194200Y383300D02*Y376700D01*\r
+X200800D01*\r
+Y383300D01*\r
+X194200D01*\r
+G37*\r
+G54D34*X177500Y380000D03*\r
+G54D21*G36*\r
+X194200Y360800D02*Y354200D01*\r
+X200800D01*\r
+Y360800D01*\r
+X194200D01*\r
+G37*\r
+G54D34*X177500Y357500D03*\r
+G54D21*G36*\r
+X189200Y338300D02*Y331700D01*\r
+X195800D01*\r
+Y338300D01*\r
+X189200D01*\r
+G37*\r
+G54D34*X202500Y335000D03*\r
+G54D21*G36*\r
+X341700Y373300D02*Y366700D01*\r
+X348300D01*\r
+Y373300D01*\r
+X341700D01*\r
+G37*\r
+G54D34*X345000Y330000D03*\r
+X340000Y280000D03*\r
+X350000D03*\r
+Y310000D03*\r
+X340000D03*\r
+G54D21*G36*\r
+X369200Y283300D02*Y276700D01*\r
+X375800D01*\r
+Y283300D01*\r
+X369200D01*\r
+G37*\r
+G54D34*X382500Y280000D03*\r
+X392500D03*\r
+X402500D03*\r
+Y310000D03*\r
+X392500D03*\r
+X382500D03*\r
+X372500D03*\r
+G54D21*G36*\r
+X311700Y368300D02*Y361700D01*\r
+X318300D01*\r
+Y368300D01*\r
+X311700D01*\r
+G37*\r
+G54D34*X315000Y355000D03*\r
+G54D21*G36*\r
+X394200Y383300D02*Y376700D01*\r
+X400800D01*\r
+Y383300D01*\r
+X394200D01*\r
+G37*\r
+G54D34*X377500Y380000D03*\r
+X402500Y365000D03*\r
+X392500D03*\r
+X382500D03*\r
+X372500D03*\r
+G54D21*G36*\r
+X456700Y373300D02*Y366700D01*\r
+X463300D01*\r
+Y373300D01*\r
+X456700D01*\r
+G37*\r
+G54D34*X425000Y370000D03*\r
+G54D21*G36*\r
+X504200Y383300D02*Y376700D01*\r
+X510800D01*\r
+Y383300D01*\r
+X504200D01*\r
+G37*\r
+G54D34*X487500Y380000D03*\r
+X442500Y370000D03*\r
+X512500Y365000D03*\r
+G54D21*G36*\r
+X529200Y373300D02*Y366700D01*\r
+X535800D01*\r
+Y373300D01*\r
+X529200D01*\r
+G37*\r
+G54D34*X502500Y365000D03*\r
+X492500D03*\r
+X482500D03*\r
+G54D21*G36*\r
+X421700Y318300D02*Y311700D01*\r
+X428300D01*\r
+Y318300D01*\r
+X421700D01*\r
+G37*\r
+G54D34*X460000Y330000D03*\r
+G54D21*G36*\r
+X421700Y333300D02*Y326700D01*\r
+X428300D01*\r
+Y333300D01*\r
+X421700D01*\r
+G37*\r
+G36*\r
+X439200Y318300D02*Y311700D01*\r
+X445800D01*\r
+Y318300D01*\r
+X439200D01*\r
+G37*\r
+G36*\r
+X456700Y288300D02*Y281700D01*\r
+X463300D01*\r
+Y288300D01*\r
+X456700D01*\r
+G37*\r
+G54D34*X460000Y305000D03*\r
+G54D21*G36*\r
+X479200Y283300D02*Y276700D01*\r
+X485800D01*\r
+Y283300D01*\r
+X479200D01*\r
+G37*\r
+G54D34*X492500Y280000D03*\r
+X502500D03*\r
+X512500D03*\r
+X522500D03*\r
+X532500D03*\r
+X542500D03*\r
+X552500D03*\r
+X562500D03*\r
+X572500D03*\r
+X582500D03*\r
+Y310000D03*\r
+X572500D03*\r
+X562500D03*\r
+X552500D03*\r
+X542500D03*\r
+X532500D03*\r
+X522500D03*\r
+X512500D03*\r
+X502500D03*\r
+X492500D03*\r
+X482500D03*\r
+G54D21*G36*\r
+X544200Y333300D02*Y326700D01*\r
+X550800D01*\r
+Y333300D01*\r
+X544200D01*\r
+G37*\r
+G54D34*X512500Y335000D03*\r
+X532500Y330000D03*\r
+G54D21*G36*\r
+X439200Y333300D02*Y326700D01*\r
+X445800D01*\r
+Y333300D01*\r
+X439200D01*\r
+G37*\r
+G36*\r
+X479200Y338300D02*Y331700D01*\r
+X485800D01*\r
+Y338300D01*\r
+X479200D01*\r
+G37*\r
+G54D34*X492500Y335000D03*\r
+X502500D03*\r
+G54D35*X662500Y382500D03*\r
+D03*\r
+G54D21*G36*\r
+X649200Y365800D02*Y359200D01*\r
+X655800D01*\r
+Y365800D01*\r
+X649200D01*\r
+G37*\r
+G54D34*X642500Y362500D03*\r
+X652500Y352500D03*\r
+Y342500D03*\r
+X642500Y352500D03*\r
+Y342500D03*\r
+X632500Y362500D03*\r
+Y352500D03*\r
+Y342500D03*\r
+X592500Y280000D03*\r
+Y310000D03*\r
+X602500Y280000D03*\r
+X612500D03*\r
+Y310000D03*\r
+X602500D03*\r
+X652500Y312500D03*\r
+Y302500D03*\r
+Y292500D03*\r
+X642500D03*\r
+X632500D03*\r
+X652500Y282500D03*\r
+X642500D03*\r
+X632500D03*\r
+X642500Y312500D03*\r
+Y302500D03*\r
+X632500Y312500D03*\r
+Y302500D03*\r
+X547500Y370000D03*\r
+X562500D03*\r
+G54D21*G36*\r
+X604200Y383300D02*Y376700D01*\r
+X610800D01*\r
+Y383300D01*\r
+X604200D01*\r
+G37*\r
+G54D34*X587500Y380000D03*\r
+X612500Y365000D03*\r
+X602500D03*\r
+X592500D03*\r
+X582500D03*\r
+G54D21*G36*\r
+X559200Y333300D02*Y326700D01*\r
+X565800D01*\r
+Y333300D01*\r
+X559200D01*\r
+G37*\r
+G36*\r
+X579200Y338300D02*Y331700D01*\r
+X585800D01*\r
+Y338300D01*\r
+X579200D01*\r
+G37*\r
+G54D34*X592500Y335000D03*\r
+X602500D03*\r
+X612500D03*\r
+X652500Y332500D03*\r
+Y322500D03*\r
+X642500Y332500D03*\r
+Y322500D03*\r
+X632500Y332500D03*\r
+Y322500D03*\r
+G54D21*G36*\r
+X473200Y54300D02*Y45700D01*\r
+X481800D01*\r
+Y54300D01*\r
+X473200D01*\r
+G37*\r
+G54D36*X467500Y50000D03*\r
+X457500D03*\r
+G54D21*G36*\r
+X345700Y54300D02*Y45700D01*\r
+X354300D01*\r
+Y54300D01*\r
+X345700D01*\r
+G37*\r
+G54D36*X340000Y50000D03*\r
+X330000D03*\r
+G54D21*G36*\r
+X473200Y129300D02*Y120700D01*\r
+X481800D01*\r
+Y129300D01*\r
+X473200D01*\r
+G37*\r
+G54D36*X467500Y125000D03*\r
+X457500D03*\r
+G54D21*G36*\r
+X345700Y129300D02*Y120700D01*\r
+X354300D01*\r
+Y129300D01*\r
+X345700D01*\r
+G37*\r
+G54D36*X340000Y125000D03*\r
+X330000D03*\r
+G54D21*G36*\r
+X345700Y204300D02*Y195700D01*\r
+X354300D01*\r
+Y204300D01*\r
+X345700D01*\r
+G37*\r
+G54D36*X340000Y200000D03*\r
+X330000D03*\r
+G54D21*G36*\r
+X58950Y121050D02*Y113950D01*\r
+X66050D01*\r
+Y121050D01*\r
+X58950D01*\r
+G37*\r
+G54D37*X62500Y127500D03*\r
+G54D21*G36*\r
+X58950Y158550D02*Y151450D01*\r
+X66050D01*\r
+Y158550D01*\r
+X58950D01*\r
+G37*\r
+G54D37*X62500Y165000D03*\r
+G54D35*X57500Y33800D03*\r
+G54D21*G36*\r
+X51700Y93300D02*Y86700D01*\r
+X58300D01*\r
+Y93300D01*\r
+X51700D01*\r
+G37*\r
+G54D34*X55000Y72300D03*\r
+G54D38*X64800Y67300D03*\r
+Y94900D03*\r
+G54D35*X57500Y382500D03*\r
+G54D39*X75000Y334500D03*\r
+G54D21*G36*\r
+X58950Y196050D02*Y188950D01*\r
+X66050D01*\r
+Y196050D01*\r
+X58950D01*\r
+G37*\r
+G54D37*X62500Y202500D03*\r
+G54D39*X75000Y236900D03*\r
+G54D21*G36*\r
+X76700Y310800D02*Y304200D01*\r
+X83300D01*\r
+Y310800D01*\r
+X76700D01*\r
+G37*\r
+G54D34*X70000Y302100D03*\r
+X80000Y296600D03*\r
+X70000Y291200D03*\r
+X80000Y285700D03*\r
+X70000Y280300D03*\r
+X80000Y274800D03*\r
+Y263900D03*\r
+X70000Y269400D03*\r
+G54D21*G36*\r
+X214200Y238300D02*Y231700D01*\r
+X220800D01*\r
+Y238300D01*\r
+X214200D01*\r
+G37*\r
+G36*\r
+X214450Y263050D02*Y256950D01*\r
+X220550D01*\r
+Y263050D01*\r
+X214450D01*\r
+G37*\r
+G36*\r
+Y178050D02*Y171950D01*\r
+X220550D01*\r
+Y178050D01*\r
+X214450D01*\r
+G37*\r
+G54D34*X217500Y155000D03*\r
+X177500Y235000D03*\r
+G54D40*Y260000D03*\r
+Y175000D03*\r
+G54D21*G36*\r
+X174200Y158300D02*Y151700D01*\r
+X180800D01*\r
+Y158300D01*\r
+X174200D01*\r
+G37*\r
+G36*\r
+X239200Y263300D02*Y256700D01*\r
+X245800D01*\r
+Y263300D01*\r
+X239200D01*\r
+G37*\r
+G36*\r
+Y238300D02*Y231700D01*\r
+X245800D01*\r
+Y238300D01*\r
+X239200D01*\r
+G37*\r
+G54D34*X252500Y235000D03*\r
+Y260000D03*\r
+G54D21*G36*\r
+X316700Y263300D02*Y256700D01*\r
+X323300D01*\r
+Y263300D01*\r
+X316700D01*\r
+G37*\r
+G54D34*X310000Y260000D03*\r
+G54D21*G36*\r
+X229200Y198300D02*Y191700D01*\r
+X235800D01*\r
+Y198300D01*\r
+X229200D01*\r
+G37*\r
+G54D40*X232500Y175000D03*\r
+G54D21*G36*\r
+X229200Y158300D02*Y151700D01*\r
+X235800D01*\r
+Y158300D01*\r
+X229200D01*\r
+G37*\r
+G36*\r
+X229450Y218050D02*Y211950D01*\r
+X235550D01*\r
+Y218050D01*\r
+X229450D01*\r
+G37*\r
+G54D34*X272500Y195000D03*\r
+G54D21*G36*\r
+X269450Y178050D02*Y171950D01*\r
+X275550D01*\r
+Y178050D01*\r
+X269450D01*\r
+G37*\r
+G54D34*X272500Y155000D03*\r
+G54D40*Y215000D03*\r
+G54D21*G36*\r
+X191700Y63300D02*Y56700D01*\r
+X198300D01*\r
+Y63300D01*\r
+X191700D01*\r
+G37*\r
+G54D34*X205000Y60000D03*\r
+X215000D03*\r
+X225000D03*\r
+X235000D03*\r
+X245000D03*\r
+X255000D03*\r
+Y90000D03*\r
+X245000D03*\r
+G54D21*G36*\r
+X276700Y338300D02*Y331700D01*\r
+X283300D01*\r
+Y338300D01*\r
+X276700D01*\r
+G37*\r
+G54D34*X290000Y335000D03*\r
+X245000D03*\r
+X255000D03*\r
+X330000Y280000D03*\r
+Y310000D03*\r
+X320000D03*\r
+X310000D03*\r
+X300000D03*\r
+X290000D03*\r
+G54D21*G36*\r
+X246700Y383300D02*Y376700D01*\r
+X253300D01*\r
+Y383300D01*\r
+X246700D01*\r
+G37*\r
+G54D34*X230000Y380000D03*\r
+G54D21*G36*\r
+X306700Y338300D02*Y331700D01*\r
+X313300D01*\r
+Y338300D01*\r
+X306700D01*\r
+G37*\r
+G54D34*X320000Y335000D03*\r
+G54D21*G36*\r
+X174200Y308300D02*Y301700D01*\r
+X180800D01*\r
+Y308300D01*\r
+X174200D01*\r
+G37*\r
+G54D34*X177500Y285000D03*\r
+G54D21*G36*\r
+X191700Y283300D02*Y276700D01*\r
+X198300D01*\r
+Y283300D01*\r
+X191700D01*\r
+G37*\r
+G54D34*X205000Y280000D03*\r
+X215000D03*\r
+X225000D03*\r
+X235000D03*\r
+X215000Y310000D03*\r
+G54D21*G36*\r
+X174450Y218050D02*Y211950D01*\r
+X180550D01*\r
+Y218050D01*\r
+X174450D01*\r
+G37*\r
+G54D34*X205000Y310000D03*\r
+X195000D03*\r
+G54D40*X217500Y215000D03*\r
+G54D21*G36*\r
+X284200Y263300D02*Y256700D01*\r
+X290800D01*\r
+Y263300D01*\r
+X284200D01*\r
+G37*\r
+G54D34*X277500Y260000D03*\r
+G54D21*G36*\r
+X276700Y283300D02*Y276700D01*\r
+X283300D01*\r
+Y283300D01*\r
+X276700D01*\r
+G37*\r
+G54D34*X290000Y280000D03*\r
+X300000D03*\r
+X310000D03*\r
+X320000D03*\r
+X245000D03*\r
+X255000D03*\r
+X280000Y310000D03*\r
+X255000D03*\r
+X245000D03*\r
+X235000D03*\r
+Y90000D03*\r
+G54D21*G36*\r
+X239200Y138300D02*Y131700D01*\r
+X245800D01*\r
+Y138300D01*\r
+X239200D01*\r
+G37*\r
+G54D34*X225000Y310000D03*\r
+Y90000D03*\r
+G54D21*G36*\r
+X174200Y198300D02*Y191700D01*\r
+X180800D01*\r
+Y198300D01*\r
+X174200D01*\r
+G37*\r
+G54D34*X217500Y195000D03*\r
+X215000Y90000D03*\r
+X205000D03*\r
+X195000D03*\r
+G54D21*G36*\r
+X174200Y88300D02*Y81700D01*\r
+X180800D01*\r
+Y88300D01*\r
+X174200D01*\r
+G37*\r
+G54D34*X177500Y65000D03*\r
+G54D21*G36*\r
+X214200Y113300D02*Y106700D01*\r
+X220800D01*\r
+Y113300D01*\r
+X214200D01*\r
+G37*\r
+G36*\r
+X239200D02*Y106700D01*\r
+X245800D01*\r
+Y113300D01*\r
+X239200D01*\r
+G37*\r
+G54D34*X252500Y110000D03*\r
+Y135000D03*\r
+G54D21*G36*\r
+X214450Y138050D02*Y131950D01*\r
+X220550D01*\r
+Y138050D01*\r
+X214450D01*\r
+G37*\r
+G54D34*X177500Y110000D03*\r
+G54D40*Y135000D03*\r
+G54D34*X425000Y275000D03*\r
+G54D21*G36*\r
+X473200Y204300D02*Y195700D01*\r
+X481800D01*\r
+Y204300D01*\r
+X473200D01*\r
+G37*\r
+G54D36*X467500Y200000D03*\r
+X457500D03*\r
+G54D34*X442500Y275000D03*\r
+G54D21*G36*\r
+X611700Y263300D02*Y256700D01*\r
+X618300D01*\r
+Y263300D01*\r
+X611700D01*\r
+G37*\r
+G54D34*X632500Y262500D03*\r
+Y252500D03*\r
+X652500Y272500D03*\r
+X642500D03*\r
+X632500D03*\r
+X652500Y262500D03*\r
+X642500D03*\r
+Y252500D03*\r
+Y242500D03*\r
+X652500Y252500D03*\r
+Y242500D03*\r
+X632500D03*\r
+Y232500D03*\r
+Y222500D03*\r
+Y212500D03*\r
+Y202500D03*\r
+X575000Y260000D03*\r
+G54D21*G36*\r
+X554200Y263300D02*Y256700D01*\r
+X560800D01*\r
+Y263300D01*\r
+X554200D01*\r
+G37*\r
+G54D34*X517500Y260000D03*\r
+X500000D03*\r
+G54D21*G36*\r
+X339200Y263300D02*Y256700D01*\r
+X345800D01*\r
+Y263300D01*\r
+X339200D01*\r
+G37*\r
+G54D34*X382500Y260000D03*\r
+G54D21*G36*\r
+X436700Y263300D02*Y256700D01*\r
+X443300D01*\r
+Y263300D01*\r
+X436700D01*\r
+G37*\r
+G54D34*X400000Y260000D03*\r
+G54D21*G36*\r
+X456700Y263300D02*Y256700D01*\r
+X463300D01*\r
+Y263300D01*\r
+X456700D01*\r
+G37*\r
+G36*\r
+X611700Y43300D02*Y36700D01*\r
+X618300D01*\r
+Y43300D01*\r
+X611700D01*\r
+G37*\r
+G54D34*X615000Y30000D03*\r
+G54D21*G36*\r
+X611700Y63300D02*Y56700D01*\r
+X618300D01*\r
+Y63300D01*\r
+X611700D01*\r
+G37*\r
+G54D34*X615000Y70000D03*\r
+G54D35*X662500Y33800D03*\r
+Y32500D03*\r
+G54D21*G36*\r
+X589200Y33300D02*Y26700D01*\r
+X595800D01*\r
+Y33300D01*\r
+X589200D01*\r
+G37*\r
+G54D34*X592500Y50000D03*\r
+G54D21*G36*\r
+X549200Y53300D02*Y46700D01*\r
+X555800D01*\r
+Y53300D01*\r
+X549200D01*\r
+G37*\r
+G54D34*X552500Y30000D03*\r
+G54D21*G36*\r
+X571700Y33300D02*Y26700D01*\r
+X578300D01*\r
+Y33300D01*\r
+X571700D01*\r
+G37*\r
+G54D34*X575000Y50000D03*\r
+X652500Y62500D03*\r
+Y52500D03*\r
+X642500Y62500D03*\r
+Y52500D03*\r
+X632500Y62500D03*\r
+Y52500D03*\r
+G54D21*G36*\r
+X547200Y115300D02*Y104700D01*\r
+X557800D01*\r
+Y115300D01*\r
+X547200D01*\r
+G37*\r
+G54D41*X592500Y110000D03*\r
+G54D21*G36*\r
+X547200Y212800D02*Y202200D01*\r
+X557800D01*\r
+Y212800D01*\r
+X547200D01*\r
+G37*\r
+G54D41*X592500Y207500D03*\r
+G54D34*X652500Y232500D03*\r
+Y222500D03*\r
+Y212500D03*\r
+X642500Y232500D03*\r
+Y222500D03*\r
+Y212500D03*\r
+X652500Y202500D03*\r
+Y192500D03*\r
+Y182500D03*\r
+X642500Y202500D03*\r
+Y192500D03*\r
+X632500D03*\r
+X652500Y162500D03*\r
+Y152500D03*\r
+Y142500D03*\r
+Y132500D03*\r
+Y122500D03*\r
+Y112500D03*\r
+Y102500D03*\r
+Y92500D03*\r
+Y82500D03*\r
+Y72500D03*\r
+Y172500D03*\r
+X642500D03*\r
+Y182500D03*\r
+Y162500D03*\r
+Y152500D03*\r
+Y142500D03*\r
+Y132500D03*\r
+Y122500D03*\r
+Y112500D03*\r
+Y102500D03*\r
+Y92500D03*\r
+Y82500D03*\r
+Y72500D03*\r
+X632500Y182500D03*\r
+Y172500D03*\r
+Y162500D03*\r
+Y152500D03*\r
+Y142500D03*\r
+Y132500D03*\r
+Y122500D03*\r
+Y112500D03*\r
+Y102500D03*\r
+Y92500D03*\r
+Y82500D03*\r
+Y72500D03*\r
+M02*\r
+++ /dev/null
-@misc{ftpfs,
-title="{FTP} File System",
-note="http://ftpfs.sourceforge.net",
-key="FTP File System"}
-
-@misc{javasdk,
-title="{Java 2 SDK}, Standard Edition",
-note="http://java.sun.com/j2se/1.4",
-key="Java 2 {SDK}, Standard Edition"}
-
-@misc{javax.comm,
-title="{Java} extension for Communication ({Java} communications {API})",
-note="http://java.sun.com/products/javacomm",
-key="Java extension for Communication ({Java} communications {API})"}
-
-@misc{sdcc,
-title="{SDCC} - a Freeware, retargettable, optimizing {ANSI-C} compiler",
-note="http://sdcc.sourceforge.net",
-key="SDCC"}
-
-@misc{slush,
-title="{Slush}",
-note="docs/Slush.txt in ftp://ftp.dalsemi.com/pub/tini/tini1\underline{~}10.tgz",
-key="Slush"}
-
-@misc{rxtx,
-title="{RXTX}",
-note="http://www.rxtx.org",
-key="{RXTX}"}
-
-@misc{tinisdk,
-title="{TINI} Runtime Environment",
-note="ftp://ftp.dalsemi.com/pub/tini/tini1 \underline{~} 10.tgz",
-key="{TINI} Runtime Environment"}
-
-@book{tinispec,
-title="The {TINI} Specification and Developers Guide",
-author="Don Loomis",
-publisher="Addison-Wesley",
-address="Boston, MA",
-month="Jun",
-year="2001",
-note="http://www.ibutton.org/TINI/tinispec.pdf"}
-
+++ /dev/null
-/** @mainpage Actuator Interface Card
-
-@author Walter Fetter Lages <w.fetter@ieee.org>
-
-@section intro Introduction
-
-The operation of AIC and its communication with host computer is
-supported by the class libraries AIC.jar and libaic.a. The AIC.jar package
-is used by Java programs executing in AIC, while libaic.a is used by C++
-programs executing in host computer.
-
-Classes in AIC.jar implement the @ref aichardware.
-
-Classes in libaic.a implement the @ref aichost and the @ref aicsim.
-*/
-
--- /dev/null
+G04 start of page 8 for group -3984 idx -3984 *\r
+G04 Title: (unknown), fab *\r
+G04 Creator: pcb 20100929 *\r
+G04 CreationDate: Thu 18 Nov 2010 07:40:28 PM GMT UTC *\r
+G04 For: andrenb *\r
+G04 Format: Gerber/RS-274X *\r
+G04 PCB-Dimensions: 710000 410000 *\r
+G04 PCB-Coordinate-Origin: lower left *\r
+%MOIN*%\r
+%FSLAX25Y25*%\r
+%LNFAB*%\r
+%ADD11C,0.0100*%\r
+%ADD24C,0.0080*%\r
+%ADD42C,0.0060*%\r
+G54D24*X75000Y334500D02*Y329700D01*\r
+Y334500D02*X79160Y336900D01*\r
+X75000Y334500D02*X70840Y336900D01*\r
+X73400Y334500D02*G75*G03X76600Y334500I1600J0D01*G01*\r
+G75*G03X73400Y334500I-1600J0D01*G01*\r
+X71800D02*G75*G03X78200Y334500I3200J0D01*G01*\r
+G75*G03X71800Y334500I-3200J0D01*G01*\r
+X75000Y236900D02*Y232100D01*\r
+Y236900D02*X79160Y239300D01*\r
+X75000Y236900D02*X70840Y239300D01*\r
+X73400Y236900D02*G75*G03X76600Y236900I1600J0D01*G01*\r
+G75*G03X73400Y236900I-1600J0D01*G01*\r
+X71800D02*G75*G03X78200Y236900I3200J0D01*G01*\r
+G75*G03X71800Y236900I-3200J0D01*G01*\r
+X15000Y421250D02*Y416450D01*\r
+Y421250D02*X19160Y423650D01*\r
+X15000Y421250D02*X10840Y423650D01*\r
+X13400Y421250D02*G75*G03X16600Y421250I1600J0D01*G01*\r
+G75*G03X13400Y421250I-1600J0D01*G01*\r
+X11800D02*G75*G03X18200Y421250I3200J0D01*G01*\r
+G75*G03X11800Y421250I-3200J0D01*G01*\r
+G54D42*X135000Y423500D02*Y422750D01*\r
+X136500Y421250D01*\r
+X138000Y422750D01*\r
+Y423500D02*Y422750D01*\r
+X136500Y421250D02*Y417500D01*\r
+X139801Y420500D02*X142051D01*\r
+X139801Y417500D02*X142801D01*\r
+X139801Y423500D02*Y417500D01*\r
+Y423500D02*X142801D01*\r
+X147603D02*X148353Y422750D01*\r
+X145353Y423500D02*X147603D01*\r
+X144603Y422750D02*X145353Y423500D01*\r
+X144603Y422750D02*Y421250D01*\r
+X145353Y420500D01*\r
+X147603D01*\r
+X148353Y419750D01*\r
+Y418250D01*\r
+X147603Y417500D02*X148353Y418250D01*\r
+X145353Y417500D02*X147603D01*\r
+X144603Y418250D02*X145353Y417500D01*\r
+X135000Y414249D02*X150154D01*\r
+X98000Y422750D02*X98750Y423500D01*\r
+X101000D01*\r
+X101750Y422750D01*\r
+Y421250D01*\r
+X98000Y417500D02*X101750Y421250D01*\r
+X98000Y417500D02*X101750D01*\r
+X98000Y414249D02*X103551D01*\r
+X45000Y418250D02*X45750Y417500D01*\r
+X45000Y422750D02*Y418250D01*\r
+Y422750D02*X45750Y423500D01*\r
+X47250D01*\r
+X48000Y422750D01*\r
+Y418250D01*\r
+X47250Y417500D02*X48000Y418250D01*\r
+X45750Y417500D02*X47250D01*\r
+X45000Y419000D02*X48000Y422000D01*\r
+X49801Y417500D02*X50551D01*\r
+X53103D02*X54603D01*\r
+X53853Y423500D02*Y417500D01*\r
+X52353Y422000D02*X53853Y423500D01*\r
+X56404Y422750D02*X57154Y423500D01*\r
+X59404D01*\r
+X60154Y422750D01*\r
+Y421250D01*\r
+X56404Y417500D02*X60154Y421250D01*\r
+X56404Y417500D02*X60154D01*\r
+X61956Y418250D02*X62706Y417500D01*\r
+X61956Y422750D02*Y418250D01*\r
+Y422750D02*X62706Y423500D01*\r
+X64206D01*\r
+X64956Y422750D01*\r
+Y418250D01*\r
+X64206Y417500D02*X64956Y418250D01*\r
+X62706Y417500D02*X64206D01*\r
+X61956Y419000D02*X64956Y422000D01*\r
+X45000Y414249D02*X66757D01*\r
+X660900Y34100D02*X664100D01*\r
+X660900D02*Y30900D01*\r
+X664100D01*\r
+Y34100D02*Y30900D01*\r
+X659300Y35700D02*X665700D01*\r
+X659300D02*Y29300D01*\r
+X665700D01*\r
+Y35700D02*Y29300D01*\r
+X660900Y384100D02*X664100D01*\r
+X660900D02*Y380900D01*\r
+X664100D01*\r
+Y384100D02*Y380900D01*\r
+X659300Y385700D02*X665700D01*\r
+X659300D02*Y379300D01*\r
+X665700D01*\r
+Y385700D02*Y379300D01*\r
+X55900Y384100D02*X59100D01*\r
+X55900D02*Y380900D01*\r
+X59100D01*\r
+Y384100D02*Y380900D01*\r
+X54300Y385700D02*X60700D01*\r
+X54300D02*Y379300D01*\r
+X60700D01*\r
+Y385700D02*Y379300D01*\r
+X55900Y35400D02*X59100D01*\r
+X55900D02*Y32200D01*\r
+X59100D01*\r
+Y35400D02*Y32200D01*\r
+X54300Y37000D02*X60700D01*\r
+X54300D02*Y30600D01*\r
+X60700D01*\r
+Y37000D02*Y30600D01*\r
+X660900Y384100D02*X664100D01*\r
+X660900D02*Y380900D01*\r
+X664100D01*\r
+Y384100D02*Y380900D01*\r
+X659300Y385700D02*X665700D01*\r
+X659300D02*Y379300D01*\r
+X665700D01*\r
+Y385700D02*Y379300D01*\r
+X660900Y35400D02*X664100D01*\r
+X660900D02*Y32200D01*\r
+X664100D01*\r
+Y35400D02*Y32200D01*\r
+X659300Y37000D02*X665700D01*\r
+X659300D02*Y30600D01*\r
+X665700D01*\r
+Y37000D02*Y30600D01*\r
+X13400Y437850D02*X16600D01*\r
+X13400D02*Y434650D01*\r
+X16600D01*\r
+Y437850D02*Y434650D01*\r
+X11800Y439450D02*X18200D01*\r
+X11800D02*Y433050D01*\r
+X18200D01*\r
+Y439450D02*Y433050D01*\r
+X135000Y438500D02*Y437750D01*\r
+X136500Y436250D01*\r
+X138000Y437750D01*\r
+Y438500D02*Y437750D01*\r
+X136500Y436250D02*Y432500D01*\r
+X139801Y435500D02*X142051D01*\r
+X139801Y432500D02*X142801D01*\r
+X139801Y438500D02*Y432500D01*\r
+Y438500D02*X142801D01*\r
+X147603D02*X148353Y437750D01*\r
+X145353Y438500D02*X147603D01*\r
+X144603Y437750D02*X145353Y438500D01*\r
+X144603Y437750D02*Y436250D01*\r
+X145353Y435500D01*\r
+X147603D01*\r
+X148353Y434750D01*\r
+Y433250D01*\r
+X147603Y432500D02*X148353Y433250D01*\r
+X145353Y432500D02*X147603D01*\r
+X144603Y433250D02*X145353Y432500D01*\r
+X135000Y429249D02*X150154D01*\r
+X100250Y438500D02*X101000Y437750D01*\r
+X98750Y438500D02*X100250D01*\r
+X98000Y437750D02*X98750Y438500D01*\r
+X98000Y437750D02*Y433250D01*\r
+X98750Y432500D01*\r
+X100250Y435500D02*X101000Y434750D01*\r
+X98000Y435500D02*X100250D01*\r
+X98750Y432500D02*X100250D01*\r
+X101000Y433250D01*\r
+Y434750D02*Y433250D01*\r
+X98000Y429249D02*X102801D01*\r
+X45000Y433250D02*X45750Y432500D01*\r
+X45000Y437750D02*Y433250D01*\r
+Y437750D02*X45750Y438500D01*\r
+X47250D01*\r
+X48000Y437750D01*\r
+Y433250D01*\r
+X47250Y432500D02*X48000Y433250D01*\r
+X45750Y432500D02*X47250D01*\r
+X45000Y434000D02*X48000Y437000D01*\r
+X49801Y432500D02*X50551D01*\r
+X52353Y433250D02*X53103Y432500D01*\r
+X52353Y437750D02*Y433250D01*\r
+Y437750D02*X53103Y438500D01*\r
+X54603D01*\r
+X55353Y437750D01*\r
+Y433250D01*\r
+X54603Y432500D02*X55353Y433250D01*\r
+X53103Y432500D02*X54603D01*\r
+X52353Y434000D02*X55353Y437000D01*\r
+X57154Y433250D02*X57904Y432500D01*\r
+X57154Y434750D02*Y433250D01*\r
+Y434750D02*X57904Y435500D01*\r
+X59404D01*\r
+X60154Y434750D01*\r
+Y433250D01*\r
+X59404Y432500D02*X60154Y433250D01*\r
+X57904Y432500D02*X59404D01*\r
+X57154Y436250D02*X57904Y435500D01*\r
+X57154Y437750D02*Y436250D01*\r
+Y437750D02*X57904Y438500D01*\r
+X59404D01*\r
+X60154Y437750D01*\r
+Y436250D01*\r
+X59404Y435500D02*X60154Y436250D01*\r
+X61956Y433250D02*X62706Y432500D01*\r
+X61956Y437750D02*Y433250D01*\r
+Y437750D02*X62706Y438500D01*\r
+X64206D01*\r
+X64956Y437750D01*\r
+Y433250D01*\r
+X64206Y432500D02*X64956Y433250D01*\r
+X62706Y432500D02*X64206D01*\r
+X61956Y434000D02*X64956Y437000D01*\r
+X45000Y429249D02*X66757D01*\r
+X551700Y207500D02*G75*G03X553300Y207500I800J0D01*G01*\r
+G75*G03X551700Y207500I-800J0D01*G01*\r
+X550100D02*G75*G03X554900Y207500I2400J0D01*G01*\r
+G75*G03X550100Y207500I-2400J0D01*G01*\r
+X591700D02*G75*G03X593300Y207500I800J0D01*G01*\r
+G75*G03X591700Y207500I-800J0D01*G01*\r
+X590100D02*G75*G03X594900Y207500I2400J0D01*G01*\r
+G75*G03X590100Y207500I-2400J0D01*G01*\r
+X551700Y110000D02*G75*G03X553300Y110000I800J0D01*G01*\r
+G75*G03X551700Y110000I-800J0D01*G01*\r
+X550100D02*G75*G03X554900Y110000I2400J0D01*G01*\r
+G75*G03X550100Y110000I-2400J0D01*G01*\r
+X591700D02*G75*G03X593300Y110000I800J0D01*G01*\r
+G75*G03X591700Y110000I-800J0D01*G01*\r
+X590100D02*G75*G03X594900Y110000I2400J0D01*G01*\r
+G75*G03X590100Y110000I-2400J0D01*G01*\r
+X14200Y451250D02*G75*G03X15800Y451250I800J0D01*G01*\r
+G75*G03X14200Y451250I-800J0D01*G01*\r
+X12600D02*G75*G03X17400Y451250I2400J0D01*G01*\r
+G75*G03X12600Y451250I-2400J0D01*G01*\r
+X135000Y453500D02*Y452750D01*\r
+X136500Y451250D01*\r
+X138000Y452750D01*\r
+Y453500D02*Y452750D01*\r
+X136500Y451250D02*Y447500D01*\r
+X139801Y450500D02*X142051D01*\r
+X139801Y447500D02*X142801D01*\r
+X139801Y453500D02*Y447500D01*\r
+Y453500D02*X142801D01*\r
+X147603D02*X148353Y452750D01*\r
+X145353Y453500D02*X147603D01*\r
+X144603Y452750D02*X145353Y453500D01*\r
+X144603Y452750D02*Y451250D01*\r
+X145353Y450500D01*\r
+X147603D01*\r
+X148353Y449750D01*\r
+Y448250D01*\r
+X147603Y447500D02*X148353Y448250D01*\r
+X145353Y447500D02*X147603D01*\r
+X144603Y448250D02*X145353Y447500D01*\r
+X135000Y444249D02*X150154D01*\r
+X98000Y450500D02*X101000Y453500D01*\r
+X98000Y450500D02*X101750D01*\r
+X101000Y453500D02*Y447500D01*\r
+X98000Y444249D02*X103551D01*\r
+X45000Y448250D02*X45750Y447500D01*\r
+X45000Y452750D02*Y448250D01*\r
+Y452750D02*X45750Y453500D01*\r
+X47250D01*\r
+X48000Y452750D01*\r
+Y448250D01*\r
+X47250Y447500D02*X48000Y448250D01*\r
+X45750Y447500D02*X47250D01*\r
+X45000Y449000D02*X48000Y452000D01*\r
+X49801Y447500D02*X50551D01*\r
+X52353Y448250D02*X53103Y447500D01*\r
+X52353Y452750D02*Y448250D01*\r
+Y452750D02*X53103Y453500D01*\r
+X54603D01*\r
+X55353Y452750D01*\r
+Y448250D01*\r
+X54603Y447500D02*X55353Y448250D01*\r
+X53103Y447500D02*X54603D01*\r
+X52353Y449000D02*X55353Y452000D01*\r
+X59404Y453500D02*X60154Y452750D01*\r
+X57904Y453500D02*X59404D01*\r
+X57154Y452750D02*X57904Y453500D01*\r
+X57154Y452750D02*Y448250D01*\r
+X57904Y447500D01*\r
+X59404Y450500D02*X60154Y449750D01*\r
+X57154Y450500D02*X59404D01*\r
+X57904Y447500D02*X59404D01*\r
+X60154Y448250D01*\r
+Y449750D02*Y448250D01*\r
+X61956D02*X62706Y447500D01*\r
+X61956Y452750D02*Y448250D01*\r
+Y452750D02*X62706Y453500D01*\r
+X64206D01*\r
+X64956Y452750D01*\r
+Y448250D01*\r
+X64206Y447500D02*X64956Y448250D01*\r
+X62706Y447500D02*X64206D01*\r
+X61956Y449000D02*X64956Y452000D01*\r
+X45000Y444249D02*X66757D01*\r
+X337600Y174900D02*X342400Y170100D01*\r
+X337600D02*X342400Y174900D01*\r
+X338400Y174100D02*X341600D01*\r
+X338400D02*Y170900D01*\r
+X341600D01*\r
+Y174100D02*Y170900D01*\r
+X550100Y174900D02*X554900Y170100D01*\r
+X550100D02*X554900Y174900D01*\r
+X550900Y174100D02*X554100D01*\r
+X550900D02*Y170900D01*\r
+X554100D01*\r
+Y174100D02*Y170900D01*\r
+X612600Y124900D02*X617400Y120100D01*\r
+X612600D02*X617400Y124900D01*\r
+X613400Y124100D02*X616600D01*\r
+X613400D02*Y120900D01*\r
+X616600D01*\r
+Y124100D02*Y120900D01*\r
+X612600Y189900D02*X617400Y185100D01*\r
+X612600D02*X617400Y189900D01*\r
+X613400Y189100D02*X616600D01*\r
+X613400D02*Y185900D01*\r
+X616600D01*\r
+Y189100D02*Y185900D01*\r
+X590100Y159900D02*X594900Y155100D01*\r
+X590100D02*X594900Y159900D01*\r
+X590900Y159100D02*X594100D01*\r
+X590900D02*Y155900D01*\r
+X594100D01*\r
+Y159100D02*Y155900D01*\r
+X530100Y19900D02*X534900Y15100D01*\r
+X530100D02*X534900Y19900D01*\r
+X530900Y19100D02*X534100D01*\r
+X530900D02*Y15900D01*\r
+X534100D01*\r
+Y19100D02*Y15900D01*\r
+X530100Y159900D02*X534900Y155100D01*\r
+X530100D02*X534900Y159900D01*\r
+X530900Y159100D02*X534100D01*\r
+X530900D02*Y155900D01*\r
+X534100D01*\r
+Y159100D02*Y155900D01*\r
+X12600Y468650D02*X17400Y463850D01*\r
+X12600D02*X17400Y468650D01*\r
+X13400Y467850D02*X16600D01*\r
+X13400D02*Y464650D01*\r
+X16600D01*\r
+Y467850D02*Y464650D01*\r
+X135000Y468500D02*Y467750D01*\r
+X136500Y466250D01*\r
+X138000Y467750D01*\r
+Y468500D02*Y467750D01*\r
+X136500Y466250D02*Y462500D01*\r
+X139801Y465500D02*X142051D01*\r
+X139801Y462500D02*X142801D01*\r
+X139801Y468500D02*Y462500D01*\r
+Y468500D02*X142801D01*\r
+X147603D02*X148353Y467750D01*\r
+X145353Y468500D02*X147603D01*\r
+X144603Y467750D02*X145353Y468500D01*\r
+X144603Y467750D02*Y466250D01*\r
+X145353Y465500D01*\r
+X147603D01*\r
+X148353Y464750D01*\r
+Y463250D01*\r
+X147603Y462500D02*X148353Y463250D01*\r
+X145353Y462500D02*X147603D01*\r
+X144603Y463250D02*X145353Y462500D01*\r
+X135000Y459249D02*X150154D01*\r
+X98000Y462500D02*X101750Y466250D01*\r
+Y468500D02*Y466250D01*\r
+X98000Y468500D02*X101750D01*\r
+X98000Y459249D02*X103551D01*\r
+X45000Y463250D02*X45750Y462500D01*\r
+X45000Y467750D02*Y463250D01*\r
+Y467750D02*X45750Y468500D01*\r
+X47250D01*\r
+X48000Y467750D01*\r
+Y463250D01*\r
+X47250Y462500D02*X48000Y463250D01*\r
+X45750Y462500D02*X47250D01*\r
+X45000Y464000D02*X48000Y467000D01*\r
+X49801Y462500D02*X50551D01*\r
+X52353Y463250D02*X53103Y462500D01*\r
+X52353Y467750D02*Y463250D01*\r
+Y467750D02*X53103Y468500D01*\r
+X54603D01*\r
+X55353Y467750D01*\r
+Y463250D01*\r
+X54603Y462500D02*X55353Y463250D01*\r
+X53103Y462500D02*X54603D01*\r
+X52353Y464000D02*X55353Y467000D01*\r
+X57154Y468500D02*X60154D01*\r
+X57154D02*Y465500D01*\r
+X57904Y466250D01*\r
+X59404D01*\r
+X60154Y465500D01*\r
+Y463250D01*\r
+X59404Y462500D02*X60154Y463250D01*\r
+X57904Y462500D02*X59404D01*\r
+X57154Y463250D02*X57904Y462500D01*\r
+X61956Y468500D02*X64956D01*\r
+X61956D02*Y465500D01*\r
+X62706Y466250D01*\r
+X64206D01*\r
+X64956Y465500D01*\r
+Y463250D01*\r
+X64206Y462500D02*X64956Y463250D01*\r
+X62706Y462500D02*X64206D01*\r
+X61956Y463250D02*X62706Y462500D01*\r
+X45000Y459249D02*X66757D01*\r
+X64800Y98100D02*Y91700D01*\r
+X61600Y94900D02*X68000D01*\r
+X63200Y96500D02*X66400D01*\r
+X63200D02*Y93300D01*\r
+X66400D01*\r
+Y96500D02*Y93300D01*\r
+X64800Y70500D02*Y64100D01*\r
+X61600Y67300D02*X68000D01*\r
+X63200Y68900D02*X66400D01*\r
+X63200D02*Y65700D01*\r
+X66400D01*\r
+Y68900D02*Y65700D01*\r
+X15000Y484450D02*Y478050D01*\r
+X11800Y481250D02*X18200D01*\r
+X13400Y482850D02*X16600D01*\r
+X13400D02*Y479650D01*\r
+X16600D01*\r
+Y482850D02*Y479650D01*\r
+X135000Y483500D02*Y482750D01*\r
+X136500Y481250D01*\r
+X138000Y482750D01*\r
+Y483500D02*Y482750D01*\r
+X136500Y481250D02*Y477500D01*\r
+X139801Y480500D02*X142051D01*\r
+X139801Y477500D02*X142801D01*\r
+X139801Y483500D02*Y477500D01*\r
+Y483500D02*X142801D01*\r
+X147603D02*X148353Y482750D01*\r
+X145353Y483500D02*X147603D01*\r
+X144603Y482750D02*X145353Y483500D01*\r
+X144603Y482750D02*Y481250D01*\r
+X145353Y480500D01*\r
+X147603D01*\r
+X148353Y479750D01*\r
+Y478250D01*\r
+X147603Y477500D02*X148353Y478250D01*\r
+X145353Y477500D02*X147603D01*\r
+X144603Y478250D02*X145353Y477500D01*\r
+X135000Y474249D02*X150154D01*\r
+X98000Y482750D02*X98750Y483500D01*\r
+X101000D01*\r
+X101750Y482750D01*\r
+Y481250D01*\r
+X98000Y477500D02*X101750Y481250D01*\r
+X98000Y477500D02*X101750D01*\r
+X98000Y474249D02*X103551D01*\r
+X45000Y478250D02*X45750Y477500D01*\r
+X45000Y482750D02*Y478250D01*\r
+Y482750D02*X45750Y483500D01*\r
+X47250D01*\r
+X48000Y482750D01*\r
+Y478250D01*\r
+X47250Y477500D02*X48000Y478250D01*\r
+X45750Y477500D02*X47250D01*\r
+X45000Y479000D02*X48000Y482000D01*\r
+X49801Y477500D02*X50551D01*\r
+X52353Y478250D02*X53103Y477500D01*\r
+X52353Y482750D02*Y478250D01*\r
+Y482750D02*X53103Y483500D01*\r
+X54603D01*\r
+X55353Y482750D01*\r
+Y478250D01*\r
+X54603Y477500D02*X55353Y478250D01*\r
+X53103Y477500D02*X54603D01*\r
+X52353Y479000D02*X55353Y482000D01*\r
+X57154Y483500D02*X60154D01*\r
+X57154D02*Y480500D01*\r
+X57904Y481250D01*\r
+X59404D01*\r
+X60154Y480500D01*\r
+Y478250D01*\r
+X59404Y477500D02*X60154Y478250D01*\r
+X57904Y477500D02*X59404D01*\r
+X57154Y478250D02*X57904Y477500D01*\r
+X61956Y482750D02*X62706Y483500D01*\r
+X64956D01*\r
+X65706Y482750D01*\r
+Y481250D01*\r
+X61956Y477500D02*X65706Y481250D01*\r
+X61956Y477500D02*X65706D01*\r
+X45000Y474249D02*X67507D01*\r
+X62500Y155000D02*Y151800D01*\r
+Y155000D02*X65273Y156600D01*\r
+X62500Y155000D02*X59727Y156600D01*\r
+X60900Y155000D02*G75*G03X64100Y155000I1600J0D01*G01*\r
+G75*G03X60900Y155000I-1600J0D01*G01*\r
+X62500Y165000D02*Y161800D01*\r
+Y165000D02*X65273Y166600D01*\r
+X62500Y165000D02*X59727Y166600D01*\r
+X60900Y165000D02*G75*G03X64100Y165000I1600J0D01*G01*\r
+G75*G03X60900Y165000I-1600J0D01*G01*\r
+X62500Y117500D02*Y114300D01*\r
+Y117500D02*X65273Y119100D01*\r
+X62500Y117500D02*X59727Y119100D01*\r
+X60900Y117500D02*G75*G03X64100Y117500I1600J0D01*G01*\r
+G75*G03X60900Y117500I-1600J0D01*G01*\r
+X62500Y127500D02*Y124300D01*\r
+Y127500D02*X65273Y129100D01*\r
+X62500Y127500D02*X59727Y129100D01*\r
+X60900Y127500D02*G75*G03X64100Y127500I1600J0D01*G01*\r
+G75*G03X60900Y127500I-1600J0D01*G01*\r
+X62500Y192500D02*Y189300D01*\r
+Y192500D02*X65273Y194100D01*\r
+X62500Y192500D02*X59727Y194100D01*\r
+X60900Y192500D02*G75*G03X64100Y192500I1600J0D01*G01*\r
+G75*G03X60900Y192500I-1600J0D01*G01*\r
+X62500Y202500D02*Y199300D01*\r
+Y202500D02*X65273Y204100D01*\r
+X62500Y202500D02*X59727Y204100D01*\r
+X60900Y202500D02*G75*G03X64100Y202500I1600J0D01*G01*\r
+G75*G03X60900Y202500I-1600J0D01*G01*\r
+X15000Y496250D02*Y493050D01*\r
+Y496250D02*X17773Y497850D01*\r
+X15000Y496250D02*X12227Y497850D01*\r
+X13400Y496250D02*G75*G03X16600Y496250I1600J0D01*G01*\r
+G75*G03X13400Y496250I-1600J0D01*G01*\r
+X135000Y498500D02*Y497750D01*\r
+X136500Y496250D01*\r
+X138000Y497750D01*\r
+Y498500D02*Y497750D01*\r
+X136500Y496250D02*Y492500D01*\r
+X139801Y495500D02*X142051D01*\r
+X139801Y492500D02*X142801D01*\r
+X139801Y498500D02*Y492500D01*\r
+Y498500D02*X142801D01*\r
+X147603D02*X148353Y497750D01*\r
+X145353Y498500D02*X147603D01*\r
+X144603Y497750D02*X145353Y498500D01*\r
+X144603Y497750D02*Y496250D01*\r
+X145353Y495500D01*\r
+X147603D01*\r
+X148353Y494750D01*\r
+Y493250D01*\r
+X147603Y492500D02*X148353Y493250D01*\r
+X145353Y492500D02*X147603D01*\r
+X144603Y493250D02*X145353Y492500D01*\r
+X135000Y489249D02*X150154D01*\r
+X100250Y498500D02*X101000Y497750D01*\r
+X98750Y498500D02*X100250D01*\r
+X98000Y497750D02*X98750Y498500D01*\r
+X98000Y497750D02*Y493250D01*\r
+X98750Y492500D01*\r
+X100250Y495500D02*X101000Y494750D01*\r
+X98000Y495500D02*X100250D01*\r
+X98750Y492500D02*X100250D01*\r
+X101000Y493250D01*\r
+Y494750D02*Y493250D01*\r
+X98000Y489249D02*X102801D01*\r
+X45000Y493250D02*X45750Y492500D01*\r
+X45000Y497750D02*Y493250D01*\r
+Y497750D02*X45750Y498500D01*\r
+X47250D01*\r
+X48000Y497750D01*\r
+Y493250D01*\r
+X47250Y492500D02*X48000Y493250D01*\r
+X45750Y492500D02*X47250D01*\r
+X45000Y494000D02*X48000Y497000D01*\r
+X49801Y492500D02*X50551D01*\r
+X52353Y493250D02*X53103Y492500D01*\r
+X52353Y497750D02*Y493250D01*\r
+Y497750D02*X53103Y498500D01*\r
+X54603D01*\r
+X55353Y497750D01*\r
+Y493250D01*\r
+X54603Y492500D02*X55353Y493250D01*\r
+X53103Y492500D02*X54603D01*\r
+X52353Y494000D02*X55353Y497000D01*\r
+X57154Y495500D02*X60154Y498500D01*\r
+X57154Y495500D02*X60904D01*\r
+X60154Y498500D02*Y492500D01*\r
+X62706Y497750D02*X63456Y498500D01*\r
+X64956D01*\r
+X65706Y497750D01*\r
+Y493250D01*\r
+X64956Y492500D02*X65706Y493250D01*\r
+X63456Y492500D02*X64956D01*\r
+X62706Y493250D02*X63456Y492500D01*\r
+Y495500D02*X65706D01*\r
+X45000Y489249D02*X67507D01*\r
+X348400Y201600D02*X351600D01*\r
+X348400D02*Y198400D01*\r
+X351600D01*\r
+Y201600D02*Y198400D01*\r
+X338400Y201600D02*X341600D01*\r
+X338400D02*Y198400D01*\r
+X341600D01*\r
+Y201600D02*Y198400D01*\r
+X328400Y201600D02*X331600D01*\r
+X328400D02*Y198400D01*\r
+X331600D01*\r
+Y201600D02*Y198400D01*\r
+X475900Y126600D02*X479100D01*\r
+X475900D02*Y123400D01*\r
+X479100D01*\r
+Y126600D02*Y123400D01*\r
+X465900Y126600D02*X469100D01*\r
+X465900D02*Y123400D01*\r
+X469100D01*\r
+Y126600D02*Y123400D01*\r
+X455900Y126600D02*X459100D01*\r
+X455900D02*Y123400D01*\r
+X459100D01*\r
+Y126600D02*Y123400D01*\r
+X475900Y201600D02*X479100D01*\r
+X475900D02*Y198400D01*\r
+X479100D01*\r
+Y201600D02*Y198400D01*\r
+X465900Y201600D02*X469100D01*\r
+X465900D02*Y198400D01*\r
+X469100D01*\r
+Y201600D02*Y198400D01*\r
+X455900Y201600D02*X459100D01*\r
+X455900D02*Y198400D01*\r
+X459100D01*\r
+Y201600D02*Y198400D01*\r
+X53400Y91600D02*X56600D01*\r
+X53400D02*Y88400D01*\r
+X56600D01*\r
+Y91600D02*Y88400D01*\r
+X53400Y73900D02*X56600D01*\r
+X53400D02*Y70700D01*\r
+X56600D01*\r
+Y73900D02*Y70700D01*\r
+X348400Y51600D02*X351600D01*\r
+X348400D02*Y48400D01*\r
+X351600D01*\r
+Y51600D02*Y48400D01*\r
+X338400Y51600D02*X341600D01*\r
+X338400D02*Y48400D01*\r
+X341600D01*\r
+Y51600D02*Y48400D01*\r
+X328400Y51600D02*X331600D01*\r
+X328400D02*Y48400D01*\r
+X331600D01*\r
+Y51600D02*Y48400D01*\r
+X475900Y51600D02*X479100D01*\r
+X475900D02*Y48400D01*\r
+X479100D01*\r
+Y51600D02*Y48400D01*\r
+X465900Y51600D02*X469100D01*\r
+X465900D02*Y48400D01*\r
+X469100D01*\r
+Y51600D02*Y48400D01*\r
+X455900Y51600D02*X459100D01*\r
+X455900D02*Y48400D01*\r
+X459100D01*\r
+Y51600D02*Y48400D01*\r
+X348400Y126600D02*X351600D01*\r
+X348400D02*Y123400D01*\r
+X351600D01*\r
+Y126600D02*Y123400D01*\r
+X338400Y126600D02*X341600D01*\r
+X338400D02*Y123400D01*\r
+X341600D01*\r
+Y126600D02*Y123400D01*\r
+X328400Y126600D02*X331600D01*\r
+X328400D02*Y123400D01*\r
+X331600D01*\r
+Y126600D02*Y123400D01*\r
+X13400Y512850D02*X16600D01*\r
+X13400D02*Y509650D01*\r
+X16600D01*\r
+Y512850D02*Y509650D01*\r
+X135000Y513500D02*Y512750D01*\r
+X136500Y511250D01*\r
+X138000Y512750D01*\r
+Y513500D02*Y512750D01*\r
+X136500Y511250D02*Y507500D01*\r
+X139801Y510500D02*X142051D01*\r
+X139801Y507500D02*X142801D01*\r
+X139801Y513500D02*Y507500D01*\r
+Y513500D02*X142801D01*\r
+X147603D02*X148353Y512750D01*\r
+X145353Y513500D02*X147603D01*\r
+X144603Y512750D02*X145353Y513500D01*\r
+X144603Y512750D02*Y511250D01*\r
+X145353Y510500D01*\r
+X147603D01*\r
+X148353Y509750D01*\r
+Y508250D01*\r
+X147603Y507500D02*X148353Y508250D01*\r
+X145353Y507500D02*X147603D01*\r
+X144603Y508250D02*X145353Y507500D01*\r
+X135000Y504249D02*X150154D01*\r
+X98000Y512750D02*X98750Y513500D01*\r
+X101000D01*\r
+X101750Y512750D01*\r
+Y511250D01*\r
+X98000Y507500D02*X101750Y511250D01*\r
+X98000Y507500D02*X101750D01*\r
+X103551Y508250D02*X104301Y507500D01*\r
+X103551Y512750D02*Y508250D01*\r
+Y512750D02*X104301Y513500D01*\r
+X105801D01*\r
+X106551Y512750D01*\r
+Y508250D01*\r
+X105801Y507500D02*X106551Y508250D01*\r
+X104301Y507500D02*X105801D01*\r
+X103551Y509000D02*X106551Y512000D01*\r
+X98000Y504249D02*X108353D01*\r
+X45000Y508250D02*X45750Y507500D01*\r
+X45000Y512750D02*Y508250D01*\r
+Y512750D02*X45750Y513500D01*\r
+X47250D01*\r
+X48000Y512750D01*\r
+Y508250D01*\r
+X47250Y507500D02*X48000Y508250D01*\r
+X45750Y507500D02*X47250D01*\r
+X45000Y509000D02*X48000Y512000D01*\r
+X49801Y507500D02*X50551D01*\r
+X52353Y508250D02*X53103Y507500D01*\r
+X52353Y512750D02*Y508250D01*\r
+Y512750D02*X53103Y513500D01*\r
+X54603D01*\r
+X55353Y512750D01*\r
+Y508250D01*\r
+X54603Y507500D02*X55353Y508250D01*\r
+X53103Y507500D02*X54603D01*\r
+X52353Y509000D02*X55353Y512000D01*\r
+X57154Y510500D02*X60154Y513500D01*\r
+X57154Y510500D02*X60904D01*\r
+X60154Y513500D02*Y507500D01*\r
+X62706Y512750D02*X63456Y513500D01*\r
+X65706D01*\r
+X66456Y512750D01*\r
+Y511250D01*\r
+X62706Y507500D02*X66456Y511250D01*\r
+X62706Y507500D02*X66456D01*\r
+X45000Y504249D02*X68257D01*\r
+X241700Y135000D02*G75*G03X243300Y135000I800J0D01*G01*\r
+G75*G03X241700Y135000I-800J0D01*G01*\r
+X251700D02*G75*G03X253300Y135000I800J0D01*G01*\r
+G75*G03X251700Y135000I-800J0D01*G01*\r
+X241700Y110000D02*G75*G03X243300Y110000I800J0D01*G01*\r
+G75*G03X241700Y110000I-800J0D01*G01*\r
+X251700D02*G75*G03X253300Y110000I800J0D01*G01*\r
+G75*G03X251700Y110000I-800J0D01*G01*\r
+X216700D02*G75*G03X218300Y110000I800J0D01*G01*\r
+G75*G03X216700Y110000I-800J0D01*G01*\r
+X176700D02*G75*G03X178300Y110000I800J0D01*G01*\r
+G75*G03X176700Y110000I-800J0D01*G01*\r
+Y195000D02*G75*G03X178300Y195000I800J0D01*G01*\r
+G75*G03X176700Y195000I-800J0D01*G01*\r
+X216700D02*G75*G03X218300Y195000I800J0D01*G01*\r
+G75*G03X216700Y195000I-800J0D01*G01*\r
+X176700Y155000D02*G75*G03X178300Y155000I800J0D01*G01*\r
+G75*G03X176700Y155000I-800J0D01*G01*\r
+X216700D02*G75*G03X218300Y155000I800J0D01*G01*\r
+G75*G03X216700Y155000I-800J0D01*G01*\r
+X231700D02*G75*G03X233300Y155000I800J0D01*G01*\r
+G75*G03X231700Y155000I-800J0D01*G01*\r
+X271700D02*G75*G03X273300Y155000I800J0D01*G01*\r
+G75*G03X271700Y155000I-800J0D01*G01*\r
+X344200Y370000D02*G75*G03X345800Y370000I800J0D01*G01*\r
+G75*G03X344200Y370000I-800J0D01*G01*\r
+Y330000D02*G75*G03X345800Y330000I800J0D01*G01*\r
+G75*G03X344200Y330000I-800J0D01*G01*\r
+X79200Y307500D02*G75*G03X80800Y307500I800J0D01*G01*\r
+G75*G03X79200Y307500I-800J0D01*G01*\r
+Y296600D02*G75*G03X80800Y296600I800J0D01*G01*\r
+G75*G03X79200Y296600I-800J0D01*G01*\r
+Y285700D02*G75*G03X80800Y285700I800J0D01*G01*\r
+G75*G03X79200Y285700I-800J0D01*G01*\r
+Y274800D02*G75*G03X80800Y274800I800J0D01*G01*\r
+G75*G03X79200Y274800I-800J0D01*G01*\r
+Y263900D02*G75*G03X80800Y263900I800J0D01*G01*\r
+G75*G03X79200Y263900I-800J0D01*G01*\r
+X69200Y302100D02*G75*G03X70800Y302100I800J0D01*G01*\r
+G75*G03X69200Y302100I-800J0D01*G01*\r
+Y291200D02*G75*G03X70800Y291200I800J0D01*G01*\r
+G75*G03X69200Y291200I-800J0D01*G01*\r
+Y280300D02*G75*G03X70800Y280300I800J0D01*G01*\r
+G75*G03X69200Y280300I-800J0D01*G01*\r
+Y269400D02*G75*G03X70800Y269400I800J0D01*G01*\r
+G75*G03X69200Y269400I-800J0D01*G01*\r
+X309200Y335000D02*G75*G03X310800Y335000I800J0D01*G01*\r
+G75*G03X309200Y335000I-800J0D01*G01*\r
+X319200D02*G75*G03X320800Y335000I800J0D01*G01*\r
+G75*G03X319200Y335000I-800J0D01*G01*\r
+X561700Y330000D02*G75*G03X563300Y330000I800J0D01*G01*\r
+G75*G03X561700Y330000I-800J0D01*G01*\r
+Y370000D02*G75*G03X563300Y370000I800J0D01*G01*\r
+G75*G03X561700Y370000I-800J0D01*G01*\r
+X231700Y195000D02*G75*G03X233300Y195000I800J0D01*G01*\r
+G75*G03X231700Y195000I-800J0D01*G01*\r
+X271700D02*G75*G03X273300Y195000I800J0D01*G01*\r
+G75*G03X271700Y195000I-800J0D01*G01*\r
+X531700Y370000D02*G75*G03X533300Y370000I800J0D01*G01*\r
+G75*G03X531700Y370000I-800J0D01*G01*\r
+Y330000D02*G75*G03X533300Y330000I800J0D01*G01*\r
+G75*G03X531700Y330000I-800J0D01*G01*\r
+X441700Y315000D02*G75*G03X443300Y315000I800J0D01*G01*\r
+G75*G03X441700Y315000I-800J0D01*G01*\r
+Y275000D02*G75*G03X443300Y275000I800J0D01*G01*\r
+G75*G03X441700Y275000I-800J0D01*G01*\r
+X191700Y335000D02*G75*G03X193300Y335000I800J0D01*G01*\r
+G75*G03X191700Y335000I-800J0D01*G01*\r
+X201700D02*G75*G03X203300Y335000I800J0D01*G01*\r
+G75*G03X201700Y335000I-800J0D01*G01*\r
+X319200Y260000D02*G75*G03X320800Y260000I800J0D01*G01*\r
+G75*G03X319200Y260000I-800J0D01*G01*\r
+X309200D02*G75*G03X310800Y260000I800J0D01*G01*\r
+G75*G03X309200Y260000I-800J0D01*G01*\r
+X441700Y330000D02*G75*G03X443300Y330000I800J0D01*G01*\r
+G75*G03X441700Y330000I-800J0D01*G01*\r
+Y370000D02*G75*G03X443300Y370000I800J0D01*G01*\r
+G75*G03X441700Y370000I-800J0D01*G01*\r
+X241700Y235000D02*G75*G03X243300Y235000I800J0D01*G01*\r
+G75*G03X241700Y235000I-800J0D01*G01*\r
+X251700D02*G75*G03X253300Y235000I800J0D01*G01*\r
+G75*G03X251700Y235000I-800J0D01*G01*\r
+X546700Y330000D02*G75*G03X548300Y330000I800J0D01*G01*\r
+G75*G03X546700Y330000I-800J0D01*G01*\r
+Y370000D02*G75*G03X548300Y370000I800J0D01*G01*\r
+G75*G03X546700Y370000I-800J0D01*G01*\r
+X459200Y260000D02*G75*G03X460800Y260000I800J0D01*G01*\r
+G75*G03X459200Y260000I-800J0D01*G01*\r
+X499200D02*G75*G03X500800Y260000I800J0D01*G01*\r
+G75*G03X499200Y260000I-800J0D01*G01*\r
+X439200D02*G75*G03X440800Y260000I800J0D01*G01*\r
+G75*G03X439200Y260000I-800J0D01*G01*\r
+X399200D02*G75*G03X400800Y260000I800J0D01*G01*\r
+G75*G03X399200Y260000I-800J0D01*G01*\r
+X424200Y330000D02*G75*G03X425800Y330000I800J0D01*G01*\r
+G75*G03X424200Y330000I-800J0D01*G01*\r
+Y370000D02*G75*G03X425800Y370000I800J0D01*G01*\r
+G75*G03X424200Y370000I-800J0D01*G01*\r
+X614200Y60000D02*G75*G03X615800Y60000I800J0D01*G01*\r
+G75*G03X614200Y60000I-800J0D01*G01*\r
+Y70000D02*G75*G03X615800Y70000I800J0D01*G01*\r
+G75*G03X614200Y70000I-800J0D01*G01*\r
+X341700Y260000D02*G75*G03X343300Y260000I800J0D01*G01*\r
+G75*G03X341700Y260000I-800J0D01*G01*\r
+X381700D02*G75*G03X383300Y260000I800J0D01*G01*\r
+G75*G03X381700Y260000I-800J0D01*G01*\r
+X556700D02*G75*G03X558300Y260000I800J0D01*G01*\r
+G75*G03X556700Y260000I-800J0D01*G01*\r
+X516700D02*G75*G03X518300Y260000I800J0D01*G01*\r
+G75*G03X516700Y260000I-800J0D01*G01*\r
+X614200D02*G75*G03X615800Y260000I800J0D01*G01*\r
+G75*G03X614200Y260000I-800J0D01*G01*\r
+X574200D02*G75*G03X575800Y260000I800J0D01*G01*\r
+G75*G03X574200Y260000I-800J0D01*G01*\r
+X314200Y365000D02*G75*G03X315800Y365000I800J0D01*G01*\r
+G75*G03X314200Y365000I-800J0D01*G01*\r
+Y355000D02*G75*G03X315800Y355000I800J0D01*G01*\r
+G75*G03X314200Y355000I-800J0D01*G01*\r
+X459200Y370000D02*G75*G03X460800Y370000I800J0D01*G01*\r
+G75*G03X459200Y370000I-800J0D01*G01*\r
+Y330000D02*G75*G03X460800Y330000I800J0D01*G01*\r
+G75*G03X459200Y330000I-800J0D01*G01*\r
+X614200Y40000D02*G75*G03X615800Y40000I800J0D01*G01*\r
+G75*G03X614200Y40000I-800J0D01*G01*\r
+Y30000D02*G75*G03X615800Y30000I800J0D01*G01*\r
+G75*G03X614200Y30000I-800J0D01*G01*\r
+X289200Y360000D02*G75*G03X290800Y360000I800J0D01*G01*\r
+G75*G03X289200Y360000I-800J0D01*G01*\r
+X279200D02*G75*G03X280800Y360000I800J0D01*G01*\r
+G75*G03X279200Y360000I-800J0D01*G01*\r
+X241700Y260000D02*G75*G03X243300Y260000I800J0D01*G01*\r
+G75*G03X241700Y260000I-800J0D01*G01*\r
+X251700D02*G75*G03X253300Y260000I800J0D01*G01*\r
+G75*G03X251700Y260000I-800J0D01*G01*\r
+X286700D02*G75*G03X288300Y260000I800J0D01*G01*\r
+G75*G03X286700Y260000I-800J0D01*G01*\r
+X276700D02*G75*G03X278300Y260000I800J0D01*G01*\r
+G75*G03X276700Y260000I-800J0D01*G01*\r
+X216700Y235000D02*G75*G03X218300Y235000I800J0D01*G01*\r
+G75*G03X216700Y235000I-800J0D01*G01*\r
+X176700D02*G75*G03X178300Y235000I800J0D01*G01*\r
+G75*G03X176700Y235000I-800J0D01*G01*\r
+X424200Y315000D02*G75*G03X425800Y315000I800J0D01*G01*\r
+G75*G03X424200Y315000I-800J0D01*G01*\r
+Y275000D02*G75*G03X425800Y275000I800J0D01*G01*\r
+G75*G03X424200Y275000I-800J0D01*G01*\r
+X279200Y335000D02*G75*G03X280800Y335000I800J0D01*G01*\r
+G75*G03X279200Y335000I-800J0D01*G01*\r
+X289200D02*G75*G03X290800Y335000I800J0D01*G01*\r
+G75*G03X289200Y335000I-800J0D01*G01*\r
+X496700Y40000D02*G75*G03X498300Y40000I800J0D01*G01*\r
+G75*G03X496700Y40000I-800J0D01*G01*\r
+X279200Y322500D02*G75*G03X280800Y322500I800J0D01*G01*\r
+G75*G03X279200Y322500I-800J0D01*G01*\r
+X241700Y245000D02*G75*G03X243300Y245000I800J0D01*G01*\r
+G75*G03X241700Y245000I-800J0D01*G01*\r
+X431700Y60000D02*G75*G03X433300Y60000I800J0D01*G01*\r
+G75*G03X431700Y60000I-800J0D01*G01*\r
+X239200Y80000D02*G75*G03X240800Y80000I800J0D01*G01*\r
+G75*G03X239200Y80000I-800J0D01*G01*\r
+X176700Y125000D02*G75*G03X178300Y125000I800J0D01*G01*\r
+G75*G03X176700Y125000I-800J0D01*G01*\r
+X371700Y40000D02*G75*G03X373300Y40000I800J0D01*G01*\r
+G75*G03X371700Y40000I-800J0D01*G01*\r
+X399200Y85000D02*G75*G03X400800Y85000I800J0D01*G01*\r
+G75*G03X399200Y85000I-800J0D01*G01*\r
+X151700Y347500D02*G75*G03X153300Y347500I800J0D01*G01*\r
+G75*G03X151700Y347500I-800J0D01*G01*\r
+X496700Y142500D02*G75*G03X498300Y142500I800J0D01*G01*\r
+G75*G03X496700Y142500I-800J0D01*G01*\r
+X194200Y30000D02*G75*G03X195800Y30000I800J0D01*G01*\r
+G75*G03X194200Y30000I-800J0D01*G01*\r
+X216700Y187500D02*G75*G03X218300Y187500I800J0D01*G01*\r
+G75*G03X216700Y187500I-800J0D01*G01*\r
+X186700Y235000D02*G75*G03X188300Y235000I800J0D01*G01*\r
+G75*G03X186700Y235000I-800J0D01*G01*\r
+X471700Y322500D02*G75*G03X473300Y322500I800J0D01*G01*\r
+G75*G03X471700Y322500I-800J0D01*G01*\r
+X601700Y252500D02*G75*G03X603300Y252500I800J0D01*G01*\r
+G75*G03X601700Y252500I-800J0D01*G01*\r
+X399200Y245000D02*G75*G03X400800Y245000I800J0D01*G01*\r
+G75*G03X399200Y245000I-800J0D01*G01*\r
+X261700Y302500D02*G75*G03X263300Y302500I800J0D01*G01*\r
+G75*G03X261700Y302500I-800J0D01*G01*\r
+X159200Y335000D02*G75*G03X160800Y335000I800J0D01*G01*\r
+G75*G03X159200Y335000I-800J0D01*G01*\r
+X224200Y117500D02*G75*G03X225800Y117500I800J0D01*G01*\r
+G75*G03X224200Y117500I-800J0D01*G01*\r
+X519200Y340000D02*G75*G03X520800Y340000I800J0D01*G01*\r
+G75*G03X519200Y340000I-800J0D01*G01*\r
+X384200Y245000D02*G75*G03X385800Y245000I800J0D01*G01*\r
+G75*G03X384200Y245000I-800J0D01*G01*\r
+X186700Y302500D02*G75*G03X188300Y302500I800J0D01*G01*\r
+G75*G03X186700Y302500I-800J0D01*G01*\r
+X224200Y97500D02*G75*G03X225800Y97500I800J0D01*G01*\r
+G75*G03X224200Y97500I-800J0D01*G01*\r
+X431700Y227500D02*G75*G03X433300Y227500I800J0D01*G01*\r
+G75*G03X431700Y227500I-800J0D01*G01*\r
+X251700Y125000D02*G75*G03X253300Y125000I800J0D01*G01*\r
+G75*G03X251700Y125000I-800J0D01*G01*\r
+X241700D02*G75*G03X243300Y125000I800J0D01*G01*\r
+G75*G03X241700Y125000I-800J0D01*G01*\r
+X544200Y62500D02*G75*G03X545800Y62500I800J0D01*G01*\r
+G75*G03X544200Y62500I-800J0D01*G01*\r
+X301700Y322500D02*G75*G03X303300Y322500I800J0D01*G01*\r
+G75*G03X301700Y322500I-800J0D01*G01*\r
+X294200Y350000D02*G75*G03X295800Y350000I800J0D01*G01*\r
+G75*G03X294200Y350000I-800J0D01*G01*\r
+X176700Y245000D02*G75*G03X178300Y245000I800J0D01*G01*\r
+G75*G03X176700Y245000I-800J0D01*G01*\r
+X189200Y135000D02*G75*G03X190800Y135000I800J0D01*G01*\r
+G75*G03X189200Y135000I-800J0D01*G01*\r
+X251700Y97500D02*G75*G03X253300Y97500I800J0D01*G01*\r
+G75*G03X251700Y97500I-800J0D01*G01*\r
+X614200Y302500D02*G75*G03X615800Y302500I800J0D01*G01*\r
+G75*G03X614200Y302500I-800J0D01*G01*\r
+X384200Y70000D02*G75*G03X385800Y70000I800J0D01*G01*\r
+G75*G03X384200Y70000I-800J0D01*G01*\r
+X471700Y245000D02*G75*G03X473300Y245000I800J0D01*G01*\r
+G75*G03X471700Y245000I-800J0D01*G01*\r
+X261700Y207500D02*G75*G03X263300Y207500I800J0D01*G01*\r
+G75*G03X261700Y207500I-800J0D01*G01*\r
+Y235000D02*G75*G03X263300Y235000I800J0D01*G01*\r
+G75*G03X261700Y235000I-800J0D01*G01*\r
+X151700Y227500D02*G75*G03X153300Y227500I800J0D01*G01*\r
+G75*G03X151700Y227500I-800J0D01*G01*\r
+X604200Y60000D02*G75*G03X605800Y60000I800J0D01*G01*\r
+G75*G03X604200Y60000I-800J0D01*G01*\r
+X206700Y155000D02*G75*G03X208300Y155000I800J0D01*G01*\r
+G75*G03X206700Y155000I-800J0D01*G01*\r
+X516700Y245000D02*G75*G03X518300Y245000I800J0D01*G01*\r
+G75*G03X516700Y245000I-800J0D01*G01*\r
+X159200D02*G75*G03X160800Y245000I800J0D01*G01*\r
+G75*G03X159200Y245000I-800J0D01*G01*\r
+X551700Y70000D02*G75*G03X553300Y70000I800J0D01*G01*\r
+G75*G03X551700Y70000I-800J0D01*G01*\r
+X391700Y77500D02*G75*G03X393300Y77500I800J0D01*G01*\r
+G75*G03X391700Y77500I-800J0D01*G01*\r
+X386700Y267500D02*G75*G03X388300Y267500I800J0D01*G01*\r
+G75*G03X386700Y267500I-800J0D01*G01*\r
+X269200Y287500D02*G75*G03X270800Y287500I800J0D01*G01*\r
+G75*G03X269200Y287500I-800J0D01*G01*\r
+X359200Y267500D02*G75*G03X360800Y267500I800J0D01*G01*\r
+G75*G03X359200Y267500I-800J0D01*G01*\r
+X409200Y340000D02*G75*G03X410800Y340000I800J0D01*G01*\r
+G75*G03X409200Y340000I-800J0D01*G01*\r
+X269200Y380000D02*G75*G03X270800Y380000I800J0D01*G01*\r
+G75*G03X269200Y380000I-800J0D01*G01*\r
+X359200D02*G75*G03X360800Y380000I800J0D01*G01*\r
+G75*G03X359200Y380000I-800J0D01*G01*\r
+X189200Y97500D02*G75*G03X190800Y97500I800J0D01*G01*\r
+G75*G03X189200Y97500I-800J0D01*G01*\r
+X269200Y260000D02*G75*G03X270800Y260000I800J0D01*G01*\r
+G75*G03X269200Y260000I-800J0D01*G01*\r
+X326700Y380000D02*G75*G03X328300Y380000I800J0D01*G01*\r
+G75*G03X326700Y380000I-800J0D01*G01*\r
+X159200Y285000D02*G75*G03X160800Y285000I800J0D01*G01*\r
+G75*G03X159200Y285000I-800J0D01*G01*\r
+X14200Y526250D02*G75*G03X15800Y526250I800J0D01*G01*\r
+G75*G03X14200Y526250I-800J0D01*G01*\r
+X135000Y528500D02*Y527750D01*\r
+X136500Y526250D01*\r
+X138000Y527750D01*\r
+Y528500D02*Y527750D01*\r
+X136500Y526250D02*Y522500D01*\r
+X139801Y525500D02*X142051D01*\r
+X139801Y522500D02*X142801D01*\r
+X139801Y528500D02*Y522500D01*\r
+Y528500D02*X142801D01*\r
+X147603D02*X148353Y527750D01*\r
+X145353Y528500D02*X147603D01*\r
+X144603Y527750D02*X145353Y528500D01*\r
+X144603Y527750D02*Y526250D01*\r
+X145353Y525500D01*\r
+X147603D01*\r
+X148353Y524750D01*\r
+Y523250D01*\r
+X147603Y522500D02*X148353Y523250D01*\r
+X145353Y522500D02*X147603D01*\r
+X144603Y523250D02*X145353Y522500D01*\r
+X135000Y519249D02*X150154D01*\r
+X98750Y522500D02*X100250D01*\r
+X99500Y528500D02*Y522500D01*\r
+X98000Y527000D02*X99500Y528500D01*\r
+X102051Y527750D02*X102801Y528500D01*\r
+X105051D01*\r
+X105801Y527750D01*\r
+Y526250D01*\r
+X102051Y522500D02*X105801Y526250D01*\r
+X102051Y522500D02*X105801D01*\r
+X107603D02*X110603Y525500D01*\r
+Y527750D02*Y525500D01*\r
+X109853Y528500D02*X110603Y527750D01*\r
+X108353Y528500D02*X109853D01*\r
+X107603Y527750D02*X108353Y528500D01*\r
+X107603Y527750D02*Y526250D01*\r
+X108353Y525500D01*\r
+X110603D01*\r
+X98000Y519249D02*X112404D01*\r
+X45000Y523250D02*X45750Y522500D01*\r
+X45000Y527750D02*Y523250D01*\r
+Y527750D02*X45750Y528500D01*\r
+X47250D01*\r
+X48000Y527750D01*\r
+Y523250D01*\r
+X47250Y522500D02*X48000Y523250D01*\r
+X45750Y522500D02*X47250D01*\r
+X45000Y524000D02*X48000Y527000D01*\r
+X49801Y522500D02*X50551D01*\r
+X52353Y523250D02*X53103Y522500D01*\r
+X52353Y527750D02*Y523250D01*\r
+Y527750D02*X53103Y528500D01*\r
+X54603D01*\r
+X55353Y527750D01*\r
+Y523250D01*\r
+X54603Y522500D02*X55353Y523250D01*\r
+X53103Y522500D02*X54603D01*\r
+X52353Y524000D02*X55353Y527000D01*\r
+X57154Y527750D02*X57904Y528500D01*\r
+X59404D01*\r
+X60154Y527750D01*\r
+Y523250D01*\r
+X59404Y522500D02*X60154Y523250D01*\r
+X57904Y522500D02*X59404D01*\r
+X57154Y523250D02*X57904Y522500D01*\r
+Y525500D02*X60154D01*\r
+X61956Y528500D02*X64956D01*\r
+X61956D02*Y525500D01*\r
+X62706Y526250D01*\r
+X64206D01*\r
+X64956Y525500D01*\r
+Y523250D01*\r
+X64206Y522500D02*X64956Y523250D01*\r
+X62706Y522500D02*X64206D01*\r
+X61956Y523250D02*X62706Y522500D01*\r
+X45000Y519249D02*X66757D01*\r
+X651300Y363700D02*X653700Y361300D01*\r
+X651300D02*X653700Y363700D01*\r
+X651300Y353700D02*X653700Y351300D01*\r
+X651300D02*X653700Y353700D01*\r
+X651300Y343700D02*X653700Y341300D01*\r
+X651300D02*X653700Y343700D01*\r
+X651300Y333700D02*X653700Y331300D01*\r
+X651300D02*X653700Y333700D01*\r
+X651300Y323700D02*X653700Y321300D01*\r
+X651300D02*X653700Y323700D01*\r
+X651300Y313700D02*X653700Y311300D01*\r
+X651300D02*X653700Y313700D01*\r
+X651300Y303700D02*X653700Y301300D01*\r
+X651300D02*X653700Y303700D01*\r
+X651300Y293700D02*X653700Y291300D01*\r
+X651300D02*X653700Y293700D01*\r
+X651300Y283700D02*X653700Y281300D01*\r
+X651300D02*X653700Y283700D01*\r
+X651300Y273700D02*X653700Y271300D01*\r
+X651300D02*X653700Y273700D01*\r
+X651300Y263700D02*X653700Y261300D01*\r
+X651300D02*X653700Y263700D01*\r
+X651300Y253700D02*X653700Y251300D01*\r
+X651300D02*X653700Y253700D01*\r
+X651300Y243700D02*X653700Y241300D01*\r
+X651300D02*X653700Y243700D01*\r
+X651300Y233700D02*X653700Y231300D01*\r
+X651300D02*X653700Y233700D01*\r
+X651300Y223700D02*X653700Y221300D01*\r
+X651300D02*X653700Y223700D01*\r
+X651300Y213700D02*X653700Y211300D01*\r
+X651300D02*X653700Y213700D01*\r
+X651300Y203700D02*X653700Y201300D01*\r
+X651300D02*X653700Y203700D01*\r
+X651300Y193700D02*X653700Y191300D01*\r
+X651300D02*X653700Y193700D01*\r
+X651300Y183700D02*X653700Y181300D01*\r
+X651300D02*X653700Y183700D01*\r
+X651300Y173700D02*X653700Y171300D01*\r
+X651300D02*X653700Y173700D01*\r
+X651300Y163700D02*X653700Y161300D01*\r
+X651300D02*X653700Y163700D01*\r
+X651300Y153700D02*X653700Y151300D01*\r
+X651300D02*X653700Y153700D01*\r
+X651300Y143700D02*X653700Y141300D01*\r
+X651300D02*X653700Y143700D01*\r
+X651300Y133700D02*X653700Y131300D01*\r
+X651300D02*X653700Y133700D01*\r
+X651300Y123700D02*X653700Y121300D01*\r
+X651300D02*X653700Y123700D01*\r
+X651300Y113700D02*X653700Y111300D01*\r
+X651300D02*X653700Y113700D01*\r
+X651300Y103700D02*X653700Y101300D01*\r
+X651300D02*X653700Y103700D01*\r
+X651300Y93700D02*X653700Y91300D01*\r
+X651300D02*X653700Y93700D01*\r
+X651300Y83700D02*X653700Y81300D01*\r
+X651300D02*X653700Y83700D01*\r
+X651300Y73700D02*X653700Y71300D01*\r
+X651300D02*X653700Y73700D01*\r
+X651300Y63700D02*X653700Y61300D01*\r
+X651300D02*X653700Y63700D01*\r
+X651300Y53700D02*X653700Y51300D01*\r
+X651300D02*X653700Y53700D01*\r
+X641300Y363700D02*X643700Y361300D01*\r
+X641300D02*X643700Y363700D01*\r
+X641300Y353700D02*X643700Y351300D01*\r
+X641300D02*X643700Y353700D01*\r
+X641300Y343700D02*X643700Y341300D01*\r
+X641300D02*X643700Y343700D01*\r
+X641300Y333700D02*X643700Y331300D01*\r
+X641300D02*X643700Y333700D01*\r
+X641300Y323700D02*X643700Y321300D01*\r
+X641300D02*X643700Y323700D01*\r
+X641300Y313700D02*X643700Y311300D01*\r
+X641300D02*X643700Y313700D01*\r
+X641300Y303700D02*X643700Y301300D01*\r
+X641300D02*X643700Y303700D01*\r
+X641300Y293700D02*X643700Y291300D01*\r
+X641300D02*X643700Y293700D01*\r
+X641300Y283700D02*X643700Y281300D01*\r
+X641300D02*X643700Y283700D01*\r
+X641300Y273700D02*X643700Y271300D01*\r
+X641300D02*X643700Y273700D01*\r
+X641300Y263700D02*X643700Y261300D01*\r
+X641300D02*X643700Y263700D01*\r
+X641300Y253700D02*X643700Y251300D01*\r
+X641300D02*X643700Y253700D01*\r
+X641300Y243700D02*X643700Y241300D01*\r
+X641300D02*X643700Y243700D01*\r
+X641300Y233700D02*X643700Y231300D01*\r
+X641300D02*X643700Y233700D01*\r
+X641300Y223700D02*X643700Y221300D01*\r
+X641300D02*X643700Y223700D01*\r
+X641300Y213700D02*X643700Y211300D01*\r
+X641300D02*X643700Y213700D01*\r
+X641300Y203700D02*X643700Y201300D01*\r
+X641300D02*X643700Y203700D01*\r
+X641300Y193700D02*X643700Y191300D01*\r
+X641300D02*X643700Y193700D01*\r
+X641300Y183700D02*X643700Y181300D01*\r
+X641300D02*X643700Y183700D01*\r
+X641300Y173700D02*X643700Y171300D01*\r
+X641300D02*X643700Y173700D01*\r
+X641300Y163700D02*X643700Y161300D01*\r
+X641300D02*X643700Y163700D01*\r
+X641300Y153700D02*X643700Y151300D01*\r
+X641300D02*X643700Y153700D01*\r
+X641300Y143700D02*X643700Y141300D01*\r
+X641300D02*X643700Y143700D01*\r
+X641300Y133700D02*X643700Y131300D01*\r
+X641300D02*X643700Y133700D01*\r
+X641300Y123700D02*X643700Y121300D01*\r
+X641300D02*X643700Y123700D01*\r
+X641300Y113700D02*X643700Y111300D01*\r
+X641300D02*X643700Y113700D01*\r
+X641300Y103700D02*X643700Y101300D01*\r
+X641300D02*X643700Y103700D01*\r
+X641300Y93700D02*X643700Y91300D01*\r
+X641300D02*X643700Y93700D01*\r
+X641300Y83700D02*X643700Y81300D01*\r
+X641300D02*X643700Y83700D01*\r
+X641300Y73700D02*X643700Y71300D01*\r
+X641300D02*X643700Y73700D01*\r
+X641300Y63700D02*X643700Y61300D01*\r
+X641300D02*X643700Y63700D01*\r
+X641300Y53700D02*X643700Y51300D01*\r
+X641300D02*X643700Y53700D01*\r
+X631300Y363700D02*X633700Y361300D01*\r
+X631300D02*X633700Y363700D01*\r
+X631300Y353700D02*X633700Y351300D01*\r
+X631300D02*X633700Y353700D01*\r
+X631300Y343700D02*X633700Y341300D01*\r
+X631300D02*X633700Y343700D01*\r
+X631300Y333700D02*X633700Y331300D01*\r
+X631300D02*X633700Y333700D01*\r
+X631300Y323700D02*X633700Y321300D01*\r
+X631300D02*X633700Y323700D01*\r
+X631300Y313700D02*X633700Y311300D01*\r
+X631300D02*X633700Y313700D01*\r
+X631300Y303700D02*X633700Y301300D01*\r
+X631300D02*X633700Y303700D01*\r
+X631300Y293700D02*X633700Y291300D01*\r
+X631300D02*X633700Y293700D01*\r
+X631300Y283700D02*X633700Y281300D01*\r
+X631300D02*X633700Y283700D01*\r
+X631300Y273700D02*X633700Y271300D01*\r
+X631300D02*X633700Y273700D01*\r
+X631300Y263700D02*X633700Y261300D01*\r
+X631300D02*X633700Y263700D01*\r
+X631300Y253700D02*X633700Y251300D01*\r
+X631300D02*X633700Y253700D01*\r
+X631300Y243700D02*X633700Y241300D01*\r
+X631300D02*X633700Y243700D01*\r
+X631300Y233700D02*X633700Y231300D01*\r
+X631300D02*X633700Y233700D01*\r
+X631300Y223700D02*X633700Y221300D01*\r
+X631300D02*X633700Y223700D01*\r
+X631300Y213700D02*X633700Y211300D01*\r
+X631300D02*X633700Y213700D01*\r
+X631300Y203700D02*X633700Y201300D01*\r
+X631300D02*X633700Y203700D01*\r
+X631300Y193700D02*X633700Y191300D01*\r
+X631300D02*X633700Y193700D01*\r
+X631300Y183700D02*X633700Y181300D01*\r
+X631300D02*X633700Y183700D01*\r
+X631300Y173700D02*X633700Y171300D01*\r
+X631300D02*X633700Y173700D01*\r
+X631300Y163700D02*X633700Y161300D01*\r
+X631300D02*X633700Y163700D01*\r
+X631300Y153700D02*X633700Y151300D01*\r
+X631300D02*X633700Y153700D01*\r
+X631300Y143700D02*X633700Y141300D01*\r
+X631300D02*X633700Y143700D01*\r
+X631300Y133700D02*X633700Y131300D01*\r
+X631300D02*X633700Y133700D01*\r
+X631300Y123700D02*X633700Y121300D01*\r
+X631300D02*X633700Y123700D01*\r
+X631300Y113700D02*X633700Y111300D01*\r
+X631300D02*X633700Y113700D01*\r
+X631300Y103700D02*X633700Y101300D01*\r
+X631300D02*X633700Y103700D01*\r
+X631300Y93700D02*X633700Y91300D01*\r
+X631300D02*X633700Y93700D01*\r
+X631300Y83700D02*X633700Y81300D01*\r
+X631300D02*X633700Y83700D01*\r
+X631300Y73700D02*X633700Y71300D01*\r
+X631300D02*X633700Y73700D01*\r
+X631300Y63700D02*X633700Y61300D01*\r
+X631300D02*X633700Y63700D01*\r
+X631300Y53700D02*X633700Y51300D01*\r
+X631300D02*X633700Y53700D01*\r
+X231300Y216200D02*X233700Y213800D01*\r
+X231300D02*X233700Y216200D01*\r
+X271300D02*X273700Y213800D01*\r
+X271300D02*X273700Y216200D01*\r
+X216300Y136200D02*X218700Y133800D01*\r
+X216300D02*X218700Y136200D01*\r
+X176300D02*X178700Y133800D01*\r
+X176300D02*X178700Y136200D01*\r
+X176300Y216200D02*X178700Y213800D01*\r
+X176300D02*X178700Y216200D01*\r
+X216300D02*X218700Y213800D01*\r
+X216300D02*X218700Y216200D01*\r
+X271300Y176200D02*X273700Y173800D01*\r
+X271300D02*X273700Y176200D01*\r
+X231300D02*X233700Y173800D01*\r
+X231300D02*X233700Y176200D01*\r
+X216300D02*X218700Y173800D01*\r
+X216300D02*X218700Y176200D01*\r
+X176300D02*X178700Y173800D01*\r
+X176300D02*X178700Y176200D01*\r
+X216300Y261200D02*X218700Y258800D01*\r
+X216300D02*X218700Y261200D01*\r
+X176300D02*X178700Y258800D01*\r
+X176300D02*X178700Y261200D01*\r
+X13800Y542450D02*X16200Y540050D01*\r
+X13800D02*X16200Y542450D01*\r
+X135000Y543500D02*Y542750D01*\r
+X136500Y541250D01*\r
+X138000Y542750D01*\r
+Y543500D02*Y542750D01*\r
+X136500Y541250D02*Y537500D01*\r
+X139801Y540500D02*X142051D01*\r
+X139801Y537500D02*X142801D01*\r
+X139801Y543500D02*Y537500D01*\r
+Y543500D02*X142801D01*\r
+X147603D02*X148353Y542750D01*\r
+X145353Y543500D02*X147603D01*\r
+X144603Y542750D02*X145353Y543500D01*\r
+X144603Y542750D02*Y541250D01*\r
+X145353Y540500D01*\r
+X147603D01*\r
+X148353Y539750D01*\r
+Y538250D01*\r
+X147603Y537500D02*X148353Y538250D01*\r
+X145353Y537500D02*X147603D01*\r
+X144603Y538250D02*X145353Y537500D01*\r
+X135000Y534249D02*X150154D01*\r
+X98750Y537500D02*X100250D01*\r
+X99500Y543500D02*Y537500D01*\r
+X98000Y542000D02*X99500Y543500D01*\r
+X102051Y538250D02*X102801Y537500D01*\r
+X102051Y542750D02*Y538250D01*\r
+Y542750D02*X102801Y543500D01*\r
+X104301D01*\r
+X105051Y542750D01*\r
+Y538250D01*\r
+X104301Y537500D02*X105051Y538250D01*\r
+X102801Y537500D02*X104301D01*\r
+X102051Y539000D02*X105051Y542000D01*\r
+X106853Y538250D02*X107603Y537500D01*\r
+X106853Y539750D02*Y538250D01*\r
+Y539750D02*X107603Y540500D01*\r
+X109103D01*\r
+X109853Y539750D01*\r
+Y538250D01*\r
+X109103Y537500D02*X109853Y538250D01*\r
+X107603Y537500D02*X109103D01*\r
+X106853Y541250D02*X107603Y540500D01*\r
+X106853Y542750D02*Y541250D01*\r
+Y542750D02*X107603Y543500D01*\r
+X109103D01*\r
+X109853Y542750D01*\r
+Y541250D01*\r
+X109103Y540500D02*X109853Y541250D01*\r
+X98000Y534249D02*X111654D01*\r
+X45000Y538250D02*X45750Y537500D01*\r
+X45000Y542750D02*Y538250D01*\r
+Y542750D02*X45750Y543500D01*\r
+X47250D01*\r
+X48000Y542750D01*\r
+Y538250D01*\r
+X47250Y537500D02*X48000Y538250D01*\r
+X45750Y537500D02*X47250D01*\r
+X45000Y539000D02*X48000Y542000D01*\r
+X49801Y537500D02*X50551D01*\r
+X52353Y538250D02*X53103Y537500D01*\r
+X52353Y542750D02*Y538250D01*\r
+Y542750D02*X53103Y543500D01*\r
+X54603D01*\r
+X55353Y542750D01*\r
+Y538250D01*\r
+X54603Y537500D02*X55353Y538250D01*\r
+X53103Y537500D02*X54603D01*\r
+X52353Y539000D02*X55353Y542000D01*\r
+X57154Y542750D02*X57904Y543500D01*\r
+X59404D01*\r
+X60154Y542750D01*\r
+Y538250D01*\r
+X59404Y537500D02*X60154Y538250D01*\r
+X57904Y537500D02*X59404D01*\r
+X57154Y538250D02*X57904Y537500D01*\r
+Y540500D02*X60154D01*\r
+X61956Y538250D02*X62706Y537500D01*\r
+X61956Y542750D02*Y538250D01*\r
+Y542750D02*X62706Y543500D01*\r
+X64206D01*\r
+X64956Y542750D01*\r
+Y538250D01*\r
+X64206Y537500D02*X64956Y538250D01*\r
+X62706Y537500D02*X64206D01*\r
+X61956Y539000D02*X64956Y542000D01*\r
+X45000Y534249D02*X66757D01*\r
+X177500Y86600D02*Y83400D01*\r
+X175900Y85000D02*X179100D01*\r
+X177500Y66600D02*Y63400D01*\r
+X175900Y65000D02*X179100D01*\r
+X195000Y61600D02*Y58400D01*\r
+X193400Y60000D02*X196600D01*\r
+X205000Y61600D02*Y58400D01*\r
+X203400Y60000D02*X206600D01*\r
+X215000Y61600D02*Y58400D01*\r
+X213400Y60000D02*X216600D01*\r
+X225000Y61600D02*Y58400D01*\r
+X223400Y60000D02*X226600D01*\r
+X235000Y61600D02*Y58400D01*\r
+X233400Y60000D02*X236600D01*\r
+X245000Y61600D02*Y58400D01*\r
+X243400Y60000D02*X246600D01*\r
+X255000Y61600D02*Y58400D01*\r
+X253400Y60000D02*X256600D01*\r
+X255000Y91600D02*Y88400D01*\r
+X253400Y90000D02*X256600D01*\r
+X245000Y91600D02*Y88400D01*\r
+X243400Y90000D02*X246600D01*\r
+X235000Y91600D02*Y88400D01*\r
+X233400Y90000D02*X236600D01*\r
+X225000Y91600D02*Y88400D01*\r
+X223400Y90000D02*X226600D01*\r
+X215000Y91600D02*Y88400D01*\r
+X213400Y90000D02*X216600D01*\r
+X205000Y91600D02*Y88400D01*\r
+X203400Y90000D02*X206600D01*\r
+X195000Y91600D02*Y88400D01*\r
+X193400Y90000D02*X196600D01*\r
+X250000Y381600D02*Y378400D01*\r
+X248400Y380000D02*X251600D01*\r
+X230000Y381600D02*Y378400D01*\r
+X228400Y380000D02*X231600D01*\r
+X195000Y281600D02*Y278400D01*\r
+X193400Y280000D02*X196600D01*\r
+X205000Y281600D02*Y278400D01*\r
+X203400Y280000D02*X206600D01*\r
+X215000Y281600D02*Y278400D01*\r
+X213400Y280000D02*X216600D01*\r
+X225000Y281600D02*Y278400D01*\r
+X223400Y280000D02*X226600D01*\r
+X235000Y281600D02*Y278400D01*\r
+X233400Y280000D02*X236600D01*\r
+X245000Y281600D02*Y278400D01*\r
+X243400Y280000D02*X246600D01*\r
+X255000Y281600D02*Y278400D01*\r
+X253400Y280000D02*X256600D01*\r
+X255000Y311600D02*Y308400D01*\r
+X253400Y310000D02*X256600D01*\r
+X245000Y311600D02*Y308400D01*\r
+X243400Y310000D02*X246600D01*\r
+X235000Y311600D02*Y308400D01*\r
+X233400Y310000D02*X236600D01*\r
+X225000Y311600D02*Y308400D01*\r
+X223400Y310000D02*X226600D01*\r
+X215000Y311600D02*Y308400D01*\r
+X213400Y310000D02*X216600D01*\r
+X205000Y311600D02*Y308400D01*\r
+X203400Y310000D02*X206600D01*\r
+X195000Y311600D02*Y308400D01*\r
+X193400Y310000D02*X196600D01*\r
+X372500Y336600D02*Y333400D01*\r
+X370900Y335000D02*X374100D01*\r
+X382500Y336600D02*Y333400D01*\r
+X380900Y335000D02*X384100D01*\r
+X392500Y336600D02*Y333400D01*\r
+X390900Y335000D02*X394100D01*\r
+X402500Y336600D02*Y333400D01*\r
+X400900Y335000D02*X404100D01*\r
+X402500Y366600D02*Y363400D01*\r
+X400900Y365000D02*X404100D01*\r
+X392500Y366600D02*Y363400D01*\r
+X390900Y365000D02*X394100D01*\r
+X382500Y366600D02*Y363400D01*\r
+X380900Y365000D02*X384100D01*\r
+X372500Y366600D02*Y363400D01*\r
+X370900Y365000D02*X374100D01*\r
+X397500Y381600D02*Y378400D01*\r
+X395900Y380000D02*X399100D01*\r
+X377500Y381600D02*Y378400D01*\r
+X375900Y380000D02*X379100D01*\r
+X372500Y281600D02*Y278400D01*\r
+X370900Y280000D02*X374100D01*\r
+X382500Y281600D02*Y278400D01*\r
+X380900Y280000D02*X384100D01*\r
+X392500Y281600D02*Y278400D01*\r
+X390900Y280000D02*X394100D01*\r
+X402500Y281600D02*Y278400D01*\r
+X400900Y280000D02*X404100D01*\r
+X402500Y311600D02*Y308400D01*\r
+X400900Y310000D02*X404100D01*\r
+X392500Y311600D02*Y308400D01*\r
+X390900Y310000D02*X394100D01*\r
+X382500Y311600D02*Y308400D01*\r
+X380900Y310000D02*X384100D01*\r
+X372500Y311600D02*Y308400D01*\r
+X370900Y310000D02*X374100D01*\r
+X582500Y336600D02*Y333400D01*\r
+X580900Y335000D02*X584100D01*\r
+X592500Y336600D02*Y333400D01*\r
+X590900Y335000D02*X594100D01*\r
+X602500Y336600D02*Y333400D01*\r
+X600900Y335000D02*X604100D01*\r
+X612500Y336600D02*Y333400D01*\r
+X610900Y335000D02*X614100D01*\r
+X612500Y366600D02*Y363400D01*\r
+X610900Y365000D02*X614100D01*\r
+X602500Y366600D02*Y363400D01*\r
+X600900Y365000D02*X604100D01*\r
+X592500Y366600D02*Y363400D01*\r
+X590900Y365000D02*X594100D01*\r
+X582500Y366600D02*Y363400D01*\r
+X580900Y365000D02*X584100D01*\r
+X482500Y336600D02*Y333400D01*\r
+X480900Y335000D02*X484100D01*\r
+X492500Y336600D02*Y333400D01*\r
+X490900Y335000D02*X494100D01*\r
+X502500Y336600D02*Y333400D01*\r
+X500900Y335000D02*X504100D01*\r
+X512500Y336600D02*Y333400D01*\r
+X510900Y335000D02*X514100D01*\r
+X512500Y366600D02*Y363400D01*\r
+X510900Y365000D02*X514100D01*\r
+X502500Y366600D02*Y363400D01*\r
+X500900Y365000D02*X504100D01*\r
+X492500Y366600D02*Y363400D01*\r
+X490900Y365000D02*X494100D01*\r
+X482500Y366600D02*Y363400D01*\r
+X480900Y365000D02*X484100D01*\r
+X482500Y281600D02*Y278400D01*\r
+X480900Y280000D02*X484100D01*\r
+X492500Y281600D02*Y278400D01*\r
+X490900Y280000D02*X494100D01*\r
+X502500Y281600D02*Y278400D01*\r
+X500900Y280000D02*X504100D01*\r
+X512500Y281600D02*Y278400D01*\r
+X510900Y280000D02*X514100D01*\r
+X522500Y281600D02*Y278400D01*\r
+X520900Y280000D02*X524100D01*\r
+X532500Y281600D02*Y278400D01*\r
+X530900Y280000D02*X534100D01*\r
+X542500Y281600D02*Y278400D01*\r
+X540900Y280000D02*X544100D01*\r
+X552500Y281600D02*Y278400D01*\r
+X550900Y280000D02*X554100D01*\r
+X562500Y281600D02*Y278400D01*\r
+X560900Y280000D02*X564100D01*\r
+X572500Y281600D02*Y278400D01*\r
+X570900Y280000D02*X574100D01*\r
+X582500Y281600D02*Y278400D01*\r
+X580900Y280000D02*X584100D01*\r
+X592500Y281600D02*Y278400D01*\r
+X590900Y280000D02*X594100D01*\r
+X602500Y281600D02*Y278400D01*\r
+X600900Y280000D02*X604100D01*\r
+X612500Y281600D02*Y278400D01*\r
+X610900Y280000D02*X614100D01*\r
+X612500Y311600D02*Y308400D01*\r
+X610900Y310000D02*X614100D01*\r
+X602500Y311600D02*Y308400D01*\r
+X600900Y310000D02*X604100D01*\r
+X592500Y311600D02*Y308400D01*\r
+X590900Y310000D02*X594100D01*\r
+X582500Y311600D02*Y308400D01*\r
+X580900Y310000D02*X584100D01*\r
+X572500Y311600D02*Y308400D01*\r
+X570900Y310000D02*X574100D01*\r
+X562500Y311600D02*Y308400D01*\r
+X560900Y310000D02*X564100D01*\r
+X552500Y311600D02*Y308400D01*\r
+X550900Y310000D02*X554100D01*\r
+X542500Y311600D02*Y308400D01*\r
+X540900Y310000D02*X544100D01*\r
+X532500Y311600D02*Y308400D01*\r
+X530900Y310000D02*X534100D01*\r
+X522500Y311600D02*Y308400D01*\r
+X520900Y310000D02*X524100D01*\r
+X512500Y311600D02*Y308400D01*\r
+X510900Y310000D02*X514100D01*\r
+X502500Y311600D02*Y308400D01*\r
+X500900Y310000D02*X504100D01*\r
+X492500Y311600D02*Y308400D01*\r
+X490900Y310000D02*X494100D01*\r
+X482500Y311600D02*Y308400D01*\r
+X480900Y310000D02*X484100D01*\r
+X607500Y381600D02*Y378400D01*\r
+X605900Y380000D02*X609100D01*\r
+X587500Y381600D02*Y378400D01*\r
+X585900Y380000D02*X589100D01*\r
+X460000Y286600D02*Y283400D01*\r
+X458400Y285000D02*X461600D01*\r
+X460000Y306600D02*Y303400D01*\r
+X458400Y305000D02*X461600D01*\r
+X507500Y381600D02*Y378400D01*\r
+X505900Y380000D02*X509100D01*\r
+X487500Y381600D02*Y378400D01*\r
+X485900Y380000D02*X489100D01*\r
+X177500Y306600D02*Y303400D01*\r
+X175900Y305000D02*X179100D01*\r
+X177500Y286600D02*Y283400D01*\r
+X175900Y285000D02*X179100D01*\r
+X575000Y31600D02*Y28400D01*\r
+X573400Y30000D02*X576600D01*\r
+X575000Y51600D02*Y48400D01*\r
+X573400Y50000D02*X576600D01*\r
+X552500Y51600D02*Y48400D01*\r
+X550900Y50000D02*X554100D01*\r
+X552500Y31600D02*Y28400D01*\r
+X550900Y30000D02*X554100D01*\r
+X197500Y359100D02*Y355900D01*\r
+X195900Y357500D02*X199100D01*\r
+X177500Y359100D02*Y355900D01*\r
+X175900Y357500D02*X179100D01*\r
+X592500Y31600D02*Y28400D01*\r
+X590900Y30000D02*X594100D01*\r
+X592500Y51600D02*Y48400D01*\r
+X590900Y50000D02*X594100D01*\r
+X280000Y281600D02*Y278400D01*\r
+X278400Y280000D02*X281600D01*\r
+X290000Y281600D02*Y278400D01*\r
+X288400Y280000D02*X291600D01*\r
+X300000Y281600D02*Y278400D01*\r
+X298400Y280000D02*X301600D01*\r
+X310000Y281600D02*Y278400D01*\r
+X308400Y280000D02*X311600D01*\r
+X320000Y281600D02*Y278400D01*\r
+X318400Y280000D02*X321600D01*\r
+X330000Y281600D02*Y278400D01*\r
+X328400Y280000D02*X331600D01*\r
+X340000Y281600D02*Y278400D01*\r
+X338400Y280000D02*X341600D01*\r
+X350000Y281600D02*Y278400D01*\r
+X348400Y280000D02*X351600D01*\r
+X350000Y311600D02*Y308400D01*\r
+X348400Y310000D02*X351600D01*\r
+X340000Y311600D02*Y308400D01*\r
+X338400Y310000D02*X341600D01*\r
+X330000Y311600D02*Y308400D01*\r
+X328400Y310000D02*X331600D01*\r
+X320000Y311600D02*Y308400D01*\r
+X318400Y310000D02*X321600D01*\r
+X310000Y311600D02*Y308400D01*\r
+X308400Y310000D02*X311600D01*\r
+X300000Y311600D02*Y308400D01*\r
+X298400Y310000D02*X301600D01*\r
+X290000Y311600D02*Y308400D01*\r
+X288400Y310000D02*X291600D01*\r
+X280000Y311600D02*Y308400D01*\r
+X278400Y310000D02*X281600D01*\r
+X197500Y381600D02*Y378400D01*\r
+X195900Y380000D02*X199100D01*\r
+X177500Y381600D02*Y378400D01*\r
+X175900Y380000D02*X179100D01*\r
+X225000Y336600D02*Y333400D01*\r
+X223400Y335000D02*X226600D01*\r
+X235000Y336600D02*Y333400D01*\r
+X233400Y335000D02*X236600D01*\r
+X245000Y336600D02*Y333400D01*\r
+X243400Y335000D02*X246600D01*\r
+X255000Y336600D02*Y333400D01*\r
+X253400Y335000D02*X256600D01*\r
+X255000Y366600D02*Y363400D01*\r
+X253400Y365000D02*X256600D01*\r
+X245000Y366600D02*Y363400D01*\r
+X243400Y365000D02*X246600D01*\r
+X235000Y366600D02*Y363400D01*\r
+X233400Y365000D02*X236600D01*\r
+X225000Y366600D02*Y363400D01*\r
+X223400Y365000D02*X226600D01*\r
+X15000Y557850D02*Y554650D01*\r
+X13400Y556250D02*X16600D01*\r
+X135000Y558500D02*Y557750D01*\r
+X136500Y556250D01*\r
+X138000Y557750D01*\r
+Y558500D02*Y557750D01*\r
+X136500Y556250D02*Y552500D01*\r
+X139801Y555500D02*X142051D01*\r
+X139801Y552500D02*X142801D01*\r
+X139801Y558500D02*Y552500D01*\r
+Y558500D02*X142801D01*\r
+X147603D02*X148353Y557750D01*\r
+X145353Y558500D02*X147603D01*\r
+X144603Y557750D02*X145353Y558500D01*\r
+X144603Y557750D02*Y556250D01*\r
+X145353Y555500D01*\r
+X147603D01*\r
+X148353Y554750D01*\r
+Y553250D01*\r
+X147603Y552500D02*X148353Y553250D01*\r
+X145353Y552500D02*X147603D01*\r
+X144603Y553250D02*X145353Y552500D01*\r
+X135000Y549249D02*X150154D01*\r
+X98750Y552500D02*X100250D01*\r
+X99500Y558500D02*Y552500D01*\r
+X98000Y557000D02*X99500Y558500D01*\r
+X102051Y557750D02*X102801Y558500D01*\r
+X104301D01*\r
+X105051Y557750D01*\r
+Y553250D01*\r
+X104301Y552500D02*X105051Y553250D01*\r
+X102801Y552500D02*X104301D01*\r
+X102051Y553250D02*X102801Y552500D01*\r
+Y555500D02*X105051D01*\r
+X109103Y558500D02*X109853Y557750D01*\r
+X107603Y558500D02*X109103D01*\r
+X106853Y557750D02*X107603Y558500D01*\r
+X106853Y557750D02*Y553250D01*\r
+X107603Y552500D01*\r
+X109103Y555500D02*X109853Y554750D01*\r
+X106853Y555500D02*X109103D01*\r
+X107603Y552500D02*X109103D01*\r
+X109853Y553250D01*\r
+Y554750D02*Y553250D01*\r
+X98000Y549249D02*X111654D01*\r
+X45000Y553250D02*X45750Y552500D01*\r
+X45000Y557750D02*Y553250D01*\r
+Y557750D02*X45750Y558500D01*\r
+X47250D01*\r
+X48000Y557750D01*\r
+Y553250D01*\r
+X47250Y552500D02*X48000Y553250D01*\r
+X45750Y552500D02*X47250D01*\r
+X45000Y554000D02*X48000Y557000D01*\r
+X49801Y552500D02*X50551D01*\r
+X52353Y553250D02*X53103Y552500D01*\r
+X52353Y557750D02*Y553250D01*\r
+Y557750D02*X53103Y558500D01*\r
+X54603D01*\r
+X55353Y557750D01*\r
+Y553250D01*\r
+X54603Y552500D02*X55353Y553250D01*\r
+X53103Y552500D02*X54603D01*\r
+X52353Y554000D02*X55353Y557000D01*\r
+X57154Y557750D02*X57904Y558500D01*\r
+X60154D01*\r
+X60904Y557750D01*\r
+Y556250D01*\r
+X57154Y552500D02*X60904Y556250D01*\r
+X57154Y552500D02*X60904D01*\r
+X62706Y553250D02*X63456Y552500D01*\r
+X62706Y554750D02*Y553250D01*\r
+Y554750D02*X63456Y555500D01*\r
+X64956D01*\r
+X65706Y554750D01*\r
+Y553250D01*\r
+X64956Y552500D02*X65706Y553250D01*\r
+X63456Y552500D02*X64956D01*\r
+X62706Y556250D02*X63456Y555500D01*\r
+X62706Y557750D02*Y556250D01*\r
+Y557750D02*X63456Y558500D01*\r
+X64956D01*\r
+X65706Y557750D01*\r
+Y556250D01*\r
+X64956Y555500D02*X65706Y556250D01*\r
+X45000Y549249D02*X67507D01*\r
+X102500Y280000D02*Y278400D01*\r
+Y280000D02*X103886Y280800D01*\r
+X102500Y280000D02*X101114Y280800D01*\r
+X365000Y92500D02*Y90900D01*\r
+Y92500D02*X366386Y93300D01*\r
+X365000Y92500D02*X363614Y93300D01*\r
+X282500Y165000D02*Y163400D01*\r
+Y165000D02*X283886Y165800D01*\r
+X282500Y165000D02*X281114Y165800D01*\r
+X315000Y130000D02*Y128400D01*\r
+Y130000D02*X316386Y130800D01*\r
+X315000Y130000D02*X313614Y130800D01*\r
+X427500Y392500D02*Y390900D01*\r
+Y392500D02*X428886Y393300D01*\r
+X427500Y392500D02*X426114Y393300D01*\r
+X402500Y392500D02*Y390900D01*\r
+Y392500D02*X403886Y393300D01*\r
+X402500Y392500D02*X401114Y393300D01*\r
+X360000Y182500D02*Y180900D01*\r
+Y182500D02*X361386Y183300D01*\r
+X360000Y182500D02*X358614Y183300D01*\r
+X87500Y275000D02*Y273400D01*\r
+Y275000D02*X88886Y275800D01*\r
+X87500Y275000D02*X86114Y275800D01*\r
+X247500Y392500D02*Y390900D01*\r
+Y392500D02*X248886Y393300D01*\r
+X247500Y392500D02*X246114Y393300D01*\r
+X367500Y317500D02*Y315900D01*\r
+Y317500D02*X368886Y318300D01*\r
+X367500Y317500D02*X366114Y318300D01*\r
+X225000Y222500D02*Y220900D01*\r
+Y222500D02*X226386Y223300D01*\r
+X225000Y222500D02*X223614Y223300D01*\r
+X225000Y240000D02*Y238400D01*\r
+Y240000D02*X226386Y240800D01*\r
+X225000Y240000D02*X223614Y240800D01*\r
+X442500Y345000D02*Y343400D01*\r
+Y345000D02*X443886Y345800D01*\r
+X442500Y345000D02*X441114Y345800D01*\r
+X352500Y240000D02*Y238400D01*\r
+Y240000D02*X353886Y240800D01*\r
+X352500Y240000D02*X351114Y240800D01*\r
+X507500Y270000D02*Y268400D01*\r
+Y270000D02*X508886Y270800D01*\r
+X507500Y270000D02*X506114Y270800D01*\r
+X345000Y267500D02*Y265900D01*\r
+Y267500D02*X346386Y268300D01*\r
+X345000Y267500D02*X343614Y268300D01*\r
+X507500Y295000D02*Y293400D01*\r
+Y295000D02*X508886Y295800D01*\r
+X507500Y295000D02*X506114Y295800D01*\r
+X315000Y267500D02*Y265900D01*\r
+Y267500D02*X316386Y268300D01*\r
+X315000Y267500D02*X313614Y268300D01*\r
+X477500Y387500D02*Y385900D01*\r
+Y387500D02*X478886Y388300D01*\r
+X477500Y387500D02*X476114Y388300D01*\r
+X477500Y295000D02*Y293400D01*\r
+Y295000D02*X478886Y295800D01*\r
+X477500Y295000D02*X476114Y295800D01*\r
+X417500Y370000D02*Y368400D01*\r
+Y370000D02*X418886Y370800D01*\r
+X417500Y370000D02*X416114Y370800D01*\r
+X295000Y275000D02*Y273400D01*\r
+Y275000D02*X296386Y275800D01*\r
+X295000Y275000D02*X293614Y275800D01*\r
+X155000Y42500D02*Y40900D01*\r
+Y42500D02*X156386Y43300D01*\r
+X155000Y42500D02*X153614Y43300D01*\r
+X360000Y260000D02*Y258400D01*\r
+Y260000D02*X361386Y260800D01*\r
+X360000Y260000D02*X358614Y260800D01*\r
+X425000Y295000D02*Y293400D01*\r
+Y295000D02*X426386Y295800D01*\r
+X425000Y295000D02*X423614Y295800D01*\r
+X205000Y52500D02*Y50900D01*\r
+Y52500D02*X206386Y53300D01*\r
+X205000Y52500D02*X203614Y53300D01*\r
+X547500Y357500D02*Y355900D01*\r
+Y357500D02*X548886Y358300D01*\r
+X547500Y357500D02*X546114Y358300D01*\r
+X532500Y352500D02*Y350900D01*\r
+Y352500D02*X533886Y353300D01*\r
+X532500Y352500D02*X531114Y353300D01*\r
+X562500Y347500D02*Y345900D01*\r
+Y347500D02*X563886Y348300D01*\r
+X562500Y347500D02*X561114Y348300D01*\r
+X332500Y235000D02*Y233400D01*\r
+Y235000D02*X333886Y235800D01*\r
+X332500Y235000D02*X331114Y235800D01*\r
+X492500Y235000D02*Y233400D01*\r
+Y235000D02*X493886Y235800D01*\r
+X492500Y235000D02*X491114Y235800D01*\r
+X210000Y370000D02*Y368400D01*\r
+Y370000D02*X211386Y370800D01*\r
+X210000Y370000D02*X208614Y370800D01*\r
+X592500Y295000D02*Y293400D01*\r
+Y295000D02*X593886Y295800D01*\r
+X592500Y295000D02*X591114Y295800D01*\r
+X482500Y260000D02*Y258400D01*\r
+Y260000D02*X483886Y260800D01*\r
+X482500Y260000D02*X481114Y260800D01*\r
+X477500Y305000D02*Y303400D01*\r
+Y305000D02*X478886Y305800D01*\r
+X477500Y305000D02*X476114Y305800D01*\r
+X160000Y222500D02*Y220900D01*\r
+Y222500D02*X161386Y223300D01*\r
+X160000Y222500D02*X158614Y223300D01*\r
+X480000Y300000D02*Y298400D01*\r
+Y300000D02*X481386Y300800D01*\r
+X480000Y300000D02*X478614Y300800D01*\r
+X92500Y270000D02*Y268400D01*\r
+Y270000D02*X93886Y270800D01*\r
+X92500Y270000D02*X91114Y270800D01*\r
+X397500Y267500D02*Y265900D01*\r
+Y267500D02*X398886Y268300D01*\r
+X397500Y267500D02*X396114Y268300D01*\r
+X442500Y392500D02*Y390900D01*\r
+Y392500D02*X443886Y393300D01*\r
+X442500Y392500D02*X441114Y393300D01*\r
+X365000Y255000D02*Y253400D01*\r
+Y255000D02*X366386Y255800D01*\r
+X365000Y255000D02*X363614Y255800D01*\r
+X417500Y400000D02*Y398400D01*\r
+Y400000D02*X418886Y400800D01*\r
+X417500Y400000D02*X416114Y400800D01*\r
+X565000Y250000D02*Y248400D01*\r
+Y250000D02*X566386Y250800D01*\r
+X565000Y250000D02*X563614Y250800D01*\r
+X435000Y365000D02*Y363400D01*\r
+Y365000D02*X436386Y365800D01*\r
+X435000Y365000D02*X433614Y365800D01*\r
+X305000Y270000D02*Y268400D01*\r
+Y270000D02*X306386Y270800D01*\r
+X305000Y270000D02*X303614Y270800D01*\r
+X442500Y295000D02*Y293400D01*\r
+Y295000D02*X443886Y295800D01*\r
+X442500Y295000D02*X441114Y295800D01*\r
+X102500Y297500D02*Y295900D01*\r
+Y297500D02*X103886Y298300D01*\r
+X102500Y297500D02*X101114Y298300D01*\r
+X377500Y327500D02*Y325900D01*\r
+Y327500D02*X378886Y328300D01*\r
+X377500Y327500D02*X376114Y328300D01*\r
+X352500Y292500D02*Y290900D01*\r
+Y292500D02*X353886Y293300D01*\r
+X352500Y292500D02*X351114Y293300D01*\r
+X350000Y287500D02*Y285900D01*\r
+Y287500D02*X351386Y288300D01*\r
+X350000Y287500D02*X348614Y288300D01*\r
+X372500Y260000D02*Y258400D01*\r
+Y260000D02*X373886Y260800D01*\r
+X372500Y260000D02*X371114Y260800D01*\r
+X310000Y317500D02*Y315900D01*\r
+Y317500D02*X311386Y318300D01*\r
+X310000Y317500D02*X308614Y318300D01*\r
+X215000Y47500D02*Y45900D01*\r
+Y47500D02*X216386Y48300D01*\r
+X215000Y47500D02*X213614Y48300D01*\r
+X285000Y302500D02*Y300900D01*\r
+Y302500D02*X286386Y303300D01*\r
+X285000Y302500D02*X283614Y303300D01*\r
+X225000Y42500D02*Y40900D01*\r
+Y42500D02*X226386Y43300D01*\r
+X225000Y42500D02*X223614Y43300D01*\r
+X377500Y297500D02*Y295900D01*\r
+Y297500D02*X378886Y298300D01*\r
+X377500Y297500D02*X376114Y298300D01*\r
+X315000Y275000D02*Y273400D01*\r
+Y275000D02*X316386Y275800D01*\r
+X315000Y275000D02*X313614Y275800D01*\r
+X325000Y250000D02*Y248400D01*\r
+Y250000D02*X326386Y250800D01*\r
+X325000Y250000D02*X323614Y250800D01*\r
+X527500Y325000D02*Y323400D01*\r
+Y325000D02*X528886Y325800D01*\r
+X527500Y325000D02*X526114Y325800D01*\r
+X532500Y322500D02*Y320900D01*\r
+Y322500D02*X533886Y323300D01*\r
+X532500Y322500D02*X531114Y323300D01*\r
+X545000Y265000D02*Y263400D01*\r
+Y265000D02*X546386Y265800D01*\r
+X545000Y265000D02*X543614Y265800D01*\r
+X557500Y237500D02*Y235900D01*\r
+Y237500D02*X558886Y238300D01*\r
+X557500Y237500D02*X556114Y238300D01*\r
+X612500Y322500D02*Y320900D01*\r
+Y322500D02*X613886Y323300D01*\r
+X612500Y322500D02*X611114Y323300D01*\r
+X200000Y260000D02*Y258400D01*\r
+Y260000D02*X201386Y260800D01*\r
+X200000Y260000D02*X198614Y260800D01*\r
+X155000Y135000D02*Y133400D01*\r
+Y135000D02*X156386Y135800D01*\r
+X155000Y135000D02*X153614Y135800D01*\r
+X165000Y52500D02*Y50900D01*\r
+Y52500D02*X166386Y53300D01*\r
+X165000Y52500D02*X163614Y53300D01*\r
+X160000Y47500D02*Y45900D01*\r
+Y47500D02*X161386Y48300D01*\r
+X160000Y47500D02*X158614Y48300D01*\r
+X200000Y287500D02*Y285900D01*\r
+Y287500D02*X201386Y288300D01*\r
+X200000Y287500D02*X198614Y288300D01*\r
+X460000Y340000D02*Y338400D01*\r
+Y340000D02*X461386Y340800D01*\r
+X460000Y340000D02*X458614Y340800D01*\r
+X335000Y372500D02*Y370900D01*\r
+Y372500D02*X336386Y373300D01*\r
+X335000Y372500D02*X333614Y373300D01*\r
+X15000Y571250D02*Y569650D01*\r
+Y571250D02*X16386Y572050D01*\r
+X15000Y571250D02*X13614Y572050D01*\r
+X135000Y573500D02*Y572750D01*\r
+X136500Y571250D01*\r
+X138000Y572750D01*\r
+Y573500D02*Y572750D01*\r
+X136500Y571250D02*Y567500D01*\r
+X139801Y570500D02*X142051D01*\r
+X139801Y567500D02*X142801D01*\r
+X139801Y573500D02*Y567500D01*\r
+Y573500D02*X142801D01*\r
+X147603D02*X148353Y572750D01*\r
+X145353Y573500D02*X147603D01*\r
+X144603Y572750D02*X145353Y573500D01*\r
+X144603Y572750D02*Y571250D01*\r
+X145353Y570500D01*\r
+X147603D01*\r
+X148353Y569750D01*\r
+Y568250D01*\r
+X147603Y567500D02*X148353Y568250D01*\r
+X145353Y567500D02*X147603D01*\r
+X144603Y568250D02*X145353Y567500D01*\r
+X135000Y564249D02*X150154D01*\r
+X98000Y567500D02*X101750Y571250D01*\r
+Y573500D02*Y571250D01*\r
+X98000Y573500D02*X101750D01*\r
+X103551Y568250D02*X104301Y567500D01*\r
+X103551Y572750D02*Y568250D01*\r
+Y572750D02*X104301Y573500D01*\r
+X105801D01*\r
+X106551Y572750D01*\r
+Y568250D01*\r
+X105801Y567500D02*X106551Y568250D01*\r
+X104301Y567500D02*X105801D01*\r
+X103551Y569000D02*X106551Y572000D01*\r
+X98000Y564249D02*X108353D01*\r
+X45000Y568250D02*X45750Y567500D01*\r
+X45000Y572750D02*Y568250D01*\r
+Y572750D02*X45750Y573500D01*\r
+X47250D01*\r
+X48000Y572750D01*\r
+Y568250D01*\r
+X47250Y567500D02*X48000Y568250D01*\r
+X45750Y567500D02*X47250D01*\r
+X45000Y569000D02*X48000Y572000D01*\r
+X49801Y567500D02*X50551D01*\r
+X52353Y568250D02*X53103Y567500D01*\r
+X52353Y572750D02*Y568250D01*\r
+Y572750D02*X53103Y573500D01*\r
+X54603D01*\r
+X55353Y572750D01*\r
+Y568250D01*\r
+X54603Y567500D02*X55353Y568250D01*\r
+X53103Y567500D02*X54603D01*\r
+X52353Y569000D02*X55353Y572000D01*\r
+X57154Y572750D02*X57904Y573500D01*\r
+X60154D01*\r
+X60904Y572750D01*\r
+Y571250D01*\r
+X57154Y567500D02*X60904Y571250D01*\r
+X57154Y567500D02*X60904D01*\r
+X62706Y568250D02*X63456Y567500D01*\r
+X62706Y572750D02*Y568250D01*\r
+Y572750D02*X63456Y573500D01*\r
+X64956D01*\r
+X65706Y572750D01*\r
+Y568250D01*\r
+X64956Y567500D02*X65706Y568250D01*\r
+X63456Y567500D02*X64956D01*\r
+X62706Y569000D02*X65706Y572000D01*\r
+X45000Y564249D02*X67507D01*\r
+X3000Y588500D02*X3750Y587750D01*\r
+X750Y588500D02*X3000D01*\r
+X0Y587750D02*X750Y588500D01*\r
+X0Y587750D02*Y586250D01*\r
+X750Y585500D01*\r
+X3000D01*\r
+X3750Y584750D01*\r
+Y583250D01*\r
+X3000Y582500D02*X3750Y583250D01*\r
+X750Y582500D02*X3000D01*\r
+X0Y583250D02*X750Y582500D01*\r
+X5551Y585500D02*Y583250D01*\r
+X6301Y582500D01*\r
+X8551Y585500D02*Y581000D01*\r
+X7801Y580250D02*X8551Y581000D01*\r
+X6301Y580250D02*X7801D01*\r
+X5551Y581000D02*X6301Y580250D01*\r
+Y582500D02*X7801D01*\r
+X8551Y583250D01*\r
+X11103Y584750D02*Y582500D01*\r
+Y584750D02*X11853Y585500D01*\r
+X12603D01*\r
+X13353Y584750D01*\r
+Y582500D01*\r
+Y584750D02*X14103Y585500D01*\r
+X14853D01*\r
+X15603Y584750D01*\r
+Y582500D01*\r
+X10353Y585500D02*X11103Y584750D01*\r
+X17404Y588500D02*Y582500D01*\r
+Y583250D02*X18154Y582500D01*\r
+X19654D01*\r
+X20404Y583250D01*\r
+Y584750D02*Y583250D01*\r
+X19654Y585500D02*X20404Y584750D01*\r
+X18154Y585500D02*X19654D01*\r
+X17404Y584750D02*X18154Y585500D01*\r
+X22206Y584750D02*Y583250D01*\r
+Y584750D02*X22956Y585500D01*\r
+X24456D01*\r
+X25206Y584750D01*\r
+Y583250D01*\r
+X24456Y582500D02*X25206Y583250D01*\r
+X22956Y582500D02*X24456D01*\r
+X22206Y583250D02*X22956Y582500D01*\r
+X27007Y588500D02*Y583250D01*\r
+X27757Y582500D01*\r
+X41750Y588500D02*Y582500D01*\r
+X44000Y588500D02*X44750Y587750D01*\r
+Y583250D01*\r
+X44000Y582500D02*X44750Y583250D01*\r
+X41000Y582500D02*X44000D01*\r
+X41000Y588500D02*X44000D01*\r
+X46551Y587000D02*Y586250D01*\r
+Y584750D02*Y582500D01*\r
+X50303Y585500D02*X51053Y584750D01*\r
+X48803Y585500D02*X50303D01*\r
+X48053Y584750D02*X48803Y585500D01*\r
+X48053Y584750D02*Y583250D01*\r
+X48803Y582500D01*\r
+X51053Y585500D02*Y583250D01*\r
+X51803Y582500D01*\r
+X48803D02*X50303D01*\r
+X51053Y583250D01*\r
+X54354Y584750D02*Y582500D01*\r
+Y584750D02*X55104Y585500D01*\r
+X55854D01*\r
+X56604Y584750D01*\r
+Y582500D01*\r
+Y584750D02*X57354Y585500D01*\r
+X58104D01*\r
+X58854Y584750D01*\r
+Y582500D01*\r
+X53604Y585500D02*X54354Y584750D01*\r
+X60656Y582500D02*X61406D01*\r
+X65907Y583250D02*X66657Y582500D01*\r
+X65907Y587750D02*X66657Y588500D01*\r
+X65907Y587750D02*Y583250D01*\r
+X68459Y588500D02*X69959D01*\r
+X69209D02*Y582500D01*\r
+X68459D02*X69959D01*\r
+X72510Y584750D02*Y582500D01*\r
+Y584750D02*X73260Y585500D01*\r
+X74010D01*\r
+X74760Y584750D01*\r
+Y582500D01*\r
+X71760Y585500D02*X72510Y584750D01*\r
+X77312Y585500D02*X79562D01*\r
+X76562Y584750D02*X77312Y585500D01*\r
+X76562Y584750D02*Y583250D01*\r
+X77312Y582500D01*\r
+X79562D01*\r
+X81363Y588500D02*Y582500D01*\r
+Y584750D02*X82113Y585500D01*\r
+X83613D01*\r
+X84363Y584750D01*\r
+Y582500D01*\r
+X86165Y588500D02*X86915Y587750D01*\r
+Y583250D01*\r
+X86165Y582500D02*X86915Y583250D01*\r
+X95750Y582500D02*X98000D01*\r
+X95000Y583250D02*X95750Y582500D01*\r
+X95000Y587750D02*Y583250D01*\r
+Y587750D02*X95750Y588500D01*\r
+X98000D01*\r
+X99801Y584750D02*Y583250D01*\r
+Y584750D02*X100551Y585500D01*\r
+X102051D01*\r
+X102801Y584750D01*\r
+Y583250D01*\r
+X102051Y582500D02*X102801Y583250D01*\r
+X100551Y582500D02*X102051D01*\r
+X99801Y583250D02*X100551Y582500D01*\r
+X104603Y585500D02*Y583250D01*\r
+X105353Y582500D01*\r
+X106853D01*\r
+X107603Y583250D01*\r
+Y585500D02*Y583250D01*\r
+X110154Y584750D02*Y582500D01*\r
+Y584750D02*X110904Y585500D01*\r
+X111654D01*\r
+X112404Y584750D01*\r
+Y582500D01*\r
+X109404Y585500D02*X110154Y584750D01*\r
+X114956Y588500D02*Y583250D01*\r
+X115706Y582500D01*\r
+X114206Y586250D02*X115706D01*\r
+X130750Y588500D02*Y582500D01*\r
+X130000Y588500D02*X133000D01*\r
+X133750Y587750D01*\r
+Y586250D01*\r
+X133000Y585500D02*X133750Y586250D01*\r
+X130750Y585500D02*X133000D01*\r
+X135551Y588500D02*Y583250D01*\r
+X136301Y582500D01*\r
+X140053Y585500D02*X140803Y584750D01*\r
+X138553Y585500D02*X140053D01*\r
+X137803Y584750D02*X138553Y585500D01*\r
+X137803Y584750D02*Y583250D01*\r
+X138553Y582500D01*\r
+X140803Y585500D02*Y583250D01*\r
+X141553Y582500D01*\r
+X138553D02*X140053D01*\r
+X140803Y583250D01*\r
+X144104Y588500D02*Y583250D01*\r
+X144854Y582500D01*\r
+X143354Y586250D02*X144854D01*\r
+X147106Y582500D02*X149356D01*\r
+X146356Y583250D02*X147106Y582500D01*\r
+X146356Y584750D02*Y583250D01*\r
+Y584750D02*X147106Y585500D01*\r
+X148606D01*\r
+X149356Y584750D01*\r
+X146356Y584000D02*X149356D01*\r
+Y584750D02*Y584000D01*\r
+X154157Y588500D02*Y582500D01*\r
+X153407D02*X154157Y583250D01*\r
+X151907Y582500D02*X153407D01*\r
+X151157Y583250D02*X151907Y582500D01*\r
+X151157Y584750D02*Y583250D01*\r
+Y584750D02*X151907Y585500D01*\r
+X153407D01*\r
+X154157Y584750D01*\r
+X157459Y585500D02*Y584750D01*\r
+Y583250D02*Y582500D01*\r
+X155959Y587750D02*Y587000D01*\r
+Y587750D02*X156709Y588500D01*\r
+X158209D01*\r
+X158959Y587750D01*\r
+Y587000D01*\r
+X157459Y585500D02*X158959Y587000D01*\r
+X0Y603500D02*X3000D01*\r
+X1500D02*Y597500D01*\r
+X4801Y603500D02*Y597500D01*\r
+Y599750D02*X5551Y600500D01*\r
+X7051D01*\r
+X7801Y599750D01*\r
+Y597500D01*\r
+X10353D02*X12603D01*\r
+X9603Y598250D02*X10353Y597500D01*\r
+X9603Y599750D02*Y598250D01*\r
+Y599750D02*X10353Y600500D01*\r
+X11853D01*\r
+X12603Y599750D01*\r
+X9603Y599000D02*X12603D01*\r
+Y599750D02*Y599000D01*\r
+X15154Y599750D02*Y597500D01*\r
+Y599750D02*X15904Y600500D01*\r
+X17404D01*\r
+X14404D02*X15154Y599750D01*\r
+X19956Y597500D02*X22206D01*\r
+X19206Y598250D02*X19956Y597500D01*\r
+X19206Y599750D02*Y598250D01*\r
+Y599750D02*X19956Y600500D01*\r
+X21456D01*\r
+X22206Y599750D01*\r
+X19206Y599000D02*X22206D01*\r
+Y599750D02*Y599000D01*\r
+X28957Y600500D02*X29707Y599750D01*\r
+X27457Y600500D02*X28957D01*\r
+X26707Y599750D02*X27457Y600500D01*\r
+X26707Y599750D02*Y598250D01*\r
+X27457Y597500D01*\r
+X29707Y600500D02*Y598250D01*\r
+X30457Y597500D01*\r
+X27457D02*X28957D01*\r
+X29707Y598250D01*\r
+X33009Y599750D02*Y597500D01*\r
+Y599750D02*X33759Y600500D01*\r
+X35259D01*\r
+X32259D02*X33009Y599750D01*\r
+X37810Y597500D02*X40060D01*\r
+X37060Y598250D02*X37810Y597500D01*\r
+X37060Y599750D02*Y598250D01*\r
+Y599750D02*X37810Y600500D01*\r
+X39310D01*\r
+X40060Y599750D01*\r
+X37060Y599000D02*X40060D01*\r
+Y599750D02*Y599000D01*\r
+X45312Y597500D02*X46812D01*\r
+X46062Y603500D02*Y597500D01*\r
+X44562Y602000D02*X46062Y603500D01*\r
+X49363Y597500D02*X50863D01*\r
+X50113Y603500D02*Y597500D01*\r
+X48613Y602000D02*X50113Y603500D01*\r
+X58365D02*Y597500D01*\r
+X57615D02*X58365Y598250D01*\r
+X56115Y597500D02*X57615D01*\r
+X55365Y598250D02*X56115Y597500D01*\r
+X55365Y599750D02*Y598250D01*\r
+Y599750D02*X56115Y600500D01*\r
+X57615D01*\r
+X58365Y599750D01*\r
+X60166Y602000D02*Y601250D01*\r
+Y599750D02*Y597500D01*\r
+X62418Y602750D02*Y597500D01*\r
+Y602750D02*X63168Y603500D01*\r
+X63918D01*\r
+X61668Y600500D02*X63168D01*\r
+X66169Y602750D02*Y597500D01*\r
+Y602750D02*X66919Y603500D01*\r
+X67669D01*\r
+X65419Y600500D02*X66919D01*\r
+X69921Y597500D02*X72171D01*\r
+X69171Y598250D02*X69921Y597500D01*\r
+X69171Y599750D02*Y598250D01*\r
+Y599750D02*X69921Y600500D01*\r
+X71421D01*\r
+X72171Y599750D01*\r
+X69171Y599000D02*X72171D01*\r
+Y599750D02*Y599000D01*\r
+X74722Y599750D02*Y597500D01*\r
+Y599750D02*X75472Y600500D01*\r
+X76972D01*\r
+X73972D02*X74722Y599750D01*\r
+X79524Y597500D02*X81774D01*\r
+X78774Y598250D02*X79524Y597500D01*\r
+X78774Y599750D02*Y598250D01*\r
+Y599750D02*X79524Y600500D01*\r
+X81024D01*\r
+X81774Y599750D01*\r
+X78774Y599000D02*X81774D01*\r
+Y599750D02*Y599000D01*\r
+X84325Y599750D02*Y597500D01*\r
+Y599750D02*X85075Y600500D01*\r
+X85825D01*\r
+X86575Y599750D01*\r
+Y597500D01*\r
+X83575Y600500D02*X84325Y599750D01*\r
+X89127Y603500D02*Y598250D01*\r
+X89877Y597500D01*\r
+X88377Y601250D02*X89877D01*\r
+X97078Y603500D02*Y597500D01*\r
+X96328D02*X97078Y598250D01*\r
+X94828Y597500D02*X96328D01*\r
+X94078Y598250D02*X94828Y597500D01*\r
+X94078Y599750D02*Y598250D01*\r
+Y599750D02*X94828Y600500D01*\r
+X96328D01*\r
+X97078Y599750D01*\r
+X99630D02*Y597500D01*\r
+Y599750D02*X100380Y600500D01*\r
+X101880D01*\r
+X98880D02*X99630Y599750D01*\r
+X103681Y602000D02*Y601250D01*\r
+Y599750D02*Y597500D01*\r
+X105183Y603500D02*Y598250D01*\r
+X105933Y597500D01*\r
+X107434Y603500D02*Y598250D01*\r
+X108184Y597500D01*\r
+X113136D02*X115386D01*\r
+X116136Y598250D01*\r
+X115386Y599000D02*X116136Y598250D01*\r
+X113136Y599000D02*X115386D01*\r
+X112386Y599750D02*X113136Y599000D01*\r
+X112386Y599750D02*X113136Y600500D01*\r
+X115386D01*\r
+X116136Y599750D01*\r
+X112386Y598250D02*X113136Y597500D01*\r
+X117937Y602000D02*Y601250D01*\r
+Y599750D02*Y597500D01*\r
+X119439Y600500D02*X122439D01*\r
+X119439Y597500D02*X122439Y600500D01*\r
+X119439Y597500D02*X122439D01*\r
+X124990D02*X127240D01*\r
+X124240Y598250D02*X124990Y597500D01*\r
+X124240Y599750D02*Y598250D01*\r
+Y599750D02*X124990Y600500D01*\r
+X126490D01*\r
+X127240Y599750D01*\r
+X124240Y599000D02*X127240D01*\r
+Y599750D02*Y599000D01*\r
+X129792Y597500D02*X132042D01*\r
+X132792Y598250D01*\r
+X132042Y599000D02*X132792Y598250D01*\r
+X129792Y599000D02*X132042D01*\r
+X129042Y599750D02*X129792Y599000D01*\r
+X129042Y599750D02*X129792Y600500D01*\r
+X132042D01*\r
+X132792Y599750D01*\r
+X129042Y598250D02*X129792Y597500D01*\r
+X137293Y600500D02*Y598250D01*\r
+X138043Y597500D01*\r
+X139543D01*\r
+X140293Y598250D01*\r
+Y600500D02*Y598250D01*\r
+X142845Y597500D02*X145095D01*\r
+X145845Y598250D01*\r
+X145095Y599000D02*X145845Y598250D01*\r
+X142845Y599000D02*X145095D01*\r
+X142095Y599750D02*X142845Y599000D01*\r
+X142095Y599750D02*X142845Y600500D01*\r
+X145095D01*\r
+X145845Y599750D01*\r
+X142095Y598250D02*X142845Y597500D01*\r
+X148396D02*X150646D01*\r
+X147646Y598250D02*X148396Y597500D01*\r
+X147646Y599750D02*Y598250D01*\r
+Y599750D02*X148396Y600500D01*\r
+X149896D01*\r
+X150646Y599750D01*\r
+X147646Y599000D02*X150646D01*\r
+Y599750D02*Y599000D01*\r
+X155448Y603500D02*Y597500D01*\r
+X154698D02*X155448Y598250D01*\r
+X153198Y597500D02*X154698D01*\r
+X152448Y598250D02*X153198Y597500D01*\r
+X152448Y599750D02*Y598250D01*\r
+Y599750D02*X153198Y600500D01*\r
+X154698D01*\r
+X155448Y599750D01*\r
+X159949Y602000D02*Y601250D01*\r
+Y599750D02*Y597500D01*\r
+X162201Y599750D02*Y597500D01*\r
+Y599750D02*X162951Y600500D01*\r
+X163701D01*\r
+X164451Y599750D01*\r
+Y597500D01*\r
+X161451Y600500D02*X162201Y599750D01*\r
+X169702Y603500D02*Y598250D01*\r
+X170452Y597500D01*\r
+X168952Y601250D02*X170452D01*\r
+X171954Y603500D02*Y597500D01*\r
+Y599750D02*X172704Y600500D01*\r
+X174204D01*\r
+X174954Y599750D01*\r
+Y597500D01*\r
+X176755Y602000D02*Y601250D01*\r
+Y599750D02*Y597500D01*\r
+X179007D02*X181257D01*\r
+X182007Y598250D01*\r
+X181257Y599000D02*X182007Y598250D01*\r
+X179007Y599000D02*X181257D01*\r
+X178257Y599750D02*X179007Y599000D01*\r
+X178257Y599750D02*X179007Y600500D01*\r
+X181257D01*\r
+X182007Y599750D01*\r
+X178257Y598250D02*X179007Y597500D01*\r
+X186508Y603500D02*Y598250D01*\r
+X187258Y597500D01*\r
+X191010Y600500D02*X191760Y599750D01*\r
+X189510Y600500D02*X191010D01*\r
+X188760Y599750D02*X189510Y600500D01*\r
+X188760Y599750D02*Y598250D01*\r
+X189510Y597500D01*\r
+X191760Y600500D02*Y598250D01*\r
+X192510Y597500D01*\r
+X189510D02*X191010D01*\r
+X191760Y598250D01*\r
+X194311Y600500D02*Y598250D01*\r
+X195061Y597500D01*\r
+X197311Y600500D02*Y596000D01*\r
+X196561Y595250D02*X197311Y596000D01*\r
+X195061Y595250D02*X196561D01*\r
+X194311Y596000D02*X195061Y595250D01*\r
+Y597500D02*X196561D01*\r
+X197311Y598250D01*\r
+X199113Y599750D02*Y598250D01*\r
+Y599750D02*X199863Y600500D01*\r
+X201363D01*\r
+X202113Y599750D01*\r
+Y598250D01*\r
+X201363Y597500D02*X202113Y598250D01*\r
+X199863Y597500D02*X201363D01*\r
+X199113Y598250D02*X199863Y597500D01*\r
+X203914Y600500D02*Y598250D01*\r
+X204664Y597500D01*\r
+X206164D01*\r
+X206914Y598250D01*\r
+Y600500D02*Y598250D01*\r
+X209466Y603500D02*Y598250D01*\r
+X210216Y597500D01*\r
+X208716Y601250D02*X210216D01*\r
+X211717Y596000D02*X213217Y597500D01*\r
+X217719Y600500D02*X220719Y603500D01*\r
+X217719Y600500D02*X221469D01*\r
+X220719Y603500D02*Y597500D01*\r
+X223270D02*X226270Y600500D01*\r
+Y602750D02*Y600500D01*\r
+X225520Y603500D02*X226270Y602750D01*\r
+X224020Y603500D02*X225520D01*\r
+X223270Y602750D02*X224020Y603500D01*\r
+X223270Y602750D02*Y601250D01*\r
+X224020Y600500D01*\r
+X226270D01*\r
+X228072Y598250D02*X228822Y597500D01*\r
+X228072Y602750D02*Y598250D01*\r
+Y602750D02*X228822Y603500D01*\r
+X230322D01*\r
+X231072Y602750D01*\r
+Y598250D01*\r
+X230322Y597500D02*X231072Y598250D01*\r
+X228822Y597500D02*X230322D01*\r
+X228072Y599000D02*X231072Y602000D01*\r
+X235573Y603500D02*Y597500D01*\r
+Y599750D02*X236323Y600500D01*\r
+X237823D01*\r
+X238573Y599750D01*\r
+Y597500D01*\r
+X240375Y599750D02*Y598250D01*\r
+Y599750D02*X241125Y600500D01*\r
+X242625D01*\r
+X243375Y599750D01*\r
+Y598250D01*\r
+X242625Y597500D02*X243375Y598250D01*\r
+X241125Y597500D02*X242625D01*\r
+X240375Y598250D02*X241125Y597500D01*\r
+X245176Y603500D02*Y598250D01*\r
+X245926Y597500D01*\r
+X248178D02*X250428D01*\r
+X247428Y598250D02*X248178Y597500D01*\r
+X247428Y599750D02*Y598250D01*\r
+Y599750D02*X248178Y600500D01*\r
+X249678D01*\r
+X250428Y599750D01*\r
+X247428Y599000D02*X250428D01*\r
+Y599750D02*Y599000D01*\r
+X252979Y597500D02*X255229D01*\r
+X255979Y598250D01*\r
+X255229Y599000D02*X255979Y598250D01*\r
+X252979Y599000D02*X255229D01*\r
+X252229Y599750D02*X252979Y599000D01*\r
+X252229Y599750D02*X252979Y600500D01*\r
+X255229D01*\r
+X255979Y599750D01*\r
+X252229Y598250D02*X252979Y597500D01*\r
+X261231Y603500D02*Y598250D01*\r
+X261981Y597500D01*\r
+X260481Y601250D02*X261981D01*\r
+X263482Y599750D02*Y598250D01*\r
+Y599750D02*X264232Y600500D01*\r
+X265732D01*\r
+X266482Y599750D01*\r
+Y598250D01*\r
+X265732Y597500D02*X266482Y598250D01*\r
+X264232Y597500D02*X265732D01*\r
+X263482Y598250D02*X264232Y597500D01*\r
+X269034Y603500D02*Y598250D01*\r
+X269784Y597500D01*\r
+X268284Y601250D02*X269784D01*\r
+X273535Y600500D02*X274285Y599750D01*\r
+X272035Y600500D02*X273535D01*\r
+X271285Y599750D02*X272035Y600500D01*\r
+X271285Y599750D02*Y598250D01*\r
+X272035Y597500D01*\r
+X274285Y600500D02*Y598250D01*\r
+X275035Y597500D01*\r
+X272035D02*X273535D01*\r
+X274285Y598250D01*\r
+X276837Y603500D02*Y598250D01*\r
+X277587Y597500D01*\r
+G54D11*X0Y410000D02*X710000D01*\r
+X0D02*Y0D01*\r
+X710000Y410000D02*Y0D01*\r
+X0D02*X710000D01*\r
+G54D42*X200000Y423500D02*Y417500D01*\r
+Y423500D02*X202250Y421250D01*\r
+X204500Y423500D01*\r
+Y417500D01*\r
+X208551Y420500D02*X209301Y419750D01*\r
+X207051Y420500D02*X208551D01*\r
+X206301Y419750D02*X207051Y420500D01*\r
+X206301Y419750D02*Y418250D01*\r
+X207051Y417500D01*\r
+X209301Y420500D02*Y418250D01*\r
+X210051Y417500D01*\r
+X207051D02*X208551D01*\r
+X209301Y418250D01*\r
+X211853Y420500D02*X214853Y417500D01*\r
+X211853D02*X214853Y420500D01*\r
+X216654Y422000D02*Y421250D01*\r
+Y419750D02*Y417500D01*\r
+X218906Y419750D02*Y417500D01*\r
+Y419750D02*X219656Y420500D01*\r
+X220406D01*\r
+X221156Y419750D01*\r
+Y417500D01*\r
+Y419750D02*X221906Y420500D01*\r
+X222656D01*\r
+X223406Y419750D01*\r
+Y417500D01*\r
+X218156Y420500D02*X218906Y419750D01*\r
+X225207Y420500D02*Y418250D01*\r
+X225957Y417500D01*\r
+X227457D01*\r
+X228207Y418250D01*\r
+Y420500D02*Y418250D01*\r
+X230759Y419750D02*Y417500D01*\r
+Y419750D02*X231509Y420500D01*\r
+X232259D01*\r
+X233009Y419750D01*\r
+Y417500D01*\r
+Y419750D02*X233759Y420500D01*\r
+X234509D01*\r
+X235259Y419750D01*\r
+Y417500D01*\r
+X230009Y420500D02*X230759Y419750D01*\r
+X240510Y423500D02*Y417500D01*\r
+X242760Y423500D02*X243510Y422750D01*\r
+Y418250D01*\r
+X242760Y417500D02*X243510Y418250D01*\r
+X239760Y417500D02*X242760D01*\r
+X239760Y423500D02*X242760D01*\r
+X245312Y422000D02*Y421250D01*\r
+Y419750D02*Y417500D01*\r
+X247563Y419750D02*Y417500D01*\r
+Y419750D02*X248313Y420500D01*\r
+X249063D01*\r
+X249813Y419750D01*\r
+Y417500D01*\r
+Y419750D02*X250563Y420500D01*\r
+X251313D01*\r
+X252063Y419750D01*\r
+Y417500D01*\r
+X246813Y420500D02*X247563Y419750D01*\r
+X254615Y417500D02*X256865D01*\r
+X253865Y418250D02*X254615Y417500D01*\r
+X253865Y419750D02*Y418250D01*\r
+Y419750D02*X254615Y420500D01*\r
+X256115D01*\r
+X256865Y419750D01*\r
+X253865Y419000D02*X256865D01*\r
+Y419750D02*Y419000D01*\r
+X259416Y419750D02*Y417500D01*\r
+Y419750D02*X260166Y420500D01*\r
+X260916D01*\r
+X261666Y419750D01*\r
+Y417500D01*\r
+X258666Y420500D02*X259416Y419750D01*\r
+X264218Y417500D02*X266468D01*\r
+X267218Y418250D01*\r
+X266468Y419000D02*X267218Y418250D01*\r
+X264218Y419000D02*X266468D01*\r
+X263468Y419750D02*X264218Y419000D01*\r
+X263468Y419750D02*X264218Y420500D01*\r
+X266468D01*\r
+X267218Y419750D01*\r
+X263468Y418250D02*X264218Y417500D01*\r
+X269019Y422000D02*Y421250D01*\r
+Y419750D02*Y417500D01*\r
+X270521Y419750D02*Y418250D01*\r
+Y419750D02*X271271Y420500D01*\r
+X272771D01*\r
+X273521Y419750D01*\r
+Y418250D01*\r
+X272771Y417500D02*X273521Y418250D01*\r
+X271271Y417500D02*X272771D01*\r
+X270521Y418250D02*X271271Y417500D01*\r
+X276072Y419750D02*Y417500D01*\r
+Y419750D02*X276822Y420500D01*\r
+X277572D01*\r
+X278322Y419750D01*\r
+Y417500D01*\r
+X275322Y420500D02*X276072Y419750D01*\r
+X280874Y417500D02*X283124D01*\r
+X283874Y418250D01*\r
+X283124Y419000D02*X283874Y418250D01*\r
+X280874Y419000D02*X283124D01*\r
+X280124Y419750D02*X280874Y419000D01*\r
+X280124Y419750D02*X280874Y420500D01*\r
+X283124D01*\r
+X283874Y419750D01*\r
+X280124Y418250D02*X280874Y417500D01*\r
+X285675Y421250D02*X286425D01*\r
+X285675Y419750D02*X286425D01*\r
+X290927Y417500D02*X294677Y421250D01*\r
+Y423500D02*Y421250D01*\r
+X290927Y423500D02*X294677D01*\r
+X297228Y417500D02*X298728D01*\r
+X297978Y423500D02*Y417500D01*\r
+X296478Y422000D02*X297978Y423500D01*\r
+X300530Y418250D02*X301280Y417500D01*\r
+X300530Y422750D02*Y418250D01*\r
+Y422750D02*X301280Y423500D01*\r
+X302780D01*\r
+X303530Y422750D01*\r
+Y418250D01*\r
+X302780Y417500D02*X303530Y418250D01*\r
+X301280Y417500D02*X302780D01*\r
+X300530Y419000D02*X303530Y422000D01*\r
+X305331Y418250D02*X306081Y417500D01*\r
+X305331Y422750D02*Y418250D01*\r
+Y422750D02*X306081Y423500D01*\r
+X307581D01*\r
+X308331Y422750D01*\r
+Y418250D01*\r
+X307581Y417500D02*X308331Y418250D01*\r
+X306081Y417500D02*X307581D01*\r
+X305331Y419000D02*X308331Y422000D01*\r
+X313583Y419750D02*Y417500D01*\r
+Y419750D02*X314333Y420500D01*\r
+X315083D01*\r
+X315833Y419750D01*\r
+Y417500D01*\r
+Y419750D02*X316583Y420500D01*\r
+X317333D01*\r
+X318083Y419750D01*\r
+Y417500D01*\r
+X312833Y420500D02*X313583Y419750D01*\r
+X319884Y422000D02*Y421250D01*\r
+Y419750D02*Y417500D01*\r
+X321386Y423500D02*Y418250D01*\r
+X322136Y417500D01*\r
+X324387D02*X326637D01*\r
+X327387Y418250D01*\r
+X326637Y419000D02*X327387Y418250D01*\r
+X324387Y419000D02*X326637D01*\r
+X323637Y419750D02*X324387Y419000D01*\r
+X323637Y419750D02*X324387Y420500D01*\r
+X326637D01*\r
+X327387Y419750D01*\r
+X323637Y418250D02*X324387Y417500D01*\r
+X331889Y420500D02*Y418250D01*\r
+X332639Y417500D01*\r
+X333389D01*\r
+X334139Y418250D01*\r
+Y420500D02*Y418250D01*\r
+X334889Y417500D01*\r
+X335639D01*\r
+X336389Y418250D01*\r
+Y420500D02*Y418250D01*\r
+X338190Y422000D02*Y421250D01*\r
+Y419750D02*Y417500D01*\r
+X342692Y423500D02*Y417500D01*\r
+X341942D02*X342692Y418250D01*\r
+X340442Y417500D02*X341942D01*\r
+X339692Y418250D02*X340442Y417500D01*\r
+X339692Y419750D02*Y418250D01*\r
+Y419750D02*X340442Y420500D01*\r
+X341942D01*\r
+X342692Y419750D01*\r
+X345243Y417500D02*X347493D01*\r
+X344493Y418250D02*X345243Y417500D01*\r
+X344493Y419750D02*Y418250D01*\r
+Y419750D02*X345243Y420500D01*\r
+X346743D01*\r
+X347493Y419750D01*\r
+X344493Y419000D02*X347493D01*\r
+Y419750D02*Y419000D01*\r
+X349295Y416000D02*X350795Y417500D01*\r
+X355296Y420500D02*X358296Y423500D01*\r
+X355296Y420500D02*X359046D01*\r
+X358296Y423500D02*Y417500D01*\r
+X361598D02*X363098D01*\r
+X362348Y423500D02*Y417500D01*\r
+X360848Y422000D02*X362348Y423500D01*\r
+X364899Y418250D02*X365649Y417500D01*\r
+X364899Y422750D02*Y418250D01*\r
+Y422750D02*X365649Y423500D01*\r
+X367149D01*\r
+X367899Y422750D01*\r
+Y418250D01*\r
+X367149Y417500D02*X367899Y418250D01*\r
+X365649Y417500D02*X367149D01*\r
+X364899Y419000D02*X367899Y422000D01*\r
+X369701Y418250D02*X370451Y417500D01*\r
+X369701Y422750D02*Y418250D01*\r
+Y422750D02*X370451Y423500D01*\r
+X371951D01*\r
+X372701Y422750D01*\r
+Y418250D01*\r
+X371951Y417500D02*X372701Y418250D01*\r
+X370451Y417500D02*X371951D01*\r
+X369701Y419000D02*X372701Y422000D01*\r
+X377952Y419750D02*Y417500D01*\r
+Y419750D02*X378702Y420500D01*\r
+X379452D01*\r
+X380202Y419750D01*\r
+Y417500D01*\r
+Y419750D02*X380952Y420500D01*\r
+X381702D01*\r
+X382452Y419750D01*\r
+Y417500D01*\r
+X377202Y420500D02*X377952Y419750D01*\r
+X384254Y422000D02*Y421250D01*\r
+Y419750D02*Y417500D01*\r
+X385755Y423500D02*Y418250D01*\r
+X386505Y417500D01*\r
+X388757D02*X391007D01*\r
+X391757Y418250D01*\r
+X391007Y419000D02*X391757Y418250D01*\r
+X388757Y419000D02*X391007D01*\r
+X388007Y419750D02*X388757Y419000D01*\r
+X388007Y419750D02*X388757Y420500D01*\r
+X391007D01*\r
+X391757Y419750D01*\r
+X388007Y418250D02*X388757Y417500D01*\r
+X396258Y423500D02*Y417500D01*\r
+Y419750D02*X397008Y420500D01*\r
+X398508D01*\r
+X399258Y419750D01*\r
+Y417500D01*\r
+X401060Y422000D02*Y421250D01*\r
+Y419750D02*Y417500D01*\r
+X404811Y420500D02*X405561Y419750D01*\r
+X403311Y420500D02*X404811D01*\r
+X402561Y419750D02*X403311Y420500D01*\r
+X402561Y419750D02*Y418250D01*\r
+X403311Y417500D01*\r
+X404811D01*\r
+X405561Y418250D01*\r
+X402561Y416000D02*X403311Y415250D01*\r
+X404811D01*\r
+X405561Y416000D01*\r
+Y420500D02*Y416000D01*\r
+X407363Y423500D02*Y417500D01*\r
+Y419750D02*X408113Y420500D01*\r
+X409613D01*\r
+X410363Y419750D01*\r
+Y417500D01*\r
+X197226Y-9500D02*X200226D01*\r
+X200976Y-8750D01*\r
+Y-7250D02*Y-8750D01*\r
+X200226Y-6500D02*X200976Y-7250D01*\r
+X197976Y-6500D02*X200226D01*\r
+X197976Y-3500D02*Y-9500D01*\r
+X197226Y-3500D02*X200226D01*\r
+X200976Y-4250D01*\r
+Y-5750D01*\r
+X200226Y-6500D02*X200976Y-5750D01*\r
+X202777Y-7250D02*Y-8750D01*\r
+Y-7250D02*X203527Y-6500D01*\r
+X205027D01*\r
+X205777Y-7250D01*\r
+Y-8750D01*\r
+X205027Y-9500D02*X205777Y-8750D01*\r
+X203527Y-9500D02*X205027D01*\r
+X202777Y-8750D02*X203527Y-9500D01*\r
+X209829Y-6500D02*X210579Y-7250D01*\r
+X208329Y-6500D02*X209829D01*\r
+X207579Y-7250D02*X208329Y-6500D01*\r
+X207579Y-7250D02*Y-8750D01*\r
+X208329Y-9500D01*\r
+X210579Y-6500D02*Y-8750D01*\r
+X211329Y-9500D01*\r
+X208329D02*X209829D01*\r
+X210579Y-8750D01*\r
+X213880Y-7250D02*Y-9500D01*\r
+Y-7250D02*X214630Y-6500D01*\r
+X216130D01*\r
+X213130D02*X213880Y-7250D01*\r
+X220932Y-3500D02*Y-9500D01*\r
+X220182D02*X220932Y-8750D01*\r
+X218682Y-9500D02*X220182D01*\r
+X217932Y-8750D02*X218682Y-9500D01*\r
+X217932Y-7250D02*Y-8750D01*\r
+Y-7250D02*X218682Y-6500D01*\r
+X220182D01*\r
+X220932Y-7250D01*\r
+X225433D02*Y-8750D01*\r
+Y-7250D02*X226183Y-6500D01*\r
+X227683D01*\r
+X228433Y-7250D01*\r
+Y-8750D01*\r
+X227683Y-9500D02*X228433Y-8750D01*\r
+X226183Y-9500D02*X227683D01*\r
+X225433Y-8750D02*X226183Y-9500D01*\r
+X230235Y-6500D02*Y-8750D01*\r
+X230985Y-9500D01*\r
+X232485D01*\r
+X233235Y-8750D01*\r
+Y-6500D02*Y-8750D01*\r
+X235786Y-3500D02*Y-8750D01*\r
+X236536Y-9500D01*\r
+X235036Y-5750D02*X236536D01*\r
+X238038Y-3500D02*Y-8750D01*\r
+X238788Y-9500D01*\r
+X240289Y-5000D02*Y-5750D01*\r
+Y-7250D02*Y-9500D01*\r
+X242541Y-7250D02*Y-9500D01*\r
+Y-7250D02*X243291Y-6500D01*\r
+X244041D01*\r
+X244791Y-7250D01*\r
+Y-9500D01*\r
+X241791Y-6500D02*X242541Y-7250D01*\r
+X247342Y-9500D02*X249592D01*\r
+X246592Y-8750D02*X247342Y-9500D01*\r
+X246592Y-7250D02*Y-8750D01*\r
+Y-7250D02*X247342Y-6500D01*\r
+X248842D01*\r
+X249592Y-7250D01*\r
+X246592Y-8000D02*X249592D01*\r
+Y-7250D02*Y-8000D01*\r
+X254094Y-5000D02*Y-5750D01*\r
+Y-7250D02*Y-9500D01*\r
+X256345D02*X258595D01*\r
+X259345Y-8750D01*\r
+X258595Y-8000D02*X259345Y-8750D01*\r
+X256345Y-8000D02*X258595D01*\r
+X255595Y-7250D02*X256345Y-8000D01*\r
+X255595Y-7250D02*X256345Y-6500D01*\r
+X258595D01*\r
+X259345Y-7250D01*\r
+X255595Y-8750D02*X256345Y-9500D01*\r
+X264597Y-3500D02*Y-8750D01*\r
+X265347Y-9500D01*\r
+X263847Y-5750D02*X265347D01*\r
+X266848Y-3500D02*Y-9500D01*\r
+Y-7250D02*X267598Y-6500D01*\r
+X269098D01*\r
+X269848Y-7250D01*\r
+Y-9500D01*\r
+X272400D02*X274650D01*\r
+X271650Y-8750D02*X272400Y-9500D01*\r
+X271650Y-7250D02*Y-8750D01*\r
+Y-7250D02*X272400Y-6500D01*\r
+X273900D01*\r
+X274650Y-7250D01*\r
+X271650Y-8000D02*X274650D01*\r
+Y-7250D02*Y-8000D01*\r
+X279901Y-6500D02*X282151D01*\r
+X279151Y-7250D02*X279901Y-6500D01*\r
+X279151Y-7250D02*Y-8750D01*\r
+X279901Y-9500D01*\r
+X282151D01*\r
+X284703D02*X286953D01*\r
+X283953Y-8750D02*X284703Y-9500D01*\r
+X283953Y-7250D02*Y-8750D01*\r
+Y-7250D02*X284703Y-6500D01*\r
+X286203D01*\r
+X286953Y-7250D01*\r
+X283953Y-8000D02*X286953D01*\r
+Y-7250D02*Y-8000D01*\r
+X289504Y-7250D02*Y-9500D01*\r
+Y-7250D02*X290254Y-6500D01*\r
+X291004D01*\r
+X291754Y-7250D01*\r
+Y-9500D01*\r
+X288754Y-6500D02*X289504Y-7250D01*\r
+X294306Y-3500D02*Y-8750D01*\r
+X295056Y-9500D01*\r
+X293556Y-5750D02*X295056D01*\r
+X297307Y-9500D02*X299557D01*\r
+X296557Y-8750D02*X297307Y-9500D01*\r
+X296557Y-7250D02*Y-8750D01*\r
+Y-7250D02*X297307Y-6500D01*\r
+X298807D01*\r
+X299557Y-7250D01*\r
+X296557Y-8000D02*X299557D01*\r
+Y-7250D02*Y-8000D01*\r
+X302109Y-7250D02*Y-9500D01*\r
+Y-7250D02*X302859Y-6500D01*\r
+X304359D01*\r
+X301359D02*X302109Y-7250D01*\r
+X306160Y-3500D02*Y-8750D01*\r
+X306910Y-9500D01*\r
+X308412Y-5000D02*Y-5750D01*\r
+Y-7250D02*Y-9500D01*\r
+X310663Y-7250D02*Y-9500D01*\r
+Y-7250D02*X311413Y-6500D01*\r
+X312163D01*\r
+X312913Y-7250D01*\r
+Y-9500D01*\r
+X309913Y-6500D02*X310663Y-7250D01*\r
+X315465Y-9500D02*X317715D01*\r
+X314715Y-8750D02*X315465Y-9500D01*\r
+X314715Y-7250D02*Y-8750D01*\r
+Y-7250D02*X315465Y-6500D01*\r
+X316965D01*\r
+X317715Y-7250D01*\r
+X314715Y-8000D02*X317715D01*\r
+Y-7250D02*Y-8000D01*\r
+X322216Y-7250D02*Y-8750D01*\r
+Y-7250D02*X322966Y-6500D01*\r
+X324466D01*\r
+X325216Y-7250D01*\r
+Y-8750D01*\r
+X324466Y-9500D02*X325216Y-8750D01*\r
+X322966Y-9500D02*X324466D01*\r
+X322216Y-8750D02*X322966Y-9500D01*\r
+X327768Y-4250D02*Y-9500D01*\r
+Y-4250D02*X328518Y-3500D01*\r
+X329268D01*\r
+X327018Y-6500D02*X328518D01*\r
+X334219Y-3500D02*Y-8750D01*\r
+X334969Y-9500D01*\r
+X333469Y-5750D02*X334969D01*\r
+X336471Y-3500D02*Y-9500D01*\r
+Y-7250D02*X337221Y-6500D01*\r
+X338721D01*\r
+X339471Y-7250D01*\r
+Y-9500D01*\r
+X341272Y-5000D02*Y-5750D01*\r
+Y-7250D02*Y-9500D01*\r
+X343524D02*X345774D01*\r
+X346524Y-8750D01*\r
+X345774Y-8000D02*X346524Y-8750D01*\r
+X343524Y-8000D02*X345774D01*\r
+X342774Y-7250D02*X343524Y-8000D01*\r
+X342774Y-7250D02*X343524Y-6500D01*\r
+X345774D01*\r
+X346524Y-7250D01*\r
+X342774Y-8750D02*X343524Y-9500D01*\r
+X351775D02*X353275D01*\r
+X352525Y-3500D02*Y-9500D01*\r
+X351025Y-5000D02*X352525Y-3500D01*\r
+X355077Y-8750D02*X355827Y-9500D01*\r
+X355077Y-4250D02*Y-8750D01*\r
+Y-4250D02*X355827Y-3500D01*\r
+X357327D01*\r
+X358077Y-4250D01*\r
+Y-8750D01*\r
+X357327Y-9500D02*X358077Y-8750D01*\r
+X355827Y-9500D02*X357327D01*\r
+X355077Y-8000D02*X358077Y-5000D01*\r
+X363328Y-7250D02*Y-9500D01*\r
+Y-7250D02*X364078Y-6500D01*\r
+X364828D01*\r
+X365578Y-7250D01*\r
+Y-9500D01*\r
+Y-7250D02*X366328Y-6500D01*\r
+X367078D01*\r
+X367828Y-7250D01*\r
+Y-9500D01*\r
+X362578Y-6500D02*X363328Y-7250D01*\r
+X369630Y-5000D02*Y-5750D01*\r
+Y-7250D02*Y-9500D01*\r
+X371131Y-3500D02*Y-8750D01*\r
+X371881Y-9500D01*\r
+X376833Y-7250D02*Y-9500D01*\r
+Y-7250D02*X377583Y-6500D01*\r
+X379083D01*\r
+X376083D02*X376833Y-7250D01*\r
+X381634Y-9500D02*X383884D01*\r
+X380884Y-8750D02*X381634Y-9500D01*\r
+X380884Y-7250D02*Y-8750D01*\r
+Y-7250D02*X381634Y-6500D01*\r
+X383134D01*\r
+X383884Y-7250D01*\r
+X380884Y-8000D02*X383884D01*\r
+Y-7250D02*Y-8000D01*\r
+X386436Y-6500D02*X388686D01*\r
+X385686Y-7250D02*X386436Y-6500D01*\r
+X385686Y-7250D02*Y-8750D01*\r
+X386436Y-9500D01*\r
+X388686D01*\r
+X391237Y-3500D02*Y-8750D01*\r
+X391987Y-9500D01*\r
+X390487Y-5750D02*X391987D01*\r
+X395739Y-6500D02*X396489Y-7250D01*\r
+X394239Y-6500D02*X395739D01*\r
+X393489Y-7250D02*X394239Y-6500D01*\r
+X393489Y-7250D02*Y-8750D01*\r
+X394239Y-9500D01*\r
+X396489Y-6500D02*Y-8750D01*\r
+X397239Y-9500D01*\r
+X394239D02*X395739D01*\r
+X396489Y-8750D01*\r
+X399790Y-7250D02*Y-9500D01*\r
+Y-7250D02*X400540Y-6500D01*\r
+X401290D01*\r
+X402040Y-7250D01*\r
+Y-9500D01*\r
+X399040Y-6500D02*X399790Y-7250D01*\r
+X406092Y-6500D02*X406842Y-7250D01*\r
+X404592Y-6500D02*X406092D01*\r
+X403842Y-7250D02*X404592Y-6500D01*\r
+X403842Y-7250D02*Y-8750D01*\r
+X404592Y-9500D01*\r
+X406092D01*\r
+X406842Y-8750D01*\r
+X403842Y-11000D02*X404592Y-11750D01*\r
+X406092D01*\r
+X406842Y-11000D01*\r
+Y-6500D02*Y-11000D01*\r
+X408643Y-3500D02*Y-8750D01*\r
+X409393Y-9500D01*\r
+X411645D02*X413895D01*\r
+X410895Y-8750D02*X411645Y-9500D01*\r
+X410895Y-7250D02*Y-8750D01*\r
+Y-7250D02*X411645Y-6500D01*\r
+X413145D01*\r
+X413895Y-7250D01*\r
+X410895Y-8000D02*X413895D01*\r
+Y-7250D02*Y-8000D01*\r
+X418396Y-6500D02*X421396D01*\r
+X425898Y-8750D02*X426648Y-9500D01*\r
+X425898Y-4250D02*Y-8750D01*\r
+Y-4250D02*X426648Y-3500D01*\r
+X428148D01*\r
+X428898Y-4250D01*\r
+Y-8750D01*\r
+X428148Y-9500D02*X428898Y-8750D01*\r
+X426648Y-9500D02*X428148D01*\r
+X425898Y-8000D02*X428898Y-5000D01*\r
+X430699Y-11000D02*X432199Y-9500D01*\r
+X434001Y-8750D02*X434751Y-9500D01*\r
+X434001Y-4250D02*Y-8750D01*\r
+Y-4250D02*X434751Y-3500D01*\r
+X436251D01*\r
+X437001Y-4250D01*\r
+Y-8750D01*\r
+X436251Y-9500D02*X437001Y-8750D01*\r
+X434751Y-9500D02*X436251D01*\r
+X434001Y-8000D02*X437001Y-5000D01*\r
+X442252Y-3500D02*Y-8750D01*\r
+X443002Y-9500D01*\r
+X441502Y-5750D02*X443002D01*\r
+X444504Y-7250D02*Y-8750D01*\r
+Y-7250D02*X445254Y-6500D01*\r
+X446754D01*\r
+X447504Y-7250D01*\r
+Y-8750D01*\r
+X446754Y-9500D02*X447504Y-8750D01*\r
+X445254Y-9500D02*X446754D01*\r
+X444504Y-8750D02*X445254Y-9500D01*\r
+X452005D02*X455755Y-5750D01*\r
+Y-3500D02*Y-5750D01*\r
+X452005Y-3500D02*X455755D01*\r
+X458307Y-9500D02*X459807D01*\r
+X459057Y-3500D02*Y-9500D01*\r
+X457557Y-5000D02*X459057Y-3500D01*\r
+X461608Y-8750D02*X462358Y-9500D01*\r
+X461608Y-4250D02*Y-8750D01*\r
+Y-4250D02*X462358Y-3500D01*\r
+X463858D01*\r
+X464608Y-4250D01*\r
+Y-8750D01*\r
+X463858Y-9500D02*X464608Y-8750D01*\r
+X462358Y-9500D02*X463858D01*\r
+X461608Y-8000D02*X464608Y-5000D01*\r
+X466410Y-8750D02*X467160Y-9500D01*\r
+X466410Y-4250D02*Y-8750D01*\r
+Y-4250D02*X467160Y-3500D01*\r
+X468660D01*\r
+X469410Y-4250D01*\r
+Y-8750D01*\r
+X468660Y-9500D02*X469410Y-8750D01*\r
+X467160Y-9500D02*X468660D01*\r
+X466410Y-8000D02*X469410Y-5000D01*\r
+X471211Y-11000D02*X472711Y-9500D01*\r
+X474513Y-6500D02*X477513Y-3500D01*\r
+X474513Y-6500D02*X478263D01*\r
+X477513Y-3500D02*Y-9500D01*\r
+X480814D02*X482314D01*\r
+X481564Y-3500D02*Y-9500D01*\r
+X480064Y-5000D02*X481564Y-3500D01*\r
+X484116Y-8750D02*X484866Y-9500D01*\r
+X484116Y-4250D02*Y-8750D01*\r
+Y-4250D02*X484866Y-3500D01*\r
+X486366D01*\r
+X487116Y-4250D01*\r
+Y-8750D01*\r
+X486366Y-9500D02*X487116Y-8750D01*\r
+X484866Y-9500D02*X486366D01*\r
+X484116Y-8000D02*X487116Y-5000D01*\r
+X488917Y-8750D02*X489667Y-9500D01*\r
+X488917Y-4250D02*Y-8750D01*\r
+Y-4250D02*X489667Y-3500D01*\r
+X491167D01*\r
+X491917Y-4250D01*\r
+Y-8750D01*\r
+X491167Y-9500D02*X491917Y-8750D01*\r
+X489667Y-9500D02*X491167D01*\r
+X488917Y-8000D02*X491917Y-5000D01*\r
+X497169Y-7250D02*Y-9500D01*\r
+Y-7250D02*X497919Y-6500D01*\r
+X498669D01*\r
+X499419Y-7250D01*\r
+Y-9500D01*\r
+Y-7250D02*X500169Y-6500D01*\r
+X500919D01*\r
+X501669Y-7250D01*\r
+Y-9500D01*\r
+X496419Y-6500D02*X497169Y-7250D01*\r
+X503470Y-5000D02*Y-5750D01*\r
+Y-7250D02*Y-9500D01*\r
+X504972Y-3500D02*Y-8750D01*\r
+X505722Y-9500D01*\r
+X507973D02*X510223D01*\r
+X510973Y-8750D01*\r
+X510223Y-8000D02*X510973Y-8750D01*\r
+X507973Y-8000D02*X510223D01*\r
+X507223Y-7250D02*X507973Y-8000D01*\r
+X507223Y-7250D02*X507973Y-6500D01*\r
+X510223D01*\r
+X510973Y-7250D01*\r
+X507223Y-8750D02*X507973Y-9500D01*\r
+X200750Y438500D02*Y432500D01*\r
+X203000Y438500D02*X203750Y437750D01*\r
+Y433250D01*\r
+X203000Y432500D02*X203750Y433250D01*\r
+X200000Y432500D02*X203000D01*\r
+X200000Y438500D02*X203000D01*\r
+X207801Y435500D02*X208551Y434750D01*\r
+X206301Y435500D02*X207801D01*\r
+X205551Y434750D02*X206301Y435500D01*\r
+X205551Y434750D02*Y433250D01*\r
+X206301Y432500D01*\r
+X208551Y435500D02*Y433250D01*\r
+X209301Y432500D01*\r
+X206301D02*X207801D01*\r
+X208551Y433250D01*\r
+X211853Y438500D02*Y433250D01*\r
+X212603Y432500D01*\r
+X211103Y436250D02*X212603D01*\r
+X214854Y432500D02*X217104D01*\r
+X214104Y433250D02*X214854Y432500D01*\r
+X214104Y434750D02*Y433250D01*\r
+Y434750D02*X214854Y435500D01*\r
+X216354D01*\r
+X217104Y434750D01*\r
+X214104Y434000D02*X217104D01*\r
+Y434750D02*Y434000D01*\r
+X218906Y436250D02*X219656D01*\r
+X218906Y434750D02*X219656D01*\r
+X224157Y438500D02*X227157D01*\r
+X225657D02*Y432500D01*\r
+X228959Y438500D02*Y432500D01*\r
+Y434750D02*X229709Y435500D01*\r
+X231209D01*\r
+X231959Y434750D01*\r
+Y432500D01*\r
+X233760Y435500D02*Y433250D01*\r
+X234510Y432500D01*\r
+X236010D01*\r
+X236760Y433250D01*\r
+Y435500D02*Y433250D01*\r
+X242012Y432500D02*X243512D01*\r
+X242762Y438500D02*Y432500D01*\r
+X241262Y437000D02*X242762Y438500D01*\r
+X245313Y433250D02*X246063Y432500D01*\r
+X245313Y434750D02*Y433250D01*\r
+Y434750D02*X246063Y435500D01*\r
+X247563D01*\r
+X248313Y434750D01*\r
+Y433250D01*\r
+X247563Y432500D02*X248313Y433250D01*\r
+X246063Y432500D02*X247563D01*\r
+X245313Y436250D02*X246063Y435500D01*\r
+X245313Y437750D02*Y436250D01*\r
+Y437750D02*X246063Y438500D01*\r
+X247563D01*\r
+X248313Y437750D01*\r
+Y436250D01*\r
+X247563Y435500D02*X248313Y436250D01*\r
+X252815Y438500D02*Y432500D01*\r
+Y438500D02*Y437750D01*\r
+X256565Y434000D01*\r
+Y438500D02*Y432500D01*\r
+X258366Y434750D02*Y433250D01*\r
+Y434750D02*X259116Y435500D01*\r
+X260616D01*\r
+X261366Y434750D01*\r
+Y433250D01*\r
+X260616Y432500D02*X261366Y433250D01*\r
+X259116Y432500D02*X260616D01*\r
+X258366Y433250D02*X259116Y432500D01*\r
+X263168Y435500D02*Y434000D01*\r
+X264668Y432500D01*\r
+X266168Y434000D01*\r
+Y435500D02*Y434000D01*\r
+X270669Y437750D02*X271419Y438500D01*\r
+X273669D01*\r
+X274419Y437750D01*\r
+Y436250D01*\r
+X270669Y432500D02*X274419Y436250D01*\r
+X270669Y432500D02*X274419D01*\r
+X276221Y433250D02*X276971Y432500D01*\r
+X276221Y437750D02*Y433250D01*\r
+Y437750D02*X276971Y438500D01*\r
+X278471D01*\r
+X279221Y437750D01*\r
+Y433250D01*\r
+X278471Y432500D02*X279221Y433250D01*\r
+X276971Y432500D02*X278471D01*\r
+X276221Y434000D02*X279221Y437000D01*\r
+X281772Y432500D02*X283272D01*\r
+X282522Y438500D02*Y432500D01*\r
+X281022Y437000D02*X282522Y438500D01*\r
+X285074Y433250D02*X285824Y432500D01*\r
+X285074Y437750D02*Y433250D01*\r
+Y437750D02*X285824Y438500D01*\r
+X287324D01*\r
+X288074Y437750D01*\r
+Y433250D01*\r
+X287324Y432500D02*X288074Y433250D01*\r
+X285824Y432500D02*X287324D01*\r
+X285074Y434000D02*X288074Y437000D01*\r
+X292575Y433250D02*X293325Y432500D01*\r
+X292575Y437750D02*Y433250D01*\r
+Y437750D02*X293325Y438500D01*\r
+X294825D01*\r
+X295575Y437750D01*\r
+Y433250D01*\r
+X294825Y432500D02*X295575Y433250D01*\r
+X293325Y432500D02*X294825D01*\r
+X292575Y434000D02*X295575Y437000D01*\r
+X297377Y432500D02*X301127Y436250D01*\r
+Y438500D02*Y436250D01*\r
+X297377Y438500D02*X301127D01*\r
+X302928Y436250D02*X303678D01*\r
+X302928Y434750D02*X303678D01*\r
+X305480Y435500D02*X308480Y438500D01*\r
+X305480Y435500D02*X309230D01*\r
+X308480Y438500D02*Y432500D01*\r
+X311031Y433250D02*X311781Y432500D01*\r
+X311031Y437750D02*Y433250D01*\r
+Y437750D02*X311781Y438500D01*\r
+X313281D01*\r
+X314031Y437750D01*\r
+Y433250D01*\r
+X313281Y432500D02*X314031Y433250D01*\r
+X311781Y432500D02*X313281D01*\r
+X311031Y434000D02*X314031Y437000D01*\r
+X315833Y436250D02*X316583D01*\r
+X315833Y434750D02*X316583D01*\r
+X318384Y437750D02*X319134Y438500D01*\r
+X321384D01*\r
+X322134Y437750D01*\r
+Y436250D01*\r
+X318384Y432500D02*X322134Y436250D01*\r
+X318384Y432500D02*X322134D01*\r
+X323936Y433250D02*X324686Y432500D01*\r
+X323936Y434750D02*Y433250D01*\r
+Y434750D02*X324686Y435500D01*\r
+X326186D01*\r
+X326936Y434750D01*\r
+Y433250D01*\r
+X326186Y432500D02*X326936Y433250D01*\r
+X324686Y432500D02*X326186D01*\r
+X323936Y436250D02*X324686Y435500D01*\r
+X323936Y437750D02*Y436250D01*\r
+Y437750D02*X324686Y438500D01*\r
+X326186D01*\r
+X326936Y437750D01*\r
+Y436250D01*\r
+X326186Y435500D02*X326936Y436250D01*\r
+X332187Y438500D02*Y432500D01*\r
+X331437Y438500D02*X334437D01*\r
+X335187Y437750D01*\r
+Y436250D01*\r
+X334437Y435500D02*X335187Y436250D01*\r
+X332187Y435500D02*X334437D01*\r
+X336989Y438500D02*Y432500D01*\r
+Y438500D02*X339239Y436250D01*\r
+X341489Y438500D01*\r
+Y432500D01*\r
+X348990Y438500D02*X349740Y437750D01*\r
+X346740Y438500D02*X348990D01*\r
+X345990Y437750D02*X346740Y438500D01*\r
+X345990Y437750D02*Y433250D01*\r
+X346740Y432500D01*\r
+X348990D01*\r
+X349740Y433250D01*\r
+Y434750D02*Y433250D01*\r
+X348990Y435500D02*X349740Y434750D01*\r
+X347490Y435500D02*X348990D01*\r
+X351542Y438500D02*Y432500D01*\r
+Y438500D02*X353792Y436250D01*\r
+X356042Y438500D01*\r
+Y432500D01*\r
+X357843Y438500D02*X360843D01*\r
+X359343D02*Y432500D01*\r
+X365345Y438500D02*Y433250D01*\r
+X366095Y432500D01*\r
+X367595D01*\r
+X368345Y433250D01*\r
+Y438500D02*Y433250D01*\r
+X370146Y438500D02*X373146D01*\r
+X371646D02*Y432500D01*\r
+X375698D02*X377948D01*\r
+X374948Y433250D02*X375698Y432500D01*\r
+X374948Y437750D02*Y433250D01*\r
+Y437750D02*X375698Y438500D01*\r
+X377948D01*\r
+X200000Y452750D02*Y447500D01*\r
+Y452750D02*X200750Y453500D01*\r
+X203000D01*\r
+X203750Y452750D01*\r
+Y447500D01*\r
+X200000Y450500D02*X203750D01*\r
+X205551D02*Y448250D01*\r
+X206301Y447500D01*\r
+X207801D01*\r
+X208551Y448250D01*\r
+Y450500D02*Y448250D01*\r
+X211103Y453500D02*Y448250D01*\r
+X211853Y447500D01*\r
+X210353Y451250D02*X211853D01*\r
+X213354Y453500D02*Y447500D01*\r
+Y449750D02*X214104Y450500D01*\r
+X215604D01*\r
+X216354Y449750D01*\r
+Y447500D01*\r
+X218156Y449750D02*Y448250D01*\r
+Y449750D02*X218906Y450500D01*\r
+X220406D01*\r
+X221156Y449750D01*\r
+Y448250D01*\r
+X220406Y447500D02*X221156Y448250D01*\r
+X218906Y447500D02*X220406D01*\r
+X218156Y448250D02*X218906Y447500D01*\r
+X223707Y449750D02*Y447500D01*\r
+Y449750D02*X224457Y450500D01*\r
+X225957D01*\r
+X222957D02*X223707Y449750D01*\r
+X227759Y451250D02*X228509D01*\r
+X227759Y449750D02*X228509D01*\r
+X233010Y452750D02*Y447500D01*\r
+Y452750D02*X233760Y453500D01*\r
+X236010D01*\r
+X236760Y452750D01*\r
+Y447500D01*\r
+X233010Y450500D02*X236760D01*\r
+X239312Y449750D02*Y447500D01*\r
+Y449750D02*X240062Y450500D01*\r
+X240812D01*\r
+X241562Y449750D01*\r
+Y447500D01*\r
+X238562Y450500D02*X239312Y449750D01*\r
+X246363Y453500D02*Y447500D01*\r
+X245613D02*X246363Y448250D01*\r
+X244113Y447500D02*X245613D01*\r
+X243363Y448250D02*X244113Y447500D01*\r
+X243363Y449750D02*Y448250D01*\r
+Y449750D02*X244113Y450500D01*\r
+X245613D01*\r
+X246363Y449750D01*\r
+X248915D02*Y447500D01*\r
+Y449750D02*X249665Y450500D01*\r
+X251165D01*\r
+X248165D02*X248915Y449750D01*\r
+X253716Y447500D02*X255966D01*\r
+X252966Y448250D02*X253716Y447500D01*\r
+X252966Y449750D02*Y448250D01*\r
+Y449750D02*X253716Y450500D01*\r
+X255216D01*\r
+X255966Y449750D01*\r
+X252966Y449000D02*X255966D01*\r
+Y449750D02*Y449000D01*\r
+X200000Y468500D02*X203000D01*\r
+X201500D02*Y462500D01*\r
+X204801Y467000D02*Y466250D01*\r
+Y464750D02*Y462500D01*\r
+X207053Y468500D02*Y463250D01*\r
+X207803Y462500D01*\r
+X206303Y466250D02*X207803D01*\r
+X209304Y468500D02*Y463250D01*\r
+X210054Y462500D01*\r
+X212306D02*X214556D01*\r
+X211556Y463250D02*X212306Y462500D01*\r
+X211556Y464750D02*Y463250D01*\r
+Y464750D02*X212306Y465500D01*\r
+X213806D01*\r
+X214556Y464750D01*\r
+X211556Y464000D02*X214556D01*\r
+Y464750D02*Y464000D01*\r
+X216357Y466250D02*X217107D01*\r
+X216357Y464750D02*X217107D01*\r
+X221609Y463250D02*X222359Y462500D01*\r
+X221609Y467750D02*X222359Y468500D01*\r
+X221609Y467750D02*Y463250D01*\r
+X224160Y465500D02*Y463250D01*\r
+X224910Y462500D01*\r
+X226410D01*\r
+X227160Y463250D01*\r
+Y465500D02*Y463250D01*\r
+X229712Y464750D02*Y462500D01*\r
+Y464750D02*X230462Y465500D01*\r
+X231212D01*\r
+X231962Y464750D01*\r
+Y462500D01*\r
+X228962Y465500D02*X229712Y464750D01*\r
+X233763Y468500D02*Y462500D01*\r
+Y464750D02*X236013Y462500D01*\r
+X233763Y464750D02*X235263Y466250D01*\r
+X238565Y464750D02*Y462500D01*\r
+Y464750D02*X239315Y465500D01*\r
+X240065D01*\r
+X240815Y464750D01*\r
+Y462500D01*\r
+X237815Y465500D02*X238565Y464750D01*\r
+X242616D02*Y463250D01*\r
+Y464750D02*X243366Y465500D01*\r
+X244866D01*\r
+X245616Y464750D01*\r
+Y463250D01*\r
+X244866Y462500D02*X245616Y463250D01*\r
+X243366Y462500D02*X244866D01*\r
+X242616Y463250D02*X243366Y462500D01*\r
+X247418Y465500D02*Y463250D01*\r
+X248168Y462500D01*\r
+X248918D01*\r
+X249668Y463250D01*\r
+Y465500D02*Y463250D01*\r
+X250418Y462500D01*\r
+X251168D01*\r
+X251918Y463250D01*\r
+Y465500D02*Y463250D01*\r
+X254469Y464750D02*Y462500D01*\r
+Y464750D02*X255219Y465500D01*\r
+X255969D01*\r
+X256719Y464750D01*\r
+Y462500D01*\r
+X253719Y465500D02*X254469Y464750D01*\r
+X258521Y468500D02*X259271Y467750D01*\r
+Y463250D01*\r
+X258521Y462500D02*X259271Y463250D01*\r
+X263772Y465500D02*X266772D01*\r
+X271274Y468500D02*Y462500D01*\r
+Y468500D02*X274274D01*\r
+X271274Y465500D02*X273524D01*\r
+X278325D02*X279075Y464750D01*\r
+X276825Y465500D02*X278325D01*\r
+X276075Y464750D02*X276825Y465500D01*\r
+X276075Y464750D02*Y463250D01*\r
+X276825Y462500D01*\r
+X279075Y465500D02*Y463250D01*\r
+X279825Y462500D01*\r
+X276825D02*X278325D01*\r
+X279075Y463250D01*\r
+X281627Y468500D02*Y462500D01*\r
+Y463250D02*X282377Y462500D01*\r
+X283877D01*\r
+X284627Y463250D01*\r
+Y464750D02*Y463250D01*\r
+X283877Y465500D02*X284627Y464750D01*\r
+X282377Y465500D02*X283877D01*\r
+X281627Y464750D02*X282377Y465500D01*\r
+X287178Y464750D02*Y462500D01*\r
+Y464750D02*X287928Y465500D01*\r
+X289428D01*\r
+X286428D02*X287178Y464750D01*\r
+X291230Y467000D02*Y466250D01*\r
+Y464750D02*Y462500D01*\r
+X293481Y465500D02*X295731D01*\r
+X292731Y464750D02*X293481Y465500D01*\r
+X292731Y464750D02*Y463250D01*\r
+X293481Y462500D01*\r
+X295731D01*\r
+X299783Y465500D02*X300533Y464750D01*\r
+X298283Y465500D02*X299783D01*\r
+X297533Y464750D02*X298283Y465500D01*\r
+X297533Y464750D02*Y463250D01*\r
+X298283Y462500D01*\r
+X300533Y465500D02*Y463250D01*\r
+X301283Y462500D01*\r
+X298283D02*X299783D01*\r
+X300533Y463250D01*\r
+X303834Y468500D02*Y463250D01*\r
+X304584Y462500D01*\r
+X303084Y466250D02*X304584D01*\r
+X306086Y467000D02*Y466250D01*\r
+Y464750D02*Y462500D01*\r
+X307587Y464750D02*Y463250D01*\r
+Y464750D02*X308337Y465500D01*\r
+X309837D01*\r
+X310587Y464750D01*\r
+Y463250D01*\r
+X309837Y462500D02*X310587Y463250D01*\r
+X308337Y462500D02*X309837D01*\r
+X307587Y463250D02*X308337Y462500D01*\r
+X313139Y464750D02*Y462500D01*\r
+Y464750D02*X313889Y465500D01*\r
+X314639D01*\r
+X315389Y464750D01*\r
+Y462500D01*\r
+X312389Y465500D02*X313139Y464750D01*\r
+X320640Y468500D02*Y462500D01*\r
+X322890Y468500D02*X323640Y467750D01*\r
+Y463250D01*\r
+X322890Y462500D02*X323640Y463250D01*\r
+X319890Y462500D02*X322890D01*\r
+X319890Y468500D02*X322890D01*\r
+X326192Y464750D02*Y462500D01*\r
+Y464750D02*X326942Y465500D01*\r
+X328442D01*\r
+X325442D02*X326192Y464750D01*\r
+X332493Y465500D02*X333243Y464750D01*\r
+X330993Y465500D02*X332493D01*\r
+X330243Y464750D02*X330993Y465500D01*\r
+X330243Y464750D02*Y463250D01*\r
+X330993Y462500D01*\r
+X333243Y465500D02*Y463250D01*\r
+X333993Y462500D01*\r
+X330993D02*X332493D01*\r
+X333243Y463250D01*\r
+X335795Y465500D02*Y463250D01*\r
+X336545Y462500D01*\r
+X337295D01*\r
+X338045Y463250D01*\r
+Y465500D02*Y463250D01*\r
+X338795Y462500D01*\r
+X339545D01*\r
+X340295Y463250D01*\r
+Y465500D02*Y463250D01*\r
+X342096Y467000D02*Y466250D01*\r
+Y464750D02*Y462500D01*\r
+X344348Y464750D02*Y462500D01*\r
+Y464750D02*X345098Y465500D01*\r
+X345848D01*\r
+X346598Y464750D01*\r
+Y462500D01*\r
+X343598Y465500D02*X344348Y464750D01*\r
+X350649Y465500D02*X351399Y464750D01*\r
+X349149Y465500D02*X350649D01*\r
+X348399Y464750D02*X349149Y465500D01*\r
+X348399Y464750D02*Y463250D01*\r
+X349149Y462500D01*\r
+X350649D01*\r
+X351399Y463250D01*\r
+X348399Y461000D02*X349149Y460250D01*\r
+X350649D01*\r
+X351399Y461000D01*\r
+Y465500D02*Y461000D01*\r
+M02*\r
--- /dev/null
+G04 start of page 3 for group 1 idx 3 *\r
+G04 Title: (unknown), component *\r
+G04 Creator: pcb 20100929 *\r
+G04 CreationDate: Thu 18 Nov 2010 07:40:28 PM GMT UTC *\r
+G04 For: andrenb *\r
+G04 Format: Gerber/RS-274X *\r
+G04 PCB-Dimensions: 710000 410000 *\r
+G04 PCB-Coordinate-Origin: lower left *\r
+%MOIN*%\r
+%FSLAX25Y25*%\r
+%LNFRONT*%\r
+%ADD11C,0.0100*%\r
+%ADD12C,0.0250*%\r
+%ADD13C,0.0700*%\r
+%ADD14C,0.1200*%\r
+%ADD15C,0.0900*%\r
+%ADD16C,0.0650*%\r
+%ADD17C,0.1150*%\r
+%ADD18C,0.0300*%\r
+%ADD19C,0.0400*%\r
+%ADD20C,0.0550*%\r
+%ADD21C,0.0200*%\r
+%ADD22C,0.0850*%\r
+%ADD23C,0.1000*%\r
+%ADD24C,0.0080*%\r
+%ADD25C,0.0600*%\r
+%ADD26C,0.0800*%\r
+%ADD27C,0.1400*%\r
+%ADD28C,0.1050*%\r
+%ADD29C,0.0280*%\r
+%ADD30C,0.0350*%\r
+%ADD31C,0.0420*%\r
+%ADD32C,0.0430*%\r
+%ADD33C,0.0520*%\r
+G54D12*X177500Y215000D02*Y195000D01*\r
+G54D11*X160000Y222500D02*Y47500D01*\r
+G54D12*X177500Y155000D02*Y175000D01*\r
+X170000Y222500D02*X177500Y215000D01*\r
+Y97500D02*Y125000D01*\r
+Y65000D02*Y72500D01*\r
+X225000Y147500D02*Y117500D01*\r
+X217500Y215000D02*Y187500D01*\r
+X232500Y195000D02*Y260000D01*\r
+X217500Y175000D02*Y155000D01*\r
+X225000Y147500D01*\r
+X207500Y97500D02*Y155000D01*\r
+G54D16*X190000Y135000D02*Y97500D01*\r
+G54D12*X177500Y245000D02*Y235000D01*\r
+G54D11*X102500Y297500D02*Y280000D01*\r
+X80000Y285000D02*X87500Y277500D01*\r
+X80900Y296600D02*X92500Y285000D01*\r
+X80000Y285700D02*Y285000D01*\r
+X92500Y270000D02*Y285000D01*\r
+X87500Y275000D02*Y277500D01*\r
+G54D16*X55000Y240000D02*X80000Y263900D01*\r
+X55000Y90000D02*Y240000D01*\r
+X62500Y117500D02*X55000D01*\r
+X62500Y155000D02*X55000D01*\r
+X62500Y192500D02*X55000D01*\r
+G54D11*X155000Y135000D02*Y42500D01*\r
+G54D12*X225000Y90000D02*Y97500D01*\r
+X215000Y90000D02*X207500Y97500D01*\r
+G54D11*X215000Y47500D02*Y60000D01*\r
+G54D16*X245000Y67500D02*X262500Y85000D01*\r
+X245000Y67500D02*Y60000D01*\r
+G54D12*X240000Y95000D02*Y80000D01*\r
+G54D11*X205000Y52500D02*Y57500D01*\r
+G54D12*X185000Y90000D02*X177500Y97500D01*\r
+G54D11*X205000Y57500D02*Y60000D01*\r
+G54D12*X177500Y72500D02*X185000Y80000D01*\r
+Y90000D01*\r
+X232500Y175000D02*Y102500D01*\r
+G54D16*X252500Y135000D02*X255000D01*\r
+X262500Y127500D01*\r
+G54D12*X242500Y125000D02*Y135000D01*\r
+G54D16*X262500Y85000D02*Y127500D01*\r
+G54D12*X252500Y125000D02*Y97500D01*\r
+X232500Y102500D02*X240000Y95000D01*\r
+G54D11*X225000Y60000D02*Y42500D01*\r
+X377500Y297500D02*Y265000D01*\r
+X365000Y255000D02*X367500Y257500D01*\r
+X355000Y277500D02*X352500Y275000D01*\r
+X355000Y290000D02*Y277500D01*\r
+X352500Y292500D02*X355000Y290000D01*\r
+X377500Y265000D02*X372500Y260000D01*\r
+X367500Y257500D02*Y317500D01*\r
+X347500Y297500D02*Y290000D01*\r
+X425000Y300000D02*Y275000D01*\r
+X442500Y300000D02*Y275000D01*\r
+G54D16*X402500Y280000D02*Y285000D01*\r
+X410000Y292500D01*\r
+G54D11*X402500Y302500D02*X397500Y297500D01*\r
+X402500Y310000D02*Y302500D01*\r
+G54D16*X392500Y262500D02*X387500Y267500D01*\r
+G54D11*X280000Y275000D02*X277500Y272500D01*\r
+Y260000D01*\r
+X285000Y272500D02*X282500Y270000D01*\r
+X310000Y297500D02*X305000Y292500D01*\r
+X315000Y275000D02*Y292500D01*\r
+X320000Y297500D01*\r
+G54D12*X255000Y280000D02*Y275000D01*\r
+X250000Y270000D01*\r
+X242500Y257500D02*Y247500D01*\r
+G54D11*X295000Y292500D02*Y275000D01*\r
+X300000Y297500D02*X295000Y292500D01*\r
+G54D12*X290000Y280000D02*Y300000D01*\r
+G54D11*X305000Y292500D02*Y270000D01*\r
+X285000Y302500D02*Y272500D01*\r
+X300000Y280000D02*Y272500D01*\r
+X320000Y260000D02*Y262500D01*\r
+Y280000D01*\r
+X300000Y272500D02*X287500Y260000D01*\r
+X345000Y337500D02*X350000Y332500D01*\r
+Y327500D01*\r
+X345000Y322500D01*\r
+Y370000D02*Y337500D01*\r
+G54D12*X335000Y372500D02*Y307500D01*\r
+X470000Y377500D02*X407500D01*\r
+G54D11*X435000Y365000D02*Y307500D01*\r
+G54D30*X460000Y370000D02*Y340000D01*\r
+G54D16*X410000Y352500D02*Y292500D01*\r
+G54D12*X402500Y372500D02*X375000D01*\r
+X377500Y380000D02*Y372500D01*\r
+X372500Y370000D02*X375000Y372500D01*\r
+X372500Y365000D02*Y370000D01*\r
+G54D11*X392500Y365000D02*Y357500D01*\r
+G54D16*X402500Y365000D02*Y360000D01*\r
+X410000Y352500D01*\r
+G54D11*X392500Y357500D02*X377500Y342500D01*\r
+Y327500D01*\r
+X350000Y310000D02*Y300000D01*\r
+X347500Y297500D01*\r
+X335000D02*X340000Y302500D01*\r
+X330000Y310000D02*X325000Y305000D01*\r
+X345000Y322500D02*Y267500D01*\r
+G54D12*X330000Y302500D02*Y280000D01*\r
+G54D11*X335000Y267500D02*Y297500D01*\r
+X325000Y250000D02*Y305000D01*\r
+X300000Y310000D02*Y297500D01*\r
+G54D12*X290000Y300000D02*X295000Y305000D01*\r
+G54D11*X320000Y297500D02*Y310000D01*\r
+X310000D02*Y297500D01*\r
+G54D16*X250000Y377500D02*Y372500D01*\r
+G54D12*X315000Y365000D02*X310000D01*\r
+X302500Y357500D01*\r
+G54D21*X295000Y305000D02*Y350000D01*\r
+G54D12*X280000Y310000D02*Y335000D01*\r
+X302500Y357500D02*Y322500D01*\r
+G54D11*X310000Y317500D02*Y335000D01*\r
+G54D16*X320000D02*X327500Y342500D01*\r
+Y377500D02*Y342500D01*\r
+G54D11*X205000Y280000D02*Y300000D01*\r
+G54D12*X187500Y302500D02*X182500Y297500D01*\r
+X205000Y310000D02*X187500Y292500D01*\r
+X182500Y297500D02*X175000D01*\r
+X170000Y292500D01*\r
+Y222500D01*\r
+X187500Y235000D02*Y292500D01*\r
+X152500Y347500D02*Y227500D01*\r
+X160000Y335000D02*Y245000D01*\r
+G54D11*X177500Y395000D02*Y380000D01*\r
+X182500Y400000D02*X177500Y395000D01*\r
+Y357500D02*X165000Y345000D01*\r
+Y52500D01*\r
+G54D12*X195000Y30000D02*Y60000D01*\r
+X272500Y215000D02*Y195000D01*\r
+G54D11*X282500Y270000D02*Y165000D01*\r
+G54D12*X272500Y175000D02*Y155000D01*\r
+G54D14*X340000Y190000D02*Y135000D01*\r
+G54D11*X315000Y130000D02*Y267500D01*\r
+G54D13*X340000Y245000D02*Y125000D01*\r
+X342500Y247500D02*X340000Y245000D01*\r
+G54D11*X332500Y265000D02*X335000Y267500D01*\r
+X332500Y235000D02*Y265000D01*\r
+X352500Y275000D02*Y240000D01*\r
+G54D13*X342500Y247500D02*Y260000D01*\r
+G54D11*X347500Y290000D02*X350000Y287500D01*\r
+X360000Y260000D02*Y182500D01*\r
+G54D13*X455000Y132500D02*Y117500D01*\r
+G54D14*Y120000D02*Y50000D01*\r
+G54D16*X392500Y77500D02*Y262500D01*\r
+G54D13*X457500Y200000D02*Y52500D01*\r
+G54D11*X210000Y305000D02*X205000Y300000D01*\r
+G54D12*X335000Y307500D02*X330000Y302500D01*\r
+G54D25*X290000Y335000D02*Y310000D01*\r
+G54D11*X340000Y302500D02*Y310000D01*\r
+X417500Y307500D02*X425000Y300000D01*\r
+X442500D02*X435000Y307500D01*\r
+X442500Y330000D02*Y345000D01*\r
+X182500Y400000D02*X417500D01*\r
+G54D12*X425000Y377500D02*Y372500D01*\r
+X407500Y377500D02*X402500Y372500D01*\r
+G54D11*X240000Y385000D02*X247500Y392500D01*\r
+X427500D02*X402500D01*\r
+X417500Y370000D02*Y307500D01*\r
+G54D16*X255000Y367500D02*Y335000D01*\r
+X250000Y372500D02*X255000Y367500D01*\r
+G54D11*X235000Y335000D02*Y355000D01*\r
+X240000Y360000D01*\r
+Y385000D01*\r
+G54D12*X230000Y380000D02*Y370000D01*\r
+X225000Y365000D01*\r
+Y335000D01*\r
+G54D16*X197500Y357500D02*X202500Y352500D01*\r
+X197500Y380000D02*Y357500D01*\r
+X202500Y352500D02*Y335000D01*\r
+G54D11*X210000Y370000D02*Y305000D01*\r
+X200000Y260000D02*Y287500D01*\r
+G54D12*X242500Y270000D02*X232500Y260000D01*\r
+G54D11*X225000Y262500D02*X215000Y272500D01*\r
+Y280000D01*\r
+X310000D02*Y260000D01*\r
+X280000Y280000D02*Y275000D01*\r
+G54D12*X250000Y270000D02*X242500D01*\r
+G54D11*X225000Y262500D02*Y222500D01*\r
+G54D12*X262500Y302500D02*Y207500D01*\r
+G54D16*X270000Y380000D02*Y260000D01*\r
+X360000Y267500D02*Y380000D01*\r
+G54D12*X610000Y92500D02*X652500D01*\r
+X625000Y80000D02*Y50000D01*\r
+X652500Y82500D02*X627500D01*\r
+X625000Y80000D01*\r
+G54D13*X562500Y100000D02*Y25000D01*\r
+G54D12*X545000Y37500D02*X552500Y30000D01*\r
+X545000Y37500D02*Y62500D01*\r
+G54D16*X552500Y50000D02*Y70000D01*\r
+G54D12*X605000Y87500D02*X610000Y92500D01*\r
+X605000Y87500D02*Y60000D01*\r
+G54D13*X562500Y25000D02*X570000Y17500D01*\r
+X632500Y52500D02*X652500D01*\r
+X632500Y25000D02*Y52500D01*\r
+X570000Y17500D02*X625000D01*\r
+X632500Y25000D01*\r
+G54D12*X625000Y50000D02*X615000Y40000D01*\r
+G54D13*X575000Y50000D02*Y30000D01*\r
+X497500Y142500D02*Y40000D01*\r
+G54D14*X552500Y210000D02*Y110000D01*\r
+X532500Y157500D02*Y17500D01*\r
+G54D13*X555000Y110000D02*X562500Y102500D01*\r
+G54D21*X457500Y135000D02*Y120000D01*\r
+G54D14*X459193Y157500D02*X532500D01*\r
+G54D13*X552500Y212500D02*X592500Y252500D01*\r
+X602500D01*\r
+G54D11*X620000Y260000D02*X622500Y262500D01*\r
+X570000Y255000D02*X565000Y250000D01*\r
+X615000Y260000D02*X620000D01*\r
+X557500D02*Y237500D01*\r
+X535000Y260000D02*X557500D01*\r
+G54D12*X517500D02*Y245000D01*\r
+G54D14*X592500Y207500D02*Y110000D01*\r
+G54D23*X615000Y122500D02*Y187500D01*\r
+G54D12*X587500Y362500D02*X592500Y357500D01*\r
+X582500Y365000D02*Y357500D01*\r
+X622500D02*X592500D01*\r
+X587500Y380000D02*Y362500D01*\r
+G54D11*X632500Y392500D02*X442500D01*\r
+G54D12*X472500Y375000D02*X470000Y377500D01*\r
+X507500Y375000D02*X512500Y370000D01*\r
+X632500Y362500D02*Y357500D01*\r
+G54D11*X657500Y367500D02*X632500Y392500D01*\r
+X477500Y387500D02*Y355000D01*\r
+G54D12*X652500Y352500D02*Y355000D01*\r
+X650000Y357500D02*X635000D01*\r
+X652500Y355000D02*X650000Y357500D01*\r
+G54D11*X657500Y310000D02*Y367500D01*\r
+G54D12*X635000Y357500D02*X620000D01*\r
+X582500D02*X592500Y347500D01*\r
+X602500Y357500D02*Y337500D01*\r
+X637500Y317500D02*X647500D01*\r
+X652500Y312500D01*\r
+G54D11*X655000Y307500D02*X657500Y310000D01*\r
+X647500Y307500D02*X655000D01*\r
+X647500D02*X642500Y302500D01*\r
+X612500Y335000D02*Y322500D01*\r
+G54D12*X620000Y320000D02*X622500Y322500D01*\r
+X592500Y347500D02*Y335000D01*\r
+G54D11*X585000Y322500D02*X592500Y315000D01*\r
+G54D12*X620000Y307500D02*Y320000D01*\r
+X622500Y322500D02*X632500D01*\r
+X637500Y317500D01*\r
+G54D11*X632500Y312500D02*X622500Y302500D01*\r
+Y262500D02*Y302500D01*\r
+X592500Y315000D02*Y310000D01*\r
+X562500Y325000D02*X565000Y322500D01*\r
+X585000D01*\r
+G54D16*X552500Y285000D02*X572500Y305000D01*\r
+Y310000D01*\r
+X552500Y285000D02*Y280000D01*\r
+G54D11*X592500D02*Y295000D01*\r
+X570000Y267500D02*Y255000D01*\r
+G54D12*X575000Y260000D02*Y265000D01*\r
+X577500Y267500D01*\r
+X600000D01*\r
+G54D11*X582500Y280000D02*X570000Y267500D01*\r
+G54D12*X600000D02*X602500Y270000D01*\r
+Y290000D01*\r
+X620000Y307500D01*\r
+X507500Y380000D02*Y375000D01*\r
+G54D11*X500000Y347500D02*X507500Y340000D01*\r
+Y327500D01*\r
+G54D12*X512500Y355000D02*Y370000D01*\r
+G54D11*X532500Y352500D02*Y370000D01*\r
+G54D12*X520000Y347500D02*X512500Y355000D01*\r
+X520000Y347500D02*Y340000D01*\r
+G54D11*X527500Y300000D02*Y325000D01*\r
+X532500Y330000D02*Y327500D01*\r
+X512500Y310000D02*Y305000D01*\r
+X532500Y330000D02*Y322500D01*\r
+X547500Y357500D02*Y330000D01*\r
+X562500Y370000D02*Y347500D01*\r
+Y330000D02*Y325000D01*\r
+X495000Y295000D02*X477500D01*\r
+G54D13*X372500Y250000D02*Y40000D01*\r
+G54D12*X400000Y260000D02*Y85000D01*\r
+X432500Y227500D02*Y60000D01*\r
+X385000Y70000D02*Y245000D01*\r
+G54D11*X365000Y255000D02*Y92500D01*\r
+G54D14*X455000Y200000D02*Y112500D01*\r
+G54D11*X397500Y297500D02*Y267500D01*\r
+G54D13*X382500Y260000D02*X372500Y250000D01*\r
+G54D11*X522500Y280000D02*Y295000D01*\r
+X527500Y300000D01*\r
+X532500Y280000D02*Y262500D01*\r
+X517500Y295000D02*X512500Y290000D01*\r
+X507500Y295000D02*Y270000D01*\r
+X502500Y280000D02*Y287500D01*\r
+X495000Y295000D01*\r
+X512500Y290000D02*Y280000D01*\r
+Y305000D02*X507500Y300000D01*\r
+X517500Y317500D02*Y295000D01*\r
+X532500Y262500D02*X535000Y260000D01*\r
+X562500Y270000D02*X557500Y265000D01*\r
+X545000D01*\r
+X562500Y280000D02*Y270000D01*\r
+X507500Y327500D02*X517500Y317500D01*\r
+G54D12*X492500Y327500D02*Y335000D01*\r
+X482500Y317500D02*X492500Y327500D01*\r
+X472500Y245000D02*Y375000D01*\r
+G54D11*X477500Y355000D02*X485000Y347500D01*\r
+X500000D01*\r
+X507500Y300000D02*X480000D01*\r
+X500000Y305000D02*X477500D01*\r
+X502500Y310000D02*Y307500D01*\r
+X500000Y305000D01*\r
+G54D12*X460000D02*Y307500D01*\r
+X462500Y310000D01*\r
+X482500D01*\r
+Y317500D01*\r
+G54D11*Y280000D02*Y260000D01*\r
+X492500Y280000D02*Y235000D01*\r
+G54D24*X75000Y31500D02*Y27500D01*\r
+X76500Y29000D01*\r
+X78000Y27500D01*\r
+Y31500D02*Y27500D01*\r
+X80701Y29500D02*X81201Y29000D01*\r
+X79701Y29500D02*X80701D01*\r
+X79201Y29000D02*X79701Y29500D01*\r
+X79201Y29000D02*Y28000D01*\r
+X79701Y27500D01*\r
+X81201Y29500D02*Y28000D01*\r
+X81701Y27500D01*\r
+X79701D02*X80701D01*\r
+X81201Y28000D01*\r
+X82902Y31500D02*Y28000D01*\r
+X83402Y27500D01*\r
+X84903Y31500D02*Y28000D01*\r
+X85403Y27500D01*\r
+X84403Y30000D02*X85403D01*\r
+X86904Y27500D02*X88404D01*\r
+X86404Y28000D02*X86904Y27500D01*\r
+X86404Y29000D02*Y28000D01*\r
+Y29000D02*X86904Y29500D01*\r
+X87904D01*\r
+X88404Y29000D01*\r
+X86404Y28500D02*X88404D01*\r
+Y29000D02*Y28500D01*\r
+X90105Y29000D02*Y27500D01*\r
+Y29000D02*X90605Y29500D01*\r
+X91605D01*\r
+X89605D02*X90105Y29000D01*\r
+X94606Y31500D02*Y27500D01*\r
+Y31500D02*X96606D01*\r
+X94606Y29500D02*X96106D01*\r
+X98307Y27500D02*X99807D01*\r
+X97807Y28000D02*X98307Y27500D01*\r
+X97807Y29000D02*Y28000D01*\r
+Y29000D02*X98307Y29500D01*\r
+X99307D01*\r
+X99807Y29000D01*\r
+X97807Y28500D02*X99807D01*\r
+Y29000D02*Y28500D01*\r
+X101508Y31500D02*Y28000D01*\r
+X102008Y27500D01*\r
+X101008Y30000D02*X102008D01*\r
+X103509Y31500D02*Y28000D01*\r
+X104009Y27500D01*\r
+X103009Y30000D02*X104009D01*\r
+X105510Y27500D02*X107010D01*\r
+X105010Y28000D02*X105510Y27500D01*\r
+X105010Y29000D02*Y28000D01*\r
+Y29000D02*X105510Y29500D01*\r
+X106510D01*\r
+X107010Y29000D01*\r
+X105010Y28500D02*X107010D01*\r
+Y29000D02*Y28500D01*\r
+X108711Y29000D02*Y27500D01*\r
+Y29000D02*X109211Y29500D01*\r
+X110211D01*\r
+X108211D02*X108711Y29000D01*\r
+X113212Y31500D02*Y27500D01*\r
+X115212D01*\r
+X117913Y29500D02*X118413Y29000D01*\r
+X116913Y29500D02*X117913D01*\r
+X116413Y29000D02*X116913Y29500D01*\r
+X116413Y29000D02*Y28000D01*\r
+X116913Y27500D01*\r
+X118413Y29500D02*Y28000D01*\r
+X118913Y27500D01*\r
+X116913D02*X117913D01*\r
+X118413Y28000D01*\r
+X121614Y29500D02*X122114Y29000D01*\r
+X120614Y29500D02*X121614D01*\r
+X120114Y29000D02*X120614Y29500D01*\r
+X120114Y29000D02*Y28000D01*\r
+X120614Y27500D01*\r
+X121614D01*\r
+X122114Y28000D01*\r
+X120114Y26500D02*X120614Y26000D01*\r
+X121614D01*\r
+X122114Y26500D01*\r
+Y29500D02*Y26500D01*\r
+X123815Y27500D02*X125315D01*\r
+X123315Y28000D02*X123815Y27500D01*\r
+X123315Y29000D02*Y28000D01*\r
+Y29000D02*X123815Y29500D01*\r
+X124815D01*\r
+X125315Y29000D01*\r
+X123315Y28500D02*X125315D01*\r
+Y29000D02*Y28500D01*\r
+X127016Y27500D02*X128516D01*\r
+X129016Y28000D01*\r
+X128516Y28500D02*X129016Y28000D01*\r
+X127016Y28500D02*X128516D01*\r
+X126516Y29000D02*X127016Y28500D01*\r
+X126516Y29000D02*X127016Y29500D01*\r
+X128516D01*\r
+X129016Y29000D01*\r
+X126516Y28000D02*X127016Y27500D01*\r
+X75500Y39000D02*Y35000D01*\r
+X77000Y39000D02*X77500Y38500D01*\r
+Y35500D01*\r
+X77000Y35000D02*X77500Y35500D01*\r
+X75000Y35000D02*X77000D01*\r
+X75000Y39000D02*X77000D01*\r
+X78701Y38000D02*Y37500D01*\r
+Y36500D02*Y35000D01*\r
+X80202D02*X81702D01*\r
+X79702Y35500D02*X80202Y35000D01*\r
+X79702Y36500D02*Y35500D01*\r
+Y36500D02*X80202Y37000D01*\r
+X81202D01*\r
+X81702Y36500D01*\r
+X79702Y36000D02*X81702D01*\r
+Y36500D02*Y36000D01*\r
+X84403Y37000D02*X84903Y36500D01*\r
+X83403Y37000D02*X84403D01*\r
+X82903Y36500D02*X83403Y37000D01*\r
+X82903Y36500D02*Y35500D01*\r
+X83403Y35000D01*\r
+X84403D01*\r
+X84903Y35500D01*\r
+X82903Y34000D02*X83403Y33500D01*\r
+X84403D01*\r
+X84903Y34000D01*\r
+Y37000D02*Y34000D01*\r
+X86104Y36500D02*Y35500D01*\r
+Y36500D02*X86604Y37000D01*\r
+X87604D01*\r
+X88104Y36500D01*\r
+Y35500D01*\r
+X87604Y35000D02*X88104Y35500D01*\r
+X86604Y35000D02*X87604D01*\r
+X86104Y35500D02*X86604Y35000D01*\r
+X91605D02*X93105D01*\r
+X91105Y35500D02*X91605Y35000D01*\r
+X91105Y38500D02*Y35500D01*\r
+Y38500D02*X91605Y39000D01*\r
+X93105D01*\r
+X95806Y37000D02*X96306Y36500D01*\r
+X94806Y37000D02*X95806D01*\r
+X94306Y36500D02*X94806Y37000D01*\r
+X94306Y36500D02*Y35500D01*\r
+X94806Y35000D01*\r
+X96306Y37000D02*Y35500D01*\r
+X96806Y35000D01*\r
+X94806D02*X95806D01*\r
+X96306Y35500D01*\r
+X98007Y39000D02*Y35000D01*\r
+Y35500D02*X98507Y35000D01*\r
+X99507D01*\r
+X100007Y35500D01*\r
+Y36500D02*Y35500D01*\r
+X99507Y37000D02*X100007Y36500D01*\r
+X98507Y37000D02*X99507D01*\r
+X98007Y36500D02*X98507Y37000D01*\r
+X101708Y35000D02*X103208D01*\r
+X101208Y35500D02*X101708Y35000D01*\r
+X101208Y36500D02*Y35500D01*\r
+Y36500D02*X101708Y37000D01*\r
+X102708D01*\r
+X103208Y36500D01*\r
+X101208Y36000D02*X103208D01*\r
+Y36500D02*Y36000D01*\r
+X104909Y36500D02*Y35000D01*\r
+Y36500D02*X105409Y37000D01*\r
+X106409D01*\r
+X104409D02*X104909Y36500D01*\r
+X107610Y39000D02*Y35500D01*\r
+X108110Y35000D01*\r
+X109111Y36500D02*Y35500D01*\r
+Y36500D02*X109611Y37000D01*\r
+X110611D01*\r
+X111111Y36500D01*\r
+Y35500D01*\r
+X110611Y35000D02*X111111Y35500D01*\r
+X109611Y35000D02*X110611D01*\r
+X109111Y35500D02*X109611Y35000D01*\r
+X112812Y36500D02*Y35000D01*\r
+Y36500D02*X113312Y37000D01*\r
+X113812D01*\r
+X114312Y36500D01*\r
+Y35000D01*\r
+X112312Y37000D02*X112812Y36500D01*\r
+X119313Y39000D02*X119813Y38500D01*\r
+X117813Y39000D02*X119313D01*\r
+X117313Y38500D02*X117813Y39000D01*\r
+X117313Y38500D02*Y37500D01*\r
+X117813Y37000D01*\r
+X119313D01*\r
+X119813Y36500D01*\r
+Y35500D01*\r
+X119313Y35000D02*X119813Y35500D01*\r
+X117813Y35000D02*X119313D01*\r
+X117313Y35500D02*X117813Y35000D01*\r
+X122514Y37000D02*X123014Y36500D01*\r
+X121514Y37000D02*X122514D01*\r
+X121014Y36500D02*X121514Y37000D01*\r
+X121014Y36500D02*Y35500D01*\r
+X121514Y35000D01*\r
+X123014Y37000D02*Y35500D01*\r
+X123514Y35000D01*\r
+X121514D02*X122514D01*\r
+X123014Y35500D01*\r
+X125215Y36500D02*Y35000D01*\r
+Y36500D02*X125715Y37000D01*\r
+X126215D01*\r
+X126715Y36500D01*\r
+Y35000D01*\r
+X124715Y37000D02*X125215Y36500D01*\r
+X128416Y39000D02*Y35500D01*\r
+X128916Y35000D01*\r
+X127916Y37500D02*X128916D01*\r
+X129917Y38000D02*Y37500D01*\r
+Y36500D02*Y35000D01*\r
+X131418Y36500D02*Y35000D01*\r
+Y36500D02*X131918Y37000D01*\r
+X132418D01*\r
+X132918Y36500D01*\r
+Y35000D01*\r
+X130918Y37000D02*X131418Y36500D01*\r
+X134119Y38000D02*Y37500D01*\r
+Y36500D02*Y35000D01*\r
+X75000Y46000D02*Y42500D01*\r
+Y46000D02*X75500Y46500D01*\r
+X77000D01*\r
+X77500Y46000D01*\r
+Y42500D01*\r
+X75000Y44500D02*X77500D01*\r
+X78701Y46500D02*X79701D01*\r
+X79201D02*Y42500D01*\r
+X78701D02*X79701D01*\r
+X81402D02*X82902D01*\r
+X80902Y43000D02*X81402Y42500D01*\r
+X80902Y46000D02*Y43000D01*\r
+Y46000D02*X81402Y46500D01*\r
+X82902D01*\r
+X84103Y44500D02*X86103D01*\r
+X87304Y46000D02*X87804Y46500D01*\r
+X89304D01*\r
+X89804Y46000D01*\r
+Y45000D01*\r
+X87304Y42500D02*X89804Y45000D01*\r
+X87304Y42500D02*X89804D01*\r
+X91005D02*X91505D01*\r
+X92706Y46000D02*X93206Y46500D01*\r
+X94706D01*\r
+X95206Y46000D01*\r
+Y45000D01*\r
+X92706Y42500D02*X95206Y45000D01*\r
+X92706Y42500D02*X95206D01*\r
+X96407D02*X96907D01*\r
+X98108Y43000D02*X98608Y42500D01*\r
+X98108Y46000D02*Y43000D01*\r
+Y46000D02*X98608Y46500D01*\r
+X99608D01*\r
+X100108Y46000D01*\r
+Y43000D01*\r
+X99608Y42500D02*X100108Y43000D01*\r
+X98608Y42500D02*X99608D01*\r
+X98108Y43500D02*X100108Y45500D01*\r
+X103109Y43000D02*X103609Y42500D01*\r
+X103109Y46000D02*X103609Y46500D01*\r
+X103109Y46000D02*Y43000D01*\r
+X105310Y44500D02*X106810D01*\r
+X104810Y44000D02*X105310Y44500D01*\r
+X104810Y44000D02*Y43000D01*\r
+X105310Y42500D01*\r
+X106810D01*\r
+X108011Y46500D02*X108511Y46000D01*\r
+Y43000D01*\r
+X108011Y42500D02*X108511Y43000D01*\r
+X111512Y46000D02*X112012Y46500D01*\r
+X113512D01*\r
+X114012Y46000D01*\r
+Y45000D01*\r
+X111512Y42500D02*X114012Y45000D01*\r
+X111512Y42500D02*X114012D01*\r
+X115213Y43000D02*X115713Y42500D01*\r
+X115213Y46000D02*Y43000D01*\r
+Y46000D02*X115713Y46500D01*\r
+X116713D01*\r
+X117213Y46000D01*\r
+Y43000D01*\r
+X116713Y42500D02*X117213Y43000D01*\r
+X115713Y42500D02*X116713D01*\r
+X115213Y43500D02*X117213Y45500D01*\r
+X118414Y43000D02*X118914Y42500D01*\r
+X118414Y46000D02*Y43000D01*\r
+Y46000D02*X118914Y46500D01*\r
+X119914D01*\r
+X120414Y46000D01*\r
+Y43000D01*\r
+X119914Y42500D02*X120414Y43000D01*\r
+X118914Y42500D02*X119914D01*\r
+X118414Y43500D02*X120414Y45500D01*\r
+X121615Y42500D02*X123615Y44500D01*\r
+Y46000D02*Y44500D01*\r
+X123115Y46500D02*X123615Y46000D01*\r
+X122115Y46500D02*X123115D01*\r
+X121615Y46000D02*X122115Y46500D01*\r
+X121615Y46000D02*Y45000D01*\r
+X122115Y44500D01*\r
+X123615D01*\r
+X75000Y24000D02*X77000D01*\r
+X77500Y23500D01*\r
+Y22500D01*\r
+X77000Y22000D02*X77500Y22500D01*\r
+X75500Y22000D02*X77000D01*\r
+X75500Y24000D02*Y20000D01*\r
+Y22000D02*X77500Y20000D01*\r
+X78701Y21500D02*Y20500D01*\r
+Y21500D02*X79201Y22000D01*\r
+X80201D01*\r
+X80701Y21500D01*\r
+Y20500D01*\r
+X80201Y20000D02*X80701Y20500D01*\r
+X79201Y20000D02*X80201D01*\r
+X78701Y20500D02*X79201Y20000D01*\r
+X83902Y24000D02*Y20000D01*\r
+X83402D02*X83902Y20500D01*\r
+X82402Y20000D02*X83402D01*\r
+X81902Y20500D02*X82402Y20000D01*\r
+X81902Y21500D02*Y20500D01*\r
+Y21500D02*X82402Y22000D01*\r
+X83402D01*\r
+X83902Y21500D01*\r
+X85603D02*Y20000D01*\r
+Y21500D02*X86103Y22000D01*\r
+X87103D01*\r
+X85103D02*X85603Y21500D01*\r
+X88304Y23000D02*Y22500D01*\r
+Y21500D02*Y20000D01*\r
+X90805Y22000D02*X91305Y21500D01*\r
+X89805Y22000D02*X90805D01*\r
+X89305Y21500D02*X89805Y22000D01*\r
+X89305Y21500D02*Y20500D01*\r
+X89805Y20000D01*\r
+X90805D01*\r
+X91305Y20500D01*\r
+X89305Y19000D02*X89805Y18500D01*\r
+X90805D01*\r
+X91305Y19000D01*\r
+Y22000D02*Y19000D01*\r
+X92506Y21500D02*Y20500D01*\r
+Y21500D02*X93006Y22000D01*\r
+X94006D01*\r
+X94506Y21500D01*\r
+Y20500D01*\r
+X94006Y20000D02*X94506Y20500D01*\r
+X93006Y20000D02*X94006D01*\r
+X92506Y20500D02*X93006Y20000D01*\r
+X98007Y24000D02*Y20000D01*\r
+X99507Y24000D02*X100007Y23500D01*\r
+Y20500D01*\r
+X99507Y20000D02*X100007Y20500D01*\r
+X97507Y20000D02*X99507D01*\r
+X97507Y24000D02*X99507D01*\r
+X102708Y22000D02*X103208Y21500D01*\r
+X101708Y22000D02*X102708D01*\r
+X101208Y21500D02*X101708Y22000D01*\r
+X101208Y21500D02*Y20500D01*\r
+X101708Y20000D01*\r
+X103208Y22000D02*Y20500D01*\r
+X103708Y20000D01*\r
+X101708D02*X102708D01*\r
+X103208Y20500D01*\r
+X105409Y21500D02*Y20000D01*\r
+Y21500D02*X105909Y22000D01*\r
+X106409D01*\r
+X106909Y21500D01*\r
+Y20000D01*\r
+X104909Y22000D02*X105409Y21500D01*\r
+X108110Y23000D02*Y22500D01*\r
+Y21500D02*Y20000D01*\r
+X109611D02*X111111D01*\r
+X109111Y20500D02*X109611Y20000D01*\r
+X109111Y21500D02*Y20500D01*\r
+Y21500D02*X109611Y22000D01*\r
+X110611D01*\r
+X111111Y21500D01*\r
+X109111Y21000D02*X111111D01*\r
+Y21500D02*Y21000D01*\r
+X112312Y24000D02*Y20500D01*\r
+X112812Y20000D01*\r
+X115613Y24000D02*X117613D01*\r
+X116613D02*Y20000D01*\r
+X119314Y21500D02*Y20000D01*\r
+Y21500D02*X119814Y22000D01*\r
+X120814D01*\r
+X118814D02*X119314Y21500D01*\r
+X122515Y20000D02*X124015D01*\r
+X122015Y20500D02*X122515Y20000D01*\r
+X122015Y21500D02*Y20500D01*\r
+Y21500D02*X122515Y22000D01*\r
+X123515D01*\r
+X124015Y21500D01*\r
+X122015Y21000D02*X124015D01*\r
+Y21500D02*Y21000D01*\r
+X125216Y22000D02*Y21000D01*\r
+X126216Y20000D01*\r
+X127216Y21000D01*\r
+Y22000D02*Y21000D01*\r
+X128417Y23000D02*Y22500D01*\r
+Y21500D02*Y20000D01*\r
+X129418Y22000D02*X131418D01*\r
+X129418Y20000D02*X131418Y22000D01*\r
+X129418Y20000D02*X131418D01*\r
+X134119Y22000D02*X134619Y21500D01*\r
+X133119Y22000D02*X134119D01*\r
+X132619Y21500D02*X133119Y22000D01*\r
+X132619Y21500D02*Y20500D01*\r
+X133119Y20000D01*\r
+X134619Y22000D02*Y20500D01*\r
+X135119Y20000D01*\r
+X133119D02*X134119D01*\r
+X134619Y20500D01*\r
+X136820Y21500D02*Y20000D01*\r
+Y21500D02*X137320Y22000D01*\r
+X137820D01*\r
+X138320Y21500D01*\r
+Y20000D01*\r
+X136320Y22000D02*X136820Y21500D01*\r
+G54D21*G36*\r
+X222000Y338000D02*Y332000D01*\r
+X228000D01*\r
+Y338000D01*\r
+X222000D01*\r
+G37*\r
+G54D25*X235000Y335000D03*\r
+G54D21*G36*\r
+X369500Y338000D02*Y332000D01*\r
+X375500D01*\r
+Y338000D01*\r
+X369500D01*\r
+G37*\r
+G54D25*X382500Y335000D03*\r
+X392500D03*\r
+X402500D03*\r
+X255000Y365000D03*\r
+X245000D03*\r
+X235000D03*\r
+G54D21*G36*\r
+X287000Y363000D02*Y357000D01*\r
+X293000D01*\r
+Y363000D01*\r
+X287000D01*\r
+G37*\r
+G54D25*X280000Y360000D03*\r
+X225000Y365000D03*\r
+G54D21*G36*\r
+X194500Y383000D02*Y377000D01*\r
+X200500D01*\r
+Y383000D01*\r
+X194500D01*\r
+G37*\r
+G54D25*X177500Y380000D03*\r
+G54D21*G36*\r
+X194500Y360500D02*Y354500D01*\r
+X200500D01*\r
+Y360500D01*\r
+X194500D01*\r
+G37*\r
+G54D25*X177500Y357500D03*\r
+G54D21*G36*\r
+X189500Y338000D02*Y332000D01*\r
+X195500D01*\r
+Y338000D01*\r
+X189500D01*\r
+G37*\r
+G54D25*X202500Y335000D03*\r
+G54D21*G36*\r
+X342000Y373000D02*Y367000D01*\r
+X348000D01*\r
+Y373000D01*\r
+X342000D01*\r
+G37*\r
+G54D25*X345000Y330000D03*\r
+X340000Y280000D03*\r
+X350000D03*\r
+Y310000D03*\r
+X340000D03*\r
+G54D21*G36*\r
+X369500Y283000D02*Y277000D01*\r
+X375500D01*\r
+Y283000D01*\r
+X369500D01*\r
+G37*\r
+G54D25*X382500Y280000D03*\r
+X392500D03*\r
+X402500D03*\r
+Y310000D03*\r
+X392500D03*\r
+X382500D03*\r
+X372500D03*\r
+G54D21*G36*\r
+X312000Y368000D02*Y362000D01*\r
+X318000D01*\r
+Y368000D01*\r
+X312000D01*\r
+G37*\r
+G54D25*X315000Y355000D03*\r
+G54D21*G36*\r
+X394500Y383000D02*Y377000D01*\r
+X400500D01*\r
+Y383000D01*\r
+X394500D01*\r
+G37*\r
+G54D25*X377500Y380000D03*\r
+X402500Y365000D03*\r
+X392500D03*\r
+X382500D03*\r
+X372500D03*\r
+G54D21*G36*\r
+X457000Y373000D02*Y367000D01*\r
+X463000D01*\r
+Y373000D01*\r
+X457000D01*\r
+G37*\r
+G54D25*X425000Y370000D03*\r
+G54D21*G36*\r
+X504500Y383000D02*Y377000D01*\r
+X510500D01*\r
+Y383000D01*\r
+X504500D01*\r
+G37*\r
+G54D25*X487500Y380000D03*\r
+X442500Y370000D03*\r
+X512500Y365000D03*\r
+G54D21*G36*\r
+X529500Y373000D02*Y367000D01*\r
+X535500D01*\r
+Y373000D01*\r
+X529500D01*\r
+G37*\r
+G54D25*X502500Y365000D03*\r
+X492500D03*\r
+X482500D03*\r
+G54D21*G36*\r
+X422000Y318000D02*Y312000D01*\r
+X428000D01*\r
+Y318000D01*\r
+X422000D01*\r
+G37*\r
+G54D25*X460000Y330000D03*\r
+G54D21*G36*\r
+X422000Y333000D02*Y327000D01*\r
+X428000D01*\r
+Y333000D01*\r
+X422000D01*\r
+G37*\r
+G36*\r
+X439500Y318000D02*Y312000D01*\r
+X445500D01*\r
+Y318000D01*\r
+X439500D01*\r
+G37*\r
+G36*\r
+X457000Y288000D02*Y282000D01*\r
+X463000D01*\r
+Y288000D01*\r
+X457000D01*\r
+G37*\r
+G54D25*X460000Y305000D03*\r
+G54D21*G36*\r
+X479500Y283000D02*Y277000D01*\r
+X485500D01*\r
+Y283000D01*\r
+X479500D01*\r
+G37*\r
+G54D25*X492500Y280000D03*\r
+X502500D03*\r
+X512500D03*\r
+X522500D03*\r
+X532500D03*\r
+X542500D03*\r
+X552500D03*\r
+X562500D03*\r
+X572500D03*\r
+X582500D03*\r
+Y310000D03*\r
+X572500D03*\r
+X562500D03*\r
+X552500D03*\r
+X542500D03*\r
+X532500D03*\r
+X522500D03*\r
+X512500D03*\r
+X502500D03*\r
+X492500D03*\r
+X482500D03*\r
+G54D21*G36*\r
+X544500Y333000D02*Y327000D01*\r
+X550500D01*\r
+Y333000D01*\r
+X544500D01*\r
+G37*\r
+G54D25*X512500Y335000D03*\r
+X532500Y330000D03*\r
+G54D21*G36*\r
+X439500Y333000D02*Y327000D01*\r
+X445500D01*\r
+Y333000D01*\r
+X439500D01*\r
+G37*\r
+G36*\r
+X479500Y338000D02*Y332000D01*\r
+X485500D01*\r
+Y338000D01*\r
+X479500D01*\r
+G37*\r
+G54D25*X492500Y335000D03*\r
+X502500D03*\r
+G54D14*X662500Y382500D03*\r
+D03*\r
+G54D21*G36*\r
+X649500Y365500D02*Y359500D01*\r
+X655500D01*\r
+Y365500D01*\r
+X649500D01*\r
+G37*\r
+G54D25*X642500Y362500D03*\r
+X652500Y352500D03*\r
+Y342500D03*\r
+X642500Y352500D03*\r
+Y342500D03*\r
+X632500Y362500D03*\r
+Y352500D03*\r
+Y342500D03*\r
+X592500Y280000D03*\r
+Y310000D03*\r
+X602500Y280000D03*\r
+X612500D03*\r
+Y310000D03*\r
+X602500D03*\r
+X652500Y312500D03*\r
+Y302500D03*\r
+Y292500D03*\r
+X642500D03*\r
+X632500D03*\r
+X652500Y282500D03*\r
+X642500D03*\r
+X632500D03*\r
+X642500Y312500D03*\r
+Y302500D03*\r
+X632500Y312500D03*\r
+Y302500D03*\r
+X547500Y370000D03*\r
+X562500D03*\r
+G54D21*G36*\r
+X604500Y383000D02*Y377000D01*\r
+X610500D01*\r
+Y383000D01*\r
+X604500D01*\r
+G37*\r
+G54D25*X587500Y380000D03*\r
+X612500Y365000D03*\r
+X602500D03*\r
+X592500D03*\r
+X582500D03*\r
+G54D21*G36*\r
+X559500Y333000D02*Y327000D01*\r
+X565500D01*\r
+Y333000D01*\r
+X559500D01*\r
+G37*\r
+G36*\r
+X579500Y338000D02*Y332000D01*\r
+X585500D01*\r
+Y338000D01*\r
+X579500D01*\r
+G37*\r
+G54D25*X592500Y335000D03*\r
+X602500D03*\r
+X612500D03*\r
+X652500Y332500D03*\r
+Y322500D03*\r
+X642500Y332500D03*\r
+Y322500D03*\r
+X632500Y332500D03*\r
+Y322500D03*\r
+G54D21*G36*\r
+X473500Y54000D02*Y46000D01*\r
+X481500D01*\r
+Y54000D01*\r
+X473500D01*\r
+G37*\r
+G54D26*X467500Y50000D03*\r
+X457500D03*\r
+G54D21*G36*\r
+X346000Y54000D02*Y46000D01*\r
+X354000D01*\r
+Y54000D01*\r
+X346000D01*\r
+G37*\r
+G54D26*X340000Y50000D03*\r
+X330000D03*\r
+G54D21*G36*\r
+X473500Y129000D02*Y121000D01*\r
+X481500D01*\r
+Y129000D01*\r
+X473500D01*\r
+G37*\r
+G54D26*X467500Y125000D03*\r
+X457500D03*\r
+G54D21*G36*\r
+X346000Y129000D02*Y121000D01*\r
+X354000D01*\r
+Y129000D01*\r
+X346000D01*\r
+G37*\r
+G54D26*X340000Y125000D03*\r
+X330000D03*\r
+G54D21*G36*\r
+X346000Y204000D02*Y196000D01*\r
+X354000D01*\r
+Y204000D01*\r
+X346000D01*\r
+G37*\r
+G54D26*X340000Y200000D03*\r
+X330000D03*\r
+G54D21*G36*\r
+X59250Y120750D02*Y114250D01*\r
+X65750D01*\r
+Y120750D01*\r
+X59250D01*\r
+G37*\r
+G54D16*X62500Y127500D03*\r
+G54D21*G36*\r
+X59250Y158250D02*Y151750D01*\r
+X65750D01*\r
+Y158250D01*\r
+X59250D01*\r
+G37*\r
+G54D16*X62500Y165000D03*\r
+G54D14*X57500Y33800D03*\r
+G54D21*G36*\r
+X52000Y93000D02*Y87000D01*\r
+X58000D01*\r
+Y93000D01*\r
+X52000D01*\r
+G37*\r
+G54D25*X55000Y72300D03*\r
+G54D13*X64800Y67300D03*\r
+Y94900D03*\r
+G54D14*X57500Y382500D03*\r
+G54D27*X75000Y334500D03*\r
+G54D21*G36*\r
+X59250Y195750D02*Y189250D01*\r
+X65750D01*\r
+Y195750D01*\r
+X59250D01*\r
+G37*\r
+G54D16*X62500Y202500D03*\r
+G54D27*X75000Y236900D03*\r
+G54D21*G36*\r
+X77000Y310500D02*Y304500D01*\r
+X83000D01*\r
+Y310500D01*\r
+X77000D01*\r
+G37*\r
+G54D25*X70000Y302100D03*\r
+X80000Y296600D03*\r
+X70000Y291200D03*\r
+X80000Y285700D03*\r
+X70000Y280300D03*\r
+X80000Y274800D03*\r
+Y263900D03*\r
+X70000Y269400D03*\r
+G54D21*G36*\r
+X214500Y238000D02*Y232000D01*\r
+X220500D01*\r
+Y238000D01*\r
+X214500D01*\r
+G37*\r
+G36*\r
+X214750Y262750D02*Y257250D01*\r
+X220250D01*\r
+Y262750D01*\r
+X214750D01*\r
+G37*\r
+G36*\r
+Y177750D02*Y172250D01*\r
+X220250D01*\r
+Y177750D01*\r
+X214750D01*\r
+G37*\r
+G54D25*X217500Y155000D03*\r
+X177500Y235000D03*\r
+G54D20*Y260000D03*\r
+Y175000D03*\r
+G54D21*G36*\r
+X174500Y158000D02*Y152000D01*\r
+X180500D01*\r
+Y158000D01*\r
+X174500D01*\r
+G37*\r
+G36*\r
+X239500Y263000D02*Y257000D01*\r
+X245500D01*\r
+Y263000D01*\r
+X239500D01*\r
+G37*\r
+G36*\r
+Y238000D02*Y232000D01*\r
+X245500D01*\r
+Y238000D01*\r
+X239500D01*\r
+G37*\r
+G54D25*X252500Y235000D03*\r
+Y260000D03*\r
+G54D21*G36*\r
+X317000Y263000D02*Y257000D01*\r
+X323000D01*\r
+Y263000D01*\r
+X317000D01*\r
+G37*\r
+G54D25*X310000Y260000D03*\r
+G54D21*G36*\r
+X229500Y198000D02*Y192000D01*\r
+X235500D01*\r
+Y198000D01*\r
+X229500D01*\r
+G37*\r
+G54D20*X232500Y175000D03*\r
+G54D21*G36*\r
+X229500Y158000D02*Y152000D01*\r
+X235500D01*\r
+Y158000D01*\r
+X229500D01*\r
+G37*\r
+G36*\r
+X229750Y217750D02*Y212250D01*\r
+X235250D01*\r
+Y217750D01*\r
+X229750D01*\r
+G37*\r
+G54D25*X272500Y195000D03*\r
+G54D21*G36*\r
+X269750Y177750D02*Y172250D01*\r
+X275250D01*\r
+Y177750D01*\r
+X269750D01*\r
+G37*\r
+G54D25*X272500Y155000D03*\r
+G54D20*Y215000D03*\r
+G54D21*G36*\r
+X192000Y63000D02*Y57000D01*\r
+X198000D01*\r
+Y63000D01*\r
+X192000D01*\r
+G37*\r
+G54D25*X205000Y60000D03*\r
+X215000D03*\r
+X225000D03*\r
+X235000D03*\r
+X245000D03*\r
+X255000D03*\r
+Y90000D03*\r
+X245000D03*\r
+G54D21*G36*\r
+X277000Y338000D02*Y332000D01*\r
+X283000D01*\r
+Y338000D01*\r
+X277000D01*\r
+G37*\r
+G54D25*X290000Y335000D03*\r
+X245000D03*\r
+X255000D03*\r
+X330000Y280000D03*\r
+Y310000D03*\r
+X320000D03*\r
+X310000D03*\r
+X300000D03*\r
+X290000D03*\r
+G54D21*G36*\r
+X247000Y383000D02*Y377000D01*\r
+X253000D01*\r
+Y383000D01*\r
+X247000D01*\r
+G37*\r
+G54D25*X230000Y380000D03*\r
+G54D21*G36*\r
+X307000Y338000D02*Y332000D01*\r
+X313000D01*\r
+Y338000D01*\r
+X307000D01*\r
+G37*\r
+G54D25*X320000Y335000D03*\r
+G54D21*G36*\r
+X174500Y308000D02*Y302000D01*\r
+X180500D01*\r
+Y308000D01*\r
+X174500D01*\r
+G37*\r
+G54D25*X177500Y285000D03*\r
+G54D21*G36*\r
+X192000Y283000D02*Y277000D01*\r
+X198000D01*\r
+Y283000D01*\r
+X192000D01*\r
+G37*\r
+G54D25*X205000Y280000D03*\r
+X215000D03*\r
+X225000D03*\r
+X235000D03*\r
+X215000Y310000D03*\r
+G54D21*G36*\r
+X174750Y217750D02*Y212250D01*\r
+X180250D01*\r
+Y217750D01*\r
+X174750D01*\r
+G37*\r
+G54D25*X205000Y310000D03*\r
+X195000D03*\r
+G54D20*X217500Y215000D03*\r
+G54D21*G36*\r
+X284500Y263000D02*Y257000D01*\r
+X290500D01*\r
+Y263000D01*\r
+X284500D01*\r
+G37*\r
+G54D25*X277500Y260000D03*\r
+G54D21*G36*\r
+X277000Y283000D02*Y277000D01*\r
+X283000D01*\r
+Y283000D01*\r
+X277000D01*\r
+G37*\r
+G54D25*X290000Y280000D03*\r
+X300000D03*\r
+X310000D03*\r
+X320000D03*\r
+X245000D03*\r
+X255000D03*\r
+X280000Y310000D03*\r
+X255000D03*\r
+X245000D03*\r
+X235000D03*\r
+Y90000D03*\r
+G54D21*G36*\r
+X239500Y138000D02*Y132000D01*\r
+X245500D01*\r
+Y138000D01*\r
+X239500D01*\r
+G37*\r
+G54D25*X225000Y310000D03*\r
+Y90000D03*\r
+G54D21*G36*\r
+X174500Y198000D02*Y192000D01*\r
+X180500D01*\r
+Y198000D01*\r
+X174500D01*\r
+G37*\r
+G54D25*X217500Y195000D03*\r
+X215000Y90000D03*\r
+X205000D03*\r
+X195000D03*\r
+G54D21*G36*\r
+X174500Y88000D02*Y82000D01*\r
+X180500D01*\r
+Y88000D01*\r
+X174500D01*\r
+G37*\r
+G54D25*X177500Y65000D03*\r
+G54D21*G36*\r
+X214500Y113000D02*Y107000D01*\r
+X220500D01*\r
+Y113000D01*\r
+X214500D01*\r
+G37*\r
+G36*\r
+X239500D02*Y107000D01*\r
+X245500D01*\r
+Y113000D01*\r
+X239500D01*\r
+G37*\r
+G54D25*X252500Y110000D03*\r
+Y135000D03*\r
+G54D21*G36*\r
+X214750Y137750D02*Y132250D01*\r
+X220250D01*\r
+Y137750D01*\r
+X214750D01*\r
+G37*\r
+G54D25*X177500Y110000D03*\r
+G54D20*Y135000D03*\r
+G54D25*X425000Y275000D03*\r
+G54D21*G36*\r
+X473500Y204000D02*Y196000D01*\r
+X481500D01*\r
+Y204000D01*\r
+X473500D01*\r
+G37*\r
+G54D26*X467500Y200000D03*\r
+X457500D03*\r
+G54D25*X442500Y275000D03*\r
+G54D21*G36*\r
+X612000Y263000D02*Y257000D01*\r
+X618000D01*\r
+Y263000D01*\r
+X612000D01*\r
+G37*\r
+G54D25*X632500Y262500D03*\r
+Y252500D03*\r
+X652500Y272500D03*\r
+X642500D03*\r
+X632500D03*\r
+X652500Y262500D03*\r
+X642500D03*\r
+Y252500D03*\r
+Y242500D03*\r
+X652500Y252500D03*\r
+Y242500D03*\r
+X632500D03*\r
+Y232500D03*\r
+Y222500D03*\r
+Y212500D03*\r
+Y202500D03*\r
+X575000Y260000D03*\r
+G54D21*G36*\r
+X554500Y263000D02*Y257000D01*\r
+X560500D01*\r
+Y263000D01*\r
+X554500D01*\r
+G37*\r
+G54D25*X517500Y260000D03*\r
+X500000D03*\r
+G54D21*G36*\r
+X339500Y263000D02*Y257000D01*\r
+X345500D01*\r
+Y263000D01*\r
+X339500D01*\r
+G37*\r
+G54D25*X382500Y260000D03*\r
+G54D21*G36*\r
+X437000Y263000D02*Y257000D01*\r
+X443000D01*\r
+Y263000D01*\r
+X437000D01*\r
+G37*\r
+G54D25*X400000Y260000D03*\r
+G54D21*G36*\r
+X457000Y263000D02*Y257000D01*\r
+X463000D01*\r
+Y263000D01*\r
+X457000D01*\r
+G37*\r
+G36*\r
+X612000Y43000D02*Y37000D01*\r
+X618000D01*\r
+Y43000D01*\r
+X612000D01*\r
+G37*\r
+G54D25*X615000Y30000D03*\r
+G54D21*G36*\r
+X612000Y63000D02*Y57000D01*\r
+X618000D01*\r
+Y63000D01*\r
+X612000D01*\r
+G37*\r
+G54D25*X615000Y70000D03*\r
+G54D14*X662500Y33800D03*\r
+Y32500D03*\r
+G54D21*G36*\r
+X589500Y33000D02*Y27000D01*\r
+X595500D01*\r
+Y33000D01*\r
+X589500D01*\r
+G37*\r
+G54D25*X592500Y50000D03*\r
+G54D21*G36*\r
+X549500Y53000D02*Y47000D01*\r
+X555500D01*\r
+Y53000D01*\r
+X549500D01*\r
+G37*\r
+G54D25*X552500Y30000D03*\r
+G54D21*G36*\r
+X572000Y33000D02*Y27000D01*\r
+X578000D01*\r
+Y33000D01*\r
+X572000D01*\r
+G37*\r
+G54D25*X575000Y50000D03*\r
+X652500Y62500D03*\r
+Y52500D03*\r
+X642500Y62500D03*\r
+Y52500D03*\r
+X632500Y62500D03*\r
+Y52500D03*\r
+G54D21*G36*\r
+X547500Y115000D02*Y105000D01*\r
+X557500D01*\r
+Y115000D01*\r
+X547500D01*\r
+G37*\r
+G54D23*X592500Y110000D03*\r
+G54D21*G36*\r
+X547500Y212500D02*Y202500D01*\r
+X557500D01*\r
+Y212500D01*\r
+X547500D01*\r
+G37*\r
+G54D23*X592500Y207500D03*\r
+G54D25*X652500Y232500D03*\r
+Y222500D03*\r
+Y212500D03*\r
+X642500Y232500D03*\r
+Y222500D03*\r
+Y212500D03*\r
+X652500Y202500D03*\r
+Y192500D03*\r
+Y182500D03*\r
+X642500Y202500D03*\r
+Y192500D03*\r
+X632500D03*\r
+X652500Y162500D03*\r
+Y152500D03*\r
+Y142500D03*\r
+Y132500D03*\r
+Y122500D03*\r
+Y112500D03*\r
+Y102500D03*\r
+Y92500D03*\r
+Y82500D03*\r
+Y72500D03*\r
+Y172500D03*\r
+X642500D03*\r
+Y182500D03*\r
+Y162500D03*\r
+Y152500D03*\r
+Y142500D03*\r
+Y132500D03*\r
+Y122500D03*\r
+Y112500D03*\r
+Y102500D03*\r
+Y92500D03*\r
+Y82500D03*\r
+Y72500D03*\r
+X632500Y182500D03*\r
+Y172500D03*\r
+Y162500D03*\r
+Y152500D03*\r
+Y142500D03*\r
+Y132500D03*\r
+Y122500D03*\r
+Y112500D03*\r
+Y102500D03*\r
+Y92500D03*\r
+Y82500D03*\r
+Y72500D03*\r
+G54D14*X340000Y172500D03*\r
+G54D19*X365000Y92500D03*\r
+X315000Y130000D03*\r
+X360000Y182500D03*\r
+X352500Y292500D03*\r
+X350000Y287500D03*\r
+X315000Y275000D03*\r
+X325000Y250000D03*\r
+G54D22*X360000Y267500D03*\r
+G54D15*X497500Y40000D03*\r
+Y142500D03*\r
+G54D25*X545000Y62500D03*\r
+G54D15*X372500Y40000D03*\r
+G54D25*X400000Y85000D03*\r
+X385000Y70000D03*\r
+G54D26*X392500Y77500D03*\r
+G54D14*X552500Y172500D03*\r
+G54D28*X615000Y122500D03*\r
+G54D14*Y187500D03*\r
+G54D25*X605000Y60000D03*\r
+G54D26*X552500Y70000D03*\r
+G54D14*X592500Y157500D03*\r
+G54D17*X532500Y17500D03*\r
+G54D14*Y157500D03*\r
+G54D25*X432500Y60000D03*\r
+G54D19*X102500Y280000D03*\r
+G54D25*X152500Y347500D03*\r
+X160000Y335000D03*\r
+G54D19*X102500Y297500D03*\r
+G54D25*X187500Y302500D03*\r
+X160000Y285000D03*\r
+G54D19*X87500Y275000D03*\r
+X92500Y270000D03*\r
+X160000Y222500D03*\r
+G54D25*X152500Y227500D03*\r
+X177500Y245000D03*\r
+X160000D03*\r
+X187500Y235000D03*\r
+G54D19*X210000Y370000D03*\r
+G54D25*X262500Y302500D03*\r
+Y207500D03*\r
+G54D19*X305000Y270000D03*\r
+X285000Y302500D03*\r
+G54D25*X295000Y350000D03*\r
+G54D16*X270000Y260000D03*\r
+G54D25*X240000Y80000D03*\r
+X225000Y97500D03*\r
+X252500Y125000D03*\r
+Y97500D03*\r
+G54D19*X155000Y42500D03*\r
+G54D25*X195000Y30000D03*\r
+G54D19*X205000Y52500D03*\r
+X215000Y47500D03*\r
+X225000Y42500D03*\r
+X155000Y135000D03*\r
+X165000Y52500D03*\r
+G54D15*X190000Y97500D03*\r
+G54D19*X160000Y47500D03*\r
+X282500Y165000D03*\r
+G54D25*X177500Y125000D03*\r
+X217500Y187500D03*\r
+X225000Y117500D03*\r
+X242500Y125000D03*\r
+G54D13*X190000Y135000D03*\r
+G54D25*X207500Y155000D03*\r
+X280000Y322500D03*\r
+G54D19*X247500Y392500D03*\r
+G54D15*X270000Y380000D03*\r
+G54D19*X200000Y260000D03*\r
+Y287500D03*\r
+G54D25*X242500Y245000D03*\r
+G54D19*X225000Y222500D03*\r
+Y240000D03*\r
+G54D25*X262500Y235000D03*\r
+G54D13*X270000Y287500D03*\r
+G54D19*X315000Y267500D03*\r
+X295000Y275000D03*\r
+X397500Y267500D03*\r
+G54D22*X387500D03*\r
+G54D19*X367500Y317500D03*\r
+X360000Y260000D03*\r
+X365000Y255000D03*\r
+G54D15*X360000Y380000D03*\r
+G54D19*X417500Y400000D03*\r
+X352500Y240000D03*\r
+X345000Y267500D03*\r
+X332500Y235000D03*\r
+X310000Y317500D03*\r
+X377500Y297500D03*\r
+G54D25*X302500Y322500D03*\r
+G54D15*X327500Y380000D03*\r
+G54D19*X335000Y372500D03*\r
+X507500Y270000D03*\r
+X492500Y235000D03*\r
+X482500Y260000D03*\r
+X507500Y295000D03*\r
+X592500D03*\r
+X480000Y300000D03*\r
+X442500Y295000D03*\r
+X532500Y352500D03*\r
+X377500Y327500D03*\r
+G54D25*X520000Y340000D03*\r
+G54D19*X372500Y260000D03*\r
+G54D25*X385000Y245000D03*\r
+X517500D03*\r
+G54D19*X547500Y357500D03*\r
+X562500Y347500D03*\r
+X527500Y325000D03*\r
+X532500Y322500D03*\r
+G54D15*X602500Y252500D03*\r
+G54D19*X565000Y250000D03*\r
+X545000Y265000D03*\r
+X557500Y237500D03*\r
+X612500Y322500D03*\r
+G54D25*X615000Y302500D03*\r
+G54D19*X442500Y345000D03*\r
+X477500Y387500D03*\r
+X442500Y392500D03*\r
+X435000Y365000D03*\r
+X427500Y392500D03*\r
+X402500D03*\r
+X417500Y370000D03*\r
+G54D15*X410000Y340000D03*\r
+G54D25*X472500Y245000D03*\r
+G54D19*X425000Y295000D03*\r
+G54D25*X400000Y245000D03*\r
+G54D20*X432500Y227500D03*\r
+G54D19*X477500Y295000D03*\r
+G54D25*X472500Y322500D03*\r
+G54D19*X477500Y305000D03*\r
+G54D25*X460000Y340000D03*\r
+G54D29*G54D30*G54D29*G54D30*G54D29*G54D30*G54D29*G54D30*G54D29*G54D30*G54D29*G54D30*G54D29*G54D30*G54D29*G54D30*G54D29*G54D30*G54D29*G54D26*G54D18*G54D29*G54D18*G54D30*G54D29*G54D30*G54D29*G54D18*G54D31*G54D32*G54D26*G54D31*G54D33*G54D26*G54D14*G54D32*G54D14*G54D30*G54D18*G54D30*G54D18*G54D30*G54D18*G54D30*G54D18*G54D30*G54D18*G54D30*G54D18*G54D29*G54D30*G54D29*G54D30*G54D29*G54D18*G54D29*G54D18*G54D30*G54D29*G54D30*G54D29*G54D30*G54D29*G54D30*G54D18*G54D30*G54D18*G54D30*G54D31*G54D30*G54D18*G54D30*G54D26*G54D29*G54D18*G54D25*G54D18*G54D20*G54D21*G54D30*G54D20*G54D30*G54D20*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*G54D30*G54D21*M02*\r
--- /dev/null
+G04 start of page 5 for group -4063 idx -4063 *\r
+G04 Title: (unknown), componentmask *\r
+G04 Creator: pcb 20100929 *\r
+G04 CreationDate: Thu 18 Nov 2010 07:40:28 PM GMT UTC *\r
+G04 For: andrenb *\r
+G04 Format: Gerber/RS-274X *\r
+G04 PCB-Dimensions: 710000 410000 *\r
+G04 PCB-Coordinate-Origin: lower left *\r
+%MOIN*%\r
+%FSLAX25Y25*%\r
+%LNFRONTMASK*%\r
+%ADD21C,0.0200*%\r
+%ADD34C,0.0660*%\r
+%ADD35C,0.1260*%\r
+%ADD36C,0.0860*%\r
+%ADD37C,0.0710*%\r
+%ADD38C,0.0760*%\r
+%ADD39C,0.1460*%\r
+%ADD40C,0.0610*%\r
+%ADD41C,0.1060*%\r
+G54D21*G36*\r
+X221700Y338300D02*Y331700D01*\r
+X228300D01*\r
+Y338300D01*\r
+X221700D01*\r
+G37*\r
+G54D34*X235000Y335000D03*\r
+G54D21*G36*\r
+X369200Y338300D02*Y331700D01*\r
+X375800D01*\r
+Y338300D01*\r
+X369200D01*\r
+G37*\r
+G54D34*X382500Y335000D03*\r
+X392500D03*\r
+X402500D03*\r
+X255000Y365000D03*\r
+X245000D03*\r
+X235000D03*\r
+G54D21*G36*\r
+X286700Y363300D02*Y356700D01*\r
+X293300D01*\r
+Y363300D01*\r
+X286700D01*\r
+G37*\r
+G54D34*X280000Y360000D03*\r
+X225000Y365000D03*\r
+G54D21*G36*\r
+X194200Y383300D02*Y376700D01*\r
+X200800D01*\r
+Y383300D01*\r
+X194200D01*\r
+G37*\r
+G54D34*X177500Y380000D03*\r
+G54D21*G36*\r
+X194200Y360800D02*Y354200D01*\r
+X200800D01*\r
+Y360800D01*\r
+X194200D01*\r
+G37*\r
+G54D34*X177500Y357500D03*\r
+G54D21*G36*\r
+X189200Y338300D02*Y331700D01*\r
+X195800D01*\r
+Y338300D01*\r
+X189200D01*\r
+G37*\r
+G54D34*X202500Y335000D03*\r
+G54D21*G36*\r
+X341700Y373300D02*Y366700D01*\r
+X348300D01*\r
+Y373300D01*\r
+X341700D01*\r
+G37*\r
+G54D34*X345000Y330000D03*\r
+X340000Y280000D03*\r
+X350000D03*\r
+Y310000D03*\r
+X340000D03*\r
+G54D21*G36*\r
+X369200Y283300D02*Y276700D01*\r
+X375800D01*\r
+Y283300D01*\r
+X369200D01*\r
+G37*\r
+G54D34*X382500Y280000D03*\r
+X392500D03*\r
+X402500D03*\r
+Y310000D03*\r
+X392500D03*\r
+X382500D03*\r
+X372500D03*\r
+G54D21*G36*\r
+X311700Y368300D02*Y361700D01*\r
+X318300D01*\r
+Y368300D01*\r
+X311700D01*\r
+G37*\r
+G54D34*X315000Y355000D03*\r
+G54D21*G36*\r
+X394200Y383300D02*Y376700D01*\r
+X400800D01*\r
+Y383300D01*\r
+X394200D01*\r
+G37*\r
+G54D34*X377500Y380000D03*\r
+X402500Y365000D03*\r
+X392500D03*\r
+X382500D03*\r
+X372500D03*\r
+G54D21*G36*\r
+X456700Y373300D02*Y366700D01*\r
+X463300D01*\r
+Y373300D01*\r
+X456700D01*\r
+G37*\r
+G54D34*X425000Y370000D03*\r
+G54D21*G36*\r
+X504200Y383300D02*Y376700D01*\r
+X510800D01*\r
+Y383300D01*\r
+X504200D01*\r
+G37*\r
+G54D34*X487500Y380000D03*\r
+X442500Y370000D03*\r
+X512500Y365000D03*\r
+G54D21*G36*\r
+X529200Y373300D02*Y366700D01*\r
+X535800D01*\r
+Y373300D01*\r
+X529200D01*\r
+G37*\r
+G54D34*X502500Y365000D03*\r
+X492500D03*\r
+X482500D03*\r
+G54D21*G36*\r
+X421700Y318300D02*Y311700D01*\r
+X428300D01*\r
+Y318300D01*\r
+X421700D01*\r
+G37*\r
+G54D34*X460000Y330000D03*\r
+G54D21*G36*\r
+X421700Y333300D02*Y326700D01*\r
+X428300D01*\r
+Y333300D01*\r
+X421700D01*\r
+G37*\r
+G36*\r
+X439200Y318300D02*Y311700D01*\r
+X445800D01*\r
+Y318300D01*\r
+X439200D01*\r
+G37*\r
+G36*\r
+X456700Y288300D02*Y281700D01*\r
+X463300D01*\r
+Y288300D01*\r
+X456700D01*\r
+G37*\r
+G54D34*X460000Y305000D03*\r
+G54D21*G36*\r
+X479200Y283300D02*Y276700D01*\r
+X485800D01*\r
+Y283300D01*\r
+X479200D01*\r
+G37*\r
+G54D34*X492500Y280000D03*\r
+X502500D03*\r
+X512500D03*\r
+X522500D03*\r
+X532500D03*\r
+X542500D03*\r
+X552500D03*\r
+X562500D03*\r
+X572500D03*\r
+X582500D03*\r
+Y310000D03*\r
+X572500D03*\r
+X562500D03*\r
+X552500D03*\r
+X542500D03*\r
+X532500D03*\r
+X522500D03*\r
+X512500D03*\r
+X502500D03*\r
+X492500D03*\r
+X482500D03*\r
+G54D21*G36*\r
+X544200Y333300D02*Y326700D01*\r
+X550800D01*\r
+Y333300D01*\r
+X544200D01*\r
+G37*\r
+G54D34*X512500Y335000D03*\r
+X532500Y330000D03*\r
+G54D21*G36*\r
+X439200Y333300D02*Y326700D01*\r
+X445800D01*\r
+Y333300D01*\r
+X439200D01*\r
+G37*\r
+G36*\r
+X479200Y338300D02*Y331700D01*\r
+X485800D01*\r
+Y338300D01*\r
+X479200D01*\r
+G37*\r
+G54D34*X492500Y335000D03*\r
+X502500D03*\r
+G54D35*X662500Y382500D03*\r
+D03*\r
+G54D21*G36*\r
+X649200Y365800D02*Y359200D01*\r
+X655800D01*\r
+Y365800D01*\r
+X649200D01*\r
+G37*\r
+G54D34*X642500Y362500D03*\r
+X652500Y352500D03*\r
+Y342500D03*\r
+X642500Y352500D03*\r
+Y342500D03*\r
+X632500Y362500D03*\r
+Y352500D03*\r
+Y342500D03*\r
+X592500Y280000D03*\r
+Y310000D03*\r
+X602500Y280000D03*\r
+X612500D03*\r
+Y310000D03*\r
+X602500D03*\r
+X652500Y312500D03*\r
+Y302500D03*\r
+Y292500D03*\r
+X642500D03*\r
+X632500D03*\r
+X652500Y282500D03*\r
+X642500D03*\r
+X632500D03*\r
+X642500Y312500D03*\r
+Y302500D03*\r
+X632500Y312500D03*\r
+Y302500D03*\r
+X547500Y370000D03*\r
+X562500D03*\r
+G54D21*G36*\r
+X604200Y383300D02*Y376700D01*\r
+X610800D01*\r
+Y383300D01*\r
+X604200D01*\r
+G37*\r
+G54D34*X587500Y380000D03*\r
+X612500Y365000D03*\r
+X602500D03*\r
+X592500D03*\r
+X582500D03*\r
+G54D21*G36*\r
+X559200Y333300D02*Y326700D01*\r
+X565800D01*\r
+Y333300D01*\r
+X559200D01*\r
+G37*\r
+G36*\r
+X579200Y338300D02*Y331700D01*\r
+X585800D01*\r
+Y338300D01*\r
+X579200D01*\r
+G37*\r
+G54D34*X592500Y335000D03*\r
+X602500D03*\r
+X612500D03*\r
+X652500Y332500D03*\r
+Y322500D03*\r
+X642500Y332500D03*\r
+Y322500D03*\r
+X632500Y332500D03*\r
+Y322500D03*\r
+G54D21*G36*\r
+X473200Y54300D02*Y45700D01*\r
+X481800D01*\r
+Y54300D01*\r
+X473200D01*\r
+G37*\r
+G54D36*X467500Y50000D03*\r
+X457500D03*\r
+G54D21*G36*\r
+X345700Y54300D02*Y45700D01*\r
+X354300D01*\r
+Y54300D01*\r
+X345700D01*\r
+G37*\r
+G54D36*X340000Y50000D03*\r
+X330000D03*\r
+G54D21*G36*\r
+X473200Y129300D02*Y120700D01*\r
+X481800D01*\r
+Y129300D01*\r
+X473200D01*\r
+G37*\r
+G54D36*X467500Y125000D03*\r
+X457500D03*\r
+G54D21*G36*\r
+X345700Y129300D02*Y120700D01*\r
+X354300D01*\r
+Y129300D01*\r
+X345700D01*\r
+G37*\r
+G54D36*X340000Y125000D03*\r
+X330000D03*\r
+G54D21*G36*\r
+X345700Y204300D02*Y195700D01*\r
+X354300D01*\r
+Y204300D01*\r
+X345700D01*\r
+G37*\r
+G54D36*X340000Y200000D03*\r
+X330000D03*\r
+G54D21*G36*\r
+X58950Y121050D02*Y113950D01*\r
+X66050D01*\r
+Y121050D01*\r
+X58950D01*\r
+G37*\r
+G54D37*X62500Y127500D03*\r
+G54D21*G36*\r
+X58950Y158550D02*Y151450D01*\r
+X66050D01*\r
+Y158550D01*\r
+X58950D01*\r
+G37*\r
+G54D37*X62500Y165000D03*\r
+G54D35*X57500Y33800D03*\r
+G54D21*G36*\r
+X51700Y93300D02*Y86700D01*\r
+X58300D01*\r
+Y93300D01*\r
+X51700D01*\r
+G37*\r
+G54D34*X55000Y72300D03*\r
+G54D38*X64800Y67300D03*\r
+Y94900D03*\r
+G54D35*X57500Y382500D03*\r
+G54D39*X75000Y334500D03*\r
+G54D21*G36*\r
+X58950Y196050D02*Y188950D01*\r
+X66050D01*\r
+Y196050D01*\r
+X58950D01*\r
+G37*\r
+G54D37*X62500Y202500D03*\r
+G54D39*X75000Y236900D03*\r
+G54D21*G36*\r
+X76700Y310800D02*Y304200D01*\r
+X83300D01*\r
+Y310800D01*\r
+X76700D01*\r
+G37*\r
+G54D34*X70000Y302100D03*\r
+X80000Y296600D03*\r
+X70000Y291200D03*\r
+X80000Y285700D03*\r
+X70000Y280300D03*\r
+X80000Y274800D03*\r
+Y263900D03*\r
+X70000Y269400D03*\r
+G54D21*G36*\r
+X214200Y238300D02*Y231700D01*\r
+X220800D01*\r
+Y238300D01*\r
+X214200D01*\r
+G37*\r
+G36*\r
+X214450Y263050D02*Y256950D01*\r
+X220550D01*\r
+Y263050D01*\r
+X214450D01*\r
+G37*\r
+G36*\r
+Y178050D02*Y171950D01*\r
+X220550D01*\r
+Y178050D01*\r
+X214450D01*\r
+G37*\r
+G54D34*X217500Y155000D03*\r
+X177500Y235000D03*\r
+G54D40*Y260000D03*\r
+Y175000D03*\r
+G54D21*G36*\r
+X174200Y158300D02*Y151700D01*\r
+X180800D01*\r
+Y158300D01*\r
+X174200D01*\r
+G37*\r
+G36*\r
+X239200Y263300D02*Y256700D01*\r
+X245800D01*\r
+Y263300D01*\r
+X239200D01*\r
+G37*\r
+G36*\r
+Y238300D02*Y231700D01*\r
+X245800D01*\r
+Y238300D01*\r
+X239200D01*\r
+G37*\r
+G54D34*X252500Y235000D03*\r
+Y260000D03*\r
+G54D21*G36*\r
+X316700Y263300D02*Y256700D01*\r
+X323300D01*\r
+Y263300D01*\r
+X316700D01*\r
+G37*\r
+G54D34*X310000Y260000D03*\r
+G54D21*G36*\r
+X229200Y198300D02*Y191700D01*\r
+X235800D01*\r
+Y198300D01*\r
+X229200D01*\r
+G37*\r
+G54D40*X232500Y175000D03*\r
+G54D21*G36*\r
+X229200Y158300D02*Y151700D01*\r
+X235800D01*\r
+Y158300D01*\r
+X229200D01*\r
+G37*\r
+G36*\r
+X229450Y218050D02*Y211950D01*\r
+X235550D01*\r
+Y218050D01*\r
+X229450D01*\r
+G37*\r
+G54D34*X272500Y195000D03*\r
+G54D21*G36*\r
+X269450Y178050D02*Y171950D01*\r
+X275550D01*\r
+Y178050D01*\r
+X269450D01*\r
+G37*\r
+G54D34*X272500Y155000D03*\r
+G54D40*Y215000D03*\r
+G54D21*G36*\r
+X191700Y63300D02*Y56700D01*\r
+X198300D01*\r
+Y63300D01*\r
+X191700D01*\r
+G37*\r
+G54D34*X205000Y60000D03*\r
+X215000D03*\r
+X225000D03*\r
+X235000D03*\r
+X245000D03*\r
+X255000D03*\r
+Y90000D03*\r
+X245000D03*\r
+G54D21*G36*\r
+X276700Y338300D02*Y331700D01*\r
+X283300D01*\r
+Y338300D01*\r
+X276700D01*\r
+G37*\r
+G54D34*X290000Y335000D03*\r
+X245000D03*\r
+X255000D03*\r
+X330000Y280000D03*\r
+Y310000D03*\r
+X320000D03*\r
+X310000D03*\r
+X300000D03*\r
+X290000D03*\r
+G54D21*G36*\r
+X246700Y383300D02*Y376700D01*\r
+X253300D01*\r
+Y383300D01*\r
+X246700D01*\r
+G37*\r
+G54D34*X230000Y380000D03*\r
+G54D21*G36*\r
+X306700Y338300D02*Y331700D01*\r
+X313300D01*\r
+Y338300D01*\r
+X306700D01*\r
+G37*\r
+G54D34*X320000Y335000D03*\r
+G54D21*G36*\r
+X174200Y308300D02*Y301700D01*\r
+X180800D01*\r
+Y308300D01*\r
+X174200D01*\r
+G37*\r
+G54D34*X177500Y285000D03*\r
+G54D21*G36*\r
+X191700Y283300D02*Y276700D01*\r
+X198300D01*\r
+Y283300D01*\r
+X191700D01*\r
+G37*\r
+G54D34*X205000Y280000D03*\r
+X215000D03*\r
+X225000D03*\r
+X235000D03*\r
+X215000Y310000D03*\r
+G54D21*G36*\r
+X174450Y218050D02*Y211950D01*\r
+X180550D01*\r
+Y218050D01*\r
+X174450D01*\r
+G37*\r
+G54D34*X205000Y310000D03*\r
+X195000D03*\r
+G54D40*X217500Y215000D03*\r
+G54D21*G36*\r
+X284200Y263300D02*Y256700D01*\r
+X290800D01*\r
+Y263300D01*\r
+X284200D01*\r
+G37*\r
+G54D34*X277500Y260000D03*\r
+G54D21*G36*\r
+X276700Y283300D02*Y276700D01*\r
+X283300D01*\r
+Y283300D01*\r
+X276700D01*\r
+G37*\r
+G54D34*X290000Y280000D03*\r
+X300000D03*\r
+X310000D03*\r
+X320000D03*\r
+X245000D03*\r
+X255000D03*\r
+X280000Y310000D03*\r
+X255000D03*\r
+X245000D03*\r
+X235000D03*\r
+Y90000D03*\r
+G54D21*G36*\r
+X239200Y138300D02*Y131700D01*\r
+X245800D01*\r
+Y138300D01*\r
+X239200D01*\r
+G37*\r
+G54D34*X225000Y310000D03*\r
+Y90000D03*\r
+G54D21*G36*\r
+X174200Y198300D02*Y191700D01*\r
+X180800D01*\r
+Y198300D01*\r
+X174200D01*\r
+G37*\r
+G54D34*X217500Y195000D03*\r
+X215000Y90000D03*\r
+X205000D03*\r
+X195000D03*\r
+G54D21*G36*\r
+X174200Y88300D02*Y81700D01*\r
+X180800D01*\r
+Y88300D01*\r
+X174200D01*\r
+G37*\r
+G54D34*X177500Y65000D03*\r
+G54D21*G36*\r
+X214200Y113300D02*Y106700D01*\r
+X220800D01*\r
+Y113300D01*\r
+X214200D01*\r
+G37*\r
+G36*\r
+X239200D02*Y106700D01*\r
+X245800D01*\r
+Y113300D01*\r
+X239200D01*\r
+G37*\r
+G54D34*X252500Y110000D03*\r
+Y135000D03*\r
+G54D21*G36*\r
+X214450Y138050D02*Y131950D01*\r
+X220550D01*\r
+Y138050D01*\r
+X214450D01*\r
+G37*\r
+G54D34*X177500Y110000D03*\r
+G54D40*Y135000D03*\r
+G54D34*X425000Y275000D03*\r
+G54D21*G36*\r
+X473200Y204300D02*Y195700D01*\r
+X481800D01*\r
+Y204300D01*\r
+X473200D01*\r
+G37*\r
+G54D36*X467500Y200000D03*\r
+X457500D03*\r
+G54D34*X442500Y275000D03*\r
+G54D21*G36*\r
+X611700Y263300D02*Y256700D01*\r
+X618300D01*\r
+Y263300D01*\r
+X611700D01*\r
+G37*\r
+G54D34*X632500Y262500D03*\r
+Y252500D03*\r
+X652500Y272500D03*\r
+X642500D03*\r
+X632500D03*\r
+X652500Y262500D03*\r
+X642500D03*\r
+Y252500D03*\r
+Y242500D03*\r
+X652500Y252500D03*\r
+Y242500D03*\r
+X632500D03*\r
+Y232500D03*\r
+Y222500D03*\r
+Y212500D03*\r
+Y202500D03*\r
+X575000Y260000D03*\r
+G54D21*G36*\r
+X554200Y263300D02*Y256700D01*\r
+X560800D01*\r
+Y263300D01*\r
+X554200D01*\r
+G37*\r
+G54D34*X517500Y260000D03*\r
+X500000D03*\r
+G54D21*G36*\r
+X339200Y263300D02*Y256700D01*\r
+X345800D01*\r
+Y263300D01*\r
+X339200D01*\r
+G37*\r
+G54D34*X382500Y260000D03*\r
+G54D21*G36*\r
+X436700Y263300D02*Y256700D01*\r
+X443300D01*\r
+Y263300D01*\r
+X436700D01*\r
+G37*\r
+G54D34*X400000Y260000D03*\r
+G54D21*G36*\r
+X456700Y263300D02*Y256700D01*\r
+X463300D01*\r
+Y263300D01*\r
+X456700D01*\r
+G37*\r
+G36*\r
+X611700Y43300D02*Y36700D01*\r
+X618300D01*\r
+Y43300D01*\r
+X611700D01*\r
+G37*\r
+G54D34*X615000Y30000D03*\r
+G54D21*G36*\r
+X611700Y63300D02*Y56700D01*\r
+X618300D01*\r
+Y63300D01*\r
+X611700D01*\r
+G37*\r
+G54D34*X615000Y70000D03*\r
+G54D35*X662500Y33800D03*\r
+Y32500D03*\r
+G54D21*G36*\r
+X589200Y33300D02*Y26700D01*\r
+X595800D01*\r
+Y33300D01*\r
+X589200D01*\r
+G37*\r
+G54D34*X592500Y50000D03*\r
+G54D21*G36*\r
+X549200Y53300D02*Y46700D01*\r
+X555800D01*\r
+Y53300D01*\r
+X549200D01*\r
+G37*\r
+G54D34*X552500Y30000D03*\r
+G54D21*G36*\r
+X571700Y33300D02*Y26700D01*\r
+X578300D01*\r
+Y33300D01*\r
+X571700D01*\r
+G37*\r
+G54D34*X575000Y50000D03*\r
+X652500Y62500D03*\r
+Y52500D03*\r
+X642500Y62500D03*\r
+Y52500D03*\r
+X632500Y62500D03*\r
+Y52500D03*\r
+G54D21*G36*\r
+X547200Y115300D02*Y104700D01*\r
+X557800D01*\r
+Y115300D01*\r
+X547200D01*\r
+G37*\r
+G54D41*X592500Y110000D03*\r
+G54D21*G36*\r
+X547200Y212800D02*Y202200D01*\r
+X557800D01*\r
+Y212800D01*\r
+X547200D01*\r
+G37*\r
+G54D41*X592500Y207500D03*\r
+G54D34*X652500Y232500D03*\r
+Y222500D03*\r
+Y212500D03*\r
+X642500Y232500D03*\r
+Y222500D03*\r
+Y212500D03*\r
+X652500Y202500D03*\r
+Y192500D03*\r
+Y182500D03*\r
+X642500Y202500D03*\r
+Y192500D03*\r
+X632500D03*\r
+X652500Y162500D03*\r
+Y152500D03*\r
+Y142500D03*\r
+Y132500D03*\r
+Y122500D03*\r
+Y112500D03*\r
+Y102500D03*\r
+Y92500D03*\r
+Y82500D03*\r
+Y72500D03*\r
+Y172500D03*\r
+X642500D03*\r
+Y182500D03*\r
+Y162500D03*\r
+Y152500D03*\r
+Y142500D03*\r
+Y132500D03*\r
+Y122500D03*\r
+Y112500D03*\r
+Y102500D03*\r
+Y92500D03*\r
+Y82500D03*\r
+Y72500D03*\r
+X632500Y182500D03*\r
+Y172500D03*\r
+Y162500D03*\r
+Y152500D03*\r
+Y142500D03*\r
+Y132500D03*\r
+Y122500D03*\r
+Y112500D03*\r
+Y102500D03*\r
+Y92500D03*\r
+Y82500D03*\r
+Y72500D03*\r
+M02*\r
--- /dev/null
+G04 start of page 8 for group -4015 idx -4015\r
+G04 Title: (unknown), toppaste *\r
+G04 Creator: pcb 20080202 *\r
+G04 CreationDate: Mon 28 Apr 2008 09:29:18 PM GMT UTC *\r
+G04 For: fetter *\r
+G04 Format: Gerber/RS-274X *\r
+G04 PCB-Dimensions: 710000 410000 *\r
+G04 PCB-Coordinate-Origin: lower left *\r
+%MOIN*%\r
+%FSLAX24Y24*%\r
+%LNFRONTPASTE*%\r
+%ADD28R,0.0200X0.0200*%\r
+G54D28*X41500Y12050D02*Y11400D01*\r
+X42000Y12050D02*Y11400D01*\r
+X42500Y12050D02*Y11400D01*\r
+X43000Y12050D02*Y11400D01*\r
+Y14100D02*Y13450D01*\r
+X42500Y14100D02*Y13450D01*\r
+X42000Y14100D02*Y13450D01*\r
+X41500Y14100D02*Y13450D01*\r
+Y20300D02*Y19650D01*\r
+X42000Y20300D02*Y19650D01*\r
+X42500Y20300D02*Y19650D01*\r
+X43000Y20300D02*Y19650D01*\r
+Y22350D02*Y21700D01*\r
+X42500Y22350D02*Y21700D01*\r
+X42000Y22350D02*Y21700D01*\r
+X41500Y22350D02*Y21700D01*\r
+M02*\r
--- /dev/null
+G04 start of page 7 for group -4079 idx -4079 *\r
+G04 Title: (unknown), topsilk *\r
+G04 Creator: pcb 20100929 *\r
+G04 CreationDate: Thu 18 Nov 2010 07:40:28 PM GMT UTC *\r
+G04 For: andrenb *\r
+G04 Format: Gerber/RS-274X *\r
+G04 PCB-Dimensions: 710000 410000 *\r
+G04 PCB-Coordinate-Origin: lower left *\r
+%MOIN*%\r
+%FSLAX25Y25*%\r
+%LNFRONTSILK*%\r
+%ADD11C,0.0100*%\r
+%ADD19C,0.0400*%\r
+%ADD21C,0.0200*%\r
+%ADD24C,0.0080*%\r
+G54D11*X182500Y305000D02*Y285000D01*\r
+X172500Y305000D02*Y285000D01*\r
+X182500Y305000D02*G75*G03X172500Y305000I-5000J0D01*G01*\r
+Y285000D02*G75*G03X182500Y285000I5000J0D01*G01*\r
+G54D21*X45000Y94900D02*X70800D01*\r
+X45000D02*Y67300D01*\r
+X70800D01*\r
+X58800Y94900D02*Y67300D01*\r
+X45000Y88000D02*X8400Y87000D01*\r
+Y75200D01*\r
+X45000Y74200D01*\r
+G54D11*X62500Y146200D02*G75*G03X62500Y146200I0J13800D01*G01*\r
+Y148200D02*G75*G03X62500Y148200I0J11800D01*G01*\r
+Y108700D02*G75*G03X62500Y108700I0J13800D01*G01*\r
+Y110700D02*G75*G03X62500Y110700I0J11800D01*G01*\r
+Y183700D02*G75*G03X62500Y183700I0J13800D01*G01*\r
+Y185700D02*G75*G03X62500Y185700I0J11800D01*G01*\r
+X29000Y346500D02*X32000D01*\r
+Y224900D01*\r
+X29000D01*\r
+Y346500D01*\r
+Y340500D02*X32000D01*\r
+X29000Y328500D02*X32000D01*\r
+X29000Y230900D02*X32000D01*\r
+X29000Y242900D02*X32000D01*\r
+G54D21*X2000Y317500D02*X29000D01*\r
+G54D11*Y253900D01*\r
+G54D21*X2000D01*\r
+Y317500D01*\r
+X32000Y323500D02*X52000D01*\r
+Y247900D01*\r
+X32000D01*\r
+G54D11*Y323500D01*\r
+G54D21*X80000Y307500D02*X52000D01*\r
+X80000Y296600D02*X52000D01*\r
+X80000Y285700D02*X52000D01*\r
+X80000Y274800D02*X52000D01*\r
+X80000Y263900D02*X52000D01*\r
+X70000Y302100D02*X52000D01*\r
+X70000Y291200D02*X52000D01*\r
+X70000Y280300D02*X52000D01*\r
+X70000Y269400D02*X52000D01*\r
+G54D11*X186000Y337500D02*Y332500D01*\r
+X183500Y335000D02*X188500D01*\r
+X187500D02*G75*G03X187500Y335000I10000J0D01*G01*\r
+X236000Y237500D02*Y232500D01*\r
+X233500Y235000D02*X238500D01*\r
+X237500D02*G75*G03X237500Y235000I10000J0D01*G01*\r
+X232500Y215000D02*X242500D01*\r
+X262500D02*X272500D01*\r
+X242500Y218300D02*X262500D01*\r
+Y211700D01*\r
+X242500D02*X262500D01*\r
+X242500Y218300D02*Y211700D01*\r
+X439200Y340000D02*X445800D01*\r
+Y360000D02*Y340000D01*\r
+X439200Y360000D02*X445800D01*\r
+X439200D02*Y340000D01*\r
+X442500Y370000D02*Y360000D01*\r
+Y340000D02*Y330000D01*\r
+X421700Y340000D02*X428300D01*\r
+Y360000D02*Y340000D01*\r
+X421700Y360000D02*X428300D01*\r
+X421700D02*Y340000D01*\r
+X425000Y370000D02*Y360000D01*\r
+Y340000D02*Y330000D01*\r
+X324000Y260000D02*X329000D01*\r
+X326500Y262500D02*Y257500D01*\r
+X325000Y260000D02*G75*G03X325000Y260000I-10000J0D01*G01*\r
+G54D21*X287500Y175000D02*X392500D01*\r
+Y240000D02*Y175000D01*\r
+X387500Y240000D02*X392500D01*\r
+X387500D02*Y185000D01*\r
+X367500D02*X387500D01*\r
+X367500Y240000D02*Y185000D01*\r
+X362500Y240000D02*X367500D01*\r
+X362500D02*Y185000D01*\r
+X317500D02*X362500D01*\r
+X287500Y240000D02*Y175000D01*\r
+Y240000D02*X292500D01*\r
+Y185000D01*\r
+X312500D01*\r
+Y240000D02*Y185000D01*\r
+Y240000D02*X317500D01*\r
+Y185000D01*\r
+G54D11*X333000Y194000D02*Y188000D01*\r
+X347000Y194000D02*Y188000D01*\r
+G54D21*X360000Y194000D02*Y188000D01*\r
+X320000Y194000D02*X360000D01*\r
+X320000D02*Y188000D01*\r
+X360000D01*\r
+Y206000D02*Y188000D01*\r
+X320000Y206000D02*X360000D01*\r
+X320000D02*Y188000D01*\r
+X360000D01*\r
+G54D11*X455000Y305000D02*Y285000D01*\r
+X465000Y305000D02*Y285000D01*\r
+X455000D02*G75*G03X465000Y285000I5000J0D01*G01*\r
+Y305000D02*G75*G03X455000Y305000I-5000J0D01*G01*\r
+X430000Y263300D02*Y256700D01*\r
+X410000Y263300D02*X430000D01*\r
+X410000D02*Y256700D01*\r
+X430000D01*\r
+X400000Y260000D02*X410000D01*\r
+X430000D02*X440000D01*\r
+X421700Y305000D02*X428300D01*\r
+X421700D02*Y285000D01*\r
+X428300D01*\r
+Y305000D02*Y285000D01*\r
+X425000D02*Y275000D01*\r
+Y315000D02*Y305000D01*\r
+X439200D02*X445800D01*\r
+X439200D02*Y285000D01*\r
+X445800D01*\r
+Y305000D02*Y285000D01*\r
+X442500D02*Y275000D01*\r
+Y315000D02*Y305000D01*\r
+X367500Y315000D02*Y300000D01*\r
+Y290000D02*Y275000D01*\r
+Y315000D02*X407500D01*\r
+Y275000D01*\r
+X367500D02*X407500D01*\r
+X367500Y290000D02*G75*G03X367500Y300000I0J5000D01*G01*\r
+Y370000D02*Y355000D01*\r
+Y345000D02*Y330000D01*\r
+Y370000D02*X407500D01*\r
+Y330000D01*\r
+X367500D02*X407500D01*\r
+X367500Y345000D02*G75*G03X367500Y355000I0J5000D01*G01*\r
+X303500Y337500D02*Y332500D01*\r
+X306000Y335000D02*X301000D01*\r
+X305000D02*G75*G03X305000Y335000I10000J0D01*G01*\r
+X341700Y360000D02*X348300D01*\r
+X341700D02*Y340000D01*\r
+X348300D01*\r
+Y360000D02*Y340000D01*\r
+X345000D02*Y330000D01*\r
+Y370000D02*Y360000D01*\r
+X460500Y119000D02*Y113000D01*\r
+X474500Y119000D02*Y113000D01*\r
+G54D21*X487500Y119000D02*Y113000D01*\r
+X447500Y119000D02*X487500D01*\r
+X447500D02*Y113000D01*\r
+X487500D01*\r
+Y131000D02*Y113000D01*\r
+X447500Y131000D02*X487500D01*\r
+X447500D02*Y113000D01*\r
+X487500D01*\r
+G54D11*X460500Y194000D02*Y188000D01*\r
+X474500Y194000D02*Y188000D01*\r
+G54D21*X487500Y194000D02*Y188000D01*\r
+X447500Y194000D02*X487500D01*\r
+X447500D02*Y188000D01*\r
+X487500D01*\r
+Y206000D02*Y188000D01*\r
+X447500Y206000D02*X487500D01*\r
+X447500D02*Y188000D01*\r
+X487500D01*\r
+G54D11*X470000Y263300D02*Y256700D01*\r
+X490000D01*\r
+Y263300D02*Y256700D01*\r
+X470000Y263300D02*X490000D01*\r
+Y260000D02*X500000D01*\r
+X460000D02*X470000D01*\r
+G54D21*X415000Y175000D02*X520000D01*\r
+Y240000D02*Y175000D01*\r
+X515000Y240000D02*X520000D01*\r
+X515000D02*Y185000D01*\r
+X495000D02*X515000D01*\r
+X495000Y240000D02*Y185000D01*\r
+X490000Y240000D02*X495000D01*\r
+X490000D02*Y185000D01*\r
+X445000D02*X490000D01*\r
+X415000Y240000D02*Y175000D01*\r
+Y240000D02*X420000D01*\r
+Y185000D01*\r
+X440000D01*\r
+Y240000D02*Y185000D01*\r
+Y240000D02*X445000D01*\r
+Y185000D01*\r
+X45000Y405000D02*Y11300D01*\r
+X675000D01*\r
+Y405000D01*\r
+X45000D01*\r
+G54D11*X342500Y260000D02*X355800D01*\r
+X369200D02*X382500D01*\r
+X355800D02*X369200Y266600D01*\r
+Y253400D01*\r
+X355800Y260000D01*\r
+Y266600D02*Y253400D01*\r
+X333000Y119000D02*Y113000D01*\r
+X347000Y119000D02*Y113000D01*\r
+G54D21*X360000Y119000D02*Y113000D01*\r
+X320000Y119000D02*X360000D01*\r
+X320000D02*Y113000D01*\r
+X360000D01*\r
+Y131000D02*Y113000D01*\r
+X320000Y131000D02*X360000D01*\r
+X320000D02*Y113000D01*\r
+X360000D01*\r
+G54D11*X377500Y375000D02*X397500D01*\r
+X377500Y385000D02*X397500D01*\r
+Y375000D02*G75*G03X397500Y385000I0J5000D01*G01*\r
+X377500D02*G75*G03X377500Y375000I0J-5000D01*G01*\r
+G54D19*X632500Y52500D02*X660000D01*\r
+X632500Y62500D02*X660000D01*\r
+X632500Y72500D02*X660000D01*\r
+X632500Y82500D02*X660000D01*\r
+X632500Y92500D02*X660000D01*\r
+X632500Y102500D02*X660000D01*\r
+X632500Y112500D02*X660000D01*\r
+X632500Y122500D02*X660000D01*\r
+X632500Y132500D02*X660000D01*\r
+X632500Y142500D02*X660000D01*\r
+X632500Y152500D02*X660000D01*\r
+X632500Y162500D02*X660000D01*\r
+X632500Y172500D02*X660000D01*\r
+X632500Y182500D02*X660000D01*\r
+X632500Y192500D02*X660000D01*\r
+X632500Y202500D02*X660000D01*\r
+X632500Y212500D02*X660000D01*\r
+X632500Y222500D02*X660000D01*\r
+X632500Y232500D02*X660000D01*\r
+X632500Y242500D02*X660000D01*\r
+X632500Y252500D02*X660000D01*\r
+X632500Y262500D02*X660000D01*\r
+X632500Y272500D02*X660000D01*\r
+X632500Y282500D02*X660000D01*\r
+X632500Y292500D02*X660000D01*\r
+X632500Y302500D02*X660000D01*\r
+X632500Y312500D02*X660000D01*\r
+X632500Y322500D02*X660000D01*\r
+X632500Y332500D02*X660000D01*\r
+X632500Y342500D02*X660000D01*\r
+X632500Y352500D02*X660000D01*\r
+X632500Y362500D02*X660000D01*\r
+G54D21*X652500Y44500D02*Y22500D01*\r
+Y44500D02*X662000D01*\r
+G54D11*X684500D01*\r
+Y32500D01*\r
+G54D21*Y22500D01*\r
+X652500D02*X684500D01*\r
+X652500Y392500D02*Y370500D01*\r
+Y392500D02*X684500D01*\r
+Y382500D01*\r
+G54D11*Y370500D01*\r
+X662000D02*X684500D01*\r
+G54D21*X652500D02*X662000D01*\r
+Y44500D01*\r
+X684500Y32500D02*X702500D01*\r
+Y382500D02*Y32500D01*\r
+X684500Y382500D02*X702500D01*\r
+G54D11*X177500Y352500D02*X197500D01*\r
+X177500Y362500D02*X197500D01*\r
+Y352500D02*G75*G03X197500Y362500I0J5000D01*G01*\r
+X177500D02*G75*G03X177500Y352500I0J-5000D01*G01*\r
+X275000Y315000D02*Y300000D01*\r
+Y290000D02*Y275000D01*\r
+Y315000D02*X355000D01*\r
+Y275000D01*\r
+X275000D02*X355000D01*\r
+X275000Y290000D02*G75*G03X275000Y300000I0J5000D01*G01*\r
+X315000Y374000D02*Y369000D01*\r
+X312500Y371500D02*X317500D01*\r
+X315000Y370000D02*G75*G03X315000Y370000I0J-10000D01*G01*\r
+X456700Y360000D02*X463300D01*\r
+X456700D02*Y340000D01*\r
+X463300D01*\r
+Y360000D02*Y340000D01*\r
+X460000D02*Y330000D01*\r
+Y370000D02*Y360000D01*\r
+X615000Y49000D02*Y44000D01*\r
+X612500Y46500D02*X617500D01*\r
+X615000Y45000D02*G75*G03X615000Y45000I0J-10000D01*G01*\r
+X333000Y44000D02*Y38000D01*\r
+X347000Y44000D02*Y38000D01*\r
+G54D21*X360000Y44000D02*Y38000D01*\r
+X320000Y44000D02*X360000D01*\r
+X320000D02*Y38000D01*\r
+X360000D01*\r
+Y56000D02*Y38000D01*\r
+X320000Y56000D02*X360000D01*\r
+X320000D02*Y38000D01*\r
+X360000D01*\r
+G54D11*X460500Y44000D02*Y38000D01*\r
+X474500Y44000D02*Y38000D01*\r
+G54D21*X487500Y44000D02*Y38000D01*\r
+X447500Y44000D02*X487500D01*\r
+X447500D02*Y38000D01*\r
+X487500D01*\r
+Y56000D02*Y38000D01*\r
+X447500Y56000D02*X487500D01*\r
+X447500D02*Y38000D01*\r
+X487500D01*\r
+X287500Y100000D02*X392500D01*\r
+Y165000D02*Y100000D01*\r
+X387500Y165000D02*X392500D01*\r
+X387500D02*Y110000D01*\r
+X367500D02*X387500D01*\r
+X367500Y165000D02*Y110000D01*\r
+X362500Y165000D02*X367500D01*\r
+X362500D02*Y110000D01*\r
+X317500D02*X362500D01*\r
+X287500Y165000D02*Y100000D01*\r
+Y165000D02*X292500D01*\r
+Y110000D01*\r
+X312500D01*\r
+Y165000D02*Y110000D01*\r
+Y165000D02*X317500D01*\r
+Y110000D01*\r
+X287500Y25000D02*X392500D01*\r
+Y90000D02*Y25000D01*\r
+X387500Y90000D02*X392500D01*\r
+X387500D02*Y35000D01*\r
+X367500D02*X387500D01*\r
+X367500Y90000D02*Y35000D01*\r
+X362500Y90000D02*X367500D01*\r
+X362500D02*Y35000D01*\r
+X317500D02*X362500D01*\r
+X287500Y90000D02*Y25000D01*\r
+Y90000D02*X292500D01*\r
+Y35000D01*\r
+X312500D01*\r
+Y90000D02*Y35000D01*\r
+Y90000D02*X317500D01*\r
+Y35000D01*\r
+X415000Y25000D02*X520000D01*\r
+Y90000D02*Y25000D01*\r
+X515000Y90000D02*X520000D01*\r
+X515000D02*Y35000D01*\r
+X495000D02*X515000D01*\r
+X495000Y90000D02*Y35000D01*\r
+X490000Y90000D02*X495000D01*\r
+X490000D02*Y35000D01*\r
+X445000D02*X490000D01*\r
+X415000Y90000D02*Y25000D01*\r
+Y90000D02*X420000D01*\r
+Y35000D01*\r
+X440000D01*\r
+Y90000D02*Y35000D01*\r
+Y90000D02*X445000D01*\r
+Y35000D01*\r
+X415000Y100000D02*X520000D01*\r
+Y165000D02*Y100000D01*\r
+X515000Y165000D02*X520000D01*\r
+X515000D02*Y110000D01*\r
+X495000D02*X515000D01*\r
+X495000Y165000D02*Y110000D01*\r
+X490000Y165000D02*X495000D01*\r
+X490000D02*Y110000D01*\r
+X445000D02*X490000D01*\r
+X415000Y165000D02*Y100000D01*\r
+Y165000D02*X420000D01*\r
+Y110000D01*\r
+X440000D01*\r
+Y165000D02*Y110000D01*\r
+Y165000D02*X445000D01*\r
+Y110000D01*\r
+G54D11*X190000Y55000D02*X260000D01*\r
+Y95000D02*Y55000D01*\r
+X190000Y95000D02*X260000D01*\r
+X190000Y70000D02*Y55000D01*\r
+Y95000D02*Y80000D01*\r
+Y70000D02*G75*G03X190000Y80000I0J5000D01*G01*\r
+X182500Y85000D02*Y65000D01*\r
+X172500Y85000D02*Y65000D01*\r
+X182500Y85000D02*G75*G03X172500Y85000I-5000J0D01*G01*\r
+Y65000D02*G75*G03X182500Y65000I5000J0D01*G01*\r
+X207500Y135000D02*X217500D01*\r
+X177500D02*X187500D01*\r
+Y131700D02*X207500D01*\r
+X187500Y138300D02*Y131700D01*\r
+Y138300D02*X207500D01*\r
+Y131700D01*\r
+X587500Y375000D02*X607500D01*\r
+X587500Y385000D02*X607500D01*\r
+Y375000D02*G75*G03X607500Y385000I0J5000D01*G01*\r
+X587500D02*G75*G03X587500Y375000I0J-5000D01*G01*\r
+X544200Y340000D02*X550800D01*\r
+Y360000D02*Y340000D01*\r
+X544200Y360000D02*X550800D01*\r
+X544200D02*Y340000D01*\r
+X547500Y370000D02*Y360000D01*\r
+Y340000D02*Y330000D01*\r
+X559200Y340000D02*X565800D01*\r
+Y360000D02*Y340000D01*\r
+X559200Y360000D02*X565800D01*\r
+X559200D02*Y340000D01*\r
+X562500Y370000D02*Y360000D01*\r
+Y340000D02*Y330000D01*\r
+X487500Y375000D02*X507500D01*\r
+X487500Y385000D02*X507500D01*\r
+Y375000D02*G75*G03X507500Y385000I0J5000D01*G01*\r
+X487500D02*G75*G03X487500Y375000I0J-5000D01*G01*\r
+X477500Y370000D02*Y355000D01*\r
+Y345000D02*Y330000D01*\r
+Y370000D02*X517500D01*\r
+Y330000D01*\r
+X477500D02*X517500D01*\r
+X477500Y345000D02*G75*G03X477500Y355000I0J5000D01*G01*\r
+X529200Y360000D02*X535800D01*\r
+X529200D02*Y340000D01*\r
+X535800D01*\r
+Y360000D02*Y340000D01*\r
+X532500D02*Y330000D01*\r
+Y370000D02*Y360000D01*\r
+X526500Y207500D02*X530500D01*\r
+X528500Y209500D02*Y205500D01*\r
+X614500Y207500D02*X618500D01*\r
+X532500D02*G75*G03X532500Y207500I40000J0D01*G01*\r
+X526500Y110000D02*X530500D01*\r
+X528500Y112000D02*Y108000D01*\r
+X614500Y110000D02*X618500D01*\r
+X532500D02*G75*G03X532500Y110000I40000J0D01*G01*\r
+X570000Y50000D02*Y30000D01*\r
+X580000Y50000D02*Y30000D01*\r
+X570000D02*G75*G03X580000Y30000I5000J0D01*G01*\r
+Y50000D02*G75*G03X570000Y50000I-5000J0D01*G01*\r
+X557500D02*Y30000D01*\r
+X547500Y50000D02*Y30000D01*\r
+X557500Y50000D02*G75*G03X547500Y50000I-5000J0D01*G01*\r
+Y30000D02*G75*G03X557500Y30000I5000J0D01*G01*\r
+X587500Y50000D02*Y30000D01*\r
+X597500Y50000D02*Y30000D01*\r
+X587500D02*G75*G03X597500Y30000I5000J0D01*G01*\r
+Y50000D02*G75*G03X587500Y50000I-5000J0D01*G01*\r
+X477500Y315000D02*Y300000D01*\r
+Y290000D02*Y275000D01*\r
+Y315000D02*X617500D01*\r
+Y275000D01*\r
+X477500D02*X617500D01*\r
+X477500Y290000D02*G75*G03X477500Y300000I0J5000D01*G01*\r
+X615000Y56000D02*Y51000D01*\r
+X612500Y53500D02*X617500D01*\r
+X615000Y55000D02*G75*G03X615000Y55000I0J10000D01*G01*\r
+X547500Y263300D02*Y256700D01*\r
+X527500Y263300D02*X547500D01*\r
+X527500D02*Y256700D01*\r
+X547500D01*\r
+X517500Y260000D02*X527500D01*\r
+X547500D02*X557500D01*\r
+X605000Y263300D02*Y256700D01*\r
+X585000Y263300D02*X605000D01*\r
+X585000D02*Y256700D01*\r
+X605000D01*\r
+X575000Y260000D02*X585000D01*\r
+X605000D02*X615000D01*\r
+X577500Y370000D02*Y355000D01*\r
+Y345000D02*Y330000D01*\r
+Y370000D02*X617500D01*\r
+Y330000D01*\r
+X577500D02*X617500D01*\r
+X577500Y345000D02*G75*G03X577500Y355000I0J5000D01*G01*\r
+X294000Y360000D02*X299000D01*\r
+X296500Y362500D02*Y357500D01*\r
+X295000Y360000D02*G75*G03X295000Y360000I-10000J0D01*G01*\r
+X177500Y375000D02*X197500D01*\r
+X177500Y385000D02*X197500D01*\r
+Y375000D02*G75*G03X197500Y385000I0J5000D01*G01*\r
+X177500D02*G75*G03X177500Y375000I0J-5000D01*G01*\r
+X236000Y262500D02*Y257500D01*\r
+X233500Y260000D02*X238500D01*\r
+X237500D02*G75*G03X237500Y260000I10000J0D01*G01*\r
+X273500Y337500D02*Y332500D01*\r
+X271000Y335000D02*X276000D01*\r
+X275000D02*G75*G03X275000Y335000I10000J0D01*G01*\r
+X190000Y275000D02*X260000D01*\r
+Y315000D02*Y275000D01*\r
+X190000Y315000D02*X260000D01*\r
+X190000Y290000D02*Y275000D01*\r
+Y315000D02*Y300000D01*\r
+Y290000D02*G75*G03X190000Y300000I0J5000D01*G01*\r
+X230000Y375000D02*X250000D01*\r
+X230000Y385000D02*X250000D01*\r
+Y375000D02*G75*G03X250000Y385000I0J5000D01*G01*\r
+X230000D02*G75*G03X230000Y375000I0J-5000D01*G01*\r
+X220000Y370000D02*Y355000D01*\r
+Y345000D02*Y330000D01*\r
+Y370000D02*X260000D01*\r
+Y330000D01*\r
+X220000D02*X260000D01*\r
+X220000Y345000D02*G75*G03X220000Y355000I0J5000D01*G01*\r
+X207500Y260000D02*X217500D01*\r
+X177500D02*X187500D01*\r
+Y256700D02*X207500D01*\r
+X187500Y263300D02*Y256700D01*\r
+Y263300D02*X207500D01*\r
+Y256700D01*\r
+X291500Y260000D02*X296500D01*\r
+X294000Y262500D02*Y257500D01*\r
+X292500Y260000D02*G75*G03X292500Y260000I-10000J0D01*G01*\r
+X204200Y235000D02*X217500D01*\r
+X177500D02*X190800D01*\r
+X204200D02*X190800Y228400D01*\r
+Y241600D02*Y228400D01*\r
+Y241600D02*X204200Y235000D01*\r
+Y241600D02*Y228400D01*\r
+X177500Y215000D02*X187500D01*\r
+X207500D02*X217500D01*\r
+X187500Y218300D02*X207500D01*\r
+Y211700D01*\r
+X187500D02*X207500D01*\r
+X187500Y218300D02*Y211700D01*\r
+X232500Y195000D02*X245800D01*\r
+X259200D02*X272500D01*\r
+X245800D02*X259200Y201600D01*\r
+Y188400D01*\r
+X245800Y195000D01*\r
+Y201600D02*Y188400D01*\r
+X232500Y155000D02*X245800D01*\r
+X259200D02*X272500D01*\r
+X245800D02*X259200Y161600D01*\r
+Y148400D01*\r
+X245800Y155000D01*\r
+Y161600D02*Y148400D01*\r
+X207500Y175000D02*X217500D01*\r
+X177500D02*X187500D01*\r
+Y171700D02*X207500D01*\r
+X187500Y178300D02*Y171700D01*\r
+Y178300D02*X207500D01*\r
+Y171700D01*\r
+X177500Y155000D02*X190800D01*\r
+X204200D02*X217500D01*\r
+X190800D02*X204200Y161600D01*\r
+Y148400D01*\r
+X190800Y155000D01*\r
+Y161600D02*Y148400D01*\r
+X177500Y195000D02*X190800D01*\r
+X204200D02*X217500D01*\r
+X190800D02*X204200Y201600D01*\r
+Y188400D01*\r
+X190800Y195000D01*\r
+Y201600D02*Y188400D01*\r
+X262500Y175000D02*X272500D01*\r
+X232500D02*X242500D01*\r
+Y171700D02*X262500D01*\r
+X242500Y178300D02*Y171700D01*\r
+Y178300D02*X262500D01*\r
+Y171700D01*\r
+X204200Y110000D02*X217500D01*\r
+X177500D02*X190800D01*\r
+X204200D02*X190800Y103400D01*\r
+Y116600D02*Y103400D01*\r
+Y116600D02*X204200Y110000D01*\r
+Y116600D02*Y103400D01*\r
+X236000Y112500D02*Y107500D01*\r
+X233500Y110000D02*X238500D01*\r
+X237500D02*G75*G03X237500Y110000I10000J0D01*G01*\r
+X236000Y137500D02*Y132500D01*\r
+X233500Y135000D02*X238500D01*\r
+X237500D02*G75*G03X237500Y135000I10000J0D01*G01*\r
+G54D24*X205441Y344153D02*X206941D01*\r
+X204941Y344653D02*X205441Y344153D01*\r
+X204941Y347653D02*Y344653D01*\r
+Y347653D02*X205441Y348153D01*\r
+X206941D01*\r
+X208642Y344153D02*X209642D01*\r
+X209142Y348153D02*Y344153D01*\r
+X208142Y347153D02*X209142Y348153D01*\r
+X212343D02*X212843Y347653D01*\r
+X211343Y348153D02*X212343D01*\r
+X210843Y347653D02*X211343Y348153D01*\r
+X210843Y347653D02*Y344653D01*\r
+X211343Y344153D01*\r
+X212343Y346153D02*X212843Y345653D01*\r
+X210843Y346153D02*X212343D01*\r
+X211343Y344153D02*X212343D01*\r
+X212843Y344653D01*\r
+Y345653D02*Y344653D01*\r
+X183906Y364468D02*X185406D01*\r
+X183406Y364968D02*X183906Y364468D01*\r
+X183406Y367968D02*Y364968D01*\r
+Y367968D02*X183906Y368468D01*\r
+X185406D01*\r
+X186607Y367968D02*X187107Y368468D01*\r
+X188607D01*\r
+X189107Y367968D01*\r
+Y366968D01*\r
+X186607Y364468D02*X189107Y366968D01*\r
+X186607Y364468D02*X189107D01*\r
+X190308D02*X192808Y366968D01*\r
+Y368468D02*Y366968D01*\r
+X190308Y368468D02*X192808D01*\r
+X230000Y351000D02*Y347500D01*\r
+X230500Y347000D01*\r
+X231500D01*\r
+X232000Y347500D01*\r
+Y351000D02*Y347500D01*\r
+X233201D02*X233701Y347000D01*\r
+X233201Y348500D02*Y347500D01*\r
+Y348500D02*X233701Y349000D01*\r
+X234701D01*\r
+X235201Y348500D01*\r
+Y347500D01*\r
+X234701Y347000D02*X235201Y347500D01*\r
+X233701Y347000D02*X234701D01*\r
+X233201Y349500D02*X233701Y349000D01*\r
+X233201Y350500D02*Y349500D01*\r
+Y350500D02*X233701Y351000D01*\r
+X234701D01*\r
+X235201Y350500D01*\r
+Y349500D01*\r
+X234701Y349000D02*X235201Y349500D01*\r
+X183906Y386968D02*X185406D01*\r
+X183406Y387468D02*X183906Y386968D01*\r
+X183406Y390468D02*Y387468D01*\r
+Y390468D02*X183906Y390968D01*\r
+X185406D01*\r
+X186607Y390468D02*X187107Y390968D01*\r
+X188607D01*\r
+X189107Y390468D01*\r
+Y389468D01*\r
+X186607Y386968D02*X189107Y389468D01*\r
+X186607Y386968D02*X189107D01*\r
+X191808Y390968D02*X192308Y390468D01*\r
+X190808Y390968D02*X191808D01*\r
+X190308Y390468D02*X190808Y390968D01*\r
+X190308Y390468D02*Y387468D01*\r
+X190808Y386968D01*\r
+X191808Y388968D02*X192308Y388468D01*\r
+X190308Y388968D02*X191808D01*\r
+X190808Y386968D02*X191808D01*\r
+X192308Y387468D01*\r
+Y388468D02*Y387468D01*\r
+X236406Y386968D02*X237906D01*\r
+X235906Y387468D02*X236406Y386968D01*\r
+X235906Y390468D02*Y387468D01*\r
+Y390468D02*X236406Y390968D01*\r
+X237906D01*\r
+X239607Y386968D02*X240607D01*\r
+X240107Y390968D02*Y386968D01*\r
+X239107Y389968D02*X240107Y390968D01*\r
+X241808Y386968D02*X244308Y389468D01*\r
+Y390968D02*Y389468D01*\r
+X241808Y390968D02*X244308D01*\r
+X174811Y312500D02*X176311D01*\r
+X174311Y313000D02*X174811Y312500D01*\r
+X174311Y316000D02*Y313000D01*\r
+Y316000D02*X174811Y316500D01*\r
+X176311D01*\r
+X177512Y316000D02*X178012Y316500D01*\r
+X179512D01*\r
+X180012Y316000D01*\r
+Y315000D01*\r
+X177512Y312500D02*X180012Y315000D01*\r
+X177512Y312500D02*X180012D01*\r
+X181213Y313000D02*X181713Y312500D01*\r
+X181213Y316000D02*Y313000D01*\r
+Y316000D02*X181713Y316500D01*\r
+X182713D01*\r
+X183213Y316000D01*\r
+Y313000D01*\r
+X182713Y312500D02*X183213Y313000D01*\r
+X181713Y312500D02*X182713D01*\r
+X181213Y313500D02*X183213Y315500D01*\r
+X66800Y80100D02*X67300Y79600D01*\r
+X65300Y80100D02*X66800D01*\r
+X64800Y79600D02*X65300Y80100D01*\r
+X64800Y79600D02*Y78600D01*\r
+X65300Y78100D01*\r
+X66800D01*\r
+X67300Y77600D01*\r
+Y76600D01*\r
+X66800Y76100D02*X67300Y76600D01*\r
+X65300Y76100D02*X66800D01*\r
+X64800Y76600D02*X65300Y76100D01*\r
+X69001D02*X70001D01*\r
+X69501Y80100D02*Y76100D01*\r
+X68501Y79100D02*X69501Y80100D01*\r
+X75402Y176173D02*Y172173D01*\r
+X76902Y176173D02*X77402Y175673D01*\r
+Y172673D01*\r
+X76902Y172173D02*X77402Y172673D01*\r
+X74902Y172173D02*X76902D01*\r
+X74902Y176173D02*X76902D01*\r
+X78603Y175673D02*X79103Y176173D01*\r
+X80603D01*\r
+X81103Y175673D01*\r
+Y174673D01*\r
+X78603Y172173D02*X81103Y174673D01*\r
+X78603Y172173D02*X81103D01*\r
+X74397Y137709D02*Y133709D01*\r
+X75897Y137709D02*X76397Y137209D01*\r
+Y134209D01*\r
+X75897Y133709D02*X76397Y134209D01*\r
+X73897Y133709D02*X75897D01*\r
+X73897Y137709D02*X75897D01*\r
+X78098Y133709D02*X79098D01*\r
+X78598Y137709D02*Y133709D01*\r
+X77598Y136709D02*X78598Y137709D01*\r
+X74436Y212670D02*Y208670D01*\r
+X75936Y212670D02*X76436Y212170D01*\r
+Y209170D01*\r
+X75936Y208670D02*X76436Y209170D01*\r
+X73936Y208670D02*X75936D01*\r
+X73936Y212670D02*X75936D01*\r
+X77637Y212170D02*X78137Y212670D01*\r
+X79137D01*\r
+X79637Y212170D01*\r
+Y209170D01*\r
+X79137Y208670D02*X79637Y209170D01*\r
+X78137Y208670D02*X79137D01*\r
+X77637Y209170D02*X78137Y208670D01*\r
+Y210670D02*X79637D01*\r
+X172310Y92500D02*X173810D01*\r
+X171810Y93000D02*X172310Y92500D01*\r
+X171810Y96000D02*Y93000D01*\r
+Y96000D02*X172310Y96500D01*\r
+X173810D01*\r
+X175011Y96000D02*X175511Y96500D01*\r
+X177011D01*\r
+X177511Y96000D01*\r
+Y95000D01*\r
+X175011Y92500D02*X177511Y95000D01*\r
+X175011Y92500D02*X177511D01*\r
+X178712Y94500D02*X180712Y96500D01*\r
+X178712Y94500D02*X181212D01*\r
+X180712Y96500D02*Y92500D01*\r
+X58473Y314669D02*X59973D01*\r
+Y311169D01*\r
+X59473Y310669D02*X59973Y311169D01*\r
+X58973Y310669D02*X59473D01*\r
+X58473Y311169D02*X58973Y310669D01*\r
+X61674D02*X62674D01*\r
+X62174Y314669D02*Y310669D01*\r
+X61174Y313669D02*X62174Y314669D01*\r
+X200000Y76000D02*Y72500D01*\r
+X200500Y72000D01*\r
+X201500D01*\r
+X202000Y72500D01*\r
+Y76000D02*Y72500D01*\r
+X203701Y72000D02*X204701D01*\r
+X204201Y76000D02*Y72000D01*\r
+X203201Y75000D02*X204201Y76000D01*\r
+X205902Y72500D02*X206402Y72000D01*\r
+X205902Y75500D02*Y72500D01*\r
+Y75500D02*X206402Y76000D01*\r
+X207402D01*\r
+X207902Y75500D01*\r
+Y72500D01*\r
+X207402Y72000D02*X207902Y72500D01*\r
+X206402Y72000D02*X207402D01*\r
+X205902Y73000D02*X207902Y75000D01*\r
+X205577Y119537D02*Y115537D01*\r
+X207077Y119537D02*X207577Y119037D01*\r
+Y116037D01*\r
+X207077Y115537D02*X207577Y116037D01*\r
+X205077Y115537D02*X207077D01*\r
+X205077Y119537D02*X207077D01*\r
+X210278D02*X210778Y119037D01*\r
+X209278Y119537D02*X210278D01*\r
+X208778Y119037D02*X209278Y119537D01*\r
+X208778Y119037D02*Y116037D01*\r
+X209278Y115537D01*\r
+X210278Y117537D02*X210778Y117037D01*\r
+X208778Y117537D02*X210278D01*\r
+X209278Y115537D02*X210278D01*\r
+X210778Y116037D01*\r
+Y117037D02*Y116037D01*\r
+X324832Y265788D02*X326332D01*\r
+X324332Y266288D02*X324832Y265788D01*\r
+X324332Y269288D02*Y266288D01*\r
+Y269288D02*X324832Y269788D01*\r
+X326332D01*\r
+X328033Y265788D02*X329033D01*\r
+X328533Y269788D02*Y265788D01*\r
+X327533Y268788D02*X328533Y269788D01*\r
+X330234Y269288D02*X330734Y269788D01*\r
+X332234D01*\r
+X332734Y269288D01*\r
+Y268288D01*\r
+X330234Y265788D02*X332734Y268288D01*\r
+X330234Y265788D02*X332734D01*\r
+X285000Y296000D02*Y292500D01*\r
+X285500Y292000D01*\r
+X286500D01*\r
+X287000Y292500D01*\r
+Y296000D02*Y292500D01*\r
+X289701Y296000D02*X290201Y295500D01*\r
+X288701Y296000D02*X289701D01*\r
+X288201Y295500D02*X288701Y296000D01*\r
+X288201Y295500D02*Y292500D01*\r
+X288701Y292000D01*\r
+X289701Y294000D02*X290201Y293500D01*\r
+X288201Y294000D02*X289701D01*\r
+X288701Y292000D02*X289701D01*\r
+X290201Y292500D01*\r
+Y293500D02*Y292500D01*\r
+X293748Y265571D02*X295248D01*\r
+X293248Y266071D02*X293748Y265571D01*\r
+X293248Y269071D02*Y266071D01*\r
+Y269071D02*X293748Y269571D01*\r
+X295248D01*\r
+X296949Y265571D02*X297949D01*\r
+X297449Y269571D02*Y265571D01*\r
+X296449Y268571D02*X297449Y269571D01*\r
+X299650Y265571D02*X300650D01*\r
+X300150Y269571D02*Y265571D01*\r
+X299150Y268571D02*X300150Y269571D01*\r
+X292370Y369822D02*X293870D01*\r
+X291870Y370322D02*X292370Y369822D01*\r
+X291870Y373322D02*Y370322D01*\r
+Y373322D02*X292370Y373822D01*\r
+X293870D01*\r
+X295571Y369822D02*X296571D01*\r
+X296071Y373822D02*Y369822D01*\r
+X295071Y372822D02*X296071Y373822D01*\r
+X297772Y373322D02*X298272Y373822D01*\r
+X299272D01*\r
+X299772Y373322D01*\r
+Y370322D01*\r
+X299272Y369822D02*X299772Y370322D01*\r
+X298272Y369822D02*X299272D01*\r
+X297772Y370322D02*X298272Y369822D01*\r
+Y371822D02*X299772D01*\r
+X319811Y369763D02*X321311D01*\r
+X319311Y370263D02*X319811Y369763D01*\r
+X319311Y373263D02*Y370263D01*\r
+Y373263D02*X319811Y373763D01*\r
+X321311D01*\r
+X323012Y369763D02*X324012D01*\r
+X323512Y373763D02*Y369763D01*\r
+X322512Y372763D02*X323512Y373763D01*\r
+X325213Y370263D02*X325713Y369763D01*\r
+X325213Y373263D02*Y370263D01*\r
+Y373263D02*X325713Y373763D01*\r
+X326713D01*\r
+X327213Y373263D01*\r
+Y370263D01*\r
+X326713Y369763D02*X327213Y370263D01*\r
+X325713Y369763D02*X326713D01*\r
+X325213Y370763D02*X327213Y372763D01*\r
+X295500Y340000D02*X297000D01*\r
+X295000Y340500D02*X295500Y340000D01*\r
+X295000Y343500D02*Y340500D01*\r
+Y343500D02*X295500Y344000D01*\r
+X297000D01*\r
+X298201Y340000D02*X300701Y342500D01*\r
+Y344000D02*Y342500D01*\r
+X298201Y344000D02*X300701D01*\r
+X325500Y340000D02*X327000D01*\r
+X325000Y340500D02*X325500Y340000D01*\r
+X325000Y343500D02*Y340500D01*\r
+Y343500D02*X325500Y344000D01*\r
+X327000D01*\r
+X328201D02*X330201D01*\r
+X328201D02*Y342000D01*\r
+X328701Y342500D01*\r
+X329701D01*\r
+X330201Y342000D01*\r
+Y340500D01*\r
+X329701Y340000D02*X330201Y340500D01*\r
+X328701Y340000D02*X329701D01*\r
+X328201Y340500D02*X328701Y340000D01*\r
+X341311Y379783D02*X343311D01*\r
+X343811Y379283D01*\r
+Y378283D01*\r
+X343311Y377783D02*X343811Y378283D01*\r
+X341811Y377783D02*X343311D01*\r
+X341811Y379783D02*Y375783D01*\r
+Y377783D02*X343811Y375783D01*\r
+X345512D02*X346512D01*\r
+X346012Y379783D02*Y375783D01*\r
+X345012Y378783D02*X346012Y379783D01*\r
+X255834Y242756D02*X257334D01*\r
+X255334Y243256D02*X255834Y242756D01*\r
+X255334Y246256D02*Y243256D01*\r
+Y246256D02*X255834Y246756D01*\r
+X257334D01*\r
+X258535Y246256D02*X259035Y246756D01*\r
+X260535D01*\r
+X261035Y246256D01*\r
+Y245256D01*\r
+X258535Y242756D02*X261035Y245256D01*\r
+X258535Y242756D02*X261035D01*\r
+X262736D02*X263736D01*\r
+X263236Y246756D02*Y242756D01*\r
+X262236Y245756D02*X263236Y246756D01*\r
+X258000Y265000D02*X259500D01*\r
+X257500Y265500D02*X258000Y265000D01*\r
+X257500Y268500D02*Y265500D01*\r
+Y268500D02*X258000Y269000D01*\r
+X259500D01*\r
+X261201Y265000D02*X262201D01*\r
+X261701Y269000D02*Y265000D01*\r
+X260701Y268000D02*X261701Y269000D01*\r
+X263402Y265000D02*X265402Y267000D01*\r
+Y268500D02*Y267000D01*\r
+X264902Y269000D02*X265402Y268500D01*\r
+X263902Y269000D02*X264902D01*\r
+X263402Y268500D02*X263902Y269000D01*\r
+X263402Y268500D02*Y267500D01*\r
+X263902Y267000D01*\r
+X265402D01*\r
+X262056Y203395D02*Y199395D01*\r
+X263556Y203395D02*X264056Y202895D01*\r
+Y199895D01*\r
+X263556Y199395D02*X264056Y199895D01*\r
+X261556Y199395D02*X263556D01*\r
+X261556Y203395D02*X263556D01*\r
+X265257Y199895D02*X265757Y199395D01*\r
+X265257Y200895D02*Y199895D01*\r
+Y200895D02*X265757Y201395D01*\r
+X266757D01*\r
+X267257Y200895D01*\r
+Y199895D01*\r
+X266757Y199395D02*X267257Y199895D01*\r
+X265757Y199395D02*X266757D01*\r
+X265257Y201895D02*X265757Y201395D01*\r
+X265257Y202895D02*Y201895D01*\r
+Y202895D02*X265757Y203395D01*\r
+X266757D01*\r
+X267257Y202895D01*\r
+Y201895D01*\r
+X266757Y201395D02*X267257Y201895D01*\r
+X262669Y224960D02*X264669D01*\r
+X265169Y224460D01*\r
+Y223460D01*\r
+X264669Y222960D02*X265169Y223460D01*\r
+X263169Y222960D02*X264669D01*\r
+X263169Y224960D02*Y220960D01*\r
+Y222960D02*X265169Y220960D01*\r
+X266870D02*X267870D01*\r
+X267370Y224960D02*Y220960D01*\r
+X266370Y223960D02*X267370Y224960D01*\r
+X269071Y220960D02*X271571Y223460D01*\r
+Y224960D02*Y223460D01*\r
+X269071Y224960D02*X271571D01*\r
+X206763Y184644D02*X208763D01*\r
+X209263Y184144D01*\r
+Y183144D01*\r
+X208763Y182644D02*X209263Y183144D01*\r
+X207263Y182644D02*X208763D01*\r
+X207263Y184644D02*Y180644D01*\r
+Y182644D02*X209263Y180644D01*\r
+X210964D02*X211964D01*\r
+X211464Y184644D02*Y180644D01*\r
+X210464Y183644D02*X211464Y184644D01*\r
+X213165Y181144D02*X213665Y180644D01*\r
+X213165Y182144D02*Y181144D01*\r
+Y182144D02*X213665Y182644D01*\r
+X214665D01*\r
+X215165Y182144D01*\r
+Y181144D01*\r
+X214665Y180644D02*X215165Y181144D01*\r
+X213665Y180644D02*X214665D01*\r
+X213165Y183144D02*X213665Y182644D01*\r
+X213165Y184144D02*Y183144D01*\r
+Y184144D02*X213665Y184644D01*\r
+X214665D01*\r
+X215165Y184144D01*\r
+Y183144D01*\r
+X214665Y182644D02*X215165Y183144D01*\r
+X206522Y163081D02*Y159081D01*\r
+X208022Y163081D02*X208522Y162581D01*\r
+Y159581D01*\r
+X208022Y159081D02*X208522Y159581D01*\r
+X206022Y159081D02*X208022D01*\r
+X206022Y163081D02*X208022D01*\r
+X209723Y159081D02*X211723Y161081D01*\r
+Y162581D02*Y161081D01*\r
+X211223Y163081D02*X211723Y162581D01*\r
+X210223Y163081D02*X211223D01*\r
+X209723Y162581D02*X210223Y163081D01*\r
+X209723Y162581D02*Y161581D01*\r
+X210223Y161081D01*\r
+X211723D01*\r
+X207374Y143345D02*X209374D01*\r
+X209874Y142845D01*\r
+Y141845D01*\r
+X209374Y141345D02*X209874Y141845D01*\r
+X207874Y141345D02*X209374D01*\r
+X207874Y143345D02*Y139345D01*\r
+Y141345D02*X209874Y139345D01*\r
+X211575D02*X212575D01*\r
+X212075Y143345D02*Y139345D01*\r
+X211075Y142345D02*X212075Y143345D01*\r
+X213776D02*X215776D01*\r
+X213776D02*Y141345D01*\r
+X214276Y141845D01*\r
+X215276D01*\r
+X215776Y141345D01*\r
+Y139845D01*\r
+X215276Y139345D02*X215776Y139845D01*\r
+X214276Y139345D02*X215276D01*\r
+X213776Y139845D02*X214276Y139345D01*\r
+X262353Y185452D02*X264353D01*\r
+X264853Y184952D01*\r
+Y183952D01*\r
+X264353Y183452D02*X264853Y183952D01*\r
+X262853Y183452D02*X264353D01*\r
+X262853Y185452D02*Y181452D01*\r
+Y183452D02*X264853Y181452D01*\r
+X266554D02*X267554D01*\r
+X267054Y185452D02*Y181452D01*\r
+X266054Y184452D02*X267054Y185452D01*\r
+X268755Y181452D02*X270755Y183452D01*\r
+Y184952D02*Y183452D01*\r
+X270255Y185452D02*X270755Y184952D01*\r
+X269255Y185452D02*X270255D01*\r
+X268755Y184952D02*X269255Y185452D01*\r
+X268755Y184952D02*Y183952D01*\r
+X269255Y183452D01*\r
+X270755D01*\r
+X262586Y163314D02*Y159314D01*\r
+X264086Y163314D02*X264586Y162814D01*\r
+Y159814D01*\r
+X264086Y159314D02*X264586Y159814D01*\r
+X262086Y159314D02*X264086D01*\r
+X262086Y163314D02*X264086D01*\r
+X266287Y159314D02*X267287D01*\r
+X266787Y163314D02*Y159314D01*\r
+X265787Y162314D02*X266787Y163314D01*\r
+X268488Y159814D02*X268988Y159314D01*\r
+X268488Y162814D02*Y159814D01*\r
+Y162814D02*X268988Y163314D01*\r
+X269988D01*\r
+X270488Y162814D01*\r
+Y159814D01*\r
+X269988Y159314D02*X270488Y159814D01*\r
+X268988Y159314D02*X269988D01*\r
+X268488Y160314D02*X270488Y162314D01*\r
+X255500Y117500D02*X257000D01*\r
+X255000Y118000D02*X255500Y117500D01*\r
+X255000Y121000D02*Y118000D01*\r
+Y121000D02*X255500Y121500D01*\r
+X257000D01*\r
+X258201Y121000D02*X258701Y121500D01*\r
+X260201D01*\r
+X260701Y121000D01*\r
+Y120000D01*\r
+X258201Y117500D02*X260701Y120000D01*\r
+X258201Y117500D02*X260701D01*\r
+X261902Y121500D02*X263902D01*\r
+X261902D02*Y119500D01*\r
+X262402Y120000D01*\r
+X263402D01*\r
+X263902Y119500D01*\r
+Y118000D01*\r
+X263402Y117500D02*X263902Y118000D01*\r
+X262402Y117500D02*X263402D01*\r
+X261902Y118000D02*X262402Y117500D01*\r
+X256090Y141654D02*X257590D01*\r
+X255590Y142154D02*X256090Y141654D01*\r
+X255590Y145154D02*Y142154D01*\r
+Y145154D02*X256090Y145654D01*\r
+X257590D01*\r
+X258791Y145154D02*X259291Y145654D01*\r
+X260791D01*\r
+X261291Y145154D01*\r
+Y144154D01*\r
+X258791Y141654D02*X261291Y144154D01*\r
+X258791Y141654D02*X261291D01*\r
+X262492Y145154D02*X262992Y145654D01*\r
+X263992D01*\r
+X264492Y145154D01*\r
+Y142154D01*\r
+X263992Y141654D02*X264492Y142154D01*\r
+X262992Y141654D02*X263992D01*\r
+X262492Y142154D02*X262992Y141654D01*\r
+Y143654D02*X264492D01*\r
+X208338Y268701D02*X210338D01*\r
+X210838Y268201D01*\r
+Y267201D01*\r
+X210338Y266701D02*X210838Y267201D01*\r
+X208838Y266701D02*X210338D01*\r
+X208838Y268701D02*Y264701D01*\r
+Y266701D02*X210838Y264701D01*\r
+X212539D02*X213539D01*\r
+X213039Y268701D02*Y264701D01*\r
+X212039Y267701D02*X213039Y268701D01*\r
+X214740Y266701D02*X216740Y268701D01*\r
+X214740Y266701D02*X217240D01*\r
+X216740Y268701D02*Y264701D01*\r
+X206700Y245482D02*Y241482D01*\r
+X208200Y245482D02*X208700Y244982D01*\r
+Y241982D01*\r
+X208200Y241482D02*X208700Y241982D01*\r
+X206200Y241482D02*X208200D01*\r
+X206200Y245482D02*X208200D01*\r
+X209901D02*X211901D01*\r
+X209901D02*Y243482D01*\r
+X210401Y243982D01*\r
+X211401D01*\r
+X211901Y243482D01*\r
+Y241982D01*\r
+X211401Y241482D02*X211901Y241982D01*\r
+X210401Y241482D02*X211401D01*\r
+X209901Y241982D02*X210401Y241482D01*\r
+X200000Y296000D02*Y292500D01*\r
+X200500Y292000D01*\r
+X201500D01*\r
+X202000Y292500D01*\r
+Y296000D02*Y292500D01*\r
+X203201Y292000D02*X205201Y294000D01*\r
+Y295500D02*Y294000D01*\r
+X204701Y296000D02*X205201Y295500D01*\r
+X203701Y296000D02*X204701D01*\r
+X203201Y295500D02*X203701Y296000D01*\r
+X203201Y295500D02*Y294500D01*\r
+X203701Y294000D01*\r
+X205201D01*\r
+X206764Y225000D02*X208764D01*\r
+X209264Y224500D01*\r
+Y223500D01*\r
+X208764Y223000D02*X209264Y223500D01*\r
+X207264Y223000D02*X208764D01*\r
+X207264Y225000D02*Y221000D01*\r
+Y223000D02*X209264Y221000D01*\r
+X210965D02*X211965D01*\r
+X211465Y225000D02*Y221000D01*\r
+X210465Y224000D02*X211465Y225000D01*\r
+X214666D02*X215166Y224500D01*\r
+X213666Y225000D02*X214666D01*\r
+X213166Y224500D02*X213666Y225000D01*\r
+X213166Y224500D02*Y221500D01*\r
+X213666Y221000D01*\r
+X214666Y223000D02*X215166Y222500D01*\r
+X213166Y223000D02*X214666D01*\r
+X213666Y221000D02*X214666D01*\r
+X215166Y221500D01*\r
+Y222500D02*Y221500D01*\r
+X207054Y203436D02*Y199436D01*\r
+X208554Y203436D02*X209054Y202936D01*\r
+Y199936D01*\r
+X208554Y199436D02*X209054Y199936D01*\r
+X206554Y199436D02*X208554D01*\r
+X206554Y203436D02*X208554D01*\r
+X210255Y199436D02*X212755Y201936D01*\r
+Y203436D02*Y201936D01*\r
+X210255Y203436D02*X212755D01*\r
+X465945Y105764D02*Y102764D01*\r
+Y105764D02*X466445Y106264D01*\r
+X467445D01*\r
+X467945Y105764D01*\r
+Y102764D01*\r
+X467445Y102264D02*X467945Y102764D01*\r
+X466445Y102264D02*X467445D01*\r
+X465945Y102764D02*X466445Y102264D01*\r
+X466945Y103264D02*X467945Y102264D01*\r
+X469146Y106264D02*X471146D01*\r
+X469146D02*Y104264D01*\r
+X469646Y104764D01*\r
+X470646D01*\r
+X471146Y104264D01*\r
+Y102764D01*\r
+X470646Y102264D02*X471146Y102764D01*\r
+X469646Y102264D02*X470646D01*\r
+X469146Y102764D02*X469646Y102264D01*\r
+X466476Y180902D02*Y177902D01*\r
+Y180902D02*X466976Y181402D01*\r
+X467976D01*\r
+X468476Y180902D01*\r
+Y177902D01*\r
+X467976Y177402D02*X468476Y177902D01*\r
+X466976Y177402D02*X467976D01*\r
+X466476Y177902D02*X466976Y177402D01*\r
+X467476Y178402D02*X468476Y177402D01*\r
+X469677Y180902D02*X470177Y181402D01*\r
+X471177D01*\r
+X471677Y180902D01*\r
+Y177902D01*\r
+X471177Y177402D02*X471677Y177902D01*\r
+X470177Y177402D02*X471177D01*\r
+X469677Y177902D02*X470177Y177402D01*\r
+Y179402D02*X471677D01*\r
+X466476Y31157D02*Y28157D01*\r
+Y31157D02*X466976Y31657D01*\r
+X467976D01*\r
+X468476Y31157D01*\r
+Y28157D01*\r
+X467976Y27657D02*X468476Y28157D01*\r
+X466976Y27657D02*X467976D01*\r
+X466476Y28157D02*X466976Y27657D01*\r
+X467476Y28657D02*X468476Y27657D01*\r
+X470177D02*X471177D01*\r
+X470677Y31657D02*Y27657D01*\r
+X469677Y30657D02*X470677Y31657D01*\r
+X624163Y74804D02*X625663D01*\r
+X623663Y75304D02*X624163Y74804D01*\r
+X623663Y78304D02*Y75304D01*\r
+Y78304D02*X624163Y78804D01*\r
+X625663D01*\r
+X626864Y78304D02*X627364Y78804D01*\r
+X628364D01*\r
+X628864Y78304D01*\r
+Y75304D01*\r
+X628364Y74804D02*X628864Y75304D01*\r
+X627364Y74804D02*X628364D01*\r
+X626864Y75304D02*X627364Y74804D01*\r
+Y76804D02*X628864D01*\r
+X589409Y57370D02*X590909D01*\r
+X588909Y57870D02*X589409Y57370D01*\r
+X588909Y60870D02*Y57870D01*\r
+Y60870D02*X589409Y61370D01*\r
+X590909D01*\r
+X592110Y60870D02*X592610Y61370D01*\r
+X594110D01*\r
+X594610Y60870D01*\r
+Y59870D01*\r
+X592110Y57370D02*X594610Y59870D01*\r
+X592110Y57370D02*X594610D01*\r
+X570500Y205000D02*X572000D01*\r
+X570000Y205500D02*X570500Y205000D01*\r
+X570000Y208500D02*Y205500D01*\r
+Y208500D02*X570500Y209000D01*\r
+X572000D01*\r
+X573701Y205000D02*X574701D01*\r
+X574201Y209000D02*Y205000D01*\r
+X573201Y208000D02*X574201Y209000D01*\r
+X575902Y205500D02*X576402Y205000D01*\r
+X575902Y206500D02*Y205500D01*\r
+Y206500D02*X576402Y207000D01*\r
+X577402D01*\r
+X577902Y206500D01*\r
+Y205500D01*\r
+X577402Y205000D02*X577902Y205500D01*\r
+X576402Y205000D02*X577402D01*\r
+X575902Y207500D02*X576402Y207000D01*\r
+X575902Y208500D02*Y207500D01*\r
+Y208500D02*X576402Y209000D01*\r
+X577402D01*\r
+X577902Y208500D01*\r
+Y207500D01*\r
+X577402Y207000D02*X577902Y207500D01*\r
+X568000Y107500D02*X569500D01*\r
+X567500Y108000D02*X568000Y107500D01*\r
+X567500Y111000D02*Y108000D01*\r
+Y111000D02*X568000Y111500D01*\r
+X569500D01*\r
+X570701Y111000D02*X571201Y111500D01*\r
+X572701D01*\r
+X573201Y111000D01*\r
+Y110000D01*\r
+X570701Y107500D02*X573201Y110000D01*\r
+X570701Y107500D02*X573201D01*\r
+X574402Y111000D02*X574902Y111500D01*\r
+X576402D01*\r
+X576902Y111000D01*\r
+Y110000D01*\r
+X574402Y107500D02*X576902Y110000D01*\r
+X574402Y107500D02*X576902D01*\r
+X572756Y56248D02*X574256D01*\r
+X572256Y56748D02*X572756Y56248D01*\r
+X572256Y59748D02*Y56748D01*\r
+Y59748D02*X572756Y60248D01*\r
+X574256D01*\r
+X576957D02*X577457Y59748D01*\r
+X575957Y60248D02*X576957D01*\r
+X575457Y59748D02*X575957Y60248D01*\r
+X575457Y59748D02*Y56748D01*\r
+X575957Y56248D01*\r
+X576957Y58248D02*X577457Y57748D01*\r
+X575457Y58248D02*X576957D01*\r
+X575957Y56248D02*X576957D01*\r
+X577457Y56748D01*\r
+Y57748D02*Y56748D01*\r
+X549713Y56555D02*X551213D01*\r
+X549213Y57055D02*X549713Y56555D01*\r
+X549213Y60055D02*Y57055D01*\r
+Y60055D02*X549713Y60555D01*\r
+X551213D01*\r
+X552414Y58555D02*X554414Y60555D01*\r
+X552414Y58555D02*X554914D01*\r
+X554414Y60555D02*Y56555D01*\r
+X371700Y265600D02*Y261600D01*\r
+X373200Y265600D02*X373700Y265100D01*\r
+Y262100D01*\r
+X373200Y261600D02*X373700Y262100D01*\r
+X371200Y261600D02*X373200D01*\r
+X371200Y265600D02*X373200D01*\r
+X374901Y263600D02*X376901Y265600D01*\r
+X374901Y263600D02*X377401D01*\r
+X376901Y265600D02*Y261600D01*\r
+X546744Y270236D02*X548744D01*\r
+X549244Y269736D01*\r
+Y268736D01*\r
+X548744Y268236D02*X549244Y268736D01*\r
+X547244Y268236D02*X548744D01*\r
+X547244Y270236D02*Y266236D01*\r
+Y268236D02*X549244Y266236D01*\r
+X550445Y270236D02*X552445D01*\r
+X550445D02*Y268236D01*\r
+X550945Y268736D01*\r
+X551945D01*\r
+X552445Y268236D01*\r
+Y266736D01*\r
+X551945Y266236D02*X552445Y266736D01*\r
+X550945Y266236D02*X551945D01*\r
+X550445Y266736D02*X550945Y266236D01*\r
+X605918Y270236D02*X607918D01*\r
+X608418Y269736D01*\r
+Y268736D01*\r
+X607918Y268236D02*X608418Y268736D01*\r
+X606418Y268236D02*X607918D01*\r
+X606418Y270236D02*Y266236D01*\r
+Y268236D02*X608418Y266236D01*\r
+X609619Y268236D02*X611619Y270236D01*\r
+X609619Y268236D02*X612119D01*\r
+X611619Y270236D02*Y266236D01*\r
+X623434Y44567D02*X624934D01*\r
+X622934Y45067D02*X623434Y44567D01*\r
+X622934Y48067D02*Y45067D01*\r
+Y48067D02*X623434Y48567D01*\r
+X624934D01*\r
+X626635Y44567D02*X627635D01*\r
+X627135Y48567D02*Y44567D01*\r
+X626135Y47567D02*X627135Y48567D01*\r
+X338071Y31658D02*Y28158D01*\r
+X338571Y27658D01*\r
+X339571D01*\r
+X340071Y28158D01*\r
+Y31658D02*Y28158D01*\r
+X341772Y27658D02*X342772D01*\r
+X342272Y31658D02*Y27658D01*\r
+X341272Y30658D02*X342272Y31658D01*\r
+X338071Y105764D02*Y102764D01*\r
+Y105764D02*X338571Y106264D01*\r
+X339571D01*\r
+X340071Y105764D01*\r
+Y102764D01*\r
+X339571Y102264D02*X340071Y102764D01*\r
+X338571Y102264D02*X339571D01*\r
+X338071Y102764D02*X338571Y102264D01*\r
+X339071Y103264D02*X340071Y102264D01*\r
+X341272Y104264D02*X343272Y106264D01*\r
+X341272Y104264D02*X343772D01*\r
+X343272Y106264D02*Y102264D01*\r
+X338071Y180370D02*Y177370D01*\r
+Y180370D02*X338571Y180870D01*\r
+X339571D01*\r
+X340071Y180370D01*\r
+Y177370D01*\r
+X339571Y176870D02*X340071Y177370D01*\r
+X338571Y176870D02*X339571D01*\r
+X338071Y177370D02*X338571Y176870D01*\r
+X339071Y177870D02*X340071Y176870D01*\r
+X341272Y180370D02*X341772Y180870D01*\r
+X343272D01*\r
+X343772Y180370D01*\r
+Y179370D01*\r
+X341272Y176870D02*X343772Y179370D01*\r
+X341272Y176870D02*X343772D01*\r
+X592822Y386319D02*X594322D01*\r
+X592322Y386819D02*X592822Y386319D01*\r
+X592322Y389819D02*Y386819D01*\r
+Y389819D02*X592822Y390319D01*\r
+X594322D01*\r
+X596023Y386319D02*X597023D01*\r
+X596523Y390319D02*Y386319D01*\r
+X595523Y389319D02*X596523Y390319D01*\r
+X598224D02*X600224D01*\r
+X598224D02*Y388319D01*\r
+X598724Y388819D01*\r
+X599724D01*\r
+X600224Y388319D01*\r
+Y386819D01*\r
+X599724Y386319D02*X600224Y386819D01*\r
+X598724Y386319D02*X599724D01*\r
+X598224Y386819D02*X598724Y386319D01*\r
+X492567D02*X494067D01*\r
+X492067Y386819D02*X492567Y386319D01*\r
+X492067Y389819D02*Y386819D01*\r
+Y389819D02*X492567Y390319D01*\r
+X494067D01*\r
+X495768Y386319D02*X496768D01*\r
+X496268Y390319D02*Y386319D01*\r
+X495268Y389319D02*X496268Y390319D01*\r
+X497969Y388319D02*X499969Y390319D01*\r
+X497969Y388319D02*X500469D01*\r
+X499969Y390319D02*Y386319D01*\r
+X544520Y379823D02*X546520D01*\r
+X547020Y379323D01*\r
+Y378323D01*\r
+X546520Y377823D02*X547020Y378323D01*\r
+X545020Y377823D02*X546520D01*\r
+X545020Y379823D02*Y375823D01*\r
+Y377823D02*X547020Y375823D01*\r
+X548221Y376323D02*X548721Y375823D01*\r
+X548221Y377323D02*Y376323D01*\r
+Y377323D02*X548721Y377823D01*\r
+X549721D01*\r
+X550221Y377323D01*\r
+Y376323D01*\r
+X549721Y375823D02*X550221Y376323D01*\r
+X548721Y375823D02*X549721D01*\r
+X548221Y378323D02*X548721Y377823D01*\r
+X548221Y379323D02*Y378323D01*\r
+Y379323D02*X548721Y379823D01*\r
+X549721D01*\r
+X550221Y379323D01*\r
+Y378323D01*\r
+X549721Y377823D02*X550221Y378323D01*\r
+X528693Y379113D02*X530693D01*\r
+X531193Y378613D01*\r
+Y377613D01*\r
+X530693Y377113D02*X531193Y377613D01*\r
+X529193Y377113D02*X530693D01*\r
+X529193Y379113D02*Y375113D01*\r
+Y377113D02*X531193Y375113D01*\r
+X532894D02*X533894D01*\r
+X533394Y379113D02*Y375113D01*\r
+X532394Y378113D02*X533394Y379113D01*\r
+X535095Y375613D02*X535595Y375113D01*\r
+X535095Y378613D02*Y375613D01*\r
+Y378613D02*X535595Y379113D01*\r
+X536595D01*\r
+X537095Y378613D01*\r
+Y375613D01*\r
+X536595Y375113D02*X537095Y375613D01*\r
+X535595Y375113D02*X536595D01*\r
+X535095Y376113D02*X537095Y378113D01*\r
+X558299Y378600D02*X560299D01*\r
+X560799Y378100D01*\r
+Y377100D01*\r
+X560299Y376600D02*X560799Y377100D01*\r
+X558799Y376600D02*X560299D01*\r
+X558799Y378600D02*Y374600D01*\r
+Y376600D02*X560799Y374600D01*\r
+X562000D02*X564000Y376600D01*\r
+Y378100D02*Y376600D01*\r
+X563500Y378600D02*X564000Y378100D01*\r
+X562500Y378600D02*X563500D01*\r
+X562000Y378100D02*X562500Y378600D01*\r
+X562000Y378100D02*Y377100D01*\r
+X562500Y376600D01*\r
+X564000D01*\r
+X455857Y379448D02*X457857D01*\r
+X458357Y378948D01*\r
+Y377948D01*\r
+X457857Y377448D02*X458357Y377948D01*\r
+X456357Y377448D02*X457857D01*\r
+X456357Y379448D02*Y375448D01*\r
+Y377448D02*X458357Y375448D01*\r
+X460058D02*X461058D01*\r
+X460558Y379448D02*Y375448D01*\r
+X459558Y378448D02*X460558Y379448D01*\r
+X462259Y378948D02*X462759Y379448D01*\r
+X463759D01*\r
+X464259Y378948D01*\r
+Y375948D01*\r
+X463759Y375448D02*X464259Y375948D01*\r
+X462759Y375448D02*X463759D01*\r
+X462259Y375948D02*X462759Y375448D01*\r
+Y377448D02*X464259D01*\r
+X587500Y351000D02*Y347500D01*\r
+X588000Y347000D01*\r
+X589000D01*\r
+X589500Y347500D01*\r
+Y351000D02*Y347500D01*\r
+X590701Y350500D02*X591201Y351000D01*\r
+X592201D01*\r
+X592701Y350500D01*\r
+Y347500D01*\r
+X592201Y347000D02*X592701Y347500D01*\r
+X591201Y347000D02*X592201D01*\r
+X590701Y347500D02*X591201Y347000D01*\r
+Y349000D02*X592701D01*\r
+X639500Y378000D02*X642500D01*\r
+Y371000D01*\r
+X641500Y370000D02*X642500Y371000D01*\r
+X640500Y370000D02*X641500D01*\r
+X639500Y371000D02*X640500Y370000D01*\r
+X644902Y377000D02*X645902Y378000D01*\r
+X648902D01*\r
+X649902Y377000D01*\r
+Y375000D01*\r
+X644902Y370000D02*X649902Y375000D01*\r
+X644902Y370000D02*X649902D01*\r
+X489973Y269448D02*X491973D01*\r
+X492473Y268948D01*\r
+Y267948D01*\r
+X491973Y267448D02*X492473Y267948D01*\r
+X490473Y267448D02*X491973D01*\r
+X490473Y269448D02*Y265448D01*\r
+Y267448D02*X492473Y265448D01*\r
+X493674Y268948D02*X494174Y269448D01*\r
+X495674D01*\r
+X496174Y268948D01*\r
+Y267948D01*\r
+X493674Y265448D02*X496174Y267948D01*\r
+X493674Y265448D02*X496174D01*\r
+X430524Y270766D02*X432524D01*\r
+X433024Y270266D01*\r
+Y269266D01*\r
+X432524Y268766D02*X433024Y269266D01*\r
+X431024Y268766D02*X432524D01*\r
+X431024Y270766D02*Y266766D01*\r
+Y268766D02*X433024Y266766D01*\r
+X434225Y270266D02*X434725Y270766D01*\r
+X435725D01*\r
+X436225Y270266D01*\r
+Y267266D01*\r
+X435725Y266766D02*X436225Y267266D01*\r
+X434725Y266766D02*X435725D01*\r
+X434225Y267266D02*X434725Y266766D01*\r
+Y268766D02*X436225D01*\r
+X380000Y296500D02*Y293000D01*\r
+X380500Y292500D01*\r
+X381500D01*\r
+X382000Y293000D01*\r
+Y296500D02*Y293000D01*\r
+X383201Y296000D02*X383701Y296500D01*\r
+X385201D01*\r
+X385701Y296000D01*\r
+Y295000D01*\r
+X383201Y292500D02*X385701Y295000D01*\r
+X383201Y292500D02*X385701D01*\r
+X456151Y310610D02*X457651D01*\r
+X455651Y311110D02*X456151Y310610D01*\r
+X455651Y314110D02*Y311110D01*\r
+Y314110D02*X456151Y314610D01*\r
+X457651D01*\r
+X458852Y311110D02*X459352Y310610D01*\r
+X458852Y312110D02*Y311110D01*\r
+Y312110D02*X459352Y312610D01*\r
+X460352D01*\r
+X460852Y312110D01*\r
+Y311110D01*\r
+X460352Y310610D02*X460852Y311110D01*\r
+X459352Y310610D02*X460352D01*\r
+X458852Y313110D02*X459352Y312610D01*\r
+X458852Y314110D02*Y313110D01*\r
+Y314110D02*X459352Y314610D01*\r
+X460352D01*\r
+X460852Y314110D01*\r
+Y313110D01*\r
+X460352Y312610D02*X460852Y313110D01*\r
+X422275Y322795D02*X424275D01*\r
+X424775Y322295D01*\r
+Y321295D01*\r
+X424275Y320795D02*X424775Y321295D01*\r
+X422775Y320795D02*X424275D01*\r
+X422775Y322795D02*Y318795D01*\r
+Y320795D02*X424775Y318795D01*\r
+X427476Y322795D02*X427976Y322295D01*\r
+X426476Y322795D02*X427476D01*\r
+X425976Y322295D02*X426476Y322795D01*\r
+X425976Y322295D02*Y319295D01*\r
+X426476Y318795D01*\r
+X427476Y320795D02*X427976Y320295D01*\r
+X425976Y320795D02*X427476D01*\r
+X426476Y318795D02*X427476D01*\r
+X427976Y319295D01*\r
+Y320295D02*Y319295D01*\r
+X439992Y322579D02*X441992D01*\r
+X442492Y322079D01*\r
+Y321079D01*\r
+X441992Y320579D02*X442492Y321079D01*\r
+X440492Y320579D02*X441992D01*\r
+X440492Y322579D02*Y318579D01*\r
+Y320579D02*X442492Y318579D01*\r
+X443693D02*X446193Y321079D01*\r
+Y322579D02*Y321079D01*\r
+X443693Y322579D02*X446193D01*\r
+X487500Y296000D02*Y292500D01*\r
+X488000Y292000D01*\r
+X489000D01*\r
+X489500Y292500D01*\r
+Y296000D02*Y292500D01*\r
+X490701Y292000D02*X493201Y294500D01*\r
+Y296000D02*Y294500D01*\r
+X490701Y296000D02*X493201D01*\r
+X487500Y351500D02*Y348000D01*\r
+X488000Y347500D01*\r
+X489000D01*\r
+X489500Y348000D01*\r
+Y351500D02*Y348000D01*\r
+X490701Y349500D02*X492701Y351500D01*\r
+X490701Y349500D02*X493201D01*\r
+X492701Y351500D02*Y347500D01*\r
+X438220Y378522D02*X440220D01*\r
+X440720Y378022D01*\r
+Y377022D01*\r
+X440220Y376522D02*X440720Y377022D01*\r
+X438720Y376522D02*X440220D01*\r
+X438720Y378522D02*Y374522D01*\r
+Y376522D02*X440720Y374522D01*\r
+X442421D02*X443421D01*\r
+X442921Y378522D02*Y374522D01*\r
+X441921Y377522D02*X442921Y378522D01*\r
+X444622Y378022D02*X445122Y378522D01*\r
+X446622D01*\r
+X447122Y378022D01*\r
+Y377022D01*\r
+X444622Y374522D02*X447122Y377022D01*\r
+X444622Y374522D02*X447122D01*\r
+X420268Y377992D02*X422268D01*\r
+X422768Y377492D01*\r
+Y376492D01*\r
+X422268Y375992D02*X422768Y376492D01*\r
+X420768Y375992D02*X422268D01*\r
+X420768Y377992D02*Y373992D01*\r
+Y375992D02*X422768Y373992D01*\r
+X424469D02*X425469D01*\r
+X424969Y377992D02*Y373992D01*\r
+X423969Y376992D02*X424969Y377992D01*\r
+X427170Y373992D02*X428170D01*\r
+X427670Y377992D02*Y373992D01*\r
+X426670Y376992D02*X427670Y377992D01*\r
+X384063Y386318D02*X385563D01*\r
+X383563Y386818D02*X384063Y386318D01*\r
+X383563Y389818D02*Y386818D01*\r
+Y389818D02*X384063Y390318D01*\r
+X385563D01*\r
+X386764Y386318D02*X388764Y388318D01*\r
+Y389818D02*Y388318D01*\r
+X388264Y390318D02*X388764Y389818D01*\r
+X387264Y390318D02*X388264D01*\r
+X386764Y389818D02*X387264Y390318D01*\r
+X386764Y389818D02*Y388818D01*\r
+X387264Y388318D01*\r
+X388764D01*\r
+X377500Y351000D02*Y347500D01*\r
+X378000Y347000D01*\r
+X379000D01*\r
+X379500Y347500D01*\r
+Y351000D02*Y347500D01*\r
+X380701Y351000D02*X382701D01*\r
+X380701D02*Y349000D01*\r
+X381201Y349500D01*\r
+X382201D01*\r
+X382701Y349000D01*\r
+Y347500D01*\r
+X382201Y347000D02*X382701Y347500D01*\r
+X381201Y347000D02*X382201D01*\r
+X380701Y347500D02*X381201Y347000D01*\r
+M02*\r
--- /dev/null
+(gerbv-file-version! "2.0A")
+(define-layer! 5 (cons 'filename "aic.frontsilk.gbr")(cons 'visible #t)(cons 'color #(54741 65021 13107)))
+(define-layer! 4 (cons 'filename "aic.frontmask.gbr")(cons 'visible #t)(cons 'color #(0 50115 50115)))
+(define-layer! 3 (cons 'filename "aic.front.gbr")(cons 'visible #t)(cons 'color #(30069 62194 26471)))
+(define-layer! 2 (cons 'filename "aic.fab.gbr")(cons 'visible #t)(cons 'color #(49601 0 57568)))
+(define-layer! 1 (cons 'filename "aic.backmask.gbr")(cons 'visible #t)(cons 'color #(65535 32639 29555)))
+(define-layer! 0 (cons 'filename "aic.back.gbr")(cons 'visible #t)(cons 'color #(29555 29555 57054)))
+(define-layer! -1 (cons 'filename "/home/andrenb/Documents/doc-2.2.0 New")(cons 'visible #f)(cons 'color #(0 0 0)))
+(set-render-type! 0)
-# release: pcb 1.6.3
-# date: Tue May 18 17:58:36 2004
-# user: fetter (Prof. Walter Fetter)
-# host: elisyum.eletro
+# release: pcb 20100929
+# date: Thu Nov 18 17:41:08 2010
+# user: andrenb (Andre)
+# host: twil.ypgcar
-PCB("" 7100 4100)
+# To read pcb files, the pcb version (or the git source date) must be >= the file version
+FileVersion[20100606]
-Grid(50 0 0)
-Cursor(50 150 3)
-Flags(0x000000d0)
-Groups("1,2,3,s:4,5,6,c:7:8:")
-Styles("Signal,10,40,20:Power,25,60,35:Fat,40,60,35:Skinny,1,36,15")
+PCB["" 710000 410000]
+
+Grid[2500.000000 0 0 0]
+Cursor[470400 336000 6.000000]
+PolyArea[200000000.000000]
+Thermal[0.500000]
+DRC[1000 400 800 800 1500 1000]
+Flags("nameonpcb,snappin")
+Groups("1,2,3,s:4,5,6,7,8,c")
+Styles["Signal,1000,4000,2000,1000:Power,2500,6000,3500,1000:Fat,4000,6000,3500,1000:Skinny,800,3600,2000,1000"]
Symbol(' ' 18)
(
)
Symbol('!' 12)
(
- SymbolLine(0 35 0 40 8)
- SymbolLine(0 0 0 25 8)
+ SymbolLine(0 45 0 50 8)
+ SymbolLine(0 10 0 35 8)
)
Symbol('"' 12)
(
- SymbolLine(0 0 0 10 8)
- SymbolLine(10 0 10 10 8)
+ SymbolLine(0 10 0 20 8)
+ SymbolLine(10 10 10 20 8)
)
Symbol('#' 12)
(
+ SymbolLine(0 35 20 35 8)
SymbolLine(0 25 20 25 8)
- SymbolLine(0 15 20 15 8)
- SymbolLine(15 10 15 30 8)
- SymbolLine(5 10 5 30 8)
+ SymbolLine(15 20 15 40 8)
+ SymbolLine(5 20 5 40 8)
)
Symbol('$' 12)
(
- SymbolLine(15 5 20 10 8)
- SymbolLine(5 5 15 5 8)
- SymbolLine(0 10 5 5 8)
- SymbolLine(0 10 0 15 8)
- SymbolLine(0 15 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 30 8)
- SymbolLine(15 35 20 30 8)
- SymbolLine(5 35 15 35 8)
- SymbolLine(0 30 5 35 8)
- SymbolLine(10 0 10 40 8)
+ SymbolLine(15 15 20 20 8)
+ SymbolLine(5 15 15 15 8)
+ SymbolLine(0 20 5 15 8)
+ SymbolLine(0 20 0 25 8)
+ SymbolLine(0 25 5 30 8)
+ SymbolLine(5 30 15 30 8)
+ SymbolLine(15 30 20 35 8)
+ SymbolLine(20 35 20 40 8)
+ SymbolLine(15 45 20 40 8)
+ SymbolLine(5 45 15 45 8)
+ SymbolLine(0 40 5 45 8)
+ SymbolLine(10 10 10 50 8)
)
Symbol('%' 12)
(
- SymbolLine(0 5 0 10 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 10 0 8)
- SymbolLine(10 0 15 5 8)
- SymbolLine(15 5 15 10 8)
- SymbolLine(10 15 15 10 8)
- SymbolLine(5 15 10 15 8)
- SymbolLine(0 10 5 15 8)
- SymbolLine(0 40 40 0 8)
- SymbolLine(35 40 40 35 8)
- SymbolLine(40 30 40 35 8)
- SymbolLine(35 25 40 30 8)
- SymbolLine(30 25 35 25 8)
- SymbolLine(25 30 30 25 8)
- SymbolLine(25 30 25 35 8)
- SymbolLine(25 35 30 40 8)
- SymbolLine(30 40 35 40 8)
+ SymbolLine(0 15 0 20 8)
+ SymbolLine(0 15 5 10 8)
+ SymbolLine(5 10 10 10 8)
+ SymbolLine(10 10 15 15 8)
+ SymbolLine(15 15 15 20 8)
+ SymbolLine(10 25 15 20 8)
+ SymbolLine(5 25 10 25 8)
+ SymbolLine(0 20 5 25 8)
+ SymbolLine(0 50 40 10 8)
+ SymbolLine(35 50 40 45 8)
+ SymbolLine(40 40 40 45 8)
+ SymbolLine(35 35 40 40 8)
+ SymbolLine(30 35 35 35 8)
+ SymbolLine(25 40 30 35 8)
+ SymbolLine(25 40 25 45 8)
+ SymbolLine(25 45 30 50 8)
+ SymbolLine(30 50 35 50 8)
)
Symbol('&' 12)
(
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 5 0 15 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 25 15 10 8)
- SymbolLine(5 40 10 40 8)
- SymbolLine(10 40 20 30 8)
- SymbolLine(0 15 25 40 8)
- SymbolLine(5 0 10 0 8)
- SymbolLine(10 0 15 5 8)
- SymbolLine(15 5 15 10 8)
- SymbolLine(0 25 0 35 8)
+ SymbolLine(0 45 5 50 8)
+ SymbolLine(0 15 0 25 8)
+ SymbolLine(0 15 5 10 8)
+ SymbolLine(0 35 15 20 8)
+ SymbolLine(5 50 10 50 8)
+ SymbolLine(10 50 20 40 8)
+ SymbolLine(0 25 25 50 8)
+ SymbolLine(5 10 10 10 8)
+ SymbolLine(10 10 15 15 8)
+ SymbolLine(15 15 15 20 8)
+ SymbolLine(0 35 0 45 8)
)
Symbol(''' 12)
(
- SymbolLine(0 10 10 0 8)
+ SymbolLine(0 20 10 10 8)
)
Symbol('(' 12)
(
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 5 0 35 8)
+ SymbolLine(0 45 5 50 8)
+ SymbolLine(0 15 5 10 8)
+ SymbolLine(0 15 0 45 8)
)
Symbol(')' 12)
(
- SymbolLine(0 0 5 5 8)
- SymbolLine(5 5 5 35 8)
- SymbolLine(0 40 5 35 8)
+ SymbolLine(0 10 5 15 8)
+ SymbolLine(5 15 5 45 8)
+ SymbolLine(0 50 5 45 8)
)
Symbol('*' 12)
(
- SymbolLine(0 10 20 30 8)
- SymbolLine(0 30 20 10 8)
- SymbolLine(0 20 20 20 8)
- SymbolLine(10 10 10 30 8)
+ SymbolLine(0 20 20 40 8)
+ SymbolLine(0 40 20 20 8)
+ SymbolLine(0 30 20 30 8)
+ SymbolLine(10 20 10 40 8)
)
Symbol('+' 12)
(
- SymbolLine(0 20 20 20 8)
- SymbolLine(10 10 10 30 8)
+ SymbolLine(0 30 20 30 8)
+ SymbolLine(10 20 10 40 8)
)
Symbol(',' 12)
(
- SymbolLine(0 50 10 40 8)
+ SymbolLine(0 60 10 50 8)
)
Symbol('-' 12)
(
- SymbolLine(0 20 20 20 8)
+ SymbolLine(0 30 20 30 8)
)
Symbol('.' 12)
(
- SymbolLine(0 40 5 40 8)
+ SymbolLine(0 50 5 50 8)
)
Symbol('/' 12)
(
- SymbolLine(0 35 30 5 8)
+ SymbolLine(0 45 30 15 8)
)
Symbol('0' 12)
(
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 30 20 10 8)
+ SymbolLine(0 45 5 50 8)
+ SymbolLine(0 15 0 45 8)
+ SymbolLine(0 15 5 10 8)
+ SymbolLine(5 10 15 10 8)
+ SymbolLine(15 10 20 15 8)
+ SymbolLine(20 15 20 45 8)
+ SymbolLine(15 50 20 45 8)
+ SymbolLine(5 50 15 50 8)
+ SymbolLine(0 40 20 20 8)
)
Symbol('1' 12)
(
- SymbolLine(5 40 15 40 8)
- SymbolLine(10 0 10 40 8)
- SymbolLine(0 10 10 0 8)
+ SymbolLine(5 50 15 50 8)
+ SymbolLine(10 10 10 50 8)
+ SymbolLine(0 20 10 10 8)
)
Symbol('2' 12)
(
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 20 0 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 15 8)
- SymbolLine(0 40 25 15 8)
- SymbolLine(0 40 25 40 8)
+ SymbolLine(0 15 5 10 8)
+ SymbolLine(5 10 20 10 8)
+ SymbolLine(20 10 25 15 8)
+ SymbolLine(25 15 25 25 8)
+ SymbolLine(0 50 25 25 8)
+ SymbolLine(0 50 25 50 8)
)
Symbol('3' 12)
(
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 20 20 20 8)
+ SymbolLine(0 15 5 10 8)
+ SymbolLine(5 10 15 10 8)
+ SymbolLine(15 10 20 15 8)
+ SymbolLine(20 15 20 45 8)
+ SymbolLine(15 50 20 45 8)
+ SymbolLine(5 50 15 50 8)
+ SymbolLine(0 45 5 50 8)
+ SymbolLine(5 30 20 30 8)
)
Symbol('4' 12)
(
- SymbolLine(0 20 20 0 8)
- SymbolLine(0 20 25 20 8)
- SymbolLine(20 0 20 40 8)
+ SymbolLine(0 30 20 10 8)
+ SymbolLine(0 30 25 30 8)
+ SymbolLine(20 10 20 50 8)
)
Symbol('5' 12)
(
- SymbolLine(0 0 20 0 8)
- SymbolLine(0 0 0 20 8)
- SymbolLine(0 20 5 15 8)
- SymbolLine(5 15 15 15 8)
- SymbolLine(15 15 20 20 8)
- SymbolLine(20 20 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
+ SymbolLine(0 10 20 10 8)
+ SymbolLine(0 10 0 30 8)
+ SymbolLine(0 30 5 25 8)
+ SymbolLine(5 25 15 25 8)
+ SymbolLine(15 25 20 30 8)
+ SymbolLine(20 30 20 45 8)
+ SymbolLine(15 50 20 45 8)
+ SymbolLine(5 50 15 50 8)
+ SymbolLine(0 45 5 50 8)
)
Symbol('6' 12)
(
- SymbolLine(15 0 20 5 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(0 20 15 20 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(20 25 20 35 8)
+ SymbolLine(15 10 20 15 8)
+ SymbolLine(5 10 15 10 8)
+ SymbolLine(0 15 5 10 8)
+ SymbolLine(0 15 0 45 8)
+ SymbolLine(0 45 5 50 8)
+ SymbolLine(15 30 20 35 8)
+ SymbolLine(0 30 15 30 8)
+ SymbolLine(5 50 15 50 8)
+ SymbolLine(15 50 20 45 8)
+ SymbolLine(20 35 20 45 8)
)
Symbol('7' 12)
(
- SymbolLine(0 40 25 15 8)
- SymbolLine(25 0 25 15 8)
- SymbolLine(0 0 25 0 8)
+ SymbolLine(0 50 25 25 8)
+ SymbolLine(25 10 25 25 8)
+ SymbolLine(0 10 25 10 8)
)
Symbol('8' 12)
(
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 15 5 20 8)
- SymbolLine(0 5 0 15 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 15 8)
- SymbolLine(15 20 20 15 8)
+ SymbolLine(0 45 5 50 8)
+ SymbolLine(0 35 0 45 8)
+ SymbolLine(0 35 5 30 8)
+ SymbolLine(5 30 15 30 8)
+ SymbolLine(15 30 20 35 8)
+ SymbolLine(20 35 20 45 8)
+ SymbolLine(15 50 20 45 8)
+ SymbolLine(5 50 15 50 8)
+ SymbolLine(0 25 5 30 8)
+ SymbolLine(0 15 0 25 8)
+ SymbolLine(0 15 5 10 8)
+ SymbolLine(5 10 15 10 8)
+ SymbolLine(15 10 20 15 8)
+ SymbolLine(20 15 20 25 8)
+ SymbolLine(15 30 20 25 8)
)
Symbol('9' 12)
(
- SymbolLine(0 40 20 20 8)
- SymbolLine(20 5 20 20 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 5 0 15 8)
- SymbolLine(0 15 5 20 8)
- SymbolLine(5 20 20 20 8)
+ SymbolLine(0 50 20 30 8)
+ SymbolLine(20 15 20 30 8)
+ SymbolLine(15 10 20 15 8)
+ SymbolLine(5 10 15 10 8)
+ SymbolLine(0 15 5 10 8)
+ SymbolLine(0 15 0 25 8)
+ SymbolLine(0 25 5 30 8)
+ SymbolLine(5 30 20 30 8)
)
Symbol(':' 12)
(
- SymbolLine(0 15 5 15 8)
SymbolLine(0 25 5 25 8)
+ SymbolLine(0 35 5 35 8)
)
Symbol(';' 12)
(
- SymbolLine(0 40 10 30 8)
- SymbolLine(10 15 10 20 8)
+ SymbolLine(0 50 10 40 8)
+ SymbolLine(10 25 10 30 8)
)
Symbol('<' 12)
(
- SymbolLine(0 20 10 10 8)
- SymbolLine(0 20 10 30 8)
+ SymbolLine(0 30 10 20 8)
+ SymbolLine(0 30 10 40 8)
)
Symbol('=' 12)
(
- SymbolLine(0 15 20 15 8)
SymbolLine(0 25 20 25 8)
+ SymbolLine(0 35 20 35 8)
)
Symbol('>' 12)
(
- SymbolLine(0 10 10 20 8)
- SymbolLine(0 30 10 20 8)
+ SymbolLine(0 20 10 30 8)
+ SymbolLine(0 40 10 30 8)
)
Symbol('?' 12)
(
- SymbolLine(10 20 10 25 8)
- SymbolLine(10 35 10 40 8)
- SymbolLine(0 5 0 10 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 10 8)
- SymbolLine(10 20 20 10 8)
+ SymbolLine(10 30 10 35 8)
+ SymbolLine(10 45 10 50 8)
+ SymbolLine(0 15 0 20 8)
+ SymbolLine(0 15 5 10 8)
+ SymbolLine(5 10 15 10 8)
+ SymbolLine(15 10 20 15 8)
+ SymbolLine(20 15 20 20 8)
+ SymbolLine(10 30 20 20 8)
+)
+Symbol('@' 12)
+(
+ SymbolLine(0 10 0 40 8)
+ SymbolLine(0 40 10 50 8)
+ SymbolLine(10 50 40 50 8)
+ SymbolLine(50 35 50 10 8)
+ SymbolLine(50 10 40 0 8)
+ SymbolLine(40 0 10 0 8)
+ SymbolLine(10 0 0 10 8)
+ SymbolLine(15 20 15 30 8)
+ SymbolLine(15 30 20 35 8)
+ SymbolLine(20 35 30 35 8)
+ SymbolLine(30 35 35 30 8)
+ SymbolLine(35 30 40 35 8)
+ SymbolLine(35 30 35 15 8)
+ SymbolLine(35 20 30 15 8)
+ SymbolLine(20 15 30 15 8)
+ SymbolLine(20 15 15 20 8)
+ SymbolLine(40 35 50 35 8)
)
Symbol('A' 12)
(
- SymbolLine(0 5 0 40 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 20 0 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 40 8)
- SymbolLine(0 20 25 20 8)
+ SymbolLine(0 15 0 50 8)
+ SymbolLine(0 15 5 10 8)
+ SymbolLine(5 10 20 10 8)
+ SymbolLine(20 10 25 15 8)
+ SymbolLine(25 15 25 50 8)
+ SymbolLine(0 30 25 30 8)
)
Symbol('B' 12)
(
- SymbolLine(0 40 20 40 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(25 25 25 35 8)
- SymbolLine(20 20 25 25 8)
- SymbolLine(5 20 20 20 8)
- SymbolLine(5 0 5 40 8)
- SymbolLine(0 0 20 0 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 15 8)
- SymbolLine(20 20 25 15 8)
+ SymbolLine(0 50 20 50 8)
+ SymbolLine(20 50 25 45 8)
+ SymbolLine(25 35 25 45 8)
+ SymbolLine(20 30 25 35 8)
+ SymbolLine(5 30 20 30 8)
+ SymbolLine(5 10 5 50 8)
+ SymbolLine(0 10 20 10 8)
+ SymbolLine(20 10 25 15 8)
+ SymbolLine(25 15 25 25 8)
+ SymbolLine(20 30 25 25 8)
)
Symbol('C' 12)
(
- SymbolLine(5 40 20 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 20 0 8)
+ SymbolLine(5 50 20 50 8)
+ SymbolLine(0 45 5 50 8)
+ SymbolLine(0 15 0 45 8)
+ SymbolLine(0 15 5 10 8)
+ SymbolLine(5 10 20 10 8)
)
Symbol('D' 12)
(
- SymbolLine(5 0 5 40 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 35 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(0 40 20 40 8)
- SymbolLine(0 0 20 0 8)
+ SymbolLine(5 10 5 50 8)
+ SymbolLine(20 10 25 15 8)
+ SymbolLine(25 15 25 45 8)
+ SymbolLine(20 50 25 45 8)
+ SymbolLine(0 50 20 50 8)
+ SymbolLine(0 10 20 10 8)
)
Symbol('E' 12)
(
- SymbolLine(0 20 15 20 8)
- SymbolLine(0 40 20 40 8)
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 0 20 0 8)
+ SymbolLine(0 30 15 30 8)
+ SymbolLine(0 50 20 50 8)
+ SymbolLine(0 10 0 50 8)
+ SymbolLine(0 10 20 10 8)
)
Symbol('F' 12)
(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 0 20 0 8)
- SymbolLine(0 20 15 20 8)
+ SymbolLine(0 10 0 50 8)
+ SymbolLine(0 10 20 10 8)
+ SymbolLine(0 30 15 30 8)
)
Symbol('G' 12)
(
- SymbolLine(20 0 25 5 8)
- SymbolLine(5 0 20 0 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 20 40 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(25 25 25 35 8)
- SymbolLine(20 20 25 25 8)
- SymbolLine(10 20 20 20 8)
+ SymbolLine(20 10 25 15 8)
+ SymbolLine(5 10 20 10 8)
+ SymbolLine(0 15 5 10 8)
+ SymbolLine(0 15 0 45 8)
+ SymbolLine(0 45 5 50 8)
+ SymbolLine(5 50 20 50 8)
+ SymbolLine(20 50 25 45 8)
+ SymbolLine(25 35 25 45 8)
+ SymbolLine(20 30 25 35 8)
+ SymbolLine(10 30 20 30 8)
)
Symbol('H' 12)
(
- SymbolLine(0 0 0 40 8)
- SymbolLine(25 0 25 40 8)
- SymbolLine(0 20 25 20 8)
+ SymbolLine(0 10 0 50 8)
+ SymbolLine(25 10 25 50 8)
+ SymbolLine(0 30 25 30 8)
)
Symbol('I' 12)
(
- SymbolLine(0 0 10 0 8)
- SymbolLine(5 0 5 40 8)
- SymbolLine(0 40 10 40 8)
+ SymbolLine(0 10 10 10 8)
+ SymbolLine(5 10 5 50 8)
+ SymbolLine(0 50 10 50 8)
)
Symbol('J' 12)
(
- SymbolLine(0 0 15 0 8)
- SymbolLine(15 0 15 35 8)
- SymbolLine(10 40 15 35 8)
- SymbolLine(5 40 10 40 8)
- SymbolLine(0 35 5 40 8)
+ SymbolLine(0 10 15 10 8)
+ SymbolLine(15 10 15 45 8)
+ SymbolLine(10 50 15 45 8)
+ SymbolLine(5 50 10 50 8)
+ SymbolLine(0 45 5 50 8)
)
Symbol('K' 12)
(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 20 20 0 8)
- SymbolLine(0 20 20 40 8)
+ SymbolLine(0 10 0 50 8)
+ SymbolLine(0 30 20 10 8)
+ SymbolLine(0 30 20 50 8)
)
Symbol('L' 12)
(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 40 20 40 8)
+ SymbolLine(0 10 0 50 8)
+ SymbolLine(0 50 20 50 8)
)
Symbol('M' 12)
(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 0 15 15 8)
- SymbolLine(15 15 30 0 8)
- SymbolLine(30 0 30 40 8)
+ SymbolLine(0 10 0 50 8)
+ SymbolLine(0 10 15 25 8)
+ SymbolLine(15 25 30 10 8)
+ SymbolLine(30 10 30 50 8)
)
Symbol('N' 12)
(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 0 0 5 8)
- SymbolLine(0 5 25 30 8)
- SymbolLine(25 0 25 40 8)
+ SymbolLine(0 10 0 50 8)
+ SymbolLine(0 10 0 15 8)
+ SymbolLine(0 15 25 40 8)
+ SymbolLine(25 10 25 50 8)
)
Symbol('O' 12)
(
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
+ SymbolLine(0 15 0 45 8)
+ SymbolLine(0 15 5 10 8)
+ SymbolLine(5 10 15 10 8)
+ SymbolLine(15 10 20 15 8)
+ SymbolLine(20 15 20 45 8)
+ SymbolLine(15 50 20 45 8)
+ SymbolLine(5 50 15 50 8)
+ SymbolLine(0 45 5 50 8)
)
Symbol('P' 12)
(
- SymbolLine(5 0 5 40 8)
- SymbolLine(0 0 20 0 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 15 8)
- SymbolLine(20 20 25 15 8)
- SymbolLine(5 20 20 20 8)
+ SymbolLine(5 10 5 50 8)
+ SymbolLine(0 10 20 10 8)
+ SymbolLine(20 10 25 15 8)
+ SymbolLine(25 15 25 25 8)
+ SymbolLine(20 30 25 25 8)
+ SymbolLine(5 30 20 30 8)
)
Symbol('Q' 12)
(
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(10 30 20 40 8)
+ SymbolLine(0 15 0 45 8)
+ SymbolLine(0 15 5 10 8)
+ SymbolLine(5 10 15 10 8)
+ SymbolLine(15 10 20 15 8)
+ SymbolLine(20 15 20 45 8)
+ SymbolLine(15 50 20 45 8)
+ SymbolLine(5 50 15 50 8)
+ SymbolLine(0 45 5 50 8)
+ SymbolLine(10 40 20 50 8)
)
Symbol('R' 12)
(
- SymbolLine(0 0 20 0 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 15 8)
- SymbolLine(20 20 25 15 8)
- SymbolLine(5 20 20 20 8)
- SymbolLine(5 0 5 40 8)
- SymbolLine(5 20 25 40 8)
+ SymbolLine(0 10 20 10 8)
+ SymbolLine(20 10 25 15 8)
+ SymbolLine(25 15 25 25 8)
+ SymbolLine(20 30 25 25 8)
+ SymbolLine(5 30 20 30 8)
+ SymbolLine(5 10 5 50 8)
+ SymbolLine(5 30 25 50 8)
)
Symbol('S' 12)
(
- SymbolLine(20 0 25 5 8)
- SymbolLine(5 0 20 0 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 5 0 15 8)
- SymbolLine(0 15 5 20 8)
- SymbolLine(5 20 20 20 8)
- SymbolLine(20 20 25 25 8)
- SymbolLine(25 25 25 35 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(5 40 20 40 8)
- SymbolLine(0 35 5 40 8)
+ SymbolLine(20 10 25 15 8)
+ SymbolLine(5 10 20 10 8)
+ SymbolLine(0 15 5 10 8)
+ SymbolLine(0 15 0 25 8)
+ SymbolLine(0 25 5 30 8)
+ SymbolLine(5 30 20 30 8)
+ SymbolLine(20 30 25 35 8)
+ SymbolLine(25 35 25 45 8)
+ SymbolLine(20 50 25 45 8)
+ SymbolLine(5 50 20 50 8)
+ SymbolLine(0 45 5 50 8)
)
Symbol('T' 12)
(
- SymbolLine(0 0 20 0 8)
- SymbolLine(10 0 10 40 8)
+ SymbolLine(0 10 20 10 8)
+ SymbolLine(10 10 10 50 8)
)
Symbol('U' 12)
(
- SymbolLine(0 0 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(20 0 20 35 8)
+ SymbolLine(0 10 0 45 8)
+ SymbolLine(0 45 5 50 8)
+ SymbolLine(5 50 15 50 8)
+ SymbolLine(15 50 20 45 8)
+ SymbolLine(20 10 20 45 8)
)
Symbol('V' 12)
(
- SymbolLine(0 0 0 30 8)
- SymbolLine(0 30 10 40 8)
- SymbolLine(10 40 20 30 8)
- SymbolLine(20 0 20 30 8)
+ SymbolLine(0 10 0 40 8)
+ SymbolLine(0 40 10 50 8)
+ SymbolLine(10 50 20 40 8)
+ SymbolLine(20 10 20 40 8)
)
Symbol('W' 12)
(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 40 15 25 8)
- SymbolLine(15 25 30 40 8)
- SymbolLine(30 0 30 40 8)
+ SymbolLine(0 10 0 50 8)
+ SymbolLine(0 50 15 35 8)
+ SymbolLine(15 35 30 50 8)
+ SymbolLine(30 10 30 50 8)
)
Symbol('X' 12)
(
- SymbolLine(0 0 0 5 8)
- SymbolLine(0 5 25 30 8)
- SymbolLine(25 30 25 40 8)
- SymbolLine(0 30 0 40 8)
- SymbolLine(0 30 25 5 8)
- SymbolLine(25 0 25 5 8)
+ SymbolLine(0 10 0 15 8)
+ SymbolLine(0 15 25 40 8)
+ SymbolLine(25 40 25 50 8)
+ SymbolLine(0 40 0 50 8)
+ SymbolLine(0 40 25 15 8)
+ SymbolLine(25 10 25 15 8)
)
Symbol('Y' 12)
(
- SymbolLine(0 0 0 5 8)
- SymbolLine(0 5 10 15 8)
- SymbolLine(10 15 20 5 8)
- SymbolLine(20 0 20 5 8)
- SymbolLine(10 15 10 40 8)
+ SymbolLine(0 10 0 15 8)
+ SymbolLine(0 15 10 25 8)
+ SymbolLine(10 25 20 15 8)
+ SymbolLine(20 10 20 15 8)
+ SymbolLine(10 25 10 50 8)
)
Symbol('Z' 12)
(
- SymbolLine(0 0 25 0 8)
- SymbolLine(25 0 25 5 8)
- SymbolLine(0 30 25 5 8)
- SymbolLine(0 30 0 40 8)
- SymbolLine(0 40 25 40 8)
+ SymbolLine(0 10 25 10 8)
+ SymbolLine(25 10 25 15 8)
+ SymbolLine(0 40 25 15 8)
+ SymbolLine(0 40 0 50 8)
+ SymbolLine(0 50 25 50 8)
)
Symbol('[' 12)
(
- SymbolLine(0 0 5 0 8)
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 40 5 40 8)
+ SymbolLine(0 10 5 10 8)
+ SymbolLine(0 10 0 50 8)
+ SymbolLine(0 50 5 50 8)
)
Symbol('\' 12)
(
- SymbolLine(0 5 30 35 8)
+ SymbolLine(0 15 30 45 8)
)
Symbol(']' 12)
(
- SymbolLine(0 0 5 0 8)
- SymbolLine(5 0 5 40 8)
- SymbolLine(0 40 5 40 8)
+ SymbolLine(0 10 5 10 8)
+ SymbolLine(5 10 5 50 8)
+ SymbolLine(0 50 5 50 8)
)
Symbol('^' 12)
(
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 10 5 8)
+ SymbolLine(0 15 5 10 8)
+ SymbolLine(5 10 10 15 8)
)
Symbol('_' 12)
(
- SymbolLine(0 40 20 40 8)
+ SymbolLine(0 50 20 50 8)
)
Symbol('a' 12)
(
- SymbolLine(15 20 20 25 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(20 20 20 35 8)
- SymbolLine(20 35 25 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
+ SymbolLine(15 30 20 35 8)
+ SymbolLine(5 30 15 30 8)
+ SymbolLine(0 35 5 30 8)
+ SymbolLine(0 35 0 45 8)
+ SymbolLine(0 45 5 50 8)
+ SymbolLine(20 30 20 45 8)
+ SymbolLine(20 45 25 50 8)
+ SymbolLine(5 50 15 50 8)
+ SymbolLine(15 50 20 45 8)
)
Symbol('b' 12)
(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(20 25 20 35 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(0 25 5 20 8)
+ SymbolLine(0 10 0 50 8)
+ SymbolLine(0 45 5 50 8)
+ SymbolLine(5 50 15 50 8)
+ SymbolLine(15 50 20 45 8)
+ SymbolLine(20 35 20 45 8)
+ SymbolLine(15 30 20 35 8)
+ SymbolLine(5 30 15 30 8)
+ SymbolLine(0 35 5 30 8)
)
Symbol('c' 12)
(
- SymbolLine(5 20 20 20 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 20 40 8)
+ SymbolLine(5 30 20 30 8)
+ SymbolLine(0 35 5 30 8)
+ SymbolLine(0 35 0 45 8)
+ SymbolLine(0 45 5 50 8)
+ SymbolLine(5 50 20 50 8)
)
Symbol('d' 12)
(
- SymbolLine(20 0 20 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
+ SymbolLine(20 10 20 50 8)
+ SymbolLine(15 50 20 45 8)
+ SymbolLine(5 50 15 50 8)
+ SymbolLine(0 45 5 50 8)
+ SymbolLine(0 35 0 45 8)
+ SymbolLine(0 35 5 30 8)
+ SymbolLine(5 30 15 30 8)
+ SymbolLine(15 30 20 35 8)
)
Symbol('e' 12)
(
- SymbolLine(5 40 20 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(0 30 20 30 8)
- SymbolLine(20 30 20 25 8)
+ SymbolLine(5 50 20 50 8)
+ SymbolLine(0 45 5 50 8)
+ SymbolLine(0 35 0 45 8)
+ SymbolLine(0 35 5 30 8)
+ SymbolLine(5 30 15 30 8)
+ SymbolLine(15 30 20 35 8)
+ SymbolLine(0 40 20 40 8)
+ SymbolLine(20 40 20 35 8)
)
Symbol('f' 10)
(
- SymbolLine(5 5 5 40 8)
- SymbolLine(5 5 10 0 8)
- SymbolLine(10 0 15 0 8)
- SymbolLine(0 20 10 20 8)
+ SymbolLine(5 15 5 50 8)
+ SymbolLine(5 15 10 10 8)
+ SymbolLine(10 10 15 10 8)
+ SymbolLine(0 30 10 30 8)
)
Symbol('g' 12)
(
- SymbolLine(15 20 20 25 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(0 50 5 55 8)
- SymbolLine(5 55 15 55 8)
- SymbolLine(15 55 20 50 8)
- SymbolLine(20 20 20 50 8)
+ SymbolLine(15 30 20 35 8)
+ SymbolLine(5 30 15 30 8)
+ SymbolLine(0 35 5 30 8)
+ SymbolLine(0 35 0 45 8)
+ SymbolLine(0 45 5 50 8)
+ SymbolLine(5 50 15 50 8)
+ SymbolLine(15 50 20 45 8)
+ SymbolLine(0 60 5 65 8)
+ SymbolLine(5 65 15 65 8)
+ SymbolLine(15 65 20 60 8)
+ SymbolLine(20 30 20 60 8)
)
Symbol('h' 12)
(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 40 8)
+ SymbolLine(0 10 0 50 8)
+ SymbolLine(0 35 5 30 8)
+ SymbolLine(5 30 15 30 8)
+ SymbolLine(15 30 20 35 8)
+ SymbolLine(20 35 20 50 8)
)
Symbol('i' 10)
(
- SymbolLine(0 10 0 15 8)
- SymbolLine(0 25 0 40 8)
+ SymbolLine(0 20 0 25 8)
+ SymbolLine(0 35 0 50 8)
)
Symbol('j' 10)
(
- SymbolLine(5 10 5 15 8)
- SymbolLine(5 25 5 50 8)
- SymbolLine(0 55 5 50 8)
+ SymbolLine(5 20 5 25 8)
+ SymbolLine(5 35 5 60 8)
+ SymbolLine(0 65 5 60 8)
)
Symbol('k' 12)
(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 25 15 40 8)
- SymbolLine(0 25 10 15 8)
+ SymbolLine(0 10 0 50 8)
+ SymbolLine(0 35 15 50 8)
+ SymbolLine(0 35 10 25 8)
)
Symbol('l' 10)
(
- SymbolLine(0 0 0 35 8)
- SymbolLine(0 35 5 40 8)
+ SymbolLine(0 10 0 45 8)
+ SymbolLine(0 45 5 50 8)
)
Symbol('m' 12)
(
- SymbolLine(5 25 5 40 8)
- SymbolLine(5 25 10 20 8)
- SymbolLine(10 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 40 8)
- SymbolLine(20 25 25 20 8)
- SymbolLine(25 20 30 20 8)
- SymbolLine(30 20 35 25 8)
- SymbolLine(35 25 35 40 8)
- SymbolLine(0 20 5 25 8)
+ SymbolLine(5 35 5 50 8)
+ SymbolLine(5 35 10 30 8)
+ SymbolLine(10 30 15 30 8)
+ SymbolLine(15 30 20 35 8)
+ SymbolLine(20 35 20 50 8)
+ SymbolLine(20 35 25 30 8)
+ SymbolLine(25 30 30 30 8)
+ SymbolLine(30 30 35 35 8)
+ SymbolLine(35 35 35 50 8)
+ SymbolLine(0 30 5 35 8)
)
Symbol('n' 12)
(
- SymbolLine(5 25 5 40 8)
- SymbolLine(5 25 10 20 8)
- SymbolLine(10 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 40 8)
- SymbolLine(0 20 5 25 8)
+ SymbolLine(5 35 5 50 8)
+ SymbolLine(5 35 10 30 8)
+ SymbolLine(10 30 15 30 8)
+ SymbolLine(15 30 20 35 8)
+ SymbolLine(20 35 20 50 8)
+ SymbolLine(0 30 5 35 8)
)
Symbol('o' 12)
(
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
+ SymbolLine(0 35 0 45 8)
+ SymbolLine(0 35 5 30 8)
+ SymbolLine(5 30 15 30 8)
+ SymbolLine(15 30 20 35 8)
+ SymbolLine(20 35 20 45 8)
+ SymbolLine(15 50 20 45 8)
+ SymbolLine(5 50 15 50 8)
+ SymbolLine(0 45 5 50 8)
)
Symbol('p' 12)
(
- SymbolLine(5 25 5 55 8)
- SymbolLine(0 20 5 25 8)
- SymbolLine(5 25 10 20 8)
- SymbolLine(10 20 20 20 8)
- SymbolLine(20 20 25 25 8)
- SymbolLine(25 25 25 35 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(10 40 20 40 8)
- SymbolLine(5 35 10 40 8)
+ SymbolLine(5 35 5 65 8)
+ SymbolLine(0 30 5 35 8)
+ SymbolLine(5 35 10 30 8)
+ SymbolLine(10 30 20 30 8)
+ SymbolLine(20 30 25 35 8)
+ SymbolLine(25 35 25 45 8)
+ SymbolLine(20 50 25 45 8)
+ SymbolLine(10 50 20 50 8)
+ SymbolLine(5 45 10 50 8)
)
Symbol('q' 12)
(
- SymbolLine(20 25 20 55 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
+ SymbolLine(20 35 20 65 8)
+ SymbolLine(15 30 20 35 8)
+ SymbolLine(5 30 15 30 8)
+ SymbolLine(0 35 5 30 8)
+ SymbolLine(0 35 0 45 8)
+ SymbolLine(0 45 5 50 8)
+ SymbolLine(5 50 15 50 8)
+ SymbolLine(15 50 20 45 8)
)
Symbol('r' 12)
(
- SymbolLine(5 25 5 40 8)
- SymbolLine(5 25 10 20 8)
- SymbolLine(10 20 20 20 8)
- SymbolLine(0 20 5 25 8)
+ SymbolLine(5 35 5 50 8)
+ SymbolLine(5 35 10 30 8)
+ SymbolLine(10 30 20 30 8)
+ SymbolLine(0 30 5 35 8)
)
Symbol('s' 12)
(
+ SymbolLine(5 50 20 50 8)
+ SymbolLine(20 50 25 45 8)
+ SymbolLine(20 40 25 45 8)
SymbolLine(5 40 20 40 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(20 30 25 35 8)
- SymbolLine(5 30 20 30 8)
- SymbolLine(0 25 5 30 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 20 20 8)
- SymbolLine(20 20 25 25 8)
SymbolLine(0 35 5 40 8)
+ SymbolLine(0 35 5 30 8)
+ SymbolLine(5 30 20 30 8)
+ SymbolLine(20 30 25 35 8)
+ SymbolLine(0 45 5 50 8)
)
Symbol('t' 10)
(
- SymbolLine(5 0 5 35 8)
- SymbolLine(5 35 10 40 8)
- SymbolLine(0 15 10 15 8)
+ SymbolLine(5 10 5 45 8)
+ SymbolLine(5 45 10 50 8)
+ SymbolLine(0 25 10 25 8)
)
Symbol('u' 12)
(
- SymbolLine(0 20 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(20 20 20 35 8)
+ SymbolLine(0 30 0 45 8)
+ SymbolLine(0 45 5 50 8)
+ SymbolLine(5 50 15 50 8)
+ SymbolLine(15 50 20 45 8)
+ SymbolLine(20 30 20 45 8)
)
Symbol('v' 12)
(
- SymbolLine(0 20 0 30 8)
- SymbolLine(0 30 10 40 8)
- SymbolLine(10 40 20 30 8)
- SymbolLine(20 20 20 30 8)
+ SymbolLine(0 30 0 40 8)
+ SymbolLine(0 40 10 50 8)
+ SymbolLine(10 50 20 40 8)
+ SymbolLine(20 30 20 40 8)
)
Symbol('w' 12)
(
- SymbolLine(0 20 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 10 40 8)
- SymbolLine(10 40 15 35 8)
- SymbolLine(15 20 15 35 8)
- SymbolLine(15 35 20 40 8)
- SymbolLine(20 40 25 40 8)
- SymbolLine(25 40 30 35 8)
- SymbolLine(30 20 30 35 8)
+ SymbolLine(0 30 0 45 8)
+ SymbolLine(0 45 5 50 8)
+ SymbolLine(5 50 10 50 8)
+ SymbolLine(10 50 15 45 8)
+ SymbolLine(15 30 15 45 8)
+ SymbolLine(15 45 20 50 8)
+ SymbolLine(20 50 25 50 8)
+ SymbolLine(25 50 30 45 8)
+ SymbolLine(30 30 30 45 8)
)
Symbol('x' 12)
(
- SymbolLine(0 20 20 40 8)
- SymbolLine(0 40 20 20 8)
+ SymbolLine(0 30 20 50 8)
+ SymbolLine(0 50 20 30 8)
)
Symbol('y' 12)
(
- SymbolLine(0 20 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(20 20 20 50 8)
- SymbolLine(15 55 20 50 8)
- SymbolLine(5 55 15 55 8)
- SymbolLine(0 50 5 55 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
+ SymbolLine(0 30 0 45 8)
+ SymbolLine(0 45 5 50 8)
+ SymbolLine(20 30 20 60 8)
+ SymbolLine(15 65 20 60 8)
+ SymbolLine(5 65 15 65 8)
+ SymbolLine(0 60 5 65 8)
+ SymbolLine(5 50 15 50 8)
+ SymbolLine(15 50 20 45 8)
)
Symbol('z' 12)
(
- SymbolLine(0 20 20 20 8)
- SymbolLine(0 40 20 20 8)
- SymbolLine(0 40 20 40 8)
+ SymbolLine(0 30 20 30 8)
+ SymbolLine(0 50 20 30 8)
+ SymbolLine(0 50 20 50 8)
)
Symbol('{' 12)
(
- SymbolLine(5 5 10 0 8)
- SymbolLine(5 5 5 15 8)
- SymbolLine(0 20 5 15 8)
- SymbolLine(0 20 5 25 8)
- SymbolLine(5 25 5 35 8)
- SymbolLine(5 35 10 40 8)
+ SymbolLine(5 15 10 10 8)
+ SymbolLine(5 15 5 25 8)
+ SymbolLine(0 30 5 25 8)
+ SymbolLine(0 30 5 35 8)
+ SymbolLine(5 35 5 45 8)
+ SymbolLine(5 45 10 50 8)
)
Symbol('|' 12)
(
- SymbolLine(0 0 0 40 8)
+ SymbolLine(0 10 0 50 8)
)
Symbol('}' 12)
(
- SymbolLine(0 0 5 5 8)
- SymbolLine(5 5 5 15 8)
- SymbolLine(5 15 10 20 8)
- SymbolLine(5 25 10 20 8)
- SymbolLine(5 25 5 35 8)
- SymbolLine(0 40 5 35 8)
+ SymbolLine(0 10 5 15 8)
+ SymbolLine(5 15 5 25 8)
+ SymbolLine(5 25 10 30 8)
+ SymbolLine(5 35 10 30 8)
+ SymbolLine(5 35 5 45 8)
+ SymbolLine(0 50 5 45 8)
)
Symbol('~' 12)
(
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 10 20 8)
- SymbolLine(10 20 15 25 8)
- SymbolLine(15 25 20 25 8)
- SymbolLine(20 25 25 20 8)
-)
-Via(4750 3425 60 35 "" 0x00000002)
-Via(4900 3425 60 35 "" 0x00000002)
-Via(5600 3425 60 35 "" 0x00000002)
-Via(6025 2600 60 35 "" 0x00000002)
-Via(5400 2600 60 35 "" 0x00000002)
-Via(5400 3075 60 35 "" 0x00000002)
-Via(6025 3075 60 35 "" 0x00000002)
-Via(5925 2775 60 35 "" 0x00000002)
-Via(6125 2875 60 35 "" 0x00000002)
-Via(5400 3275 60 35 "" 0x00000002)
-Via(3950 3175 60 35 "" 0x00000002)
-Via(4750 3175 60 35 "" 0x00000002)
-Via(6225 3425 60 35 "" 0x00000002)
-Via(6125 2675 60 35 "" 0x00000002)
-Via(5925 2225 60 35 "" 0x00000002)
-Via(4625 3425 60 35 "" 0x00000002)
-Via(5625 2200 60 35 "" 0x00000002)
-Via(6225 1025 60 35 "" 0x00000002)
-Via(6475 1025 60 35 "" 0x00000002)
-Via(5675 1075 60 35 "" 0x00000002)
-Via(5975 475 60 35 "" 0x00000002)
-Via(5375 475 60 35 "" 0x00000002)
-Via(4875 475 60 35 "" 0x00000002)
-Via(5175 400 60 35 "" 0x00000002)
-Via(5775 400 60 35 "" 0x00000002)
-Via(4025 725 60 35 "" 0x00000002)
-Via(4875 725 60 35 "" 0x00000002)
-Via(5375 725 60 35 "" 0x00000002)
-Via(5925 725 60 35 "" 0x00000002)
-Via(4975 950 60 35 "" 0x00000002)
-Via(1400 950 60 35 "" 0x00000002)
-Via(1750 950 60 35 "" 0x00000002)
-Via(2375 950 60 35 "" 0x00000002)
-Via(3225 3175 60 35 "" 0x00000002)
-Via(3275 3925 60 35 "" 0x00000002)
-Via(2400 2450 60 35 "" 0x00000002)
-Via(2700 2450 60 35 "" 0x00000002)
-Via(1400 2450 60 35 "" 0x00000002)
-Via(1300 2800 60 35 "" 0x00000002)
-Via(1300 2900 60 35 "" 0x00000002)
-Via(2525 2875 40 20 "" 0x00000002)
-Via(4275 1000 60 35 "" 0x00000002)
-Via(5250 1000 60 35 "" 0x00000002)
-Via(3150 1000 60 35 "" 0x00000002)
-Via(4475 950 60 35 "" 0x00000002)
-Via(2025 3050 60 35 "" 0x00000002)
-Via(1275 3925 60 35 "" 0x00000002)
-Via(2125 3925 60 35 "" 0x00000002)
-Via(2725 3925 60 35 "" 0x00000002)
-Via(3600 3175 60 35 "" 0x00000002)
-Via(775 3925 60 35 "" 0x00000002)
-Via(4875 1075 40 20 "" 0x00000002)
-Via(6200 525 40 20 "" 0x00000002)
-Via(6225 875 40 20 "" 0x00000002)
-Via(5375 1075 40 20 "" 0x00000002)
-Via(6375 1725 40 20 "" 0x00000002)
-Via(2625 1725 40 20 "" 0x00000002)
-Via(5975 650 40 20 "" 0x00000002)
-Via(4075 475 60 35 "" 0x00000002)
-Via(2050 825 40 20 "" 0x00000002)
-Via(4025 2350 40 20 "" 0x00000002)
-Via(2950 1300 40 20 "" 0x00000002)
-Via(3350 525 40 20 "" 0x00000002)
-Via(5275 225 40 20 "" 0x00000002)
-Via(6150 150 40 20 "" 0x00000002)
-Via(4775 575 40 20 "" 0x00000002)
-Via(6225 350 40 20 "" 0x00000002)
-Via(6475 200 40 20 "" 0x00000002)
-Via(5575 150 40 20 "" 0x00000002)
-Via(5025 150 40 20 "" 0x00000002)
-Via(5475 1425 40 20 "" 0x00000002)
-Via(6100 1425 40 20 "" 0x00000002)
-Via(6150 1300 40 20 "" 0x00000002)
-Via(5550 1350 40 20 "" 0x00000002)
-Via(1950 575 40 20 "" 0x00000002)
-Via(2425 3600 40 20 "" 0x00000002)
-Via(2100 675 40 20 "" 0x00000002)
-Via(1150 1125 40 20 "" 0x00000002)
-Via(5075 1075 40 20 "" 0x00000002)
-Via(4175 1350 40 20 "" 0x00000002)
-Via(2000 625 40 20 "" 0x00000002)
-Via(5125 800 40 20 "" 0x00000002)
-Via(5575 2375 40 20 "" 0x00000002)
-Via(4475 300 40 20 "" 0x00000002)
-Via(3550 1300 40 20 "" 0x00000002)
-Via(2725 3525 60 35 "" 0x00000002)
-Via(950 2450 40 20 "" 0x00000002)
-Via(1150 2450 40 20 "" 0x00000002)
-Via(5825 2850 40 20 "" 0x00000002)
-Via(1100 3675 40 20 "" 0x00000002)
-Via(1825 3850 40 20 "" 0x00000002)
-Via(2525 3850 40 20 "" 0x00000002)
-Via(2125 3525 60 35 "" 0x00000002)
-Via(2325 3525 60 35 "" 0x00000002)
-Via(1925 3600 40 20 "" 0x00000002)
-Via(4175 1075 40 20 "" 0x00000002)
-Via(4475 1075 40 20 "" 0x00000002)
-Via(4725 1075 40 20 "" 0x00000002)
-Via(4675 150 40 20 "" 0x00000002)
-Via(2550 1200 40 20 "" 0x00000002)
-Via(2650 1200 40 20 "" 0x00000002)
-Via(2650 1300 40 20 "" 0x00000002)
-Via(2500 1300 40 20 "" 0x00000002)
-Via(2600 1050 40 20 "" 0x00000002)
-Via(2450 1050 40 20 "" 0x00000002)
-Via(2850 1200 40 20 "" 0x00000002)
-Via(3000 1200 40 20 "" 0x00000002)
-Via(2900 1250 40 20 "" 0x00000002)
-Via(3100 1250 40 20 "" 0x00000002)
-Via(2950 1375 40 20 "" 0x00000002)
-Via(3225 1375 40 20 "" 0x00000002)
-Via(1450 1375 40 20 "" 0x00000002)
-Via(1550 1250 40 20 "" 0x00000002)
-Via(1600 1000 40 20 "" 0x00000002)
-Via(3000 1000 40 20 "" 0x00000002)
-Via(1700 1425 40 20 "" 0x00000002)
-Via(2800 1425 40 20 "" 0x00000002)
-Via(1800 1325 40 20 "" 0x00000002)
-Via(2750 1300 40 20 "" 0x00000002)
-Via(1900 1050 40 20 "" 0x00000002)
-Via(2700 1050 40 20 "" 0x00000002)
-Via(2000 2550 40 20 "" 0x00000002)
-Via(2700 2550 40 20 "" 0x00000002)
-Via(3225 2450 60 35 "" 0x00000002)
-Via(3500 2500 40 20 "" 0x00000002)
-Via(2025 2825 40 20 "" 0x00000002)
-Via(2200 2825 40 20 "" 0x00000002)
-Via(2575 2500 40 20 "" 0x00000002)
-Via(2100 2500 40 20 "" 0x00000002)
-Via(2575 1975 40 20 "" 0x00000002)
-Via(2200 2250 60 35 "" 0x00000002)
-Via(2400 2250 60 35 "" 0x00000002)
-Via(3000 2125 40 20 "" 0x00000002)
-Via(2150 2125 40 20 "" 0x00000002)
-Via(3100 2175 40 20 "" 0x00000002)
-Via(2250 2175 40 20 "" 0x00000002)
-Via(2250 1950 40 20 "" 0x00000002)
-Via(3150 1925 40 20 "" 0x00000002)
-Via(1500 1875 40 20 "" 0x00000002)
-Via(3250 1875 40 20 "" 0x00000002)
-Via(2350 1875 40 20 "" 0x00000002)
-Via(3600 2525 40 20 "" 0x00000002)
-Via(2925 2225 40 20 "" 0x00000002)
-Via(1700 2175 40 20 "" 0x00000002)
-Via(2100 2300 40 20 "" 0x00000002)
-Via(3900 2250 40 20 "" 0x00000002)
-Via(2575 2775 40 20 "" 0x00000002)
-Via(3850 2775 40 20 "" 0x00000002)
-Via(1550 2825 40 20 "" 0x00000002)
-Via(3400 2825 40 20 "" 0x00000002)
-Via(2300 1825 40 20 "" 0x00000002)
-Via(2450 1825 40 20 "" 0x00000002)
-Via(2275 900 40 20 "" 0x00000002)
-Via(2550 900 40 20 "" 0x00000002)
-Via(2500 1725 40 20 "" 0x00000002)
-Via(1900 1750 40 20 "" 0x00000002)
-Via(1800 1700 40 20 "" 0x00000002)
-Via(4300 1975 40 20 "" 0x00000002)
-Via(3325 2700 60 35 "" 0x00000002)
-Via(2900 2650 40 20 "" 0x00000002)
-Via(4800 2650 40 20 "" 0x00000002)
-Via(4700 2900 60 35 "" 0x00000002)
-Via(4625 2825 40 20 "" 0x00000002)
-Via(3000 1775 40 20 "" 0x00000002)
-Via(4850 1775 40 20 "" 0x00000002)
-Via(3050 850 40 20 "" 0x00000002)
-Via(2750 850 40 20 "" 0x00000002)
-Via(3300 800 40 20 "" 0x00000002)
-Via(2850 800 40 20 "" 0x00000002)
-Via(3500 2200 40 20 "" 0x00000002)
-Via(3650 2200 40 20 "" 0x00000002)
-Via(3550 3850 40 20 "" 0x00000002)
-Via(2975 3525 60 35 "" 0x00000002)
-Via(3750 3600 40 20 "" 0x00000002)
-Via(1075 1475 40 20 "" 0x00000002)
-Via(1220 1605 40 20 "" 0x00000002)
-Via(4500 1825 40 20 "" 0x00000002)
-Via(2625 3525 40 20 "" 0x00000002)
-Via(3275 3525 40 20 "" 0x00000002)
-Via(4000 2250 40 20 "" 0x00000002)
-Via(4050 2150 40 20 "" 0x00000002)
-Via(4100 2050 40 20 "" 0x00000002)
-Via(1050 2700 40 20 "" 0x00000002)
-Via(4150 2725 40 20 "" 0x00000002)
-Via(4025 2500 40 20 "" 0x00000002)
-Via(2225 3100 40 20 "" 0x00000002)
-Via(4025 3100 40 20 "" 0x00000002)
-Via(5200 2600 40 20 "" 0x00000002)
-Via(5200 3375 40 20 "" 0x00000002)
-Via(2100 3225 40 20 "" 0x00000002)
-Via(5700 3225 40 20 "" 0x00000002)
-Via(5700 2450 40 20 "" 0x00000002)
-Via(5300 3275 40 20 "" 0x00000002)
-Via(2825 3300 40 20 "" 0x00000002)
-Via(3275 3050 40 20 "" 0x00000002)
-Via(495 3300 40 20 "" 0x00000002)
-Via(1300 2550 60 35 "" 0x00000002)
-Via(765 2570 40 20 "" 0x00000002)
-Via(905 3055 40 20 "" 0x00000002)
-Via(5925 3600 60 35 "" 0x00000002)
-Via(4050 3425 60 35 "" 0x00000002)
-
-Element(0x00000000 "eurocard1" "" "EUROCARD1" 6810 50 3 100 0x00000000)
-(
- Pin(575 275 120 80 "M1" "1" 0x00000001)
- Pin(575 3762 120 80 "M2" "2" 0x00000001)
- Pin(6625 275 120 80 "M3" "3" 0x00000001)
- Pin(6625 3762 120 80 "M4" "4" 0x00000001)
- ElementLine (450 50 450 3987 20)
- ElementLine (450 3987 6750 3987 20)
- ElementLine (6750 3987 6750 50 20)
- ElementLine (6750 50 450 50 20)
- Mark (450 50)
-)
-
-Element(0x00000000 "R 0.25W" "R11" "330" 1035 3075 2 100 0x00000000)
-(
- Pin(1155 3055 60 35 "1" "1" 0x00000101)
- Pin(755 3055 60 35 "2" "2" 0x00000001)
- ElementLine (855 3055 755 3055 20)
- ElementLine (1155 3055 1055 3055 20)
- ElementLine (1055 3005 1055 3105 20)
- ElementLine (855 3005 1055 3005 20)
- ElementLine (855 3105 855 3005 20)
- ElementLine (1055 3105 855 3105 20)
- Mark (1155 3055)
-)
-
-Element(0x00000000 "generic" "U9" "LT1162" 1775 3555 0 100 0x00000000)
-(
- Pin(1725 3725 60 35 "1" "1" 0x00000101)
- Pin(1825 3725 60 35 "2" "2" 0x00000001)
- Pin(1925 3725 60 35 "3" "3" 0x00000001)
- Pin(2025 3725 60 35 "4" "4" 0x00000001)
- Pin(2125 3725 60 35 "5" "5" 0x00000001)
- Pin(2225 3725 60 35 "6" "6" 0x00000001)
- Pin(2325 3725 60 35 "7" "7" 0x00000001)
- Pin(2425 3725 60 35 "8" "8" 0x00000001)
- Pin(2525 3725 60 35 "9" "9" 0x00000001)
- Pin(2625 3725 60 35 "10" "10" 0x00000001)
- Pin(2725 3725 60 35 "11" "11" 0x00000001)
- Pin(2825 3725 60 35 "12" "12" 0x00000001)
- Pin(2825 3425 60 35 "13" "13" 0x00000001)
- Pin(2725 3425 60 35 "14" "14" 0x00000001)
- Pin(2625 3425 60 35 "15" "15" 0x00000001)
- Pin(2525 3425 60 35 "16" "16" 0x00000001)
- Pin(2425 3425 60 35 "17" "17" 0x00000001)
- Pin(2325 3425 60 35 "18" "18" 0x00000001)
- Pin(2225 3425 60 35 "19" "19" 0x00000001)
- Pin(2125 3425 60 35 "20" "20" 0x00000001)
- Pin(2025 3425 60 35 "21" "21" 0x00000001)
- Pin(1925 3425 60 35 "22" "22" 0x00000001)
- Pin(1825 3425 60 35 "23" "23" 0x00000001)
- Pin(1725 3425 60 35 "24" "24" 0x00000001)
- ElementLine (1675 3525 1675 3375 10)
- ElementLine (1675 3775 1675 3625 10)
- ElementLine (2875 3375 1675 3375 10)
- ElementLine (2875 3775 2875 3375 10)
- ElementLine (1675 3775 2875 3775 10)
- ElementArc (1675 3575 50 50 90 180 10)
- Mark (1725 3725)
-)
-
-Element(0x00000000 "capacitor_radial" "C3" "10uFx25V" 1225 3825 2 100 0x00000000)
-(
- Pin(1375 3725 60 35 "1" "1" 0x00000101)
- Pin(1275 3725 60 35 "2" "2" 0x00000001)
- ElementArc (1325 3725 100 100 180 360 10)
- Mark (1375 3725)
-)
-
-Element(0x00000000 "vertical, 95 mils center pole" "U1" "TINIm#90-RevD" 5800 1760 2 100 0x00000000)
-(
- Pin(5400 1625 60 35 "1" "1" 0x00000101)
- Pin(5350 1525 60 35 "2" "2" 0x00000001)
- Pin(5300 1625 60 35 "3" "3" 0x00000001)
- Pin(5250 1525 60 35 "4" "4" 0x00000001)
- Pin(5200 1625 60 35 "5" "5" 0x00000001)
- Pin(5150 1525 60 35 "6" "6" 0x00000001)
- Pin(5100 1625 60 35 "7" "7" 0x00000001)
- Pin(5050 1525 60 35 "8" "8" 0x00000001)
- Pin(5000 1625 60 35 "9" "9" 0x00000001)
- Pin(4950 1525 60 35 "10" "10" 0x00000001)
- Pin(4900 1625 60 35 "11" "11" 0x00000001)
- Pin(4850 1525 60 35 "12" "12" 0x00000001)
- Pin(4800 1625 60 35 "13" "13" 0x00000001)
- Pin(4750 1525 60 35 "14" "14" 0x00000001)
- Pin(4700 1625 60 35 "15" "15" 0x00000001)
- Pin(4650 1525 60 35 "16" "16" 0x00000001)
- Pin(4600 1625 60 35 "17" "17" 0x00000001)
- Pin(4550 1525 60 35 "18" "18" 0x00000001)
- Pin(4500 1625 60 35 "19" "19" 0x00000001)
- Pin(4450 1525 60 35 "20" "20" 0x00000001)
- Pin(4400 1625 60 35 "21" "21" 0x00000001)
- Pin(4350 1525 60 35 "22" "22" 0x00000001)
- Pin(4300 1625 60 35 "23" "23" 0x00000001)
- Pin(4250 1525 60 35 "24" "24" 0x00000001)
- Pin(4200 1625 60 35 "25" "25" 0x00000001)
- Pin(4150 1525 60 35 "26" "26" 0x00000001)
- Pin(4100 1625 60 35 "27" "27" 0x00000001)
- Pin(4050 1525 60 35 "28" "28" 0x00000001)
- Pin(4000 1625 60 35 "29" "29" 0x00000001)
- Pin(3950 1525 60 35 "30" "30" 0x00000001)
- Pin(3900 1625 60 35 "31" "31" 0x00000001)
- Pin(3850 1525 60 35 "32" "32" 0x00000001)
- Pin(3800 1625 60 35 "33" "33" 0x00000001)
- Pin(3750 1525 60 35 "34" "34" 0x00000001)
- Pin(3700 1625 60 35 "35" "35" 0x00000001)
- Pin(3650 1525 60 35 "36" "36" 0x00000001)
- Pin(3400 1625 60 35 "37" "37" 0x00000001)
- Pin(3350 1525 60 35 "38" "38" 0x00000001)
- Pin(3300 1625 60 35 "39" "39" 0x00000001)
- Pin(3250 1525 60 35 "40" "40" 0x00000001)
- Pin(3200 1625 60 35 "41" "41" 0x00000001)
- Pin(3150 1525 60 35 "42" "42" 0x00000001)
- Pin(3100 1625 60 35 "43" "43" 0x00000001)
- Pin(3050 1525 60 35 "44" "44" 0x00000001)
- Pin(3000 1625 60 35 "45" "45" 0x00000001)
- Pin(2950 1525 60 35 "46" "46" 0x00000001)
- Pin(2900 1625 60 35 "47" "47" 0x00000001)
- Pin(2850 1525 60 35 "48" "48" 0x00000001)
- Pin(2800 1625 60 35 "49" "49" 0x00000001)
- Pin(2750 1525 60 35 "50" "50" 0x00000001)
- Pin(2700 1625 60 35 "51" "51" 0x00000001)
- Pin(2650 1525 60 35 "52" "52" 0x00000001)
- Pin(2600 1625 60 35 "53" "53" 0x00000001)
- Pin(2550 1525 60 35 "54" "54" 0x00000001)
- Pin(2500 1625 60 35 "55" "55" 0x00000001)
- Pin(2450 1525 60 35 "56" "56" 0x00000001)
- Pin(2400 1625 60 35 "57" "57" 0x00000001)
- Pin(2350 1525 60 35 "58" "58" 0x00000001)
- Pin(2300 1625 60 35 "59" "59" 0x00000001)
- Pin(2250 1525 60 35 "60" "60" 0x00000001)
- Pin(2200 1625 60 35 "61" "61" 0x00000001)
- Pin(2150 1525 60 35 "62" "62" 0x00000001)
- Pin(2100 1625 60 35 "63" "63" 0x00000001)
- Pin(2050 1525 60 35 "64" "64" 0x00000001)
- Pin(2000 1625 60 35 "65" "65" 0x00000001)
- Pin(1950 1525 60 35 "66" "66" 0x00000001)
- Pin(1900 1625 60 35 "67" "67" 0x00000001)
- Pin(1850 1525 60 35 "68" "68" 0x00000001)
- Pin(1800 1625 60 35 "69" "69" 0x00000001)
- Pin(1750 1525 60 35 "70" "70" 0x00000001)
- Pin(1700 1625 60 35 "71" "71" 0x00000001)
- Pin(1650 1525 60 35 "72" "72" 0x00000001)
- Pin(5730 1575 80 60 "C1" "73" 0x00000001)
- Pin(3525 1575 120 100 "0" "74" 0x00000001)
- Pin(1325 1575 120 100 "C1" "75" 0x00000001)
- ElementLine (5800 1700 5800 1410 20)
- ElementLine (1250 1700 5800 1700 20)
- ElementLine (1250 1410 1250 1700 20)
- ElementLine (5800 1410 1250 1410 20)
- Mark (5400 1625)
-)
-
-Element(0x00000000 "capacitor_radial" "C5" "1uFx25V" 1225 3525 2 100 0x00000000)
-(
- Pin(1375 3425 60 35 "1" "1" 0x00000101)
- Pin(1275 3425 60 35 "2" "2" 0x00000001)
- ElementArc (1325 3425 100 100 180 360 10)
- Mark (1375 3425)
-)
-
-Element(0x00000000 "capacitor_radial" "C6" "1uFx25V" 3325 3325 0 100 0x00000000)
-(
- Pin(3175 3425 60 35 "1" "1" 0x00000101)
- Pin(3275 3425 60 35 "2" "2" 0x00000001)
- ElementArc (3225 3425 100 100 0 360 10)
- Mark (3175 3425)
-)
-
-Element(0x00000000 "generic" "U10" "MAX4429" 3650 2730 0 100 0x00000000)
-(
- Pin(3600 2900 60 35 "1" "1" 0x00000101)
- Pin(3700 2900 60 35 "2" "2" 0x00000001)
- Pin(3800 2900 60 35 "3" "3" 0x00000001)
- Pin(3900 2900 60 35 "4" "4" 0x00000001)
- Pin(3900 2600 60 35 "5" "5" 0x00000001)
- Pin(3800 2600 60 35 "6" "6" 0x00000001)
- Pin(3700 2600 60 35 "7" "7" 0x00000001)
- Pin(3600 2600 60 35 "8" "8" 0x00000001)
- ElementLine (3550 2700 3550 2550 10)
- ElementLine (3550 2950 3550 2800 10)
- ElementLine (3950 2550 3550 2550 10)
- ElementLine (3950 2950 3950 2550 10)
- ElementLine (3550 2950 3950 2950 10)
- ElementArc (3550 2750 50 50 90 180 10)
- Mark (3600 2900)
-)
-
-Element(0x00000000 "shielded" "J2" "RJ 45" 1050 1128 2 100 0x00000000)
-(
- Pin(875 575 60 35 "1" "1" 0x00000101)
- Pin(975 625 60 35 "2" "2" 0x00000001)
- Pin(875 675 60 35 "3" "3" 0x00000001)
- Pin(975 725 60 35 "4" "4" 0x00000001)
- Pin(875 775 60 35 "5" "5" 0x00000001)
- Pin(975 825 60 35 "6" "6" 0x00000001)
- Pin(875 875 60 35 "7" "7" 0x00000001)
- Pin(975 925 60 35 "8" "8" 0x00000001)
- Pin(625 525 148 128 "C1" "9" 0x00000001)
- Pin(625 976 148 128 "C1" "10" 0x00000001)
- Pin(745 445 80 60 "C1" "11" 0x00000001)
- Pin(745 1056 80 60 "C1" "12" 0x00000001)
- ElementLine (1050 433 200 433 20)
- ElementLine (200 433 200 1068 20)
- ElementLine (200 1068 1050 1068 20)
- ElementLine (1050 1068 1050 433 20)
- Mark (875 575)
-)
-
-Element(0x00000000 "capacitor_radial" "C10" "4.7uFx16V" 3375 2800 0 100 0x00000000)
-(
- Pin(3225 2900 60 35 "1" "1" 0x00000101)
- Pin(3325 2900 60 35 "2" "2" 0x00000001)
- ElementArc (3275 2900 100 100 0 360 10)
- Mark (3225 2900)
-)
-
-Element(0x00000000 "optical coupling device" "U4" "6N137" 5825 405 0 100 0x00000000)
-(
- Pin(5775 575 60 35 "NC" "1" 0x00000101)
- Pin(5875 575 60 35 "A+" "2" 0x00000001)
- Pin(5975 575 60 35 "K-" "3" 0x00000001)
- Pin(6075 575 60 35 "NC" "4" 0x00000001)
- Pin(6075 275 60 35 "Gnd" "5" 0x00000001)
- Pin(5975 275 60 35 "Out" "6" 0x00000001)
- Pin(5875 275 60 35 "En" "7" 0x00000001)
- Pin(5775 275 60 35 "Vcc" "8" 0x00000001)
- ElementLine (5725 375 5725 225 10)
- ElementLine (5725 625 5725 475 10)
- ElementLine (6125 225 5725 225 10)
- ElementLine (6125 625 6125 225 10)
- ElementLine (5725 625 6125 625 10)
- ElementArc (5725 425 50 50 90 180 10)
- Mark (5775 575)
-)
-
-Element(0x00000000 "IRLZ24N" "Q5" "IRLZ24N" 5725 1910 0 100 0x00000000)
-(
- Pin(5825 2100 80 42 "G" "1" 0x00000101)
- Pin(5925 2100 80 42 "D" "2" 0x00000001)
- Pin(6025 2100 80 42 "S" "3" 0x00000001)
- ElementLine (5725 1980 6125 1980 20)
- ElementLine (6125 1980 6125 2160 20)
- ElementLine (6125 2160 5725 2160 20)
- ElementLine (5725 2160 5725 1980 20)
- ElementLine (5725 1980 6125 1980 20)
- ElementLine (6125 1980 6125 2040 20)
- ElementLine (6125 2040 5725 2040 20)
- ElementLine (5725 2040 5725 1980 20)
- ElementLine (5855 1980 5855 2040 10)
- ElementLine (5995 1980 5995 2040 10)
- Mark (5825 2100)
-)
-
-Element(0x00000000 "optical coupling device" "U5" "6N137" 5825 1005 0 100 0x00000000)
-(
- Pin(5775 1175 60 35 "NC" "1" 0x00000101)
- Pin(5875 1175 60 35 "A+" "2" 0x00000001)
- Pin(5975 1175 60 35 "K-" "3" 0x00000001)
- Pin(6075 1175 60 35 "NC" "4" 0x00000001)
- Pin(6075 875 60 35 "Gnd" "5" 0x00000001)
- Pin(5975 875 60 35 "Out" "6" 0x00000001)
- Pin(5875 875 60 35 "En" "7" 0x00000001)
- Pin(5775 875 60 35 "Vcc" "8" 0x00000001)
- ElementLine (5725 975 5725 825 10)
- ElementLine (5725 1225 5725 1075 10)
- ElementLine (6125 825 5725 825 10)
- ElementLine (6125 1225 6125 825 10)
- ElementLine (5725 1225 6125 1225 10)
- ElementArc (5725 1025 50 50 90 180 10)
- Mark (5775 1175)
-)
-
-Element(0x00000000 "diode" "D7" "1N4007" 5845 1825 0 100 0x00000000)
-(
- Pin(5625 1875 60 35 "1" "1" 0x00000101)
- Pin(5925 1875 60 35 "2" "2" 0x00000001)
- ElementLine (5625 1875 5725 1875 10)
- ElementLine (5825 1875 5925 1875 10)
- ElementLine (5725 1875 5825 1825 10)
- ElementLine (5825 1825 5825 1925 10)
- ElementLine (5825 1925 5725 1875 10)
- ElementLine (5725 1825 5725 1925 10)
- Mark (5625 1875)
-)
-
-Element(0x00000000 "IRF1010N" "Q3" "IRF1010N" 5725 2735 0 100 0x00000000)
-(
- Pin(5825 2925 80 42 "G" "1" 0x00000101)
- Pin(5925 2925 80 42 "D" "2" 0x00000001)
- Pin(6025 2925 80 42 "S" "3" 0x00000001)
- ElementLine (5725 2805 6125 2805 20)
- ElementLine (6125 2805 6125 2985 20)
- ElementLine (6125 2985 5725 2985 20)
- ElementLine (5725 2985 5725 2805 20)
- ElementLine (5725 2805 6125 2805 20)
- ElementLine (6125 2805 6125 2865 20)
- ElementLine (6125 2865 5725 2865 20)
- ElementLine (5725 2865 5725 2805 20)
- ElementLine (5855 2805 5855 2865 10)
- ElementLine (5995 2805 5995 2865 10)
- Mark (5825 2925)
-)
-
-Element(0x00000000 "Push-button, tactile, right angle, 466mils actuator" "S1" "MJTP1236_D" 648 2784 0 100 0x00000000)
-(
- Pin(550 2695 70 42 "1" "1" 0x00000101)
- Pin(550 2872 70 42 "2" "2" 0x00000001)
- Pin(648 2646 70 52 "C1" "C1" 0x00000001)
- Pin(648 2922 70 52 "C2" "C2" 0x00000001)
- ElementLine (84 2843 450 2853 20)
- ElementLine (84 2725 84 2843 20)
- ElementLine (450 2715 84 2725 20)
- ElementLine (588 2922 588 2646 20)
- ElementLine (450 2922 708 2922 20)
- ElementLine (450 2646 450 2922 20)
- ElementLine (708 2646 450 2646 20)
- Mark (550 2695)
-)
-
-Element(0x00000000 "E22 standing" "" "E22" 4050 3525 2 100 0x00000000)
-(
- ElementLine (4575 3850 3525 3850 20)
- ElementLine (4575 3850 4575 3200 20)
- ElementLine (4575 3200 4525 3200 20)
- ElementLine (4525 3200 4525 3750 20)
- ElementLine (4525 3750 4325 3750 20)
- ElementLine (4325 3750 4325 3200 20)
- ElementLine (4325 3200 4275 3200 20)
- ElementLine (4275 3200 4275 3750 20)
- ElementLine (4275 3750 3825 3750 20)
- ElementLine (3525 3850 3525 3200 20)
- ElementLine (3525 3200 3575 3200 20)
- ElementLine (3575 3200 3575 3750 20)
- ElementLine (3575 3750 3775 3750 20)
- ElementLine (3775 3750 3775 3200 20)
- ElementLine (3775 3200 3825 3200 20)
- ElementLine (3825 3200 3825 3750 20)
- Mark (4575 3850)
-)
-
-Element(0x00000000 "capacitor_radial" "C2" "100uFx16V" 4975 3150 0 100 0x00000000)
-(
- Pin(4750 3300 60 35 "1" "1" 0x00000101)
- Pin(4900 3300 60 35 "2" "2" 0x00000001)
- ElementArc (4825 3300 150 150 0 360 10)
- Mark (4750 3300)
-)
-
-Element(0x00000000 "R 0.25W" "R10" "1k5" 2980 2855 1 100 0x00000000)
-(
- Pin(3000 2975 60 35 "1" "1" 0x00000101)
- Pin(3000 2575 60 35 "2" "2" 0x00000001)
- ElementLine (2950 2875 2950 2675 20)
- ElementLine (2950 2675 3050 2675 20)
- ElementLine (3050 2675 3050 2875 20)
- ElementLine (3050 2875 2950 2875 20)
- ElementLine (3000 2975 3000 2875 20)
- ElementLine (3000 2675 3000 2575 20)
- Mark (3000 2975)
-)
-
-Element(0x00000000 "R 0.25W" "R3" "2k2" 4455 505 1 100 0x00000000)
-(
- Pin(4475 625 60 35 "1" "1" 0x00000101)
- Pin(4475 225 60 35 "2" "2" 0x00000001)
- ElementLine (4425 525 4425 325 20)
- ElementLine (4425 325 4525 325 20)
- ElementLine (4525 325 4525 525 20)
- ElementLine (4525 525 4425 525 20)
- ElementLine (4475 625 4475 525 20)
- ElementLine (4475 325 4475 225 20)
- Mark (4475 625)
-)
-
-Element(0x00000000 "capacitor_radial" "C9" "220nF" 3175 2700 2 100 0x00000000)
-(
- Pin(3325 2600 60 35 "1" "1" 0x00000101)
- Pin(3225 2600 60 35 "2" "2" 0x00000001)
- ElementArc (3275 2600 100 100 180 360 10)
- Mark (3325 2600)
-)
-
-Element(0x00000000 "DIN 41612C-96 male" "J15" "DIN41612C96_male" 6625 3455 1 200 0x00000000)
-(
- Pin(6525 475 60 35 "a1" "A1" 0x00000101)
- Pin(6525 575 60 35 "a2" "A2" 0x00000001)
- Pin(6525 675 60 35 "a3" "A3" 0x00000001)
- Pin(6525 775 60 35 "a4" "A4" 0x00000001)
- Pin(6525 875 60 35 "a5" "A5" 0x00000001)
- Pin(6525 975 60 35 "a6" "A6" 0x00000001)
- Pin(6525 1075 60 35 "a7" "A7" 0x00000001)
- Pin(6525 1175 60 35 "a8" "A8" 0x00000001)
- Pin(6525 1275 60 35 "a9" "A9" 0x00000001)
- Pin(6525 1375 60 35 "a10" "A10" 0x00000001)
- Pin(6525 1475 60 35 "a11" "A11" 0x00000001)
- Pin(6525 1575 60 35 "a12" "A12" 0x00000001)
- Pin(6525 1675 60 35 "a13" "A13" 0x00000001)
- Pin(6525 1775 60 35 "a14" "A14" 0x00000001)
- Pin(6525 1875 60 35 "a15" "A15" 0x00000001)
- Pin(6525 1975 60 35 "a16" "A16" 0x00000001)
- Pin(6525 2075 60 35 "a17" "A17" 0x00000001)
- Pin(6525 2175 60 35 "a18" "A18" 0x00000001)
- Pin(6525 2275 60 35 "a19" "A19" 0x00000001)
- Pin(6525 2375 60 35 "a20" "A20" 0x00000001)
- Pin(6525 2475 60 35 "a21" "A21" 0x00000001)
- Pin(6525 2575 60 35 "a22" "A22" 0x00000001)
- Pin(6525 2675 60 35 "a23" "A23" 0x00000001)
- Pin(6525 2775 60 35 "a24" "A24" 0x00000001)
- Pin(6525 2875 60 35 "a25" "A25" 0x00000001)
- Pin(6525 2975 60 35 "a26" "A26" 0x00000001)
- Pin(6525 3075 60 35 "a27" "A27" 0x00000001)
- Pin(6525 3175 60 35 "a28" "A28" 0x00000001)
- Pin(6525 3275 60 35 "a29" "A29" 0x00000001)
- Pin(6525 3375 60 35 "a30" "A30" 0x00000001)
- Pin(6525 3475 60 35 "a31" "A31" 0x00000001)
- Pin(6525 3575 60 35 "a32" "A32" 0x00000001)
- Pin(6425 475 60 35 "b1" "B1" 0x00000001)
- Pin(6425 575 60 35 "b2" "B2" 0x00000001)
- Pin(6425 675 60 35 "b3" "B3" 0x00000001)
- Pin(6425 775 60 35 "b4" "B4" 0x00000001)
- Pin(6425 875 60 35 "b5" "B5" 0x00000001)
- Pin(6425 975 60 35 "b6" "B6" 0x00000001)
- Pin(6425 1075 60 35 "b7" "B7" 0x00000001)
- Pin(6425 1175 60 35 "b8" "B8" 0x00000001)
- Pin(6425 1275 60 35 "b9" "B9" 0x00000001)
- Pin(6425 1375 60 35 "b10" "B10" 0x00000001)
- Pin(6425 1475 60 35 "b11" "B11" 0x00000001)
- Pin(6425 1575 60 35 "b12" "B12" 0x00000001)
- Pin(6425 1675 60 35 "b13" "B13" 0x00000001)
- Pin(6425 1775 60 35 "b14" "B14" 0x00000001)
- Pin(6425 1875 60 35 "b15" "B15" 0x00000001)
- Pin(6425 1975 60 35 "b16" "B16" 0x00000001)
- Pin(6425 2075 60 35 "b17" "B17" 0x00000001)
- Pin(6425 2175 60 35 "b18" "B18" 0x00000001)
- Pin(6425 2275 60 35 "b19" "B19" 0x00000001)
- Pin(6425 2375 60 35 "b20" "B20" 0x00000001)
- Pin(6425 2475 60 35 "b21" "B21" 0x00000001)
- Pin(6425 2575 60 35 "b22" "B22" 0x00000001)
- Pin(6425 2675 60 35 "b23" "B23" 0x00000001)
- Pin(6425 2775 60 35 "b24" "B24" 0x00000001)
- Pin(6425 2875 60 35 "b25" "B25" 0x00000001)
- Pin(6425 2975 60 35 "b26" "B26" 0x00000001)
- Pin(6425 3075 60 35 "b27" "B27" 0x00000001)
- Pin(6425 3175 60 35 "b28" "B28" 0x00000001)
- Pin(6425 3275 60 35 "b29" "B29" 0x00000001)
- Pin(6425 3375 60 35 "b30" "B30" 0x00000001)
- Pin(6425 3475 60 35 "b31" "B31" 0x00000001)
- Pin(6425 3575 60 35 "b32" "B32" 0x00000001)
- Pin(6325 475 60 35 "c1" "C1" 0x00000001)
- Pin(6325 575 60 35 "c2" "C2" 0x00000001)
- Pin(6325 675 60 35 "c3" "C3" 0x00000001)
- Pin(6325 775 60 35 "c4" "C4" 0x00000001)
- Pin(6325 875 60 35 "c5" "C5" 0x00000001)
- Pin(6325 975 60 35 "c6" "C6" 0x00000001)
- Pin(6325 1075 60 35 "c7" "C7" 0x00000001)
- Pin(6325 1175 60 35 "c8" "C8" 0x00000001)
- Pin(6325 1275 60 35 "c9" "C9" 0x00000001)
- Pin(6325 1375 60 35 "c10" "C10" 0x00000001)
- Pin(6325 1475 60 35 "c11" "C11" 0x00000001)
- Pin(6325 1575 60 35 "c12" "C12" 0x00000001)
- Pin(6325 1675 60 35 "c13" "C13" 0x00000001)
- Pin(6325 1775 60 35 "c14" "C14" 0x00000001)
- Pin(6325 1875 60 35 "c15" "C15" 0x00000001)
- Pin(6325 1975 60 35 "c16" "C16" 0x00000001)
- Pin(6325 2075 60 35 "c17" "C17" 0x00000001)
- Pin(6325 2175 60 35 "c18" "C18" 0x00000001)
- Pin(6325 2275 60 35 "c19" "C19" 0x00000001)
- Pin(6325 2375 60 35 "c20" "C20" 0x00000001)
- Pin(6325 2475 60 35 "c21" "C21" 0x00000001)
- Pin(6325 2575 60 35 "c22" "C22" 0x00000001)
- Pin(6325 2675 60 35 "c23" "C23" 0x00000001)
- Pin(6325 2775 60 35 "c24" "C24" 0x00000001)
- Pin(6325 2875 60 35 "c25" "C25" 0x00000001)
- Pin(6325 2975 60 35 "c26" "C26" 0x00000001)
- Pin(6325 3075 60 35 "c27" "C27" 0x00000001)
- Pin(6325 3175 60 35 "c28" "C28" 0x00000001)
- Pin(6325 3275 60 35 "c29" "C29" 0x00000001)
- Pin(6325 3375 60 35 "c30" "C30" 0x00000001)
- Pin(6325 3475 60 35 "c31" "C31" 0x00000001)
- Pin(6325 3575 60 35 "c32" "C32" 0x00000001)
- Pin(6625 3775 120 80 "M1" "M1" 0x00000001)
- Pin(6625 275 120 80 "M2" "M2" 0x00000001)
- ElementLine (7025 275 6845 275 20)
- ElementLine (7025 3775 7025 275 20)
- ElementLine (6845 3775 7025 3775 20)
- ElementLine (6620 3655 6620 395 20)
- ElementLine (6620 395 6525 395 20)
- ElementLine (6845 395 6620 395 10)
- ElementLine (6845 275 6845 395 10)
- ElementLine (6845 175 6845 275 20)
- ElementLine (6525 175 6845 175 20)
- ElementLine (6525 395 6525 175 20)
- ElementLine (6845 3875 6525 3875 20)
- ElementLine (6845 3775 6845 3875 20)
- ElementLine (6845 3655 6845 3775 10)
- ElementLine (6620 3655 6845 3655 10)
- ElementLine (6525 3655 6620 3655 20)
- ElementLine (6525 3875 6525 3655 20)
- ElementLine (6325 475 6600 475 40)
- ElementLine (6325 575 6600 575 40)
- ElementLine (6325 675 6600 675 40)
- ElementLine (6325 775 6600 775 40)
- ElementLine (6325 875 6600 875 40)
- ElementLine (6325 975 6600 975 40)
- ElementLine (6325 1075 6600 1075 40)
- ElementLine (6325 1175 6600 1175 40)
- ElementLine (6325 1275 6600 1275 40)
- ElementLine (6325 1375 6600 1375 40)
- ElementLine (6325 1475 6600 1475 40)
- ElementLine (6325 1575 6600 1575 40)
- ElementLine (6325 1675 6600 1675 40)
- ElementLine (6325 1775 6600 1775 40)
- ElementLine (6325 1875 6600 1875 40)
- ElementLine (6325 1975 6600 1975 40)
- ElementLine (6325 2075 6600 2075 40)
- ElementLine (6325 2175 6600 2175 40)
- ElementLine (6325 2275 6600 2275 40)
- ElementLine (6325 2375 6600 2375 40)
- ElementLine (6325 2475 6600 2475 40)
- ElementLine (6325 2575 6600 2575 40)
- ElementLine (6325 2675 6600 2675 40)
- ElementLine (6325 2775 6600 2775 40)
- ElementLine (6325 2875 6600 2875 40)
- ElementLine (6325 2975 6600 2975 40)
- ElementLine (6325 3075 6600 3075 40)
- ElementLine (6325 3175 6600 3175 40)
- ElementLine (6325 3275 6600 3275 40)
- ElementLine (6325 3375 6600 3375 40)
- ElementLine (6325 3475 6600 3475 40)
- ElementLine (6325 3575 6600 3575 40)
- Mark (6525 475)
-)
-
-Element(0x00000000 "IRF1010N" "Q4" "IRF1010N" 5200 2735 0 100 0x00000000)
-(
- Pin(5300 2925 80 42 "G" "1" 0x00000101)
- Pin(5400 2925 80 42 "D" "2" 0x00000001)
- Pin(5500 2925 80 42 "S" "3" 0x00000001)
- ElementLine (5200 2805 5600 2805 20)
- ElementLine (5600 2805 5600 2985 20)
- ElementLine (5600 2985 5200 2985 20)
- ElementLine (5200 2985 5200 2805 20)
- ElementLine (5200 2805 5600 2805 20)
- ElementLine (5600 2805 5600 2865 20)
- ElementLine (5600 2865 5200 2865 20)
- ElementLine (5200 2865 5200 2805 20)
- ElementLine (5330 2805 5330 2865 10)
- ElementLine (5470 2805 5470 2865 10)
- Mark (5300 2925)
-)
-
-Element(0x00000000 "capacitor_radial" "C1" "100uFx25V" 4675 3850 2 100 0x00000000)
-(
- Pin(4900 3700 60 35 "1" "1" 0x00000101)
- Pin(4750 3700 60 35 "2" "2" 0x00000001)
- ElementArc (4825 3700 150 150 180 360 10)
- Mark (4900 3700)
-)
-
-Element(0x00000000 "R 0.25W" "R12" "1k2" 1040 2820 2 100 0x00000000)
-(
- Pin(1160 2800 60 35 "1" "1" 0x00000101)
- Pin(760 2800 60 35 "2" "2" 0x00000001)
- ElementLine (1060 2850 860 2850 20)
- ElementLine (860 2850 860 2750 20)
- ElementLine (860 2750 1060 2750 20)
- ElementLine (1060 2750 1060 2850 20)
- ElementLine (1160 2800 1060 2800 20)
- ElementLine (860 2800 760 2800 20)
- Mark (1160 2800)
-)
-
-Element(0x00000000 "E22 standing" "" "E22" 5600 3525 2 100 0x00000000)
-(
- ElementLine (6125 3850 5075 3850 20)
- ElementLine (6125 3850 6125 3200 20)
- ElementLine (6125 3200 6075 3200 20)
- ElementLine (6075 3200 6075 3750 20)
- ElementLine (6075 3750 5875 3750 20)
- ElementLine (5875 3750 5875 3200 20)
- ElementLine (5875 3200 5825 3200 20)
- ElementLine (5825 3200 5825 3750 20)
- ElementLine (5825 3750 5375 3750 20)
- ElementLine (5075 3850 5075 3200 20)
- ElementLine (5075 3200 5125 3200 20)
- ElementLine (5125 3200 5125 3750 20)
- ElementLine (5125 3750 5325 3750 20)
- ElementLine (5325 3750 5325 3200 20)
- ElementLine (5325 3200 5375 3200 20)
- ElementLine (5375 3200 5375 3750 20)
- Mark (6125 3850)
-)
-
-Element(0x00000000 "R 0.25W" "R9" "10k" 2820 2695 3 100 0x00000000)
-(
- Pin(2800 2575 60 35 "1" "1" 0x00000101)
- Pin(2800 2975 60 35 "2" "2" 0x00000001)
- ElementLine (2850 2675 2850 2875 20)
- ElementLine (2850 2875 2750 2875 20)
- ElementLine (2750 2875 2750 2675 20)
- ElementLine (2750 2675 2850 2675 20)
- ElementLine (2800 2575 2800 2675 20)
- ElementLine (2800 2875 2800 2975 20)
- Mark (2800 2575)
-)
-
-Element(0x00000000 "+12V 1.5A voltage regulator" "U3" "7812" 5800 3790 2 100 0x00000000)
-(
- Pin(5700 3600 80 42 "In" "1" 0x00000101)
- Pin(5600 3600 80 42 "Com" "2" 0x00000001)
- Pin(5500 3600 80 42 "Out" "3" 0x00000001)
- ElementLine (5530 3720 5530 3660 10)
- ElementLine (5670 3720 5670 3660 10)
- ElementLine (5800 3660 5800 3720 20)
- ElementLine (5400 3660 5800 3660 20)
- ElementLine (5400 3720 5400 3660 20)
- ElementLine (5800 3720 5400 3720 20)
- ElementLine (5800 3540 5800 3720 20)
- ElementLine (5400 3540 5800 3540 20)
- ElementLine (5400 3720 5400 3540 20)
- ElementLine (5800 3720 5400 3720 20)
- Mark (5700 3600)
-)
-
-Element(0x00000000 "capacitor_radial" "C8" "1000uFx35V" 4575 3025 2 100 0x00000000)
-(
- Pin(4950 2775 70 42 "1" "1" 0x00000101)
- Pin(4700 2775 70 42 "2" "2" 0x00000001)
- ElementArc (4825 2775 250 250 180 360 10)
- Mark (4950 2775)
-)
-
-Element(0x00000000 "generic" "U11" "10MHz" 1775 3030 0 100 0x00000000)
-(
- Pin(1725 3200 60 35 "1" "1" 0x00000101)
- Pin(1825 3200 60 35 "2" "2" 0x00000001)
- Pin(1925 3200 60 35 "3" "3" 0x00000001)
- Pin(2025 3200 60 35 "4" "4" 0x00000001)
- Pin(2025 2900 60 35 "5" "5" 0x00000001)
- Pin(1925 2900 60 35 "6" "6" 0x00000001)
- Pin(1825 2900 60 35 "7" "7" 0x00000001)
- Pin(1725 2900 60 35 "8" "8" 0x00000001)
- ElementLine (1675 3000 1675 2850 10)
- ElementLine (1675 3250 1675 3100 10)
- ElementLine (2075 2850 1675 2850 10)
- ElementLine (2075 3250 2075 2850 10)
- ElementLine (1675 3250 2075 3250 10)
- ElementArc (1675 3050 50 50 90 180 10)
- Mark (1725 3200)
-)
-
-Element(0x00000000 "connector 2x1 pins" "JP2" "XRESET" 1260 3250 3 100 0x00000000)
-(
- Pin(1050 3300 70 42 "1" "1" 0x00000101)
- Pin(1150 3300 70 42 "2" "2" 0x00000001)
- ElementLine (1100 3350 1100 3250 10)
- ElementLine (1000 3350 1100 3350 10)
- ElementLine (1200 3250 1000 3250 20)
- ElementLine (1200 3350 1200 3250 20)
- ElementLine (1000 3350 1200 3350 20)
- ElementLine (1000 3250 1000 3350 20)
- Mark (1050 3300)
-)
-
-Element(0x00000000 "R 0.25W" "R14" "2k7" 3530 505 1 100 0x00000000)
-(
- Pin(3550 625 60 35 "1" "1" 0x00000101)
- Pin(3550 225 60 35 "2" "2" 0x00000001)
- ElementLine (3500 525 3500 325 20)
- ElementLine (3500 325 3600 325 20)
- ElementLine (3600 325 3600 525 20)
- ElementLine (3600 525 3500 525 20)
- ElementLine (3550 625 3550 525 20)
- ElementLine (3550 325 3550 225 20)
- Mark (3550 625)
-)
-
-Element(0x00000000 "capacitor_radial" "C11" "2.2nF" 5500 2000 0 100 0x00000000)
-(
- Pin(5350 2100 60 35 "1" "1" 0x00000101)
- Pin(5450 2100 60 35 "2" "2" 0x00000001)
- ElementArc (5400 2100 100 100 0 360 10)
- Mark (5350 2100)
-)
-
-Element(0x00000000 "IRF1010N" "Q1" "IRF1010N" 5725 2260 0 100 0x00000000)
-(
- Pin(5825 2450 80 42 "G" "1" 0x00000101)
- Pin(5925 2450 80 42 "D" "2" 0x00000001)
- Pin(6025 2450 80 42 "S" "3" 0x00000001)
- ElementLine (5725 2330 6125 2330 20)
- ElementLine (6125 2330 6125 2510 20)
- ElementLine (6125 2510 5725 2510 20)
- ElementLine (5725 2510 5725 2330 20)
- ElementLine (5725 2330 6125 2330 20)
- ElementLine (6125 2330 6125 2390 20)
- ElementLine (6125 2390 5725 2390 20)
- ElementLine (5725 2390 5725 2330 20)
- ElementLine (5855 2330 5855 2390 10)
- ElementLine (5995 2330 5995 2390 10)
- Mark (5825 2450)
-)
-
-Element(0x00000000 "diode" "D3" "1N4007" 900 3520 3 100 0x00000000)
-(
- Pin(850 3300 60 35 "1" "1" 0x00000101)
- Pin(850 3600 60 35 "2" "2" 0x00000001)
- ElementLine (850 3300 850 3400 10)
- ElementLine (850 3500 850 3600 10)
- ElementLine (850 3400 900 3500 10)
- ElementLine (900 3500 800 3500 10)
- ElementLine (800 3500 850 3400 10)
- ElementLine (900 3400 800 3400 10)
- Mark (850 3300)
-)
-
-Element(0x00000000 "capacitor_radial" "C7" "1000uFx35V" 4575 2450 2 100 0x00000000)
-(
- Pin(4950 2200 70 42 "1" "1" 0x00000101)
- Pin(4700 2200 70 42 "2" "2" 0x00000001)
- ElementArc (4825 2200 250 250 180 360 10)
- Mark (4950 2200)
-)
-
-Element(0x00000000 "LED 5mm" "D9" "Red" 765 2315 0 100 0x00000000)
-(
- Pin(815 2395 60 35 "-" "1" 0x00000101)
- Pin(815 2495 60 35 "+" "2" 0x00000001)
- ElementArc (815 2445 70 70 0 360 10)
- ElementArc (815 2445 50 50 0 360 15)
- Mark (815 2395)
-)
-
-Element(0x00000000 "SUB-D female 9 pins" "J9" "DB9_female" 425 1440 3 100 0x00000000)
-(
- Pin(775 1240 120 100 "C1" "C1" 0x00000001)
- Pin(775 2180 120 100 "C1" "C1" 0x00000001)
- Pin(825 1510 70 42 "5" "5" 0x00000001)
- Pin(725 1560 70 42 "9" "9" 0x00000001)
- Pin(825 1610 70 42 "4" "4" 0x00000001)
- Pin(725 1660 70 42 "8" "8" 0x00000001)
- Pin(825 1710 70 42 "3" "3" 0x00000001)
- Pin(725 1760 70 42 "7" "7" 0x00000001)
- Pin(825 1810 70 42 "2" "2" 0x00000001)
- Pin(725 1860 70 42 "6" "6" 0x00000001)
- Pin(825 1910 70 42 "1" "1" 0x00000101)
- ElementLine (825 1910 545 1910 20)
- ElementLine (725 1860 545 1860 20)
- ElementLine (825 1810 545 1810 20)
- ElementLine (725 1760 545 1760 20)
- ElementLine (825 1710 545 1710 20)
- ElementLine (725 1660 545 1660 20)
- ElementLine (825 1610 545 1610 20)
- ElementLine (725 1560 545 1560 20)
- ElementLine (825 1510 545 1510 20)
- ElementLine (345 2070 345 1350 10)
- ElementLine (545 2070 345 2070 20)
- ElementLine (545 1350 545 2070 20)
- ElementLine (345 1350 545 1350 20)
- ElementLine (45 2010 45 1410 20)
- ElementLine (315 2010 45 2010 20)
- ElementLine (315 1410 315 2010 10)
- ElementLine (45 1410 315 1410 20)
- ElementLine (315 2120 345 2120 10)
- ElementLine (315 2240 345 2240 10)
- ElementLine (315 1300 345 1300 10)
- ElementLine (315 1180 345 1180 10)
- ElementLine (315 2300 315 1120 10)
- ElementLine (345 2300 315 2300 10)
- ElementLine (345 1120 345 2300 10)
- ElementLine (315 1120 345 1120 10)
- Mark (825 1510)
-)
-
-Element(0x00000000 "generic PAL replacement" "U8" "GAL22V10" 2850 2180 0 100 0x00000000)
-(
- Pin(2800 2350 60 35 "CLK/I1" "1" 0x00000101)
- Pin(2900 2350 60 35 "I2" "2" 0x00000001)
- Pin(3000 2350 60 35 "I3" "3" 0x00000001)
- Pin(3100 2350 60 35 "I4" "4" 0x00000001)
- Pin(3200 2350 60 35 "I5" "5" 0x00000001)
- Pin(3300 2350 60 35 "I6" "6" 0x00000001)
- Pin(3400 2350 60 35 "I7" "7" 0x00000001)
- Pin(3500 2350 60 35 "I8" "8" 0x00000001)
- Pin(3600 2350 60 35 "I9" "9" 0x00000001)
- Pin(3700 2350 60 35 "I10" "10" 0x00000001)
- Pin(3800 2350 60 35 "I11" "11" 0x00000001)
- Pin(3900 2350 60 35 "Gnd" "12" 0x00000001)
- Pin(3900 2050 60 35 "I12" "13" 0x00000001)
- Pin(3800 2050 60 35 "I/O/Qj" "14" 0x00000001)
- Pin(3700 2050 60 35 "I/O/Qi" "15" 0x00000001)
- Pin(3600 2050 60 35 "I/O/Qh" "16" 0x00000001)
- Pin(3500 2050 60 35 "I/O/Qg" "17" 0x00000001)
- Pin(3400 2050 60 35 "I/O/Qf" "18" 0x00000001)
- Pin(3300 2050 60 35 "I/O/Qe" "19" 0x00000001)
- Pin(3200 2050 60 35 "I/O/Qd" "20" 0x00000001)
- Pin(3100 2050 60 35 "I/O/Qc" "21" 0x00000001)
- Pin(3000 2050 60 35 "I/O/Qb" "22" 0x00000001)
- Pin(2900 2050 60 35 "I/O/Qa" "23" 0x00000001)
- Pin(2800 2050 60 35 "Vcc" "24" 0x00000001)
- ElementLine (2750 2150 2750 2000 10)
- ElementLine (2750 2400 2750 2250 10)
- ElementLine (3950 2000 2750 2000 10)
- ElementLine (3950 2400 3950 2000 10)
- ElementLine (2750 2400 3950 2400 10)
- ElementArc (2750 2200 50 50 90 180 10)
- Mark (2800 2350)
-)
-
-Element(0x00000000 "generic" "U6" "8254" 1450 2330 0 100 0x00000000)
-(
- Pin(1400 2650 60 35 "1" "1" 0x00000101)
- Pin(1500 2650 60 35 "2" "2" 0x00000001)
- Pin(1600 2650 60 35 "3" "3" 0x00000001)
- Pin(1700 2650 60 35 "4" "4" 0x00000001)
- Pin(1800 2650 60 35 "5" "5" 0x00000001)
- Pin(1900 2650 60 35 "6" "6" 0x00000001)
- Pin(2000 2650 60 35 "7" "7" 0x00000001)
- Pin(2100 2650 60 35 "8" "8" 0x00000001)
- Pin(2200 2650 60 35 "9" "9" 0x00000001)
- Pin(2300 2650 60 35 "10" "10" 0x00000001)
- Pin(2400 2650 60 35 "11" "11" 0x00000001)
- Pin(2500 2650 60 35 "12" "12" 0x00000001)
- Pin(2500 2050 60 35 "13" "13" 0x00000001)
- Pin(2400 2050 60 35 "14" "14" 0x00000001)
- Pin(2300 2050 60 35 "15" "15" 0x00000001)
- Pin(2200 2050 60 35 "16" "16" 0x00000001)
- Pin(2100 2050 60 35 "17" "17" 0x00000001)
- Pin(2000 2050 60 35 "18" "18" 0x00000001)
- Pin(1900 2050 60 35 "19" "19" 0x00000001)
- Pin(1800 2050 60 35 "20" "20" 0x00000001)
- Pin(1700 2050 60 35 "21" "21" 0x00000001)
- Pin(1600 2050 60 35 "22" "22" 0x00000001)
- Pin(1500 2050 60 35 "23" "23" 0x00000001)
- Pin(1400 2050 60 35 "24" "24" 0x00000001)
- ElementLine (1350 2300 1350 2000 10)
- ElementLine (1350 2700 1350 2400 10)
- ElementLine (2550 2000 1350 2000 10)
- ElementLine (2550 2700 2550 2000 10)
- ElementLine (1350 2700 2550 2700 10)
- ElementArc (1350 2350 50 50 90 180 10)
- Mark (1400 2650)
-)
-
-Element(0x00000000 "connector 2x4 pins" "JP1" "ADDRESS" 4410 2000 3 100 0x00000000)
-(
- Pin(4200 2050 70 42 "1" "1" 0x00000101)
- Pin(4300 2050 70 42 "2" "2" 0x00000001)
- Pin(4200 2150 70 42 "3" "3" 0x00000001)
- Pin(4300 2150 70 42 "4" "4" 0x00000001)
- Pin(4200 2250 70 42 "5" "5" 0x00000001)
- Pin(4300 2250 70 42 "6" "6" 0x00000001)
- Pin(4200 2350 70 42 "7" "7" 0x00000001)
- Pin(4300 2350 70 42 "8" "8" 0x00000001)
- ElementLine (4150 2000 4150 2400 20)
- ElementLine (4150 2400 4350 2400 20)
- ElementLine (4350 2400 4350 2000 20)
- ElementLine (4350 2000 4150 2000 20)
- ElementLine (4150 2100 4250 2100 10)
- ElementLine (4250 2100 4250 2000 10)
- Mark (4200 2050)
-)
-
-Element(0x00000000 "capacitor_radial" "C4" "10uFx25V" 3325 3625 0 100 0x00000000)
-(
- Pin(3175 3725 60 35 "1" "1" 0x00000101)
- Pin(3275 3725 60 35 "2" "2" 0x00000001)
- ElementArc (3225 3725 100 100 0 360 10)
- Mark (3175 3725)
-)
-
-Element(0x00000000 "generic" "U7" "HCTL-2016" 2500 405 0 100 0x00000000)
-(
- Pin(2450 575 60 35 "1" "1" 0x00000101)
- Pin(2550 575 60 35 "2" "2" 0x00000001)
- Pin(2650 575 60 35 "3" "3" 0x00000001)
- Pin(2750 575 60 35 "4" "4" 0x00000001)
- Pin(2850 575 60 35 "5" "5" 0x00000001)
- Pin(2950 575 60 35 "6" "6" 0x00000001)
- Pin(3050 575 60 35 "7" "7" 0x00000001)
- Pin(3150 575 60 35 "8" "8" 0x00000001)
- Pin(3150 275 60 35 "9" "9" 0x00000001)
- Pin(3050 275 60 35 "10" "10" 0x00000001)
- Pin(2950 275 60 35 "11" "11" 0x00000001)
- Pin(2850 275 60 35 "12" "12" 0x00000001)
- Pin(2750 275 60 35 "13" "13" 0x00000001)
- Pin(2650 275 60 35 "14" "14" 0x00000001)
- Pin(2550 275 60 35 "15" "15" 0x00000001)
- Pin(2450 275 60 35 "16" "16" 0x00000001)
- ElementLine (2400 375 2400 225 10)
- ElementLine (2400 625 2400 475 10)
- ElementLine (3200 225 2400 225 10)
- ElementLine (3200 625 3200 225 10)
- ElementLine (2400 625 3200 625 10)
- ElementArc (2400 425 50 50 90 180 10)
- Mark (2450 575)
-)
-
-Element(0x00000000 "IRF1010N" "Q2" "IRF1010N" 5200 2260 0 100 0x00000000)
-(
- Pin(5300 2450 80 42 "G" "1" 0x00000101)
- Pin(5400 2450 80 42 "D" "2" 0x00000001)
- Pin(5500 2450 80 42 "S" "3" 0x00000001)
- ElementLine (5200 2330 5600 2330 20)
- ElementLine (5600 2330 5600 2510 20)
- ElementLine (5600 2510 5200 2510 20)
- ElementLine (5200 2510 5200 2330 20)
- ElementLine (5200 2330 5600 2330 20)
- ElementLine (5600 2330 5600 2390 20)
- ElementLine (5600 2390 5200 2390 20)
- ElementLine (5200 2390 5200 2330 20)
- ElementLine (5330 2330 5330 2390 10)
- ElementLine (5470 2330 5470 2390 10)
- Mark (5300 2450)
-)
-
-Element(0x00000000 "LED 5mm" "D10" "Green" 525 2315 0 100 0x00000000)
-(
- Pin(575 2395 60 35 "-" "1" 0x00000101)
- Pin(575 2495 60 35 "+" "2" 0x00000001)
- ElementArc (575 2445 50 50 0 360 15)
- ElementArc (575 2445 70 70 0 360 10)
- Mark (575 2395)
-)
-
-Element(0x00000000 "diode" "D1" "1N4148" 1625 3645 3 100 0x00000000)
-(
- Pin(1575 3425 60 35 "1" "1" 0x00000101)
- Pin(1575 3725 60 35 "2" "2" 0x00000001)
- ElementLine (1625 3525 1525 3525 10)
- ElementLine (1525 3625 1575 3525 10)
- ElementLine (1625 3625 1525 3625 10)
- ElementLine (1575 3525 1625 3625 10)
- ElementLine (1575 3625 1575 3725 10)
- ElementLine (1575 3425 1575 3525 10)
- Mark (1575 3425)
-)
-
-Element(0x00000000 "R 0.25W" "R4" "390" 5555 505 1 100 0x00000000)
-(
- Pin(5575 625 60 35 "1" "1" 0x00000101)
- Pin(5575 225 60 35 "2" "2" 0x00000001)
- ElementLine (5525 525 5525 325 20)
- ElementLine (5525 325 5625 325 20)
- ElementLine (5625 325 5625 525 20)
- ElementLine (5625 525 5525 525 20)
- ElementLine (5575 625 5575 525 20)
- ElementLine (5575 325 5575 225 20)
- Mark (5575 625)
-)
-
-Element(0x00000000 "optical coupling device" "U13" "6N137" 4025 405 0 100 0x00000000)
-(
- Pin(3975 575 60 35 "NC" "1" 0x00000101)
- Pin(4075 575 60 35 "A+" "2" 0x00000001)
- Pin(4175 575 60 35 "K-" "3" 0x00000001)
- Pin(4275 575 60 35 "NC" "4" 0x00000001)
- Pin(4275 275 60 35 "Gnd" "5" 0x00000001)
- Pin(4175 275 60 35 "Out" "6" 0x00000001)
- Pin(4075 275 60 35 "En" "7" 0x00000001)
- Pin(3975 275 60 35 "Vcc" "8" 0x00000001)
- ElementLine (3925 375 3925 225 10)
- ElementLine (3925 625 3925 475 10)
- ElementLine (4325 225 3925 225 10)
- ElementLine (4325 625 4325 225 10)
- ElementLine (3925 625 4325 625 10)
- ElementArc (3925 425 50 50 90 180 10)
- Mark (3975 575)
-)
-
-Element(0x00000000 "optical coupling device" "U14" "6N137" 4925 1005 0 100 0x00000000)
-(
- Pin(4875 1175 60 35 "NC" "1" 0x00000101)
- Pin(4975 1175 60 35 "A+" "2" 0x00000001)
- Pin(5075 1175 60 35 "K-" "3" 0x00000001)
- Pin(5175 1175 60 35 "NC" "4" 0x00000001)
- Pin(5175 875 60 35 "Gnd" "5" 0x00000001)
- Pin(5075 875 60 35 "Out" "6" 0x00000001)
- Pin(4975 875 60 35 "En" "7" 0x00000001)
- Pin(4875 875 60 35 "Vcc" "8" 0x00000001)
- ElementLine (4825 975 4825 825 10)
- ElementLine (4825 1225 4825 1075 10)
- ElementLine (5225 825 4825 825 10)
- ElementLine (5225 1225 5225 825 10)
- ElementLine (4825 1225 5225 1225 10)
- ElementArc (4825 1025 50 50 90 180 10)
- Mark (4875 1175)
-)
-
-Element(0x00000000 "R 0.25W" "R5" "390" 5355 1105 1 100 0x00000000)
-(
- Pin(5375 1225 60 35 "1" "1" 0x00000101)
- Pin(5375 825 60 35 "2" "2" 0x00000001)
- ElementLine (5325 1125 5325 925 20)
- ElementLine (5325 925 5425 925 20)
- ElementLine (5425 925 5425 1125 20)
- ElementLine (5425 1125 5325 1125 20)
- ElementLine (5375 1225 5375 1125 20)
- ElementLine (5375 925 5375 825 20)
- Mark (5375 1225)
-)
-
-Element(0x00000000 "R 0.25W" "R6" "2k2" 4655 1105 1 100 0x00000000)
-(
- Pin(4675 1225 60 35 "1" "1" 0x00000101)
- Pin(4675 825 60 35 "2" "2" 0x00000001)
- ElementLine (4625 1125 4625 925 20)
- ElementLine (4625 925 4725 925 20)
- ElementLine (4725 925 4725 1125 20)
- ElementLine (4725 1125 4625 1125 20)
- ElementLine (4675 1225 4675 1125 20)
- ElementLine (4675 925 4675 825 20)
- Mark (4675 1225)
-)
-
-Element(0x00000000 "R 0.25W" "R2" "2k2" 4655 505 1 100 0x00000000)
-(
- Pin(4675 625 60 35 "1" "1" 0x00000101)
- Pin(4675 225 60 35 "2" "2" 0x00000001)
- ElementLine (4625 525 4625 325 20)
- ElementLine (4625 325 4725 325 20)
- ElementLine (4725 325 4725 525 20)
- ElementLine (4725 525 4625 525 20)
- ElementLine (4675 625 4675 525 20)
- ElementLine (4675 325 4675 225 20)
- Mark (4675 625)
-)
-
-Element(0x00000000 "optical coupling device" "U12" "6N137" 4925 405 0 100 0x00000000)
-(
- Pin(4875 575 60 35 "NC" "1" 0x00000101)
- Pin(4975 575 60 35 "A+" "2" 0x00000001)
- Pin(5075 575 60 35 "K-" "3" 0x00000001)
- Pin(5175 575 60 35 "NC" "4" 0x00000001)
- Pin(5175 275 60 35 "Gnd" "5" 0x00000001)
- Pin(5075 275 60 35 "Out" "6" 0x00000001)
- Pin(4975 275 60 35 "En" "7" 0x00000001)
- Pin(4875 275 60 35 "Vcc" "8" 0x00000001)
- ElementLine (4825 375 4825 225 10)
- ElementLine (4825 625 4825 475 10)
- ElementLine (5225 225 4825 225 10)
- ElementLine (5225 625 5225 225 10)
- ElementLine (4825 625 5225 625 10)
- ElementArc (4825 425 50 50 90 180 10)
- Mark (4875 575)
-)
-
-Element(0x00000000 "R 0.25W" "R1" "390" 5355 505 1 100 0x00000000)
-(
- Pin(5375 625 60 35 "1" "1" 0x00000101)
- Pin(5375 225 60 35 "2" "2" 0x00000001)
- ElementLine (5325 525 5325 325 20)
- ElementLine (5325 325 5425 325 20)
- ElementLine (5425 325 5425 525 20)
- ElementLine (5425 525 5325 525 20)
- ElementLine (5375 625 5375 525 20)
- ElementLine (5375 325 5375 225 20)
- Mark (5375 625)
-)
-
-Element(0x00000000 "R 0.25W" "R8" "390" 5555 1105 1 100 0x00000000)
-(
- Pin(5575 1225 60 35 "1" "1" 0x00000101)
- Pin(5575 825 60 35 "2" "2" 0x00000001)
- ElementLine (5525 1125 5525 925 20)
- ElementLine (5525 925 5625 925 20)
- ElementLine (5625 925 5625 1125 20)
- ElementLine (5625 1125 5525 1125 20)
- ElementLine (5575 1225 5575 1125 20)
- ElementLine (5575 925 5575 825 20)
- Mark (5575 1225)
-)
-
-Element(0x00000000 "optical coupling device" "U15" "6N137" 4025 1005 0 100 0x00000000)
-(
- Pin(3975 1175 60 35 "NC" "1" 0x00000101)
- Pin(4075 1175 60 35 "A+" "2" 0x00000001)
- Pin(4175 1175 60 35 "K-" "3" 0x00000001)
- Pin(4275 1175 60 35 "NC" "4" 0x00000001)
- Pin(4275 875 60 35 "Gnd" "5" 0x00000001)
- Pin(4175 875 60 35 "Out" "6" 0x00000001)
- Pin(4075 875 60 35 "En" "7" 0x00000001)
- Pin(3975 875 60 35 "Vcc" "8" 0x00000001)
- ElementLine (3925 975 3925 825 10)
- ElementLine (3925 1225 3925 1075 10)
- ElementLine (4325 825 3925 825 10)
- ElementLine (4325 1225 4325 825 10)
- ElementLine (3925 1225 4325 1225 10)
- ElementArc (3925 1025 50 50 90 180 10)
- Mark (3975 1175)
-)
-
-Element(0x00000000 "R 0.25W" "R7" "2k2" 4455 1105 1 100 0x00000000)
-(
- Pin(4475 1225 60 35 "1" "1" 0x00000101)
- Pin(4475 825 60 35 "2" "2" 0x00000001)
- ElementLine (4425 1125 4425 925 20)
- ElementLine (4425 925 4525 925 20)
- ElementLine (4525 925 4525 1125 20)
- ElementLine (4525 1125 4425 1125 20)
- ElementLine (4475 1225 4475 1125 20)
- ElementLine (4475 925 4475 825 20)
- Mark (4475 1225)
-)
-
-Element(0x00000000 "+5V 1.5A voltage regulator" "U2" "7805" 4250 3790 2 100 0x00000000)
-(
- Pin(4150 3600 80 42 "In" "1" 0x00000101)
- Pin(4050 3600 80 42 "Com" "2" 0x00000001)
- Pin(3950 3600 80 42 "Out" "3" 0x00000001)
- ElementLine (3980 3720 3980 3660 10)
- ElementLine (4120 3720 4120 3660 10)
- ElementLine (4250 3660 4250 3720 20)
- ElementLine (3850 3660 4250 3660 20)
- ElementLine (3850 3720 3850 3660 20)
- ElementLine (4250 3720 3850 3720 20)
- ElementLine (4250 3540 4250 3720 20)
- ElementLine (3850 3540 4250 3540 20)
- ElementLine (3850 3720 3850 3540 20)
- ElementLine (4250 3720 3850 3720 20)
- Mark (4150 3600)
-)
-
-Element(0x00000000 "diode" "D2" "1N4148" 3025 3645 3 100 0x00000000)
-(
- Pin(2975 3425 60 35 "1" "1" 0x00000101)
- Pin(2975 3725 60 35 "2" "2" 0x00000001)
- ElementLine (3025 3525 2925 3525 10)
- ElementLine (2925 3625 2975 3525 10)
- ElementLine (3025 3625 2925 3625 10)
- ElementLine (2975 3525 3025 3625 10)
- ElementLine (2975 3625 2975 3725 10)
- ElementLine (2975 3425 2975 3525 10)
- Mark (2975 3425)
-)
-
-Element(0x00000000 "R 0.25W" "R13" "2k7" 3330 505 1 100 0x00000000)
-(
- Pin(3350 625 60 35 "1" "1" 0x00000101)
- Pin(3350 225 60 35 "2" "2" 0x00000001)
- ElementLine (3300 525 3300 325 20)
- ElementLine (3300 325 3400 325 20)
- ElementLine (3400 325 3400 525 20)
- ElementLine (3400 525 3300 525 20)
- ElementLine (3350 625 3350 525 20)
- ElementLine (3350 325 3350 225 20)
- Mark (3350 625)
-)
+ SymbolLine(0 35 5 30 8)
+ SymbolLine(5 30 10 30 8)
+ SymbolLine(10 30 15 35 8)
+ SymbolLine(15 35 20 35 8)
+ SymbolLine(20 35 25 30 8)
+)
+Via[340000 237500 12000 2000 0 5500 "" ""]
+Via[497500 370000 9000 2000 0 3500 "" ""]
+Via[552500 237500 12000 2000 0 5500 "" ""]
+Via[102500 130000 4000 2000 0 2000 "" ""]
+Via[615000 287500 10500 2000 0 5500 "" ""]
+Via[280000 87500 6000 2000 0 3500 "" ""]
+Via[365000 317500 4000 2000 0 2000 "" ""]
+Via[242500 165000 6000 2000 0 3500 "" ""]
+Via[432500 350000 6000 2000 0 3500 "" ""]
+Via[282500 245000 4000 2000 0 2000 "" ""]
+Via[240000 330000 6000 2000 0 3500 "" ""]
+Via[315000 280000 4000 2000 0 2000 "" ""]
+Via[177500 285000 6000 2000 0 3500 "" ""]
+Via[372500 370000 9000 2000 0 3500 "" ""]
+Via[427500 17500 4000 2000 0 2000 "" ""]
+Via[400000 325000 6000 2000 0 3500 "" ""]
+Via[152500 62500 6000 2000 0 3500 "" ""]
+Via[402500 17500 4000 2000 0 2000 "" ""]
+Via[497500 267500 9000 2000 0 3500 "" ""]
+Via[615000 222500 12000 2000 0 5500 "" ""]
+Via[195000 380000 6000 2000 0 3500 "" ""]
+Via[217500 222500 6000 2000 0 3500 "" ""]
+Via[360000 227500 4000 2000 0 2000 "" ""]
+Via[87500 135000 4000 2000 0 2000 "" ""]
+Via[247500 17500 4000 2000 0 2000 "" ""]
+Via[367500 92500 4000 2000 0 2000 "" ""]
+Via[225000 187500 4000 2000 0 2000 "" ""]
+Via[225000 170000 4000 2000 0 2000 "" ""]
+Via[442500 65000 4000 2000 0 2000 "" ""]
+Via[352500 170000 4000 2000 0 2000 "" ""]
+Via[507500 140000 4000 2000 0 2000 "" ""]
+Via[345000 142500 4000 2000 0 2000 "" ""]
+Via[507500 115000 4000 2000 0 2000 "" ""]
+Via[187500 175000 6000 2000 0 3500 "" ""]
+Via[315000 142500 4000 2000 0 2000 "" ""]
+Via[477500 22500 4000 2000 0 2000 "" ""]
+Via[477500 115000 4000 2000 0 2000 "" ""]
+Via[417500 40000 4000 2000 0 2000 "" ""]
+Via[295000 135000 4000 2000 0 2000 "" ""]
+Via[472500 87500 6000 2000 0 3500 "" ""]
+Via[155000 367500 4000 2000 0 2000 "" ""]
+Via[360000 150000 4000 2000 0 2000 "" ""]
+Via[425000 115000 4000 2000 0 2000 "" ""]
+Via[205000 357500 4000 2000 0 2000 "" ""]
+Via[547500 52500 4000 2000 0 2000 "" ""]
+Via[532500 57500 4000 2000 0 2000 "" ""]
+Via[562500 62500 4000 2000 0 2000 "" ""]
+Via[332500 175000 4000 2000 0 2000 "" ""]
+Via[492500 175000 4000 2000 0 2000 "" ""]
+Via[210000 40000 4000 2000 0 2000 "" ""]
+Via[602500 157500 9000 2000 0 3500 "" ""]
+Via[592500 115000 4000 2000 0 2000 "" ""]
+Via[482500 150000 4000 2000 0 2000 "" ""]
+Via[477500 105000 4000 2000 0 2000 "" ""]
+Via[160000 187500 4000 2000 0 2000 "" ""]
+Via[480000 110000 4000 2000 0 2000 "" ""]
+Via[92500 140000 4000 2000 0 2000 "" ""]
+Via[397500 142500 4000 2000 0 2000 "" ""]
+Via[442500 17500 4000 2000 0 2000 "" ""]
+Via[400000 165000 6000 2000 0 3500 "" ""]
+Via[365000 155000 4000 2000 0 2000 "" ""]
+Via[417500 10000 4000 2000 0 2000 "" ""]
+Via[565000 160000 4000 2000 0 2000 "" ""]
+Via[262500 107500 6000 2000 0 3500 "" ""]
+Via[435000 45000 4000 2000 0 2000 "" ""]
+Via[160000 75000 6000 2000 0 3500 "" ""]
+Via[305000 140000 4000 2000 0 2000 "" ""]
+Via[442500 115000 4000 2000 0 2000 "" ""]
+Via[102500 112500 4000 2000 0 2000 "" ""]
+Via[377500 82500 4000 2000 0 2000 "" ""]
+Via[352500 117500 4000 2000 0 2000 "" ""]
+Via[350000 122500 4000 2000 0 2000 "" ""]
+Via[372500 150000 4000 2000 0 2000 "" ""]
+Via[225000 292500 6000 2000 0 3500 "" ""]
+Via[310000 92500 4000 2000 0 2000 "" ""]
+Via[520000 70000 6000 2000 0 3500 "" ""]
+Via[385000 165000 6000 2000 0 3500 "" ""]
+Via[187500 107500 6000 2000 0 3500 "" ""]
+Via[215000 362500 4000 2000 0 2000 "" ""]
+Via[225000 312500 6000 2000 0 3500 "" ""]
+Via[432500 182500 5500 2000 0 3500 "" ""]
+Via[252500 285000 6000 2000 0 3500 "" ""]
+Via[285000 107500 4000 2000 0 2000 "" ""]
+Via[225000 367500 4000 2000 0 2000 "" ""]
+Via[242500 285000 6000 2000 0 3500 "" ""]
+Via[545000 347500 6000 2000 0 3500 "" ""]
+Via[377500 112500 4000 2000 0 2000 "" ""]
+Via[302500 87500 6000 2000 0 3500 "" ""]
+Via[295000 60000 6000 2000 0 3500 "" ""]
+Via[177500 165000 6000 2000 0 3500 "" ""]
+Via[315000 135000 4000 2000 0 2000 "" ""]
+Via[325000 160000 4000 2000 0 2000 "" ""]
+Via[190000 275000 7000 2000 0 3500 "" ""]
+Via[527500 85000 4000 2000 0 2000 "" ""]
+Via[252500 312500 6000 2000 0 3500 "" ""]
+Via[532500 87500 4000 2000 0 2000 "" ""]
+Via[545000 145000 4000 2000 0 2000 "" ""]
+Via[557500 172500 4000 2000 0 2000 "" ""]
+Via[612500 87500 4000 2000 0 2000 "" ""]
+Via[615000 107500 6000 2000 0 3500 "" ""]
+Via[200000 150000 4000 2000 0 2000 "" ""]
+Via[385000 340000 6000 2000 0 3500 "" ""]
+Via[472500 165000 6000 2000 0 3500 "" ""]
+Via[155000 275000 4000 2000 0 2000 "" ""]
+Via[165000 357500 4000 2000 0 2000 "" ""]
+Via[160000 362500 4000 2000 0 2000 "" ""]
+Via[262500 202500 6000 2000 0 3500 "" ""]
+Via[262500 175000 6000 2000 0 3500 "" ""]
+Via[152500 182500 6000 2000 0 3500 "" ""]
+Via[605000 350000 6000 2000 0 3500 "" ""]
+Via[200000 122500 4000 2000 0 2000 "" ""]
+Via[207500 255000 6000 2000 0 3500 "" ""]
+Via[517500 165000 6000 2000 0 3500 "" ""]
+Via[160000 165000 6000 2000 0 3500 "" ""]
+Via[552500 340000 8000 2000 0 3500 "" ""]
+Via[392500 332500 8000 2000 0 3500 "" ""]
+Via[387500 142500 8500 2000 0 3500 "" ""]
+Via[270000 122500 7000 2000 0 3500 "" ""]
+Via[360000 142500 8500 2000 0 3500 "" ""]
+Via[592500 252500 12000 2000 0 5500 "" ""]
+Via[532500 392500 11500 2000 0 5500 "" ""]
+Via[410000 70000 9000 2000 0 3500 "" ""]
+Via[270000 30000 9000 2000 0 3500 "" ""]
+Via[532500 252500 12000 2000 0 5500 "" ""]
+Via[360000 30000 9000 2000 0 3500 "" ""]
+Via[460000 70000 6000 2000 0 2000 "" ""]
+Via[190000 312500 9000 2000 0 3500 "" ""]
+Via[270000 150000 6500 2000 0 3500 "" ""]
+Via[327500 30000 9000 2000 0 3500 "" ""]
+Via[160000 125000 6000 2000 0 3500 "" ""]
+Via[335000 37500 4000 2000 0 2000 "" ""]
+
+Element["" "LED5" "D3" "GREEN" 62500 212500 11436 -16170 0 100 ""]
+(
+ Pin[0 5000 6500 3000 7100 4300 "1" "1" "square"]
+ Pin[0 -5000 6500 3000 7100 4300 "2" "2" ""]
+ ElementArc [0 0 11800 11800 90 360 1000]
+ ElementArc [0 0 13800 13800 90 360 1000]
+
+ )
+
+Element["" "RCY100P" "C7" "1uFx16V" 280000 75000 15000 -10000 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 3500 "1" "1" "square,edge2"]
+ Pin[10000 0 6000 3000 6600 3500 "2" "2" "edge2"]
+ ElementLine [-9000 0 -4000 0 1000]
+ ElementLine [-6500 -2500 -6500 2500 1000]
+ ElementArc [5000 0 10000 10000 0 360 1000]
+
+ )
+
+Element["" "ACY400" "R6" "470" 425000 105000 -2725 -18795 0 100 ""]
+(
+ Pin[0 -10000 6000 3000 6600 3500 "1" "1" "square"]
+ Pin[0 30000 6000 3000 6600 3500 "2" "2" ""]
+ ElementLine [0 -10000 0 0 1000]
+ ElementLine [0 20000 0 30000 1000]
+ ElementLine [3300 0 3300 20000 1000]
+ ElementLine [-3300 20000 3300 20000 1000]
+ ElementLine [-3300 0 -3300 20000 1000]
+ ElementLine [-3300 0 3300 0 1000]
+
+ )
+
+Element["" "TO220W" "Q4" "unknown" 350000 285000 -11929 17736 0 100 ""]
+(
+ Pin[0 0 8000 3000 8600 4200 "1" "1" "square,edge2"]
+ Pin[-10000 0 8000 3000 8600 4200 "2" "2" "edge2"]
+ Pin[-20000 0 8000 3000 8600 4200 "3" "3" "edge2"]
+ ElementLine [-30000 12000 10000 12000 2000]
+ ElementLine [-30000 -6000 -30000 12000 2000]
+ ElementLine [-30000 -6000 10000 -6000 2000]
+ ElementLine [10000 -6000 10000 12000 2000]
+ ElementLine [-30000 12000 10000 12000 2000]
+ ElementLine [-30000 6000 -30000 12000 2000]
+ ElementLine [-30000 6000 10000 6000 2000]
+ ElementLine [10000 6000 10000 12000 2000]
+ ElementLine [-3000 6000 -3000 12000 1000]
+ ElementLine [-17000 6000 -17000 12000 1000]
+
+ )
+
+Element["" "Axial diode (pin 1 is cathode)" "D5" "ALF400" 217500 175000 -11300 -11482 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 3500 "2" "2" "square,edge2"]
+ Pin[-40000 0 6000 3000 6600 3500 "1" "1" "edge2"]
+ ElementLine [-13300 -6600 -13300 6600 1000]
+ ElementLine [-26700 -6600 -13300 0 1000]
+ ElementLine [-26700 -6600 -26700 6600 1000]
+ ElementLine [-13300 0 -26700 6600 1000]
+ ElementLine [-40000 0 -26700 0 1000]
+ ElementLine [-13300 0 0 0 1000]
+
+ )
+
+Element["" "E22 standing" "" "E22" 520000 385000 -52500 -32500 2 100 ""]
+(
+ ElementLine [-75000 -65000 -75000 -10000 2000]
+ ElementLine [-80000 -65000 -75000 -65000 2000]
+ ElementLine [-80000 -65000 -80000 -10000 2000]
+ ElementLine [-100000 -10000 -80000 -10000 2000]
+ ElementLine [-100000 -65000 -100000 -10000 2000]
+ ElementLine [-105000 -65000 -100000 -65000 2000]
+ ElementLine [-105000 -65000 -105000 0 2000]
+ ElementLine [-75000 -10000 -30000 -10000 2000]
+ ElementLine [-30000 -65000 -30000 -10000 2000]
+ ElementLine [-30000 -65000 -25000 -65000 2000]
+ ElementLine [-25000 -65000 -25000 -10000 2000]
+ ElementLine [-25000 -10000 -5000 -10000 2000]
+ ElementLine [-5000 -65000 -5000 -10000 2000]
+ ElementLine [-5000 -65000 0 -65000 2000]
+ ElementLine [0 -65000 0 0 2000]
+ ElementLine [-105000 0 0 0 2000]
+
+ )
+
+Element["" "Bottom lead polar circular component (typically capacitor)" "C11" "RCY100P" 287500 150000 5748 -10571 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 3500 "1" "1" "square,edge2"]
+ Pin[-10000 0 6000 3000 6600 3500 "2" "2" "edge2"]
+ ElementLine [6500 -2500 6500 2500 1000]
+ ElementLine [4000 0 9000 0 1000]
+ ElementArc [-5000 0 10000 10000 180 360 1000]
+
+ )
+
+Element["" "Axial non-polar component (typically resistor or capacitor)," "R14" "ACY400" 207500 150000 838 -9701 0 100 ""]
+(
+ Pin[10000 0 5500 3000 6100 3000 "1" "1" "square,edge2"]
+ Pin[-30000 0 5500 3000 6100 3000 "2" "2" "edge2"]
+ ElementLine [0 -3300 0 3300 1000]
+ ElementLine [-20000 -3300 0 -3300 1000]
+ ElementLine [-20000 -3300 -20000 3300 1000]
+ ElementLine [-20000 3300 0 3300 1000]
+ ElementLine [-30000 0 -20000 0 1000]
+ ElementLine [0 0 10000 0 1000]
+
+ )
+
+Element["" "LED5" "D1" "RED" 62500 287500 11397 -16209 0 100 ""]
+(
+ Pin[0 5000 6500 3000 7100 4300 "1" "1" "square"]
+ Pin[0 -5000 6500 3000 7100 4300 "2" "2" ""]
+ ElementArc [0 0 11800 11800 90 360 1000]
+ ElementArc [0 0 13800 13800 90 360 1000]
+
+ )
+
+Element["" "DIP8" "U8" "unknown" 225000 75000 5000 -17000 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 2800 "1" "1" "square"]
+ Pin[10000 0 6000 3000 6600 2800 "2" "2" ""]
+ Pin[20000 0 6000 3000 6600 2800 "3" "3" ""]
+ Pin[30000 0 6000 3000 6600 2800 "4" "4" ""]
+ Pin[30000 -30000 6000 3000 6600 2800 "5" "5" ""]
+ Pin[20000 -30000 6000 3000 6600 2800 "6" "6" ""]
+ Pin[10000 -30000 6000 3000 6600 2800 "7" "7" ""]
+ Pin[0 -30000 6000 3000 6600 2800 "8" "8" ""]
+ ElementLine [-5000 5000 35000 5000 1000]
+ ElementLine [35000 -35000 35000 5000 1000]
+ ElementLine [-5000 -35000 35000 -35000 1000]
+ ElementLine [-5000 -10000 -5000 5000 1000]
+ ElementLine [-5000 -35000 -5000 -20000 1000]
+ ElementArc [-5000 -15000 5000 5000 90 180 1000]
+
+ )
+
+Element["" "RCY100P" "C19" "4.7uFx16V" 242500 150000 15000 -10000 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 3500 "1" "1" "square,edge2"]
+ Pin[10000 0 6000 3000 6600 3500 "2" "2" "edge2"]
+ ElementLine [-9000 0 -4000 0 1000]
+ ElementLine [-6500 -2500 -6500 2500 1000]
+ ElementArc [5000 0 10000 10000 0 360 1000]
+
+ )
+
+Element["" "E22 standing" "" "E22" 392500 385000 -52500 -32500 2 100 ""]
+(
+ ElementLine [-75000 -65000 -75000 -10000 2000]
+ ElementLine [-80000 -65000 -75000 -65000 2000]
+ ElementLine [-80000 -65000 -80000 -10000 2000]
+ ElementLine [-100000 -10000 -80000 -10000 2000]
+ ElementLine [-100000 -65000 -100000 -10000 2000]
+ ElementLine [-105000 -65000 -100000 -65000 2000]
+ ElementLine [-105000 -65000 -105000 0 2000]
+ ElementLine [-75000 -10000 -30000 -10000 2000]
+ ElementLine [-30000 -65000 -30000 -10000 2000]
+ ElementLine [-30000 -65000 -25000 -65000 2000]
+ ElementLine [-25000 -65000 -25000 -10000 2000]
+ ElementLine [-25000 -10000 -5000 -10000 2000]
+ ElementLine [-5000 -65000 -5000 -10000 2000]
+ ElementLine [-5000 -65000 0 -65000 2000]
+ ElementLine [0 -65000 0 0 2000]
+ ElementLine [-105000 0 0 0 2000]
+
+ )
+
+Element["" "Radial lead circular non-polar component (typically capacitor)," "C26" "RCI200" 197500 30000 -14094 -11968 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 2800 "1" "1" "square,edge2"]
+ Pin[-20000 0 6000 3000 6600 2800 "2" "2" "edge2"]
+ ElementLine [-20000 -5000 0 -5000 1000]
+ ElementLine [-20000 5000 0 5000 1000]
+ ElementArc [-20000 0 5000 5000 270 180 1000]
+ ElementArc [0 0 5000 5000 90 180 1000]
+
+ )
+
+Element["" "TO220W" "Q1" "unknown" 477500 360000 -11024 17343 0 100 ""]
+(
+ Pin[0 0 8000 3000 8600 4200 "1" "1" "square,edge2"]
+ Pin[-10000 0 8000 3000 8600 4200 "2" "2" "edge2"]
+ Pin[-20000 0 8000 3000 8600 4200 "3" "3" "edge2"]
+ ElementLine [-30000 12000 10000 12000 2000]
+ ElementLine [-30000 -6000 -30000 12000 2000]
+ ElementLine [-30000 -6000 10000 -6000 2000]
+ ElementLine [10000 -6000 10000 12000 2000]
+ ElementLine [-30000 12000 10000 12000 2000]
+ ElementLine [-30000 6000 -30000 12000 2000]
+ ElementLine [-30000 6000 10000 6000 2000]
+ ElementLine [10000 6000 10000 12000 2000]
+ ElementLine [-3000 6000 -3000 12000 1000]
+ ElementLine [-17000 6000 -17000 12000 1000]
+
+ )
+
+Element["" "Bottom lead polar circular component (typically capacitor)" "C13" "RCY100P" 290000 50000 1870 -14822 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 3500 "1" "1" "square,edge2"]
+ Pin[-10000 0 6000 3000 6600 3500 "2" "2" "edge2"]
+ ElementLine [6500 -2500 6500 2500 1000]
+ ElementLine [4000 0 9000 0 1000]
+ ElementArc [-5000 0 10000 10000 180 360 1000]
+
+ )
+
+Element["" "TO220W" "U1" "unknown" 350000 360000 -11929 17342 0 100 ""]
+(
+ Pin[0 0 8000 3000 8600 4200 "1" "1" "square,edge2"]
+ Pin[-10000 0 8000 3000 8600 4200 "2" "2" "edge2"]
+ Pin[-20000 0 8000 3000 8600 4200 "3" "3" "edge2"]
+ ElementLine [-30000 12000 10000 12000 2000]
+ ElementLine [-30000 -6000 -30000 12000 2000]
+ ElementLine [-30000 -6000 10000 -6000 2000]
+ ElementLine [10000 -6000 10000 12000 2000]
+ ElementLine [-30000 12000 10000 12000 2000]
+ ElementLine [-30000 6000 -30000 12000 2000]
+ ElementLine [-30000 6000 10000 6000 2000]
+ ElementLine [10000 6000 10000 12000 2000]
+ ElementLine [-3000 6000 -3000 12000 1000]
+ ElementLine [-17000 6000 -17000 12000 1000]
+
+ )
+
+Element["" "Bottom lead polar circular component (typically capacitor)" "C1" "RCY100P" 615000 370000 7934 -9567 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 3500 "1" "1" "square"]
+ Pin[0 10000 6000 3000 6600 3500 "2" "2" ""]
+ ElementLine [-2500 -6500 2500 -6500 1000]
+ ElementLine [0 -9000 0 -4000 1000]
+ ElementArc [0 5000 10000 10000 270 360 1000]
+
+ )
+
+Element["" "ACY400" "R13" "1k5" 460000 50000 -4143 -20448 0 100 ""]
+(
+ Pin[0 -10000 6000 3000 6600 3500 "1" "1" "square"]
+ Pin[0 30000 6000 3000 6600 3500 "2" "2" ""]
+ ElementLine [0 -10000 0 0 1000]
+ ElementLine [0 20000 0 30000 1000]
+ ElementLine [3300 0 3300 20000 1000]
+ ElementLine [-3300 20000 3300 20000 1000]
+ ElementLine [-3300 0 -3300 20000 1000]
+ ElementLine [-3300 0 3300 0 1000]
+
+ )
+
+Element["" "E22 standing" "" "E22" 392500 310000 -52500 -32500 2 100 ""]
+(
+ ElementLine [-75000 -65000 -75000 -10000 2000]
+ ElementLine [-80000 -65000 -75000 -65000 2000]
+ ElementLine [-80000 -65000 -80000 -10000 2000]
+ ElementLine [-100000 -10000 -80000 -10000 2000]
+ ElementLine [-100000 -65000 -100000 -10000 2000]
+ ElementLine [-105000 -65000 -100000 -65000 2000]
+ ElementLine [-105000 -65000 -105000 0 2000]
+ ElementLine [-75000 -10000 -30000 -10000 2000]
+ ElementLine [-30000 -65000 -30000 -10000 2000]
+ ElementLine [-30000 -65000 -25000 -65000 2000]
+ ElementLine [-25000 -65000 -25000 -10000 2000]
+ ElementLine [-25000 -10000 -5000 -10000 2000]
+ ElementLine [-5000 -65000 -5000 -10000 2000]
+ ElementLine [-5000 -65000 0 -65000 2000]
+ ElementLine [0 -65000 0 0 2000]
+ ElementLine [-105000 0 0 0 2000]
+
+ )
+
+Element["" "Bottom lead polar circular component (typically capacitor)" "C10" "RCY100P" 315000 45000 4311 -9763 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 3500 "1" "1" "square"]
+ Pin[0 10000 6000 3000 6600 3500 "2" "2" ""]
+ ElementLine [-2500 -6500 2500 -6500 1000]
+ ElementLine [0 -9000 0 -4000 1000]
+ ElementArc [0 5000 10000 10000 270 360 1000]
+
+ )
+
+Element["" "DIP16" "U6" "unknown" 280000 130000 5000 -17000 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 2800 "1" "1" "square,edge2"]
+ Pin[10000 0 6000 3000 6600 2800 "2" "2" "edge2"]
+ Pin[20000 0 6000 3000 6600 2800 "3" "3" "edge2"]
+ Pin[30000 0 6000 3000 6600 2800 "4" "4" "edge2"]
+ Pin[40000 0 6000 3000 6600 2800 "5" "5" "edge2"]
+ Pin[50000 0 6000 3000 6600 2800 "6" "6" "edge2"]
+ Pin[60000 0 6000 3000 6600 2800 "7" "7" "edge2"]
+ Pin[70000 0 6000 3000 6600 2800 "8" "8" "edge2"]
+ Pin[70000 -30000 6000 3000 6600 2800 "9" "9" "edge2"]
+ Pin[60000 -30000 6000 3000 6600 2800 "10" "10" "edge2"]
+ Pin[50000 -30000 6000 3000 6600 2800 "11" "11" "edge2"]
+ Pin[40000 -30000 6000 3000 6600 2800 "12" "12" "edge2"]
+ Pin[30000 -30000 6000 3000 6600 2800 "13" "13" "edge2"]
+ Pin[20000 -30000 6000 3000 6600 2800 "14" "14" "edge2"]
+ Pin[10000 -30000 6000 3000 6600 2800 "15" "15" "edge2"]
+ Pin[0 -30000 6000 3000 6600 2800 "16" "16" "edge2"]
+ ElementLine [-5000 5000 75000 5000 1000]
+ ElementLine [75000 -35000 75000 5000 1000]
+ ElementLine [-5000 -35000 75000 -35000 1000]
+ ElementLine [-5000 -10000 -5000 5000 1000]
+ ElementLine [-5000 -35000 -5000 -20000 1000]
+ ElementArc [-5000 -15000 5000 5000 90 180 1000]
+
+ )
+
+Element["" "Radial lead circular non-polar component (typically capacitor)," "C2" "RCI200" 592500 380000 -3591 -32370 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 2800 "1" "1" "square"]
+ Pin[0 -20000 6000 3000 6600 2800 "2" "2" ""]
+ ElementLine [5000 -20000 5000 0 1000]
+ ElementLine [-5000 -20000 -5000 0 1000]
+ ElementArc [0 -20000 5000 5000 180 180 1000]
+ ElementArc [0 0 5000 5000 0 180 1000]
+
+ )
+
+Element["" "Radial lead circular non-polar component (typically capacitor)," "C27" "RCI200" 197500 52500 -14094 -11968 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 2800 "1" "1" "square,edge2"]
+ Pin[-20000 0 6000 3000 6600 2800 "2" "2" "edge2"]
+ ElementLine [-20000 -5000 0 -5000 1000]
+ ElementLine [-20000 5000 0 5000 1000]
+ ElementArc [-20000 0 5000 5000 270 180 1000]
+ ElementArc [0 0 5000 5000 90 180 1000]
+
+ )
+
+Element["" "LED5" "D2" "GREEN" 62500 250000 12402 -17173 0 100 ""]
+(
+ Pin[0 5000 6500 3000 7100 4300 "1" "1" "square"]
+ Pin[0 -5000 6500 3000 7100 4300 "2" "2" ""]
+ ElementArc [0 0 11800 11800 90 360 1000]
+ ElementArc [0 0 13800 13800 90 360 1000]
+
+ )
+
+Element["" "ACY400" "R4" "2k7" 605000 150000 918 -11236 0 100 ""]
+(
+ Pin[10000 0 6000 3000 6600 3500 "1" "1" "square,edge2"]
+ Pin[-30000 0 6000 3000 6600 3500 "2" "2" "edge2"]
+ ElementLine [0 0 10000 0 1000]
+ ElementLine [-30000 0 -20000 0 1000]
+ ElementLine [-20000 3300 0 3300 1000]
+ ElementLine [-20000 -3300 -20000 3300 1000]
+ ElementLine [-20000 -3300 0 -3300 1000]
+ ElementLine [0 -3300 0 3300 1000]
+
+ )
+
+Element["" "ACY400" "R5" "2k7" 547500 150000 -756 -11236 0 100 ""]
+(
+ Pin[10000 0 6000 3000 6600 3500 "1" "1" "square,edge2"]
+ Pin[-30000 0 6000 3000 6600 3500 "2" "2" "edge2"]
+ ElementLine [0 0 10000 0 1000]
+ ElementLine [-30000 0 -20000 0 1000]
+ ElementLine [-20000 3300 0 3300 1000]
+ ElementLine [-20000 -3300 -20000 3300 1000]
+ ElementLine [-20000 -3300 0 -3300 1000]
+ ElementLine [0 -3300 0 3300 1000]
+
+ )
+
+Element["" "Axial diode (pin 1 is cathode)" "D4" "ALF400" 342500 150000 28700 -6600 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 3500 "2" "2" "square,edge2"]
+ Pin[40000 0 6000 3000 6600 3500 "1" "1" "edge2"]
+ ElementLine [13300 -6600 13300 6600 1000]
+ ElementLine [26700 6600 13300 0 1000]
+ ElementLine [26700 -6600 26700 6600 1000]
+ ElementLine [13300 0 26700 -6600 1000]
+ ElementLine [26700 0 40000 0 1000]
+ ElementLine [0 0 13300 0 1000]
+
+ )
+
+Element["" "Radial lead circular non-polar component (typically capacitor)," "C4" "RCI200" 552500 360000 -3287 -11555 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 2800 "1" "1" "square"]
+ Pin[0 20000 6000 3000 6600 2800 "2" "2" ""]
+ ElementLine [-5000 0 -5000 20000 1000]
+ ElementLine [5000 0 5000 20000 1000]
+ ElementArc [0 20000 5000 5000 0 180 1000]
+ ElementArc [0 0 5000 5000 180 180 1000]
+
+ )
+
+Element["" "Bottom lead polar circular component (typically capacitor)" "C3" "RCY100P" 615000 350000 8663 -19804 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 3500 "1" "1" "square"]
+ Pin[0 -10000 6000 3000 6600 3500 "2" "2" ""]
+ ElementLine [-2500 6500 2500 6500 1000]
+ ElementLine [0 4000 0 9000 1000]
+ ElementArc [0 -5000 10000 10000 90 360 1000]
+
+ )
+
+Element["lock" "eurocard_3U" "" "EUROCARD_3U" 45000 5000 636000 0 3 100 "selected"]
+(
+ Pin[12500 22500 12000 3000 12600 8000 "M1" "1" "lock,edge2"]
+ Pin[12500 371200 12000 3000 12600 8000 "M2" "2" "lock,edge2"]
+ Pin[617500 22500 12000 3000 12600 8000 "M3" "3" "lock,edge2"]
+ Pin[617500 371200 12000 3000 12600 8000 "M4" "4" "lock,edge2"]
+ ElementLine [630000 0 0 0 2000]
+ ElementLine [630000 393700 630000 0 2000]
+ ElementLine [0 393700 630000 393700 2000]
+ ElementLine [0 0 0 393700 2000]
+
+ )
+
+Element["" "Radial lead circular non-polar component (typically capacitor)," "C6" "RCI200" 575000 380000 -2744 -31248 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 2800 "1" "1" "square"]
+ Pin[0 -20000 6000 3000 6600 2800 "2" "2" ""]
+ ElementLine [5000 -20000 5000 0 1000]
+ ElementLine [-5000 -20000 -5000 0 1000]
+ ElementArc [0 -20000 5000 5000 180 180 1000]
+ ElementArc [0 0 5000 5000 0 180 1000]
+
+ )
+
+Element["" "Push-button, tactile, right angle, 466mils actuator" "S1" "MJTP1236_D" 55000 320000 9800 8900 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 4200 "1" "1" "square,edge2"]
+ Pin[0 17700 6000 3000 6600 4200 "2" "2" "edge2"]
+ Pin[9800 -4900 7000 3000 7600 5200 "C1" "C1" "edge2"]
+ Pin[9800 22700 7000 3000 7600 5200 "C2" "C2" "edge2"]
+ ElementLine [-46600 14800 -10000 15800 2000]
+ ElementLine [-46600 3000 -46600 14800 2000]
+ ElementLine [-10000 2000 -46600 3000 2000]
+ ElementLine [3800 -4900 3800 22700 2000]
+ ElementLine [-10000 22700 15800 22700 2000]
+ ElementLine [-10000 -4900 -10000 22700 2000]
+ ElementLine [-10000 -4900 15800 -4900 2000]
+
+ )
+
+Element["" "Bottom lead polar circular component (typically capacitor)" "C22" "RCY400P" 552500 300000 15000 -2500 0 100 ""]
+(
+ Pin[0 0 10000 3000 10600 6000 "1" "1" "square,edge2"]
+ Pin[40000 0 10000 3000 10600 6000 "2" "2" "edge2"]
+ ElementLine [62000 0 66000 0 1000]
+ ElementLine [-24000 -2000 -24000 2000 1000]
+ ElementLine [-26000 0 -22000 0 1000]
+ ElementArc [20000 0 40000 40000 0 360 1000]
+
+ )
+
+Element["" "ACY400" "R11" "2k2" 425000 70000 -4732 -38992 0 100 ""]
+(
+ Pin[0 10000 6000 3000 6600 3500 "1" "1" "square"]
+ Pin[0 -30000 6000 3000 6600 3500 "2" "2" ""]
+ ElementLine [0 0 0 10000 1000]
+ ElementLine [0 -30000 0 -20000 1000]
+ ElementLine [-3300 -20000 -3300 0 1000]
+ ElementLine [-3300 -20000 3300 -20000 1000]
+ ElementLine [3300 -20000 3300 0 1000]
+ ElementLine [-3300 0 3300 0 1000]
+
+ )
+
+Element["" "ACY400" "R3" "10k" 430000 150000 524 -11766 0 100 ""]
+(
+ Pin[10000 0 6000 3000 6600 3500 "1" "1" "square,edge2"]
+ Pin[-30000 0 6000 3000 6600 3500 "2" "2" "edge2"]
+ ElementLine [0 0 10000 0 1000]
+ ElementLine [-30000 0 -20000 0 1000]
+ ElementLine [-20000 3300 0 3300 1000]
+ ElementLine [-20000 -3300 -20000 3300 1000]
+ ElementLine [-20000 -3300 0 -3300 1000]
+ ElementLine [0 -3300 0 3300 1000]
+
+ )
+
+Element["" "E22 standing" "" "E22" 520000 235000 -52500 -32500 2 100 ""]
+(
+ ElementLine [-75000 -65000 -75000 -10000 2000]
+ ElementLine [-80000 -65000 -75000 -65000 2000]
+ ElementLine [-80000 -65000 -80000 -10000 2000]
+ ElementLine [-100000 -10000 -80000 -10000 2000]
+ ElementLine [-100000 -65000 -100000 -10000 2000]
+ ElementLine [-105000 -65000 -100000 -65000 2000]
+ ElementLine [-105000 -65000 -105000 0 2000]
+ ElementLine [-75000 -10000 -30000 -10000 2000]
+ ElementLine [-30000 -65000 -30000 -10000 2000]
+ ElementLine [-30000 -65000 -25000 -65000 2000]
+ ElementLine [-25000 -65000 -25000 -10000 2000]
+ ElementLine [-25000 -10000 -5000 -10000 2000]
+ ElementLine [-5000 -65000 -5000 -10000 2000]
+ ElementLine [-5000 -65000 0 -65000 2000]
+ ElementLine [0 -65000 0 0 2000]
+ ElementLine [-105000 0 0 0 2000]
+
+ )
+
+Element["" "ACY400" "R2" "2k2" 470000 150000 19973 -10448 0 100 ""]
+(
+ Pin[-10000 0 6000 3000 6600 3500 "1" "1" "square,edge2"]
+ Pin[30000 0 6000 3000 6600 3500 "2" "2" "edge2"]
+ ElementLine [-10000 0 0 0 1000]
+ ElementLine [20000 0 30000 0 1000]
+ ElementLine [0 -3300 20000 -3300 1000]
+ ElementLine [20000 -3300 20000 3300 1000]
+ ElementLine [0 3300 20000 3300 1000]
+ ElementLine [0 -3300 0 3300 1000]
+
+ )
+
+Element["" "ACY400" "R8" "2k2" 547500 70000 -2980 -40823 0 100 ""]
+(
+ Pin[0 10000 6000 3000 6600 3500 "1" "1" "square"]
+ Pin[0 -30000 6000 3000 6600 3500 "2" "2" ""]
+ ElementLine [0 0 0 10000 1000]
+ ElementLine [0 -30000 0 -20000 1000]
+ ElementLine [-3300 -20000 -3300 0 1000]
+ ElementLine [-3300 -20000 3300 -20000 1000]
+ ElementLine [3300 -20000 3300 0 1000]
+ ElementLine [-3300 0 3300 0 1000]
+
+ )
+
+Element["" "Radial lead circular non-polar component (typically capacitor)," "C20" "RCI200" 177500 105000 -3189 -12500 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 2800 "1" "1" "square"]
+ Pin[0 20000 6000 3000 6600 2800 "2" "2" ""]
+ ElementLine [-5000 0 -5000 20000 1000]
+ ElementLine [5000 0 5000 20000 1000]
+ ElementArc [0 20000 5000 5000 0 180 1000]
+ ElementArc [0 0 5000 5000 180 180 1000]
+
+ )
+
+Element["" "TO220W" "Q3" "unknown" 477500 210000 -11024 17598 0 100 ""]
+(
+ Pin[0 0 8000 3000 8600 4200 "1" "1" "square,edge2"]
+ Pin[-10000 0 8000 3000 8600 4200 "2" "2" "edge2"]
+ Pin[-20000 0 8000 3000 8600 4200 "3" "3" "edge2"]
+ ElementLine [-30000 12000 10000 12000 2000]
+ ElementLine [-30000 -6000 -30000 12000 2000]
+ ElementLine [-30000 -6000 10000 -6000 2000]
+ ElementLine [10000 -6000 10000 12000 2000]
+ ElementLine [-30000 12000 10000 12000 2000]
+ ElementLine [-30000 6000 -30000 12000 2000]
+ ElementLine [-30000 6000 10000 6000 2000]
+ ElementLine [10000 6000 10000 12000 2000]
+ ElementLine [-3000 6000 -3000 12000 1000]
+ ElementLine [-17000 6000 -17000 12000 1000]
+
+ )
+
+Element["" "Radial lead circular non-polar component (typically capacitor)," "C14" "RCI200" 507500 30000 -15433 -11319 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 2800 "1" "1" "square,edge2"]
+ Pin[-20000 0 6000 3000 6600 2800 "2" "2" "edge2"]
+ ElementLine [-20000 -5000 0 -5000 1000]
+ ElementLine [-20000 5000 0 5000 1000]
+ ElementArc [-20000 0 5000 5000 270 180 1000]
+ ElementArc [0 0 5000 5000 90 180 1000]
+
+ )
+
+Element["" "RCY100P" "C21" "4.7uFx16V" 242500 175000 12834 -12756 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 3500 "1" "1" "square,edge2"]
+ Pin[10000 0 6000 3000 6600 3500 "2" "2" "edge2"]
+ ElementLine [-9000 0 -4000 0 1000]
+ ElementLine [-6500 -2500 -6500 2500 1000]
+ ElementArc [5000 0 10000 10000 0 360 1000]
+
+ )
+
+Element["" "ACY400" "R12" "10k" 442500 70000 -4280 -39522 0 100 ""]
+(
+ Pin[0 10000 6000 3000 6600 3500 "1" "1" "square"]
+ Pin[0 -30000 6000 3000 6600 3500 "2" "2" ""]
+ ElementLine [0 0 0 10000 1000]
+ ElementLine [0 -30000 0 -20000 1000]
+ ElementLine [-3300 -20000 -3300 0 1000]
+ ElementLine [-3300 -20000 3300 -20000 1000]
+ ElementLine [3300 -20000 3300 0 1000]
+ ElementLine [-3300 0 3300 0 1000]
+
+ )
+
+Element["" "E22 standing" "" "E22" 392500 235000 -52500 -32500 2 100 ""]
+(
+ ElementLine [-75000 -65000 -75000 -10000 2000]
+ ElementLine [-80000 -65000 -75000 -65000 2000]
+ ElementLine [-80000 -65000 -80000 -10000 2000]
+ ElementLine [-100000 -10000 -80000 -10000 2000]
+ ElementLine [-100000 -65000 -100000 -10000 2000]
+ ElementLine [-105000 -65000 -100000 -65000 2000]
+ ElementLine [-105000 -65000 -105000 0 2000]
+ ElementLine [-75000 -10000 -30000 -10000 2000]
+ ElementLine [-30000 -65000 -30000 -10000 2000]
+ ElementLine [-30000 -65000 -25000 -65000 2000]
+ ElementLine [-25000 -65000 -25000 -10000 2000]
+ ElementLine [-25000 -10000 -5000 -10000 2000]
+ ElementLine [-5000 -65000 -5000 -10000 2000]
+ ElementLine [-5000 -65000 0 -65000 2000]
+ ElementLine [0 -65000 0 0 2000]
+ ElementLine [-105000 0 0 0 2000]
+
+ )
+
+Element["" "Radial lead circular non-polar component (typically capacitor)," "C8" "RCI200" 460000 125000 -4349 -30610 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 2800 "1" "1" "square"]
+ Pin[0 -20000 6000 3000 6600 2800 "2" "2" ""]
+ ElementLine [5000 -20000 5000 0 1000]
+ ElementLine [-5000 -20000 -5000 0 1000]
+ ElementArc [0 -20000 5000 5000 180 180 1000]
+ ElementArc [0 0 5000 5000 0 180 1000]
+
+ )
+
+Element["" "Bottom lead polar circular component (typically capacitor)" "C12" "RCY100P" 320000 150000 4332 -10788 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 3500 "1" "1" "square,edge2"]
+ Pin[-10000 0 6000 3000 6600 3500 "2" "2" "edge2"]
+ ElementLine [6500 -2500 6500 2500 1000]
+ ElementLine [4000 0 9000 0 1000]
+ ElementArc [-5000 0 10000 10000 180 360 1000]
+
+ )
+
+Element["" "Bottom lead polar circular component (typically capacitor)" "C18" "RCY400P" 552500 202500 17500 -2500 0 100 ""]
+(
+ Pin[0 0 10000 3000 10600 6000 "1" "1" "square,edge2"]
+ Pin[40000 0 10000 3000 10600 6000 "2" "2" "edge2"]
+ ElementLine [62000 0 66000 0 1000]
+ ElementLine [-24000 -2000 -24000 2000 1000]
+ ElementLine [-26000 0 -22000 0 1000]
+ ElementArc [20000 0 40000 40000 0 360 1000]
+
+ )
+
+Element["" "RCY100P" "C16" "4.7uFx16V" 192500 75000 12441 -14153 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 3500 "1" "1" "square,edge2"]
+ Pin[10000 0 6000 3000 6600 3500 "2" "2" "edge2"]
+ ElementLine [-9000 0 -4000 0 1000]
+ ElementLine [-6500 -2500 -6500 2500 1000]
+ ElementArc [5000 0 10000 10000 0 360 1000]
+
+ )
+
+Element["" "Radial lead circular non-polar component (typically capacitor)," "C15" "RCI200" 607500 30000 -15178 -11319 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 2800 "1" "1" "square,edge2"]
+ Pin[-20000 0 6000 3000 6600 2800 "2" "2" "edge2"]
+ ElementLine [-20000 -5000 0 -5000 1000]
+ ElementLine [-20000 5000 0 5000 1000]
+ ElementArc [-20000 0 5000 5000 270 180 1000]
+ ElementArc [0 0 5000 5000 90 180 1000]
+
+ )
+
+Element["" "TO220W" "Q5" "unknown" 477500 285000 -11555 17736 0 100 ""]
+(
+ Pin[0 0 8000 3000 8600 4200 "1" "1" "square,edge2"]
+ Pin[-10000 0 8000 3000 8600 4200 "2" "2" "edge2"]
+ Pin[-20000 0 8000 3000 8600 4200 "3" "3" "edge2"]
+ ElementLine [-30000 12000 10000 12000 2000]
+ ElementLine [-30000 -6000 -30000 12000 2000]
+ ElementLine [-30000 -6000 10000 -6000 2000]
+ ElementLine [10000 -6000 10000 12000 2000]
+ ElementLine [-30000 12000 10000 12000 2000]
+ ElementLine [-30000 6000 -30000 12000 2000]
+ ElementLine [-30000 6000 10000 6000 2000]
+ ElementLine [10000 6000 10000 12000 2000]
+ ElementLine [-3000 6000 -3000 12000 1000]
+ ElementLine [-17000 6000 -17000 12000 1000]
+
+ )
+
+Element["" "DIP28N" "U7" "unknown" 482500 130000 5000 -17000 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 2800 "1" "1" "square,edge2"]
+ Pin[10000 0 6000 3000 6600 2800 "2" "2" "edge2"]
+ Pin[20000 0 6000 3000 6600 2800 "3" "3" "edge2"]
+ Pin[30000 0 6000 3000 6600 2800 "4" "4" "edge2"]
+ Pin[40000 0 6000 3000 6600 2800 "5" "5" "edge2"]
+ Pin[50000 0 6000 3000 6600 2800 "6" "6" "edge2"]
+ Pin[60000 0 6000 3000 6600 2800 "7" "7" "edge2"]
+ Pin[70000 0 6000 3000 6600 2800 "8" "8" "edge2"]
+ Pin[80000 0 6000 3000 6600 2800 "9" "9" "edge2"]
+ Pin[90000 0 6000 3000 6600 2800 "10" "10" "edge2"]
+ Pin[100000 0 6000 3000 6600 2800 "11" "11" "edge2"]
+ Pin[110000 0 6000 3000 6600 2800 "12" "12" "edge2"]
+ Pin[120000 0 6000 3000 6600 2800 "13" "13" "edge2"]
+ Pin[130000 0 6000 3000 6600 2800 "14" "14" "edge2"]
+ Pin[130000 -30000 6000 3000 6600 2800 "15" "15" "edge2"]
+ Pin[120000 -30000 6000 3000 6600 2800 "16" "16" "edge2"]
+ Pin[110000 -30000 6000 3000 6600 2800 "17" "17" "edge2"]
+ Pin[100000 -30000 6000 3000 6600 2800 "18" "18" "edge2"]
+ Pin[90000 -30000 6000 3000 6600 2800 "19" "19" "edge2"]
+ Pin[80000 -30000 6000 3000 6600 2800 "20" "20" "edge2"]
+ Pin[70000 -30000 6000 3000 6600 2800 "21" "21" "edge2"]
+ Pin[60000 -30000 6000 3000 6600 2800 "22" "22" "edge2"]
+ Pin[50000 -30000 6000 3000 6600 2800 "23" "23" "edge2"]
+ Pin[40000 -30000 6000 3000 6600 2800 "24" "24" "edge2"]
+ Pin[30000 -30000 6000 3000 6600 2800 "25" "25" "edge2"]
+ Pin[20000 -30000 6000 3000 6600 2800 "26" "26" "edge2"]
+ Pin[10000 -30000 6000 3000 6600 2800 "27" "27" "edge2"]
+ Pin[0 -30000 6000 3000 6600 2800 "28" "28" "edge2"]
+ ElementLine [-5000 5000 135000 5000 1000]
+ ElementLine [135000 -35000 135000 5000 1000]
+ ElementLine [-5000 -35000 135000 -35000 1000]
+ ElementLine [-5000 -10000 -5000 5000 1000]
+ ElementLine [-5000 -35000 -5000 -20000 1000]
+ ElementArc [-5000 -15000 5000 5000 90 180 1000]
+
+ )
+
+Element["" "TO220W" "Q2" "unknown" 350000 210000 -11929 18130 0 100 ""]
+(
+ Pin[0 0 8000 3000 8600 4200 "1" "1" "square,edge2"]
+ Pin[-10000 0 8000 3000 8600 4200 "2" "2" "edge2"]
+ Pin[-20000 0 8000 3000 8600 4200 "3" "3" "edge2"]
+ ElementLine [-30000 12000 10000 12000 2000]
+ ElementLine [-30000 -6000 -30000 12000 2000]
+ ElementLine [-30000 -6000 10000 -6000 2000]
+ ElementLine [10000 -6000 10000 12000 2000]
+ ElementLine [-30000 12000 10000 12000 2000]
+ ElementLine [-30000 6000 -30000 12000 2000]
+ ElementLine [-30000 6000 10000 6000 2000]
+ ElementLine [10000 6000 10000 12000 2000]
+ ElementLine [-3000 6000 -3000 12000 1000]
+ ElementLine [-17000 6000 -17000 12000 1000]
+
+ )
+
+Element["" "ACY400" "R7" "470" 442500 105000 -2508 -18579 0 100 ""]
+(
+ Pin[0 -10000 6000 3000 6600 3500 "1" "1" "square"]
+ Pin[0 30000 6000 3000 6600 3500 "2" "2" ""]
+ ElementLine [0 -10000 0 0 1000]
+ ElementLine [0 20000 0 30000 1000]
+ ElementLine [3300 0 3300 20000 1000]
+ ElementLine [-3300 20000 3300 20000 1000]
+ ElementLine [-3300 0 -3300 20000 1000]
+ ElementLine [-3300 0 3300 0 1000]
+
+ )
+
+Element["" "DIP8" "U4" "unknown" 482500 75000 5000 -17500 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 2800 "1" "1" "square"]
+ Pin[10000 0 6000 3000 6600 2800 "2" "2" ""]
+ Pin[20000 0 6000 3000 6600 2800 "3" "3" ""]
+ Pin[30000 0 6000 3000 6600 2800 "4" "4" ""]
+ Pin[30000 -30000 6000 3000 6600 2800 "5" "5" ""]
+ Pin[20000 -30000 6000 3000 6600 2800 "6" "6" ""]
+ Pin[10000 -30000 6000 3000 6600 2800 "7" "7" ""]
+ Pin[0 -30000 6000 3000 6600 2800 "8" "8" ""]
+ ElementLine [-5000 5000 35000 5000 1000]
+ ElementLine [35000 -35000 35000 5000 1000]
+ ElementLine [-5000 -35000 35000 -35000 1000]
+ ElementLine [-5000 -10000 -5000 5000 1000]
+ ElementLine [-5000 -35000 -5000 -20000 1000]
+ ElementArc [-5000 -15000 5000 5000 90 180 1000]
+
+ )
+
+Element["" "ACY400" "R10" "390" 532500 50000 -3807 -20113 0 100 ""]
+(
+ Pin[0 -10000 6000 3000 6600 3500 "1" "1" "square"]
+ Pin[0 30000 6000 3000 6600 3500 "2" "2" ""]
+ ElementLine [0 -10000 0 0 1000]
+ ElementLine [0 20000 0 30000 1000]
+ ElementLine [3300 0 3300 20000 1000]
+ ElementLine [-3300 20000 3300 20000 1000]
+ ElementLine [-3300 0 -3300 20000 1000]
+ ElementLine [-3300 0 3300 0 1000]
+
+ )
+
+Element["" "Axial diode (pin 1 is cathode)" "D8" "ALF400" 232500 215000 29056 -9395 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 3500 "2" "2" "square,edge2"]
+ Pin[40000 0 6000 3000 6600 3500 "1" "1" "edge2"]
+ ElementLine [13300 -6600 13300 6600 1000]
+ ElementLine [26700 6600 13300 0 1000]
+ ElementLine [26700 -6600 26700 6600 1000]
+ ElementLine [13300 0 26700 -6600 1000]
+ ElementLine [26700 0 40000 0 1000]
+ ElementLine [0 0 13300 0 1000]
+
+ )
+
+Element["" "ACY400" "R9" "390" 562500 70000 -4201 -39600 0 100 ""]
+(
+ Pin[0 10000 6000 3000 6600 3500 "1" "1" "square"]
+ Pin[0 -30000 6000 3000 6600 3500 "2" "2" ""]
+ ElementLine [0 0 0 10000 1000]
+ ElementLine [0 -30000 0 -20000 1000]
+ ElementLine [-3300 -20000 -3300 0 1000]
+ ElementLine [-3300 -20000 3300 -20000 1000]
+ ElementLine [3300 -20000 3300 0 1000]
+ ElementLine [-3300 0 3300 0 1000]
+
+ )
+
+Element["" "DIP8" "U3" "unknown" 582500 75000 5000 -17000 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 2800 "1" "1" "square"]
+ Pin[10000 0 6000 3000 6600 2800 "2" "2" ""]
+ Pin[20000 0 6000 3000 6600 2800 "3" "3" ""]
+ Pin[30000 0 6000 3000 6600 2800 "4" "4" ""]
+ Pin[30000 -30000 6000 3000 6600 2800 "5" "5" ""]
+ Pin[20000 -30000 6000 3000 6600 2800 "6" "6" ""]
+ Pin[10000 -30000 6000 3000 6600 2800 "7" "7" ""]
+ Pin[0 -30000 6000 3000 6600 2800 "8" "8" ""]
+ ElementLine [-5000 5000 35000 5000 1000]
+ ElementLine [35000 -35000 35000 5000 1000]
+ ElementLine [-5000 -35000 35000 -35000 1000]
+ ElementLine [-5000 -10000 -5000 5000 1000]
+ ElementLine [-5000 -35000 -5000 -20000 1000]
+ ElementArc [-5000 -15000 5000 5000 90 180 1000]
+
+ )
+
+Element["" "DIP8" "U2" "unknown" 372500 130000 7500 -17500 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 2800 "1" "1" "square"]
+ Pin[10000 0 6000 3000 6600 2800 "2" "2" ""]
+ Pin[20000 0 6000 3000 6600 2800 "3" "3" ""]
+ Pin[30000 0 6000 3000 6600 2800 "4" "4" ""]
+ Pin[30000 -30000 6000 3000 6600 2800 "5" "5" ""]
+ Pin[20000 -30000 6000 3000 6600 2800 "6" "6" ""]
+ Pin[10000 -30000 6000 3000 6600 2800 "7" "7" ""]
+ Pin[0 -30000 6000 3000 6600 2800 "8" "8" ""]
+ ElementLine [-5000 5000 35000 5000 1000]
+ ElementLine [35000 -35000 35000 5000 1000]
+ ElementLine [-5000 -35000 35000 -35000 1000]
+ ElementLine [-5000 -10000 -5000 5000 1000]
+ ElementLine [-5000 -35000 -5000 -20000 1000]
+ ElementArc [-5000 -15000 5000 5000 90 180 1000]
+
+ )
+
+Element["" "Radial lead circular non-polar component (typically capacitor)," "C9" "RCI200" 397500 30000 -13937 -11318 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 2800 "1" "1" "square,edge2"]
+ Pin[-20000 0 6000 3000 6600 2800 "2" "2" "edge2"]
+ ElementLine [-20000 -5000 0 -5000 1000]
+ ElementLine [-20000 5000 0 5000 1000]
+ ElementArc [-20000 0 5000 5000 270 180 1000]
+ ElementArc [0 0 5000 5000 90 180 1000]
+
+ )
+
+Element["" "DIP8" "U5" "unknown" 372500 75000 5000 -17000 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 2800 "1" "1" "square"]
+ Pin[10000 0 6000 3000 6600 2800 "2" "2" ""]
+ Pin[20000 0 6000 3000 6600 2800 "3" "3" ""]
+ Pin[30000 0 6000 3000 6600 2800 "4" "4" ""]
+ Pin[30000 -30000 6000 3000 6600 2800 "5" "5" ""]
+ Pin[20000 -30000 6000 3000 6600 2800 "6" "6" ""]
+ Pin[10000 -30000 6000 3000 6600 2800 "7" "7" ""]
+ Pin[0 -30000 6000 3000 6600 2800 "8" "8" ""]
+ ElementLine [-5000 5000 35000 5000 1000]
+ ElementLine [35000 -35000 35000 5000 1000]
+ ElementLine [-5000 -35000 35000 -35000 1000]
+ ElementLine [-5000 -10000 -5000 5000 1000]
+ ElementLine [-5000 -35000 -5000 -20000 1000]
+ ElementArc [-5000 -15000 5000 5000 90 180 1000]
+
+ )
+
+Element["" "Dual in-line package, narrow (300 mil)" "U9" "DIP14" 195000 130000 5000 -17000 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 2800 "1" "1" "square,edge2"]
+ Pin[10000 0 6000 3000 6600 2800 "2" "2" "edge2"]
+ Pin[20000 0 6000 3000 6600 2800 "3" "3" "edge2"]
+ Pin[30000 0 6000 3000 6600 2800 "4" "4" "edge2"]
+ Pin[40000 0 6000 3000 6600 2800 "5" "5" "edge2"]
+ Pin[50000 0 6000 3000 6600 2800 "6" "6" "edge2"]
+ Pin[60000 0 6000 3000 6600 2800 "7" "7" "edge2"]
+ Pin[60000 -30000 6000 3000 6600 2800 "8" "8" "edge2"]
+ Pin[50000 -30000 6000 3000 6600 2800 "9" "9" "edge2"]
+ Pin[40000 -30000 6000 3000 6600 2800 "10" "10" "edge2"]
+ Pin[30000 -30000 6000 3000 6600 2800 "11" "11" "edge2"]
+ Pin[20000 -30000 6000 3000 6600 2800 "12" "12" "edge2"]
+ Pin[10000 -30000 6000 3000 6600 2800 "13" "13" "edge2"]
+ Pin[0 -30000 6000 3000 6600 2800 "14" "14" "edge2"]
+ ElementLine [-5000 -35000 -5000 -20000 1000]
+ ElementLine [-5000 -10000 -5000 5000 1000]
+ ElementLine [-5000 -35000 65000 -35000 1000]
+ ElementLine [65000 -35000 65000 5000 1000]
+ ElementLine [-5000 5000 65000 5000 1000]
+ ElementArc [-5000 -15000 5000 5000 90 180 1000]
+
+ )
+
+Element["" "Radial lead circular non-polar component (typically capacitor)," "C17" "RCI200" 250000 30000 -14094 -11968 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 2800 "1" "1" "square,edge2"]
+ Pin[-20000 0 6000 3000 6600 2800 "2" "2" "edge2"]
+ ElementLine [-20000 -5000 0 -5000 1000]
+ ElementLine [-20000 5000 0 5000 1000]
+ ElementArc [-20000 0 5000 5000 270 180 1000]
+ ElementArc [0 0 5000 5000 90 180 1000]
+
+ )
+
+Element["" "RCY100P" "C5" "1uFx16V" 310000 75000 15000 -10000 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 3500 "1" "1" "square,edge2"]
+ Pin[10000 0 6000 3000 6600 3500 "2" "2" "edge2"]
+ ElementLine [-4000 0 -9000 0 1000]
+ ElementLine [-6500 -2500 -6500 2500 1000]
+ ElementArc [5000 0 10000 10000 0 360 1000]
+
+ )
+
+Element["" "DSUB connector, female/male" "J1" "DB9M" 80000 102500 -21527 -8169 0 100 ""]
+(
+ Pin[-5000 -27000 14000 3000 14600 12000 "C1" "C1" ""]
+ Pin[-5000 70600 14000 3000 14600 12000 "C1" "C1" ""]
+ Pin[0 0 6000 3000 6600 3500 "1" "1" "square"]
+ Pin[0 10900 6000 3000 6600 3500 "2" "2" ""]
+ Pin[0 21800 6000 3000 6600 3500 "3" "3" ""]
+ Pin[0 32700 6000 3000 6600 3500 "4" "4" ""]
+ Pin[0 43600 6000 3000 6600 3500 "5" "5" ""]
+ Pin[-10000 5400 6000 3000 6600 3500 "6" "6" ""]
+ Pin[-10000 16300 6000 3000 6600 3500 "7" "7" ""]
+ Pin[-10000 27200 6000 3000 6600 3500 "8" "8" ""]
+ Pin[-10000 38100 6000 3000 6600 3500 "9" "9" ""]
+ ElementLine [-10000 38100 -28000 38100 2000]
+ ElementLine [-10000 27200 -28000 27200 2000]
+ ElementLine [-10000 16300 -28000 16300 2000]
+ ElementLine [-10000 5400 -28000 5400 2000]
+ ElementLine [0 43600 -28000 43600 2000]
+ ElementLine [0 32700 -28000 32700 2000]
+ ElementLine [0 21800 -28000 21800 2000]
+ ElementLine [0 10900 -28000 10900 2000]
+ ElementLine [0 0 -28000 0 2000]
+ ElementLine [-48000 59600 -48000 -16000 1000]
+ ElementLine [-28000 59600 -48000 59600 2000]
+ ElementLine [-28000 -16000 -28000 59600 2000]
+ ElementLine [-48000 -16000 -28000 -16000 2000]
+ ElementLine [-78000 53600 -78000 -10000 2000]
+ ElementLine [-51000 53600 -78000 53600 2000]
+ ElementLine [-51000 -10000 -51000 53600 1000]
+ ElementLine [-78000 -10000 -51000 -10000 2000]
+ ElementLine [-51000 64600 -48000 64600 1000]
+ ElementLine [-51000 76600 -48000 76600 1000]
+ ElementLine [-51000 -21000 -48000 -21000 1000]
+ ElementLine [-51000 -33000 -48000 -33000 1000]
+ ElementLine [-51000 82600 -51000 -39000 1000]
+ ElementLine [-48000 82600 -51000 82600 1000]
+ ElementLine [-48000 -39000 -48000 82600 1000]
+ ElementLine [-51000 -39000 -48000 -39000 1000]
+
+ )
+
+Element["" "ACY400" "R1" "470" 345000 50000 -3689 -20783 0 100 ""]
+(
+ Pin[0 -10000 6000 3000 6600 3500 "1" "1" "square"]
+ Pin[0 30000 6000 3000 6600 3500 "2" "2" ""]
+ ElementLine [0 -10000 0 0 1000]
+ ElementLine [0 20000 0 30000 1000]
+ ElementLine [3300 0 3300 20000 1000]
+ ElementLine [-3300 20000 3300 20000 1000]
+ ElementLine [-3300 0 -3300 20000 1000]
+ ElementLine [-3300 0 3300 0 1000]
+
+ )
+
+Element["" "E22 standing" "" "E22" 520000 310000 -52500 -32500 2 100 ""]
+(
+ ElementLine [-75000 -65000 -75000 -10000 2000]
+ ElementLine [-80000 -65000 -75000 -65000 2000]
+ ElementLine [-80000 -65000 -80000 -10000 2000]
+ ElementLine [-100000 -10000 -80000 -10000 2000]
+ ElementLine [-100000 -65000 -100000 -10000 2000]
+ ElementLine [-105000 -65000 -100000 -65000 2000]
+ ElementLine [-105000 -65000 -105000 0 2000]
+ ElementLine [-75000 -10000 -30000 -10000 2000]
+ ElementLine [-30000 -65000 -30000 -10000 2000]
+ ElementLine [-30000 -65000 -25000 -65000 2000]
+ ElementLine [-25000 -65000 -25000 -10000 2000]
+ ElementLine [-25000 -10000 -5000 -10000 2000]
+ ElementLine [-5000 -65000 -5000 -10000 2000]
+ ElementLine [-5000 -65000 0 -65000 2000]
+ ElementLine [0 -65000 0 0 2000]
+ ElementLine [-105000 0 0 0 2000]
+
+ )
+
+Element["" "Axial non-polar component (typically resistor or capacitor)," "R18" "ACY400" 207500 235000 -737 -10644 0 100 ""]
+(
+ Pin[10000 0 5500 3000 6100 3000 "1" "1" "square,edge2"]
+ Pin[-30000 0 5500 3000 6100 3000 "2" "2" "edge2"]
+ ElementLine [0 -3300 0 3300 1000]
+ ElementLine [-20000 -3300 0 -3300 1000]
+ ElementLine [-20000 -3300 -20000 3300 1000]
+ ElementLine [-20000 3300 0 3300 1000]
+ ElementLine [-30000 0 -20000 0 1000]
+ ElementLine [0 0 10000 0 1000]
+
+ )
+
+Element["" "Axial non-polar component (typically resistor or capacitor)," "R19" "ACY400" 262500 235000 -147 -11452 0 100 ""]
+(
+ Pin[10000 0 5500 3000 6100 3000 "1" "1" "square,edge2"]
+ Pin[-30000 0 5500 3000 6100 3000 "2" "2" "edge2"]
+ ElementLine [0 -3300 0 3300 1000]
+ ElementLine [-20000 -3300 0 -3300 1000]
+ ElementLine [-20000 -3300 -20000 3300 1000]
+ ElementLine [-20000 3300 0 3300 1000]
+ ElementLine [-30000 0 -20000 0 1000]
+ ElementLine [0 0 10000 0 1000]
+
+ )
+
+Element["" "Axial diode (pin 1 is cathode)" "D10" "ALF400" 232500 255000 29586 -9314 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 3500 "2" "2" "square,edge2"]
+ Pin[40000 0 6000 3000 6600 3500 "1" "1" "edge2"]
+ ElementLine [13300 -6600 13300 6600 1000]
+ ElementLine [26700 6600 13300 0 1000]
+ ElementLine [26700 -6600 26700 6600 1000]
+ ElementLine [13300 0 26700 -6600 1000]
+ ElementLine [26700 0 40000 0 1000]
+ ElementLine [0 0 13300 0 1000]
+
+ )
+
+Element["" "Axial diode (pin 1 is cathode)" "D9" "ALF400" 177500 255000 28522 -9081 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 3500 "2" "2" "square,edge2"]
+ Pin[40000 0 6000 3000 6600 3500 "1" "1" "edge2"]
+ ElementLine [13300 -6600 13300 6600 1000]
+ ElementLine [26700 6600 13300 0 1000]
+ ElementLine [26700 -6600 26700 6600 1000]
+ ElementLine [13300 0 26700 -6600 1000]
+ ElementLine [26700 0 40000 0 1000]
+ ElementLine [0 0 13300 0 1000]
+
+ )
+
+Element["" "Dual in-line package, narrow (300 mil)" "U10" "DIP14" 195000 350000 5000 -17000 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 2800 "1" "1" "square,edge2"]
+ Pin[10000 0 6000 3000 6600 2800 "2" "2" "edge2"]
+ Pin[20000 0 6000 3000 6600 2800 "3" "3" "edge2"]
+ Pin[30000 0 6000 3000 6600 2800 "4" "4" "edge2"]
+ Pin[40000 0 6000 3000 6600 2800 "5" "5" "edge2"]
+ Pin[50000 0 6000 3000 6600 2800 "6" "6" "edge2"]
+ Pin[60000 0 6000 3000 6600 2800 "7" "7" "edge2"]
+ Pin[60000 -30000 6000 3000 6600 2800 "8" "8" "edge2"]
+ Pin[50000 -30000 6000 3000 6600 2800 "9" "9" "edge2"]
+ Pin[40000 -30000 6000 3000 6600 2800 "10" "10" "edge2"]
+ Pin[30000 -30000 6000 3000 6600 2800 "11" "11" "edge2"]
+ Pin[20000 -30000 6000 3000 6600 2800 "12" "12" "edge2"]
+ Pin[10000 -30000 6000 3000 6600 2800 "13" "13" "edge2"]
+ Pin[0 -30000 6000 3000 6600 2800 "14" "14" "edge2"]
+ ElementLine [-5000 -35000 -5000 -20000 1000]
+ ElementLine [-5000 -10000 -5000 5000 1000]
+ ElementLine [-5000 -35000 65000 -35000 1000]
+ ElementLine [65000 -35000 65000 5000 1000]
+ ElementLine [-5000 5000 65000 5000 1000]
+ ElementArc [-5000 -15000 5000 5000 90 180 1000]
+
+ )
+
+Element["" "Radial lead circular non-polar component (typically capacitor)," "C24" "RCI200" 177500 325000 -5690 -12500 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 2800 "1" "1" "square"]
+ Pin[0 20000 6000 3000 6600 2800 "2" "2" ""]
+ ElementLine [-5000 0 -5000 20000 1000]
+ ElementLine [5000 0 5000 20000 1000]
+ ElementArc [0 20000 5000 5000 0 180 1000]
+ ElementArc [0 0 5000 5000 180 180 1000]
+
+ )
+
+Element["" "Axial non-polar component (typically resistor or capacitor)," "R16" "ACY400" 187500 195000 19264 -11000 0 100 ""]
+(
+ Pin[-10000 0 5500 3000 6100 3000 "1" "1" "square,edge2"]
+ Pin[30000 0 5500 3000 6100 3000 "2" "2" "edge2"]
+ ElementLine [0 -3300 0 3300 1000]
+ ElementLine [0 3300 20000 3300 1000]
+ ElementLine [20000 -3300 20000 3300 1000]
+ ElementLine [0 -3300 20000 -3300 1000]
+ ElementLine [20000 0 30000 0 1000]
+ ElementLine [-10000 0 0 0 1000]
+
+ )
+
+Element["" "Axial diode (pin 1 is cathode)" "D7" "ALF400" 177500 215000 29054 -9436 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 3500 "2" "2" "square,edge2"]
+ Pin[40000 0 6000 3000 6600 3500 "1" "1" "edge2"]
+ ElementLine [13300 -6600 13300 6600 1000]
+ ElementLine [26700 6600 13300 0 1000]
+ ElementLine [26700 -6600 26700 6600 1000]
+ ElementLine [13300 0 26700 -6600 1000]
+ ElementLine [26700 0 40000 0 1000]
+ ElementLine [0 0 13300 0 1000]
+
+ )
+
+Element["" "Axial diode (pin 1 is cathode)" "D6" "ALF400" 217500 300000 -12423 -10537 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 3500 "2" "2" "square,edge2"]
+ Pin[-40000 0 6000 3000 6600 3500 "1" "1" "edge2"]
+ ElementLine [-13300 -6600 -13300 6600 1000]
+ ElementLine [-26700 -6600 -13300 0 1000]
+ ElementLine [-26700 -6600 -26700 6600 1000]
+ ElementLine [-13300 0 -26700 6600 1000]
+ ElementLine [-40000 0 -26700 0 1000]
+ ElementLine [-13300 0 0 0 1000]
+
+ )
+
+Element["" "RCY100P" "C25" "4.7uFx16V" 242500 300000 12500 -12500 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 3500 "1" "1" "square,edge2"]
+ Pin[10000 0 6000 3000 6600 3500 "2" "2" "edge2"]
+ ElementLine [-9000 0 -4000 0 1000]
+ ElementLine [-6500 -2500 -6500 2500 1000]
+ ElementArc [5000 0 10000 10000 0 360 1000]
+
+ )
+
+Element["" "RCY100P" "C23" "4.7uFx16V" 242500 275000 13090 -11654 0 100 ""]
+(
+ Pin[0 0 6000 3000 6600 3500 "1" "1" "square,edge2"]
+ Pin[10000 0 6000 3000 6600 3500 "2" "2" "edge2"]
+ ElementLine [-9000 0 -4000 0 1000]
+ ElementLine [-6500 -2500 -6500 2500 1000]
+ ElementArc [5000 0 10000 10000 0 360 1000]
+
+ )
+
+Element["" "Axial non-polar component (typically resistor or capacitor)," "R15" "ACY400" 207500 275000 -126 -9345 0 100 ""]
+(
+ Pin[10000 0 5500 3000 6100 3000 "1" "1" "square,edge2"]
+ Pin[-30000 0 5500 3000 6100 3000 "2" "2" "edge2"]
+ ElementLine [0 -3300 0 3300 1000]
+ ElementLine [-20000 -3300 0 -3300 1000]
+ ElementLine [-20000 -3300 -20000 3300 1000]
+ ElementLine [-20000 3300 0 3300 1000]
+ ElementLine [-30000 0 -20000 0 1000]
+ ElementLine [0 0 10000 0 1000]
+
+ )
+
+Element["" "Axial non-polar component (typically resistor or capacitor)," "R17" "ACY400" 242500 195000 20169 -10960 0 100 ""]
+(
+ Pin[-10000 0 5500 3000 6100 3000 "1" "1" "square,edge2"]
+ Pin[30000 0 5500 3000 6100 3000 "2" "2" "edge2"]
+ ElementLine [0 -3300 0 3300 1000]
+ ElementLine [0 3300 20000 3300 1000]
+ ElementLine [20000 -3300 20000 3300 1000]
+ ElementLine [0 -3300 20000 -3300 1000]
+ ElementLine [20000 0 30000 0 1000]
+ ElementLine [-10000 0 0 0 1000]
+
+ )
+
+Element["" "DIN41.612 row a+b+c male" "J2" "abc96m" 652500 47500 -13000 -17500 0 200 ""]
+(
+ Pin[0 0 6000 3000 6600 3000 "a1" "A1" "square"]
+ Pin[0 10000 6000 3000 6600 3000 "a2" "A2" ""]
+ Pin[0 20000 6000 3000 6600 3000 "a3" "A3" ""]
+ Pin[0 30000 6000 3000 6600 3000 "a4" "A4" ""]
+ Pin[0 40000 6000 3000 6600 3000 "a5" "A5" ""]
+ Pin[0 50000 6000 3000 6600 3000 "a6" "A6" ""]
+ Pin[0 60000 6000 3000 6600 3000 "a7" "A7" ""]
+ Pin[0 70000 6000 3000 6600 3000 "a8" "A8" ""]
+ Pin[0 80000 6000 3000 6600 3000 "a9" "A9" ""]
+ Pin[0 90000 6000 3000 6600 3000 "a10" "A10" ""]
+ Pin[0 100000 6000 3000 6600 3000 "a11" "A11" ""]
+ Pin[0 110000 6000 3000 6600 3000 "a12" "A12" ""]
+ Pin[0 120000 6000 3000 6600 3000 "a13" "A13" ""]
+ Pin[0 130000 6000 3000 6600 3000 "a14" "A14" ""]
+ Pin[0 140000 6000 3000 6600 3000 "a15" "A15" ""]
+ Pin[0 150000 6000 3000 6600 3000 "a16" "A16" ""]
+ Pin[0 160000 6000 3000 6600 3000 "a17" "A17" ""]
+ Pin[0 170000 6000 3000 6600 3000 "a18" "A18" ""]
+ Pin[0 180000 6000 3000 6600 3000 "a19" "A19" ""]
+ Pin[0 190000 6000 3000 6600 3000 "a20" "A20" ""]
+ Pin[0 200000 6000 3000 6600 3000 "a21" "A21" ""]
+ Pin[0 210000 6000 3000 6600 3000 "a22" "A22" ""]
+ Pin[0 220000 6000 3000 6600 3000 "a23" "A23" ""]
+ Pin[0 230000 6000 3000 6600 3000 "a24" "A24" ""]
+ Pin[0 240000 6000 3000 6600 3000 "a25" "A25" ""]
+ Pin[0 250000 6000 3000 6600 3000 "a26" "A26" ""]
+ Pin[0 260000 6000 3000 6600 3000 "a27" "A27" ""]
+ Pin[0 270000 6000 3000 6600 3000 "a28" "A28" ""]
+ Pin[0 280000 6000 3000 6600 3000 "a29" "A29" ""]
+ Pin[0 290000 6000 3000 6600 3000 "a30" "A30" ""]
+ Pin[0 300000 6000 3000 6600 3000 "a31" "A31" ""]
+ Pin[0 310000 6000 3000 6600 3000 "a32" "A32" ""]
+ Pin[-10000 0 6000 3000 6600 3000 "b1" "B1" ""]
+ Pin[-10000 10000 6000 3000 6600 3000 "b2" "B2" ""]
+ Pin[-10000 20000 6000 3000 6600 3000 "b3" "B3" ""]
+ Pin[-10000 30000 6000 3000 6600 3000 "b4" "B4" ""]
+ Pin[-10000 40000 6000 3000 6600 3000 "b5" "B5" ""]
+ Pin[-10000 50000 6000 3000 6600 3000 "b6" "B6" ""]
+ Pin[-10000 60000 6000 3000 6600 3000 "b7" "B7" ""]
+ Pin[-10000 70000 6000 3000 6600 3000 "b8" "B8" ""]
+ Pin[-10000 80000 6000 3000 6600 3000 "b9" "B9" ""]
+ Pin[-10000 90000 6000 3000 6600 3000 "b10" "B10" ""]
+ Pin[-10000 100000 6000 3000 6600 3000 "b11" "B11" ""]
+ Pin[-10000 110000 6000 3000 6600 3000 "b12" "B12" ""]
+ Pin[-10000 120000 6000 3000 6600 3000 "b13" "B13" ""]
+ Pin[-10000 130000 6000 3000 6600 3000 "b14" "B14" ""]
+ Pin[-10000 140000 6000 3000 6600 3000 "b15" "B15" ""]
+ Pin[-10000 150000 6000 3000 6600 3000 "b16" "B16" ""]
+ Pin[-10000 160000 6000 3000 6600 3000 "b17" "B17" ""]
+ Pin[-10000 170000 6000 3000 6600 3000 "b18" "B18" ""]
+ Pin[-10000 180000 6000 3000 6600 3000 "b19" "B19" ""]
+ Pin[-10000 190000 6000 3000 6600 3000 "b20" "B20" ""]
+ Pin[-10000 200000 6000 3000 6600 3000 "b21" "B21" ""]
+ Pin[-10000 210000 6000 3000 6600 3000 "b22" "B22" ""]
+ Pin[-10000 220000 6000 3000 6600 3000 "b23" "B23" ""]
+ Pin[-10000 230000 6000 3000 6600 3000 "b24" "B24" ""]
+ Pin[-10000 240000 6000 3000 6600 3000 "b25" "B25" ""]
+ Pin[-10000 250000 6000 3000 6600 3000 "b26" "B26" ""]
+ Pin[-10000 260000 6000 3000 6600 3000 "b27" "B27" ""]
+ Pin[-10000 270000 6000 3000 6600 3000 "b28" "B28" ""]
+ Pin[-10000 280000 6000 3000 6600 3000 "b29" "B29" ""]
+ Pin[-10000 290000 6000 3000 6600 3000 "b30" "B30" ""]
+ Pin[-10000 300000 6000 3000 6600 3000 "b31" "B31" ""]
+ Pin[-10000 310000 6000 3000 6600 3000 "b32" "B32" ""]
+ Pin[-20000 0 6000 3000 6600 3000 "c1" "C1" ""]
+ Pin[-20000 10000 6000 3000 6600 3000 "c2" "C2" ""]
+ Pin[-20000 20000 6000 3000 6600 3000 "c3" "C3" ""]
+ Pin[-20000 30000 6000 3000 6600 3000 "c4" "C4" ""]
+ Pin[-20000 40000 6000 3000 6600 3000 "c5" "C5" ""]
+ Pin[-20000 50000 6000 3000 6600 3000 "c6" "C6" ""]
+ Pin[-20000 60000 6000 3000 6600 3000 "c7" "C7" ""]
+ Pin[-20000 70000 6000 3000 6600 3000 "c8" "C8" ""]
+ Pin[-20000 80000 6000 3000 6600 3000 "c9" "C9" ""]
+ Pin[-20000 90000 6000 3000 6600 3000 "c10" "C10" ""]
+ Pin[-20000 100000 6000 3000 6600 3000 "c11" "C11" ""]
+ Pin[-20000 110000 6000 3000 6600 3000 "c12" "C12" ""]
+ Pin[-20000 120000 6000 3000 6600 3000 "c13" "C13" ""]
+ Pin[-20000 130000 6000 3000 6600 3000 "c14" "C14" ""]
+ Pin[-20000 140000 6000 3000 6600 3000 "c15" "C15" ""]
+ Pin[-20000 150000 6000 3000 6600 3000 "c16" "C16" ""]
+ Pin[-20000 160000 6000 3000 6600 3000 "c17" "C17" ""]
+ Pin[-20000 170000 6000 3000 6600 3000 "c18" "C18" ""]
+ Pin[-20000 180000 6000 3000 6600 3000 "c19" "C19" ""]
+ Pin[-20000 190000 6000 3000 6600 3000 "c20" "C20" ""]
+ Pin[-20000 200000 6000 3000 6600 3000 "c21" "C21" ""]
+ Pin[-20000 210000 6000 3000 6600 3000 "c22" "C22" ""]
+ Pin[-20000 220000 6000 3000 6600 3000 "c23" "C23" ""]
+ Pin[-20000 230000 6000 3000 6600 3000 "c24" "C24" ""]
+ Pin[-20000 240000 6000 3000 6600 3000 "c25" "C25" ""]
+ Pin[-20000 250000 6000 3000 6600 3000 "c26" "C26" ""]
+ Pin[-20000 260000 6000 3000 6600 3000 "c27" "C27" ""]
+ Pin[-20000 270000 6000 3000 6600 3000 "c28" "C28" ""]
+ Pin[-20000 280000 6000 3000 6600 3000 "c29" "C29" ""]
+ Pin[-20000 290000 6000 3000 6600 3000 "c30" "C30" ""]
+ Pin[-20000 300000 6000 3000 6600 3000 "c31" "C31" ""]
+ Pin[-20000 310000 6000 3000 6600 3000 "c32" "C32" ""]
+ Pin[10000 330000 12000 3000 12600 8000 "M1" "97" ""]
+ Pin[10000 -20000 12000 3000 12600 8000 "M2" "98" ""]
+ ElementLine [32000 -20000 50000 -20000 2000]
+ ElementLine [50000 -20000 50000 330000 2000]
+ ElementLine [32000 330000 50000 330000 2000]
+ ElementLine [9500 -8000 9500 318000 2000]
+ ElementLine [0 -8000 9500 -8000 2000]
+ ElementLine [9500 -8000 32000 -8000 1000]
+ ElementLine [32000 -20000 32000 -8000 1000]
+ ElementLine [32000 -30000 32000 -20000 2000]
+ ElementLine [0 -30000 32000 -30000 2000]
+ ElementLine [0 -30000 0 -8000 2000]
+ ElementLine [0 340000 32000 340000 2000]
+ ElementLine [32000 330000 32000 340000 2000]
+ ElementLine [32000 318000 32000 330000 1000]
+ ElementLine [9500 318000 32000 318000 1000]
+ ElementLine [0 318000 9500 318000 2000]
+ ElementLine [0 318000 0 340000 2000]
+ ElementLine [-20000 0 7500 0 4000]
+ ElementLine [-20000 10000 7500 10000 4000]
+ ElementLine [-20000 20000 7500 20000 4000]
+ ElementLine [-20000 30000 7500 30000 4000]
+ ElementLine [-20000 40000 7500 40000 4000]
+ ElementLine [-20000 50000 7500 50000 4000]
+ ElementLine [-20000 60000 7500 60000 4000]
+ ElementLine [-20000 70000 7500 70000 4000]
+ ElementLine [-20000 80000 7500 80000 4000]
+ ElementLine [-20000 90000 7500 90000 4000]
+ ElementLine [-20000 100000 7500 100000 4000]
+ ElementLine [-20000 110000 7500 110000 4000]
+ ElementLine [-20000 120000 7500 120000 4000]
+ ElementLine [-20000 130000 7500 130000 4000]
+ ElementLine [-20000 140000 7500 140000 4000]
+ ElementLine [-20000 150000 7500 150000 4000]
+ ElementLine [-20000 160000 7500 160000 4000]
+ ElementLine [-20000 170000 7500 170000 4000]
+ ElementLine [-20000 180000 7500 180000 4000]
+ ElementLine [-20000 190000 7500 190000 4000]
+ ElementLine [-20000 200000 7500 200000 4000]
+ ElementLine [-20000 210000 7500 210000 4000]
+ ElementLine [-20000 220000 7500 220000 4000]
+ ElementLine [-20000 230000 7500 230000 4000]
+ ElementLine [-20000 240000 7500 240000 4000]
+ ElementLine [-20000 250000 7500 250000 4000]
+ ElementLine [-20000 260000 7500 260000 4000]
+ ElementLine [-20000 270000 7500 270000 4000]
+ ElementLine [-20000 280000 7500 280000 4000]
+ ElementLine [-20000 290000 7500 290000 4000]
+ ElementLine [-20000 300000 7500 300000 4000]
+ ElementLine [-20000 310000 7500 310000 4000]
+
+ )
Layer(1 "solder")
(
- Line(900 1610 825 1610 10 0x00000000)
- Line(905 1605 900 1610 10 0x00000000)
- Line(1220 1605 905 1605 10 0x00000000)
- Line(900 1810 825 1810 10 0x00000000)
- Line(910 1800 900 1810 10 0x00000000)
- Line(1075 1800 910 1800 10 0x00000000)
- Line(4675 2850 5825 2850 10 0x00000000)
- Line(4650 2875 4675 2850 10 0x00000000)
- Line(4600 2875 4650 2875 10 0x00000000)
- Line(4575 2850 4600 2875 10 0x00000000)
- Line(3500 2850 4575 2850 10 0x00000000)
- Line(3050 850 2750 850 10 0x00000000)
- Line(3025 2550 3000 2575 10 0x00000000)
- Line(3375 2550 3025 2550 10 0x00000000)
- Line(3225 1975 2575 1975 10 0x00000000)
- Line(3300 2050 3225 1975 10 0x00000000)
- Line(2575 2500 2100 2500 10 0x00000000)
- Line(2025 2825 2200 2825 10 0x00000000)
- Line(3150 2500 3500 2500 10 0x00000000)
- Line(3300 800 2850 800 10 0x00000000)
- Line(2750 2500 3150 2500 10 0x00000000)
- Line(2700 2550 2750 2500 10 0x00000000)
- Line(2375 1050 2425 1100 10 0x00000000)
- Line(1900 1050 2375 1050 10 0x00000000)
- Line(2650 1100 2700 1050 10 0x00000000)
- Line(2425 1100 2650 1100 10 0x00000000)
- Line(1800 1325 2425 1325 10 0x00000000)
- Line(2700 1350 2750 1300 10 0x00000000)
- Line(2450 1350 2700 1350 10 0x00000000)
- Line(2425 1325 2450 1350 10 0x00000000)
- Line(1700 1425 2800 1425 10 0x00000000)
- Line(1600 1000 3000 1000 10 0x00000000)
- Line(1550 1250 2900 1250 10 0x00000000)
- Line(1450 1375 2950 1375 10 0x00000000)
- Line(2950 1375 3225 1375 10 0x00000000)
- Line(2900 1250 3100 1250 10 0x00000000)
- Line(2850 1200 3000 1200 10 0x00000000)
- Line(2600 1050 2450 1050 10 0x00000000)
- Line(2650 1300 2500 1300 10 0x00000000)
- Line(2550 1200 2650 1200 10 0x00000000)
- Line(5350 1725 2625 1725 10 0x00000000)
- Line(6475 1125 6525 1175 10 0x00000000)
- Line(1150 1125 6475 1125 10 0x00000000)
- Line(6200 525 3100 525 10 0x00000000)
- Line(6200 525 6200 525 10 0x00000000)
- Line(6150 1300 2950 1300 10 0x00000000)
- Line(6150 875 6225 875 10 0x00000000)
- Line(6100 925 6150 875 10 0x00000000)
- Line(5925 925 6100 925 10 0x00000000)
- Line(5875 875 5925 925 10 0x00000000)
- Line(6000 625 5975 650 10 0x00000000)
- Line(6475 625 6000 625 10 0x00000000)
- Line(6525 675 6475 625 10 0x00000000)
- Line(5925 350 6225 350 10 0x00000000)
- Line(5875 300 5925 350 10 0x00000000)
- Line(5875 275 5875 300 10 0x00000000)
- Line(6000 200 6475 200 10 0x00000000)
- Line(5975 225 6000 200 10 0x00000000)
- Line(5975 275 5975 225 10 0x00000000)
- Line(6400 400 5175 400 25 0x00000000)
- Line(6425 425 6400 400 25 0x00000000)
- Line(6425 475 6425 425 25 0x00000000)
- Line(3100 525 3050 575 10 0x00000000)
- Line(6325 475 4075 475 25 0x00000000)
- Line(5675 1075 6325 1075 25 0x00000000)
- Line(6225 1025 6475 1025 25 0x00000000)
- Line(6475 925 6525 975 25 0x00000000)
- Line(6375 925 6475 925 25 0x00000000)
- Line(775 3925 1275 3925 25 0x00000000)
- Line(4900 3700 4900 3625 45 0x00000000)
- Line(3400 2900 3425 2900 10 0x00000000)
- Line(6525 3575 6325 3575 40 0x00000000)
- Line(6475 525 6525 575 25 0x00000000)
- Line(6375 525 6475 525 25 0x00000000)
- Line(6325 475 6375 525 25 0x00000000)
- Line(5900 2200 5925 2225 45 0x00000000)
- Line(4950 2200 5900 2200 45 0x00000000)
- Line(5925 2775 4950 2775 45 0x00000000)
- Line(6125 2675 6325 2675 45 0x00000000)
- Line(6325 3175 3950 3175 45 0x00000000)
- Line(6325 3275 5400 3275 45 0x00000000)
- Line(6325 2875 6125 2875 45 0x00000000)
- Line(6325 2775 5925 2775 45 0x00000000)
- Line(5400 3075 6025 3075 45 0x00000000)
- Line(6325 2975 6075 2975 45 0x00000000)
- Line(6075 2975 6025 2925 45 0x00000000)
- Line(6025 2600 5400 2600 45 0x00000000)
- Line(3350 2850 3400 2900 10 0x00000000)
- Line(3425 2900 3475 2850 10 0x00000000)
- Line(3475 2850 3500 2850 10 0x00000000)
- Line(3000 1775 4850 1775 10 0x00000000)
- Line(2525 2875 2550 2850 10 0x00000000)
- Line(4100 3075 4075 3050 10 0x00000000)
- Line(4075 3050 3300 3050 10 0x00000000)
- Line(2550 2850 3350 2850 10 0x00000000)
- Line(3300 3050 3275 3050 10 0x00000000)
- Line(5500 3600 4150 3600 45 0x00000000)
- Line(6300 3600 5700 3600 45 0x00000000)
- Line(6325 3575 6300 3600 45 0x00000000)
- Line(6525 2575 6325 2575 45 0x00000000)
- Line(6525 2675 6325 2675 45 0x00000000)
- Line(6525 2775 6325 2775 45 0x00000000)
- Line(6525 2875 6325 2875 45 0x00000000)
- Line(6525 2975 6325 2975 45 0x00000000)
- Line(6525 3075 6325 3075 45 0x00000000)
- Line(6525 3175 6325 3175 45 0x00000000)
- Line(6525 3275 6325 3275 45 0x00000000)
- Line(6375 725 6475 725 25 0x00000000)
- Line(6475 725 6525 775 25 0x00000000)
- Line(6375 725 4025 725 25 0x00000000)
- Line(6325 675 6325 725 25 0x00000000)
- Line(5175 875 5775 875 25 0x00000000)
- Line(6425 775 6375 825 25 0x00000000)
- Line(6375 825 6225 825 25 0x00000000)
- Line(6225 825 6175 825 25 0x00000000)
- Line(6175 825 6125 775 25 0x00000000)
- Line(6125 775 5800 775 25 0x00000000)
- Line(5800 775 5775 800 25 0x00000000)
- Line(5775 800 5775 875 25 0x00000000)
- Line(6375 925 6175 925 25 0x00000000)
- Line(6175 925 6150 925 25 0x00000000)
- Line(6150 925 6125 950 25 0x00000000)
- Line(6125 950 4025 950 25 0x00000000)
- Line(4475 825 4475 950 25 0x00000000)
- Line(4025 950 1400 950 25 0x00000000)
- Line(1750 1525 1850 1525 25 0x00000000)
- Line(1800 1625 1925 1625 25 0x00000000)
- Line(1800 1525 1800 1625 25 0x00000000)
- Line(3950 3175 3225 3175 25 0x00000000)
- Line(2400 2450 3225 2450 25 0x00000000)
- Line(2000 2550 2700 2550 10 0x00000000)
- Line(2400 2450 1400 2450 25 0x00000000)
- Line(6275 3425 6325 3475 40 0x00000000)
- Line(6325 3375 6275 3425 40 0x00000000)
- Line(1725 2900 1300 2900 25 0x00000000)
- Line(6750 3985 450 3985 1 0x00000000)
- Line(575 1620 575 2390 25 0x00000000)
- Line(6750 50 6750 3985 1 0x00000000)
- Line(570 2385 560 2395 25 0x00000000)
- Line(735 2895 685 2845 25 0x00000000)
- Line(6075 1000 4225 1000 25 0x00000000)
- Line(5100 1625 5300 1625 25 0x00000000)
- Line(5200 1525 5200 1625 25 0x00000000)
- Line(5150 1525 5250 1525 25 0x00000000)
- Line(6225 1025 6100 1025 25 0x00000000)
- Line(6100 1025 6075 1000 25 0x00000000)
- Line(4225 1000 3150 1000 25 0x00000000)
- Line(3975 875 3975 950 25 0x00000000)
- Line(6325 875 6325 925 25 0x00000000)
- Line(450 50 6750 50 1 0x00000000)
- Line(4000 175 4425 175 25 0x00000000)
- Line(4425 175 4475 225 25 0x00000000)
- Line(3900 2900 4575 2900 25 0x00000000)
- Line(2900 2650 4800 2650 10 0x00000000)
- Line(3000 2975 3250 2975 25 0x00000000)
- Line(2125 3925 3275 3925 25 0x00000000)
- Line(3000 2975 2925 2975 25 0x00000000)
- Line(2925 2975 2850 3050 25 0x00000000)
- Line(2850 3050 2050 3050 25 0x00000000)
- Line(2050 3050 2025 3050 25 0x00000000)
- Line(3600 2000 3625 1975 10 0x00000000)
- Line(3600 2050 3600 2000 10 0x00000000)
- Line(3625 1975 4300 1975 10 0x00000000)
- Line(3250 2975 3825 2975 25 0x00000000)
- Line(3825 2975 3900 2900 25 0x00000000)
- Line(3325 2925 3325 2975 25 0x00000000)
- Line(1275 3925 2125 3925 25 0x00000000)
- Line(6225 3425 6275 3425 40 0x00000000)
- Line(550 3300 1050 3300 10 0x00000000)
- Line(1375 3725 1725 3725 25 0x00000000)
- Line(1150 2800 1300 2800 25 0x00000000)
- Line(2975 3725 2975 3800 25 0x00000000)
- Line(1725 3800 1725 3750 25 0x00000000)
- Line(3175 3725 3175 3800 25 0x00000000)
- Line(2325 3725 2325 3800 25 0x00000000)
- Line(4150 3600 4150 3800 25 0x00000000)
- Line(4150 3800 1725 3800 25 0x00000000)
- Line(905 3055 755 3055 10 0x00000000)
- Line(4000 175 3400 175 25 0x00000000)
- Line(3400 175 3350 225 25 0x00000000)
- Line(3550 225 3550 175 25 0x00000000)
- Line(3975 275 3975 175 25 0x00000000)
- Line(6150 150 5575 150 10 0x00000000)
- Line(5025 150 4675 150 10 0x00000000)
- Line(5275 225 5075 225 10 0x00000000)
- Line(5075 225 5075 275 10 0x00000000)
- Line(4400 225 4375 225 10 0x00000000)
- Line(4375 225 4175 225 10 0x00000000)
- Line(4175 225 4175 275 10 0x00000000)
- Line(4475 300 4400 225 10 0x00000000)
- Line(5375 625 5425 575 10 0x00000000)
- Line(5425 575 5550 575 10 0x00000000)
- Line(5550 575 5775 575 10 0x00000000)
- Line(5825 2100 5450 2100 10 0x00000000)
- Line(4175 575 4175 675 10 0x00000000)
- Line(4175 675 5575 675 10 0x00000000)
- Line(5575 675 5575 625 10 0x00000000)
- Line(5550 1350 4175 1350 10 0x00000000)
- Line(4175 1075 4475 1075 10 0x00000000)
- Line(5775 1175 5375 1175 10 0x00000000)
- Line(5375 1175 5375 1225 10 0x00000000)
- Line(5375 1075 5075 1075 10 0x00000000)
- Line(6100 1425 5475 1425 10 0x00000000)
- Line(5125 800 4675 800 10 0x00000000)
- Line(4675 800 4675 825 10 0x00000000)
- Line(4875 1075 4725 1075 10 0x00000000)
- Line(4775 575 4500 575 10 0x00000000)
- Line(4500 575 4475 600 10 0x00000000)
- Line(4475 600 4475 625 10 0x00000000)
- Line(4025 2350 4200 2350 10 0x00000000)
- Line(3700 2350 3750 2300 10 0x00000000)
- Line(3750 2300 4250 2300 10 0x00000000)
- Line(4250 2300 4300 2350 10 0x00000000)
- Line(3700 2600 3800 2600 10 0x00000000)
- Line(5225 2375 5575 2375 10 0x00000000)
- Line(3800 2600 3800 2550 10 0x00000000)
- Line(3800 2550 3925 2425 10 0x00000000)
- Line(3925 2425 5175 2425 10 0x00000000)
- Line(5175 2425 5225 2375 10 0x00000000)
- Line(2800 2575 3000 2575 10 0x00000000)
- Line(2975 3425 3175 3425 10 0x00000000)
- Line(2725 3525 2775 3525 25 0x00000000)
- Line(3550 3850 2525 3850 10 0x00000000)
- Line(1825 3850 2525 3850 10 0x00000000)
- Line(950 2450 1150 2450 10 0x00000000)
- Line(825 1500 570 1500 25 0x00000000)
- Line(575 1620 575 1500 25 0x00000000)
- Line(1100 3675 2575 3675 10 0x00000000)
- Line(2575 3675 2625 3725 10 0x00000000)
- Line(2025 3725 2025 3675 10 0x00000000)
- Line(2125 3525 2325 3525 25 0x00000000)
- Line(1925 3600 2425 3600 10 0x00000000)
- Line(1950 575 875 575 10 0x00000000)
- Line(2000 625 975 625 10 0x00000000)
- Line(2050 825 975 825 10 0x00000000)
- Line(2100 675 875 675 10 0x00000000)
- Line(6375 1725 5350 1725 10 0x00000000)
- Line(2200 2250 2400 2250 25 0x00000000)
- Line(3000 2125 2150 2125 10 0x00000000)
- Line(3100 2175 2250 2175 10 0x00000000)
- Line(2525 1925 3150 1925 10 0x00000000)
- Line(2250 1950 2500 1950 10 0x00000000)
- Line(2500 1950 2525 1925 10 0x00000000)
- Line(1500 1875 2975 1875 10 0x00000000)
- Line(2975 1875 3250 1875 10 0x00000000)
- Line(2925 2225 2500 2225 10 0x00000000)
- Line(2500 2225 2475 2225 10 0x00000000)
- Line(2475 2225 2450 2200 10 0x00000000)
- Line(2450 2200 2325 2200 10 0x00000000)
- Line(2325 2200 2300 2225 10 0x00000000)
- Line(2300 2225 2250 2225 10 0x00000000)
- Line(2250 2225 2200 2175 10 0x00000000)
- Line(2200 2175 1700 2175 10 0x00000000)
- Line(2100 2300 2675 2300 10 0x00000000)
- Line(2675 2300 2700 2275 10 0x00000000)
- Line(2700 2275 3875 2275 10 0x00000000)
- Line(3875 2275 3900 2250 10 0x00000000)
- Line(2575 2775 3850 2775 10 0x00000000)
- Line(1550 2825 1925 2825 10 0x00000000)
- Line(1925 2825 1975 2775 10 0x00000000)
- Line(1975 2775 2250 2775 10 0x00000000)
- Line(2250 2775 2300 2825 10 0x00000000)
- Line(2300 2825 3400 2825 10 0x00000000)
- Line(2300 1825 2450 1825 10 0x00000200)
- Line(2275 900 2550 900 10 0x00000000)
- Line(2500 1625 2425 1700 10 0x00000000)
- Line(1900 1750 2475 1750 10 0x00000000)
- Line(2475 1750 2500 1725 10 0x00000000)
- Line(2425 1700 1800 1700 10 0x00000000)
- Line(2500 2650 2550 2700 25 0x00000000)
- Line(2550 2700 3325 2700 25 0x00000000)
- Line(4575 2900 4700 2900 25 0x00000000)
- Line(3400 2825 4625 2825 10 0x00000000)
- Line(3375 2550 3575 2550 10 0x00000000)
- Line(3575 2550 3600 2525 10 0x00000000)
- Line(3650 2200 3500 2200 10 0x00000000)
- Line(2775 3525 2975 3525 25 0x00000000)
- Line(2425 3600 3750 3600 10 0x00000000)
- Line(1075 1475 4450 1475 10 0x00000000)
- Line(4450 1475 4450 1525 10 0x00000000)
- Line(2200 1775 2900 1775 10 0x00000000)
- Line(2900 1775 2950 1825 10 0x00000000)
- Line(2950 1825 4500 1825 10 0x00000000)
- Line(1075 1800 1275 1800 10 0x00000000)
- Line(1275 1800 2175 1800 10 0x00000000)
- Line(2175 1800 2200 1775 10 0x00000000)
- Line(4025 3100 2225 3100 10 0x00000000)
- Line(4075 2450 4025 2500 10 0x00000000)
- Line(5300 2450 4075 2450 10 0x00000000)
- Line(1375 3425 1725 3425 10 0x00000000)
- Line(1825 3425 1925 3425 10 0x00000000)
- Line(2325 3425 2375 3475 10 0x00000000)
- Line(2375 3475 2400 3475 10 0x00000000)
- Line(2400 3475 3125 3475 10 0x00000000)
- Line(3125 3475 3175 3425 10 0x00000000)
- Line(2975 3425 2975 3475 10 0x00000000)
- Line(2425 3425 2525 3425 10 0x00000000)
- Line(2625 3525 2675 3575 10 0x00000000)
- Line(3225 3575 3250 3550 10 0x00000000)
- Line(3250 3550 3275 3525 10 0x00000000)
- Line(2675 3575 3225 3575 10 0x00000000)
- Line(4000 2250 4200 2250 10 0x00000000)
- Line(4200 2150 4050 2150 10 0x00000000)
- Line(4200 2050 4100 2050 10 0x00000000)
- Line(4150 2725 3475 2725 10 0x00000000)
- Line(3475 2725 3450 2750 10 0x00000000)
- Line(3450 2750 2725 2750 10 0x00000000)
- Line(2725 2750 2700 2725 10 0x00000000)
- Line(2700 2725 2475 2725 10 0x00000000)
- Line(2475 2725 2450 2700 10 0x00000000)
- Line(2450 2700 1050 2700 10 0x00000000)
- Line(1275 3425 1275 3375 10 0x00000000)
- Line(1275 3375 5200 3375 10 0x00000000)
- Line(5200 2600 5400 2600 10 0x00000000)
- Line(2025 3425 2025 3375 10 0x00000000)
- Line(2100 3225 5700 3225 10 0x00000000)
- Line(5700 2450 5825 2450 10 0x00000000)
- Line(5300 3275 5275 3250 10 0x00000000)
- Line(5275 3250 2875 3250 10 0x00000000)
- Line(2875 3250 2825 3300 10 0x00000000)
- Line(5375 3075 4100 3075 10 0x00000000)
- Line(6325 3375 6325 3475 45 0x00000000)
- Line(6325 3425 4050 3425 45 0x00000000)
- Line(6325 3475 6525 3475 40 0x00000000)
- Line(6525 3475 6525 3375 40 0x00000000)
- Line(6525 3375 6325 3375 40 0x00000000)
- Line(6325 3400 6525 3400 40 0x00000000)
- Line(6325 3425 6525 3425 40 0x00000000)
- Line(6325 3450 6525 3450 40 0x00000000)
- Line(1300 2895 735 2895 25 0x00000000)
- Line(450 3985 450 50 1 0x00000000)
- Line(685 2845 585 2845 25 0x00000000)
- Line(585 2845 550 2880 25 0x00000000)
- Line(550 3300 495 3300 10 0x00000000)
- Line(1290 2545 870 2545 25 0x00000000)
- Line(870 2545 815 2490 25 0x00000000)
- Line(580 2505 645 2570 10 0x00000000)
- Line(645 2570 760 2570 10 0x00000000)
- Text(800 175 0 100 "Fernando Pessutto" 0x00000080)
- Text(800 250 0 100 "(C) 2003 Walter Fetter Lages" 0x00000080)
- Text(800 325 0 100 "AIC-1.3.0" 0x00000080)
- Text(800 100 0 100 "SOLDER" 0x00000080)
+ Line[647500 37500 652500 42500 1000 2000 ""]
+ Line[282500 117500 277500 112500 1000 2000 "clearline"]
+ Line[242500 175000 187500 175000 2500 2000 ""]
+ Line[400000 145000 545000 145000 1000 2000 ""]
+ Line[170000 45000 177500 52500 1000 2000 "clearline"]
+ Line[355000 92500 310000 92500 1000 2000 ""]
+ Line[252500 150000 252500 157500 6500 2000 ""]
+ Line[40000 0 200000 0 1000 2000 "clearline"]
+ Line[365000 317500 270000 317500 1000 2000 "clearline"]
+ Line[350000 130000 337500 117500 1000 2000 "clearline"]
+ Line[330000 360000 330000 335000 2500 2000 "clearline"]
+ Line[252500 285000 330000 285000 2500 2000 ""]
+ Line[625000 57500 632500 57500 1000 2000 ""]
+ Line[177500 30000 187500 40000 1000 2000 ""]
+ Line[217500 222500 345000 222500 2500 2000 "clearline"]
+ Line[225000 170000 352500 170000 1000 2000 ""]
+ Line[160000 362500 215000 362500 1000 2000 ""]
+ Line[305000 140000 92500 140000 1000 2000 "clearline"]
+ Line[637500 62500 630000 62500 2500 2000 ""]
+ Line[642500 57500 637500 62500 2500 2000 ""]
+ Line[600000 315000 487500 315000 12000 2000 ""]
+ Line[407500 10000 410000 12500 1000 2000 "clearline"]
+ Line[62500 207500 122500 207500 1000 2000 ""]
+ Line[497500 80000 497500 70000 1000 2000 ""]
+ Line[57700 337500 177500 337500 1000 2000 "clearline"]
+ Line[432500 182500 152500 182500 2500 2000 "clearline"]
+ Line[272500 255000 465000 255000 2500 2000 "clearline"]
+ Line[165000 357500 205000 357500 1000 2000 ""]
+ Line[215000 100000 207500 107500 2500 2000 ""]
+ Line[562500 100000 562500 105000 2500 2000 ""]
+ Line[332500 202500 265000 202500 2500 2000 "clearline"]
+ Line[330000 335000 340000 325000 2500 2000 "clearline"]
+ Line[350000 217500 350000 210000 2500 2000 "clearline"]
+ Line[345000 222500 350000 217500 2500 2000 "clearline"]
+ Line[572500 300000 557500 300000 10000 2000 "clearline"]
+ Line[340000 130000 332500 122500 1000 2000 "clearline"]
+ Line[247500 17500 402500 17500 1000 2000 ""]
+ Line[467500 217500 467500 202500 7000 2000 "clearline"]
+ Line[177500 285000 242500 285000 2500 2000 ""]
+ Line[417500 10000 417500 40000 1000 2000 ""]
+ Line[97500 117500 275000 117500 1000 2000 "clearline"]
+ Line[465000 187500 280000 187500 2500 2000 ""]
+ Line[430000 107500 417500 107500 1000 2000 ""]
+ Line[255000 345000 255000 350000 2500 2000 ""]
+ Line[427500 17500 435000 10000 1000 2000 ""]
+ Line[435000 10000 467500 10000 1000 2000 ""]
+ Line[70000 118800 96200 118800 1000 2000 ""]
+ Line[295000 135000 87500 135000 1000 2000 "clearline"]
+ Line[290000 50000 290000 45000 2500 2000 "clearline"]
+ Line[467500 10000 477500 20000 1000 2000 ""]
+ Line[600000 360000 610000 370000 2500 2000 ""]
+ Line[340000 380000 195000 380000 2500 2000 ""]
+ Line[470000 82500 462500 75000 1000 2000 ""]
+ Line[460000 197500 335000 197500 11500 2000 "clearline"]
+ Line[582500 367500 590000 360000 2500 2000 "clearline"]
+ Line[190000 325000 177500 337500 1000 2000 "clearline"]
+ Line[330000 200000 332500 197500 9000 2000 "clearline"]
+ Line[535000 367500 582500 367500 2500 2000 "clearline"]
+ Line[350000 290000 350000 285000 2500 2000 "clearline"]
+ Line[330000 210000 330000 200000 7000 2000 "clearline"]
+ Line[282500 117500 337500 117500 1000 2000 "clearline"]
+ Line[562500 105000 565000 107500 2500 2000 ""]
+ Line[615000 222500 475000 222500 12000 2000 "clearline"]
+ Line[657500 110000 657500 92500 1000 2000 ""]
+ Line[610000 370000 614941 370000 2500 2000 ""]
+ Line[467500 202500 462500 197500 8500 2000 "clearline"]
+ Line[590472 360000 590551 359921 2500 2000 ""]
+ Line[330000 282500 330000 275000 7000 2000 "clearline"]
+ Line[652500 287500 615000 287500 7000 2000 "clearline"]
+ Line[572500 300000 592500 280000 10000 2000 "clearline"]
+ Line[340000 237500 552500 237500 12000 2000 "clearline"]
+ Line[652500 267500 497500 267500 7000 2000 "clearline"]
+ Line[432500 350000 475000 350000 2500 2000 "clearline"]
+ Line[475000 350000 477500 352500 2500 2000 "clearline"]
+ Line[372500 370000 497500 370000 7000 2000 "clearline"]
+ Line[465000 370000 467500 367500 7000 2000 "clearline"]
+ Line[467500 367500 467500 360000 7000 2000 "clearline"]
+ Line[657500 92500 652500 87500 1000 2000 ""]
+ Line[507500 340000 355000 340000 2500 2000 "clearline"]
+ Line[625000 115000 631890 108268 5500 2000 "clearline"]
+ Line[620000 297500 600000 317500 7000 2000 ""]
+ Line[507500 340000 535000 367500 2500 2000 "clearline"]
+ Line[600000 360000 590551 359921 2500 2000 "clearline"]
+ Line[355000 340000 350000 345000 2500 2000 ""]
+ Line[182500 350000 195000 350000 2500 2000 ""]
+ Line[350000 345000 350000 370000 2500 2000 ""]
+ Line[96200 118800 97500 117500 1000 2000 ""]
+ Line[162500 75000 192500 75000 2500 2000 ""]
+ Line[477500 352500 477500 360000 2500 2000 "clearline"]
+ Line[372500 45000 380000 45000 2500 2000 ""]
+ Line[602500 30000 607500 30000 2500 2000 ""]
+ Line[547500 350000 615000 350000 2500 2000 "clearline"]
+ Line[385000 165000 162500 165000 3000 2000 "clearline"]
+ Line[245000 45000 235000 45000 2500 2000 ""]
+ Line[377500 112500 405000 112500 1000 2000 "clearline"]
+ Line[177500 345000 182500 350000 2500 2000 ""]
+ Line[360000 150000 372500 150000 1000 2000 ""]
+ Line[350000 370000 340000 380000 2500 2000 ""]
+ Line[482500 45000 492500 45000 2500 2000 ""]
+ Line[102500 112500 277500 112500 1000 2000 "clearline"]
+ Line[192500 75000 200000 67500 2500 2000 ""]
+ Line[477500 200000 465000 187500 2500 2000 ""]
+ Line[487500 82500 470000 82500 1000 2000 ""]
+ Line[595000 37500 602500 30000 2500 2000 ""]
+ Line[202500 75000 202500 80000 6500 2000 ""]
+ Line[472500 222500 467500 217500 7000 2000 "clearline"]
+ Line[582500 40000 585000 37500 2500 2000 ""]
+ Line[345000 80000 345000 87500 2500 2000 ""]
+ Line[295000 60000 310000 60000 2500 2000 "clearline"]
+ Line[477500 20000 477500 22500 1000 2000 ""]
+ Line[290000 45000 297500 37500 2500 2000 "clearline"]
+ Line[310000 60000 315000 55000 2500 2000 "clearline"]
+ Line[225000 312500 252500 312500 2500 2000 ""]
+ Line[340000 325000 522500 325000 2500 2000 "clearline"]
+ Line[522500 325000 547500 350000 2500 2000 "clearline"]
+ Line[497500 80000 502500 85000 1000 2000 ""]
+ Line[152500 62500 217500 62500 2500 2000 ""]
+ Line[502500 65000 505000 62500 1000 2000 ""]
+ Line[217500 62500 235000 45000 2500 2000 ""]
+ Line[330000 275000 332500 272500 9000 2000 "clearline"]
+ Line[225000 100000 232500 107500 2500 2000 ""]
+ Line[160000 187500 225000 187500 1000 2000 ""]
+ Line[280000 187500 277500 190000 2500 2000 ""]
+ Line[657500 110000 657500 140000 1000 2000 "clearline"]
+ Line[217500 67500 225000 75000 2500 2000 ""]
+ Line[652500 277500 592500 277500 7000 2000 "clearline"]
+ Line[275000 117500 280000 122500 1000 2000 "clearline"]
+ Line[625000 152500 625000 115000 5500 2000 "clearline"]
+ Line[652500 297500 620000 297500 7000 2000 "clearline"]
+ Line[315000 280000 75000 280000 1000 2000 "clearline"]
+ Line[642500 47500 642500 57500 2500 2000 ""]
+ Line[465000 255000 477500 267500 2500 2000 "clearline"]
+ Line[477500 267500 477500 285000 2500 2000 "clearline"]
+ Line[75000 280000 72500 282500 1000 2000 "clearline"]
+ Line[72500 282500 62500 282500 1000 2000 "clearline"]
+ Line[142500 227500 122500 207500 1000 2000 ""]
+ Line[282500 245000 62500 245000 1000 2000 "clearline"]
+ Line[652500 42500 652500 47500 1000 2000 ""]
+ Line[280000 122500 332500 122500 1000 2000 "clearline"]
+ Line[162500 125000 190000 125000 2500 2000 ""]
+ Line[382500 70000 400000 52500 2500 2000 ""]
+ Line[495000 95000 497500 97500 1000 2000 "clearline"]
+ Line[400000 165000 567500 165000 2500 2000 ""]
+ Line[252500 175000 262500 175000 2500 2000 ""]
+ Line[102500 130000 70300 130000 1000 2000 ""]
+ Line[619842 157500 602500 157500 5500 2000 "clearline"]
+ Line[347500 292500 225000 292500 2500 2000 "clearline"]
+ Line[492500 175000 332500 175000 1000 2000 "clearline"]
+ Line[367500 92500 352500 92500 1000 2000 "clearline"]
+ Line[345000 142500 315000 142500 1000 2000 "clearline"]
+ Line[280000 87500 472500 87500 2500 2000 "clearline"]
+ Line[592500 115000 507500 115000 1000 2000 ""]
+ Line[482500 35000 482500 45000 2500 2000 ""]
+ Line[585000 37500 595000 37500 2500 2000 ""]
+ Line[442500 95000 435000 95000 1000 2000 ""]
+ Line[497500 97500 497500 105000 1000 2000 "clearline"]
+ Line[565000 70000 520000 70000 2500 2000 ""]
+ Line[435000 95000 427500 102500 1000 2000 ""]
+ Line[497500 105000 500000 107500 1000 2000 "clearline"]
+ Line[402500 107500 402500 107500 1000 2000 "clearline"]
+ Line[277500 190000 272500 195000 2500 2000 ""]
+ Line[442500 115000 462500 115000 1000 2000 "clearline"]
+ Line[577500 82500 565000 70000 2500 2000 ""]
+ Line[297500 37500 335000 37500 2500 2000 "clearline"]
+ Line[482500 150000 495799 150000 1000 2000 ""]
+ Line[582500 100000 582500 95000 1000 2000 ""]
+ Line[500000 150000 495000 150000 1000 2000 ""]
+ Line[505000 52500 570000 52500 1000 2000 ""]
+ Line[657500 160000 655000 162500 1000 2000 ""]
+ Line[605000 37500 647500 37500 1000 2000 ""]
+ Line[457500 95000 495000 95000 1000 2000 "clearline"]
+ Line[477500 105000 467500 105000 1000 2000 ""]
+ Line[542500 105000 542500 100000 1000 2000 "clearline"]
+ Line[347500 292500 350000 290000 2500 2000 "clearline"]
+ Line[475000 52500 400000 52500 2500 2000 ""]
+ Line[450000 102500 457500 95000 1000 2000 "clearline"]
+ Line[502500 45000 502500 50000 1000 2000 ""]
+ Line[442500 40000 442500 17500 1000 2000 ""]
+ Line[540000 107500 542500 105000 1000 2000 "clearline"]
+ Line[500000 107500 540000 107500 1000 2000 "clearline"]
+ Line[462500 110000 435000 110000 1000 2000 "clearline"]
+ Line[207500 255000 177500 255000 2500 2000 ""]
+ Line[430000 115000 425000 115000 1000 2000 "clearline"]
+ Line[190000 325000 262500 325000 1000 2000 ""]
+ Line[242500 300000 210000 300000 2500 2000 ""]
+ Line[542500 130000 542500 135000 1000 2000 ""]
+ Line[190000 125000 195000 130000 2500 2000 ""]
+ Line[70300 130000 70000 129700 1000 2000 ""]
+ Line[207500 107500 187500 107500 2500 2000 ""]
+ Line[615000 145000 615000 150000 1000 2000 ""]
+ Line[580000 92500 497500 92500 1000 2000 ""]
+ Line[497500 70000 492500 65000 1000 2000 ""]
+ Line[415000 95000 402500 107500 1000 2000 "clearline"]
+ Line[502500 75000 502500 65000 1000 2000 ""]
+ Line[505000 62500 562500 62500 1000 2000 ""]
+ Line[467500 277500 467500 297500 7000 2000 "clearline"]
+ Line[435000 110000 430000 115000 1000 2000 "clearline"]
+ Line[657500 140000 657500 160000 1000 2000 ""]
+ Line[462500 75000 430000 75000 1000 2000 ""]
+ Line[430000 75000 425000 80000 1000 2000 ""]
+ Line[570000 52500 582500 65000 1000 2000 ""]
+ Line[542500 135000 547500 140000 1000 2000 ""]
+ Line[547500 30000 587500 30000 2500 2000 ""]
+ Line[415000 102500 405000 112500 1000 2000 "clearline"]
+ Line[610000 140000 615000 145000 1000 2000 ""]
+ Line[425000 95000 415000 95000 1000 2000 "clearline"]
+ Line[625000 75000 625000 67500 2500 2000 ""]
+ Line[625000 75000 617500 82500 2500 2000 ""]
+ Line[547500 40000 547500 30000 2500 2000 ""]
+ Line[592500 52500 597500 57500 1000 2000 ""]
+ Line[597500 57500 625000 57500 1000 2000 ""]
+ Line[602500 45000 602500 40000 1000 2000 ""]
+ Line[262500 325000 270000 317500 1000 2000 ""]
+ Line[592500 75000 592500 82500 2500 2000 ""]
+ Line[617500 82500 577500 82500 2500 2000 ""]
+ Line[405000 57500 532500 57500 1000 2000 ""]
+ Line[252500 275000 252500 272500 6500 2000 ""]
+ Line[232500 107500 262500 107500 2500 2000 ""]
+ Line[582500 45000 582500 40000 2500 2000 ""]
+ Line[415000 80000 425000 80000 1000 2000 ""]
+ Line[142500 227500 360000 227500 1000 2000 "clearline"]
+ Line[619842 157500 625000 152500 5500 2000 "clearline"]
+ Line[397500 142500 400000 145000 1000 2000 ""]
+ Line[575000 157500 575000 150000 2500 2000 ""]
+ Line[565000 160000 325000 160000 1000 2000 "clearline"]
+ Line[557500 172500 620000 172500 1000 2000 ""]
+ Line[620000 172500 630000 162500 1000 2000 ""]
+ Line[175000 10000 407500 10000 1000 2000 "clearline"]
+ Line[427500 102500 415000 102500 1000 2000 "clearline"]
+ Line[410000 120000 462500 120000 1000 2000 "clearline"]
+ Line[407500 117500 417500 107500 1000 2000 "clearline"]
+ Line[435000 155000 440000 150000 1000 2000 "clearline"]
+ Line[335000 272500 460000 272500 12000 2000 "clearline"]
+ Line[460000 150000 440000 150000 1000 2000 "clearline"]
+ Line[240000 330000 255000 345000 2500 2000 ""]
+ Line[467500 105000 462500 110000 1000 2000 ""]
+ Line[430000 107500 435000 102500 1000 2000 "clearline"]
+ Line[502500 50000 505000 52500 1000 2000 ""]
+ Line[602500 40000 605000 37500 1000 2000 ""]
+ Line[462500 272500 467500 277500 9000 2000 "clearline"]
+ Line[582500 95000 580000 92500 1000 2000 ""]
+ Line[502500 85000 527500 85000 1000 2000 ""]
+ Line[475000 52500 482500 45000 2500 2000 ""]
+ Line[532500 87500 612500 87500 1000 2000 ""]
+ Line[442500 65000 492500 65000 1000 2000 ""]
+ Line[217500 150000 217500 157500 6500 2000 ""]
+ Line[442500 80000 460000 80000 1000 2000 ""]
+ Line[482500 35000 495000 22500 2500 2000 ""]
+ Line[567500 165000 575000 157500 2500 2000 ""]
+ Line[625000 67500 630000 62500 2500 2000 ""]
+ Line[592500 45000 592500 52500 1000 2000 ""]
+ Line[540000 22500 547500 30000 2500 2000 ""]
+ Line[435000 102500 450000 102500 1000 2000 "clearline"]
+ Line[365000 155000 435000 155000 1000 2000 "clearline"]
+ Line[210000 300000 205000 305000 2500 2000 ""]
+ Line[655000 162500 630000 162500 1000 2000 ""]
+ Line[582500 65000 582500 75000 1000 2000 ""]
+ Line[205000 305000 205000 320000 2500 2000 ""]
+ Line[285000 107500 402500 107500 1000 2000 "clearline"]
+ Line[405000 140000 400000 135000 1000 2000 ""]
+ Line[400000 135000 315000 135000 1000 2000 ""]
+ Line[495000 22500 540000 22500 2500 2000 ""]
+ Line[350000 122500 407500 122500 1000 2000 "clearline"]
+ Line[352500 117500 407500 117500 1000 2000 "clearline"]
+ Line[462500 115000 467500 110000 1000 2000 ""]
+ Line[467500 110000 480000 110000 1000 2000 ""]
+ Line[565000 107500 615000 107500 2500 2000 ""]
+ Line[467500 115000 462500 120000 1000 2000 ""]
+ Line[477500 115000 467500 115000 1000 2000 ""]
+ Line[200000 122500 217500 122500 1000 2000 ""]
+ Line[410000 42500 412500 45000 1000 2000 "clearline"]
+ Line[407500 122500 410000 120000 1000 2000 "clearline"]
+ Line[392500 75000 392500 70000 1000 2000 ""]
+ Line[377500 82500 412500 82500 1000 2000 ""]
+ Line[412500 82500 415000 80000 1000 2000 ""]
+ Line[497500 92500 487500 82500 1000 2000 ""]
+ Line[217500 122500 225000 130000 1000 2000 ""]
+ Line[372500 100000 372500 87500 2500 2000 ""]
+ Line[392500 70000 405000 57500 1000 2000 ""]
+ Line[412500 45000 435000 45000 1000 2000 "clearline"]
+ Line[405000 140000 507500 140000 1000 2000 ""]
+ Line[487500 315000 470000 297500 12000 2000 "clearline"]
+ Line[477500 210000 477500 200000 2500 2000 ""]
+ Line[382500 70000 382500 75000 2500 2000 ""]
+ Line[410000 12500 410000 42500 1000 2000 "clearline"]
+ Line[225000 367500 155000 367500 1000 2000 ""]
+ Line[155000 275000 177500 275000 1000 2000 ""]
+ Line[472500 125000 475000 122500 6500 2000 ""]
+ Line[270000 150000 262500 157500 6500 2000 ""]
+ Line[340000 367500 335000 372500 6500 2000 ""]
+ Line[620000 340000 552500 340000 6500 2000 ""]
+ Line[340000 340000 347500 332500 6500 2000 "clearline"]
+ Line[302500 67500 317500 67500 6500 2000 ""]
+ Line[320000 70000 317500 67500 6500 2000 ""]
+ Line[187500 40000 210000 40000 1000 2000 ""]
+ Line[610000 122500 630000 102500 2000 2000 ""]
+ Line[630000 102500 650000 102500 2000 2000 ""]
+ Line[650000 102500 652500 105000 2000 2000 ""]
+ Line[652500 105000 652500 107500 2000 2000 ""]
+ Line[642500 87500 642500 102500 2000 2000 ""]
+ Line[622500 355000 622500 375000 7000 2000 ""]
+ Line[629114 348327 622500 355000 7000 2000 "clearline"]
+ Line[617500 380000 622500 375000 7000 2000 ""]
+ Line[247500 372500 335000 372500 6500 2000 ""]
+ Line[247500 267500 252500 272500 6500 2000 ""]
+ Line[562500 392500 532500 392500 7000 2000 ""]
+ Line[177500 325000 190000 312500 6500 2000 ""]
+ Line[652500 347500 630000 347500 7000 2000 "clearline"]
+ Line[617500 380000 575000 380000 7000 2000 "clearline"]
+ Line[615000 317500 615000 340000 6500 2000 "clearline"]
+ Line[620000 340000 622500 337500 6500 2000 "clearline"]
+ Line[622500 337500 652500 337500 6500 2000 "clearline"]
+ Line[367500 22500 395000 22500 6500 2000 ""]
+ Line[397500 35000 397500 25000 6500 2000 ""]
+ Line[347500 332500 515000 332500 6500 2000 "clearline"]
+ Line[515000 332500 542500 360000 6500 2000 "clearline"]
+ Line[542500 360000 575000 360000 6500 2000 "clearline"]
+ Line[395000 22500 397500 25000 6500 2000 ""]
+ Line[475000 122500 610000 122500 6500 2000 ""]
+ Line[615000 317500 625000 307500 6500 2000 "clearline"]
+ Line[625000 307500 652500 307500 6500 2000 "clearline"]
+ Line[617500 252500 622500 257500 7000 2000 ""]
+ Line[652500 257500 622500 257500 7000 2000 "clearline"]
+ Line[575000 380000 562500 392500 7000 2000 ""]
+ Line[412500 125000 472500 125000 6500 2000 ""]
+ Line[217500 275000 190000 275000 6500 2000 ""]
+ Line[492500 100000 492500 122500 6500 2000 ""]
+ Line[235000 350000 235000 360000 6500 2000 ""]
+ Line[552500 130000 552500 122500 6500 2000 ""]
+ Line[532500 252501 615000 252500 12000 2000 "clearline"]
+ Line[200000 150000 177500 150000 1000 2000 ""]
+ Line[362500 142500 387500 142500 6500 2000 ""]
+ Line[402500 130000 407500 130000 6500 2000 ""]
+ Line[407500 130000 412500 125000 6500 2000 ""]
+ Line[402500 45000 402500 40000 6500 2000 ""]
+ Line[402500 40000 397500 35000 6500 2000 ""]
+ Line[360000 30000 250000 30000 6500 2000 ""]
+ Line[460000 70000 410000 70000 4000 2000 ""]
+ Line[360000 30000 367500 22500 6500 2000 ""]
+ Line[340000 367500 340000 340000 6500 2000 "clearline"]
+ Line[235000 360000 247500 372500 6500 2000 ""]
+ Line[320000 75000 320000 70000 6500 2000 ""]
+ Line[280000 30000 280000 50000 6500 2000 ""]
+ Line[290000 75000 295000 75000 6500 2000 ""]
+ Line[295000 75000 302500 67500 6500 2000 ""]
+ Line[270000 122500 242500 122500 6500 2000 ""]
+ Line[242500 122500 235000 130000 6500 2000 ""]
+ Line[262500 157500 85000 157500 6500 2000 ""]
+ Line[85000 157500 80000 152500 6500 2000 ""]
+ Line[80000 152500 80000 146100 6500 2000 ""]
+ Line[217500 275000 217500 272500 6500 2000 ""]
+ Line[217500 272500 222500 267500 6500 2000 ""]
+ Line[222500 267500 247500 267500 6500 2000 ""]
+ Line[197500 30000 205000 22500 6500 2000 ""]
+ Line[205000 22500 242500 22500 6500 2000 ""]
+ Line[242500 22500 250000 30000 6500 2000 ""]
+ Line[200000 67500 217500 67500 2500 2000 ""]
+ Line[202500 80000 177500 105000 6500 2000 ""]
+ Line[235000 130000 245000 130000 6500 2000 ""]
+ Line[235000 350000 245000 350000 6500 2000 ""]
+ Line[170000 15000 175000 10000 1000 2000 "clearline"]
+ Line[170000 45000 170000 15000 1000 2000 "clearline"]
+ Line[547500 140000 610000 140000 1000 2000 ""]
+ Text[75000 375000 0 100 "Walter Fetter Lages" "auto"]
+ Text[75000 382500 0 100 "Diego Caberlon Santini" "auto"]
+ Text[75000 390000 0 100 "AIC-2.2.0 (c) 2009" "auto"]
+ Text[75000 367500 0 100 "Rodrigo Daniel Trevizan" "auto"]
)
Layer(2 "GND-sldr")
(
)
Layer(4 "component")
(
- Line(965 1710 825 1710 10 0x00000000)
- Line(1050 1625 965 1710 10 0x00000000)
- Line(700 3150 700 3850 25 0x00000000)
- Line(700 2700 725 2675 25 0x00000000)
- Line(700 2850 700 2700 25 0x00000000)
- Line(725 2875 700 2850 25 0x00000000)
- Line(725 2975 725 2875 25 0x00000000)
- Line(700 3000 725 2975 25 0x00000000)
- Line(700 3150 700 3000 25 0x00000000)
- Line(450 50 6750 50 1 0x00000000)
- Line(3850 2400 3850 2775 10 0x00000000)
- Line(3650 2675 3650 2200 10 0x00000000)
- Line(3700 2725 3650 2675 10 0x00000000)
- Line(3700 2900 3700 2725 10 0x00000000)
- Line(3600 2500 3600 2525 10 0x00000000)
- Line(3600 2350 3600 2500 10 0x00000000)
- Line(2600 1625 2575 1650 10 0x00000000)
- Line(2100 2500 2100 2650 10 0x00000000)
- Line(2575 2000 2575 2500 10 0x00000000)
- Line(2575 1650 2575 2000 10 0x00000000)
- Line(3500 2500 3500 2350 10 0x00000000)
- Line(3225 2450 3225 2600 25 0x00000000)
- Line(2650 1675 2650 1525 10 0x00000000)
- Line(2700 1725 2650 1675 10 0x00000000)
- Line(2700 1775 2700 1725 10 0x00000000)
- Line(2650 1825 2700 1775 10 0x00000000)
- Line(2650 2500 2650 1825 10 0x00000000)
- Line(2700 2550 2650 2500 10 0x00000000)
- Line(2000 2650 2000 2550 10 0x00000000)
- Line(1900 1550 1900 1050 10 0x00000000)
- Line(1925 1575 1900 1550 10 0x00000000)
- Line(1950 1600 1925 1575 10 0x00000000)
- Line(1950 2500 1950 1600 10 0x00000000)
- Line(1900 2550 1950 2500 10 0x00000000)
- Line(1900 2650 1900 2550 10 0x00000000)
- Line(1800 1550 1800 1325 10 0x00000000)
- Line(1850 1600 1800 1550 10 0x00000000)
- Line(1850 2500 1850 1600 10 0x00000000)
- Line(1800 2550 1850 2500 10 0x00000000)
- Line(1800 2650 1800 2550 10 0x00000000)
- Line(1700 1550 1700 1425 10 0x00000000)
- Line(1750 1600 1700 1550 10 0x00000000)
- Line(1750 2500 1750 1600 10 0x00000000)
- Line(1700 2550 1750 2500 10 0x00000000)
- Line(1700 2650 1700 2550 10 0x00000000)
- Line(1600 1650 1600 1000 10 0x00000000)
- Line(1625 1675 1600 1650 10 0x00000000)
- Line(1650 1700 1625 1675 10 0x00000000)
- Line(1650 2500 1650 1700 10 0x00000000)
- Line(1600 2550 1650 2500 10 0x00000000)
- Line(1600 2650 1600 2550 10 0x00000000)
- Line(1550 2500 1550 1250 10 0x00000000)
- Line(1500 2550 1550 2500 10 0x00000000)
- Line(1500 2650 1500 2550 10 0x00000000)
- Line(1400 2650 1400 2550 10 0x00000000)
- Line(815 2400 905 2490 10 0x00000000)
- Line(905 2490 905 3055 10 0x00000000)
- Line(1400 2550 1450 2500 10 0x00000000)
- Line(3225 1375 3225 350 10 0x00000000)
- Line(2950 1525 2950 1375 10 0x00000000)
- Line(3225 350 3150 275 10 0x00000000)
- Line(2900 1625 2900 1250 10 0x00000000)
- Line(3100 325 3050 275 10 0x00000000)
- Line(3100 1250 3100 325 10 0x00000000)
- Line(3000 325 2950 275 10 0x00000000)
- Line(3000 1200 3000 325 10 0x00000000)
- Line(2850 1525 2850 1200 10 0x00000000)
- Line(2800 1625 2800 950 10 0x00000000)
- Line(2900 325 2850 275 10 0x00000000)
- Line(2900 850 2900 325 10 0x00000000)
- Line(2800 950 2900 850 10 0x00000000)
- Line(2800 325 2750 275 10 0x00000000)
- Line(2800 900 2800 325 10 0x00000000)
- Line(2750 950 2800 900 10 0x00000000)
- Line(2750 1525 2750 950 10 0x00000000)
- Line(2700 1625 2700 325 10 0x00000000)
- Line(2700 325 2650 275 10 0x00000000)
- Line(2450 1050 2450 575 10 0x00000000)
- Line(2600 1625 2600 1050 10 0x00000000)
- Line(2650 1525 2650 1300 10 0x00000000)
- Line(2500 325 2550 275 10 0x00000000)
- Line(2500 350 2500 325 10 0x00000000)
- Line(2500 1300 2500 350 10 0x00000000)
- Line(2650 1200 2650 575 10 0x00000000)
- Line(2550 1525 2550 1200 10 0x00000000)
- Line(6025 2775 6125 2875 45 0x00000000)
- Line(6025 2600 6025 2775 45 0x00000000)
- Line(6025 2925 6025 3075 45 0x00000000)
- Line(5400 2600 5400 2450 45 0x00000000)
- Line(5400 2925 5400 3075 45 0x00000000)
- Line(6025 2450 6025 2600 45 0x00000000)
- Line(5500 2450 5500 2925 45 0x00000000)
- Line(5600 3600 5600 3425 45 0x00000000)
- Line(4900 3300 4900 3425 45 0x00000000)
- Line(4750 3700 4750 3425 45 0x00000000)
- Line(4050 3425 4050 3600 45 0x00000000)
- Line(5925 2450 5925 3600 45 0x00000000)
- Line(4025 725 4025 1125 25 0x00000000)
- Line(4025 1125 4075 1175 25 0x00000000)
- Line(4875 875 4875 725 25 0x00000000)
- Line(5375 825 5375 725 25 0x00000000)
- Line(5975 1175 5925 1125 25 0x00000000)
- Line(5925 1125 5925 725 25 0x00000000)
- Line(5875 1175 5825 1125 25 0x00000000)
- Line(5825 1125 5825 1025 25 0x00000000)
- Line(5825 1025 5825 925 25 0x00000000)
- Line(5825 925 5775 875 25 0x00000000)
- Line(4975 575 4975 750 25 0x00000000)
- Line(4975 950 4975 1175 25 0x00000000)
- Line(4975 1175 4975 1400 25 0x00000000)
- Line(4975 1400 5000 1425 25 0x00000000)
- Line(5000 1425 5000 1625 25 0x00000000)
- Line(4975 750 4925 800 25 0x00000000)
- Line(4925 800 4925 925 25 0x00000000)
- Line(4925 925 4975 975 25 0x00000000)
- Line(2425 275 2375 325 25 0x00000000)
- Line(2375 325 2375 950 25 0x00000000)
- Line(765 2805 760 2810 10 0x00000000)
- Line(1750 1525 1750 950 25 0x00000000)
- Line(2450 275 2425 275 25 0x00000000)
- Line(3225 3175 3225 2600 25 0x00000000)
- Line(3275 3725 3275 3925 25 0x00000000)
- Line(2200 2050 2200 2250 25 0x00000000)
- Line(5400 3275 5400 3500 45 0x00000000)
- Line(2400 2450 2400 2650 25 0x00000000)
- Line(2775 2050 2700 2125 25 0x00000000)
- Line(2700 2125 2700 2450 25 0x00000000)
- Line(2800 2050 2775 2050 25 0x00000000)
- Line(1400 2450 1400 2050 25 0x00000000)
- Line(1300 2550 1400 2450 25 0x00000000)
- Line(1100 3100 1150 3050 10 0x00000000)
- Line(1300 2750 1300 2550 25 0x00000000)
- Line(4275 875 4275 1000 25 0x00000000)
- Line(5250 1525 5250 1000 25 0x00000000)
- Line(3150 1000 3150 575 25 0x00000000)
- Line(4275 275 4325 275 25 0x00000000)
- Line(4325 275 4350 300 25 0x00000000)
- Line(4350 300 4350 800 25 0x00000000)
- Line(4350 800 4275 875 25 0x00000000)
- Line(4475 850 4475 950 25 0x00000000)
- Line(3900 350 3975 275 25 0x00000000)
- Line(3975 875 3900 800 25 0x00000000)
- Line(3900 800 3900 350 25 0x00000000)
- Line(5500 2450 5500 2250 25 0x00000000)
- Line(5500 2250 5350 2100 25 0x00000000)
- Line(3325 2600 3325 2900 25 0x00000000)
- Line(3900 2350 3900 2600 25 0x00000000)
- Line(3900 2600 3900 2900 25 0x00000000)
- Line(2025 3050 2025 3225 25 0x00000000)
- Line(1275 3925 1275 3725 25 0x00000000)
- Line(2125 3725 2125 3925 25 0x00000000)
- Line(2725 3725 2725 3925 25 0x00000000)
- Line(3600 2600 3600 2900 25 0x00000000)
- Line(3600 2900 3600 3175 25 0x00000000)
- Line(3325 2900 3375 2950 25 0x00000000)
- Line(3375 2950 3375 3650 25 0x00000000)
- Line(3375 3650 3300 3725 25 0x00000000)
- Line(3300 3725 3275 3725 25 0x00000000)
- Line(2125 3525 2125 3425 25 0x00000000)
- Line(2225 3425 2225 3725 10 0x00000000)
- Line(2725 3425 2725 3475 25 0x00000000)
- Line(5575 2225 5450 2100 10 0x00000000)
- Line(495 2750 495 3300 10 0x00000000)
- Line(450 3985 450 50 1 0x00000000)
- Line(6750 50 6750 3985 1 0x00000000)
- Line(725 2675 725 2600 25 0x00000000)
- Line(725 2600 700 2575 25 0x00000000)
- Line(700 2575 700 2525 25 0x00000000)
- Line(3550 625 3550 1300 10 0x00000000)
- Line(3350 625 3350 525 10 0x00000000)
- Line(6075 575 6150 500 10 0x00000000)
- Line(6150 500 6150 150 10 0x00000000)
- Line(5575 150 5575 225 10 0x00000000)
- Line(4675 150 4675 225 10 0x00000000)
- Line(5075 575 5075 475 10 0x00000000)
- Line(5075 475 5025 425 10 0x00000000)
- Line(5025 425 5025 150 10 0x00000000)
- Line(5375 625 5275 525 10 0x00000000)
- Line(5275 525 5275 225 10 0x00000000)
- Line(4475 625 4475 300 10 0x00000000)
- Line(5575 1225 5550 1250 10 0x00000000)
- Line(5550 1250 5550 1350 10 0x00000000)
- Line(4175 1350 4175 1175 10 0x00000000)
- Line(4175 875 4175 1075 10 0x00000000)
- Line(4475 1075 4475 1225 10 0x00000000)
- Line(5375 1225 5375 1075 10 0x00000000)
- Line(5075 1075 5075 875 10 0x00000000)
- Line(5575 925 5575 825 10 0x00000000)
- Line(4300 2050 4300 2350 10 0x00000000)
- Line(6075 1175 6100 1200 10 0x00000000)
- Line(6100 1200 6100 1425 10 0x00000000)
- Line(5475 1425 5475 1125 10 0x00000000)
- Line(5475 1125 5525 1075 10 0x00000000)
- Line(5525 1075 5525 1000 10 0x00000000)
- Line(5525 1000 5575 950 10 0x00000000)
- Line(5575 950 5575 925 10 0x00000000)
- Line(5125 900 5125 875 10 0x00000000)
- Line(5125 875 5125 800 10 0x00000000)
- Line(5075 1175 5175 1075 10 0x00000000)
- Line(5175 1075 5175 950 10 0x00000000)
- Line(5175 950 5125 900 10 0x00000000)
- Line(4925 1425 4925 1100 10 0x00000000)
- Line(4950 1525 4950 1450 10 0x00000000)
- Line(4925 1100 4900 1075 10 0x00000000)
- Line(4900 1075 4875 1075 10 0x00000000)
- Line(4725 1075 4725 950 10 0x00000000)
- Line(4725 950 4750 925 10 0x00000000)
- Line(4750 925 4750 725 10 0x00000000)
- Line(4750 725 4675 650 10 0x00000000)
- Line(4675 650 4675 625 10 0x00000000)
- Line(4950 1450 4925 1425 10 0x00000000)
- Line(4775 1350 4775 575 10 0x00000000)
- Line(4900 1625 4900 1475 10 0x00000000)
- Line(4900 1475 4775 1350 10 0x00000000)
- Line(4750 1525 4750 1425 10 0x00000000)
- Line(4750 1425 4675 1350 10 0x00000000)
- Line(4675 1350 4675 1225 10 0x00000000)
- Line(4700 1425 4575 1300 10 0x00000000)
- Line(4575 1300 4575 1225 10 0x00000000)
- Line(4575 1225 4475 1225 10 0x00000000)
- Line(4700 1625 4700 1425 10 0x00000000)
- Line(4100 2050 4100 1950 10 0x00000000)
- Line(4100 1625 4100 1800 10 0x00000000)
- Line(4100 1800 4100 1950 10 0x00000000)
- Line(4050 1525 4050 1950 10 0x00000000)
- Line(4050 1950 4050 2000 10 0x00000000)
- Line(4000 2050 4000 2250 10 0x00000000)
- Line(4000 1625 4000 2050 10 0x00000000)
- Line(4050 2150 4050 2000 10 0x00000000)
- Line(3950 1525 3950 2275 10 0x00000000)
- Line(3950 2275 4025 2350 10 0x00000000)
- Line(5575 2375 5575 2225 10 0x00000000)
- Line(2725 3475 2725 3525 25 0x00000000)
- Line(950 2525 950 2450 10 0x00000000)
- Line(1150 2450 1150 2325 10 0x00000000)
- Line(1150 3300 1225 3225 10 0x00000000)
- Line(1225 3225 1225 1725 10 0x00000000)
- Line(2025 2900 2025 2825 10 0x00000000)
- Line(2200 2825 2200 2650 10 0x00000000)
- Line(2800 2150 2900 2050 10 0x00000000)
- Line(2800 2350 2800 2150 10 0x00000000)
- Line(1100 3100 1100 3675 10 0x00000000)
- Line(700 3850 775 3925 25 0x00000000)
- Line(1050 1625 1075 1600 10 0x00000000)
- Line(1825 3725 1825 3850 10 0x00000000)
- Line(2525 3850 2525 3725 10 0x00000000)
- Line(2325 3725 2325 3525 25 0x00000000)
- Line(1925 3725 1925 3600 10 0x00000000)
- Line(2425 3600 2425 3725 10 0x00000000)
- Line(1950 1525 1950 575 10 0x00000000)
- Line(2000 1625 2000 625 10 0x00000000)
- Line(2050 1525 2050 825 10 0x00000000)
- Line(2100 1625 2100 675 10 0x00000000)
- Line(5500 3325 5600 3425 45 0x00000000)
- Line(5500 2925 5500 3325 45 0x00000000)
- Line(2625 2825 2775 2975 10 0x00000000)
- Line(2625 1725 2625 2825 10 0x00000000)
- Line(6375 1125 6375 1725 10 0x00000000)
- Line(6425 1075 6375 1125 10 0x00000000)
- Line(2825 3425 2825 3725 10 0x00000000)
- Line(950 3450 950 2525 10 0x00000000)
- Line(850 3550 950 3450 10 0x00000000)
- Line(850 3600 850 3550 10 0x00000000)
- Line(1150 2325 1150 1125 10 0x00000000)
- Line(4075 475 4075 575 25 0x00000000)
- Line(6150 725 6150 625 10 0x00000000)
- Line(6375 725 6150 725 10 0x00000000)
- Line(6375 825 6375 725 10 0x00000000)
- Line(6475 825 6375 825 10 0x00000000)
- Line(6525 875 6475 825 10 0x00000000)
- Line(6150 625 6200 525 10 0x00000000)
- Line(2950 1300 2950 575 10 0x00000000)
- Line(6150 975 6150 1300 10 0x00000000)
- Line(6325 975 6150 975 10 0x00000000)
- Line(6225 875 6325 775 10 0x00000000)
- Line(5975 650 5975 875 10 0x00000000)
- Line(6225 350 6225 475 10 0x00000000)
- Line(6225 475 6325 575 10 0x00000000)
- Line(6475 425 6525 475 10 0x00000000)
- Line(6475 200 6475 425 10 0x00000000)
- Line(5875 500 5775 400 25 0x00000000)
- Line(5875 575 5875 500 25 0x00000000)
- Line(5775 275 5775 400 25 0x00000000)
- Line(5175 275 5175 400 25 0x00000000)
- Line(4875 275 4875 475 25 0x00000000)
- Line(5375 225 5375 475 25 0x00000000)
- Line(5975 575 5975 475 25 0x00000000)
- Line(5675 1300 5675 1075 25 0x00000000)
- Line(5625 1350 5675 1300 25 0x00000000)
- Line(5625 1875 5625 1350 25 0x00000000)
- Line(6025 2100 6200 2100 40 0x00000000)
- Line(6225 2300 6225 1025 40 0x00000000)
- Line(6425 875 6425 975 25 0x00000000)
- Line(6425 675 6425 775 25 0x00000000)
- Line(6425 475 6425 575 25 0x00000000)
- Line(5925 1875 5925 2100 45 0x00000000)
- Line(5625 1875 5625 2200 45 0x00000000)
- Line(4625 3175 4625 3425 45 0x00000000)
- Line(4700 3100 4625 3175 45 0x00000000)
- Line(4700 2775 4700 3100 45 0x00000000)
- Line(4700 2200 4700 2775 45 0x00000000)
- Line(5925 2225 5925 2450 45 0x00000000)
- Line(6125 2325 6125 2675 45 0x00000000)
- Line(5925 2125 6125 2325 45 0x00000000)
- Line(5925 2100 5925 2125 45 0x00000000)
- Line(6325 2575 6225 2575 45 0x00000000)
- Line(6425 975 6525 1075 25 0x00000000)
- Line(6225 3075 6225 2300 45 0x00000000)
- Line(6225 3075 6225 3425 45 0x00000000)
- Line(6325 3075 6225 3075 45 0x00000000)
- Line(4750 3300 4750 3175 45 0x00000000)
- Line(3950 3175 3950 3600 45 0x00000000)
- Line(5400 3500 5500 3600 45 0x00000000)
- Line(2400 2450 2400 2275 25 0x00000000)
- Line(2200 2650 2200 2375 10 0x00000000)
- Line(2200 2375 2300 2275 10 0x00000000)
- Line(2300 2275 2300 2050 10 0x00000000)
- Line(2300 2650 2300 2350 10 0x00000000)
- Line(2300 2350 2325 2325 10 0x00000000)
- Line(2325 2325 2325 2225 10 0x00000000)
- Line(2325 2225 2400 2150 10 0x00000000)
- Line(2400 2150 2400 2050 10 0x00000000)
- Line(1950 2550 1950 2750 10 0x00000000)
- Line(1950 2750 2025 2825 10 0x00000000)
- Line(2000 2050 2000 2500 10 0x00000000)
- Line(3000 2350 3000 2125 10 0x00000000)
- Line(2200 1625 2200 1950 10 0x00000000)
- Line(2250 2000 2250 2175 10 0x00000000)
- Line(3100 2350 3100 2175 10 0x00000000)
- Line(2200 1950 2250 2000 10 0x00000000)
- Line(2250 1525 2250 1950 10 0x00000000)
- Line(3150 1925 3150 2300 10 0x00000000)
- Line(3150 2300 3200 2350 10 0x00000000)
- Line(1500 2050 1500 1875 10 0x00000000)
- Line(3250 1875 3250 2300 10 0x00000000)
- Line(3250 2300 3300 2350 10 0x00000000)
- Line(2350 1525 2350 1875 10 0x00000000)
- Line(2925 2125 2925 2225 10 0x00000000)
- Line(1700 2175 1700 2050 10 0x00000000)
- Line(3000 2050 2925 2125 10 0x00000000)
- Line(2000 2500 1950 2550 10 0x00000000)
- Line(3900 2250 3900 2050 10 0x00000000)
- Line(2150 2125 2150 1525 10 0x00000000)
- Line(2100 2050 2100 2300 10 0x00000000)
- Line(2500 2550 2575 2625 10 0x00000000)
- Line(2575 2625 2575 2775 10 0x00000000)
- Line(3300 1550 3300 800 10 0x00000000)
- Line(3250 1600 3300 1550 10 0x00000000)
- Line(2500 2050 2500 2550 10 0x00000000)
- Line(1600 2050 1600 2500 10 0x00000000)
- Line(1600 2500 1550 2550 10 0x00000000)
- Line(1550 2550 1550 2825 10 0x00000000)
- Line(3400 2825 3400 2350 10 0x00000000)
- Line(2400 1075 2275 950 10 0x00000000)
- Line(2275 950 2275 900 10 0x00000000)
- Line(2550 900 2550 575 10 0x00000000)
- Line(2300 2050 2300 1825 10 0x00000000)
- Line(2450 1825 2450 1600 10 0x00000200)
- Line(2450 1600 2425 1575 10 0x00000000)
- Line(2425 1575 2400 1550 10 0x00000000)
- Line(2400 1550 2400 1075 10 0x00000000)
- Line(2550 1675 2500 1725 10 0x00000000)
- Line(1900 1750 1900 2050 10 0x00000000)
- Line(2550 1525 2550 1675 10 0x00000000)
- Line(1800 1700 1800 2050 10 0x00000000)
- Line(4300 1975 4300 1650 10 0x00000000)
- Line(2900 2350 2900 2650 10 0x00000000)
- Line(4800 2650 4800 1625 10 0x00000000)
- Line(4650 2150 4650 1525 10 0x00000000)
- Line(4625 2825 4625 2175 10 0x00000000)
- Line(4625 2175 4650 2150 10 0x00000000)
- Line(4850 1775 4850 1525 10 0x00000000)
- Line(3000 1625 3000 1775 10 0x00000000)
- Line(3100 2050 3100 1750 10 0x00000000)
- Line(3100 1750 3050 1700 10 0x00000000)
- Line(3050 1700 3050 1625 10 0x00000000)
- Line(3050 1625 3050 1600 10 0x00000000)
- Line(3050 1600 3000 1550 10 0x00000000)
- Line(3000 1550 3000 1475 10 0x00000000)
- Line(3000 1475 3000 1400 10 0x00000000)
- Line(3000 1400 3050 1350 10 0x00000000)
- Line(3050 1350 3050 850 10 0x00000000)
- Line(2750 850 2750 575 10 0x00000000)
- Line(2850 800 2850 575 10 0x00000000)
- Line(3200 2050 3200 1725 10 0x00000000)
- Line(3200 1725 3250 1675 10 0x00000000)
- Line(3250 1675 3250 1600 10 0x00000000)
- Line(3800 2350 3850 2400 10 0x00000000)
- Line(3500 2200 3500 2050 10 0x00000000)
- Line(3700 2050 3550 2200 10 0x00000000)
- Line(3550 2200 3550 2225 10 0x00000000)
- Line(3550 2225 3550 3850 10 0x00000000)
- Line(2975 3525 2975 3725 25 0x00000000)
- Line(3750 2100 3800 2050 10 0x00000000)
- Line(3750 3600 3750 2100 10 0x00000000)
- Line(1225 1610 1220 1605 10 0x00000000)
- Line(2525 3425 2525 2875 10 0x00000000)
- Line(1225 1725 1225 1610 10 0x00000000)
- Line(1075 1600 1075 1475 10 0x00000000)
- Line(4500 1825 4500 1625 10 0x00000000)
- Line(2625 3425 2625 3525 10 0x00000000)
- Line(3275 3525 3275 3425 10 0x00000000)
- Line(4150 1675 4150 2725 10 0x00000000)
- Line(4200 1625 4150 1675 10 0x00000000)
- Line(1050 2700 1050 3300 10 0x00000000)
- Line(2225 3100 2225 3425 10 0x00000000)
- Line(4025 2500 4025 3100 10 0x00000000)
- Line(5200 3375 5200 2600 10 0x00000000)
- Line(1925 3425 2100 3250 10 0x00000000)
- Line(2100 3250 2100 3225 10 0x00000000)
- Line(5700 3225 5700 2450 10 0x00000000)
- Line(5300 2925 5300 3275 10 0x00000000)
- Line(2825 3300 2825 3425 10 0x00000000)
- Line(3275 3050 3275 3425 10 0x00000000)
- Line(5825 2850 5825 2925 10 0x00000000)
- Line(1300 2730 1300 2905 25 0x00000000)
- Line(1300 2905 1305 2910 25 0x00000000)
- Line(550 2695 495 2750 10 0x00000000)
- Line(6750 3985 450 3985 1 0x00000000)
- Line(575 2395 700 2520 25 0x00000000)
- Line(765 2570 765 2805 10 0x00000000)
- Line(1400 2050 1400 1650 25 0x00000000)
- Line(1400 1650 1425 1625 25 0x00000000)
- Line(1425 1625 1425 1525 25 0x00000000)
- Line(1425 1525 1400 1500 25 0x00000000)
- Line(1400 1500 1400 950 25 0x00000000)
- Line(1450 2500 1450 1675 10 0x00000000)
- Line(1450 1675 1475 1650 10 0x00000000)
- Line(1475 1650 1475 1400 10 0x00000000)
- Line(1475 1400 1450 1375 10 0x00000000)
- Text(1025 300 0 100 "Fernando Pessutto" 0x00000000)
- Text(775 225 0 100 "(c) 2003 Walter Fetter Lages" 0x00000000)
- Text(775 150 0 100 "AIC-1.3.0" 0x00000000)
- Text(775 75 0 100 "COMPONENT" 0x00000000)
+ Line[177500 195000 177500 215000 2500 2000 ""]
+ Line[225000 320000 225000 312500 2500 2000 ""]
+ Line[377500 112500 377500 145000 1000 2000 "clearline"]
+ Line[365000 155000 365000 317500 1000 2000 "clearline"]
+ Line[280000 135000 277500 137500 1000 2000 ""]
+ Line[102500 112500 102500 130000 1000 2000 ""]
+ Line[610000 317500 652500 317500 2500 2000 "clearline"]
+ Line[365000 155000 367500 152500 1000 2000 ""]
+ Line[372500 160000 372500 370000 7000 2000 "clearline"]
+ Line[272500 195000 272500 215000 2500 2000 ""]
+ Line[367500 152500 367500 92500 1000 2000 ""]
+ Line[205000 130000 205000 110000 1000 2000 ""]
+ Line[522500 130000 522500 115000 1000 2000 ""]
+ Line[80000 125000 87500 132500 1000 2000 ""]
+ Line[160000 187500 160000 362500 1000 2000 ""]
+ Line[400000 150000 400000 325000 2500 2000 "clearline"]
+ Line[632500 357500 652500 357500 7000 2000 ""]
+ Line[512500 55000 512500 40000 2500 2000 ""]
+ Line[300000 130000 300000 137500 1000 2000 ""]
+ Line[320000 150000 320000 147500 1000 2000 ""]
+ Line[432500 182500 432500 350000 2500 2000 "clearline"]
+ Line[355000 132500 352500 135000 1000 2000 ""]
+ Line[562500 310000 562500 385000 7000 2000 "clearline"]
+ Line[177500 15000 177500 30000 1000 2000 ""]
+ Line[350000 100000 350000 110000 1000 2000 ""]
+ Line[652500 57500 652500 55000 2500 2000 ""]
+ Line[652500 55000 650000 52500 2500 2000 ""]
+ Line[215000 320000 207500 312500 2500 2000 ""]
+ Line[255000 42500 255000 75000 6500 2000 ""]
+ Line[620000 102500 620000 90000 2500 2000 ""]
+ Line[532500 147500 535000 150000 1000 2000 ""]
+ Line[650000 52500 635000 52500 2500 2000 ""]
+ Line[522500 115000 527500 110000 1000 2000 ""]
+ Line[350000 110000 347500 112500 1000 2000 ""]
+ Line[215000 362500 215000 350000 1000 2000 ""]
+ Line[497500 267500 497500 370000 7000 2000 "clearline"]
+ Line[552500 200000 552500 300000 12000 2000 ""]
+ Line[340000 220000 340000 275000 12000 2000 ""]
+ Line[555000 300000 562500 307500 7000 2000 "clearline"]
+ Line[355000 120000 355000 132500 1000 2000 ""]
+ Line[527500 110000 527500 85000 1000 2000 ""]
+ Line[345000 72500 350000 77500 1000 2000 ""]
+ Line[310000 112500 305000 117500 1000 2000 "clearline"]
+ Line[622500 87500 632500 87500 2500 2000 ""]
+ Line[155000 275000 155000 367500 1000 2000 ""]
+ Line[632500 87500 637500 92500 2500 2000 ""]
+ Line[637500 92500 647500 92500 2500 2000 ""]
+ Line[647500 92500 652500 97500 2500 2000 ""]
+ Line[250000 37500 255000 42500 6500 2000 ""]
+ Line[282500 140000 282500 245000 1000 2000 "clearline"]
+ Line[635000 52500 620000 52500 2500 2000 ""]
+ Line[187500 107500 182500 112500 2500 2000 ""]
+ Line[250000 140000 242500 140000 2500 2000 ""]
+ Line[347500 112500 347500 120000 1000 2000 ""]
+ Line[245000 342500 262500 325000 6500 2000 ""]
+ Line[352500 117500 355000 120000 1000 2000 ""]
+ Line[315000 280000 315000 142500 1000 2000 ""]
+ Line[255000 130000 255000 135000 2500 2000 ""]
+ Line[255000 135000 250000 140000 2500 2000 ""]
+ Line[232500 235000 232500 307500 2500 2000 ""]
+ Line[345000 87500 345000 142500 1000 2000 ""]
+ Line[262500 325000 262500 282500 6500 2000 ""]
+ Line[350000 77500 350000 82500 1000 2000 ""]
+ Line[562500 140000 557500 145000 1000 2000 ""]
+ Line[205000 357500 205000 352500 1000 2000 ""]
+ Line[200000 150000 200000 122500 1000 2000 ""]
+ Line[507500 30000 507500 35000 2500 2000 ""]
+ Line[605000 322500 610000 317500 2500 2000 "clearline"]
+ Line[252500 275000 255000 275000 6500 2000 ""]
+ Line[225000 262500 225000 292500 2500 2000 ""]
+ Line[217500 195000 217500 222500 2500 2000 ""]
+ Line[80900 113400 92500 125000 1000 2000 ""]
+ Line[205000 100000 187500 117500 2500 2000 ""]
+ Line[340000 165000 340000 285000 7000 2000 "clearline"]
+ Line[242500 140000 232500 150000 2500 2000 ""]
+ Line[532500 80000 532500 82500 1000 2000 ""]
+ Line[455000 210000 455000 297500 12000 2000 ""]
+ Line[592500 95000 592500 100000 1000 2000 ""]
+ Line[255000 275000 262500 282500 6500 2000 ""]
+ Line[207500 312500 207500 255000 2500 2000 ""]
+ Line[632500 385000 632500 357500 7000 2000 ""]
+ Line[182500 112500 175000 112500 2500 2000 ""]
+ Line[342500 162500 340000 165000 7000 2000 "clearline"]
+ Line[277500 137500 277500 150000 1000 2000 ""]
+ Line[335000 112500 340000 107500 1000 2000 ""]
+ Line[242500 152500 242500 162500 2500 2000 ""]
+ Line[425000 110000 425000 135000 1000 2000 "clearline"]
+ Line[332500 145000 335000 142500 1000 2000 "clearline"]
+ Line[552500 197500 592500 157500 7000 2000 ""]
+ Line[592500 157500 602500 157500 7000 2000 ""]
+ Line[295000 117500 295000 135000 1000 2000 "clearline"]
+ Line[507500 110000 480000 110000 1000 2000 ""]
+ Line[442500 110000 442500 135000 1000 2000 "clearline"]
+ Line[320000 147500 320000 130000 1000 2000 ""]
+ Line[332500 175000 332500 145000 1000 2000 "clearline"]
+ Line[175000 112500 170000 117500 2500 2000 ""]
+ Line[545000 372500 552500 380000 2500 2000 ""]
+ Line[470000 32500 407500 32500 2500 2000 ""]
+ Line[507500 82500 517500 92500 1000 2000 ""]
+ Line[587500 47500 592500 52500 2500 2000 ""]
+ Line[182500 10000 177500 15000 1000 2000 ""]
+ Line[532500 57500 532500 40000 1000 2000 ""]
+ Line[177500 255000 177500 235000 2500 2000 ""]
+ Line[330000 107500 330000 130000 2500 2000 ""]
+ Line[300000 137500 287500 150000 1000 2000 ""]
+ Line[632500 17500 442500 17500 1000 2000 ""]
+ Line[632500 97500 622500 107500 1000 2000 ""]
+ Line[557500 145000 545000 145000 1000 2000 ""]
+ Line[170000 117500 170000 187500 2500 2000 ""]
+ Line[457500 275000 457500 290000 2000 2000 ""]
+ Line[190000 275000 190000 312500 6500 2000 ""]
+ Line[435000 45000 435000 102500 1000 2000 "clearline"]
+ Line[562500 85000 565000 87500 1000 2000 ""]
+ Line[655000 102500 657500 100000 1000 2000 ""]
+ Line[517500 115000 512500 120000 1000 2000 ""]
+ Line[335000 142500 335000 112500 1000 2000 ""]
+ Line[350000 82500 345000 87500 1000 2000 ""]
+ Line[605000 322500 605000 350000 2500 2000 ""]
+ Line[620000 150000 622500 147500 1000 2000 ""]
+ Line[622500 147500 622500 107500 1000 2000 ""]
+ Line[352500 135000 352500 170000 1000 2000 ""]
+ Line[592500 130000 592500 115000 1000 2000 ""]
+ Line[187500 175000 187500 117500 2500 2000 ""]
+ Line[507500 115000 507500 140000 1000 2000 ""]
+ Line[482500 130000 482500 150000 1000 2000 ""]
+ Line[492500 130000 492500 175000 1000 2000 "clearline"]
+ Line[532500 130000 532500 147500 1000 2000 ""]
+ Line[570000 142500 570000 155000 1000 2000 "clearline"]
+ Line[500000 105000 477500 105000 1000 2000 ""]
+ Line[547500 52500 547500 80000 1000 2000 ""]
+ Line[502500 130000 502500 122500 1000 2000 ""]
+ Line[502500 122500 495000 115000 1000 2000 ""]
+ Line[152500 62500 152500 182500 2500 2000 ""]
+ Line[377500 30000 377500 37500 2500 2000 ""]
+ Line[330000 100000 325000 105000 1000 2000 "clearline"]
+ Line[500000 62500 507500 70000 1000 2000 ""]
+ Line[272500 235000 272500 255000 2500 2000 ""]
+ Line[210000 105000 205000 110000 1000 2000 ""]
+ Line[345000 40000 345000 72500 1000 2000 ""]
+ Line[570000 155000 565000 160000 1000 2000 "clearline"]
+ Line[502500 100000 502500 102500 1000 2000 ""]
+ Line[502500 102500 500000 105000 1000 2000 ""]
+ Line[507500 70000 507500 82500 1000 2000 ""]
+ Line[647500 102500 655000 102500 1000 2000 ""]
+ Line[562500 40000 562500 62500 1000 2000 ""]
+ Line[582500 52500 592500 62500 2500 2000 ""]
+ Line[182500 10000 417500 10000 1000 2000 "clearline"]
+ Line[335000 102500 330000 107500 2500 2000 "clearline"]
+ Line[512500 100000 512500 105000 1000 2000 ""]
+ Line[512500 105000 507500 110000 1000 2000 ""]
+ Line[615000 150000 620000 150000 1000 2000 ""]
+ Line[562500 130000 562500 140000 1000 2000 ""]
+ Line[575000 150000 575000 145000 2500 2000 ""]
+ Line[575000 145000 577500 142500 2500 2000 ""]
+ Line[577500 142500 600000 142500 2500 2000 ""]
+ Line[600000 142500 602500 140000 2500 2000 ""]
+ Line[602500 140000 602500 120000 2500 2000 ""]
+ Line[602500 120000 620000 102500 2500 2000 ""]
+ Line[460000 105000 460000 102500 2500 2000 ""]
+ Line[460000 102500 462500 100000 2500 2000 ""]
+ Line[462500 100000 482500 100000 2500 2000 ""]
+ Line[492500 82500 492500 75000 2500 2000 ""]
+ Line[482500 100000 482500 92500 2500 2000 ""]
+ Line[482500 92500 492500 82500 2500 2000 ""]
+ Line[472500 165000 472500 35000 2500 2000 ""]
+ Line[472500 35000 470000 32500 2500 2000 ""]
+ Line[520000 62500 512500 55000 2500 2000 ""]
+ Line[520000 62500 520000 70000 2500 2000 ""]
+ Line[570000 392500 625000 392500 7000 2000 ""]
+ Line[310000 130000 310000 150000 1000 2000 ""]
+ Line[425000 32500 425000 37500 2500 2000 ""]
+ Line[582500 130000 570000 142500 1000 2000 "clearline"]
+ Line[290000 75000 290000 100000 6000 2000 ""]
+ Line[407500 32500 402500 37500 2500 2000 ""]
+ Line[582500 45000 582500 52500 2500 2000 ""]
+ Line[225000 147500 215000 137500 1000 2000 ""]
+ Line[622500 52500 592500 52500 2500 2000 ""]
+ Line[612500 75000 612500 87500 1000 2000 ""]
+ Line[417500 102500 425000 110000 1000 2000 "clearline"]
+ Line[545000 372500 545000 347500 2500 2000 ""]
+ Line[417500 40000 417500 102500 1000 2000 "clearline"]
+ Line[507500 35000 512500 40000 2500 2000 ""]
+ Line[442500 110000 435000 102500 1000 2000 "clearline"]
+ Line[557500 150000 557500 172500 1000 2000 ""]
+ Line[215000 137500 215000 130000 1000 2000 ""]
+ Line[592500 62500 592500 75000 2500 2000 ""]
+ Line[587500 30000 587500 47500 2500 2000 ""]
+ Line[632500 47500 632500 52500 2500 2000 ""]
+ Line[535000 150000 557500 150000 1000 2000 ""]
+ Line[517500 92500 517500 115000 1000 2000 ""]
+ Line[442500 80000 442500 65000 1000 2000 ""]
+ Line[342500 162500 342500 150000 7000 2000 ""]
+ Line[657500 42500 632500 17500 1000 2000 ""]
+ Line[657500 100000 657500 42500 1000 2000 ""]
+ Line[160000 75000 160000 165000 2500 2000 ""]
+ Line[562500 80000 562500 85000 1000 2000 ""]
+ Line[565000 87500 585000 87500 1000 2000 ""]
+ Line[585000 87500 592500 95000 1000 2000 ""]
+ Line[532500 80000 532500 87500 1000 2000 ""]
+ Line[280000 130000 280000 135000 1000 2000 ""]
+ Line[347500 120000 350000 122500 1000 2000 ""]
+ Line[620000 90000 622500 87500 2500 2000 ""]
+ Line[340000 107500 340000 100000 1000 2000 ""]
+ Line[397500 112500 397500 142500 1000 2000 ""]
+ Line[602500 52500 602500 72500 2500 2000 ""]
+ Line[625000 392500 632500 385000 7000 2000 ""]
+ Line[92500 140000 92500 125000 1000 2000 "clearline"]
+ Line[185000 320000 177500 312500 2500 2000 ""]
+ Line[382500 150000 372500 160000 7000 2000 ""]
+ Line[225000 147500 225000 187500 1000 2000 ""]
+ Line[245000 342500 245000 350000 6500 2000 ""]
+ Line[235000 75000 235000 55000 1000 2000 ""]
+ Line[235000 55000 240000 50000 1000 2000 ""]
+ Line[240000 50000 240000 25000 1000 2000 ""]
+ Line[170000 187500 177500 195000 2500 2000 ""]
+ Line[402500 107500 397500 112500 1000 2000 ""]
+ Line[402500 37500 375000 37500 2500 2000 ""]
+ Line[325000 160000 325000 105000 1000 2000 "clearline"]
+ Line[372500 40000 375000 37500 2500 2000 ""]
+ Line[372500 45000 372500 40000 2500 2000 ""]
+ Line[402500 100000 402500 107500 1000 2000 ""]
+ Line[87500 135000 87500 132500 1000 2000 "clearline"]
+ Line[392500 45000 392500 52500 1000 2000 ""]
+ Line[392500 52500 377500 67500 1000 2000 ""]
+ Line[377500 67500 377500 82500 1000 2000 ""]
+ Line[300000 112500 295000 117500 1000 2000 "clearline"]
+ Line[300000 100000 300000 112500 1000 2000 "clearline"]
+ Line[250000 32500 250000 37500 6500 2000 ""]
+ Line[295000 105000 295000 60000 2000 2000 "clearline"]
+ Line[290000 110000 295000 105000 2500 2000 "clearline"]
+ Line[360000 150000 360000 227500 1000 2000 ""]
+ Line[377500 145000 372500 150000 1000 2000 ""]
+ Line[335000 37500 335000 102500 2500 2000 "clearline"]
+ Line[290000 130000 290000 110000 2500 2000 "clearline"]
+ Line[647500 102500 642500 107500 1000 2000 ""]
+ Line[240000 25000 247500 17500 1000 2000 ""]
+ Line[477500 22500 477500 55000 1000 2000 ""]
+ Line[477500 55000 485000 62500 1000 2000 ""]
+ Line[562500 385000 570000 392500 7000 2000 ""]
+ Line[280000 100000 280000 75000 2500 2000 "clearline"]
+ Line[315000 135000 315000 117500 1000 2000 ""]
+ Line[320000 112500 320000 100000 1000 2000 ""]
+ Line[315000 117500 320000 112500 1000 2000 ""]
+ Line[315000 45000 310000 45000 2500 2000 ""]
+ Line[310000 45000 302500 52500 2500 2000 ""]
+ Line[302500 52500 302500 87500 2500 2000 ""]
+ Line[310000 92500 310000 75000 1000 2000 ""]
+ Line[305000 117500 305000 140000 1000 2000 "clearline"]
+ Line[310000 100000 310000 112500 1000 2000 "clearline"]
+ Line[252500 285000 252500 312500 2500 2000 ""]
+ Line[177500 52500 165000 65000 1000 2000 ""]
+ Line[205000 352500 205000 350000 1000 2000 ""]
+ Line[485000 62500 500000 62500 1000 2000 ""]
+ Line[625000 330000 625000 360000 2500 2000 ""]
+ Line[625000 360000 615000 370000 2500 2000 ""]
+ Line[652500 327500 627500 327500 2500 2000 "clearline"]
+ Line[627500 327500 625000 330000 2500 2000 "clearline"]
+ Line[385000 340000 385000 165000 2500 2000 "clearline"]
+ Line[232500 215000 232500 150000 2500 2000 ""]
+ Line[165000 65000 165000 357500 1000 2000 ""]
+ Line[230000 30000 230000 40000 2500 2000 ""]
+ Line[230000 40000 225000 45000 2500 2000 ""]
+ Line[225000 45000 225000 75000 2500 2000 ""]
+ Line[210000 40000 210000 105000 1000 2000 ""]
+ Line[195000 380000 195000 350000 2500 2000 ""]
+ Line[177500 312500 177500 285000 2500 2000 ""]
+ Line[242500 285000 242500 275000 2500 2000 ""]
+ Line[177500 345000 177500 337500 2500 2000 ""]
+ Line[177500 337500 185000 330000 2500 2000 ""]
+ Line[185000 330000 185000 320000 2500 2000 ""]
+ Line[217500 235000 217500 255000 2500 2000 ""]
+ Line[217500 255000 225000 262500 2500 2000 ""]
+ Line[262500 107500 262500 202500 2500 2000 ""]
+ Line[285000 107500 285000 137500 1000 2000 ""]
+ Line[285000 137500 282500 140000 1000 2000 ""]
+ Line[427500 17500 402500 17500 1000 2000 ""]
+ Line[512500 120000 512500 130000 1000 2000 ""]
+ Line[495000 115000 477500 115000 1000 2000 ""]
+ Line[177500 165000 177500 175000 2500 2000 ""]
+ Line[240000 315000 240000 330000 2500 2000 ""]
+ Line[232500 307500 240000 315000 2500 2000 ""]
+ Line[225000 350000 225000 367500 1000 2000 ""]
+ Line[517500 150000 517500 165000 2500 2000 ""]
+ Line[455000 277500 455000 292500 7000 2000 ""]
+ Line[552500 360000 552500 340000 6500 2000 "clearline"]
+ Line[392500 147500 387500 142500 6500 2000 "clearline"]
+ Line[197500 52500 202500 57500 6500 2000 ""]
+ Line[460000 40000 460000 70000 3500 2000 ""]
+ Line[55000 320000 55000 170000 6500 2000 ""]
+ Line[270000 30000 270000 150000 6500 2000 ""]
+ Line[62500 292500 55000 292500 6500 2000 ""]
+ Line[455000 290000 455000 360000 12000 2000 ""]
+ Line[532500 252500 532500 392500 12000 2000 "clearline"]
+ Line[197500 30000 197500 52500 6500 2000 ""]
+ Line[592500 202500 592500 300000 12000 2000 "clearline"]
+ Line[62500 217500 55000 217500 6500 2000 ""]
+ Line[202500 57500 202500 75000 6500 2000 ""]
+ Line[392500 332500 392500 147500 6500 2000 "clearline"]
+ Line[575000 360000 575000 380000 7000 2000 "clearline"]
+ Line[552500 125000 572500 105000 6500 2000 ""]
+ Line[572500 105000 572500 100000 6500 2000 ""]
+ Line[360000 142500 360000 30000 6500 2000 "clearline"]
+ Line[552500 125000 552500 130000 6500 2000 ""]
+ Line[62500 255000 55000 255000 6500 2000 ""]
+ Line[459193 252500 532500 252500 12000 2000 "clearline"]
+ Line[402500 130000 402500 125000 6500 2000 ""]
+ Line[402500 125000 410000 117500 6500 2000 ""]
+ Line[402500 45000 402500 50000 6500 2000 ""]
+ Line[402500 50000 410000 57500 6500 2000 ""]
+ Line[410000 57500 410000 117500 6500 2000 ""]
+ Line[320000 75000 327500 67500 6500 2000 ""]
+ Line[457500 210000 457500 357500 7000 2000 ""]
+ Line[327500 32500 327500 67500 6500 2000 ""]
+ Line[55000 170000 80000 146100 6500 2000 "clearline"]
+ Line[80000 124300 80000 125000 1000 2000 ""]
+ Line[615000 287500 615000 222500 10000 2000 "clearline"]
+ Text[75000 377500 0 100 "Walter Fetter Lages" ""]
+ Text[75000 370000 0 100 "Diego Caberlon Santini" ""]
+ Text[75000 362500 0 100 "AIC-2.2.0 (c) 2009" ""]
+ Text[75000 385000 0 100 "Rodrigo Daniel Trevizan" ""]
)
Layer(5 "GND-comp")
(
Layer(8 "unused")
(
)
+Layer(9 "silk")
+(
+)
+Layer(10 "silk")
+(
+)
+NetList()
+(
+ Net("+5V" "(unknown)")
+ (
+ Connect("C3-1")
+ Connect("C4-2")
+ Connect("C7-1")
+ Connect("C8-2")
+ Connect("C9-2")
+ Connect("C10-1")
+ Connect("J2-A6")
+ Connect("J2-A28")
+ Connect("J2-B28")
+ Connect("J2-C5")
+ Connect("J2-C28")
+ Connect("R1-2")
+ Connect("R3-2")
+ Connect("R4-2")
+ Connect("R5-2")
+ Connect("R11-2")
+ Connect("U1-3")
+ Connect("U2-8")
+ Connect("U4-2")
+ Connect("U5-7")
+ Connect("U5-8")
+ Connect("U6-16")
+ Connect("U7-13")
+ Connect("U7-20")
+ Connect("U7-28")
+ )
+ Net("+12V" "(unknown)")
+ (
+ Connect("C1-1")
+ Connect("C2-2")
+ Connect("C16-1")
+ Connect("C17-2")
+ Connect("C19-1")
+ Connect("C20-2")
+ Connect("C23-1")
+ Connect("C24-2")
+ Connect("D5-1")
+ Connect("D6-1")
+ Connect("J2-A29")
+ Connect("J2-B29")
+ Connect("J2-C29")
+ Connect("U1-1")
+ Connect("U8-1")
+ Connect("U8-8")
+ Connect("U9-1")
+ Connect("U10-1")
+ )
+ Net("/RELEASE" "(unknown)")
+ (
+ Connect("D4-1")
+ Connect("J2-A23")
+ Connect("J2-B23")
+ Connect("J2-C23")
+ Connect("Q1-2")
+ )
+ Net("/SD" "(unknown)")
+ (
+ Connect("U7-22")
+ Connect("U9-3")
+ Connect("U10-3")
+ )
+ Net("BRAKE" "(unknown)")
+ (
+ Connect("U7-4")
+ Connect("U8-2")
+ )
+ Net("CANH" "(unknown)")
+ (
+ Connect("J2-C2")
+ Connect("U3-7")
+ )
+ Net("CANL" "(unknown)")
+ (
+ Connect("J2-A1")
+ Connect("U3-6")
+ )
+ Net("CHA" "(unknown)")
+ (
+ Connect("J2-A5")
+ Connect("R5-1")
+ Connect("U7-6")
+ )
+ Net("CHB" "(unknown)")
+ (
+ Connect("J2-C6")
+ Connect("R4-1")
+ Connect("U7-7")
+ )
+ Net("CLOCK" "(unknown)")
+ (
+ Connect("U2-5")
+ Connect("U7-9")
+ )
+ Net("CTS" "(unknown)")
+ (
+ Connect("J1-8")
+ Connect("U6-8")
+ )
+ Net("DRVA" "(unknown)")
+ (
+ Connect("C26-2")
+ Connect("R6-2")
+ Connect("U7-26")
+ Connect("U9-2")
+ )
+ Net("DRVB" "(unknown)")
+ (
+ Connect("C27-2")
+ Connect("R7-2")
+ Connect("U7-25")
+ Connect("U10-2")
+ )
+ Net("GNDCAN" "(unknown)")
+ (
+ Connect("C14-1")
+ Connect("C15-1")
+ Connect("J2-B1")
+ Connect("J2-B2")
+ Connect("U3-2")
+ Connect("U3-8")
+ Connect("U4-5")
+ )
+ Net("INDEX" "(unknown)")
+ (
+ Connect("J2-B7")
+ Connect("R12-2")
+ )
+ Net("MOTOR+" "(unknown)")
+ (
+ Connect("C21-2")
+ Connect("J2-A25")
+ Connect("J2-B25")
+ Connect("J2-C25")
+ Connect("Q2-3")
+ Connect("Q3-2")
+ Connect("U9-11")
+ )
+ Net("MOTOR-" "(unknown)")
+ (
+ Connect("C25-2")
+ Connect("J2-A26")
+ Connect("J2-B26")
+ Connect("J2-C26")
+ Connect("Q4-3")
+ Connect("Q5-2")
+ Connect("U10-11")
+ )
+ Net("PGND" "(unknown)")
+ (
+ Connect("C1-2")
+ Connect("C2-1")
+ Connect("C3-2")
+ Connect("C4-1")
+ Connect("C5-2")
+ Connect("C6-1")
+ Connect("C6-2")
+ Connect("C7-2")
+ Connect("C8-1")
+ Connect("C9-1")
+ Connect("C13-2")
+ Connect("C16-2")
+ Connect("C17-1")
+ Connect("C18-2")
+ Connect("C19-2")
+ Connect("C20-1")
+ Connect("C22-2")
+ Connect("C23-2")
+ Connect("C24-1")
+ Connect("C26-1")
+ Connect("C27-1")
+ Connect("D1-1")
+ Connect("D2-1")
+ Connect("D3-1")
+ Connect("J1-5")
+ Connect("J2-A7")
+ Connect("J2-A22")
+ Connect("J2-A27")
+ Connect("J2-A30")
+ Connect("J2-A31")
+ Connect("J2-B5")
+ Connect("J2-B6")
+ Connect("J2-B22")
+ Connect("J2-B27")
+ Connect("J2-B30")
+ Connect("J2-B31")
+ Connect("J2-C22")
+ Connect("J2-C27")
+ Connect("J2-C30")
+ Connect("J2-C31")
+ Connect("Q1-3")
+ Connect("Q3-3")
+ Connect("Q5-3")
+ Connect("R13-1")
+ Connect("R14-1")
+ Connect("R15-1")
+ Connect("S1-1")
+ Connect("U1-2")
+ Connect("U2-4")
+ Connect("U5-5")
+ Connect("U6-15")
+ Connect("U7-8")
+ Connect("U7-19")
+ Connect("U7-27")
+ Connect("U8-4")
+ Connect("U8-5")
+ Connect("U9-5")
+ Connect("U9-6")
+ Connect("U10-5")
+ Connect("U10-6")
+ )
+ Net("REFPOS" "(unknown)")
+ (
+ Connect("R12-1")
+ Connect("R13-2")
+ Connect("U7-5")
+ )
+ Net("RTS" "(unknown)")
+ (
+ Connect("J1-7")
+ Connect("U6-7")
+ )
+ Net("RX" "(unknown)")
+ (
+ Connect("J1-2")
+ Connect("U6-13")
+ )
+ Net("TX" "(unknown)")
+ (
+ Connect("J1-3")
+ Connect("U6-14")
+ )
+ Net("unnamed_net1" "(unknown)")
+ (
+ Connect("D1-2")
+ Connect("R1-1")
+ )
+ Net("unnamed_net2" "(unknown)")
+ (
+ Connect("R2-2")
+ Connect("U7-1")
+ )
+ Net("unnamed_net3" "(unknown)")
+ (
+ Connect("C5-1")
+ Connect("R2-1")
+ Connect("R3-1")
+ Connect("S1-2")
+ )
+ Net("unnamed_net4" "(unknown)")
+ (
+ Connect("D2-2")
+ Connect("R6-1")
+ )
+ Net("unnamed_net5" "(unknown)")
+ (
+ Connect("D3-2")
+ Connect("R7-1")
+ )
+ Net("unnamed_net6" "(unknown)")
+ (
+ Connect("R8-1")
+ Connect("U3-1")
+ Connect("U4-6")
+ )
+ Net("unnamed_net7" "(unknown)")
+ (
+ Connect("R10-2")
+ Connect("U3-4")
+ )
+ Net("unnamed_net8" "(unknown)")
+ (
+ Connect("R9-2")
+ Connect("U4-3")
+ )
+ Net("unnamed_net9" "(unknown)")
+ (
+ Connect("R9-1")
+ Connect("U7-17")
+ )
+ Net("unnamed_net10" "(unknown)")
+ (
+ Connect("R10-1")
+ Connect("U5-3")
+ )
+ Net("unnamed_net11" "(unknown)")
+ (
+ Connect("R11-1")
+ Connect("U5-6")
+ Connect("U7-18")
+ )
+ Net("unnamed_net12" "(unknown)")
+ (
+ Connect("C10-2")
+ Connect("U6-2")
+ )
+ Net("unnamed_net13" "(unknown)")
+ (
+ Connect("C11-1")
+ Connect("U6-3")
+ )
+ Net("unnamed_net14" "(unknown)")
+ (
+ Connect("C12-2")
+ Connect("U6-4")
+ )
+ Net("unnamed_net15" "(unknown)")
+ (
+ Connect("C12-1")
+ Connect("U6-5")
+ )
+ Net("unnamed_net16" "(unknown)")
+ (
+ Connect("C13-1")
+ Connect("U6-6")
+ )
+ Net("unnamed_net17" "(unknown)")
+ (
+ Connect("U6-9")
+ Connect("U7-3")
+ )
+ Net("unnamed_net18" "(unknown)")
+ (
+ Connect("U6-10")
+ Connect("U7-2")
+ )
+ Net("unnamed_net19" "(unknown)")
+ (
+ Connect("U6-11")
+ Connect("U7-11")
+ )
+ Net("unnamed_net20" "(unknown)")
+ (
+ Connect("U6-12")
+ Connect("U7-12")
+ )
+ Net("unnamed_net21" "(unknown)")
+ (
+ Connect("C11-2")
+ Connect("U6-1")
+ )
+ Net("unnamed_net22" "(unknown)")
+ (
+ Connect("Q1-1")
+ Connect("U8-6")
+ Connect("U8-7")
+ )
+ Net("unnamed_net23" "(unknown)")
+ (
+ Connect("D7-1")
+ Connect("Q2-1")
+ Connect("R16-2")
+ )
+ Net("unnamed_net24" "(unknown)")
+ (
+ Connect("D8-1")
+ Connect("Q3-1")
+ Connect("R17-2")
+ )
+ Net("unnamed_net25" "(unknown)")
+ (
+ Connect("D9-1")
+ Connect("Q4-1")
+ Connect("R18-1")
+ )
+ Net("unnamed_net26" "(unknown)")
+ (
+ Connect("D10-1")
+ Connect("Q5-1")
+ Connect("R19-1")
+ )
+ Net("unnamed_net27" "(unknown)")
+ (
+ Connect("C21-1")
+ Connect("D5-2")
+ Connect("U9-13")
+ )
+ Net("unnamed_net28" "(unknown)")
+ (
+ Connect("C25-1")
+ Connect("D6-2")
+ Connect("U10-13")
+ )
+ Net("unnamed_net29" "(unknown)")
+ (
+ Connect("R15-2")
+ Connect("U10-4")
+ )
+ Net("unnamed_net30" "(unknown)")
+ (
+ Connect("R14-2")
+ Connect("U9-4")
+ )
+ Net("unnamed_net31" "(unknown)")
+ (
+ Connect("D8-2")
+ Connect("R17-1")
+ Connect("U9-7")
+ )
+ Net("unnamed_net32" "(unknown)")
+ (
+ Connect("D7-2")
+ Connect("R16-1")
+ Connect("U9-12")
+ )
+ Net("unnamed_net33" "(unknown)")
+ (
+ Connect("D10-2")
+ Connect("R19-2")
+ Connect("U10-7")
+ )
+ Net("unnamed_net34" "(unknown)")
+ (
+ Connect("D9-2")
+ Connect("R18-2")
+ Connect("U10-12")
+ )
+ Net("VCAN" "(unknown)")
+ (
+ Connect("C14-2")
+ Connect("C15-2")
+ Connect("J2-A2")
+ Connect("J2-C1")
+ Connect("R8-2")
+ Connect("U3-3")
+ Connect("U4-7")
+ Connect("U4-8")
+ Connect("U5-2")
+ )
+ Net("Vpp" "(unknown)")
+ (
+ Connect("C18-1")
+ Connect("C22-1")
+ Connect("D4-2")
+ Connect("J2-A24")
+ Connect("J2-A32")
+ Connect("J2-B24")
+ Connect("J2-B32")
+ Connect("J2-C7")
+ Connect("J2-C24")
+ Connect("J2-C32")
+ Connect("Q2-2")
+ Connect("Q4-2")
+ )
+)
--- /dev/null
+M48\r
+INCH,TZ\r
+T15C0.020\r
+T17C0.120\r
+T19C0.080\r
+T22C0.028\r
+T23C0.035\r
+T24C0.042\r
+T25C0.052\r
+T26C0.043\r
+T27C0.030\r
+%\r
+T15\r
+X034250Y027250\r
+X034750Y026500\r
+X034250Y024250\r
+X037750Y017250\r
+X050750Y009500\r
+X048750Y025250\r
+X048500Y030750\r
+X046000Y014750\r
+X042000Y017250\r
+X043000Y019250\r
+X043500Y021500\r
+X056250Y028170\r
+X056750Y025750\r
+X059250Y030750\r
+X034250Y033500\r
+X029750Y033500\r
+X032250Y039000\r
+X033750Y030750\r
+X031250Y025750\r
+X030250Y029000\r
+X024500Y029000\r
+X032250Y025250\r
+X050750Y026250\r
+X045500Y026250\r
+X050500Y028750\r
+X048250Y027750\r
+X044500Y016750\r
+X044500Y021500\r
+X046000Y019250\r
+X046000Y024500\r
+X044250Y031250\r
+X048250Y031750\r
+X047750Y031250\r
+X050750Y030750\r
+X044250Y036250\r
+X050750Y035750\r
+X049750Y039500\r
+X054750Y037500\r
+X053250Y037000\r
+X041000Y016750\r
+X041500Y014750\r
+X042500Y019250\r
+X034750Y032000\r
+X038500Y031500\r
+X037500Y034500\r
+X037750Y024750\r
+X042500Y031750\r
+X039500Y028500\r
+X041500Y022750\r
+X045500Y006250\r
+X046000Y009500\r
+X032500Y009500\r
+X042000Y009500\r
+X041250Y007000\r
+X037500Y007000\r
+X009000Y031250\r
+X009500Y032250\r
+X009500Y029500\r
+X009000Y030000\r
+X008500Y029000\r
+X009000Y026500\r
+X009000Y019250\r
+X009500Y024750\r
+X009500Y022500\r
+X010000Y024250\r
+T22\r
+X037000Y029750\r
+X038000Y029750\r
+X039000Y029750\r
+X046000Y030250\r
+X040000Y029750\r
+X040000Y032750\r
+X039000Y032750\r
+X038000Y032750\r
+X037000Y032750\r
+X046000Y032250\r
+X042500Y024500\r
+X038740Y024500\r
+X026750Y029750\r
+X027750Y029750\r
+X028750Y029750\r
+X029750Y029750\r
+X029750Y032750\r
+X028750Y032750\r
+X027750Y032750\r
+X026750Y032750\r
+X035250Y037750\r
+X046000Y037750\r
+X040000Y038250\r
+X039000Y038250\r
+X035250Y035750\r
+X037000Y035250\r
+X038000Y035250\r
+X038000Y038250\r
+X037000Y038250\r
+X039000Y035250\r
+X040000Y035250\r
+X030750Y029750\r
+X030750Y032750\r
+X031750Y029750\r
+X032750Y029750\r
+X033750Y029750\r
+X033750Y032750\r
+X032750Y032750\r
+X031750Y032750\r
+X038740Y016000\r
+X038250Y020000\r
+X040250Y020000\r
+X039750Y008500\r
+X038250Y011750\r
+X038250Y006000\r
+X038250Y008000\r
+X042500Y016000\r
+X039750Y005500\r
+X042750Y008500\r
+X041750Y008500\r
+X040750Y008500\r
+X040250Y011750\r
+X040750Y005500\r
+X041750Y005500\r
+X042750Y005500\r
+X042750Y003750\r
+X040750Y003750\r
+X048250Y029750\r
+X049250Y029750\r
+X050250Y029750\r
+X051250Y029750\r
+X052250Y029750\r
+X053250Y029750\r
+X054250Y029750\r
+X055250Y029750\r
+X054250Y032750\r
+X053250Y032750\r
+X052250Y032750\r
+X051250Y032750\r
+X050250Y032750\r
+X049250Y032750\r
+X048250Y032750\r
+X046000Y035750\r
+X048250Y035250\r
+X049250Y035250\r
+X050250Y035250\r
+X051250Y035250\r
+X051250Y038250\r
+X050250Y038250\r
+X049250Y038250\r
+X048250Y038250\r
+X056500Y035750\r
+X056500Y037750\r
+X057250Y032750\r
+X056250Y032750\r
+X055250Y032750\r
+X056250Y029750\r
+X057250Y029750\r
+X058250Y029750\r
+X059250Y029750\r
+X060250Y029750\r
+X061250Y029750\r
+X061250Y032750\r
+X060250Y032750\r
+X059250Y032750\r
+X058250Y032750\r
+X058250Y035250\r
+X059250Y035250\r
+X060250Y035250\r
+X061250Y035250\r
+X061250Y038250\r
+X060250Y038250\r
+X059250Y038250\r
+X058250Y038250\r
+X057000Y003000\r
+X057000Y005000\r
+X057000Y006750\r
+X057000Y008750\r
+T27\r
+X063250Y036250\r
+X065250Y036250\r
+X065250Y035250\r
+X065250Y034250\r
+X065250Y033250\r
+X065250Y032250\r
+X065250Y031250\r
+X065250Y030250\r
+X065250Y029250\r
+X065250Y028250\r
+X065250Y027250\r
+X065250Y026250\r
+X065250Y025250\r
+X064250Y036250\r
+X064250Y035250\r
+X064250Y034250\r
+X064250Y033250\r
+X064250Y032250\r
+X064250Y031250\r
+X064250Y030250\r
+X064250Y029250\r
+X064250Y028250\r
+X064250Y027250\r
+X064250Y026250\r
+X064250Y025250\r
+X063250Y035250\r
+X063250Y034250\r
+X063250Y033250\r
+X063250Y032250\r
+X063250Y031250\r
+X063250Y030250\r
+X063250Y029250\r
+X063250Y028250\r
+X063250Y027250\r
+X063250Y026250\r
+X063250Y025250\r
+X065250Y024250\r
+X064250Y024250\r
+X065250Y023250\r
+X064250Y023250\r
+X064250Y022250\r
+X065250Y022250\r
+X065250Y021250\r
+X065250Y020250\r
+X064250Y021250\r
+X064250Y020250\r
+X064250Y019250\r
+X063250Y024250\r
+X063250Y023250\r
+X063250Y022250\r
+X063250Y021250\r
+X063250Y020250\r
+X063250Y019250\r
+X064250Y008250\r
+X063250Y008250\r
+X064250Y007250\r
+X063250Y007250\r
+X063250Y006250\r
+X063250Y005250\r
+X064250Y006250\r
+X064250Y005250\r
+X065250Y019250\r
+X065250Y018250\r
+X065250Y017250\r
+X065250Y016250\r
+X065250Y015250\r
+X065250Y014250\r
+X064250Y018250\r
+X064250Y017250\r
+X064250Y016250\r
+X064250Y015250\r
+X064250Y014250\r
+X063250Y014250\r
+X063250Y018250\r
+X063250Y017250\r
+X063250Y016250\r
+X063250Y015250\r
+X065250Y009250\r
+X065250Y008250\r
+X065250Y007250\r
+X065250Y006250\r
+X065250Y005250\r
+X065250Y013250\r
+X065250Y012250\r
+X064250Y013250\r
+X064250Y012250\r
+X063250Y013250\r
+X063250Y012250\r
+X065250Y011250\r
+X065250Y010250\r
+X064250Y011250\r
+X064250Y010250\r
+X063250Y011250\r
+X063250Y010250\r
+X064250Y009250\r
+X063250Y009250\r
+T23\r
+X042500Y029250\r
+X042500Y033250\r
+X038750Y022000\r
+X039750Y022000\r
+X037250Y027750\r
+X040000Y027750\r
+X046000Y027750\r
+X044250Y033250\r
+X044250Y029250\r
+X044000Y027750\r
+X026750Y035250\r
+X027750Y035250\r
+X029750Y035250\r
+X030750Y035250\r
+X027750Y027750\r
+X030750Y027750\r
+X029750Y027750\r
+X026750Y027750\r
+X030250Y037250\r
+X044250Y038750\r
+X042500Y038750\r
+X033250Y038750\r
+X027750Y037750\r
+X026750Y037750\r
+X030250Y038250\r
+X044250Y034750\r
+X042500Y034750\r
+X033250Y027750\r
+X033250Y034750\r
+X008000Y034000\r
+X008000Y032910\r
+X007000Y033460\r
+X007000Y032370\r
+X008000Y031820\r
+X008000Y030730\r
+X008000Y029640\r
+X007000Y031280\r
+X007000Y030190\r
+X038750Y013500\r
+X039750Y013500\r
+X038250Y003750\r
+X039250Y003750\r
+X055500Y027750\r
+X051500Y027750\r
+X050000Y027750\r
+X053250Y034750\r
+X053250Y038750\r
+X054750Y034750\r
+X054750Y038750\r
+X061500Y026000\r
+X057500Y026000\r
+X057500Y027750\r
+X061500Y027750\r
+X057500Y024250\r
+X061500Y024250\r
+X059750Y007000\r
+X059750Y008000\r
+X059750Y003500\r
+X059750Y004500\r
+X035500Y015250\r
+X052750Y012750\r
+X042500Y012750\r
+X049750Y017750\r
+X061000Y014500\r
+X049750Y014500\r
+X052750Y020750\r
+X043000Y017750\r
+X060250Y027000\r
+X058250Y013750\r
+X025000Y030750\r
+X029000Y034000\r
+X044000Y026750\r
+X047250Y026750\r
+X047250Y034000\r
+X052750Y035750\r
+X040000Y026750\r
+X041000Y020000\r
+X047250Y008750\r
+X049750Y010000\r
+X029000Y001750\r
+X043000Y010000\r
+X044000Y005000\r
+X052750Y005000\r
+X055000Y001750\r
+T24\r
+X032500Y021750\r
+X031500Y021750\r
+X030500Y021750\r
+X032500Y013250\r
+X031500Y013250\r
+X030500Y013250\r
+X032500Y005000\r
+X031500Y005000\r
+X030500Y005000\r
+X005500Y012750\r
+X005500Y010980\r
+X050750Y021750\r
+X049750Y021750\r
+X048750Y021750\r
+X050750Y013500\r
+X049750Y013500\r
+X050750Y005000\r
+X049750Y005000\r
+X048750Y013500\r
+X048750Y005000\r
+T26\r
+X006250Y015000\r
+X006250Y016000\r
+X006250Y018250\r
+X006250Y019250\r
+X006250Y021500\r
+X006250Y022500\r
+T25\r
+X006480Y010480\r
+X006480Y013240\r
+X057250Y020000\r
+X060250Y020000\r
+X057250Y012750\r
+X060250Y012750\r
+T19\r
+X005750Y038250\r
+X005750Y003380\r
+X066250Y038250\r
+X066250Y038250\r
+X066250Y003380\r
+X066250Y003250\r
+T17\r
+X007500Y036700\r
+X007500Y026940\r
+M30\r
+++ /dev/null
-\documentclass{deleticle}
-\usepackage{float}
-\usepackage{longtable}
-
-\newcommand{\foreign}[1]{{\it #1}}
-
-\title{Actuator Interface Card\\
-Versão 1.6.0}
-
-\author{Prof. Walter Fetter Lages}
-
-\begin{document}
-
-\maketitle
-
-
-\bibliographystyle{abbrv}
-
-\section{Mapa de Endereços}
-
-O espaço de endereçamento da AIC é ocupado por dois conjuntos de
-dispositivos: os dispositivos existentes na própria TINI e os dispositivos
-externos.
-
-\subsection{Dispositivos da TINI}
-
-O mapa de endereços da TINI é mostrado na tabela \ref{tab:addmap}. Note-se
-que o software da TINI apresenta para o usuário uma memória
-linear\cite{tinispec}. Os endereços habilitados através de
-$\overline{\mbox{PCE0}}$, $\overline{\mbox{PCE1}}$, $\overline{\mbox{PCE2}}$
-e $\overline{\mbox{PCE3}}$, são acessados no firmware da TINI através das
-faixas 800000H-8FFFFFH, 900000H-9FFFFFH, A00000H-AFFFFFH e B00000H-BFFFFFH,
-respectivamente.
-
-Para acesso em Assembly é conveniente lembrar que a TINI utiliza por default
-os bits $\overline{\mbox{PDCE0}}$, $\overline{\mbox{PDCE1}}$,
-$\overline{\mbox{PDCE2}}$, $\overline{\mbox{PDCE3}}$ setados, o que combina
-os espaços de endereçamento de dados e de programa. Neste modo, são
-utilizados apenas os sinais $\overline{\mbox{CE0}}$,
-$\overline{\mbox{CE1}}$, $\overline{\mbox{CE2}}$ e $\overline{\mbox{CE3}}$.
-Assim, para acesso aos dispositivos habilitados por
-$\overline{\mbox{PCE0}}$, $\overline{\mbox{PCE1}}$, $\overline{\mbox{PCE2}}$
-ou $\overline{\mbox{PCE3}}$ é necessário primeiro desabilitar o espaço de
-endereçamento combinado.
-
-\begin{table}[htbp]
-\small
-\caption{Mapa de Endereços da TINI RevD}
-\label{tab:addmap}
-\begin{center}
-\begin{tabular}{ccccc}
-\hline \hline
-Endereço & STROBE & Nome & Dispositivo & Referência\\
-\hline
-000000H-0FFFFFH & $\overline{\mbox{RCE0}}$ & 512Kx8 FLASH & Flash Memory & U2\\
-100000H-1FFFFFH & $\overline{\mbox{CE1}}$ & 512Kx8 SRAM & SRAM & U4\\
-200000H-2FFFFFH & $\overline{\mbox{CE2}}$ & 512Kx8 SRAM & SRAM & U5\\
-300000H-307FFFH & $\overline{\mbox{CE3}}$ & Ethernet Interface & SMC91C94/96 & U3\\
-308000H-309FFFH & $\overline{\mbox{CE3}}$ \\
-310000H & $\overline{\mbox{CE3}}$ & Real Time Clock & DS1315 & U7\\
-310001H-3FFFFFH & $\overline{\mbox{CE3}}$ \\
-000000H-0FFFFFH & $\overline{\mbox{PCE0}}$\\
-100000H-1FFFFFH & $\overline{\mbox{PCE1}}$ \\
-200000H-2FFFFFH & $\overline{\mbox{PCE2}}$ \\
-300000H-3FFFFFH & $\overline{\mbox{PCE3}}$ \\
-\hline
-\end{tabular}
-\end{center}
-\end{table}
-
-\subsection{Dispositivos Externos}
-
-Os dispositivos externos podem ser mapeados, através de jumper, em
-qualquer dos espaços de endereçamento selecionados por
-$\overline{\mbox{PCE0}}$-$\overline{\mbox{PCE3}}$. A tabela \ref{tab:extmap}
-mostra o mapeamento de endereços dentro da faixa selecionada pelo
-jumper.
-
-\begin{table}[htbp]
-\caption{Mapa de Endereços de Dispositivos Externos}
-\label{tab:extmap}
-\begin{center}
-\begin{tabular}{cccc}
-\hline \hline
-Endereço & Nome & Dispositivo & Referência\\
-\hline
-X80000H - X80003H & PWM & 8254 & U6\\
-X80004H - X8FFFFH & Alias PWM & 8254 & U6\\
-X90000H & Encoder & HCTL-2016 & U7\\
-X90001H - X9FFFFH & Alias Encoder & HCTL-2016 & U7\\
-XA0000H & Controle & 22V10 & U8\\
-XA0001H - XAFFFFH & Alias Controller & 22V10 & U8\\
-\hline
-\end{tabular}
-\end{center}
-\end{table}
-
-\subsection{Registrador de Controle}
-
-Este registrador (endereço XA0000H) é implementado em um 22V10 e os
-seus bits estão descritos na tabela \ref{tab:ctrlreg}.
-
-\begin{table}[htbp]
-\caption{Registrador de Controle}
-\label{tab:ctrlreg}
-\begin{center}
-\begin{tabular}{ccl}
-\hline \hline
-Bit & Operação & Descrição\\
-\hline
-D0 & R & índice\\
-\hline
-D1D0 & W\\
-00 & & Desabilita PWM\\
-01 & & Habilita PWM\\
-10 & & Ativa freio\\
-11 & & Libera freio\\
-\hline
-\end{tabular}
-\end{center}
-\end{table}
-
-\section{Conector Traseiro}
-
-Os sinais de interface da AIC com os atuadores, sensores e barramento CAN
-estão disponíveis no conector traseiro. A pinagem deste conector é detalhada
-na tabela \ref{tab:backpinout}.
-
-%\begin{table}[htbp]
-%\caption{Pinagem do Conector Traseiro}
-%\label{tab:backpinout}
-%\begin{center}
-%\begin{tabular}{ccp{7.5cm}}
-
-\begin{center}
-\begin{longtable}{ccp{7.5cm}}
-\caption{Pinagem do Conector Traseiro}
-\label{tab:backpinout}
-\endfirsthead
-\caption{Pinagem do Conector Traseiro}
-(Continuação)
-\endhead
-(Continua)
-\endfoot
-\endlastfoot
-\hline \hline
-Pino & Sinal & Descrição\\
-\hline
-A1 & CANL0 & Sinal de nível baixo do CAN 0\\
-B1, B2 & GNDCAN0 & Terra da alimentação do CAN 0\\
-C2 & CANH0 & Sinal de nível alto do CAN 0\\
-C1, A2 & VCAN0 & Entrada de alimentação do CAN 0\\
-A3 & CANL1 & Sinal de nível baixo do CAN 1 \\
-B3, B4 & GNDCAN1 & Terra da alimentação do CAN 1\\
-C4 & CANH1 & Sinal de nível alto do CAN 1\\
-C3, A4 & VCAN1 & Entrada de alimentação do CAN 1\\
-\hline
-B5, B6 & GND & Terra do encoder\\
-A5 & CHA & Canal A do encoder\\
-C5, A6 & Vcc & Saída de alimentação do encoder\\
-C6 & CHB & Canal B do encoder\\
-\hline
-A7 & GND & Terra do índice\\
-B7 & INDEX & Sinal de índice\\
-C7 & +24V & Saída de alimentação do sensor de índice\\
-\hline
-A22, B22, C22 & GND & Terra do freio\\
-A23, B23, C23 & /RELEASE & Sinal de liberação do freio\\
-A24, B24, C24 & +24V & Saída de alimentação do freio\\
-\hline
-A25, B25, C25 & MOTOR+ & Alimentação do motor\\
-A26, B26, C26 & MOTOR- & Alimentação do motor\\
-\hline
-A27, B27, C27 & GND & Terra da Alimentação de +5V\\
-A28, B28, C28 & Vcc & Saída de Alimentação +5V
-(opcionalmente entrada, se o regulador não for instalado na placa) \\
-A29, B29, C29 & +12V & Saída de Alimentação +12V
-(opcionalmente entrada, se o regulador não for instalado na placa) \\
-A30, B30, C30 & GND & Terra da Alimentação de +12V\\
-A31, B31, C31 & GND & Terra da Alimentação de +24V\\
-A32, B32, C32 & +24V & Entrada de Alimentação +24V\\
-\hline
-\end{longtable}
-\end{center}
-
-%\end{tabular}
-%\end{center}
-%\end{table}
-
-\section{Organização do Software}
-
-No diretório \verb$aic$ existem diversos arquivos e diretórios. Alguns
-diretórios começam com letra maiúscula. Estes diretórios contém
-programas em Java e que devem rodar na AIC. Os diretórios que começam
-com letras minúsculas contém programas que devem rodar no \foreign{host}. Note-se que a
-maioria deles tem duas versões: Uma que roda na AIC e outra que roda no \foreign{host}.
-A idéia é que estes programas testam a mesma coisa, mas um testa rodando
-diretamente na AIC e o outro testa rodando no \foreign{host} e enviando comandos que são
-interpretados e executados na AIC. São os seguintes os arquivos e
-diretórios existentes:
-
-\begin{description}
-
-\item[{\tt AICOff}] Desliga todos os dispositivos, para ser executado na
-AIC.
-
-\item[{\tt CANTest}] Teste da comunicação através do barramento CAN.
-
-\item[{\tt Changes}] Histórico de alterações.
-
-\item[{\tt COPYING}] GNU General Public License.
-
-\item[{\tt BrakeTest/}] Teste do freio, para ser executado na AIC.
-
-\item[{\tt EncoderTest/}] Teste do encoder, para ser executado na AIC.
-
-\item[{\tt IndexTest/}] Teste do fim de curso, para ser executado na AIC.
-
-\item[{\tt IODaemon/}] \foreign{Daemon} de I/O para ser executado na AIC.
-Interpreta os comandos enviados pelo \foreign{host} e executa-os.
-
-\item[{\tt JointTest/}] Teste da junta, para ser executado na AIC.
-
-\item[{\tt Makefile}] Arquivo de Make para compilar todo o software da AIC,
-inclusive documentação. Adicionalmente, cada diretório tem o seu
-próprio {\tt Makefile}, que compila os programas que estão lá.
-
-\item[{\tt MotorReset/}] Reseta o atuador, move o motor até acionar o fim
-de curso , para ser executado na AIC.
-
-\item[{\tt MotorTest/}] Teste do motor, para ser executado na AIC.
-
-\item[{\tt StrobeTest/}] Teste do PLD, para ser executado na AIC.
-
-\item[{\tt TODO}] Arquivo com a descrição das tarefas a realizar.
-
-\item[{\tt aicd/}] Emulador da AIC para rodar em outro computador, ou seja pode-se
-utilizar outro computador para emular a AIC. Isto é utilizado, basicamente, para
-teste dos protocolos de comunicação. Por default o emulador é um
-programa de tempo real utilizando o RTAI. Assim, para executa-lo é
-necessário que os módulos do RTAI estejam carregados.
-
-\item[{\tt braketst/}] Teste do freio, para ser executado no \foreign{host}.
-
-\item[{\tt doc/}] Documentação.
-
-\item[{\tt doc/html}] Documentação das bibliotecas, produzida
-pelo programa {\tt doxygen}.
-
-\item[{\tt encodertst/}] Teste do encoder, para ser executado no \foreign{host}.
-
-\item[{\tt include/}] Arquivos \foreign{header} utilizados pelos programas
-em C++.
-
-\item[{\tt indextst/}] Teste do sensor de fim de curso, para ser executado no \foreign{host}.
-
-\item[{\tt jointtst/}] Teste da junta, para ser executado no \foreign{host}.
-
-\item[{\tt lib/}] Bibliotecas usadas pelos demais programas.
-
-\item[{\tt motortst/}] Teste do motor, para ser executado no \foreign{host}.
-
-\item[{\tt pid/}] Controlador PID, para ser executado no \foreign{host}.
-
-\item[{\tt pld/}] \foreign{Firmware} do PLD da AIC.
-
-\end{description}
-
-
-\section{Protocolo de Aplicação Utilizado para Comunicação via
-UDP}
-\label{sec:UDP}
-
-A figura~\ref{fig:genpacket} mostra o formato genérico dos datagramas que
-são transmitidos entre a AIC e o \foreign{host} através do protocolo
-UDP. Desde a versão 1.2.0 os diversos campos do pacote são codificados
-em binário, com os campos delimitados pelo seu tamanho. (até a versão
-1.1.0 os campos eram codificados em ASCII e separados pelo caractere de
-espaço). A tabela~\ref{tab:genpacket} detalha os campos do datagrama.
-
-\begin{figure}[H]
-\begin{center}
-\begin{tabular}{|c|c|}
-\hline
-identificação & argumentos \\
-\hline
-\end{tabular}
-\end{center}
-\caption{Formato genérico do datagrama de aplicação.}
-\label{fig:genpacket}
-\end{figure}
-
-\begin{table}[H]
-\begin{center}
-\caption{Descrição do datagrama de aplicação.}
-\label{tab:genpacket}
-\begin{tabular}{lcp{8.5cm}}
-\hline
-Campo & tamanho & Descrição\\
-\hline \hline
-identificação & byte & Identificação do comando enviado para a AIC
- ou do \foreign{status} enviado para o
- \foreign{host}. Para manter compatibilidade
- com o protocolo utilizado para transmissão
- por CAN apenas os 6 bits menos
- significativos são utilizados como
- identificação.\\
- & & 0x00 = inválido\\
- & & 0x01 = \foreign{reset}\\
- & & 0x02 = desliga motor \\
- & & 0x03 = aplica freio\\
- & & 0x10 = aplica tensão no motor\\
- & & 0x20 = \foreign{status}\\
- & & 0x30 = libera freio\\
- & & 0x31 = liga motor \\
-
-argumentos & & parâmetros para o comando, ou dados de \foreign{status},
- se forem necessários.\\
-\hline
-\end{tabular}
-\end{center}
-\end{table}
-
-O campo destinado aos argumentos é de tamanho variável. Também é
-importante ressaltar este campo pode não ser utilizado em
-função do tipo de datagrama. Para os códigos utilizados no campo de
-identificação existem constantes definidas no arquivo {\tt aicnet.h}
-(para ser utilizado em programas em C ou C++) e na classe {\tt Host.class}
-(para ser utilizado em programas em Java). Os datagramas trocados entre a
-AIC e o \foreign{host} podem ser classificados em datagramas enviados do \foreign{host} para a
-AIC e datagramas enviados da AIC para o \foreign{host}.
-
-\subsection{Datagramas Enviados pelo \foreign{host} para a AIC}
-
-Os datagramas enviados pelo \foreign{host} para a AIC são utilizados para comandar
-os diversos dispositivos.
-
-\subsubsection{\foreign{Reset}}
-
-O datagrama transmitido pelo \foreign{host} para resetar a AIC é detalhado
-na tabela~\ref{tab:reset}. Não é utilizado o campo de argumentos.
-
-\begin{table}[H]
-\begin{center}
-\caption{Descrição do datagrama \foreign{reset}.}
-\label{tab:reset}
-\begin{tabular}{lcl}
-\hline
-Campo & Tamanho & Valor\\
-\hline \hline
-Identificador & 8 bits & 0x01\\
-Argumentos & & Não utilizado\\
-\hline
-\end{tabular}
-\end{center}
-\end{table}
-
-\subsubsection{Desliga Motor}
-
-O datagrama transmitido pelo \foreign{host} para desligar o motor é
-detalhado na tabela~\ref{tab:turnoff}. Não é utilizado o campo de
-argumentos.
-
-\begin{table}[H]
-\begin{center}
-\caption{Descrição do datagrama desliga motor.}
-\label{tab:turnoff}
-\begin{tabular}{lcl}
-\hline
-Campo & Tamanho & Valor\\
-\hline \hline
-Identificador & 8 bits & 0x02\\
-Argumentos & & Não utilizado\\
-\hline
-\end{tabular}
-\end{center}
-\end{table}
-
-\subsubsection{Aplica Freio}
-
-O datagrama transmitido pelo \foreign{host}, para aplicar o freio
-eletromagnético (colocando a saída correspondente no estado inativo)
-é detalhado na tabela~\ref{tab:brakeon}. Não é utilizado o campo de
-argumentos.
-
-\begin{table}[H]
-\begin{center}
-\caption{Descrição do datagrama aplica freio.}
-\label{tab:brakeon}
-\begin{tabular}{lcl}
-\hline
-Campo & Tamanho & Valor\\
-\hline \hline
-Identificador & 8 bits & 0x03\\
-Argumentos & & Não utilizado\\
-\hline
-\end{tabular}
-\end{center}
-\end{table}
-
-\subsubsection{Aplica Tensão no Motor}
-
-O datagrama transmitido do \foreign{host} para aplicar uma tensão no motor
-é descrito na tabela~\ref{tab:voltage}.
-
-\begin{table}[H]
-\begin{center}
-\caption{Descrição do datagrama aplica tens~ao no motor.}
-\label{tab:voltage}
-\begin{tabular}{lcp{8.5cm}}
-\hline
-Campo & Tamanho & Valor\\
-\hline \hline
-Identificador & 8 bits & 0x10\\
-tensão & 64 bits & Tensão a ser aplicada no motor em IEEE-754 precisão
- dupla. Os bits mais significativos são transmitidos primeiro.\\
-\hline
-\end{tabular}
-\end{center}
-\end{table}
-
-
-\subsubsection{Libera Freio}
-
-O datagrama transmitido pelo \foreign{host} para liberar o freio
-eletromagnético (ativando a saída correspondente) é detalhado na
-tabela~\ref{tab:brakeoff}. Não é utilizado o campo de argumentos.
-
-\begin{table}[H]
-\begin{center}
-\caption{Descrição do datagrama libera freio.}
-\label{tab:brakeoff}
-\begin{tabular}{lcl}
-\hline
-Campo & Tamanho & Valor\\
-\hline \hline
-Identificador & 8 bits & 0x30\\
-Argumentos & & Não utilizado\\
-\hline
-\end{tabular}
-\end{center}
-\end{table}
-
-\subsubsection{Liga Motor}
-
-O datagrama transmitido pelo \foreign{host}, para ligar o motor (com tensão de 0V
-aplicada nele) é detalhado na
-tabela~\ref{tab:turnon}. Não é utilizado o campo de argumentos.
-
-\begin{table}[H]
-\begin{center}
-\caption{Descrição do datagrama liga motor.}
-\label{tab:turnon}
-\begin{tabular}{lcl}
-\hline
-Campo & Tamanho & Valor\\
-\hline \hline
-Identificador & 8 bits & 0x31\\
-Argumentos & & Não utilizado\\
-\hline
-\end{tabular}
-\end{center}
-\end{table}
-
-\subsection{Datagramas Enviados pelo AIC para o \foreign{host}}
-
-Os datagramas enviados pela AIC para o \foreign{host} são utilizados para
-reportar o \foreign{status} dos diversos dispositivos.
-
-\subsubsection{\foreign{Status}}
-
-O datagrama transmitido pela AIC para o \foreign{host} com a
-informação de \foreign{status} dos dispositivos é detalhado na
-tabela~\ref{tab:status}.
-
-\begin{table}[H]
-\begin{center}
-\caption{Descrição do datagrama \foreign{status}.}
-\label{tab:status}
-\begin{tabular}{lcp{8.5cm}}
-\hline
-Campo & Tamanho & Valor\\
-\hline \hline
-Identificador & 8 bits & 0x20\\
-Deslocamento & 64 bits & Deslocamento do motor desde o último datagrama de
- status, em IEEE-754 precisão dupla. Os bits mais
- significativos são transmitidos primeiro.\\
-Índice & 32 bits & Estado da \foreign{sync-switch} (0 ou 1), em
- complemento 2. Os bits mais significativos são
- transmitidos primeiro.\\
-\hline
-\end{tabular}
-\end{center}
-\end{table}
-
-\section{Protocolo de Aplicação Utilizado para Comunicação via
-CAN}
-\label{sec:CAN}
-
-O protocolo de aplicação para comunicação via CAN utiliza o
-campo {\bf identifier} do quadro CAN para identificar a AIC à qual
-refere-se a mensagem (AIC de origem ou destino da mensagem) e o código do
-comando enviado para a AIC ou do \foreign{status} enviado para o
-\foreign{host}. Todas as mensagens são transmitidas através de um quadro
-de dados utilizando o identificador padrão de 11 bits. Os dados associados
-ao comando ou \foreign{status} são transmitidos em binário. Inteiros
-são codificados em complemento 2 com 32 bits. Números em ponto flutuante
-são codificados em IEEE-754. Os bits mais significativos são
-transmitidos primeiro. A tabela~\ref{tab:canident} detalha o formato do
-campo identificador do quadro de dados CAN. Para manter a compatibilidade
-com o protocolo utilizado quando a comunicação é via UDP, são
-utilizados os mesmos códigos de comando ou \foreign{status}. No entanto,
-como são utilizados apenas 6 bits para isto, os dois bits mais
-significativos não são transmitidos no quadro CAN. Estes bits são
-suprimidos e reinseridos pelas rotinas das bibliotecas (vide
-seção~\ref{sec:lib}), de forma a manter uma interface com o usuário
-uniforme independente do meio de transmissão.
-
-\begin{table}[H]
-\begin{center}
-\caption{Descrição do campo identificador do quadro de dados CAN.}
-\label{tab:canident}
-\begin{tabular}{lp{12cm}}
-\hline
-Bits & Descrição\\
-\hline \hline
-10-5 & Código do comando enviado para a AIC
- ou do \foreign{status} enviado para o \foreign{host}.\\
- & 000000 = inválido\\
- & 000001 = \foreign{reset}\\
- & 000010 = desliga motor \\
- & 000011 = aplica freio\\
- & 010000 = aplica tensão no motor\\
- & 100000 = \foreign{status}\\
- & 110000 = libera freio\\
- & 110001 = liga motor \\
-4-0 & Identificação da AIC à qual refere-se
- a mensagem (AIC de origem ou destino da mensagem)\\
- & 00000 mensagem não associada qualquer AIC específica\\
- & 00001 AIC 1\\
- & 00010 AIC 2\\
- & $\vdots$\\
- & 11111 AIC 31\\
-\hline
-\end{tabular}
-\end{center}
-\end{table}
-
-Os dados associados ao comando ou \foreign{status} são transmitidos em
-binário no campo de dados do quadro CAN. Inteiros são codificados em
-complemento 2 com 32 bits. Números em ponto flutuante são codificados em
-IEEE-754. Os bits mais significativos são transmitidos primeiro.
-
-Para os códigos de comando ou \foreign{status} utilizados no campo de
-identificação existem constantes definidas no arquivo {\tt aicnet.h}
-(para ser utilizado em programas em C ou C++) e na classe {\tt Host.class}
-(para ser utilizado em programas em Java). As mensagens trocadas entre a AIC
-e o \foreign{host} podem ser classificadas em mensagens enviadas do
-\foreign{host} para a AIC e mensagens enviadas da AIC para o
-\foreign{host}.
-
-\subsection{Mensagens Enviadas pelo \foreign{host} para a AIC}
-
-As mensagens enviadas pelo \foreign{host} para a AIC são utilizados para
-comandar os diversos dispositivos.
-
-\subsubsection{\foreign{Reset}}
-
-A mensagem transmitida pelo \foreign{host} para resetar a AIC é detalhada
-na tabela~\ref{tab:resetcan}. Não é utilizado o campo de dados.
-
-\begin{table}[H]
-\begin{center}
-\caption{Descrição da mensagem \foreign{reset}.}
-\label{tab:resetcan}
-\begin{tabular}{cl}
-\hline
-Campo & Valor\\
-\hline \hline
-Identificador & 000001xxxxx\\
-Dados & Não utilizado\\
-\hline
-\end{tabular}
-\end{center}
-\end{table}
-
-\subsubsection{Desliga Motor}
-
-A mensagem transmitida pelo \foreign{host} para desligar o motor é
-detalhada na tabela~\ref{tab:turnoffcan}. Não é utilizado o campo de dados.
-
-\begin{table}[H]
-\begin{center}
-\caption{Descrição da mensagem desliga motor.}
-\label{tab:turnoffcan}
-\begin{tabular}{cl}
-\hline
-Campo & Valor\\
-\hline \hline
-Identificador &000010xxxxx\\
-Dados & Não utilizado\\
-\hline
-\end{tabular}
-\end{center}
-\end{table}
-
-\subsubsection{Aplica freio}
-
-A mensagem transmitida pelo \foreign{host}, para aplicar o freio
-eletromagnético (colocando a saída correspondente no estado inativo)
-é detalhada na tabela~\ref{tab:brakeoncan}. Não é utilizado o campo de
-dados.
-
-\begin{table}[H]
-\begin{center}
-\caption{Descrição da mensagem aplica freio.}
-\label{tab:brakeoncan}
-\begin{tabular}{cl}
-\hline
-Campo & Valor\\
-\hline \hline
-Identificador & 000011xxxxx\\
-Dados & Não utilizado\\
-\hline
-\end{tabular}
-\end{center}
-\end{table}
-
-\subsubsection{Aplica Tensão no Motor}
-
-A mensagem transmitida do \foreign{host} para aplicar uma tensão no motor
-é descrita na tabela~\ref{tab:voltagecan}.
-
-\begin{table}[H]
-\begin{center}
-\caption{Descrição da mensagem aplica tensão no motor.}
-\label{tab:voltagecan}
-\begin{tabular}{cp{11cm}}
-\hline
-Campo & Valor\\
-\hline \hline
-Identificador & 010000xxxxx\\
-Dados & Tensão a ser aplicada no motor em IEEE-754
- precisão dupla, com o MSB transmitido primeiro.\\
-\hline
-\end{tabular}
-\end{center}
-\end{table}
-
-\subsubsection{Libera Freio}
-
-A mensagem transmitida pelo \foreign{host} para liberar o freio
-eletromagnético (ativando a saída correspondente) é detalhada na
-tabela~\ref{tab:brakeoffcan}. Não é utilizado o campo de dados.
-
-\begin{table}[H]
-\begin{center}
-\caption{Descrição da mensagem libera freio.}
-\label{tab:brakeoffcan}
-\begin{tabular}{cl}
-\hline
-Campo & Valor\\
-\hline \hline
-Identificador & 110000xxxxx\\
-Dados & Não utilizado\\
-\hline
-\end{tabular}
-\end{center}
-\end{table}
-
-
-\subsubsection{Liga Motor}
-
-A mensagem transmitida pelo \foreign{host}, para ligar o motor (com tensão
-de 0V aplicada nele) é detalhada na tabela~\ref{tab:turnoncan}. Não é
-utilizado o campo de dados.
-
-\begin{table}[H]
-\begin{center}
-\caption{Descrição da mensagem liga motor.}
-\label{tab:turnoncan}
-\begin{tabular}{cl}
-\hline Campo & Valor\\
-\hline \hline
-Identificador & 110001xxxxx\\
-Dados & Não utilizado\\
-\hline
-\end{tabular}
-\end{center}
-\end{table}
-
-\subsection{Mensagens Enviadas pelo AIC para o \foreign{host}}
-
-As mensagens enviadas pela AIC para o \foreign{host} são utilizadas para
-reportar o \foreign{status} dos diversos dispositivos.
-
-\subsubsection{\foreign{Status}}
-
-A mensagem transmitida pela AIC para o \foreign{host} com a informação
-de \foreign{status} dos dispositivos é detalhada na
-tabela~\ref{tab:statuscan}.
-
-\begin{table}[H]
-\begin{center}
-\caption{Descrição da mensagem \foreign{status}.}
-\label{tab:statuscan}
-\begin{tabular}{cp{11cm}}
-\hline
-Campo & Valor\\
-\hline \hline
-Identificador & 100000xxxxx\\
-Dados & Deslocamento do motor desde o último datagrama de
- status. O deslocamento é codificado em IEEE-754 e ocupa os
- primeiros 4 bytes do campo de dados.\\
- & Estado da \foreign{sync-switch} (0 ou 1). Codificado em
- complemento 2, ocupando os últimos 4 bytes do
- campo de dados.\\
-\hline
-\end{tabular}
-\end{center}
-\end{table}
-
-\section{Bibliotecas}
-\label{sec:lib}
-
-A operação da AIC e da comunicação com o \foreign{host} é
-suportada pelas bibliotecas de classes {\tt AIC.jar} e {\tt libaic.a}. A
-biblioteca {\tt AIC.jar} é utilizada pelos programas em Java que executam
-na AIC, enquanto a biblioteca {\tt libaic.a} é utilizada pelos programas em
-C++ que executam no \foreign{host}.
-
-A documentação destas bibliotecas foi gerada automaticamente através do
-utilitário {\tt doxygen} e está disponível em {\tt doc/html/index.htm}.
-
-As classes contidas na biblioteca {\tt libaic.a} podem ser divididas em dois
-grupos: classes utilizadas para operação da AIC e classes para
-Emulação da AIC em outro computador. Este último conjunto de classes
-é utilizado basicamente pelo programa {\tt aicd}.
-
-
-\section{Exemplo Utilizando Comunicação por UDP}
-
-Neste exemplo serão utilizados os programas \verb$IODaemon$ e
-\verb$jointtst$. Para obter o arquivo executável de cada um, basta entrar
-nos diretórios correspondentes e digitar \verb$make$. Digitando-se
-\verb$make distclean$, apaga-se a versão existente para forçar a
-compilação de tudo novamente. A mesma coisa vale para todos os
-Makefiles.
-
-Após compilar o \verb$IODaemon$, necessita-se carregar o executável
-produzido, chamado \verb$IODaemon.tini$, na AIC. Isto pode ser feito por FTP.
-Para tanto, digita-se
-
-\begin{verbatim}
-ftp aic1
-\end{verbatim}
-
-\noindent o \foreign{login} é \emph{root} e a senha \emph{tini}. A seguir,
-deve-se entrar no modo binário digitando
-
-\begin{verbatim}
-bin
-\end{verbatim}
-
-\noindent e carregar o arquivo para a AIC digitando
-
-\begin{verbatim}
-put IODaemon.tini
-\end{verbatim}
-
-\noindent para sair do FTP digita-se
-
-\begin{verbatim}
-quit
-\end{verbatim}
-
-Para rodar o \verb$IODaemon.tini$, é necessário logar-se em uma das AICs,
-por exemplo na \verb$aic1$ por telnet, digitando
-
-\begin{verbatim}
-telnet aic1
-\end{verbatim}
-
-Já no \foreign{prompt} da \verb$aic1$, o programa pode ser executado
-digitando-se
-
-\begin{verbatim}
-java IODaemon.tini -debug -UDP janus 9871
-\end{verbatim}
-
-\begin{description}
-
-\item[{\tt -debug}] é opcional e causa o \foreign{log} da tensão
-aplicada nos motores, leituras dos encoders e outros detalhes no terminal.
-Se não for utilizado não haverá \foreign{log}.
-
-\item[{\tt -UDP}] é a opção para utilizar comunicação por UDP,
-já que o default é utilizar comunicação por CAN.
-
-\item[{\tt janus}] é o nome do \foreign{host} para onde as leituras dos sensores devem
-ser enviadas e de onde serão recebidos os comandos.
-
-\item[{\tt 9871}] é o número da porta UDP do \foreign{host} para onde devem ser enviadas as
-leituras do sensores.
-
-\end{description}
-
-Ao executar o \verb$IODaemon$ perde-se o controle do terminal. Para abortar o
-programa, pode-se abrir outro terminal no \foreign{host} e dar outro telnet para a
-\verb$aic1$. A seguir, pode-se digitar \verb$ps$ para verificar os processos
-executando e um \verb$kill n$ para abortar o processo \verb$n$ (onde
-\verb$n$ é o número de processo do \verb$IODaemon$.)
-
-O \emph{software} do \foreign{host} está no diretório \verb$jointtst$. Para
-executa-lo basta digitar
-
-\begin{verbatim}
-jointtst -UDP aic1 9871
-\end{verbatim}
-
-Este programa gera uma rampas de $0$ a $+24V$, de $+24V$ a $-24V$ e de
-$-24V$ a $+24V$ repetidamente para o motor.
-
-Para executar o programa nas outras AICs, o procedimento é semelhante, basta
-utilizar um número de porta diferente para cada uma delas (sugere-se 9871,
-9872, 9873...) e executar uma cópia do \verb$jointtest$ para cada AIC,
-eventualmente cada uma na sua própria janela.
-
-\bibliography{aic}
-
-\appendix
-
-
-\section{Schematics}
-\includegraphics[height=\textheight]{aictini.eps}
-\includegraphics[height=\textheight]{aicpower.eps}
-\includegraphics[height=\textheight]{aicconn.eps}
-
-\section{Printed Circuit Board}
-
-\includegraphics{aic_assembly.eps}
-\includegraphics{aic_frontsilk.eps}
-\includegraphics{aic_front.eps}
-\includegraphics{aic_frontmask.eps}
-\includegraphics{aic_back.eps}
-\includegraphics{aic_backmask.eps}
-\includegraphics{aic_fab.eps}
-
-\end{document}
+++ /dev/null
-# release: pcb 1.6.3
-# date: Tue Mar 18 10:57:05 2003
-# user: fetter (Walter Fetter Lages,,,)
-# host: runaway.eletro
-
-PCB("" 7000 4100)
-
-Grid(25 0 0)
-Cursor(350 150 3)
-Flags(0x000000d0)
-Groups("1,2,3,s:4,5,6,c:7:8:")
-Styles("Signal,10,40,20:Power,25,60,35:Fat,40,60,35:Skinny,1,36,15")
-
-Symbol(' ' 18)
-(
-)
-Symbol('!' 12)
-(
- SymbolLine(0 35 0 40 8)
- SymbolLine(0 0 0 25 8)
-)
-Symbol('"' 12)
-(
- SymbolLine(0 0 0 10 8)
- SymbolLine(10 0 10 10 8)
-)
-Symbol('#' 12)
-(
- SymbolLine(0 25 20 25 8)
- SymbolLine(0 15 20 15 8)
- SymbolLine(15 10 15 30 8)
- SymbolLine(5 10 5 30 8)
-)
-Symbol('$' 12)
-(
- SymbolLine(15 5 20 10 8)
- SymbolLine(5 5 15 5 8)
- SymbolLine(0 10 5 5 8)
- SymbolLine(0 10 0 15 8)
- SymbolLine(0 15 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 30 8)
- SymbolLine(15 35 20 30 8)
- SymbolLine(5 35 15 35 8)
- SymbolLine(0 30 5 35 8)
- SymbolLine(10 0 10 40 8)
-)
-Symbol('%' 12)
-(
- SymbolLine(0 5 0 10 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 10 0 8)
- SymbolLine(10 0 15 5 8)
- SymbolLine(15 5 15 10 8)
- SymbolLine(10 15 15 10 8)
- SymbolLine(5 15 10 15 8)
- SymbolLine(0 10 5 15 8)
- SymbolLine(0 40 40 0 8)
- SymbolLine(35 40 40 35 8)
- SymbolLine(40 30 40 35 8)
- SymbolLine(35 25 40 30 8)
- SymbolLine(30 25 35 25 8)
- SymbolLine(25 30 30 25 8)
- SymbolLine(25 30 25 35 8)
- SymbolLine(25 35 30 40 8)
- SymbolLine(30 40 35 40 8)
-)
-Symbol('&' 12)
-(
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 5 0 15 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 25 15 10 8)
- SymbolLine(5 40 10 40 8)
- SymbolLine(10 40 20 30 8)
- SymbolLine(0 15 25 40 8)
- SymbolLine(5 0 10 0 8)
- SymbolLine(10 0 15 5 8)
- SymbolLine(15 5 15 10 8)
- SymbolLine(0 25 0 35 8)
-)
-Symbol(''' 12)
-(
- SymbolLine(0 10 10 0 8)
-)
-Symbol('(' 12)
-(
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 5 0 35 8)
-)
-Symbol(')' 12)
-(
- SymbolLine(0 0 5 5 8)
- SymbolLine(5 5 5 35 8)
- SymbolLine(0 40 5 35 8)
-)
-Symbol('*' 12)
-(
- SymbolLine(0 10 20 30 8)
- SymbolLine(0 30 20 10 8)
- SymbolLine(0 20 20 20 8)
- SymbolLine(10 10 10 30 8)
-)
-Symbol('+' 12)
-(
- SymbolLine(0 20 20 20 8)
- SymbolLine(10 10 10 30 8)
-)
-Symbol(',' 12)
-(
- SymbolLine(0 50 10 40 8)
-)
-Symbol('-' 12)
-(
- SymbolLine(0 20 20 20 8)
-)
-Symbol('.' 12)
-(
- SymbolLine(0 40 5 40 8)
-)
-Symbol('/' 12)
-(
- SymbolLine(0 35 30 5 8)
-)
-Symbol('0' 12)
-(
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 30 20 10 8)
-)
-Symbol('1' 12)
-(
- SymbolLine(5 40 15 40 8)
- SymbolLine(10 0 10 40 8)
- SymbolLine(0 10 10 0 8)
-)
-Symbol('2' 12)
-(
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 20 0 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 15 8)
- SymbolLine(0 40 25 15 8)
- SymbolLine(0 40 25 40 8)
-)
-Symbol('3' 12)
-(
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 20 20 20 8)
-)
-Symbol('4' 12)
-(
- SymbolLine(0 20 20 0 8)
- SymbolLine(0 20 25 20 8)
- SymbolLine(20 0 20 40 8)
-)
-Symbol('5' 12)
-(
- SymbolLine(0 0 20 0 8)
- SymbolLine(0 0 0 20 8)
- SymbolLine(0 20 5 15 8)
- SymbolLine(5 15 15 15 8)
- SymbolLine(15 15 20 20 8)
- SymbolLine(20 20 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
-)
-Symbol('6' 12)
-(
- SymbolLine(15 0 20 5 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(0 20 15 20 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(20 25 20 35 8)
-)
-Symbol('7' 12)
-(
- SymbolLine(0 40 25 15 8)
- SymbolLine(25 0 25 15 8)
- SymbolLine(0 0 25 0 8)
-)
-Symbol('8' 12)
-(
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 15 5 20 8)
- SymbolLine(0 5 0 15 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 15 8)
- SymbolLine(15 20 20 15 8)
-)
-Symbol('9' 12)
-(
- SymbolLine(0 40 20 20 8)
- SymbolLine(20 5 20 20 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 5 0 15 8)
- SymbolLine(0 15 5 20 8)
- SymbolLine(5 20 20 20 8)
-)
-Symbol(':' 12)
-(
- SymbolLine(0 15 5 15 8)
- SymbolLine(0 25 5 25 8)
-)
-Symbol(';' 12)
-(
- SymbolLine(0 40 10 30 8)
- SymbolLine(10 15 10 20 8)
-)
-Symbol('<' 12)
-(
- SymbolLine(0 20 10 10 8)
- SymbolLine(0 20 10 30 8)
-)
-Symbol('=' 12)
-(
- SymbolLine(0 15 20 15 8)
- SymbolLine(0 25 20 25 8)
-)
-Symbol('>' 12)
-(
- SymbolLine(0 10 10 20 8)
- SymbolLine(0 30 10 20 8)
-)
-Symbol('?' 12)
-(
- SymbolLine(10 20 10 25 8)
- SymbolLine(10 35 10 40 8)
- SymbolLine(0 5 0 10 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 10 8)
- SymbolLine(10 20 20 10 8)
-)
-Symbol('A' 12)
-(
- SymbolLine(0 5 0 40 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 20 0 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 40 8)
- SymbolLine(0 20 25 20 8)
-)
-Symbol('B' 12)
-(
- SymbolLine(0 40 20 40 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(25 25 25 35 8)
- SymbolLine(20 20 25 25 8)
- SymbolLine(5 20 20 20 8)
- SymbolLine(5 0 5 40 8)
- SymbolLine(0 0 20 0 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 15 8)
- SymbolLine(20 20 25 15 8)
-)
-Symbol('C' 12)
-(
- SymbolLine(5 40 20 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 20 0 8)
-)
-Symbol('D' 12)
-(
- SymbolLine(5 0 5 40 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 35 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(0 40 20 40 8)
- SymbolLine(0 0 20 0 8)
-)
-Symbol('E' 12)
-(
- SymbolLine(0 20 15 20 8)
- SymbolLine(0 40 20 40 8)
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 0 20 0 8)
-)
-Symbol('F' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 0 20 0 8)
- SymbolLine(0 20 15 20 8)
-)
-Symbol('G' 12)
-(
- SymbolLine(20 0 25 5 8)
- SymbolLine(5 0 20 0 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 20 40 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(25 25 25 35 8)
- SymbolLine(20 20 25 25 8)
- SymbolLine(10 20 20 20 8)
-)
-Symbol('H' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(25 0 25 40 8)
- SymbolLine(0 20 25 20 8)
-)
-Symbol('I' 12)
-(
- SymbolLine(0 0 10 0 8)
- SymbolLine(5 0 5 40 8)
- SymbolLine(0 40 10 40 8)
-)
-Symbol('J' 12)
-(
- SymbolLine(0 0 15 0 8)
- SymbolLine(15 0 15 35 8)
- SymbolLine(10 40 15 35 8)
- SymbolLine(5 40 10 40 8)
- SymbolLine(0 35 5 40 8)
-)
-Symbol('K' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 20 20 0 8)
- SymbolLine(0 20 20 40 8)
-)
-Symbol('L' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 40 20 40 8)
-)
-Symbol('M' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 0 15 15 8)
- SymbolLine(15 15 30 0 8)
- SymbolLine(30 0 30 40 8)
-)
-Symbol('N' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 0 0 5 8)
- SymbolLine(0 5 25 30 8)
- SymbolLine(25 0 25 40 8)
-)
-Symbol('O' 12)
-(
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
-)
-Symbol('P' 12)
-(
- SymbolLine(5 0 5 40 8)
- SymbolLine(0 0 20 0 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 15 8)
- SymbolLine(20 20 25 15 8)
- SymbolLine(5 20 20 20 8)
-)
-Symbol('Q' 12)
-(
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(10 30 20 40 8)
-)
-Symbol('R' 12)
-(
- SymbolLine(0 0 20 0 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 15 8)
- SymbolLine(20 20 25 15 8)
- SymbolLine(5 20 20 20 8)
- SymbolLine(5 0 5 40 8)
- SymbolLine(5 20 25 40 8)
-)
-Symbol('S' 12)
-(
- SymbolLine(20 0 25 5 8)
- SymbolLine(5 0 20 0 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 5 0 15 8)
- SymbolLine(0 15 5 20 8)
- SymbolLine(5 20 20 20 8)
- SymbolLine(20 20 25 25 8)
- SymbolLine(25 25 25 35 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(5 40 20 40 8)
- SymbolLine(0 35 5 40 8)
-)
-Symbol('T' 12)
-(
- SymbolLine(0 0 20 0 8)
- SymbolLine(10 0 10 40 8)
-)
-Symbol('U' 12)
-(
- SymbolLine(0 0 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(20 0 20 35 8)
-)
-Symbol('V' 12)
-(
- SymbolLine(0 0 0 30 8)
- SymbolLine(0 30 10 40 8)
- SymbolLine(10 40 20 30 8)
- SymbolLine(20 0 20 30 8)
-)
-Symbol('W' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 40 15 25 8)
- SymbolLine(15 25 30 40 8)
- SymbolLine(30 0 30 40 8)
-)
-Symbol('X' 12)
-(
- SymbolLine(0 0 0 5 8)
- SymbolLine(0 5 25 30 8)
- SymbolLine(25 30 25 40 8)
- SymbolLine(0 30 0 40 8)
- SymbolLine(0 30 25 5 8)
- SymbolLine(25 0 25 5 8)
-)
-Symbol('Y' 12)
-(
- SymbolLine(0 0 0 5 8)
- SymbolLine(0 5 10 15 8)
- SymbolLine(10 15 20 5 8)
- SymbolLine(20 0 20 5 8)
- SymbolLine(10 15 10 40 8)
-)
-Symbol('Z' 12)
-(
- SymbolLine(0 0 25 0 8)
- SymbolLine(25 0 25 5 8)
- SymbolLine(0 30 25 5 8)
- SymbolLine(0 30 0 40 8)
- SymbolLine(0 40 25 40 8)
-)
-Symbol('[' 12)
-(
- SymbolLine(0 0 5 0 8)
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 40 5 40 8)
-)
-Symbol('\' 12)
-(
- SymbolLine(0 5 30 35 8)
-)
-Symbol(']' 12)
-(
- SymbolLine(0 0 5 0 8)
- SymbolLine(5 0 5 40 8)
- SymbolLine(0 40 5 40 8)
-)
-Symbol('^' 12)
-(
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 10 5 8)
-)
-Symbol('_' 12)
-(
- SymbolLine(0 40 20 40 8)
-)
-Symbol('a' 12)
-(
- SymbolLine(15 20 20 25 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(20 20 20 35 8)
- SymbolLine(20 35 25 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
-)
-Symbol('b' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(20 25 20 35 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(0 25 5 20 8)
-)
-Symbol('c' 12)
-(
- SymbolLine(5 20 20 20 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 20 40 8)
-)
-Symbol('d' 12)
-(
- SymbolLine(20 0 20 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
-)
-Symbol('e' 12)
-(
- SymbolLine(5 40 20 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(0 30 20 30 8)
- SymbolLine(20 30 20 25 8)
-)
-Symbol('f' 10)
-(
- SymbolLine(5 5 5 40 8)
- SymbolLine(5 5 10 0 8)
- SymbolLine(10 0 15 0 8)
- SymbolLine(0 20 10 20 8)
-)
-Symbol('g' 12)
-(
- SymbolLine(15 20 20 25 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(0 50 5 55 8)
- SymbolLine(5 55 15 55 8)
- SymbolLine(15 55 20 50 8)
- SymbolLine(20 20 20 50 8)
-)
-Symbol('h' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 40 8)
-)
-Symbol('i' 10)
-(
- SymbolLine(0 10 0 15 8)
- SymbolLine(0 25 0 40 8)
-)
-Symbol('j' 10)
-(
- SymbolLine(5 10 5 15 8)
- SymbolLine(5 25 5 50 8)
- SymbolLine(0 55 5 50 8)
-)
-Symbol('k' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 25 15 40 8)
- SymbolLine(0 25 10 15 8)
-)
-Symbol('l' 10)
-(
- SymbolLine(0 0 0 35 8)
- SymbolLine(0 35 5 40 8)
-)
-Symbol('m' 12)
-(
- SymbolLine(5 25 5 40 8)
- SymbolLine(5 25 10 20 8)
- SymbolLine(10 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 40 8)
- SymbolLine(20 25 25 20 8)
- SymbolLine(25 20 30 20 8)
- SymbolLine(30 20 35 25 8)
- SymbolLine(35 25 35 40 8)
- SymbolLine(0 20 5 25 8)
-)
-Symbol('n' 12)
-(
- SymbolLine(5 25 5 40 8)
- SymbolLine(5 25 10 20 8)
- SymbolLine(10 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 40 8)
- SymbolLine(0 20 5 25 8)
-)
-Symbol('o' 12)
-(
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
-)
-Symbol('p' 12)
-(
- SymbolLine(5 25 5 55 8)
- SymbolLine(0 20 5 25 8)
- SymbolLine(5 25 10 20 8)
- SymbolLine(10 20 20 20 8)
- SymbolLine(20 20 25 25 8)
- SymbolLine(25 25 25 35 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(10 40 20 40 8)
- SymbolLine(5 35 10 40 8)
-)
-Symbol('q' 12)
-(
- SymbolLine(20 25 20 55 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
-)
-Symbol('r' 12)
-(
- SymbolLine(5 25 5 40 8)
- SymbolLine(5 25 10 20 8)
- SymbolLine(10 20 20 20 8)
- SymbolLine(0 20 5 25 8)
-)
-Symbol('s' 12)
-(
- SymbolLine(5 40 20 40 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(20 30 25 35 8)
- SymbolLine(5 30 20 30 8)
- SymbolLine(0 25 5 30 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 20 20 8)
- SymbolLine(20 20 25 25 8)
- SymbolLine(0 35 5 40 8)
-)
-Symbol('t' 10)
-(
- SymbolLine(5 0 5 35 8)
- SymbolLine(5 35 10 40 8)
- SymbolLine(0 15 10 15 8)
-)
-Symbol('u' 12)
-(
- SymbolLine(0 20 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(20 20 20 35 8)
-)
-Symbol('v' 12)
-(
- SymbolLine(0 20 0 30 8)
- SymbolLine(0 30 10 40 8)
- SymbolLine(10 40 20 30 8)
- SymbolLine(20 20 20 30 8)
-)
-Symbol('w' 12)
-(
- SymbolLine(0 20 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 10 40 8)
- SymbolLine(10 40 15 35 8)
- SymbolLine(15 20 15 35 8)
- SymbolLine(15 35 20 40 8)
- SymbolLine(20 40 25 40 8)
- SymbolLine(25 40 30 35 8)
- SymbolLine(30 20 30 35 8)
-)
-Symbol('x' 12)
-(
- SymbolLine(0 20 20 40 8)
- SymbolLine(0 40 20 20 8)
-)
-Symbol('y' 12)
-(
- SymbolLine(0 20 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(20 20 20 50 8)
- SymbolLine(15 55 20 50 8)
- SymbolLine(5 55 15 55 8)
- SymbolLine(0 50 5 55 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
-)
-Symbol('z' 12)
-(
- SymbolLine(0 20 20 20 8)
- SymbolLine(0 40 20 20 8)
- SymbolLine(0 40 20 40 8)
-)
-Symbol('{' 12)
-(
- SymbolLine(5 5 10 0 8)
- SymbolLine(5 5 5 15 8)
- SymbolLine(0 20 5 15 8)
- SymbolLine(0 20 5 25 8)
- SymbolLine(5 25 5 35 8)
- SymbolLine(5 35 10 40 8)
-)
-Symbol('|' 12)
-(
- SymbolLine(0 0 0 40 8)
-)
-Symbol('}' 12)
-(
- SymbolLine(0 0 5 5 8)
- SymbolLine(5 5 5 15 8)
- SymbolLine(5 15 10 20 8)
- SymbolLine(5 25 10 20 8)
- SymbolLine(5 25 5 35 8)
- SymbolLine(0 40 5 35 8)
-)
-Symbol('~' 12)
-(
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 10 20 8)
- SymbolLine(10 20 15 25 8)
- SymbolLine(15 25 20 25 8)
- SymbolLine(20 25 25 20 8)
-)
-Via(5875 3600 60 35 "" 0x00000002)
-Via(4000 3425 60 35 "" 0x00000002)
-Via(4700 3425 60 35 "" 0x00000002)
-Via(4850 3425 60 35 "" 0x00000002)
-Via(5550 3425 60 35 "" 0x00000002)
-Via(5975 2600 60 35 "" 0x00000002)
-Via(5350 2600 60 35 "" 0x00000002)
-Via(5350 3075 60 35 "" 0x00000002)
-Via(5975 3075 60 35 "" 0x00000002)
-Via(5875 2775 60 35 "" 0x00000002)
-Via(6075 2875 60 35 "" 0x00000002)
-Via(5350 3275 60 35 "" 0x00000002)
-Via(3900 3175 60 35 "" 0x00000002)
-Via(4700 3175 60 35 "" 0x00000002)
-Via(6175 3425 60 35 "" 0x00000002)
-Via(6075 2675 60 35 "" 0x00000002)
-Via(5875 2225 60 35 "" 0x00000002)
-Via(4575 3425 60 35 "" 0x00000002)
-Via(5575 2200 60 35 "" 0x00000002)
-Via(6175 1025 60 35 "" 0x00000002)
-Via(6425 1025 60 35 "" 0x00000002)
-Via(5625 1075 60 35 "" 0x00000002)
-Via(5925 475 60 35 "" 0x00000002)
-Via(5325 475 60 35 "" 0x00000002)
-Via(4825 475 60 35 "" 0x00000002)
-Via(5125 400 60 35 "" 0x00000002)
-Via(5725 400 60 35 "" 0x00000002)
-Via(3975 725 60 35 "" 0x00000002)
-Via(4825 725 60 35 "" 0x00000002)
-Via(5325 725 60 35 "" 0x00000002)
-Via(5875 725 60 35 "" 0x00000002)
-Via(4925 950 60 35 "" 0x00000002)
-Via(1350 950 60 35 "" 0x00000002)
-Via(1700 950 60 35 "" 0x00000002)
-Via(2325 950 60 35 "" 0x00000002)
-Via(3175 3175 60 35 "" 0x00000002)
-Via(3225 3925 60 35 "" 0x00000002)
-Via(2350 2450 60 35 "" 0x00000002)
-Via(2650 2450 60 35 "" 0x00000002)
-Via(1350 2450 60 35 "" 0x00000002)
-Via(1250 2800 60 35 "" 0x00000002)
-Via(1250 2900 60 35 "" 0x00000002)
-Via(2475 2875 40 20 "" 0x00000002)
-Via(4225 1000 60 35 "" 0x00000002)
-Via(5200 1000 60 35 "" 0x00000002)
-Via(3100 1000 60 35 "" 0x00000002)
-Via(4425 950 60 35 "" 0x00000002)
-Via(1975 3050 60 35 "" 0x00000002)
-Via(1225 3925 60 35 "" 0x00000002)
-Via(2075 3925 60 35 "" 0x00000002)
-Via(2675 3925 60 35 "" 0x00000002)
-Via(3550 3175 60 35 "" 0x00000002)
-Via(725 3925 60 35 "" 0x00000002)
-Via(4825 1075 40 20 "" 0x00000002)
-Via(6150 525 40 20 "" 0x00000002)
-Via(6175 875 40 20 "" 0x00000002)
-Via(5325 1075 40 20 "" 0x00000002)
-Via(6325 1725 40 20 "" 0x00000002)
-Via(2575 1725 40 20 "" 0x00000002)
-Via(5925 650 40 20 "" 0x00000002)
-Via(4025 475 60 28 "" 0x00000002)
-Via(2000 825 40 20 "" 0x00000002)
-Via(3975 2350 40 20 "" 0x00000002)
-Via(2900 1300 40 20 "" 0x00000002)
-Via(3300 525 40 20 "" 0x00000002)
-Via(5225 225 40 20 "" 0x00000002)
-Via(6100 150 40 20 "" 0x00000002)
-Via(4725 575 40 20 "" 0x00000002)
-Via(6175 350 40 20 "" 0x00000002)
-Via(6425 200 40 20 "" 0x00000002)
-Via(5525 150 40 20 "" 0x00000002)
-Via(4975 150 40 20 "" 0x00000002)
-Via(5425 1425 40 20 "" 0x00000002)
-Via(6050 1425 40 20 "" 0x00000002)
-Via(6100 1300 40 20 "" 0x00000002)
-Via(5500 1350 40 20 "" 0x00000002)
-Via(1900 575 40 20 "" 0x00000002)
-Via(2375 3600 40 20 "" 0x00000002)
-Via(2050 675 40 20 "" 0x00000002)
-Via(1100 1125 40 20 "" 0x00000002)
-Via(5025 1075 40 20 "" 0x00000002)
-Via(4125 1350 40 20 "" 0x00000002)
-Via(1950 625 40 20 "" 0x00000002)
-Via(5075 800 40 20 "" 0x00000002)
-Via(5525 2375 40 20 "" 0x00000002)
-Via(4425 300 40 20 "" 0x00000002)
-Via(3500 1300 40 20 "" 0x00000002)
-Via(2675 3525 60 28 "" 0x00000002)
-Via(900 2450 40 20 "" 0x00000002)
-Via(1100 2450 40 20 "" 0x00000002)
-Via(5775 2850 40 20 "" 0x00000002)
-Via(1050 3675 40 20 "" 0x00000002)
-Via(1775 3850 40 20 "" 0x00000002)
-Via(2475 3850 40 20 "" 0x00000002)
-Via(2075 3525 60 35 "" 0x00000002)
-Via(2275 3525 60 35 "" 0x00000002)
-Via(1875 3600 40 20 "" 0x00000002)
-Via(4125 1075 40 20 "" 0x00000002)
-Via(4425 1075 40 20 "" 0x00000002)
-Via(4675 1075 40 20 "" 0x00000002)
-Via(4625 150 40 20 "" 0x00000002)
-Via(2500 1200 40 20 "" 0x00000002)
-Via(2600 1200 40 20 "" 0x00000002)
-Via(2600 1300 40 20 "" 0x00000002)
-Via(2450 1300 40 20 "" 0x00000002)
-Via(2550 1050 40 20 "" 0x00000002)
-Via(2400 1050 40 20 "" 0x00000002)
-Via(2800 1200 40 20 "" 0x00000002)
-Via(2950 1200 40 20 "" 0x00000002)
-Via(2850 1250 40 20 "" 0x00000002)
-Via(3050 1250 40 20 "" 0x00000002)
-Via(2900 1375 40 20 "" 0x00000002)
-Via(3175 1375 40 20 "" 0x00000002)
-Via(1400 1375 40 20 "" 0x00000002)
-Via(1500 1250 40 20 "" 0x00000002)
-Via(1550 1000 40 20 "" 0x00000002)
-Via(2950 1000 40 20 "" 0x00000002)
-Via(1650 1425 40 20 "" 0x00000002)
-Via(2750 1425 40 20 "" 0x00000002)
-Via(1750 1325 40 20 "" 0x00000002)
-Via(2700 1300 40 20 "" 0x00000002)
-Via(1850 1050 40 20 "" 0x00000002)
-Via(2650 1050 40 20 "" 0x00000002)
-Via(1950 2550 40 20 "" 0x00000002)
-Via(2650 2550 40 20 "" 0x00000002)
-Via(3175 2450 60 35 "" 0x00000002)
-Via(3450 2500 40 20 "" 0x00000002)
-Via(1975 2825 40 20 "" 0x00000002)
-Via(2150 2825 40 20 "" 0x00000002)
-Via(2525 2500 40 20 "" 0x00000002)
-Via(2050 2500 40 20 "" 0x00000002)
-Via(2525 1975 40 20 "" 0x00000002)
-Via(2150 2250 60 35 "" 0x00000002)
-Via(2350 2250 60 35 "" 0x00000002)
-Via(2950 2125 40 20 "" 0x00000002)
-Via(2100 2125 40 20 "" 0x00000002)
-Via(3050 2175 40 20 "" 0x00000002)
-Via(2200 2175 40 20 "" 0x00000002)
-Via(2200 1950 40 20 "" 0x00000002)
-Via(3100 1925 40 20 "" 0x00000002)
-Via(1450 1875 40 20 "" 0x00000002)
-Via(3200 1875 40 20 "" 0x00000002)
-Via(2300 1875 40 20 "" 0x00000002)
-Via(3550 2525 40 20 "" 0x00000002)
-Via(2875 2225 40 20 "" 0x00000002)
-Via(1650 2175 40 20 "" 0x00000002)
-Via(2050 2300 40 20 "" 0x00000002)
-Via(3850 2250 40 20 "" 0x00000002)
-Via(2525 2775 40 20 "" 0x00000002)
-Via(3800 2775 40 20 "" 0x00000002)
-Via(1500 2825 40 20 "" 0x00000002)
-Via(3350 2825 40 20 "" 0x00000002)
-Via(2250 1825 40 20 "" 0x00000002)
-Via(2400 1825 40 20 "" 0x00000002)
-Via(2225 900 40 20 "" 0x00000002)
-Via(2500 900 40 20 "" 0x00000002)
-Via(2450 1725 40 20 "" 0x00000002)
-Via(1850 1750 40 20 "" 0x00000002)
-Via(1750 1700 40 20 "" 0x00000002)
-Via(4250 1975 40 20 "" 0x00000002)
-Via(3275 2700 60 35 "" 0x00000002)
-Via(2850 2650 40 20 "" 0x00000002)
-Via(4750 2650 40 20 "" 0x00000002)
-Via(4650 2900 60 35 "" 0x00000002)
-Via(4575 2825 40 20 "" 0x00000002)
-Via(2950 1775 40 20 "" 0x00000002)
-Via(4800 1775 40 20 "" 0x00000002)
-Via(3000 850 40 20 "" 0x00000002)
-Via(2700 850 40 20 "" 0x00000002)
-Via(3250 800 40 20 "" 0x00000002)
-Via(2800 800 40 20 "" 0x00000002)
-Via(3450 2200 40 20 "" 0x00000002)
-Via(3600 2200 40 20 "" 0x00000002)
-Via(3500 3850 40 20 "" 0x00000002)
-Via(2925 3525 60 35 "" 0x00000002)
-Via(3700 3600 40 20 "" 0x00000002)
-Via(1025 1475 40 20 "" 0x00000002)
-Via(1170 1605 40 20 "" 0x00000002)
-Via(4450 1825 40 20 "" 0x00000002)
-Via(2575 3525 40 20 "" 0x00000002)
-Via(3225 3525 40 20 "" 0x00000002)
-Via(3950 2250 40 20 "" 0x00000002)
-Via(4000 2150 40 20 "" 0x00000002)
-Via(4050 2050 40 20 "" 0x00000002)
-Via(1000 2700 40 20 "" 0x00000002)
-Via(4100 2725 40 20 "" 0x00000002)
-Via(3975 2500 40 20 "" 0x00000002)
-Via(2175 3100 40 20 "" 0x00000002)
-Via(3975 3100 40 20 "" 0x00000002)
-Via(5150 2600 40 20 "" 0x00000002)
-Via(5150 3375 40 20 "" 0x00000002)
-Via(2050 3225 40 20 "" 0x00000002)
-Via(5650 3225 40 20 "" 0x00000002)
-Via(5650 2450 40 20 "" 0x00000002)
-Via(5250 3275 40 20 "" 0x00000002)
-Via(2775 3300 40 20 "" 0x00000002)
-Via(3225 3050 40 20 "" 0x00000002)
-Via(445 3300 40 20 "" 0x00000002)
-Via(1250 2550 60 35 "" 0x00000002)
-Via(715 2570 40 20 "" 0x00000002)
-Via(855 3055 40 20 "" 0x00000002)
-
-Element(0x00000000 "R 0.25W" "R13" "2k7" 3280 505 1 100 0x00000000)
-(
- Pin(3300 625 50 20 "1" "1" 0x00000101)
- Pin(3300 225 50 20 "2" "2" 0x00000001)
- ElementLine (3300 325 3300 225 20)
- ElementLine (3300 625 3300 525 20)
- ElementLine (3350 525 3250 525 20)
- ElementLine (3350 325 3350 525 20)
- ElementLine (3250 325 3350 325 20)
- ElementLine (3250 525 3250 325 20)
- Mark (3300 625)
-)
-
-Element(0x00000000 "diode" "D2" "1N4148" 2975 3645 3 100 0x00000000)
-(
- Pin(2925 3425 50 20 "1" "1" 0x00000101)
- Pin(2925 3725 50 20 "2" "2" 0x00000001)
- ElementLine (2925 3425 2925 3525 10)
- ElementLine (2925 3625 2925 3725 10)
- ElementLine (2925 3525 2975 3625 10)
- ElementLine (2975 3625 2875 3625 10)
- ElementLine (2875 3625 2925 3525 10)
- ElementLine (2975 3525 2875 3525 10)
- Mark (2925 3425)
-)
-
-Element(0x00000000 "+5V 1.5A voltage regulator" "U2" "7805" 4200 3790 2 100 0x00000000)
-(
- Pin(4100 3600 80 20 "In" "1" 0x00000101)
- Pin(4000 3600 80 20 "Com" "2" 0x00000001)
- Pin(3900 3600 80 20 "Out" "3" 0x00000001)
- ElementLine (4200 3720 3800 3720 20)
- ElementLine (3800 3720 3800 3540 20)
- ElementLine (3800 3540 4200 3540 20)
- ElementLine (4200 3540 4200 3720 20)
- ElementLine (4200 3720 3800 3720 20)
- ElementLine (3800 3720 3800 3660 20)
- ElementLine (3800 3660 4200 3660 20)
- ElementLine (4200 3660 4200 3720 20)
- ElementLine (4070 3720 4070 3660 10)
- ElementLine (3930 3720 3930 3660 10)
- Mark (4100 3600)
-)
-
-Element(0x00000000 "R 0.25W" "R7" "2k2" 4405 1105 1 100 0x00000000)
-(
- Pin(4425 1225 50 20 "1" "1" 0x00000101)
- Pin(4425 825 50 20 "2" "2" 0x00000001)
- ElementLine (4425 925 4425 825 20)
- ElementLine (4425 1225 4425 1125 20)
- ElementLine (4475 1125 4375 1125 20)
- ElementLine (4475 925 4475 1125 20)
- ElementLine (4375 925 4475 925 20)
- ElementLine (4375 1125 4375 925 20)
- Mark (4425 1225)
-)
-
-Element(0x00000000 "optical coupling device" "U15" "6N136" 3975 1005 0 100 0x00000000)
-(
- Pin(3925 1175 60 28 "NC" "1" 0x00000101)
- Pin(4025 1175 60 28 "A+" "2" 0x00000001)
- Pin(4125 1175 60 28 "K-" "3" 0x00000001)
- Pin(4225 1175 60 28 "NC" "4" 0x00000001)
- Pin(4225 875 60 28 "Gnd" "5" 0x00000001)
- Pin(4125 875 60 28 "Out" "6" 0x00000001)
- Pin(4025 875 60 28 "En" "7" 0x00000001)
- Pin(3925 875 60 28 "Vcc" "8" 0x00000001)
- ElementLine (3875 1225 4275 1225 10)
- ElementLine (4275 1225 4275 825 10)
- ElementLine (4275 825 3875 825 10)
- ElementLine (3875 1225 3875 1075 10)
- ElementLine (3875 975 3875 825 10)
- ElementArc (3875 1025 50 50 90 180 10)
- Mark (3925 1175)
-)
-
-Element(0x00000000 "R 0.25W" "R8" "390" 5505 1105 1 100 0x00000000)
-(
- Pin(5525 1225 50 20 "1" "1" 0x00000101)
- Pin(5525 825 50 20 "2" "2" 0x00000001)
- ElementLine (5525 925 5525 825 20)
- ElementLine (5525 1225 5525 1125 20)
- ElementLine (5575 1125 5475 1125 20)
- ElementLine (5575 925 5575 1125 20)
- ElementLine (5475 925 5575 925 20)
- ElementLine (5475 1125 5475 925 20)
- Mark (5525 1225)
-)
-
-Element(0x00000000 "R 0.25W" "R1" "390" 5305 505 1 100 0x00000000)
-(
- Pin(5325 625 50 20 "1" "1" 0x00000101)
- Pin(5325 225 50 20 "2" "2" 0x00000001)
- ElementLine (5325 325 5325 225 20)
- ElementLine (5325 625 5325 525 20)
- ElementLine (5375 525 5275 525 20)
- ElementLine (5375 325 5375 525 20)
- ElementLine (5275 325 5375 325 20)
- ElementLine (5275 525 5275 325 20)
- Mark (5325 625)
-)
-
-Element(0x00000000 "optical coupling device" "U12" "6N136" 4875 405 0 100 0x00000000)
-(
- Pin(4825 575 60 28 "NC" "1" 0x00000101)
- Pin(4925 575 60 28 "A+" "2" 0x00000001)
- Pin(5025 575 60 28 "K-" "3" 0x00000001)
- Pin(5125 575 60 28 "NC" "4" 0x00000001)
- Pin(5125 275 60 28 "Gnd" "5" 0x00000001)
- Pin(5025 275 60 28 "Out" "6" 0x00000001)
- Pin(4925 275 60 28 "En" "7" 0x00000001)
- Pin(4825 275 60 28 "Vcc" "8" 0x00000001)
- ElementLine (4775 625 5175 625 10)
- ElementLine (5175 625 5175 225 10)
- ElementLine (5175 225 4775 225 10)
- ElementLine (4775 625 4775 475 10)
- ElementLine (4775 375 4775 225 10)
- ElementArc (4775 425 50 50 90 180 10)
- Mark (4825 575)
-)
-
-Element(0x00000000 "R 0.25W" "R2" "2k2" 4605 505 1 100 0x00000000)
-(
- Pin(4625 625 50 20 "1" "1" 0x00000101)
- Pin(4625 225 50 20 "2" "2" 0x00000001)
- ElementLine (4625 325 4625 225 20)
- ElementLine (4625 625 4625 525 20)
- ElementLine (4675 525 4575 525 20)
- ElementLine (4675 325 4675 525 20)
- ElementLine (4575 325 4675 325 20)
- ElementLine (4575 525 4575 325 20)
- Mark (4625 625)
-)
-
-Element(0x00000000 "R 0.25W" "R6" "2k2" 4605 1105 1 100 0x00000000)
-(
- Pin(4625 1225 50 20 "1" "1" 0x00000101)
- Pin(4625 825 50 20 "2" "2" 0x00000001)
- ElementLine (4625 925 4625 825 20)
- ElementLine (4625 1225 4625 1125 20)
- ElementLine (4675 1125 4575 1125 20)
- ElementLine (4675 925 4675 1125 20)
- ElementLine (4575 925 4675 925 20)
- ElementLine (4575 1125 4575 925 20)
- Mark (4625 1225)
-)
-
-Element(0x00000000 "R 0.25W" "R5" "390" 5305 1105 1 100 0x00000000)
-(
- Pin(5325 1225 50 20 "1" "1" 0x00000101)
- Pin(5325 825 50 20 "2" "2" 0x00000001)
- ElementLine (5325 925 5325 825 20)
- ElementLine (5325 1225 5325 1125 20)
- ElementLine (5375 1125 5275 1125 20)
- ElementLine (5375 925 5375 1125 20)
- ElementLine (5275 925 5375 925 20)
- ElementLine (5275 1125 5275 925 20)
- Mark (5325 1225)
-)
-
-Element(0x00000000 "optical coupling device" "U14" "6N136" 4875 1005 0 100 0x00000000)
-(
- Pin(4825 1175 60 28 "NC" "1" 0x00000101)
- Pin(4925 1175 60 28 "A+" "2" 0x00000001)
- Pin(5025 1175 60 28 "K-" "3" 0x00000001)
- Pin(5125 1175 60 28 "NC" "4" 0x00000001)
- Pin(5125 875 60 28 "Gnd" "5" 0x00000001)
- Pin(5025 875 60 28 "Out" "6" 0x00000001)
- Pin(4925 875 60 28 "En" "7" 0x00000001)
- Pin(4825 875 60 28 "Vcc" "8" 0x00000001)
- ElementLine (4775 1225 5175 1225 10)
- ElementLine (5175 1225 5175 825 10)
- ElementLine (5175 825 4775 825 10)
- ElementLine (4775 1225 4775 1075 10)
- ElementLine (4775 975 4775 825 10)
- ElementArc (4775 1025 50 50 90 180 10)
- Mark (4825 1175)
-)
-
-Element(0x00000000 "optical coupling device" "U13" "6N136" 3975 405 0 100 0x00000000)
-(
- Pin(3925 575 60 28 "NC" "1" 0x00000101)
- Pin(4025 575 60 28 "A+" "2" 0x00000001)
- Pin(4125 575 60 28 "K-" "3" 0x00000001)
- Pin(4225 575 60 28 "NC" "4" 0x00000001)
- Pin(4225 275 60 28 "Gnd" "5" 0x00000001)
- Pin(4125 275 60 28 "Out" "6" 0x00000001)
- Pin(4025 275 60 28 "En" "7" 0x00000001)
- Pin(3925 275 60 28 "Vcc" "8" 0x00000001)
- ElementLine (3875 625 4275 625 10)
- ElementLine (4275 625 4275 225 10)
- ElementLine (4275 225 3875 225 10)
- ElementLine (3875 625 3875 475 10)
- ElementLine (3875 375 3875 225 10)
- ElementArc (3875 425 50 50 90 180 10)
- Mark (3925 575)
-)
-
-Element(0x00000000 "R 0.25W" "R4" "390" 5505 505 1 100 0x00000000)
-(
- Pin(5525 625 50 20 "1" "1" 0x00000101)
- Pin(5525 225 50 20 "2" "2" 0x00000001)
- ElementLine (5525 325 5525 225 20)
- ElementLine (5525 625 5525 525 20)
- ElementLine (5575 525 5475 525 20)
- ElementLine (5575 325 5575 525 20)
- ElementLine (5475 325 5575 325 20)
- ElementLine (5475 525 5475 325 20)
- Mark (5525 625)
-)
-
-Element(0x00000000 "diode" "D1" "1N4148" 1575 3645 3 100 0x00000000)
-(
- Pin(1525 3425 50 20 "1" "1" 0x00000101)
- Pin(1525 3725 50 20 "2" "2" 0x00000001)
- ElementLine (1525 3425 1525 3525 10)
- ElementLine (1525 3625 1525 3725 10)
- ElementLine (1525 3525 1575 3625 10)
- ElementLine (1575 3625 1475 3625 10)
- ElementLine (1475 3625 1525 3525 10)
- ElementLine (1575 3525 1475 3525 10)
- Mark (1525 3425)
-)
-
-Element(0x00000000 "LED 5mm" "D10" "Green" 475 2315 0 100 0x00000000)
-(
- Pin(525 2395 60 20 "-" "1" 0x00000101)
- Pin(525 2495 60 20 "+" "2" 0x00000001)
- ElementArc (525 2445 70 70 0 360 10)
- ElementArc (525 2445 50 50 0 360 15)
- Mark (525 2395)
-)
-
-Element(0x00000000 "IRF1010N" "Q2" "IRF1010N" 5150 2260 0 100 0x00000000)
-(
- Pin(5250 2450 80 20 "G" "1" 0x00000101)
- Pin(5350 2450 80 20 "D" "2" 0x00000001)
- Pin(5450 2450 80 20 "S" "3" 0x00000001)
- ElementLine (5420 2330 5420 2390 10)
- ElementLine (5280 2330 5280 2390 10)
- ElementLine (5150 2390 5150 2330 20)
- ElementLine (5550 2390 5150 2390 20)
- ElementLine (5550 2330 5550 2390 20)
- ElementLine (5150 2330 5550 2330 20)
- ElementLine (5150 2510 5150 2330 20)
- ElementLine (5550 2510 5150 2510 20)
- ElementLine (5550 2330 5550 2510 20)
- ElementLine (5150 2330 5550 2330 20)
- Mark (5250 2450)
-)
-
-Element(0x00000000 "generic" "U7" "HCTL-2016" 2450 405 0 100 0x00000000)
-(
- Pin(2400 575 60 28 "1" "1" 0x00000101)
- Pin(2500 575 60 28 "2" "2" 0x00000001)
- Pin(2600 575 60 28 "3" "3" 0x00000001)
- Pin(2700 575 60 28 "4" "4" 0x00000001)
- Pin(2800 575 60 28 "5" "5" 0x00000001)
- Pin(2900 575 60 28 "6" "6" 0x00000001)
- Pin(3000 575 60 28 "7" "7" 0x00000001)
- Pin(3100 575 60 28 "8" "8" 0x00000001)
- Pin(3100 275 60 28 "9" "9" 0x00000001)
- Pin(3000 275 60 28 "10" "10" 0x00000001)
- Pin(2900 275 60 28 "11" "11" 0x00000001)
- Pin(2800 275 60 28 "12" "12" 0x00000001)
- Pin(2700 275 60 28 "13" "13" 0x00000001)
- Pin(2600 275 60 28 "14" "14" 0x00000001)
- Pin(2500 275 60 28 "15" "15" 0x00000001)
- Pin(2400 275 60 28 "16" "16" 0x00000001)
- ElementLine (2350 625 3150 625 10)
- ElementLine (3150 625 3150 225 10)
- ElementLine (3150 225 2350 225 10)
- ElementLine (2350 625 2350 475 10)
- ElementLine (2350 375 2350 225 10)
- ElementArc (2350 425 50 50 90 180 10)
- Mark (2400 575)
-)
-
-Element(0x00000000 "capacitor_radial" "C4" "10uFx25V" 3275 3625 0 100 0x00000000)
-(
- Pin(3125 3725 60 20 "1" "1" 0x00000101)
- Pin(3225 3725 60 20 "2" "2" 0x00000001)
- ElementArc (3175 3725 100 100 0 360 10)
- Mark (3125 3725)
-)
-
-Element(0x00000000 "connector 2x4 pins" "JP1" "ADDRESS" 4360 2000 3 100 0x00000000)
-(
- Pin(4150 2050 60 30 "1" "1" 0x00000101)
- Pin(4250 2050 60 30 "2" "2" 0x00000001)
- Pin(4150 2150 60 30 "3" "3" 0x00000001)
- Pin(4250 2150 60 30 "4" "4" 0x00000001)
- Pin(4150 2250 60 30 "5" "5" 0x00000001)
- Pin(4250 2250 60 30 "6" "6" 0x00000001)
- Pin(4150 2350 60 30 "7" "7" 0x00000001)
- Pin(4250 2350 60 30 "8" "8" 0x00000001)
- ElementLine (4200 2100 4200 2000 10)
- ElementLine (4100 2100 4200 2100 10)
- ElementLine (4300 2000 4100 2000 20)
- ElementLine (4300 2400 4300 2000 20)
- ElementLine (4100 2400 4300 2400 20)
- ElementLine (4100 2000 4100 2400 20)
- Mark (4150 2050)
-)
-
-Element(0x00000000 "generic" "U6" "8254" 1400 2330 0 100 0x00000000)
-(
- Pin(1350 2650 60 28 "1" "1" 0x00000101)
- Pin(1450 2650 60 28 "2" "2" 0x00000001)
- Pin(1550 2650 60 28 "3" "3" 0x00000001)
- Pin(1650 2650 60 28 "4" "4" 0x00000001)
- Pin(1750 2650 60 28 "5" "5" 0x00000001)
- Pin(1850 2650 60 28 "6" "6" 0x00000001)
- Pin(1950 2650 60 28 "7" "7" 0x00000001)
- Pin(2050 2650 60 28 "8" "8" 0x00000001)
- Pin(2150 2650 60 28 "9" "9" 0x00000001)
- Pin(2250 2650 60 28 "10" "10" 0x00000001)
- Pin(2350 2650 60 28 "11" "11" 0x00000001)
- Pin(2450 2650 60 28 "12" "12" 0x00000001)
- Pin(2450 2050 60 28 "13" "13" 0x00000001)
- Pin(2350 2050 60 28 "14" "14" 0x00000001)
- Pin(2250 2050 60 28 "15" "15" 0x00000001)
- Pin(2150 2050 60 28 "16" "16" 0x00000001)
- Pin(2050 2050 60 28 "17" "17" 0x00000001)
- Pin(1950 2050 60 28 "18" "18" 0x00000001)
- Pin(1850 2050 60 28 "19" "19" 0x00000001)
- Pin(1750 2050 60 28 "20" "20" 0x00000001)
- Pin(1650 2050 60 28 "21" "21" 0x00000001)
- Pin(1550 2050 60 28 "22" "22" 0x00000001)
- Pin(1450 2050 60 28 "23" "23" 0x00000001)
- Pin(1350 2050 60 28 "24" "24" 0x00000001)
- ElementLine (1300 2700 2500 2700 10)
- ElementLine (2500 2700 2500 2000 10)
- ElementLine (2500 2000 1300 2000 10)
- ElementLine (1300 2700 1300 2400 10)
- ElementLine (1300 2300 1300 2000 10)
- ElementArc (1300 2350 50 50 90 180 10)
- Mark (1350 2650)
-)
-
-Element(0x00000000 "generic PAL replacement" "U8" "GAL22V10" 2800 2180 0 100 0x00000000)
-(
- Pin(2750 2350 60 28 "CLK/I1" "1" 0x00000101)
- Pin(2850 2350 60 28 "I2" "2" 0x00000001)
- Pin(2950 2350 60 28 "I3" "3" 0x00000001)
- Pin(3050 2350 60 28 "I4" "4" 0x00000001)
- Pin(3150 2350 60 28 "I5" "5" 0x00000001)
- Pin(3250 2350 60 28 "I6" "6" 0x00000001)
- Pin(3350 2350 60 28 "I7" "7" 0x00000001)
- Pin(3450 2350 60 28 "I8" "8" 0x00000001)
- Pin(3550 2350 60 28 "I9" "9" 0x00000001)
- Pin(3650 2350 60 28 "I10" "10" 0x00000001)
- Pin(3750 2350 60 28 "I11" "11" 0x00000001)
- Pin(3850 2350 60 28 "Gnd" "12" 0x00000001)
- Pin(3850 2050 60 28 "I12" "13" 0x00000001)
- Pin(3750 2050 60 28 "I/O/Qj" "14" 0x00000001)
- Pin(3650 2050 60 28 "I/O/Qi" "15" 0x00000001)
- Pin(3550 2050 60 28 "I/O/Qh" "16" 0x00000001)
- Pin(3450 2050 60 28 "I/O/Qg" "17" 0x00000001)
- Pin(3350 2050 60 28 "I/O/Qf" "18" 0x00000001)
- Pin(3250 2050 60 28 "I/O/Qe" "19" 0x00000001)
- Pin(3150 2050 60 28 "I/O/Qd" "20" 0x00000001)
- Pin(3050 2050 60 28 "I/O/Qc" "21" 0x00000001)
- Pin(2950 2050 60 28 "I/O/Qb" "22" 0x00000001)
- Pin(2850 2050 60 28 "I/O/Qa" "23" 0x00000001)
- Pin(2750 2050 60 28 "Vcc" "24" 0x00000001)
- ElementLine (2700 2400 3900 2400 10)
- ElementLine (3900 2400 3900 2000 10)
- ElementLine (3900 2000 2700 2000 10)
- ElementLine (2700 2400 2700 2250 10)
- ElementLine (2700 2150 2700 2000 10)
- ElementArc (2700 2200 50 50 90 180 10)
- Mark (2750 2350)
-)
-
-Element(0x00000000 "SUB-D female 9 pins" "J9" "DB9_female" 500 1440 3 100 0x00000000)
-(
- Pin(850 1240 120 100 "C1" "C1" 0x00000001)
- Pin(850 2180 120 100 "C1" "C1" 0x00000001)
- Pin(900 1510 60 20 "5" "5" 0x00000001)
- Pin(800 1560 60 20 "9" "9" 0x00000001)
- Pin(900 1610 60 20 "4" "4" 0x00000001)
- Pin(800 1660 60 20 "8" "8" 0x00000001)
- Pin(900 1710 60 20 "3" "3" 0x00000001)
- Pin(800 1760 60 20 "7" "7" 0x00000001)
- Pin(900 1810 60 20 "2" "2" 0x00000001)
- Pin(800 1860 60 20 "6" "6" 0x00000001)
- Pin(900 1910 60 20 "1" "1" 0x00000101)
- ElementLine (390 1120 420 1120 10)
- ElementLine (420 1120 420 2300 10)
- ElementLine (420 2300 390 2300 10)
- ElementLine (390 2300 390 1120 10)
- ElementLine (390 1180 420 1180 10)
- ElementLine (390 1300 420 1300 10)
- ElementLine (390 2240 420 2240 10)
- ElementLine (390 2120 420 2120 10)
- ElementLine (120 1410 390 1410 20)
- ElementLine (390 1410 390 2010 10)
- ElementLine (390 2010 120 2010 20)
- ElementLine (120 2010 120 1410 20)
- ElementLine (420 1350 620 1350 20)
- ElementLine (620 1350 620 2070 20)
- ElementLine (620 2070 420 2070 20)
- ElementLine (420 2070 420 1350 10)
- ElementLine (900 1510 620 1510 20)
- ElementLine (800 1560 620 1560 20)
- ElementLine (900 1610 620 1610 20)
- ElementLine (800 1660 620 1660 20)
- ElementLine (900 1710 620 1710 20)
- ElementLine (800 1760 620 1760 20)
- ElementLine (900 1810 620 1810 20)
- ElementLine (800 1860 620 1860 20)
- ElementLine (900 1910 620 1910 20)
- Mark (900 1510)
-)
-
-Element(0x00000000 "LED 5mm" "D9" "Red" 715 2315 0 100 0x00000000)
-(
- Pin(765 2395 60 20 "-" "1" 0x00000101)
- Pin(765 2495 60 20 "+" "2" 0x00000001)
- ElementArc (765 2445 50 50 0 360 15)
- ElementArc (765 2445 70 70 0 360 10)
- Mark (765 2395)
-)
-
-Element(0x00000000 "capacitor_radial" "C7" "1000uFx35V" 4525 2450 2 100 0x00000000)
-(
- Pin(4900 2200 60 20 "1" "1" 0x00000101)
- Pin(4650 2200 60 20 "2" "2" 0x00000001)
- ElementArc (4775 2200 250 250 180 360 10)
- Mark (4900 2200)
-)
-
-Element(0x00000000 "diode" "D3" "1N4007" 850 3520 3 100 0x00000000)
-(
- Pin(800 3300 50 20 "1" "1" 0x00000101)
- Pin(800 3600 50 20 "2" "2" 0x00000001)
- ElementLine (850 3400 750 3400 10)
- ElementLine (750 3500 800 3400 10)
- ElementLine (850 3500 750 3500 10)
- ElementLine (800 3400 850 3500 10)
- ElementLine (800 3500 800 3600 10)
- ElementLine (800 3300 800 3400 10)
- Mark (800 3300)
-)
-
-Element(0x00000000 "IRF1010N" "Q1" "IRF1010N" 5675 2260 0 100 0x00000000)
-(
- Pin(5775 2450 80 20 "G" "1" 0x00000101)
- Pin(5875 2450 80 20 "D" "2" 0x00000001)
- Pin(5975 2450 80 20 "S" "3" 0x00000001)
- ElementLine (5945 2330 5945 2390 10)
- ElementLine (5805 2330 5805 2390 10)
- ElementLine (5675 2390 5675 2330 20)
- ElementLine (6075 2390 5675 2390 20)
- ElementLine (6075 2330 6075 2390 20)
- ElementLine (5675 2330 6075 2330 20)
- ElementLine (5675 2510 5675 2330 20)
- ElementLine (6075 2510 5675 2510 20)
- ElementLine (6075 2330 6075 2510 20)
- ElementLine (5675 2330 6075 2330 20)
- Mark (5775 2450)
-)
-
-Element(0x00000000 "capacitor_radial" "C11" "2.2nF" 5450 2000 0 100 0x00000000)
-(
- Pin(5300 2100 60 20 "1" "1" 0x00000101)
- Pin(5400 2100 60 20 "2" "2" 0x00000001)
- ElementArc (5350 2100 100 100 0 360 10)
- Mark (5300 2100)
-)
-
-Element(0x00000000 "R 0.25W" "R14" "2k7" 3480 505 1 100 0x00000000)
-(
- Pin(3500 625 50 20 "1" "1" 0x00000101)
- Pin(3500 225 50 20 "2" "2" 0x00000001)
- ElementLine (3500 325 3500 225 20)
- ElementLine (3500 625 3500 525 20)
- ElementLine (3550 525 3450 525 20)
- ElementLine (3550 325 3550 525 20)
- ElementLine (3450 325 3550 325 20)
- ElementLine (3450 525 3450 325 20)
- Mark (3500 625)
-)
-
-Element(0x00000000 "connector 2x1 pins" "JP2" "XRESET" 1210 3250 3 100 0x00000000)
-(
- Pin(1000 3300 60 30 "1" "1" 0x00000101)
- Pin(1100 3300 60 30 "2" "2" 0x00000001)
- ElementLine (950 3250 950 3350 20)
- ElementLine (950 3350 1150 3350 20)
- ElementLine (1150 3350 1150 3250 20)
- ElementLine (1150 3250 950 3250 20)
- ElementLine (950 3350 1050 3350 10)
- ElementLine (1050 3350 1050 3250 10)
- Mark (1000 3300)
-)
-
-Element(0x00000000 "generic" "U11" "10MHz" 1725 3030 0 100 0x00000000)
-(
- Pin(1675 3200 60 28 "1" "1" 0x00000101)
- Pin(1775 3200 60 28 "2" "2" 0x00000001)
- Pin(1875 3200 60 28 "3" "3" 0x00000001)
- Pin(1975 3200 60 28 "4" "4" 0x00000001)
- Pin(1975 2900 60 28 "5" "5" 0x00000001)
- Pin(1875 2900 60 28 "6" "6" 0x00000001)
- Pin(1775 2900 60 28 "7" "7" 0x00000001)
- Pin(1675 2900 60 28 "8" "8" 0x00000001)
- ElementLine (1625 3250 2025 3250 10)
- ElementLine (2025 3250 2025 2850 10)
- ElementLine (2025 2850 1625 2850 10)
- ElementLine (1625 3250 1625 3100 10)
- ElementLine (1625 3000 1625 2850 10)
- ElementArc (1625 3050 50 50 90 180 10)
- Mark (1675 3200)
-)
-
-Element(0x00000000 "capacitor_radial" "C8" "1000uFx35V" 4525 3025 2 100 0x00000000)
-(
- Pin(4900 2775 60 20 "1" "1" 0x00000101)
- Pin(4650 2775 60 20 "2" "2" 0x00000001)
- ElementArc (4775 2775 250 250 180 360 10)
- Mark (4900 2775)
-)
-
-Element(0x00000000 "+12V 1.5A voltage regulator" "U3" "7812" 5750 3790 2 100 0x00000000)
-(
- Pin(5650 3600 80 20 "In" "1" 0x00000101)
- Pin(5550 3600 80 20 "Com" "2" 0x00000001)
- Pin(5450 3600 80 20 "Out" "3" 0x00000001)
- ElementLine (5750 3720 5350 3720 20)
- ElementLine (5350 3720 5350 3540 20)
- ElementLine (5350 3540 5750 3540 20)
- ElementLine (5750 3540 5750 3720 20)
- ElementLine (5750 3720 5350 3720 20)
- ElementLine (5350 3720 5350 3660 20)
- ElementLine (5350 3660 5750 3660 20)
- ElementLine (5750 3660 5750 3720 20)
- ElementLine (5620 3720 5620 3660 10)
- ElementLine (5480 3720 5480 3660 10)
- Mark (5650 3600)
-)
-
-Element(0x00000000 "R 0.25W" "R9" "10k" 2770 2695 3 100 0x00000000)
-(
- Pin(2750 2575 50 20 "1" "1" 0x00000101)
- Pin(2750 2975 50 20 "2" "2" 0x00000001)
- ElementLine (2750 2875 2750 2975 20)
- ElementLine (2750 2575 2750 2675 20)
- ElementLine (2700 2675 2800 2675 20)
- ElementLine (2700 2875 2700 2675 20)
- ElementLine (2800 2875 2700 2875 20)
- ElementLine (2800 2675 2800 2875 20)
- Mark (2750 2575)
-)
-
-Element(0x00000000 "E22 standing" "" "E22" 5550 3525 2 100 0x00000000)
-(
- ElementLine (5325 3200 5325 3750 20)
- ElementLine (5275 3200 5325 3200 20)
- ElementLine (5275 3750 5275 3200 20)
- ElementLine (5075 3750 5275 3750 20)
- ElementLine (5075 3200 5075 3750 20)
- ElementLine (5025 3200 5075 3200 20)
- ElementLine (5025 3850 5025 3200 20)
- ElementLine (5775 3750 5325 3750 20)
- ElementLine (5775 3200 5775 3750 20)
- ElementLine (5825 3200 5775 3200 20)
- ElementLine (5825 3750 5825 3200 20)
- ElementLine (6025 3750 5825 3750 20)
- ElementLine (6025 3200 6025 3750 20)
- ElementLine (6075 3200 6025 3200 20)
- ElementLine (6075 3850 6075 3200 20)
- ElementLine (6075 3850 5025 3850 20)
- Mark (6075 3850)
-)
-
-Element(0x00000000 "R 0.25W" "R12" "1k2" 990 2820 2 100 0x00000000)
-(
- Pin(1110 2800 50 20 "1" "1" 0x00000101)
- Pin(710 2800 50 20 "2" "2" 0x00000001)
- ElementLine (810 2800 710 2800 20)
- ElementLine (1110 2800 1010 2800 20)
- ElementLine (1010 2750 1010 2850 20)
- ElementLine (810 2750 1010 2750 20)
- ElementLine (810 2850 810 2750 20)
- ElementLine (1010 2850 810 2850 20)
- Mark (1110 2800)
-)
-
-Element(0x00000000 "capacitor_radial" "C1" "100uFx25V" 4625 3850 2 100 0x00000000)
-(
- Pin(4850 3700 60 20 "1" "1" 0x00000101)
- Pin(4700 3700 60 20 "2" "2" 0x00000001)
- ElementArc (4775 3700 150 150 180 360 10)
- Mark (4850 3700)
-)
-
-Element(0x00000000 "IRF1010N" "Q4" "IRF1010N" 5150 2735 0 100 0x00000000)
-(
- Pin(5250 2925 80 20 "G" "1" 0x00000101)
- Pin(5350 2925 80 20 "D" "2" 0x00000001)
- Pin(5450 2925 80 20 "S" "3" 0x00000001)
- ElementLine (5420 2805 5420 2865 10)
- ElementLine (5280 2805 5280 2865 10)
- ElementLine (5150 2865 5150 2805 20)
- ElementLine (5550 2865 5150 2865 20)
- ElementLine (5550 2805 5550 2865 20)
- ElementLine (5150 2805 5550 2805 20)
- ElementLine (5150 2985 5150 2805 20)
- ElementLine (5550 2985 5150 2985 20)
- ElementLine (5550 2805 5550 2985 20)
- ElementLine (5150 2805 5550 2805 20)
- Mark (5250 2925)
-)
-
-Element(0x00000000 "DIN 41612C-96 male" "J15" "DIN41612C96_male" 6575 3455 1 200 0x00000000)
-(
- Pin(6475 475 60 30 "a1" "A1" 0x00000101)
- Pin(6475 575 60 30 "a2" "A2" 0x00000001)
- Pin(6475 675 60 30 "a3" "A3" 0x00000001)
- Pin(6475 775 60 30 "a4" "A4" 0x00000001)
- Pin(6475 875 60 30 "a5" "A5" 0x00000001)
- Pin(6475 975 60 30 "a6" "A6" 0x00000001)
- Pin(6475 1075 60 30 "a7" "A7" 0x00000001)
- Pin(6475 1175 60 30 "a8" "A8" 0x00000001)
- Pin(6475 1275 60 30 "a9" "A9" 0x00000001)
- Pin(6475 1375 60 30 "a10" "A10" 0x00000001)
- Pin(6475 1475 60 30 "a11" "A11" 0x00000001)
- Pin(6475 1575 60 30 "a12" "A12" 0x00000001)
- Pin(6475 1675 60 30 "a13" "A13" 0x00000001)
- Pin(6475 1775 60 30 "a14" "A14" 0x00000001)
- Pin(6475 1875 60 30 "a15" "A15" 0x00000001)
- Pin(6475 1975 60 30 "a16" "A16" 0x00000001)
- Pin(6475 2075 60 30 "a17" "A17" 0x00000001)
- Pin(6475 2175 60 30 "a18" "A18" 0x00000001)
- Pin(6475 2275 60 30 "a19" "A19" 0x00000001)
- Pin(6475 2375 60 30 "a20" "A20" 0x00000001)
- Pin(6475 2475 60 30 "a21" "A21" 0x00000001)
- Pin(6475 2575 60 30 "a22" "A22" 0x00000001)
- Pin(6475 2675 60 30 "a23" "A23" 0x00000001)
- Pin(6475 2775 60 30 "a24" "A24" 0x00000001)
- Pin(6475 2875 60 30 "a25" "A25" 0x00000001)
- Pin(6475 2975 60 30 "a26" "A26" 0x00000001)
- Pin(6475 3075 60 30 "a27" "A27" 0x00000001)
- Pin(6475 3175 60 30 "a28" "A28" 0x00000001)
- Pin(6475 3275 60 30 "a29" "A29" 0x00000001)
- Pin(6475 3375 60 30 "a30" "A30" 0x00000001)
- Pin(6475 3475 60 30 "a31" "A31" 0x00000001)
- Pin(6475 3575 60 30 "a32" "A32" 0x00000001)
- Pin(6375 475 60 30 "b1" "B1" 0x00000001)
- Pin(6375 575 60 30 "b2" "B2" 0x00000001)
- Pin(6375 675 60 30 "b3" "B3" 0x00000001)
- Pin(6375 775 60 30 "b4" "B4" 0x00000001)
- Pin(6375 875 60 30 "b5" "B5" 0x00000001)
- Pin(6375 975 60 30 "b6" "B6" 0x00000001)
- Pin(6375 1075 60 30 "b7" "B7" 0x00000001)
- Pin(6375 1175 60 30 "b8" "B8" 0x00000001)
- Pin(6375 1275 60 30 "b9" "B9" 0x00000001)
- Pin(6375 1375 60 30 "b10" "B10" 0x00000001)
- Pin(6375 1475 60 30 "b11" "B11" 0x00000001)
- Pin(6375 1575 60 30 "b12" "B12" 0x00000001)
- Pin(6375 1675 60 30 "b13" "B13" 0x00000001)
- Pin(6375 1775 60 30 "b14" "B14" 0x00000001)
- Pin(6375 1875 60 30 "b15" "B15" 0x00000001)
- Pin(6375 1975 60 30 "b16" "B16" 0x00000001)
- Pin(6375 2075 60 30 "b17" "B17" 0x00000001)
- Pin(6375 2175 60 30 "b18" "B18" 0x00000001)
- Pin(6375 2275 60 30 "b19" "B19" 0x00000001)
- Pin(6375 2375 60 30 "b20" "B20" 0x00000001)
- Pin(6375 2475 60 30 "b21" "B21" 0x00000001)
- Pin(6375 2575 60 30 "b22" "B22" 0x00000001)
- Pin(6375 2675 60 30 "b23" "B23" 0x00000001)
- Pin(6375 2775 60 30 "b24" "B24" 0x00000001)
- Pin(6375 2875 60 30 "b25" "B25" 0x00000001)
- Pin(6375 2975 60 30 "b26" "B26" 0x00000001)
- Pin(6375 3075 60 30 "b27" "B27" 0x00000001)
- Pin(6375 3175 60 30 "b28" "B28" 0x00000001)
- Pin(6375 3275 60 30 "b29" "B29" 0x00000001)
- Pin(6375 3375 60 30 "b30" "B30" 0x00000001)
- Pin(6375 3475 60 30 "b31" "B31" 0x00000001)
- Pin(6375 3575 60 30 "b32" "B32" 0x00000001)
- Pin(6275 475 60 30 "c1" "C1" 0x00000001)
- Pin(6275 575 60 30 "c2" "C2" 0x00000001)
- Pin(6275 675 60 30 "c3" "C3" 0x00000001)
- Pin(6275 775 60 30 "c4" "C4" 0x00000001)
- Pin(6275 875 60 30 "c5" "C5" 0x00000001)
- Pin(6275 975 60 30 "c6" "C6" 0x00000001)
- Pin(6275 1075 60 30 "c7" "C7" 0x00000001)
- Pin(6275 1175 60 30 "c8" "C8" 0x00000001)
- Pin(6275 1275 60 30 "c9" "C9" 0x00000001)
- Pin(6275 1375 60 30 "c10" "C10" 0x00000001)
- Pin(6275 1475 60 30 "c11" "C11" 0x00000001)
- Pin(6275 1575 60 30 "c12" "C12" 0x00000001)
- Pin(6275 1675 60 30 "c13" "C13" 0x00000001)
- Pin(6275 1775 60 30 "c14" "C14" 0x00000001)
- Pin(6275 1875 60 30 "c15" "C15" 0x00000001)
- Pin(6275 1975 60 30 "c16" "C16" 0x00000001)
- Pin(6275 2075 60 30 "c17" "C17" 0x00000001)
- Pin(6275 2175 60 30 "c18" "C18" 0x00000001)
- Pin(6275 2275 60 30 "c19" "C19" 0x00000001)
- Pin(6275 2375 60 30 "c20" "C20" 0x00000001)
- Pin(6275 2475 60 30 "c21" "C21" 0x00000001)
- Pin(6275 2575 60 30 "c22" "C22" 0x00000001)
- Pin(6275 2675 60 30 "c23" "C23" 0x00000001)
- Pin(6275 2775 60 30 "c24" "C24" 0x00000001)
- Pin(6275 2875 60 30 "c25" "C25" 0x00000001)
- Pin(6275 2975 60 30 "c26" "C26" 0x00000001)
- Pin(6275 3075 60 30 "c27" "C27" 0x00000001)
- Pin(6275 3175 60 30 "c28" "C28" 0x00000001)
- Pin(6275 3275 60 30 "c29" "C29" 0x00000001)
- Pin(6275 3375 60 30 "c30" "C30" 0x00000001)
- Pin(6275 3475 60 30 "c31" "C31" 0x00000001)
- Pin(6275 3575 60 30 "c32" "C32" 0x00000001)
- Pin(6575 3775 120 80 "M1" "M1" 0x00000001)
- Pin(6575 275 120 80 "M2" "M2" 0x00000001)
- ElementLine (6275 3575 6550 3575 40)
- ElementLine (6275 3475 6550 3475 40)
- ElementLine (6275 3375 6550 3375 40)
- ElementLine (6275 3275 6550 3275 40)
- ElementLine (6275 3175 6550 3175 40)
- ElementLine (6275 3075 6550 3075 40)
- ElementLine (6275 2975 6550 2975 40)
- ElementLine (6275 2875 6550 2875 40)
- ElementLine (6275 2775 6550 2775 40)
- ElementLine (6275 2675 6550 2675 40)
- ElementLine (6275 2575 6550 2575 40)
- ElementLine (6275 2475 6550 2475 40)
- ElementLine (6275 2375 6550 2375 40)
- ElementLine (6275 2275 6550 2275 40)
- ElementLine (6275 2175 6550 2175 40)
- ElementLine (6275 2075 6550 2075 40)
- ElementLine (6275 1975 6550 1975 40)
- ElementLine (6275 1875 6550 1875 40)
- ElementLine (6275 1775 6550 1775 40)
- ElementLine (6275 1675 6550 1675 40)
- ElementLine (6275 1575 6550 1575 40)
- ElementLine (6275 1475 6550 1475 40)
- ElementLine (6275 1375 6550 1375 40)
- ElementLine (6275 1275 6550 1275 40)
- ElementLine (6275 1175 6550 1175 40)
- ElementLine (6275 1075 6550 1075 40)
- ElementLine (6275 975 6550 975 40)
- ElementLine (6275 875 6550 875 40)
- ElementLine (6275 775 6550 775 40)
- ElementLine (6275 675 6550 675 40)
- ElementLine (6275 575 6550 575 40)
- ElementLine (6275 475 6550 475 40)
- ElementLine (6475 3875 6475 3655 20)
- ElementLine (6475 3655 6570 3655 20)
- ElementLine (6570 3655 6795 3655 10)
- ElementLine (6795 3655 6795 3775 10)
- ElementLine (6795 3775 6795 3875 20)
- ElementLine (6795 3875 6475 3875 20)
- ElementLine (6475 395 6475 175 20)
- ElementLine (6475 175 6795 175 20)
- ElementLine (6795 175 6795 275 20)
- ElementLine (6795 275 6795 395 10)
- ElementLine (6795 395 6570 395 10)
- ElementLine (6570 395 6475 395 20)
- ElementLine (6570 3655 6570 395 20)
- ElementLine (6795 3775 6975 3775 20)
- ElementLine (6975 3775 6975 275 20)
- ElementLine (6975 275 6795 275 20)
- Mark (6475 475)
-)
-
-Element(0x00000000 "capacitor_radial" "C9" "220nF" 3125 2700 2 100 0x00000000)
-(
- Pin(3275 2600 60 20 "1" "1" 0x00000101)
- Pin(3175 2600 60 20 "2" "2" 0x00000001)
- ElementArc (3225 2600 100 100 180 360 10)
- Mark (3275 2600)
-)
-
-Element(0x00000000 "R 0.25W" "R3" "2k2" 4405 505 1 100 0x00000000)
-(
- Pin(4425 625 50 20 "1" "1" 0x00000101)
- Pin(4425 225 50 20 "2" "2" 0x00000001)
- ElementLine (4425 325 4425 225 20)
- ElementLine (4425 625 4425 525 20)
- ElementLine (4475 525 4375 525 20)
- ElementLine (4475 325 4475 525 20)
- ElementLine (4375 325 4475 325 20)
- ElementLine (4375 525 4375 325 20)
- Mark (4425 625)
-)
-
-Element(0x00000000 "R 0.25W" "R10" "1k5" 2930 2855 1 100 0x00000000)
-(
- Pin(2950 2975 50 20 "1" "1" 0x00000101)
- Pin(2950 2575 50 20 "2" "2" 0x00000001)
- ElementLine (2950 2675 2950 2575 20)
- ElementLine (2950 2975 2950 2875 20)
- ElementLine (3000 2875 2900 2875 20)
- ElementLine (3000 2675 3000 2875 20)
- ElementLine (2900 2675 3000 2675 20)
- ElementLine (2900 2875 2900 2675 20)
- Mark (2950 2975)
-)
-
-Element(0x00000000 "capacitor_radial" "C2" "100uFx16V" 4925 3150 0 100 0x00000000)
-(
- Pin(4700 3300 60 20 "1" "1" 0x00000101)
- Pin(4850 3300 60 20 "2" "2" 0x00000001)
- ElementArc (4775 3300 150 150 0 360 10)
- Mark (4700 3300)
-)
-
-Element(0x00000000 "E22 standing" "" "E22" 4000 3525 2 100 0x00000000)
-(
- ElementLine (3775 3200 3775 3750 20)
- ElementLine (3725 3200 3775 3200 20)
- ElementLine (3725 3750 3725 3200 20)
- ElementLine (3525 3750 3725 3750 20)
- ElementLine (3525 3200 3525 3750 20)
- ElementLine (3475 3200 3525 3200 20)
- ElementLine (3475 3850 3475 3200 20)
- ElementLine (4225 3750 3775 3750 20)
- ElementLine (4225 3200 4225 3750 20)
- ElementLine (4275 3200 4225 3200 20)
- ElementLine (4275 3750 4275 3200 20)
- ElementLine (4475 3750 4275 3750 20)
- ElementLine (4475 3200 4475 3750 20)
- ElementLine (4525 3200 4475 3200 20)
- ElementLine (4525 3850 4525 3200 20)
- ElementLine (4525 3850 3475 3850 20)
- Mark (4525 3850)
-)
-
-Element(0x00000000 "Push-button, tactile, right angle, 466mils actuator" "S1" "MJTP1236_D" 598 2784 0 100 0x00000000)
-(
- Pin(500 2695 59 39 "1" "1" 0x00000101)
- Pin(500 2872 59 39 "2" "2" 0x00000001)
- Pin(598 2646 71 51 "C1" "C1" 0x00000001)
- Pin(598 2922 71 51 "C2" "C2" 0x00000001)
- ElementLine (658 2646 400 2646 20)
- ElementLine (400 2646 400 2922 20)
- ElementLine (400 2922 658 2922 20)
- ElementLine (538 2922 538 2646 20)
- ElementLine (400 2715 34 2725 20)
- ElementLine (34 2725 34 2843 20)
- ElementLine (34 2843 400 2853 20)
- Mark (500 2695)
-)
-
-Element(0x00000000 "IRF1010N" "Q3" "IRF1010N" 5675 2735 0 100 0x00000000)
-(
- Pin(5775 2925 80 20 "G" "1" 0x00000101)
- Pin(5875 2925 80 20 "D" "2" 0x00000001)
- Pin(5975 2925 80 20 "S" "3" 0x00000001)
- ElementLine (5945 2805 5945 2865 10)
- ElementLine (5805 2805 5805 2865 10)
- ElementLine (5675 2865 5675 2805 20)
- ElementLine (6075 2865 5675 2865 20)
- ElementLine (6075 2805 6075 2865 20)
- ElementLine (5675 2805 6075 2805 20)
- ElementLine (5675 2985 5675 2805 20)
- ElementLine (6075 2985 5675 2985 20)
- ElementLine (6075 2805 6075 2985 20)
- ElementLine (5675 2805 6075 2805 20)
- Mark (5775 2925)
-)
-
-Element(0x00000000 "diode" "D7" "1N4007" 5795 1825 0 100 0x00000000)
-(
- Pin(5575 1875 50 20 "1" "1" 0x00000101)
- Pin(5875 1875 50 20 "2" "2" 0x00000001)
- ElementLine (5675 1825 5675 1925 10)
- ElementLine (5775 1925 5675 1875 10)
- ElementLine (5775 1825 5775 1925 10)
- ElementLine (5675 1875 5775 1825 10)
- ElementLine (5775 1875 5875 1875 10)
- ElementLine (5575 1875 5675 1875 10)
- Mark (5575 1875)
-)
-
-Element(0x00000000 "optical coupling device" "U5" "6N136" 5775 1005 0 100 0x00000000)
-(
- Pin(5725 1175 60 28 "NC" "1" 0x00000101)
- Pin(5825 1175 60 28 "A+" "2" 0x00000001)
- Pin(5925 1175 60 28 "K-" "3" 0x00000001)
- Pin(6025 1175 60 28 "NC" "4" 0x00000001)
- Pin(6025 875 60 28 "Gnd" "5" 0x00000001)
- Pin(5925 875 60 28 "Out" "6" 0x00000001)
- Pin(5825 875 60 28 "En" "7" 0x00000001)
- Pin(5725 875 60 28 "Vcc" "8" 0x00000001)
- ElementLine (5675 1225 6075 1225 10)
- ElementLine (6075 1225 6075 825 10)
- ElementLine (6075 825 5675 825 10)
- ElementLine (5675 1225 5675 1075 10)
- ElementLine (5675 975 5675 825 10)
- ElementArc (5675 1025 50 50 90 180 10)
- Mark (5725 1175)
-)
-
-Element(0x00000000 "IRLZ24N" "Q5" "IRLZ24N" 5675 1910 0 100 0x00000000)
-(
- Pin(5775 2100 80 20 "G" "1" 0x00000101)
- Pin(5875 2100 80 20 "D" "2" 0x00000001)
- Pin(5975 2100 80 20 "S" "3" 0x00000001)
- ElementLine (5945 1980 5945 2040 10)
- ElementLine (5805 1980 5805 2040 10)
- ElementLine (5675 2040 5675 1980 20)
- ElementLine (6075 2040 5675 2040 20)
- ElementLine (6075 1980 6075 2040 20)
- ElementLine (5675 1980 6075 1980 20)
- ElementLine (5675 2160 5675 1980 20)
- ElementLine (6075 2160 5675 2160 20)
- ElementLine (6075 1980 6075 2160 20)
- ElementLine (5675 1980 6075 1980 20)
- Mark (5775 2100)
-)
-
-Element(0x00000000 "optical coupling device" "U4" "6N136" 5775 405 0 100 0x00000000)
-(
- Pin(5725 575 60 28 "NC" "1" 0x00000101)
- Pin(5825 575 60 28 "A+" "2" 0x00000001)
- Pin(5925 575 60 28 "K-" "3" 0x00000001)
- Pin(6025 575 60 28 "NC" "4" 0x00000001)
- Pin(6025 275 60 28 "Gnd" "5" 0x00000001)
- Pin(5925 275 60 28 "Out" "6" 0x00000001)
- Pin(5825 275 60 28 "En" "7" 0x00000001)
- Pin(5725 275 60 28 "Vcc" "8" 0x00000001)
- ElementLine (5675 625 6075 625 10)
- ElementLine (6075 625 6075 225 10)
- ElementLine (6075 225 5675 225 10)
- ElementLine (5675 625 5675 475 10)
- ElementLine (5675 375 5675 225 10)
- ElementArc (5675 425 50 50 90 180 10)
- Mark (5725 575)
-)
-
-Element(0x00000000 "capacitor_radial" "C10" "4.7uFx16V" 3325 2800 0 100 0x00000000)
-(
- Pin(3175 2900 60 20 "1" "1" 0x00000101)
- Pin(3275 2900 60 20 "2" "2" 0x00000001)
- ElementArc (3225 2900 100 100 0 360 10)
- Mark (3175 2900)
-)
-
-Element(0x00000000 "shielded" "J2" "RJ 45" 1125 1128 2 100 0x00000000)
-(
- Pin(950 575 60 30 "1" "1" 0x00000101)
- Pin(1050 625 60 30 "2" "2" 0x00000001)
- Pin(950 675 60 30 "3" "3" 0x00000001)
- Pin(1050 725 60 30 "4" "4" 0x00000001)
- Pin(950 775 60 30 "5" "5" 0x00000001)
- Pin(1050 825 60 30 "6" "6" 0x00000001)
- Pin(950 875 60 30 "7" "7" 0x00000001)
- Pin(1050 925 60 30 "8" "8" 0x00000001)
- Pin(700 525 148 128 "C1" "9" 0x00000001)
- Pin(700 976 148 128 "C1" "10" 0x00000001)
- Pin(820 445 82 62 "C1" "11" 0x00000001)
- Pin(820 1056 82 62 "C1" "12" 0x00000001)
- ElementLine (1125 1068 1125 433 20)
- ElementLine (275 1068 1125 1068 20)
- ElementLine (275 433 275 1068 20)
- ElementLine (1125 433 275 433 20)
- Mark (950 575)
-)
-
-Element(0x00000000 "generic" "U10" "MAX4429" 3600 2730 0 100 0x00000000)
-(
- Pin(3550 2900 60 28 "1" "1" 0x00000101)
- Pin(3650 2900 60 28 "2" "2" 0x00000001)
- Pin(3750 2900 60 28 "3" "3" 0x00000001)
- Pin(3850 2900 60 28 "4" "4" 0x00000001)
- Pin(3850 2600 60 28 "5" "5" 0x00000001)
- Pin(3750 2600 60 28 "6" "6" 0x00000001)
- Pin(3650 2600 60 28 "7" "7" 0x00000001)
- Pin(3550 2600 60 28 "8" "8" 0x00000001)
- ElementLine (3500 2950 3900 2950 10)
- ElementLine (3900 2950 3900 2550 10)
- ElementLine (3900 2550 3500 2550 10)
- ElementLine (3500 2950 3500 2800 10)
- ElementLine (3500 2700 3500 2550 10)
- ElementArc (3500 2750 50 50 90 180 10)
- Mark (3550 2900)
-)
-
-Element(0x00000000 "capacitor_radial" "C6" "1uFx25V" 3275 3325 0 100 0x00000000)
-(
- Pin(3125 3425 60 20 "1" "1" 0x00000101)
- Pin(3225 3425 60 20 "2" "2" 0x00000001)
- ElementArc (3175 3425 100 100 0 360 10)
- Mark (3125 3425)
-)
-
-Element(0x00000000 "capacitor_radial" "C5" "1uFx25V" 1175 3525 2 100 0x00000000)
-(
- Pin(1325 3425 60 20 "1" "1" 0x00000101)
- Pin(1225 3425 60 20 "2" "2" 0x00000001)
- ElementArc (1275 3425 100 100 180 360 10)
- Mark (1325 3425)
-)
-
-Element(0x00000000 "vertical, 95 mils center pole" "U1" "TINIm#90-RevD" 5750 1760 2 100 0x00000000)
-(
- Pin(5350 1625 60 30 "1" "1" 0x00000101)
- Pin(5300 1525 60 30 "2" "2" 0x00000001)
- Pin(5250 1625 60 30 "3" "3" 0x00000001)
- Pin(5200 1525 60 30 "4" "4" 0x00000001)
- Pin(5150 1625 60 30 "5" "5" 0x00000001)
- Pin(5100 1525 60 30 "6" "6" 0x00000001)
- Pin(5050 1625 60 30 "7" "7" 0x00000001)
- Pin(5000 1525 60 30 "8" "8" 0x00000001)
- Pin(4950 1625 60 30 "9" "9" 0x00000001)
- Pin(4900 1525 60 30 "10" "10" 0x00000001)
- Pin(4850 1625 60 30 "11" "11" 0x00000001)
- Pin(4800 1525 60 30 "12" "12" 0x00000001)
- Pin(4750 1625 60 30 "13" "13" 0x00000001)
- Pin(4700 1525 60 30 "14" "14" 0x00000001)
- Pin(4650 1625 60 30 "15" "15" 0x00000001)
- Pin(4600 1525 60 30 "16" "16" 0x00000001)
- Pin(4550 1625 60 30 "17" "17" 0x00000001)
- Pin(4500 1525 60 30 "18" "18" 0x00000001)
- Pin(4450 1625 60 30 "19" "19" 0x00000001)
- Pin(4400 1525 60 30 "20" "20" 0x00000001)
- Pin(4350 1625 60 30 "21" "21" 0x00000001)
- Pin(4300 1525 60 30 "22" "22" 0x00000001)
- Pin(4250 1625 60 30 "23" "23" 0x00000001)
- Pin(4200 1525 60 30 "24" "24" 0x00000001)
- Pin(4150 1625 60 30 "25" "25" 0x00000001)
- Pin(4100 1525 60 30 "26" "26" 0x00000001)
- Pin(4050 1625 60 30 "27" "27" 0x00000001)
- Pin(4000 1525 60 30 "28" "28" 0x00000001)
- Pin(3950 1625 60 30 "29" "29" 0x00000001)
- Pin(3900 1525 60 30 "30" "30" 0x00000001)
- Pin(3850 1625 60 30 "31" "31" 0x00000001)
- Pin(3800 1525 60 30 "32" "32" 0x00000001)
- Pin(3750 1625 60 30 "33" "33" 0x00000001)
- Pin(3700 1525 60 30 "34" "34" 0x00000001)
- Pin(3650 1625 60 30 "35" "35" 0x00000001)
- Pin(3600 1525 60 30 "36" "36" 0x00000001)
- Pin(3350 1625 60 30 "37" "37" 0x00000001)
- Pin(3300 1525 60 30 "38" "38" 0x00000001)
- Pin(3250 1625 60 30 "39" "39" 0x00000001)
- Pin(3200 1525 60 30 "40" "40" 0x00000001)
- Pin(3150 1625 60 30 "41" "41" 0x00000001)
- Pin(3100 1525 60 30 "42" "42" 0x00000001)
- Pin(3050 1625 60 30 "43" "43" 0x00000001)
- Pin(3000 1525 60 30 "44" "44" 0x00000001)
- Pin(2950 1625 60 30 "45" "45" 0x00000001)
- Pin(2900 1525 60 30 "46" "46" 0x00000001)
- Pin(2850 1625 60 30 "47" "47" 0x00000001)
- Pin(2800 1525 60 30 "48" "48" 0x00000001)
- Pin(2750 1625 60 30 "49" "49" 0x00000001)
- Pin(2700 1525 60 30 "50" "50" 0x00000001)
- Pin(2650 1625 60 30 "51" "51" 0x00000001)
- Pin(2600 1525 60 30 "52" "52" 0x00000001)
- Pin(2550 1625 60 30 "53" "53" 0x00000001)
- Pin(2500 1525 60 30 "54" "54" 0x00000001)
- Pin(2450 1625 60 30 "55" "55" 0x00000001)
- Pin(2400 1525 60 30 "56" "56" 0x00000001)
- Pin(2350 1625 60 30 "57" "57" 0x00000001)
- Pin(2300 1525 60 30 "58" "58" 0x00000001)
- Pin(2250 1625 60 30 "59" "59" 0x00000001)
- Pin(2200 1525 60 30 "60" "60" 0x00000001)
- Pin(2150 1625 60 30 "61" "61" 0x00000001)
- Pin(2100 1525 60 30 "62" "62" 0x00000001)
- Pin(2050 1625 60 30 "63" "63" 0x00000001)
- Pin(2000 1525 60 30 "64" "64" 0x00000001)
- Pin(1950 1625 60 30 "65" "65" 0x00000001)
- Pin(1900 1525 60 30 "66" "66" 0x00000001)
- Pin(1850 1625 60 30 "67" "67" 0x00000001)
- Pin(1800 1525 60 30 "68" "68" 0x00000001)
- Pin(1750 1625 60 30 "69" "69" 0x00000001)
- Pin(1700 1525 60 30 "70" "70" 0x00000001)
- Pin(1650 1625 60 30 "71" "71" 0x00000001)
- Pin(1600 1525 60 30 "72" "72" 0x00000001)
- Pin(5680 1575 84 64 "C1" "73" 0x00000001)
- Pin(3475 1575 115 95 "0" "74" 0x00000001)
- Pin(1275 1575 115 95 "C1" "75" 0x00000001)
- ElementLine (5750 1410 1200 1410 20)
- ElementLine (1200 1410 1200 1700 20)
- ElementLine (1200 1700 5750 1700 20)
- ElementLine (5750 1700 5750 1410 20)
- Mark (5350 1625)
-)
-
-Element(0x00000000 "capacitor_radial" "C3" "10uFx25V" 1175 3825 2 100 0x00000000)
-(
- Pin(1325 3725 60 20 "1" "1" 0x00000101)
- Pin(1225 3725 60 20 "2" "2" 0x00000001)
- ElementArc (1275 3725 100 100 180 360 10)
- Mark (1325 3725)
-)
-
-Element(0x00000000 "generic" "U9" "LT1162" 1725 3555 0 100 0x00000000)
-(
- Pin(1675 3725 60 28 "1" "1" 0x00000101)
- Pin(1775 3725 60 28 "2" "2" 0x00000001)
- Pin(1875 3725 60 28 "3" "3" 0x00000001)
- Pin(1975 3725 60 28 "4" "4" 0x00000001)
- Pin(2075 3725 60 28 "5" "5" 0x00000001)
- Pin(2175 3725 60 28 "6" "6" 0x00000001)
- Pin(2275 3725 60 28 "7" "7" 0x00000001)
- Pin(2375 3725 60 28 "8" "8" 0x00000001)
- Pin(2475 3725 60 28 "9" "9" 0x00000001)
- Pin(2575 3725 60 28 "10" "10" 0x00000001)
- Pin(2675 3725 60 28 "11" "11" 0x00000001)
- Pin(2775 3725 60 28 "12" "12" 0x00000001)
- Pin(2775 3425 60 28 "13" "13" 0x00000001)
- Pin(2675 3425 60 28 "14" "14" 0x00000001)
- Pin(2575 3425 60 28 "15" "15" 0x00000001)
- Pin(2475 3425 60 28 "16" "16" 0x00000001)
- Pin(2375 3425 60 28 "17" "17" 0x00000001)
- Pin(2275 3425 60 28 "18" "18" 0x00000001)
- Pin(2175 3425 60 28 "19" "19" 0x00000001)
- Pin(2075 3425 60 28 "20" "20" 0x00000001)
- Pin(1975 3425 60 28 "21" "21" 0x00000001)
- Pin(1875 3425 60 28 "22" "22" 0x00000001)
- Pin(1775 3425 60 28 "23" "23" 0x00000001)
- Pin(1675 3425 60 28 "24" "24" 0x00000001)
- ElementLine (1625 3775 2825 3775 10)
- ElementLine (2825 3775 2825 3375 10)
- ElementLine (2825 3375 1625 3375 10)
- ElementLine (1625 3775 1625 3625 10)
- ElementLine (1625 3525 1625 3375 10)
- ElementArc (1625 3575 50 50 90 180 10)
- Mark (1675 3725)
-)
-
-Element(0x00000000 "R 0.25W" "R11" "330" 985 3075 2 100 0x00000000)
-(
- Pin(1105 3055 50 20 "1" "1" 0x00000101)
- Pin(705 3055 50 20 "2" "2" 0x00000001)
- ElementLine (1005 3105 805 3105 20)
- ElementLine (805 3105 805 3005 20)
- ElementLine (805 3005 1005 3005 20)
- ElementLine (1005 3005 1005 3105 20)
- ElementLine (1105 3055 1005 3055 20)
- ElementLine (805 3055 705 3055 20)
- Mark (1105 3055)
-)
-
-Element(0x00000000 "eurocard1" "" "EUROCARD1" 6760 50 3 100 0x00000000)
-(
- Pin(525 275 120 80 "M1" "1" 0x00000001)
- Pin(525 3762 120 80 "M2" "2" 0x00000001)
- Pin(6575 275 120 80 "M3" "3" 0x00000001)
- Pin(6575 3762 120 80 "M4" "4" 0x00000001)
- ElementLine (6700 50 400 50 20)
- ElementLine (6700 3987 6700 50 20)
- ElementLine (400 3987 6700 3987 20)
- ElementLine (400 50 400 3987 20)
- Mark (400 50)
-)
-Layer(1 "solder")
-(
- Line(595 2570 710 2570 10 0x00000000)
- Line(530 2505 595 2570 10 0x00000000)
- Line(820 2545 765 2490 25 0x00000000)
- Line(1240 2545 820 2545 25 0x00000000)
- Line(500 3300 445 3300 10 0x00000000)
- Line(535 2845 500 2880 25 0x00000000)
- Line(635 2845 535 2845 25 0x00000000)
- Line(685 2895 635 2845 25 0x00000000)
- Line(1250 2895 685 2895 25 0x00000000)
- Line(6275 3450 6475 3450 40 0x00000000)
- Line(6275 3425 6475 3425 40 0x00000000)
- Line(6275 3400 6475 3400 40 0x00000000)
- Line(6475 3375 6275 3375 40 0x00000000)
- Line(6475 3475 6475 3375 40 0x00000000)
- Line(6275 3475 6475 3475 40 0x00000000)
- Line(6275 3425 4000 3425 45 0x00000000)
- Line(6275 3375 6275 3475 45 0x00000000)
- Line(5325 3075 4050 3075 10 0x00000000)
- Line(2825 3250 2775 3300 10 0x00000000)
- Line(5225 3250 2825 3250 10 0x00000000)
- Line(5250 3275 5225 3250 10 0x00000000)
- Line(5650 2450 5775 2450 10 0x00000000)
- Line(2050 3225 5650 3225 10 0x00000000)
- Line(1975 3425 1975 3375 10 0x00000000)
- Line(5150 2600 5350 2600 10 0x00000000)
- Line(1225 3375 5150 3375 10 0x00000000)
- Line(1225 3425 1225 3375 10 0x00000000)
- Line(2400 2700 1000 2700 10 0x00000000)
- Line(2425 2725 2400 2700 10 0x00000000)
- Line(2650 2725 2425 2725 10 0x00000000)
- Line(2675 2750 2650 2725 10 0x00000000)
- Line(3400 2750 2675 2750 10 0x00000000)
- Line(3425 2725 3400 2750 10 0x00000000)
- Line(4100 2725 3425 2725 10 0x00000000)
- Line(4150 2050 4050 2050 10 0x00000000)
- Line(4150 2150 4000 2150 10 0x00000000)
- Line(3950 2250 4150 2250 10 0x00000000)
- Line(2625 3575 3175 3575 10 0x00000000)
- Line(3200 3550 3225 3525 10 0x00000000)
- Line(3175 3575 3200 3550 10 0x00000000)
- Line(2575 3525 2625 3575 10 0x00000000)
- Line(2375 3425 2475 3425 10 0x00000000)
- Line(2925 3425 2925 3475 10 0x00000000)
- Line(3075 3475 3125 3425 10 0x00000000)
- Line(2350 3475 3075 3475 10 0x00000000)
- Line(2325 3475 2350 3475 10 0x00000000)
- Line(2275 3425 2325 3475 10 0x00000000)
- Line(1775 3425 1875 3425 10 0x00000000)
- Line(1325 3425 1675 3425 10 0x00000000)
- Line(5250 2450 4025 2450 10 0x00000000)
- Line(4025 2450 3975 2500 10 0x00000000)
- Line(3975 3100 2175 3100 10 0x00000000)
- Line(2125 1800 2150 1775 10 0x00000000)
- Line(1225 1800 2125 1800 10 0x00000000)
- Line(1025 1800 1225 1800 10 0x00000000)
- Line(2900 1825 4450 1825 10 0x00000000)
- Line(2850 1775 2900 1825 10 0x00000000)
- Line(2150 1775 2850 1775 10 0x00000000)
- Line(4400 1475 4400 1525 10 0x00000000)
- Line(1025 1475 4400 1475 10 0x00000000)
- Line(2375 3600 3700 3600 10 0x00000000)
- Line(2725 3525 2925 3525 25 0x00000000)
- Line(3600 2200 3450 2200 10 0x00000000)
- Line(3525 2550 3550 2525 10 0x00000000)
- Line(3325 2550 3525 2550 10 0x00000000)
- Line(3350 2825 4575 2825 10 0x00000000)
- Line(4525 2900 4650 2900 25 0x00000000)
- Line(2500 2700 3275 2700 25 0x00000000)
- Line(2450 2650 2500 2700 25 0x00000000)
- Line(2375 1700 1750 1700 10 0x00000000)
- Line(2425 1750 2450 1725 10 0x00000000)
- Line(1850 1750 2425 1750 10 0x00000000)
- Line(2450 1625 2375 1700 10 0x00000000)
- Line(2225 900 2500 900 10 0x00000000)
- Line(2250 1825 2400 1825 10 0x00000200)
- Line(2250 2825 3350 2825 10 0x00000000)
- Line(2200 2775 2250 2825 10 0x00000000)
- Line(1925 2775 2200 2775 10 0x00000000)
- Line(1875 2825 1925 2775 10 0x00000000)
- Line(1500 2825 1875 2825 10 0x00000000)
- Line(2525 2775 3800 2775 10 0x00000000)
- Line(3825 2275 3850 2250 10 0x00000000)
- Line(2650 2275 3825 2275 10 0x00000000)
- Line(2625 2300 2650 2275 10 0x00000000)
- Line(2050 2300 2625 2300 10 0x00000000)
- Line(2150 2175 1650 2175 10 0x00000000)
- Line(2200 2225 2150 2175 10 0x00000000)
- Line(2250 2225 2200 2225 10 0x00000000)
- Line(2275 2200 2250 2225 10 0x00000000)
- Line(2400 2200 2275 2200 10 0x00000000)
- Line(2425 2225 2400 2200 10 0x00000000)
- Line(2450 2225 2425 2225 10 0x00000000)
- Line(2875 2225 2450 2225 10 0x00000000)
- Line(2925 1875 3200 1875 10 0x00000000)
- Line(1450 1875 2925 1875 10 0x00000000)
- Line(2450 1950 2475 1925 10 0x00000000)
- Line(2200 1950 2450 1950 10 0x00000000)
- Line(2475 1925 3100 1925 10 0x00000000)
- Line(3050 2175 2200 2175 10 0x00000000)
- Line(2950 2125 2100 2125 10 0x00000000)
- Line(2150 2250 2350 2250 25 0x00000000)
- Line(6325 1725 5300 1725 10 0x00000000)
- Line(2050 675 950 675 10 0x00000000)
- Line(2000 825 1050 825 10 0x00000000)
- Line(1950 625 1050 625 10 0x00000000)
- Line(1900 575 950 575 10 0x00000000)
- Line(1875 3600 2375 3600 10 0x00000000)
- Line(2075 3525 2275 3525 25 0x00000000)
- Line(1975 3725 1975 3675 10 0x00000000)
- Line(2525 3675 2575 3725 10 0x00000000)
- Line(1050 3675 2525 3675 10 0x00000000)
- Line(525 1620 525 1500 25 0x00000000)
- Line(900 1500 520 1500 25 0x00000000)
- Line(900 2450 1100 2450 10 0x00000000)
- Line(1775 3850 2475 3850 10 0x00000000)
- Line(3500 3850 2475 3850 10 0x00000000)
- Line(2675 3525 2725 3525 25 0x00000000)
- Line(2925 3425 3125 3425 10 0x00000000)
- Line(2750 2575 2950 2575 10 0x00000000)
- Line(5125 2425 5175 2375 10 0x00000000)
- Line(3875 2425 5125 2425 10 0x00000000)
- Line(3750 2550 3875 2425 10 0x00000000)
- Line(3750 2600 3750 2550 10 0x00000000)
- Line(5175 2375 5525 2375 10 0x00000000)
- Line(3650 2600 3750 2600 10 0x00000000)
- Line(4200 2300 4250 2350 10 0x00000000)
- Line(3700 2300 4200 2300 10 0x00000000)
- Line(3650 2350 3700 2300 10 0x00000000)
- Line(3975 2350 4150 2350 10 0x00000000)
- Line(4425 600 4425 625 10 0x00000000)
- Line(4450 575 4425 600 10 0x00000000)
- Line(4725 575 4450 575 10 0x00000000)
- Line(4825 1075 4675 1075 10 0x00000000)
- Line(4625 800 4625 825 10 0x00000000)
- Line(5075 800 4625 800 10 0x00000000)
- Line(6050 1425 5425 1425 10 0x00000000)
- Line(5325 1075 5025 1075 10 0x00000000)
- Line(5325 1175 5325 1225 10 0x00000000)
- Line(5725 1175 5325 1175 10 0x00000000)
- Line(4125 1075 4425 1075 10 0x00000000)
- Line(5500 1350 4125 1350 10 0x00000000)
- Line(5525 675 5525 625 10 0x00000000)
- Line(4125 675 5525 675 10 0x00000000)
- Line(4125 575 4125 675 10 0x00000000)
- Line(5775 2100 5400 2100 10 0x00000000)
- Line(5500 575 5725 575 10 0x00000000)
- Line(5375 575 5500 575 10 0x00000000)
- Line(5325 625 5375 575 10 0x00000000)
- Line(4425 300 4350 225 10 0x00000000)
- Line(4125 225 4125 275 10 0x00000000)
- Line(4325 225 4125 225 10 0x00000000)
- Line(4350 225 4325 225 10 0x00000000)
- Line(5025 225 5025 275 10 0x00000000)
- Line(5225 225 5025 225 10 0x00000000)
- Line(4975 150 4625 150 10 0x00000000)
- Line(6100 150 5525 150 10 0x00000000)
- Line(3925 275 3925 175 25 0x00000000)
- Line(3500 225 3500 175 25 0x00000000)
- Line(3350 175 3300 225 25 0x00000000)
- Line(3950 175 3350 175 25 0x00000000)
- Line(855 3055 705 3055 10 0x00000000)
- Line(4100 3800 1675 3800 25 0x00000000)
- Line(4100 3600 4100 3800 25 0x00000000)
- Line(2275 3725 2275 3800 25 0x00000000)
- Line(3125 3725 3125 3800 25 0x00000000)
- Line(1675 3800 1675 3750 25 0x00000000)
- Line(2925 3725 2925 3800 25 0x00000000)
- Line(1100 2800 1250 2800 25 0x00000000)
- Line(1325 3725 1675 3725 25 0x00000000)
- Line(500 3300 1000 3300 10 0x00000000)
- Line(6175 3425 6225 3425 40 0x00000000)
- Line(1225 3925 2075 3925 25 0x00000000)
- Line(3275 2925 3275 2975 25 0x00000000)
- Line(3775 2975 3850 2900 25 0x00000000)
- Line(3200 2975 3775 2975 25 0x00000000)
- Line(3575 1975 4250 1975 10 0x00000000)
- Line(3550 2050 3550 2000 10 0x00000000)
- Line(3550 2000 3575 1975 10 0x00000000)
- Line(2000 3050 1975 3050 25 0x00000000)
- Line(2800 3050 2000 3050 25 0x00000000)
- Line(2875 2975 2800 3050 25 0x00000000)
- Line(2950 2975 2875 2975 25 0x00000000)
- Line(2075 3925 3225 3925 25 0x00000000)
- Line(2950 2975 3200 2975 25 0x00000000)
- Line(2850 2650 4750 2650 10 0x00000000)
- Line(3850 2900 4525 2900 25 0x00000000)
- Line(4375 175 4425 225 25 0x00000000)
- Line(3950 175 4375 175 25 0x00000000)
- Line(915 1800 895 1820 10 0x00000000)
- Line(6275 875 6275 925 25 0x00000000)
- Line(3925 875 3925 950 25 0x00000000)
- Line(4175 1000 3100 1000 25 0x00000000)
- Line(6050 1025 6025 1000 25 0x00000000)
- Line(6175 1025 6050 1025 25 0x00000000)
- Line(5100 1525 5200 1525 25 0x00000000)
- Line(5150 1525 5150 1625 25 0x00000000)
- Line(5050 1625 5250 1625 25 0x00000000)
- Line(6025 1000 4175 1000 25 0x00000000)
- Line(925 1600 900 1625 10 0x00000000)
- Line(520 2385 510 2395 25 0x00000000)
- Line(1030 1800 915 1800 10 0x00000000)
- Line(525 1620 525 2390 25 0x00000000)
- Line(1175 1600 925 1600 10 0x00000000)
- Line(1675 2900 1250 2900 25 0x00000000)
- Line(6275 3375 6225 3425 40 0x00000000)
- Line(6225 3425 6275 3475 40 0x00000000)
- Line(2350 2450 1350 2450 25 0x00000000)
- Line(1950 2550 2650 2550 10 0x00000000)
- Line(2350 2450 3175 2450 25 0x00000000)
- Line(3900 3175 3175 3175 25 0x00000000)
- Line(1750 1525 1750 1625 25 0x00000000)
- Line(1750 1625 1875 1625 25 0x00000000)
- Line(1700 1525 1800 1525 25 0x00000000)
- Line(3975 950 1350 950 25 0x00000000)
- Line(4425 825 4425 950 25 0x00000000)
- Line(6075 950 3975 950 25 0x00000000)
- Line(6100 925 6075 950 25 0x00000000)
- Line(6125 925 6100 925 25 0x00000000)
- Line(6325 925 6125 925 25 0x00000000)
- Line(5725 800 5725 875 25 0x00000000)
- Line(5750 775 5725 800 25 0x00000000)
- Line(6075 775 5750 775 25 0x00000000)
- Line(6125 825 6075 775 25 0x00000000)
- Line(6175 825 6125 825 25 0x00000000)
- Line(6325 825 6175 825 25 0x00000000)
- Line(6375 775 6325 825 25 0x00000000)
- Line(5125 875 5725 875 25 0x00000000)
- Line(6275 675 6275 725 25 0x00000000)
- Line(6325 725 3975 725 25 0x00000000)
- Line(6425 725 6475 775 25 0x00000000)
- Line(6325 725 6425 725 25 0x00000000)
- Line(6475 3275 6275 3275 45 0x00000000)
- Line(6475 3175 6275 3175 45 0x00000000)
- Line(6475 3075 6275 3075 45 0x00000000)
- Line(6475 2975 6275 2975 45 0x00000000)
- Line(6475 2875 6275 2875 45 0x00000000)
- Line(6475 2775 6275 2775 45 0x00000000)
- Line(6475 2675 6275 2675 45 0x00000000)
- Line(6475 2575 6275 2575 45 0x00000000)
- Line(6275 3575 6250 3600 45 0x00000000)
- Line(6250 3600 5650 3600 45 0x00000000)
- Line(5450 3600 4100 3600 45 0x00000000)
- Line(3250 3050 3225 3050 10 0x00000000)
- Line(2500 2850 3300 2850 10 0x00000000)
- Line(4025 3050 3250 3050 10 0x00000000)
- Line(4050 3075 4025 3050 10 0x00000000)
- Line(2475 2875 2500 2850 10 0x00000000)
- Line(2950 1775 4800 1775 10 0x00000000)
- Line(3425 2850 3450 2850 10 0x00000000)
- Line(3375 2900 3425 2850 10 0x00000000)
- Line(3300 2850 3350 2900 10 0x00000000)
- Line(5975 2600 5350 2600 45 0x00000000)
- Line(6025 2975 5975 2925 45 0x00000000)
- Line(6275 2975 6025 2975 45 0x00000000)
- Line(5350 3075 5975 3075 45 0x00000000)
- Line(6275 2775 5875 2775 45 0x00000000)
- Line(6275 2875 6075 2875 45 0x00000000)
- Line(6275 3275 5350 3275 45 0x00000000)
- Line(6275 3175 3900 3175 45 0x00000000)
- Line(6075 2675 6275 2675 45 0x00000000)
- Line(5875 2775 4900 2775 45 0x00000000)
- Line(4900 2200 5850 2200 45 0x00000000)
- Line(5850 2200 5875 2225 45 0x00000000)
- Line(6275 475 6325 525 25 0x00000000)
- Line(6325 525 6425 525 25 0x00000000)
- Line(6425 525 6475 575 25 0x00000000)
- Line(6475 3575 6275 3575 40 0x00000000)
- Line(3350 2900 3375 2900 10 0x00000000)
- Line(4850 3700 4850 3625 45 0x00000000)
- Line(725 3925 1225 3925 25 0x00000000)
- Line(6325 925 6425 925 25 0x00000000)
- Line(6425 925 6475 975 25 0x00000000)
- Line(6175 1025 6425 1025 25 0x00000000)
- Line(5625 1075 6275 1075 25 0x00000000)
- Line(6275 475 4025 475 25 0x00000000)
- Line(3050 525 3000 575 10 0x00000000)
- Line(6375 475 6375 425 25 0x00000000)
- Line(6375 425 6350 400 25 0x00000000)
- Line(6350 400 5125 400 25 0x00000000)
- Line(5925 275 5925 225 10 0x00000000)
- Line(5925 225 5950 200 10 0x00000000)
- Line(5950 200 6425 200 10 0x00000000)
- Line(5825 275 5825 300 10 0x00000000)
- Line(5825 300 5875 350 10 0x00000000)
- Line(5875 350 6175 350 10 0x00000000)
- Line(6475 675 6425 625 10 0x00000000)
- Line(6425 625 5950 625 10 0x00000000)
- Line(5950 625 5925 650 10 0x00000000)
- Line(5825 875 5875 925 10 0x00000000)
- Line(5875 925 6050 925 10 0x00000000)
- Line(6050 925 6100 875 10 0x00000000)
- Line(6100 875 6175 875 10 0x00000000)
- Line(6100 1300 2900 1300 10 0x00000000)
- Line(6150 525 6150 525 10 0x00000000)
- Line(6150 525 3050 525 10 0x00000000)
- Line(1100 1125 6425 1125 10 0x00000000)
- Line(6425 1125 6475 1175 10 0x00000000)
- Line(5300 1725 2575 1725 10 0x00000000)
- Line(2500 1200 2600 1200 10 0x00000000)
- Line(2600 1300 2450 1300 10 0x00000000)
- Line(2550 1050 2400 1050 10 0x00000000)
- Line(2800 1200 2950 1200 10 0x00000000)
- Line(2850 1250 3050 1250 10 0x00000000)
- Line(2900 1375 3175 1375 10 0x00000000)
- Line(1400 1375 2900 1375 10 0x00000000)
- Line(1500 1250 2850 1250 10 0x00000000)
- Line(1550 1000 2950 1000 10 0x00000000)
- Line(1650 1425 2750 1425 10 0x00000000)
- Line(2375 1325 2400 1350 10 0x00000000)
- Line(2400 1350 2650 1350 10 0x00000000)
- Line(2650 1350 2700 1300 10 0x00000000)
- Line(1750 1325 2375 1325 10 0x00000000)
- Line(2375 1100 2600 1100 10 0x00000000)
- Line(2600 1100 2650 1050 10 0x00000000)
- Line(1850 1050 2325 1050 10 0x00000000)
- Line(2325 1050 2375 1100 10 0x00000000)
- Line(2650 2550 2700 2500 10 0x00000000)
- Line(2700 2500 3100 2500 10 0x00000000)
- Line(3250 800 2800 800 10 0x00000000)
- Line(3100 2500 3450 2500 10 0x00000000)
- Line(1975 2825 2150 2825 10 0x00000000)
- Line(2525 2500 2050 2500 10 0x00000000)
- Line(3250 2050 3175 1975 10 0x00000000)
- Line(3175 1975 2525 1975 10 0x00000000)
- Line(3325 2550 2975 2550 10 0x00000000)
- Line(2975 2550 2950 2575 10 0x00000000)
- Line(3000 850 2700 850 10 0x00000000)
- Line(3450 2850 4525 2850 10 0x00000000)
- Line(4525 2850 4550 2875 10 0x00000000)
- Line(4550 2875 4600 2875 10 0x00000000)
- Line(4600 2875 4625 2850 10 0x00000000)
- Line(4625 2850 5775 2850 10 0x00000000)
- Line(400 50 6700 50 1 0x00000000)
- Line(6700 50 6700 3985 1 0x00000000)
- Line(6700 3985 400 3985 1 0x00000000)
- Line(400 3985 400 50 1 0x00000000)
- Text(750 100 0 100 "SOLDER" 0x00000080)
- Text(750 325 0 100 "AIC-1.1.0" 0x00000080)
- Text(750 250 0 100 "(C) 2003 Walter Fetter Lages" 0x00000080)
- Text(750 175 0 100 "Fernando Pessutto" 0x00000080)
-)
-Layer(2 "GND-sldr")
-(
-)
-Layer(3 "Vcc-sldr")
-(
-)
-Layer(4 "component")
-(
- Line(855 2490 855 3055 10 0x00000000)
- Line(765 2400 855 2490 10 0x00000000)
- Line(715 2805 710 2810 10 0x00000000)
- Line(715 2570 715 2805 10 0x00000000)
- Line(525 2395 650 2520 25 0x00000000)
- Line(650 2765 650 2520 25 0x00000000)
- Line(500 2695 445 2750 10 0x00000000)
- Line(1250 2905 1255 2910 25 0x00000000)
- Line(1250 2730 1250 2905 25 0x00000000)
- Line(5775 2850 5775 2925 10 0x00000000)
- Line(3225 3050 3225 3425 10 0x00000000)
- Line(2775 3300 2775 3425 10 0x00000000)
- Line(5250 2925 5250 3275 10 0x00000000)
- Line(5650 3225 5650 2450 10 0x00000000)
- Line(2050 3250 2050 3225 10 0x00000000)
- Line(1875 3425 2050 3250 10 0x00000000)
- Line(5150 3375 5150 2600 10 0x00000000)
- Line(3975 2500 3975 3100 10 0x00000000)
- Line(2175 3100 2175 3425 10 0x00000000)
- Line(1000 2700 1000 3300 10 0x00000000)
- Line(4150 1625 4100 1675 10 0x00000000)
- Line(4100 1675 4100 2725 10 0x00000000)
- Line(3225 3525 3225 3425 10 0x00000000)
- Line(2575 3425 2575 3525 10 0x00000000)
- Line(4450 1825 4450 1625 10 0x00000000)
- Line(1025 1600 1025 1475 10 0x00000000)
- Line(1175 1725 1175 1610 10 0x00000000)
- Line(2475 3425 2475 2875 10 0x00000000)
- Line(1175 1610 1170 1605 10 0x00000000)
- Line(3700 3600 3700 2100 10 0x00000000)
- Line(3700 2100 3750 2050 10 0x00000000)
- Line(2925 3525 2925 3725 25 0x00000000)
- Line(3500 2225 3500 3850 10 0x00000000)
- Line(3500 2200 3500 2225 10 0x00000000)
- Line(3650 2050 3500 2200 10 0x00000000)
- Line(3450 2200 3450 2050 10 0x00000000)
- Line(3750 2350 3800 2400 10 0x00000000)
- Line(3200 1675 3200 1600 10 0x00000000)
- Line(3150 1725 3200 1675 10 0x00000000)
- Line(3150 2050 3150 1725 10 0x00000000)
- Line(2800 800 2800 575 10 0x00000000)
- Line(2700 850 2700 575 10 0x00000000)
- Line(3000 1350 3000 850 10 0x00000000)
- Line(2950 1400 3000 1350 10 0x00000000)
- Line(2950 1475 2950 1400 10 0x00000000)
- Line(2950 1550 2950 1475 10 0x00000000)
- Line(3000 1600 2950 1550 10 0x00000000)
- Line(3000 1625 3000 1600 10 0x00000000)
- Line(3000 1700 3000 1625 10 0x00000000)
- Line(3050 1750 3000 1700 10 0x00000000)
- Line(3050 2050 3050 1750 10 0x00000000)
- Line(2950 1625 2950 1775 10 0x00000000)
- Line(4800 1775 4800 1525 10 0x00000000)
- Line(4575 2175 4600 2150 10 0x00000000)
- Line(4575 2825 4575 2175 10 0x00000000)
- Line(4600 2150 4600 1525 10 0x00000000)
- Line(4750 2650 4750 1625 10 0x00000000)
- Line(2850 2350 2850 2650 10 0x00000000)
- Line(4250 1975 4250 1650 10 0x00000000)
- Line(1750 1700 1750 2050 10 0x00000000)
- Line(2500 1525 2500 1675 10 0x00000000)
- Line(1850 1750 1850 2050 10 0x00000000)
- Line(2500 1675 2450 1725 10 0x00000000)
- Line(2350 1550 2350 1075 10 0x00000000)
- Line(2375 1575 2350 1550 10 0x00000000)
- Line(2400 1600 2375 1575 10 0x00000000)
- Line(2400 1825 2400 1600 10 0x00000200)
- Line(2250 2050 2250 1825 10 0x00000000)
- Line(2500 900 2500 575 10 0x00000000)
- Line(2225 950 2225 900 10 0x00000000)
- Line(2350 1075 2225 950 10 0x00000000)
- Line(3350 2825 3350 2350 10 0x00000000)
- Line(1500 2550 1500 2825 10 0x00000000)
- Line(1550 2500 1500 2550 10 0x00000000)
- Line(1550 2050 1550 2500 10 0x00000000)
- Line(2450 2050 2450 2550 10 0x00000000)
- Line(3200 1600 3250 1550 10 0x00000000)
- Line(3250 1550 3250 800 10 0x00000000)
- Line(2525 2625 2525 2775 10 0x00000000)
- Line(2450 2550 2525 2625 10 0x00000000)
- Line(2050 2050 2050 2300 10 0x00000000)
- Line(2100 2125 2100 1525 10 0x00000000)
- Line(3850 2250 3850 2050 10 0x00000000)
- Line(1950 2500 1900 2550 10 0x00000000)
- Line(2950 2050 2875 2125 10 0x00000000)
- Line(1650 2175 1650 2050 10 0x00000000)
- Line(2875 2125 2875 2225 10 0x00000000)
- Line(2300 1525 2300 1875 10 0x00000000)
- Line(3200 2300 3250 2350 10 0x00000000)
- Line(3200 1875 3200 2300 10 0x00000000)
- Line(1450 2050 1450 1875 10 0x00000000)
- Line(3100 2300 3150 2350 10 0x00000000)
- Line(3100 1925 3100 2300 10 0x00000000)
- Line(2200 1525 2200 1950 10 0x00000000)
- Line(2150 1950 2200 2000 10 0x00000000)
- Line(3050 2350 3050 2175 10 0x00000000)
- Line(2200 2000 2200 2175 10 0x00000000)
- Line(2150 1625 2150 1950 10 0x00000000)
- Line(2950 2350 2950 2125 10 0x00000000)
- Line(1950 2050 1950 2500 10 0x00000000)
- Line(1900 2750 1975 2825 10 0x00000000)
- Line(1900 2550 1900 2750 10 0x00000000)
- Line(2350 2150 2350 2050 10 0x00000000)
- Line(2275 2225 2350 2150 10 0x00000000)
- Line(2275 2325 2275 2225 10 0x00000000)
- Line(2250 2350 2275 2325 10 0x00000000)
- Line(2250 2650 2250 2350 10 0x00000000)
- Line(2250 2275 2250 2050 10 0x00000000)
- Line(2150 2375 2250 2275 10 0x00000000)
- Line(2150 2650 2150 2375 10 0x00000000)
- Line(2350 2450 2350 2275 25 0x00000000)
- Line(5350 3500 5450 3600 45 0x00000000)
- Line(3900 3175 3900 3600 45 0x00000000)
- Line(4700 3300 4700 3175 45 0x00000000)
- Line(6275 3075 6175 3075 45 0x00000000)
- Line(6175 3075 6175 3425 45 0x00000000)
- Line(6175 3075 6175 2300 45 0x00000000)
- Line(6375 975 6475 1075 25 0x00000000)
- Line(6275 2575 6175 2575 45 0x00000000)
- Line(5875 2100 5875 2125 45 0x00000000)
- Line(5875 2125 6075 2325 45 0x00000000)
- Line(6075 2325 6075 2675 45 0x00000000)
- Line(5875 2225 5875 2450 45 0x00000000)
- Line(4650 2200 4650 2775 45 0x00000000)
- Line(4650 2775 4650 3100 45 0x00000000)
- Line(4650 3100 4575 3175 45 0x00000000)
- Line(4575 3175 4575 3425 45 0x00000000)
- Line(5575 1875 5575 2200 45 0x00000000)
- Line(5875 1875 5875 2100 45 0x00000000)
- Line(6375 475 6375 575 25 0x00000000)
- Line(6375 675 6375 775 25 0x00000000)
- Line(6375 875 6375 975 25 0x00000000)
- Line(6175 2300 6175 1025 40 0x00000000)
- Line(5975 2100 6150 2100 40 0x00000000)
- Line(5575 1875 5575 1350 25 0x00000000)
- Line(5575 1350 5625 1300 25 0x00000000)
- Line(5625 1300 5625 1075 25 0x00000000)
- Line(5925 575 5925 475 25 0x00000000)
- Line(5325 225 5325 475 25 0x00000000)
- Line(4825 275 4825 475 25 0x00000000)
- Line(5125 275 5125 400 25 0x00000000)
- Line(5725 275 5725 400 25 0x00000000)
- Line(5825 575 5825 500 25 0x00000000)
- Line(5825 500 5725 400 25 0x00000000)
- Line(6425 200 6425 425 10 0x00000000)
- Line(6425 425 6475 475 10 0x00000000)
- Line(6175 475 6275 575 10 0x00000000)
- Line(6175 350 6175 475 10 0x00000000)
- Line(5925 650 5925 875 10 0x00000000)
- Line(6175 875 6275 775 10 0x00000000)
- Line(6275 975 6100 975 10 0x00000000)
- Line(6100 975 6100 1300 10 0x00000000)
- Line(2900 1300 2900 575 10 0x00000000)
- Line(6100 625 6150 525 10 0x00000000)
- Line(6475 875 6425 825 10 0x00000000)
- Line(6425 825 6325 825 10 0x00000000)
- Line(6325 825 6325 725 10 0x00000000)
- Line(6325 725 6100 725 10 0x00000000)
- Line(6100 725 6100 625 10 0x00000000)
- Line(4025 475 4025 575 25 0x00000000)
- Line(1100 2325 1100 1125 10 0x00000000)
- Line(800 3600 800 3550 10 0x00000000)
- Line(800 3550 900 3450 10 0x00000000)
- Line(900 3450 900 2525 10 0x00000000)
- Line(2775 3425 2775 3725 10 0x00000000)
- Line(6375 1075 6325 1125 10 0x00000000)
- Line(6325 1125 6325 1725 10 0x00000000)
- Line(2575 1725 2575 2825 10 0x00000000)
- Line(2575 2825 2725 2975 10 0x00000000)
- Line(5450 2925 5450 3325 45 0x00000000)
- Line(5450 3325 5550 3425 45 0x00000000)
- Line(2050 1625 2050 675 10 0x00000000)
- Line(2000 1525 2000 825 10 0x00000000)
- Line(1950 1625 1950 625 10 0x00000000)
- Line(1900 1525 1900 575 10 0x00000000)
- Line(2375 3600 2375 3725 10 0x00000000)
- Line(1875 3725 1875 3600 10 0x00000000)
- Line(2275 3725 2275 3525 25 0x00000000)
- Line(2475 3850 2475 3725 10 0x00000000)
- Line(1775 3725 1775 3850 10 0x00000000)
- Line(1000 1625 1025 1600 10 0x00000000)
- Line(900 1725 1000 1625 10 0x00000000)
- Line(1050 3100 1050 3675 10 0x00000000)
- Line(2750 2350 2750 2150 10 0x00000000)
- Line(2750 2150 2850 2050 10 0x00000000)
- Line(2150 2825 2150 2650 10 0x00000000)
- Line(1975 2900 1975 2825 10 0x00000000)
- Line(1175 3225 1175 1725 10 0x00000000)
- Line(1100 3300 1175 3225 10 0x00000000)
- Line(1100 2450 1100 2325 10 0x00000000)
- Line(900 2525 900 2450 10 0x00000000)
- Line(2675 3475 2675 3525 25 0x00000000)
- Line(5525 2375 5525 2225 10 0x00000000)
- Line(3900 2275 3975 2350 10 0x00000000)
- Line(3900 1525 3900 2275 10 0x00000000)
- Line(4000 2150 4000 2000 10 0x00000000)
- Line(3950 1625 3950 2050 10 0x00000000)
- Line(3950 2050 3950 2250 10 0x00000000)
- Line(4000 1950 4000 2000 10 0x00000000)
- Line(4000 1525 4000 1950 10 0x00000000)
- Line(4050 1800 4050 1950 10 0x00000000)
- Line(4050 1625 4050 1800 10 0x00000000)
- Line(4050 2050 4050 1950 10 0x00000000)
- Line(4650 1625 4650 1425 10 0x00000000)
- Line(4525 1225 4425 1225 10 0x00000000)
- Line(4525 1300 4525 1225 10 0x00000000)
- Line(4650 1425 4525 1300 10 0x00000000)
- Line(4625 1350 4625 1225 10 0x00000000)
- Line(4700 1425 4625 1350 10 0x00000000)
- Line(4700 1525 4700 1425 10 0x00000000)
- Line(4850 1475 4725 1350 10 0x00000000)
- Line(4850 1625 4850 1475 10 0x00000000)
- Line(4725 1350 4725 575 10 0x00000000)
- Line(4900 1450 4875 1425 10 0x00000000)
- Line(4625 650 4625 625 10 0x00000000)
- Line(4700 725 4625 650 10 0x00000000)
- Line(4700 925 4700 725 10 0x00000000)
- Line(4675 950 4700 925 10 0x00000000)
- Line(4675 1075 4675 950 10 0x00000000)
- Line(4850 1075 4825 1075 10 0x00000000)
- Line(4875 1100 4850 1075 10 0x00000000)
- Line(4900 1525 4900 1450 10 0x00000000)
- Line(4875 1425 4875 1100 10 0x00000000)
- Line(5125 950 5075 900 10 0x00000000)
- Line(5125 1075 5125 950 10 0x00000000)
- Line(5025 1175 5125 1075 10 0x00000000)
- Line(5075 875 5075 800 10 0x00000000)
- Line(5075 900 5075 875 10 0x00000000)
- Line(5525 950 5525 925 10 0x00000000)
- Line(5475 1000 5525 950 10 0x00000000)
- Line(5475 1075 5475 1000 10 0x00000000)
- Line(5425 1125 5475 1075 10 0x00000000)
- Line(5425 1425 5425 1125 10 0x00000000)
- Line(6050 1200 6050 1425 10 0x00000000)
- Line(6025 1175 6050 1200 10 0x00000000)
- Line(4250 2050 4250 2350 10 0x00000000)
- Line(5525 925 5525 825 10 0x00000000)
- Line(5025 1075 5025 875 10 0x00000000)
- Line(5325 1225 5325 1075 10 0x00000000)
- Line(4425 1075 4425 1225 10 0x00000000)
- Line(4125 875 4125 1075 10 0x00000000)
- Line(4125 1350 4125 1175 10 0x00000000)
- Line(5500 1250 5500 1350 10 0x00000000)
- Line(5525 1225 5500 1250 10 0x00000000)
- Line(4425 625 4425 300 10 0x00000000)
- Line(5225 525 5225 225 10 0x00000000)
- Line(5325 625 5225 525 10 0x00000000)
- Line(4975 425 4975 150 10 0x00000000)
- Line(5025 475 4975 425 10 0x00000000)
- Line(5025 575 5025 475 10 0x00000000)
- Line(4625 150 4625 225 10 0x00000000)
- Line(5525 150 5525 225 10 0x00000000)
- Line(6100 500 6100 150 10 0x00000000)
- Line(6025 575 6100 500 10 0x00000000)
- Line(3300 625 3300 525 10 0x00000000)
- Line(3500 625 3500 1300 10 0x00000000)
- Line(725 3275 725 3925 25 0x00000000)
- Line(725 3225 725 3275 25 0x00000000)
- Line(650 3150 725 3225 25 0x00000000)
- Line(650 2800 650 3150 25 0x00000000)
- Line(650 2705 650 2820 25 0x00000000)
- Line(445 2750 445 3300 10 0x00000000)
- Line(5525 2225 5400 2100 10 0x00000000)
- Line(2675 3425 2675 3475 25 0x00000000)
- Line(2175 3425 2175 3725 10 0x00000000)
- Line(2075 3525 2075 3425 25 0x00000000)
- Line(3250 3725 3225 3725 25 0x00000000)
- Line(3325 3650 3250 3725 25 0x00000000)
- Line(3325 2950 3325 3650 25 0x00000000)
- Line(3275 2900 3325 2950 25 0x00000000)
- Line(3550 2900 3550 3175 25 0x00000000)
- Line(3550 2600 3550 2900 25 0x00000000)
- Line(2675 3725 2675 3925 25 0x00000000)
- Line(2075 3725 2075 3925 25 0x00000000)
- Line(1225 3925 1225 3725 25 0x00000000)
- Line(1975 3050 1975 3225 25 0x00000000)
- Line(3850 2600 3850 2900 25 0x00000000)
- Line(3850 2350 3850 2600 25 0x00000000)
- Line(3275 2600 3275 2900 25 0x00000000)
- Line(5450 2250 5300 2100 25 0x00000000)
- Line(5450 2450 5450 2250 25 0x00000000)
- Line(3850 800 3850 350 25 0x00000000)
- Line(3925 875 3850 800 25 0x00000000)
- Line(3850 350 3925 275 25 0x00000000)
- Line(4425 850 4425 950 25 0x00000000)
- Line(4300 800 4225 875 25 0x00000000)
- Line(4300 300 4300 800 25 0x00000000)
- Line(4275 275 4300 300 25 0x00000000)
- Line(4225 275 4275 275 25 0x00000000)
- Line(3100 1000 3100 575 25 0x00000000)
- Line(5200 1525 5200 1000 25 0x00000000)
- Line(4225 875 4225 1000 25 0x00000000)
- Line(1250 2750 1250 2550 25 0x00000000)
- Line(1050 3100 1100 3050 10 0x00000000)
- Line(1250 2550 1350 2450 25 0x00000000)
- Line(1350 2450 1350 2050 25 0x00000000)
- Line(2750 2050 2725 2050 25 0x00000000)
- Line(2650 2125 2650 2450 25 0x00000000)
- Line(2725 2050 2650 2125 25 0x00000000)
- Line(2350 2450 2350 2650 25 0x00000000)
- Line(5350 3275 5350 3500 45 0x00000000)
- Line(2150 2050 2150 2250 25 0x00000000)
- Line(3225 3725 3225 3925 25 0x00000000)
- Line(3175 3175 3175 2600 25 0x00000000)
- Line(2400 275 2375 275 25 0x00000000)
- Line(1700 1525 1700 950 25 0x00000000)
- Line(1350 950 1350 2050 25 0x00000000)
- Line(2325 325 2325 950 25 0x00000000)
- Line(2375 275 2325 325 25 0x00000000)
- Line(4875 925 4925 975 25 0x00000000)
- Line(4875 800 4875 925 25 0x00000000)
- Line(4925 750 4875 800 25 0x00000000)
- Line(4950 1425 4950 1625 25 0x00000000)
- Line(4925 1400 4950 1425 25 0x00000000)
- Line(4925 1175 4925 1400 25 0x00000000)
- Line(4925 950 4925 1175 25 0x00000000)
- Line(4925 575 4925 750 25 0x00000000)
- Line(5775 925 5725 875 25 0x00000000)
- Line(5775 1025 5775 925 25 0x00000000)
- Line(5775 1125 5775 1025 25 0x00000000)
- Line(5825 1175 5775 1125 25 0x00000000)
- Line(5875 1125 5875 725 25 0x00000000)
- Line(5925 1175 5875 1125 25 0x00000000)
- Line(5325 825 5325 725 25 0x00000000)
- Line(4825 875 4825 725 25 0x00000000)
- Line(3975 1125 4025 1175 25 0x00000000)
- Line(3975 725 3975 1125 25 0x00000000)
- Line(5875 2450 5875 3600 45 0x00000000)
- Line(4000 3425 4000 3600 45 0x00000000)
- Line(4700 3700 4700 3425 45 0x00000000)
- Line(4850 3300 4850 3425 45 0x00000000)
- Line(5550 3600 5550 3425 45 0x00000000)
- Line(5450 2450 5450 2925 45 0x00000000)
- Line(5975 2450 5975 2600 45 0x00000000)
- Line(5350 2925 5350 3075 45 0x00000000)
- Line(5350 2600 5350 2450 45 0x00000000)
- Line(5975 2925 5975 3075 45 0x00000000)
- Line(5975 2600 5975 2775 45 0x00000000)
- Line(5975 2775 6075 2875 45 0x00000000)
- Line(2500 1525 2500 1200 10 0x00000000)
- Line(2600 1200 2600 575 10 0x00000000)
- Line(2450 1300 2450 350 10 0x00000000)
- Line(2450 350 2450 325 10 0x00000000)
- Line(2450 325 2500 275 10 0x00000000)
- Line(2600 1525 2600 1300 10 0x00000000)
- Line(2550 1625 2550 1050 10 0x00000000)
- Line(2400 1050 2400 575 10 0x00000000)
- Line(2650 325 2600 275 10 0x00000000)
- Line(2650 1625 2650 325 10 0x00000000)
- Line(2700 1525 2700 950 10 0x00000000)
- Line(2700 950 2750 900 10 0x00000000)
- Line(2750 900 2750 325 10 0x00000000)
- Line(2750 325 2700 275 10 0x00000000)
- Line(2750 950 2850 850 10 0x00000000)
- Line(2850 850 2850 325 10 0x00000000)
- Line(2850 325 2800 275 10 0x00000000)
- Line(2750 1625 2750 950 10 0x00000000)
- Line(2800 1525 2800 1200 10 0x00000000)
- Line(2950 1200 2950 325 10 0x00000000)
- Line(2950 325 2900 275 10 0x00000000)
- Line(3050 1250 3050 325 10 0x00000000)
- Line(3050 325 3000 275 10 0x00000000)
- Line(2850 1625 2850 1250 10 0x00000000)
- Line(3175 350 3100 275 10 0x00000000)
- Line(2900 1525 2900 1375 10 0x00000000)
- Line(3175 1375 3175 350 10 0x00000000)
- Line(1350 2550 1400 2500 10 0x00000000)
- Line(1400 2500 1400 1475 10 0x00000000)
- Line(1400 1475 1400 1375 10 0x00000000)
- Line(1350 2650 1350 2550 10 0x00000000)
- Line(1450 2650 1450 2550 10 0x00000000)
- Line(1450 2550 1500 2500 10 0x00000000)
- Line(1500 2500 1500 1250 10 0x00000000)
- Line(1550 2650 1550 2550 10 0x00000000)
- Line(1550 2550 1600 2500 10 0x00000000)
- Line(1600 2500 1600 1700 10 0x00000000)
- Line(1600 1700 1575 1675 10 0x00000000)
- Line(1575 1675 1550 1650 10 0x00000000)
- Line(1550 1650 1550 1000 10 0x00000000)
- Line(1650 2650 1650 2550 10 0x00000000)
- Line(1650 2550 1700 2500 10 0x00000000)
- Line(1700 2500 1700 1600 10 0x00000000)
- Line(1700 1600 1650 1550 10 0x00000000)
- Line(1650 1550 1650 1425 10 0x00000000)
- Line(1750 2650 1750 2550 10 0x00000000)
- Line(1750 2550 1800 2500 10 0x00000000)
- Line(1800 2500 1800 1600 10 0x00000000)
- Line(1800 1600 1750 1550 10 0x00000000)
- Line(1750 1550 1750 1325 10 0x00000000)
- Line(1850 2650 1850 2550 10 0x00000000)
- Line(1850 2550 1900 2500 10 0x00000000)
- Line(1900 2500 1900 1600 10 0x00000000)
- Line(1900 1600 1875 1575 10 0x00000000)
- Line(1875 1575 1850 1550 10 0x00000000)
- Line(1850 1550 1850 1050 10 0x00000000)
- Line(1950 2650 1950 2550 10 0x00000000)
- Line(2650 2550 2600 2500 10 0x00000000)
- Line(2600 2500 2600 1825 10 0x00000000)
- Line(2600 1825 2650 1775 10 0x00000000)
- Line(2650 1775 2650 1725 10 0x00000000)
- Line(2650 1725 2600 1675 10 0x00000000)
- Line(2600 1675 2600 1525 10 0x00000000)
- Line(3175 2450 3175 2600 25 0x00000000)
- Line(3450 2500 3450 2350 10 0x00000000)
- Line(2525 1650 2525 2000 10 0x00000000)
- Line(2525 2000 2525 2500 10 0x00000000)
- Line(2050 2500 2050 2650 10 0x00000000)
- Line(2550 1625 2525 1650 10 0x00000000)
- Line(3550 2350 3550 2500 10 0x00000000)
- Line(3550 2500 3550 2525 10 0x00000000)
- Line(3650 2900 3650 2725 10 0x00000000)
- Line(3650 2725 3600 2675 10 0x00000000)
- Line(3600 2675 3600 2200 10 0x00000000)
- Line(3800 2400 3800 2775 10 0x00000000)
- Line(400 50 6700 50 1 0x00000000)
- Line(6700 50 6700 3985 1 0x00000000)
- Line(6700 3985 400 3985 1 0x00000000)
- Line(400 3985 400 50 1 0x00000000)
- Text(725 75 0 100 "COMPONENT" 0x00000000)
- Text(725 150 0 100 "AIC-1.1.0" 0x00000000)
- Text(725 225 0 100 "(c) 2003 Walter Fetter Lages" 0x00000000)
- Text(975 300 0 100 "Fernando Pessutto" 0x00000000)
-)
-Layer(5 "GND-comp")
-(
-)
-Layer(6 "Vcc-comp")
-(
-)
-Layer(7 "unused")
-(
-)
-Layer(8 "unused")
-(
-)
+++ /dev/null
-%!PS-Adobe-3.0
-%%Title: (unknown), assembly drawing
-%%Creator: pcb-bin 20060321
-%%CreationDate: Tue Nov 27 09:49:27 2007
-%%For: fetter (Walter Fetter Lages,,,)
-%%LanguageLevel: 1
-%%Orientation: Portrait
-%%Pages: 1
-%%PageOrder: Ascend
-%%DocumentMedia: A4 594 841
-%%EndComments
-%%BeginProlog
-
-/PcbDict 200 dict def
-PcbDict begin
-PcbDict /DictMatrix matrix put
-
-% some constants
-/Black {0.0 mysetgray} def
-/White {1.0 mysetgray} def
-/TAN {0.207106781} def
-/MTAN {-0.207106781} def
-
-% draw a filled polygon
-% get (x,y)... and number of points from stack
-/PO {
- /number exch def
- newpath
- moveto
- number 1 sub { lineto } repeat
- closepath fill stroke
-} def
-
-/P {
-% draw a pin-polygon,
-% get x, y and thickness from stack
- /thickness exch def /y exch def /x exch def
- gsave x y translate thickness thickness scale
- 0.5 MTAN
- TAN -0.5
- MTAN -0.5
- -0.5 MTAN
- -0.5 TAN
- MTAN 0.5
- TAN 0.5
- 0.5 TAN
- 8 PO grestore
-} def
-
-/PV {
-% pin or via, x, y and thickness are on the stack
- /drillinghole exch def /thickness exch def /y exch def /x exch def
- x y thickness P
-% draw drilling hole
- gsave White 0 setlinewidth
- newpath x y drillinghole 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/PVR {
-% pin or via, x, y and thickness are on the stack
- /drillinghole exch def /thickness exch def /y exch def /x exch def
- gsave 0 setlinewidth
- newpath x y thickness 2 div 0 360 arc closepath fill stroke
-% draw drilling whole
- White
- newpath x y drillinghole 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/PVSQ {
-% square pin or via, x, y and thickness are on the stack
- /drillinghole exch def /thickness exch def /y exch def /x exch def
- newpath x thickness 2 div sub y thickness 2 div sub moveto
- thickness 0 rlineto 0 thickness rlineto
- thickness neg 0 rlineto closepath fill stroke
-% draw drilling hole
- gsave White 0 setlinewidth
- newpath x y drillinghole 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/DH {
-% drill helpher; x, y, hole, copper-thickness are on stack
- /copper exch def /hole exch def /y exch def /x exch def
- gsave copper setlinewidth
- newpath x y hole copper add 2 div 0 360 arc closepath stroke
- grestore
-} def
-
-/L {
-% line, get x1, y1, x2, y2 and thickness from stack
- /thick exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave thick setlinewidth
- x1 y1 moveto x2 y2 lineto stroke
- grestore
-} def
-
-/CL {
-% line, get x1, y1, x2, y2 and thickness from stack
- /thick exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave White thick setlinewidth
- x1 y1 moveto x2 y2 lineto stroke
- grestore
-} def
-
-/B {
-% filled box, get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath fill stroke
-} def
-
-/PA {
-% pad, same as line
- L
-} def
-
-/A {
-% arc for elements, get x, y, width, height, thickness
-% startangle and delta-angle from stack
- /delta exch def /start exch def /thickness exch def
- /height exch def /width exch def /y exch def /x exch def
-% draw it
- gsave thickness setlinewidth /save DictMatrix currentmatrix def
-% scaling is less then zero because the coord system has to be swapped
- x y translate width neg height scale
- 0 0 1 start start delta add arc save setmatrix stroke
- grestore
-} def
-
-/CA {
-% arc for elements, get x, y, width, height, thickness
-% startangle and delta-angle from stack
- /delta exch def /start exch def /thickness exch def
- /height exch def /width exch def /y exch def /x exch def
-% draw it
- gsave White thickness setlinewidth /save DictMatrix currentmatrix def
-% scaling is less then zero because the coord system has to be swapped
- x y translate width neg height scale
- 0 0 1 start start delta add arc save setmatrix stroke
- grestore
-} def
-
-/CLRPV {
-% clears a pin/via for groundplane; x,y and thickness are on stack
- /thickness exch def /y exch def /x exch def
- gsave White x y thickness P grestore
-} def
-
-/CLRPVSQ {
-% clears a square pin, x,y and thickness are on stack
- /thickness exch def /y exch def /x exch def
- gsave White
- newpath x thickness 2 div sub y thickness 2 div sub moveto
- thickness 0 rlineto 0 thickness rlineto
- thickness neg 0 rlineto closepath fill stroke
- grestore
-} def
-
-/CLRPVR {
-% clears a round pin/via for groundplane; x,y and thickness are on the stack
- /thickness exch def /y exch def /x exch def
- gsave White 0 setlinewidth
- newpath x y thickness 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/CLRPA {
-% clear line, get x1, y1, x2, y2 and thickness from stack
- /thick exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave White thick setlinewidth
- x1 y1 moveto x2 y2 lineto stroke
- grestore
-} def
-
-/CLRB {
-% cleared box, get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave White newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath fill stroke
- grestore
-} def
-
-/FILL {
-% draw a filled rectangle for the ground plane
-% get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave 0 setlinewidth
- newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath fill stroke
- grestore
-} def
-
-/Outline {
-% outline, get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave 0.175 setlinewidth
- newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath stroke
- grestore
-} def
-
-/Alignment {
-% alignment targets, get x1, y1, x2, y2 and distance from stack
- /dis exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave 0.175 setlinewidth
- newpath x1 y1 dis add moveto
- 0 dis 2 mul neg rlineto
- dis neg dis rmoveto
- dis 2 mul 0 rlineto
- stroke
- newpath x1 y1 dis 0 90 arcn stroke
- newpath x1 y2 dis sub moveto 0 dis rlineto dis 0 rlineto stroke
- newpath x2 y2 dis sub moveto
- 0 2 dis mul rlineto
- dis dup neg rmoveto
- 2 dis mul neg 0 rlineto stroke
- newpath x2 y1 dis add moveto 0 dis neg rlineto dis neg 0 rlineto stroke
- grestore
-} def
-
-/mysetgray { setgray } def
-/mysetrgbcolor { setrgbcolor } def
-
-%%EndProlog
-%%BeginDefaults
-%%EndDefaults
-%%BeginSetup
-0.0 setlinewidth
-1 setlinecap
-Black
-%%EndSetup
-%%Page: 1 1
-%%BeginPageSetup
-%%EndPageSetup
-gsave White newpath
-153 416 moveto 458 416 lineto 458 673 lineto 153 673 lineto
-closepath fill stroke grestore
-% PCBMIN(-400,-400), PCBMAX(710400,841740)
-% PCBOFFSET(214900,579300), PCBSCALE(0.50000)
-% PCBSTARTDATA --- do not remove ---
-gsave
-0.00072 0.00072 scale
-214900 579300 translate
-0.500 0.500 scale
-842140 0 translate
-90 rotate
-0 842140 translate
-1 -1 scale
-400 400 translate
-/Color {0.800 0.800 0.800 mysetrgbcolor} def Color
--400 -400 710400 841740 200 Alignment
-147500 140000 145000 137500 1000 L
-147500 165000 147500 140000 1000 L
-145000 167500 147500 165000 1000 L
-145000 250000 145000 167500 1000 L
-140000 150000 140000 95000 2500 L
-142500 152500 140000 150000 2500 L
-142500 162500 142500 152500 2500 L
-140000 165000 142500 162500 2500 L
-140000 205000 140000 165000 2500 L
-76500 257000 76500 280500 1000 L
-57500 239500 70000 252000 2500 L
-675000 398500 45000 398500 100 L
-55000 269500 49500 275000 1000 L
-130000 290500 130500 291000 2500 L
-130000 273000 130000 290500 2500 L
-582500 285000 582500 292500 1000 L
-327500 305000 327500 342500 1000 L
-282500 330000 282500 342500 1000 L
-530000 292500 530000 327500 1000 L
-570000 322500 570000 245000 1000 L
-210000 325000 210000 322500 1000 L
-192500 342500 210000 325000 1000 L
-520000 337500 520000 260000 1000 L
-402500 250000 402500 310000 1000 L
-222500 310000 222500 342500 1000 L
-105000 270000 105000 330000 1000 L
-420000 162500 415000 167500 1000 L
-415000 167500 415000 272500 1000 L
-327500 352500 327500 342500 1000 L
-262500 342500 262500 352500 1000 L
-450000 182500 450000 162500 1000 L
-107500 160000 107500 147500 1000 L
-122500 172500 122500 161000 1000 L
-252500 342500 252500 287500 1000 L
-122500 161000 122000 160500 1000 L
-375000 360000 375000 210000 1000 L
-375000 210000 380000 205000 1000 L
-297500 352500 297500 372500 2500 L
-355000 222500 355000 385000 1000 L
-355000 220000 355000 222500 1000 L
-370000 205000 355000 220000 1000 L
-350000 220000 350000 205000 1000 L
-380000 235000 385000 240000 1000 L
-325000 167500 325000 160000 1000 L
-320000 172500 325000 167500 1000 L
-320000 205000 320000 172500 1000 L
-285000 80000 285000 57500 1000 L
-275000 85000 275000 57500 1000 L
-305000 135000 305000 85000 1000 L
-300000 140000 305000 135000 1000 L
-300000 147500 300000 140000 1000 L
-300000 155000 300000 147500 1000 L
-305000 160000 300000 155000 1000 L
-305000 162500 305000 160000 1000 L
-305000 170000 305000 162500 1000 L
-310000 175000 305000 170000 1000 L
-310000 205000 310000 175000 1000 L
-300000 162500 300000 177500 1000 L
-485000 177500 485000 152500 1000 L
-462500 217500 465000 215000 1000 L
-462500 282500 462500 217500 1000 L
-465000 215000 465000 152500 1000 L
-480000 265000 480000 162500 1000 L
-290000 235000 290000 265000 1000 L
-430000 197500 430000 165000 1000 L
-180000 170000 180000 205000 1000 L
-255000 152500 255000 167500 1000 L
-190000 175000 190000 205000 1000 L
-255000 167500 250000 172500 1000 L
-240000 155000 240000 107500 1000 L
-242500 157500 240000 155000 1000 L
-245000 160000 242500 157500 1000 L
-245000 182500 245000 160000 1000 L
-230000 205000 230000 182500 1000 L
-255000 90000 255000 57500 1000 L
-227500 95000 227500 90000 1000 L
-240000 107500 227500 95000 1000 L
-340000 282500 340000 235000 1000 L
-155000 255000 155000 282500 1000 L
-160000 250000 155000 255000 1000 L
-160000 205000 160000 250000 1000 L
-250000 205000 250000 255000 1000 L
-325000 160000 330000 155000 1000 L
-330000 155000 330000 80000 1000 L
-257500 262500 257500 277500 1000 L
-250000 255000 257500 262500 1000 L
-210000 205000 210000 230000 1000 L
-215000 212500 215000 152500 1000 L
-390000 225000 390000 205000 1000 L
-200000 250000 195000 255000 1000 L
-300000 205000 292500 212500 1000 L
-170000 217500 170000 205000 1000 L
-292500 212500 292500 222500 1000 L
-235000 152500 235000 187500 1000 L
-325000 230000 330000 235000 1000 L
-325000 187500 325000 230000 1000 L
-150000 205000 150000 187500 1000 L
-315000 230000 320000 235000 1000 L
-315000 192500 315000 230000 1000 L
-225000 152500 225000 195000 1000 L
-220000 195000 225000 200000 1000 L
-310000 235000 310000 217500 1000 L
-225000 200000 225000 217500 1000 L
-220000 162500 220000 195000 1000 L
-300000 235000 300000 212500 1000 L
-200000 205000 200000 250000 1000 L
-195000 275000 202500 282500 1000 L
-195000 255000 195000 275000 1000 L
-240000 215000 240000 205000 1000 L
-232500 222500 240000 215000 1000 L
-232500 232500 232500 222500 1000 L
-230000 235000 232500 232500 1000 L
-230000 265000 230000 235000 1000 L
-230000 227500 230000 205000 1000 L
-220000 237500 230000 227500 1000 L
-220000 265000 220000 237500 1000 L
-240000 245000 240000 227500 2500 L
-540000 350000 550000 360000 4500 L
-395000 317500 395000 360000 4500 L
-475000 330000 475000 317500 4500 L
-632500 307500 622500 307500 4500 L
-622500 307500 622500 342500 4500 L
-622500 307500 622500 230000 4500 L
-642500 97500 652500 107500 2500 L
-632500 257500 622500 257500 4500 L
-592500 210000 592500 212500 4500 L
-592500 212500 612500 232500 4500 L
-612500 232500 612500 267500 4500 L
-592500 222500 592500 245000 4500 L
-470000 220000 470000 277500 4500 L
-470000 277500 470000 310000 4500 L
-470000 310000 462500 317500 4500 L
-462500 317500 462500 342500 4500 L
-562500 187500 562500 220000 4500 L
-592500 187500 592500 210000 4500 L
-642500 47500 642500 57500 2500 L
-642500 67500 642500 77500 2500 L
-642500 87500 642500 97500 2500 L
-622500 230000 622500 102500 4000 L
-602500 210000 620000 210000 4000 L
-562500 187500 562500 135000 2500 L
-562500 135000 567500 130000 2500 L
-567500 130000 567500 107500 2500 L
-597500 57500 597500 47500 2500 L
-537500 22500 537500 47500 2500 L
-487500 27500 487500 47500 2500 L
-517500 27500 517500 40000 2500 L
-577500 27500 577500 40000 2500 L
-587500 57500 587500 50000 2500 L
-587500 50000 577500 40000 2500 L
-647500 20000 647500 42500 1000 L
-647500 42500 652500 47500 1000 L
-622500 47500 632500 57500 1000 L
-622500 35000 622500 47500 1000 L
-597500 65000 597500 87500 1000 L
-622500 87500 632500 77500 1000 L
-632500 97500 615000 97500 1000 L
-615000 97500 615000 130000 1000 L
-295000 130000 295000 57500 1000 L
-615000 62500 620000 52500 1000 L
-652500 87500 647500 82500 1000 L
-647500 82500 637500 82500 1000 L
-637500 82500 637500 72500 1000 L
-637500 72500 615000 72500 1000 L
-615000 72500 615000 62500 1000 L
-407500 47500 407500 57500 2500 L
-115000 232500 115000 112500 1000 L
-85000 360000 85000 355000 1000 L
-85000 355000 95000 345000 1000 L
-95000 345000 95000 252500 1000 L
-282500 342500 282500 372500 1000 L
-642500 107500 637500 112500 1000 L
-637500 112500 637500 172500 1000 L
-262500 172500 262500 282500 1000 L
-262500 282500 277500 297500 1000 L
-550000 292500 550000 332500 4500 L
-550000 332500 560000 342500 4500 L
-210000 162500 210000 67500 1000 L
-205000 152500 205000 82500 1000 L
-200000 162500 200000 62500 1000 L
-195000 152500 195000 57500 1000 L
-242500 360000 242500 372500 1000 L
-192500 372500 192500 360000 1000 L
-232500 372500 232500 352500 2500 L
-252500 385000 252500 372500 1000 L
-182500 372500 182500 385000 1000 L
-105000 162500 107500 160000 1000 L
-70000 385000 77500 392500 2500 L
-110000 310000 110000 367500 1000 L
-280000 235000 280000 215000 1000 L
-280000 215000 290000 205000 1000 L
-220000 282500 220000 265000 1000 L
-202500 290000 202500 282500 1000 L
-122500 322500 122500 172500 1000 L
-115000 330000 122500 322500 1000 L
-115000 245000 115000 232500 1000 L
-95000 252500 95000 245000 1000 L
-272500 347500 272500 352500 2500 L
-557500 237500 557500 222500 1000 L
-395000 227500 402500 235000 1000 L
-395000 152500 395000 227500 1000 L
-405000 215000 405000 200000 1000 L
-400000 162500 400000 205000 1000 L
-400000 205000 400000 225000 1000 L
-405000 195000 405000 200000 1000 L
-405000 152500 405000 195000 1000 L
-410000 180000 410000 195000 1000 L
-410000 162500 410000 180000 1000 L
-410000 205000 410000 195000 1000 L
-470000 162500 470000 142500 1000 L
-457500 122500 447500 122500 1000 L
-457500 130000 457500 122500 1000 L
-470000 142500 457500 130000 1000 L
-467500 135000 467500 122500 1000 L
-475000 142500 467500 135000 1000 L
-475000 152500 475000 142500 1000 L
-490000 147500 477500 135000 1000 L
-490000 162500 490000 147500 1000 L
-477500 135000 477500 57500 1000 L
-495000 145000 492500 142500 1000 L
-467500 65000 467500 62500 1000 L
-475000 72500 467500 65000 1000 L
-475000 92500 475000 72500 1000 L
-472500 95000 475000 92500 1000 L
-472500 107500 472500 95000 1000 L
-490000 107500 487500 107500 1000 L
-492500 110000 490000 107500 1000 L
-495000 152500 495000 145000 1000 L
-492500 142500 492500 110000 1000 L
-517500 95000 512500 90000 1000 L
-517500 107500 517500 95000 1000 L
-507500 117500 517500 107500 1000 L
-512500 87500 512500 80000 1000 L
-512500 90000 512500 87500 1000 L
-557500 95000 557500 92500 1000 L
-552500 100000 557500 95000 1000 L
-552500 107500 552500 100000 1000 L
-547500 112500 552500 107500 1000 L
-547500 142500 547500 112500 1000 L
-610000 120000 610000 142500 1000 L
-607500 117500 610000 120000 1000 L
-430000 205000 430000 235000 1000 L
-557500 92500 557500 82500 1000 L
-507500 107500 507500 87500 1000 L
-537500 122500 537500 107500 1000 L
-447500 107500 447500 122500 1000 L
-417500 87500 417500 107500 1000 L
-417500 135000 417500 117500 1000 L
-555000 125000 555000 135000 1000 L
-557500 122500 555000 125000 1000 L
-447500 62500 447500 30000 1000 L
-527500 52500 527500 22500 1000 L
-537500 62500 527500 52500 1000 L
-502500 42500 502500 15000 1000 L
-507500 47500 502500 42500 1000 L
-507500 57500 507500 47500 1000 L
-467500 15000 467500 22500 1000 L
-557500 15000 557500 22500 1000 L
-615000 50000 615000 15000 1000 L
-607500 57500 615000 50000 1000 L
-335000 62500 335000 52500 1000 L
-355000 62500 355000 130000 1000 L
-70000 257500 70000 252500 2500 L
-72500 260000 70000 257500 2500 L
-72500 267500 72500 260000 2500 L
-675000 5000 675000 398500 100 L
-45000 398500 45000 5000 100 L
-49500 275000 49500 330000 1000 L
-557500 222500 545000 210000 1000 L
-272500 342500 272500 347500 2500 L
-222500 342500 222500 372500 1000 L
-212500 352500 212500 342500 2500 L
-330000 372500 327500 372500 2500 L
-337500 365000 330000 372500 2500 L
-337500 295000 337500 365000 2500 L
-332500 290000 337500 295000 2500 L
-360000 290000 360000 317500 2500 L
-360000 260000 360000 290000 2500 L
-272500 372500 272500 392500 2500 L
-212500 372500 212500 392500 2500 L
-127500 392500 127500 372500 2500 L
-202500 305000 202500 322500 2500 L
-390000 260000 390000 290000 2500 L
-390000 235000 390000 260000 2500 L
-332500 260000 332500 290000 2500 L
-550000 225000 535000 210000 2500 L
-550000 245000 550000 225000 2500 L
-390000 80000 390000 35000 2500 L
-397500 87500 390000 80000 2500 L
-390000 35000 397500 27500 2500 L
-447500 85000 447500 95000 2500 L
-435000 80000 427500 87500 2500 L
-435000 30000 435000 80000 2500 L
-432500 27500 435000 30000 2500 L
-427500 27500 432500 27500 2500 L
-315000 100000 315000 57500 2500 L
-525000 152500 525000 100000 2500 L
-427500 87500 427500 100000 2500 L
-130000 275000 130000 255000 2500 L
-110000 310000 115000 305000 1000 L
-130000 255000 140000 245000 2500 L
-140000 245000 140000 205000 2500 L
-280000 205000 277500 205000 2500 L
-270000 212500 270000 245000 2500 L
-277500 205000 270000 212500 2500 L
-240000 245000 240000 265000 2500 L
-540000 327500 540000 350000 4500 L
-220000 205000 220000 225000 2500 L
-327500 372500 327500 392500 2500 L
-322500 317500 322500 260000 2500 L
-245000 27500 242500 27500 2500 L
-175000 152500 175000 95000 2500 L
-76500 280500 76000 281000 1000 L
-237500 32500 237500 95000 2500 L
-242500 27500 237500 32500 2500 L
-492500 92500 497500 97500 2500 L
-492500 80000 492500 92500 2500 L
-497500 75000 492500 80000 2500 L
-500000 142500 500000 162500 2500 L
-497500 140000 500000 142500 2500 L
-497500 117500 497500 140000 2500 L
-497500 95000 497500 117500 2500 L
-497500 57500 497500 75000 2500 L
-582500 92500 577500 87500 2500 L
-582500 102500 582500 92500 2500 L
-582500 112500 582500 102500 2500 L
-587500 117500 582500 112500 2500 L
-592500 112500 592500 72500 2500 L
-597500 117500 592500 112500 2500 L
-537500 82500 537500 72500 2500 L
-487500 87500 487500 72500 2500 L
-402500 112500 407500 117500 2500 L
-402500 72500 402500 112500 2500 L
-592500 245000 592500 360000 4500 L
-405000 342500 405000 360000 4500 L
-475000 370000 475000 342500 4500 L
-490000 330000 490000 342500 4500 L
-560000 360000 560000 342500 4500 L
-550000 245000 550000 292500 4500 L
-602500 245000 602500 260000 4500 L
-540000 292500 540000 307500 4500 L
-540000 260000 540000 245000 4500 L
-602500 292500 602500 307500 4500 L
-602500 260000 602500 277500 4500 L
-602500 277500 612500 287500 4500 L
-255000 152500 255000 120000 1000 L
-265000 120000 265000 57500 1000 L
-250000 130000 250000 35000 1000 L
-250000 35000 250000 32500 1000 L
-250000 32500 255000 27500 1000 L
-265000 152500 265000 130000 1000 L
-260000 162500 260000 105000 1000 L
-245000 105000 245000 57500 1000 L
-270000 32500 265000 27500 1000 L
-270000 162500 270000 32500 1000 L
-275000 152500 275000 95000 1000 L
-275000 95000 280000 90000 1000 L
-280000 90000 280000 32500 1000 L
-280000 32500 275000 27500 1000 L
-280000 95000 290000 85000 1000 L
-290000 85000 290000 32500 1000 L
-290000 32500 285000 27500 1000 L
-280000 162500 280000 95000 1000 L
-285000 152500 285000 120000 1000 L
-300000 120000 300000 32500 1000 L
-300000 32500 295000 27500 1000 L
-310000 125000 310000 32500 1000 L
-310000 32500 305000 27500 1000 L
-290000 162500 290000 125000 1000 L
-322500 35000 315000 27500 1000 L
-295000 152500 295000 137500 1000 L
-322500 137500 322500 35000 1000 L
-140000 255000 145000 250000 1000 L
-90500 249000 90500 305500 1000 L
-81500 240000 90500 249000 1000 L
-140000 265000 140000 255000 1000 L
-150000 265000 150000 255000 1000 L
-150000 255000 155000 250000 1000 L
-155000 250000 155000 125000 1000 L
-160000 265000 160000 255000 1000 L
-160000 255000 165000 250000 1000 L
-165000 250000 165000 170000 1000 L
-165000 170000 162500 167500 1000 L
-162500 167500 160000 165000 1000 L
-160000 165000 160000 100000 1000 L
-170000 265000 170000 255000 1000 L
-170000 255000 175000 250000 1000 L
-175000 250000 175000 160000 1000 L
-175000 160000 170000 155000 1000 L
-170000 155000 170000 142500 1000 L
-180000 265000 180000 255000 1000 L
-180000 255000 185000 250000 1000 L
-185000 250000 185000 160000 1000 L
-185000 160000 180000 155000 1000 L
-180000 155000 180000 132500 1000 L
-190000 265000 190000 255000 1000 L
-190000 255000 195000 250000 1000 L
-195000 250000 195000 160000 1000 L
-195000 160000 192500 157500 1000 L
-192500 157500 190000 155000 1000 L
-190000 155000 190000 105000 1000 L
-200000 265000 200000 255000 1000 L
-270000 255000 265000 250000 1000 L
-265000 250000 265000 182500 1000 L
-265000 182500 270000 177500 1000 L
-270000 177500 270000 172500 1000 L
-270000 172500 265000 167500 1000 L
-265000 167500 265000 152500 1000 L
-322500 245000 322500 260000 2500 L
-350000 250000 350000 235000 1000 L
-257500 165000 257500 200000 1000 L
-257500 200000 257500 250000 1000 L
-210000 250000 210000 265000 1000 L
-260000 162500 257500 165000 1000 L
-360000 235000 360000 250000 1000 L
-360000 250000 360000 252500 1000 L
-370000 290000 370000 272500 1000 L
-370000 272500 365000 267500 1000 L
-365000 267500 365000 220000 1000 L
-385000 240000 385000 277500 1000 L
-45000 5000 675000 5000 100 L
-70000 315000 70000 300000 2500 L
-70000 300000 72500 297500 2500 L
-72500 297500 72500 287500 2500 L
-72500 287500 70000 285000 2500 L
-70000 285000 70000 270000 2500 L
-70000 270000 72500 267500 2500 L
-70000 315000 70000 385000 2500 L
-105000 162500 96500 171000 1000 L
-96500 171000 82500 171000 1000 L
-78000 11500 79500 11500 400 L
-77500 11000 78000 11500 400 L
-77500 8000 77500 11000 400 L
-77500 8000 78000 7500 400 L
-78000 7500 79500 7500 400 L
-80701 8000 80701 11000 400 L
-80701 8000 81201 7500 400 L
-81201 7500 82201 7500 400 L
-82201 7500 82701 8000 400 L
-82701 8000 82701 11000 400 L
-82201 11500 82701 11000 400 L
-81201 11500 82201 11500 400 L
-80701 11000 81201 11500 400 L
-83902 7500 83902 11500 400 L
-83902 7500 85402 9000 400 L
-85402 9000 86902 7500 400 L
-86902 7500 86902 11500 400 L
-88603 7500 88603 11500 400 L
-88103 7500 90103 7500 400 L
-90103 7500 90603 8000 400 L
-90603 8000 90603 9000 400 L
-90103 9500 90603 9000 400 L
-88603 9500 90103 9500 400 L
-91804 8000 91804 11000 400 L
-91804 8000 92304 7500 400 L
-92304 7500 93304 7500 400 L
-93304 7500 93804 8000 400 L
-93804 8000 93804 11000 400 L
-93304 11500 93804 11000 400 L
-92304 11500 93304 11500 400 L
-91804 11000 92304 11500 400 L
-95005 7500 95005 11500 400 L
-95005 7500 95005 8000 400 L
-95005 8000 97505 10500 400 L
-97505 7500 97505 11500 400 L
-98706 9500 100206 9500 400 L
-98706 11500 100706 11500 400 L
-98706 7500 98706 11500 400 L
-98706 7500 100706 7500 400 L
-101907 7500 101907 11500 400 L
-101907 7500 101907 8000 400 L
-101907 8000 104407 10500 400 L
-104407 7500 104407 11500 400 L
-105608 7500 107608 7500 400 L
-106608 7500 106608 11500 400 L
-77500 15500 77500 19000 400 L
-77500 15500 78000 15000 400 L
-78000 15000 79500 15000 400 L
-79500 15000 80000 15500 400 L
-80000 15500 80000 19000 400 L
-77500 17000 80000 17000 400 L
-81201 15000 82201 15000 400 L
-81701 15000 81701 19000 400 L
-81201 19000 82201 19000 400 L
-83902 19000 85402 19000 400 L
-83402 18500 83902 19000 400 L
-83402 15500 83402 18500 400 L
-83402 15500 83902 15000 400 L
-83902 15000 85402 15000 400 L
-86603 17000 88603 17000 400 L
-90304 19000 91304 19000 400 L
-90804 15000 90804 19000 400 L
-89804 16000 90804 15000 400 L
-92505 19000 93005 19000 400 L
-94206 15500 94706 15000 400 L
-94706 15000 95706 15000 400 L
-95706 15000 96206 15500 400 L
-96206 15500 96206 18500 400 L
-95706 19000 96206 18500 400 L
-94706 19000 95706 19000 400 L
-94206 18500 94706 19000 400 L
-94706 17000 96206 17000 400 L
-97407 19000 97907 19000 400 L
-99108 18500 99608 19000 400 L
-99108 15500 99108 18500 400 L
-99108 15500 99608 15000 400 L
-99608 15000 100608 15000 400 L
-100608 15000 101108 15500 400 L
-101108 15500 101108 18500 400 L
-100608 19000 101108 18500 400 L
-99608 19000 100608 19000 400 L
-99108 18000 101108 16000 400 L
-77500 26000 78000 26500 400 L
-77500 23000 78000 22500 400 L
-77500 23000 77500 26000 400 L
-79701 24500 81201 24500 400 L
-79201 25000 79701 24500 400 L
-79201 25000 79201 26000 400 L
-79201 26000 79701 26500 400 L
-79701 26500 81201 26500 400 L
-82402 22500 82902 23000 400 L
-82902 23000 82902 26000 400 L
-82402 26500 82902 26000 400 L
-85903 23000 86403 22500 400 L
-86403 22500 87903 22500 400 L
-87903 22500 88403 23000 400 L
-88403 23000 88403 24000 400 L
-85903 26500 88403 24000 400 L
-85903 26500 88403 26500 400 L
-89604 26000 90104 26500 400 L
-89604 23000 89604 26000 400 L
-89604 23000 90104 22500 400 L
-90104 22500 91104 22500 400 L
-91104 22500 91604 23000 400 L
-91604 23000 91604 26000 400 L
-91104 26500 91604 26000 400 L
-90104 26500 91104 26500 400 L
-89604 25500 91604 23500 400 L
-92805 26000 93305 26500 400 L
-92805 23000 92805 26000 400 L
-92805 23000 93305 22500 400 L
-93305 22500 94305 22500 400 L
-94305 22500 94805 23000 400 L
-94805 23000 94805 26000 400 L
-94305 26500 94805 26000 400 L
-93305 26500 94305 26500 400 L
-92805 25500 94805 23500 400 L
-96006 23000 96506 22500 400 L
-96506 22500 97506 22500 400 L
-97506 22500 98006 23000 400 L
-98006 23000 98006 26000 400 L
-97506 26500 98006 26000 400 L
-96506 26500 97506 26500 400 L
-96006 26000 96506 26500 400 L
-96506 24500 98006 24500 400 L
-101007 22500 101007 26500 400 L
-101007 26500 102507 25000 400 L
-102507 25000 104007 26500 400 L
-104007 22500 104007 26500 400 L
-106708 24500 107208 25000 400 L
-105708 24500 106708 24500 400 L
-105208 25000 105708 24500 400 L
-105208 25000 105208 26000 400 L
-105208 26000 105708 26500 400 L
-107208 24500 107208 26000 400 L
-107208 26000 107708 26500 400 L
-105708 26500 106708 26500 400 L
-106708 26500 107208 26000 400 L
-108909 22500 108909 26000 400 L
-108909 26000 109409 26500 400 L
-110910 22500 110910 26000 400 L
-110910 26000 111410 26500 400 L
-110410 24000 111410 24000 400 L
-112911 26500 114411 26500 400 L
-112411 26000 112911 26500 400 L
-112411 25000 112411 26000 400 L
-112411 25000 112911 24500 400 L
-112911 24500 113911 24500 400 L
-113911 24500 114411 25000 400 L
-112411 25500 114411 25500 400 L
-114411 25000 114411 25500 400 L
-116112 25000 116112 26500 400 L
-116112 25000 116612 24500 400 L
-116612 24500 117612 24500 400 L
-115612 24500 116112 25000 400 L
-120613 22500 120613 26500 400 L
-120613 22500 122613 22500 400 L
-120613 24500 122113 24500 400 L
-124314 26500 125814 26500 400 L
-123814 26000 124314 26500 400 L
-123814 25000 123814 26000 400 L
-123814 25000 124314 24500 400 L
-124314 24500 125314 24500 400 L
-125314 24500 125814 25000 400 L
-123814 25500 125814 25500 400 L
-125814 25000 125814 25500 400 L
-127515 22500 127515 26000 400 L
-127515 26000 128015 26500 400 L
-127015 24000 128015 24000 400 L
-129516 22500 129516 26000 400 L
-129516 26000 130016 26500 400 L
-129016 24000 130016 24000 400 L
-131517 26500 133017 26500 400 L
-131017 26000 131517 26500 400 L
-131017 25000 131017 26000 400 L
-131017 25000 131517 24500 400 L
-131517 24500 132517 24500 400 L
-132517 24500 133017 25000 400 L
-131017 25500 133017 25500 400 L
-133017 25000 133017 25500 400 L
-134718 25000 134718 26500 400 L
-134718 25000 135218 24500 400 L
-135218 24500 136218 24500 400 L
-134218 24500 134718 25000 400 L
-139219 22500 139219 26500 400 L
-139219 26500 141219 26500 400 L
-143920 24500 144420 25000 400 L
-142920 24500 143920 24500 400 L
-142420 25000 142920 24500 400 L
-142420 25000 142420 26000 400 L
-142420 26000 142920 26500 400 L
-144420 24500 144420 26000 400 L
-144420 26000 144920 26500 400 L
-142920 26500 143920 26500 400 L
-143920 26500 144420 26000 400 L
-147621 24500 148121 25000 400 L
-146621 24500 147621 24500 400 L
-146121 25000 146621 24500 400 L
-146121 25000 146121 26000 400 L
-146121 26000 146621 26500 400 L
-146621 26500 147621 26500 400 L
-147621 26500 148121 26000 400 L
-146121 27500 146621 28000 400 L
-146621 28000 147621 28000 400 L
-147621 28000 148121 27500 400 L
-148121 24500 148121 27500 400 L
-149822 26500 151322 26500 400 L
-149322 26000 149822 26500 400 L
-149322 25000 149322 26000 400 L
-149322 25000 149822 24500 400 L
-149822 24500 150822 24500 400 L
-150822 24500 151322 25000 400 L
-149322 25500 151322 25500 400 L
-151322 25000 151322 25500 400 L
-153023 26500 154523 26500 400 L
-154523 26500 155023 26000 400 L
-154523 25500 155023 26000 400 L
-153023 25500 154523 25500 400 L
-152523 25000 153023 25500 400 L
-152523 25000 153023 24500 400 L
-153023 24500 154523 24500 400 L
-154523 24500 155023 25000 400 L
-152523 26000 153023 26500 400 L
-102500 30000 102500 34000 400 L
-102500 30000 104500 30000 400 L
-102500 32000 104000 32000 400 L
-106201 34000 107701 34000 400 L
-105701 33500 106201 34000 400 L
-105701 32500 105701 33500 400 L
-105701 32500 106201 32000 400 L
-106201 32000 107201 32000 400 L
-107201 32000 107701 32500 400 L
-105701 33000 107701 33000 400 L
-107701 32500 107701 33000 400 L
-109402 32500 109402 34000 400 L
-109402 32500 109902 32000 400 L
-109902 32000 110902 32000 400 L
-108902 32000 109402 32500 400 L
-112603 32500 112603 34000 400 L
-112603 32500 113103 32000 400 L
-113103 32000 113603 32000 400 L
-113603 32000 114103 32500 400 L
-114103 32500 114103 34000 400 L
-112103 32000 112603 32500 400 L
-116804 32000 117304 32500 400 L
-115804 32000 116804 32000 400 L
-115304 32500 115804 32000 400 L
-115304 32500 115304 33500 400 L
-115304 33500 115804 34000 400 L
-117304 32000 117304 33500 400 L
-117304 33500 117804 34000 400 L
-115804 34000 116804 34000 400 L
-116804 34000 117304 33500 400 L
-119505 32500 119505 34000 400 L
-119505 32500 120005 32000 400 L
-120005 32000 120505 32000 400 L
-120505 32000 121005 32500 400 L
-121005 32500 121005 34000 400 L
-119005 32000 119505 32500 400 L
-124206 30000 124206 34000 400 L
-123706 34000 124206 33500 400 L
-122706 34000 123706 34000 400 L
-122206 33500 122706 34000 400 L
-122206 32500 122206 33500 400 L
-122206 32500 122706 32000 400 L
-122706 32000 123706 32000 400 L
-123706 32000 124206 32500 400 L
-125407 32500 125407 33500 400 L
-125407 32500 125907 32000 400 L
-125907 32000 126907 32000 400 L
-126907 32000 127407 32500 400 L
-127407 32500 127407 33500 400 L
-126907 34000 127407 33500 400 L
-125907 34000 126907 34000 400 L
-125407 33500 125907 34000 400 L
-130908 30000 130908 34000 400 L
-130408 30000 132408 30000 400 L
-132408 30000 132908 30500 400 L
-132908 30500 132908 31500 400 L
-132408 32000 132908 31500 400 L
-130908 32000 132408 32000 400 L
-134609 34000 136109 34000 400 L
-134109 33500 134609 34000 400 L
-134109 32500 134109 33500 400 L
-134109 32500 134609 32000 400 L
-134609 32000 135609 32000 400 L
-135609 32000 136109 32500 400 L
-134109 33000 136109 33000 400 L
-136109 32500 136109 33000 400 L
-137810 34000 139310 34000 400 L
-139310 34000 139810 33500 400 L
-139310 33000 139810 33500 400 L
-137810 33000 139310 33000 400 L
-137310 32500 137810 33000 400 L
-137310 32500 137810 32000 400 L
-137810 32000 139310 32000 400 L
-139310 32000 139810 32500 400 L
-137310 33500 137810 34000 400 L
-141511 34000 143011 34000 400 L
-143011 34000 143511 33500 400 L
-143011 33000 143511 33500 400 L
-141511 33000 143011 33000 400 L
-141011 32500 141511 33000 400 L
-141011 32500 141511 32000 400 L
-141511 32000 143011 32000 400 L
-143011 32000 143511 32500 400 L
-141011 33500 141511 34000 400 L
-144712 32000 144712 33500 400 L
-144712 33500 145212 34000 400 L
-145212 34000 146212 34000 400 L
-146212 34000 146712 33500 400 L
-146712 32000 146712 33500 400 L
-148413 30000 148413 33500 400 L
-148413 33500 148913 34000 400 L
-147913 31500 148913 31500 400 L
-150414 30000 150414 33500 400 L
-150414 33500 150914 34000 400 L
-149914 31500 150914 31500 400 L
-151915 32500 151915 33500 400 L
-151915 32500 152415 32000 400 L
-152415 32000 153415 32000 400 L
-153415 32000 153915 32500 400 L
-153915 32500 153915 33500 400 L
-153415 34000 153915 33500 400 L
-152415 34000 153415 34000 400 L
-151915 33500 152415 34000 400 L
-335000 62500 6000 3500 PVSQ
-335000 22500 6000 3500 PVR
-297500 342500 6000 3500 PVSQ
-297500 372500 6000 3500 PVR
-415000 360000 8000 4200 PVSQ
-405000 360000 8000 4200 PVR
-395000 360000 8000 4200 PVR
-447500 122500 6000 3500 PVSQ
-447500 82500 6000 3500 PVR
-397500 117500 6000 3500 PVSQ
-407500 117500 6000 3500 PVR
-417500 117500 6000 3500 PVR
-427500 117500 6000 3500 PVR
-427500 87500 6000 3500 PVR
-417500 87500 6000 3500 PVR
-407500 87500 6000 3500 PVR
-397500 87500 6000 3500 PVR
-557500 122500 6000 3500 PVSQ
-557500 82500 6000 3500 PVR
-537500 62500 6000 3500 PVSQ
-537500 22500 6000 3500 PVR
-487500 57500 6000 3500 PVSQ
-497500 57500 6000 3500 PVR
-507500 57500 6000 3500 PVR
-517500 57500 6000 3500 PVR
-517500 27500 6000 3500 PVR
-507500 27500 6000 3500 PVR
-497500 27500 6000 3500 PVR
-487500 27500 6000 3500 PVR
-467500 62500 6000 3500 PVSQ
-467500 22500 6000 3500 PVR
-467500 122500 6000 3500 PVSQ
-467500 82500 6000 3500 PVR
-537500 122500 6000 3500 PVSQ
-537500 82500 6000 3500 PVR
-487500 117500 6000 3500 PVSQ
-497500 117500 6000 3500 PVR
-507500 117500 6000 3500 PVR
-517500 117500 6000 3500 PVR
-517500 87500 6000 3500 PVR
-507500 87500 6000 3500 PVR
-497500 87500 6000 3500 PVR
-487500 87500 6000 3500 PVR
-397500 57500 6000 3500 PVSQ
-407500 57500 6000 3500 PVR
-417500 57500 6000 3500 PVR
-427500 57500 6000 3500 PVR
-427500 27500 6000 3500 PVR
-417500 27500 6000 3500 PVR
-407500 27500 6000 3500 PVR
-397500 27500 6000 3500 PVR
-557500 62500 6000 3500 PVSQ
-557500 22500 6000 3500 PVR
-157500 342500 6000 3500 PVSQ
-157500 372500 6000 3500 PVR
-57500 239500 6000 3500 PVSQ
-57500 249500 6000 3500 PVR
-530000 245000 8000 4200 PVSQ
-540000 245000 8000 4200 PVR
-550000 245000 8000 4200 PVR
-245000 57500 6000 3500 PVSQ
-255000 57500 6000 3500 PVR
-265000 57500 6000 3500 PVR
-275000 57500 6000 3500 PVR
-285000 57500 6000 3500 PVR
-295000 57500 6000 3500 PVR
-305000 57500 6000 3500 PVR
-315000 57500 6000 3500 PVR
-315000 27500 6000 3500 PVR
-305000 27500 6000 3500 PVR
-295000 27500 6000 3500 PVR
-285000 27500 6000 3500 PVR
-275000 27500 6000 3500 PVR
-265000 27500 6000 3500 PVR
-255000 27500 6000 3500 PVR
-245000 27500 6000 3500 PVR
-317500 372500 6000 3500 PVSQ
-327500 372500 6000 3500 PVR
-420000 205000 7000 4200 PVSQ
-430000 205000 7000 4200 PVR
-420000 215000 7000 4200 PVR
-430000 215000 7000 4200 PVR
-420000 225000 7000 4200 PVR
-430000 225000 7000 4200 PVR
-420000 235000 7000 4200 PVR
-430000 235000 7000 4200 PVR
-140000 265000 6000 3500 PVSQ
-150000 265000 6000 3500 PVR
-160000 265000 6000 3500 PVR
-170000 265000 6000 3500 PVR
-180000 265000 6000 3500 PVR
-190000 265000 6000 3500 PVR
-200000 265000 6000 3500 PVR
-210000 265000 6000 3500 PVR
-220000 265000 6000 3500 PVR
-230000 265000 6000 3500 PVR
-240000 265000 6000 3500 PVR
-250000 265000 6000 3500 PVR
-250000 205000 6000 3500 PVR
-240000 205000 6000 3500 PVR
-230000 205000 6000 3500 PVR
-220000 205000 6000 3500 PVR
-210000 205000 6000 3500 PVR
-200000 205000 6000 3500 PVR
-190000 205000 6000 3500 PVR
-180000 205000 6000 3500 PVR
-170000 205000 6000 3500 PVR
-160000 205000 6000 3500 PVR
-150000 205000 6000 3500 PVR
-140000 205000 6000 3500 PVR
-280000 235000 6000 3500 PVSQ
-290000 235000 6000 3500 PVR
-300000 235000 6000 3500 PVR
-310000 235000 6000 3500 PVR
-320000 235000 6000 3500 PVR
-330000 235000 6000 3500 PVR
-340000 235000 6000 3500 PVR
-350000 235000 6000 3500 PVR
-360000 235000 6000 3500 PVR
-370000 235000 6000 3500 PVR
-380000 235000 6000 3500 PVR
-390000 235000 6000 3500 PVR
-390000 205000 6000 3500 PVR
-380000 205000 6000 3500 PVR
-370000 205000 6000 3500 PVR
-360000 205000 6000 3500 PVR
-350000 205000 6000 3500 PVR
-340000 205000 6000 3500 PVR
-330000 205000 6000 3500 PVR
-320000 205000 6000 3500 PVR
-310000 205000 6000 3500 PVR
-300000 205000 6000 3500 PVR
-290000 205000 6000 3500 PVR
-280000 205000 6000 3500 PVR
-77500 124000 12000 10000 PVR
-77500 218000 12000 10000 PVR
-82500 151000 7000 4200 PVR
-72500 156000 7000 4200 PVR
-82500 161000 7000 4200 PVR
-72500 166000 7000 4200 PVR
-82500 171000 7000 4200 PVR
-72500 176000 7000 4200 PVR
-82500 181000 7000 4200 PVR
-72500 186000 7000 4200 PVR
-82500 191000 7000 4200 PVSQ
-81500 239500 6000 3500 PVSQ
-81500 249500 6000 3500 PVR
-495000 220000 7000 4200 PVSQ
-470000 220000 7000 4200 PVR
-85000 330000 6000 3500 PVSQ
-85000 360000 6000 3500 PVR
-582500 245000 8000 4200 PVSQ
-592500 245000 8000 4200 PVR
-602500 245000 8000 4200 PVR
-535000 210000 6000 3500 PVSQ
-545000 210000 6000 3500 PVR
-355000 62500 6000 3500 PVSQ
-355000 22500 6000 3500 PVR
-105000 330000 7000 4200 PVSQ
-115000 330000 7000 4200 PVR
-172500 320000 6000 3500 PVSQ
-182500 320000 6000 3500 PVR
-192500 320000 6000 3500 PVR
-202500 320000 6000 3500 PVR
-202500 290000 6000 3500 PVR
-192500 290000 6000 3500 PVR
-182500 290000 6000 3500 PVR
-172500 290000 6000 3500 PVR
-495000 277500 7000 4200 PVSQ
-470000 277500 7000 4200 PVR
-570000 360000 8000 4200 PVSQ
-560000 360000 8000 4200 PVR
-550000 360000 8000 4200 PVR
-280000 257500 6000 3500 PVSQ
-280000 297500 6000 3500 PVR
-116000 280000 6000 3500 PVSQ
-76000 280000 6000 3500 PVR
-490000 370000 6000 3500 PVSQ
-475000 370000 6000 3500 PVR
-530000 292500 8000 4200 PVSQ
-540000 292500 8000 4200 PVR
-550000 292500 8000 4200 PVR
-652500 47500 6000 3500 PVSQ
-652500 57500 6000 3500 PVR
-652500 67500 6000 3500 PVR
-652500 77500 6000 3500 PVR
-652500 87500 6000 3500 PVR
-652500 97500 6000 3500 PVR
-652500 107500 6000 3500 PVR
-652500 117500 6000 3500 PVR
-652500 127500 6000 3500 PVR
-652500 137500 6000 3500 PVR
-652500 147500 6000 3500 PVR
-652500 157500 6000 3500 PVR
-652500 167500 6000 3500 PVR
-652500 177500 6000 3500 PVR
-652500 187500 6000 3500 PVR
-652500 197500 6000 3500 PVR
-652500 207500 6000 3500 PVR
-652500 217500 6000 3500 PVR
-652500 227500 6000 3500 PVR
-652500 237500 6000 3500 PVR
-652500 247500 6000 3500 PVR
-652500 257500 6000 3500 PVR
-652500 267500 6000 3500 PVR
-652500 277500 6000 3500 PVR
-652500 287500 6000 3500 PVR
-652500 297500 6000 3500 PVR
-652500 307500 6000 3500 PVR
-652500 317500 6000 3500 PVR
-652500 327500 6000 3500 PVR
-652500 337500 6000 3500 PVR
-652500 347500 6000 3500 PVR
-652500 357500 6000 3500 PVR
-642500 47500 6000 3500 PVR
-642500 57500 6000 3500 PVR
-642500 67500 6000 3500 PVR
-642500 77500 6000 3500 PVR
-642500 87500 6000 3500 PVR
-642500 97500 6000 3500 PVR
-642500 107500 6000 3500 PVR
-642500 117500 6000 3500 PVR
-642500 127500 6000 3500 PVR
-642500 137500 6000 3500 PVR
-642500 147500 6000 3500 PVR
-642500 157500 6000 3500 PVR
-642500 167500 6000 3500 PVR
-642500 177500 6000 3500 PVR
-642500 187500 6000 3500 PVR
-642500 197500 6000 3500 PVR
-642500 207500 6000 3500 PVR
-642500 217500 6000 3500 PVR
-642500 227500 6000 3500 PVR
-642500 237500 6000 3500 PVR
-642500 247500 6000 3500 PVR
-642500 257500 6000 3500 PVR
-642500 267500 6000 3500 PVR
-642500 277500 6000 3500 PVR
-642500 287500 6000 3500 PVR
-642500 297500 6000 3500 PVR
-642500 307500 6000 3500 PVR
-642500 317500 6000 3500 PVR
-642500 327500 6000 3500 PVR
-642500 337500 6000 3500 PVR
-642500 347500 6000 3500 PVR
-642500 357500 6000 3500 PVR
-632500 47500 6000 3500 PVR
-632500 57500 6000 3500 PVR
-632500 67500 6000 3500 PVR
-632500 77500 6000 3500 PVR
-632500 87500 6000 3500 PVR
-632500 97500 6000 3500 PVR
-632500 107500 6000 3500 PVR
-632500 117500 6000 3500 PVR
-632500 127500 6000 3500 PVR
-632500 137500 6000 3500 PVR
-632500 147500 6000 3500 PVR
-632500 157500 6000 3500 PVR
-632500 167500 6000 3500 PVR
-632500 177500 6000 3500 PVR
-632500 187500 6000 3500 PVR
-632500 197500 6000 3500 PVR
-632500 207500 6000 3500 PVR
-632500 217500 6000 3500 PVR
-632500 227500 6000 3500 PVR
-632500 237500 6000 3500 PVR
-632500 247500 6000 3500 PVR
-632500 257500 6000 3500 PVR
-632500 267500 6000 3500 PVR
-632500 277500 6000 3500 PVR
-632500 287500 6000 3500 PVR
-632500 297500 6000 3500 PVR
-632500 307500 6000 3500 PVR
-632500 317500 6000 3500 PVR
-632500 327500 6000 3500 PVR
-632500 337500 6000 3500 PVR
-632500 347500 6000 3500 PVR
-632500 357500 6000 3500 PVR
-662500 377500 12000 8000 PVR
-662500 27500 12000 8000 PVR
-332500 260000 6000 3500 PVSQ
-322500 260000 6000 3500 PVR
-447500 62500 6000 3500 PVSQ
-447500 22500 6000 3500 PVR
-300000 297500 6000 3500 PVSQ
-300000 257500 6000 3500 PVR
-475000 330000 6000 3500 PVSQ
-490000 330000 6000 3500 PVR
-55000 269500 7000 4200 PVSQ
-55000 287200 7000 4200 PVR
-64800 264600 7000 5200 PVR
-64800 292200 7000 5200 PVR
-582500 292500 8000 4200 PVSQ
-592500 292500 8000 4200 PVR
-602500 292500 8000 4200 PVR
-562500 187500 6000 3500 PVSQ
-592500 187500 6000 3500 PVR
-577500 117500 6000 3500 PVSQ
-587500 117500 6000 3500 PVR
-597500 117500 6000 3500 PVR
-607500 117500 6000 3500 PVR
-607500 87500 6000 3500 PVR
-597500 87500 6000 3500 PVR
-587500 87500 6000 3500 PVR
-577500 87500 6000 3500 PVR
-582500 210000 8000 4200 PVSQ
-592500 210000 8000 4200 PVR
-602500 210000 8000 4200 PVR
-577500 57500 6000 3500 PVSQ
-587500 57500 6000 3500 PVR
-597500 57500 6000 3500 PVR
-607500 57500 6000 3500 PVR
-607500 27500 6000 3500 PVR
-597500 27500 6000 3500 PVR
-587500 27500 6000 3500 PVR
-577500 27500 6000 3500 PVR
-322500 290000 6000 3500 PVSQ
-332500 290000 6000 3500 PVR
-87500 57500 6000 3500 PVSQ
-97500 62500 6000 3500 PVR
-87500 67500 6000 3500 PVR
-97500 72500 6000 3500 PVR
-87500 77500 6000 3500 PVR
-97500 82500 6000 3500 PVR
-87500 87500 6000 3500 PVR
-97500 92500 6000 3500 PVR
-62500 52500 14800 12800 PVR
-62500 97600 14800 12800 PVR
-74500 44500 8000 6000 PVR
-74500 105600 8000 6000 PVR
-360000 290000 6000 3500 PVSQ
-370000 290000 6000 3500 PVR
-380000 290000 6000 3500 PVR
-390000 290000 6000 3500 PVR
-390000 260000 6000 3500 PVR
-380000 260000 6000 3500 PVR
-370000 260000 6000 3500 PVR
-360000 260000 6000 3500 PVR
-317500 342500 6000 3500 PVSQ
-327500 342500 6000 3500 PVR
-137500 342500 6000 3500 PVSQ
-127500 342500 6000 3500 PVR
-540000 162500 6000 3500 PVSQ
-535000 152500 6000 3500 PVR
-530000 162500 6000 3500 PVR
-525000 152500 6000 3500 PVR
-520000 162500 6000 3500 PVR
-515000 152500 6000 3500 PVR
-510000 162500 6000 3500 PVR
-505000 152500 6000 3500 PVR
-500000 162500 6000 3500 PVR
-495000 152500 6000 3500 PVR
-490000 162500 6000 3500 PVR
-485000 152500 6000 3500 PVR
-480000 162500 6000 3500 PVR
-475000 152500 6000 3500 PVR
-470000 162500 6000 3500 PVR
-465000 152500 6000 3500 PVR
-460000 162500 6000 3500 PVR
-455000 152500 6000 3500 PVR
-450000 162500 6000 3500 PVR
-445000 152500 6000 3500 PVR
-440000 162500 6000 3500 PVR
-435000 152500 6000 3500 PVR
-430000 162500 6000 3500 PVR
-425000 152500 6000 3500 PVR
-420000 162500 6000 3500 PVR
-415000 152500 6000 3500 PVR
-410000 162500 6000 3500 PVR
-405000 152500 6000 3500 PVR
-400000 162500 6000 3500 PVR
-395000 152500 6000 3500 PVR
-390000 162500 6000 3500 PVR
-385000 152500 6000 3500 PVR
-380000 162500 6000 3500 PVR
-375000 152500 6000 3500 PVR
-370000 162500 6000 3500 PVR
-365000 152500 6000 3500 PVR
-340000 162500 6000 3500 PVR
-335000 152500 6000 3500 PVR
-330000 162500 6000 3500 PVR
-325000 152500 6000 3500 PVR
-320000 162500 6000 3500 PVR
-315000 152500 6000 3500 PVR
-310000 162500 6000 3500 PVR
-305000 152500 6000 3500 PVR
-300000 162500 6000 3500 PVR
-295000 152500 6000 3500 PVR
-290000 162500 6000 3500 PVR
-285000 152500 6000 3500 PVR
-280000 162500 6000 3500 PVR
-275000 152500 6000 3500 PVR
-270000 162500 6000 3500 PVR
-265000 152500 6000 3500 PVR
-260000 162500 6000 3500 PVR
-255000 152500 6000 3500 PVR
-250000 162500 6000 3500 PVR
-245000 152500 6000 3500 PVR
-240000 162500 6000 3500 PVR
-235000 152500 6000 3500 PVR
-230000 162500 6000 3500 PVR
-225000 152500 6000 3500 PVR
-220000 162500 6000 3500 PVR
-215000 152500 6000 3500 PVR
-210000 162500 6000 3500 PVR
-205000 152500 6000 3500 PVR
-200000 162500 6000 3500 PVR
-195000 152500 6000 3500 PVR
-190000 162500 6000 3500 PVR
-185000 152500 6000 3500 PVR
-180000 162500 6000 3500 PVR
-175000 152500 6000 3500 PVR
-170000 162500 6000 3500 PVR
-165000 152500 6000 3500 PVR
-573000 157500 8000 6000 PVR
-352500 157500 12000 10000 PVR
-132500 157500 12000 10000 PVR
-137500 372500 6000 3500 PVSQ
-127500 372500 6000 3500 PVR
-172500 372500 6000 3500 PVSQ
-182500 372500 6000 3500 PVR
-192500 372500 6000 3500 PVR
-202500 372500 6000 3500 PVR
-212500 372500 6000 3500 PVR
-222500 372500 6000 3500 PVR
-232500 372500 6000 3500 PVR
-242500 372500 6000 3500 PVR
-252500 372500 6000 3500 PVR
-262500 372500 6000 3500 PVR
-272500 372500 6000 3500 PVR
-282500 372500 6000 3500 PVR
-282500 342500 6000 3500 PVR
-272500 342500 6000 3500 PVR
-262500 342500 6000 3500 PVR
-252500 342500 6000 3500 PVR
-242500 342500 6000 3500 PVR
-232500 342500 6000 3500 PVR
-222500 342500 6000 3500 PVR
-212500 342500 6000 3500 PVR
-202500 342500 6000 3500 PVR
-192500 342500 6000 3500 PVR
-182500 342500 6000 3500 PVR
-172500 342500 6000 3500 PVR
-115500 305500 6000 3500 PVSQ
-75500 305500 6000 3500 PVR
-57500 27500 12000 8000 PVR
-57500 376200 12000 8000 PVR
-662500 27500 12000 8000 PVR
-662500 376200 12000 8000 PVR
-475000 342500 6000 3500 PVR
-490000 342500 6000 3500 PVR
-560000 342500 6000 3500 PVR
-602500 260000 6000 3500 PVR
-540000 260000 6000 3500 PVR
-540000 307500 6000 3500 PVR
-602500 307500 6000 3500 PVR
-592500 277500 6000 3500 PVR
-612500 287500 6000 3500 PVR
-540000 327500 6000 3500 PVR
-395000 317500 6000 3500 PVR
-475000 317500 6000 3500 PVR
-622500 342500 6000 3500 PVR
-612500 267500 6000 3500 PVR
-592500 222500 6000 3500 PVR
-462500 342500 6000 3500 PVR
-562500 220000 6000 3500 PVR
-622500 102500 6000 3500 PVR
-647500 102500 6000 3500 PVR
-567500 107500 6000 3500 PVR
-597500 47500 6000 3500 PVR
-537500 47500 6000 3500 PVR
-487500 47500 6000 3500 PVR
-517500 40000 6000 3500 PVR
-577500 40000 6000 3500 PVR
-402500 72500 6000 3500 PVR
-487500 72500 6000 3500 PVR
-537500 72500 6000 3500 PVR
-592500 72500 6000 3500 PVR
-497500 95000 6000 3500 PVR
-140000 95000 6000 3500 PVR
-175000 95000 6000 3500 PVR
-237500 95000 6000 3500 PVR
-322500 317500 6000 3500 PVR
-327500 392500 6000 3500 PVR
-240000 245000 6000 3500 PVR
-270000 245000 6000 3500 PVR
-140000 245000 6000 3500 PVR
-130000 280000 6000 3500 PVR
-130000 290000 6000 3500 PVR
-252500 287500 4000 2000 PVR
-427500 100000 6000 3500 PVR
-525000 100000 6000 3500 PVR
-315000 100000 6000 3500 PVR
-447500 95000 6000 3500 PVR
-202500 305000 6000 3500 PVR
-127500 392500 6000 3500 PVR
-212500 392500 6000 3500 PVR
-272500 392500 6000 3500 PVR
-360000 317500 6000 3500 PVR
-77500 392500 6000 3500 PVR
-487500 107500 4000 2000 PVR
-620000 52500 4000 2000 PVR
-622500 87500 4000 2000 PVR
-537500 107500 4000 2000 PVR
-637500 172500 4000 2000 PVR
-262500 172500 4000 2000 PVR
-597500 65000 4000 2000 PVR
-407500 47500 6000 3500 PVR
-205000 82500 4000 2000 PVR
-402500 235000 4000 2000 PVR
-295000 130000 4000 2000 PVR
-335000 52500 4000 2000 PVR
-527500 22500 4000 2000 PVR
-615000 15000 4000 2000 PVR
-477500 57500 4000 2000 PVR
-622500 35000 4000 2000 PVR
-647500 20000 4000 2000 PVR
-557500 15000 4000 2000 PVR
-502500 15000 4000 2000 PVR
-547500 142500 4000 2000 PVR
-610000 142500 4000 2000 PVR
-615000 130000 4000 2000 PVR
-555000 135000 4000 2000 PVR
-195000 57500 4000 2000 PVR
-242500 360000 4000 2000 PVR
-210000 67500 4000 2000 PVR
-115000 112500 4000 2000 PVR
-507500 107500 4000 2000 PVR
-417500 135000 4000 2000 PVR
-200000 62500 4000 2000 PVR
-512500 80000 4000 2000 PVR
-557500 237500 4000 2000 PVR
-447500 30000 4000 2000 PVR
-355000 130000 4000 2000 PVR
-272500 352500 6000 3500 PVR
-95000 245000 4000 2000 PVR
-115000 245000 4000 2000 PVR
-582500 285000 4000 2000 PVR
-110000 367500 4000 2000 PVR
-182500 385000 4000 2000 PVR
-252500 385000 4000 2000 PVR
-212500 352500 6000 3500 PVR
-232500 352500 6000 3500 PVR
-192500 360000 4000 2000 PVR
-417500 107500 4000 2000 PVR
-447500 107500 4000 2000 PVR
-472500 107500 4000 2000 PVR
-467500 15000 4000 2000 PVR
-255000 120000 4000 2000 PVR
-265000 120000 4000 2000 PVR
-265000 130000 4000 2000 PVR
-250000 130000 4000 2000 PVR
-260000 105000 4000 2000 PVR
-245000 105000 4000 2000 PVR
-285000 120000 4000 2000 PVR
-300000 120000 4000 2000 PVR
-290000 125000 4000 2000 PVR
-310000 125000 4000 2000 PVR
-295000 137500 4000 2000 PVR
-322500 137500 4000 2000 PVR
-145000 137500 4000 2000 PVR
-155000 125000 4000 2000 PVR
-160000 100000 4000 2000 PVR
-300000 100000 4000 2000 PVR
-170000 142500 4000 2000 PVR
-280000 142500 4000 2000 PVR
-180000 132500 4000 2000 PVR
-275000 130000 4000 2000 PVR
-190000 105000 4000 2000 PVR
-270000 105000 4000 2000 PVR
-200000 255000 4000 2000 PVR
-270000 255000 4000 2000 PVR
-322500 245000 6000 3500 PVR
-350000 250000 4000 2000 PVR
-202500 282500 4000 2000 PVR
-220000 282500 4000 2000 PVR
-257500 250000 4000 2000 PVR
-210000 250000 4000 2000 PVR
-257500 197500 4000 2000 PVR
-220000 225000 6000 3500 PVR
-240000 225000 6000 3500 PVR
-300000 212500 4000 2000 PVR
-215000 212500 4000 2000 PVR
-310000 217500 4000 2000 PVR
-225000 217500 4000 2000 PVR
-225000 195000 4000 2000 PVR
-315000 192500 4000 2000 PVR
-150000 187500 4000 2000 PVR
-325000 187500 4000 2000 PVR
-235000 187500 4000 2000 PVR
-360000 252500 4000 2000 PVR
-292500 222500 4000 2000 PVR
-170000 217500 4000 2000 PVR
-210000 230000 4000 2000 PVR
-390000 225000 4000 2000 PVR
-257500 277500 4000 2000 PVR
-385000 277500 4000 2000 PVR
-155000 282500 4000 2000 PVR
-340000 282500 4000 2000 PVR
-230000 182500 4000 2000 PVR
-245000 182500 4000 2000 PVR
-227500 90000 4000 2000 PVR
-255000 90000 4000 2000 PVR
-250000 172500 4000 2000 PVR
-190000 175000 4000 2000 PVR
-180000 170000 4000 2000 PVR
-430000 197500 4000 2000 PVR
-332500 270000 6000 3500 PVR
-290000 265000 4000 2000 PVR
-480000 265000 4000 2000 PVR
-470000 290000 6000 3500 PVR
-462500 282500 4000 2000 PVR
-300000 177500 4000 2000 PVR
-485000 177500 4000 2000 PVR
-305000 85000 4000 2000 PVR
-275000 85000 4000 2000 PVR
-330000 80000 4000 2000 PVR
-285000 80000 4000 2000 PVR
-350000 220000 4000 2000 PVR
-365000 220000 4000 2000 PVR
-355000 385000 4000 2000 PVR
-297500 352500 6000 3500 PVR
-375000 360000 4000 2000 PVR
-107500 147500 4000 2000 PVR
-122000 160500 4000 2000 PVR
-450000 182500 4000 2000 PVR
-262500 352500 4000 2000 PVR
-327500 352500 4000 2000 PVR
-400000 225000 4000 2000 PVR
-405000 215000 4000 2000 PVR
-410000 205000 4000 2000 PVR
-105000 270000 4000 2000 PVR
-415000 272500 4000 2000 PVR
-402500 250000 4000 2000 PVR
-222500 310000 4000 2000 PVR
-402500 310000 4000 2000 PVR
-520000 260000 4000 2000 PVR
-520000 337500 4000 2000 PVR
-210000 322500 4000 2000 PVR
-570000 322500 4000 2000 PVR
-570000 245000 4000 2000 PVR
-530000 327500 4000 2000 PVR
-282500 330000 4000 2000 PVR
-327500 305000 4000 2000 PVR
-49500 330000 4000 2000 PVR
-130000 255000 6000 3500 PVR
-76500 257000 4000 2000 PVR
-90500 305500 4000 2000 PVR
-592500 360000 6000 3500 PVR
-405000 342500 6000 3500 PVR
-335000 62500 800 400 DH
-335000 22500 800 400 DH
-297500 342500 800 400 DH
-297500 372500 800 400 DH
-415000 360000 800 400 DH
-405000 360000 800 400 DH
-395000 360000 800 400 DH
-447500 122500 800 400 DH
-447500 82500 800 400 DH
-397500 117500 800 400 DH
-407500 117500 800 400 DH
-417500 117500 800 400 DH
-427500 117500 800 400 DH
-427500 87500 800 400 DH
-417500 87500 800 400 DH
-407500 87500 800 400 DH
-397500 87500 800 400 DH
-557500 122500 800 400 DH
-557500 82500 800 400 DH
-537500 62500 800 400 DH
-537500 22500 800 400 DH
-487500 57500 800 400 DH
-497500 57500 800 400 DH
-507500 57500 800 400 DH
-517500 57500 800 400 DH
-517500 27500 800 400 DH
-507500 27500 800 400 DH
-497500 27500 800 400 DH
-487500 27500 800 400 DH
-467500 62500 800 400 DH
-467500 22500 800 400 DH
-467500 122500 800 400 DH
-467500 82500 800 400 DH
-537500 122500 800 400 DH
-537500 82500 800 400 DH
-487500 117500 800 400 DH
-497500 117500 800 400 DH
-507500 117500 800 400 DH
-517500 117500 800 400 DH
-517500 87500 800 400 DH
-507500 87500 800 400 DH
-497500 87500 800 400 DH
-487500 87500 800 400 DH
-397500 57500 800 400 DH
-407500 57500 800 400 DH
-417500 57500 800 400 DH
-427500 57500 800 400 DH
-427500 27500 800 400 DH
-417500 27500 800 400 DH
-407500 27500 800 400 DH
-397500 27500 800 400 DH
-557500 62500 800 400 DH
-557500 22500 800 400 DH
-157500 342500 800 400 DH
-157500 372500 800 400 DH
-57500 239500 800 400 DH
-57500 249500 800 400 DH
-530000 245000 800 400 DH
-540000 245000 800 400 DH
-550000 245000 800 400 DH
-245000 57500 800 400 DH
-255000 57500 800 400 DH
-265000 57500 800 400 DH
-275000 57500 800 400 DH
-285000 57500 800 400 DH
-295000 57500 800 400 DH
-305000 57500 800 400 DH
-315000 57500 800 400 DH
-315000 27500 800 400 DH
-305000 27500 800 400 DH
-295000 27500 800 400 DH
-285000 27500 800 400 DH
-275000 27500 800 400 DH
-265000 27500 800 400 DH
-255000 27500 800 400 DH
-245000 27500 800 400 DH
-317500 372500 800 400 DH
-327500 372500 800 400 DH
-420000 205000 800 400 DH
-430000 205000 800 400 DH
-420000 215000 800 400 DH
-430000 215000 800 400 DH
-420000 225000 800 400 DH
-430000 225000 800 400 DH
-420000 235000 800 400 DH
-430000 235000 800 400 DH
-140000 265000 800 400 DH
-150000 265000 800 400 DH
-160000 265000 800 400 DH
-170000 265000 800 400 DH
-180000 265000 800 400 DH
-190000 265000 800 400 DH
-200000 265000 800 400 DH
-210000 265000 800 400 DH
-220000 265000 800 400 DH
-230000 265000 800 400 DH
-240000 265000 800 400 DH
-250000 265000 800 400 DH
-250000 205000 800 400 DH
-240000 205000 800 400 DH
-230000 205000 800 400 DH
-220000 205000 800 400 DH
-210000 205000 800 400 DH
-200000 205000 800 400 DH
-190000 205000 800 400 DH
-180000 205000 800 400 DH
-170000 205000 800 400 DH
-160000 205000 800 400 DH
-150000 205000 800 400 DH
-140000 205000 800 400 DH
-280000 235000 800 400 DH
-290000 235000 800 400 DH
-300000 235000 800 400 DH
-310000 235000 800 400 DH
-320000 235000 800 400 DH
-330000 235000 800 400 DH
-340000 235000 800 400 DH
-350000 235000 800 400 DH
-360000 235000 800 400 DH
-370000 235000 800 400 DH
-380000 235000 800 400 DH
-390000 235000 800 400 DH
-390000 205000 800 400 DH
-380000 205000 800 400 DH
-370000 205000 800 400 DH
-360000 205000 800 400 DH
-350000 205000 800 400 DH
-340000 205000 800 400 DH
-330000 205000 800 400 DH
-320000 205000 800 400 DH
-310000 205000 800 400 DH
-300000 205000 800 400 DH
-290000 205000 800 400 DH
-280000 205000 800 400 DH
-77500 124000 800 400 DH
-77500 218000 800 400 DH
-82500 151000 800 400 DH
-72500 156000 800 400 DH
-82500 161000 800 400 DH
-72500 166000 800 400 DH
-82500 171000 800 400 DH
-72500 176000 800 400 DH
-82500 181000 800 400 DH
-72500 186000 800 400 DH
-82500 191000 800 400 DH
-81500 239500 800 400 DH
-81500 249500 800 400 DH
-495000 220000 800 400 DH
-470000 220000 800 400 DH
-85000 330000 800 400 DH
-85000 360000 800 400 DH
-582500 245000 800 400 DH
-592500 245000 800 400 DH
-602500 245000 800 400 DH
-535000 210000 800 400 DH
-545000 210000 800 400 DH
-355000 62500 800 400 DH
-355000 22500 800 400 DH
-105000 330000 800 400 DH
-115000 330000 800 400 DH
-172500 320000 800 400 DH
-182500 320000 800 400 DH
-192500 320000 800 400 DH
-202500 320000 800 400 DH
-202500 290000 800 400 DH
-192500 290000 800 400 DH
-182500 290000 800 400 DH
-172500 290000 800 400 DH
-495000 277500 800 400 DH
-470000 277500 800 400 DH
-570000 360000 800 400 DH
-560000 360000 800 400 DH
-550000 360000 800 400 DH
-280000 257500 800 400 DH
-280000 297500 800 400 DH
-116000 280000 800 400 DH
-76000 280000 800 400 DH
-490000 370000 800 400 DH
-475000 370000 800 400 DH
-530000 292500 800 400 DH
-540000 292500 800 400 DH
-550000 292500 800 400 DH
-652500 47500 800 400 DH
-652500 57500 800 400 DH
-652500 67500 800 400 DH
-652500 77500 800 400 DH
-652500 87500 800 400 DH
-652500 97500 800 400 DH
-652500 107500 800 400 DH
-652500 117500 800 400 DH
-652500 127500 800 400 DH
-652500 137500 800 400 DH
-652500 147500 800 400 DH
-652500 157500 800 400 DH
-652500 167500 800 400 DH
-652500 177500 800 400 DH
-652500 187500 800 400 DH
-652500 197500 800 400 DH
-652500 207500 800 400 DH
-652500 217500 800 400 DH
-652500 227500 800 400 DH
-652500 237500 800 400 DH
-652500 247500 800 400 DH
-652500 257500 800 400 DH
-652500 267500 800 400 DH
-652500 277500 800 400 DH
-652500 287500 800 400 DH
-652500 297500 800 400 DH
-652500 307500 800 400 DH
-652500 317500 800 400 DH
-652500 327500 800 400 DH
-652500 337500 800 400 DH
-652500 347500 800 400 DH
-652500 357500 800 400 DH
-642500 47500 800 400 DH
-642500 57500 800 400 DH
-642500 67500 800 400 DH
-642500 77500 800 400 DH
-642500 87500 800 400 DH
-642500 97500 800 400 DH
-642500 107500 800 400 DH
-642500 117500 800 400 DH
-642500 127500 800 400 DH
-642500 137500 800 400 DH
-642500 147500 800 400 DH
-642500 157500 800 400 DH
-642500 167500 800 400 DH
-642500 177500 800 400 DH
-642500 187500 800 400 DH
-642500 197500 800 400 DH
-642500 207500 800 400 DH
-642500 217500 800 400 DH
-642500 227500 800 400 DH
-642500 237500 800 400 DH
-642500 247500 800 400 DH
-642500 257500 800 400 DH
-642500 267500 800 400 DH
-642500 277500 800 400 DH
-642500 287500 800 400 DH
-642500 297500 800 400 DH
-642500 307500 800 400 DH
-642500 317500 800 400 DH
-642500 327500 800 400 DH
-642500 337500 800 400 DH
-642500 347500 800 400 DH
-642500 357500 800 400 DH
-632500 47500 800 400 DH
-632500 57500 800 400 DH
-632500 67500 800 400 DH
-632500 77500 800 400 DH
-632500 87500 800 400 DH
-632500 97500 800 400 DH
-632500 107500 800 400 DH
-632500 117500 800 400 DH
-632500 127500 800 400 DH
-632500 137500 800 400 DH
-632500 147500 800 400 DH
-632500 157500 800 400 DH
-632500 167500 800 400 DH
-632500 177500 800 400 DH
-632500 187500 800 400 DH
-632500 197500 800 400 DH
-632500 207500 800 400 DH
-632500 217500 800 400 DH
-632500 227500 800 400 DH
-632500 237500 800 400 DH
-632500 247500 800 400 DH
-632500 257500 800 400 DH
-632500 267500 800 400 DH
-632500 277500 800 400 DH
-632500 287500 800 400 DH
-632500 297500 800 400 DH
-632500 307500 800 400 DH
-632500 317500 800 400 DH
-632500 327500 800 400 DH
-632500 337500 800 400 DH
-632500 347500 800 400 DH
-632500 357500 800 400 DH
-662500 377500 800 400 DH
-662500 27500 800 400 DH
-332500 260000 800 400 DH
-322500 260000 800 400 DH
-447500 62500 800 400 DH
-447500 22500 800 400 DH
-300000 297500 800 400 DH
-300000 257500 800 400 DH
-475000 330000 800 400 DH
-490000 330000 800 400 DH
-55000 269500 800 400 DH
-55000 287200 800 400 DH
-64800 264600 800 400 DH
-64800 292200 800 400 DH
-582500 292500 800 400 DH
-592500 292500 800 400 DH
-602500 292500 800 400 DH
-562500 187500 800 400 DH
-592500 187500 800 400 DH
-577500 117500 800 400 DH
-587500 117500 800 400 DH
-597500 117500 800 400 DH
-607500 117500 800 400 DH
-607500 87500 800 400 DH
-597500 87500 800 400 DH
-587500 87500 800 400 DH
-577500 87500 800 400 DH
-582500 210000 800 400 DH
-592500 210000 800 400 DH
-602500 210000 800 400 DH
-577500 57500 800 400 DH
-587500 57500 800 400 DH
-597500 57500 800 400 DH
-607500 57500 800 400 DH
-607500 27500 800 400 DH
-597500 27500 800 400 DH
-587500 27500 800 400 DH
-577500 27500 800 400 DH
-322500 290000 800 400 DH
-332500 290000 800 400 DH
-87500 57500 800 400 DH
-97500 62500 800 400 DH
-87500 67500 800 400 DH
-97500 72500 800 400 DH
-87500 77500 800 400 DH
-97500 82500 800 400 DH
-87500 87500 800 400 DH
-97500 92500 800 400 DH
-62500 52500 800 400 DH
-62500 97600 800 400 DH
-74500 44500 800 400 DH
-74500 105600 800 400 DH
-360000 290000 800 400 DH
-370000 290000 800 400 DH
-380000 290000 800 400 DH
-390000 290000 800 400 DH
-390000 260000 800 400 DH
-380000 260000 800 400 DH
-370000 260000 800 400 DH
-360000 260000 800 400 DH
-317500 342500 800 400 DH
-327500 342500 800 400 DH
-137500 342500 800 400 DH
-127500 342500 800 400 DH
-540000 162500 800 400 DH
-535000 152500 800 400 DH
-530000 162500 800 400 DH
-525000 152500 800 400 DH
-520000 162500 800 400 DH
-515000 152500 800 400 DH
-510000 162500 800 400 DH
-505000 152500 800 400 DH
-500000 162500 800 400 DH
-495000 152500 800 400 DH
-490000 162500 800 400 DH
-485000 152500 800 400 DH
-480000 162500 800 400 DH
-475000 152500 800 400 DH
-470000 162500 800 400 DH
-465000 152500 800 400 DH
-460000 162500 800 400 DH
-455000 152500 800 400 DH
-450000 162500 800 400 DH
-445000 152500 800 400 DH
-440000 162500 800 400 DH
-435000 152500 800 400 DH
-430000 162500 800 400 DH
-425000 152500 800 400 DH
-420000 162500 800 400 DH
-415000 152500 800 400 DH
-410000 162500 800 400 DH
-405000 152500 800 400 DH
-400000 162500 800 400 DH
-395000 152500 800 400 DH
-390000 162500 800 400 DH
-385000 152500 800 400 DH
-380000 162500 800 400 DH
-375000 152500 800 400 DH
-370000 162500 800 400 DH
-365000 152500 800 400 DH
-340000 162500 800 400 DH
-335000 152500 800 400 DH
-330000 162500 800 400 DH
-325000 152500 800 400 DH
-320000 162500 800 400 DH
-315000 152500 800 400 DH
-310000 162500 800 400 DH
-305000 152500 800 400 DH
-300000 162500 800 400 DH
-295000 152500 800 400 DH
-290000 162500 800 400 DH
-285000 152500 800 400 DH
-280000 162500 800 400 DH
-275000 152500 800 400 DH
-270000 162500 800 400 DH
-265000 152500 800 400 DH
-260000 162500 800 400 DH
-255000 152500 800 400 DH
-250000 162500 800 400 DH
-245000 152500 800 400 DH
-240000 162500 800 400 DH
-235000 152500 800 400 DH
-230000 162500 800 400 DH
-225000 152500 800 400 DH
-220000 162500 800 400 DH
-215000 152500 800 400 DH
-210000 162500 800 400 DH
-205000 152500 800 400 DH
-200000 162500 800 400 DH
-195000 152500 800 400 DH
-190000 162500 800 400 DH
-185000 152500 800 400 DH
-180000 162500 800 400 DH
-175000 152500 800 400 DH
-170000 162500 800 400 DH
-165000 152500 800 400 DH
-573000 157500 800 400 DH
-352500 157500 800 400 DH
-132500 157500 800 400 DH
-137500 372500 800 400 DH
-127500 372500 800 400 DH
-172500 372500 800 400 DH
-182500 372500 800 400 DH
-192500 372500 800 400 DH
-202500 372500 800 400 DH
-212500 372500 800 400 DH
-222500 372500 800 400 DH
-232500 372500 800 400 DH
-242500 372500 800 400 DH
-252500 372500 800 400 DH
-262500 372500 800 400 DH
-272500 372500 800 400 DH
-282500 372500 800 400 DH
-282500 342500 800 400 DH
-272500 342500 800 400 DH
-262500 342500 800 400 DH
-252500 342500 800 400 DH
-242500 342500 800 400 DH
-232500 342500 800 400 DH
-222500 342500 800 400 DH
-212500 342500 800 400 DH
-202500 342500 800 400 DH
-192500 342500 800 400 DH
-182500 342500 800 400 DH
-172500 342500 800 400 DH
-115500 305500 800 400 DH
-75500 305500 800 400 DH
-57500 27500 800 400 DH
-57500 376200 800 400 DH
-662500 27500 800 400 DH
-662500 376200 800 400 DH
-475000 342500 800 400 DH
-490000 342500 800 400 DH
-560000 342500 800 400 DH
-602500 260000 800 400 DH
-540000 260000 800 400 DH
-540000 307500 800 400 DH
-602500 307500 800 400 DH
-592500 277500 800 400 DH
-612500 287500 800 400 DH
-540000 327500 800 400 DH
-395000 317500 800 400 DH
-475000 317500 800 400 DH
-622500 342500 800 400 DH
-612500 267500 800 400 DH
-592500 222500 800 400 DH
-462500 342500 800 400 DH
-562500 220000 800 400 DH
-622500 102500 800 400 DH
-647500 102500 800 400 DH
-567500 107500 800 400 DH
-597500 47500 800 400 DH
-537500 47500 800 400 DH
-487500 47500 800 400 DH
-517500 40000 800 400 DH
-577500 40000 800 400 DH
-402500 72500 800 400 DH
-487500 72500 800 400 DH
-537500 72500 800 400 DH
-592500 72500 800 400 DH
-497500 95000 800 400 DH
-140000 95000 800 400 DH
-175000 95000 800 400 DH
-237500 95000 800 400 DH
-322500 317500 800 400 DH
-327500 392500 800 400 DH
-240000 245000 800 400 DH
-270000 245000 800 400 DH
-140000 245000 800 400 DH
-130000 280000 800 400 DH
-130000 290000 800 400 DH
-252500 287500 800 400 DH
-427500 100000 800 400 DH
-525000 100000 800 400 DH
-315000 100000 800 400 DH
-447500 95000 800 400 DH
-202500 305000 800 400 DH
-127500 392500 800 400 DH
-212500 392500 800 400 DH
-272500 392500 800 400 DH
-360000 317500 800 400 DH
-77500 392500 800 400 DH
-487500 107500 800 400 DH
-620000 52500 800 400 DH
-622500 87500 800 400 DH
-537500 107500 800 400 DH
-637500 172500 800 400 DH
-262500 172500 800 400 DH
-597500 65000 800 400 DH
-407500 47500 800 400 DH
-205000 82500 800 400 DH
-402500 235000 800 400 DH
-295000 130000 800 400 DH
-335000 52500 800 400 DH
-527500 22500 800 400 DH
-615000 15000 800 400 DH
-477500 57500 800 400 DH
-622500 35000 800 400 DH
-647500 20000 800 400 DH
-557500 15000 800 400 DH
-502500 15000 800 400 DH
-547500 142500 800 400 DH
-610000 142500 800 400 DH
-615000 130000 800 400 DH
-555000 135000 800 400 DH
-195000 57500 800 400 DH
-242500 360000 800 400 DH
-210000 67500 800 400 DH
-115000 112500 800 400 DH
-507500 107500 800 400 DH
-417500 135000 800 400 DH
-200000 62500 800 400 DH
-512500 80000 800 400 DH
-557500 237500 800 400 DH
-447500 30000 800 400 DH
-355000 130000 800 400 DH
-272500 352500 800 400 DH
-95000 245000 800 400 DH
-115000 245000 800 400 DH
-582500 285000 800 400 DH
-110000 367500 800 400 DH
-182500 385000 800 400 DH
-252500 385000 800 400 DH
-212500 352500 800 400 DH
-232500 352500 800 400 DH
-192500 360000 800 400 DH
-417500 107500 800 400 DH
-447500 107500 800 400 DH
-472500 107500 800 400 DH
-467500 15000 800 400 DH
-255000 120000 800 400 DH
-265000 120000 800 400 DH
-265000 130000 800 400 DH
-250000 130000 800 400 DH
-260000 105000 800 400 DH
-245000 105000 800 400 DH
-285000 120000 800 400 DH
-300000 120000 800 400 DH
-290000 125000 800 400 DH
-310000 125000 800 400 DH
-295000 137500 800 400 DH
-322500 137500 800 400 DH
-145000 137500 800 400 DH
-155000 125000 800 400 DH
-160000 100000 800 400 DH
-300000 100000 800 400 DH
-170000 142500 800 400 DH
-280000 142500 800 400 DH
-180000 132500 800 400 DH
-275000 130000 800 400 DH
-190000 105000 800 400 DH
-270000 105000 800 400 DH
-200000 255000 800 400 DH
-270000 255000 800 400 DH
-322500 245000 800 400 DH
-350000 250000 800 400 DH
-202500 282500 800 400 DH
-220000 282500 800 400 DH
-257500 250000 800 400 DH
-210000 250000 800 400 DH
-257500 197500 800 400 DH
-220000 225000 800 400 DH
-240000 225000 800 400 DH
-300000 212500 800 400 DH
-215000 212500 800 400 DH
-310000 217500 800 400 DH
-225000 217500 800 400 DH
-225000 195000 800 400 DH
-315000 192500 800 400 DH
-150000 187500 800 400 DH
-325000 187500 800 400 DH
-235000 187500 800 400 DH
-360000 252500 800 400 DH
-292500 222500 800 400 DH
-170000 217500 800 400 DH
-210000 230000 800 400 DH
-390000 225000 800 400 DH
-257500 277500 800 400 DH
-385000 277500 800 400 DH
-155000 282500 800 400 DH
-340000 282500 800 400 DH
-230000 182500 800 400 DH
-245000 182500 800 400 DH
-227500 90000 800 400 DH
-255000 90000 800 400 DH
-250000 172500 800 400 DH
-190000 175000 800 400 DH
-180000 170000 800 400 DH
-430000 197500 800 400 DH
-332500 270000 800 400 DH
-290000 265000 800 400 DH
-480000 265000 800 400 DH
-470000 290000 800 400 DH
-462500 282500 800 400 DH
-300000 177500 800 400 DH
-485000 177500 800 400 DH
-305000 85000 800 400 DH
-275000 85000 800 400 DH
-330000 80000 800 400 DH
-285000 80000 800 400 DH
-350000 220000 800 400 DH
-365000 220000 800 400 DH
-355000 385000 800 400 DH
-297500 352500 800 400 DH
-375000 360000 800 400 DH
-107500 147500 800 400 DH
-122000 160500 800 400 DH
-450000 182500 800 400 DH
-262500 352500 800 400 DH
-327500 352500 800 400 DH
-400000 225000 800 400 DH
-405000 215000 800 400 DH
-410000 205000 800 400 DH
-105000 270000 800 400 DH
-415000 272500 800 400 DH
-402500 250000 800 400 DH
-222500 310000 800 400 DH
-402500 310000 800 400 DH
-520000 260000 800 400 DH
-520000 337500 800 400 DH
-210000 322500 800 400 DH
-570000 322500 800 400 DH
-570000 245000 800 400 DH
-530000 327500 800 400 DH
-282500 330000 800 400 DH
-327500 305000 800 400 DH
-49500 330000 800 400 DH
-130000 255000 800 400 DH
-76500 257000 800 400 DH
-90500 305500 800 400 DH
-592500 360000 800 400 DH
-405000 342500 800 400 DH
-grestore
-gsave
-0.00072 0.00072 scale
-214900 579300 translate
-0.500 0.500 scale
-842140 0 translate
-90 rotate
-400 -20140 translate
-/Color {0.800 0.800 0.800 mysetrgbcolor} def Color
--400 20140 710400 862280 200 Alignment
-64500 257000 76000 257000 1000 L
-58000 250500 64500 257000 1000 L
-87000 254500 81500 249000 2500 L
-129000 254500 87000 254500 2500 L
-55000 330000 49500 330000 1000 L
-58500 284500 55000 288000 2500 L
-68500 284500 58500 284500 2500 L
-45000 398500 45000 5000 100 L
-130000 289500 73500 289500 2500 L
-632500 345000 652500 345000 4000 L
-632500 342500 652500 342500 4000 L
-632500 340000 652500 340000 4000 L
-652500 337500 632500 337500 4000 L
-652500 347500 652500 337500 4000 L
-632500 347500 652500 347500 4000 L
-632500 342500 405000 342500 4500 L
-632500 337500 632500 347500 4500 L
-537500 307500 410000 307500 1000 L
-287500 325000 282500 330000 1000 L
-527500 325000 287500 325000 1000 L
-530000 327500 527500 325000 1000 L
-570000 245000 582500 245000 1000 L
-210000 322500 570000 322500 1000 L
-202500 342500 202500 337500 1000 L
-520000 260000 540000 260000 1000 L
-127500 337500 520000 337500 1000 L
-127500 342500 127500 337500 1000 L
-245000 270000 105000 270000 1000 L
-247500 272500 245000 270000 1000 L
-270000 272500 247500 272500 1000 L
-272500 275000 270000 272500 1000 L
-345000 275000 272500 275000 1000 L
-347500 272500 345000 275000 1000 L
-415000 272500 347500 272500 1000 L
-420000 205000 410000 205000 1000 L
-420000 215000 405000 215000 1000 L
-400000 225000 420000 225000 1000 L
-267500 357500 322500 357500 1000 L
-325000 355000 327500 352500 1000 L
-322500 357500 325000 355000 1000 L
-262500 352500 267500 357500 1000 L
-242500 342500 252500 342500 1000 L
-297500 342500 297500 347500 1000 L
-312500 347500 317500 342500 1000 L
-240000 347500 312500 347500 1000 L
-237500 347500 240000 347500 1000 L
-232500 342500 237500 347500 1000 L
-182500 342500 192500 342500 1000 L
-137500 342500 172500 342500 1000 L
-530000 245000 407500 245000 1000 L
-407500 245000 402500 250000 1000 L
-402500 310000 222500 310000 1000 L
-217500 180000 220000 177500 1000 L
-127500 180000 217500 180000 1000 L
-107500 180000 127500 180000 1000 L
-295000 182500 450000 182500 1000 L
-290000 177500 295000 182500 1000 L
-220000 177500 290000 177500 1000 L
-445000 147500 445000 152500 1000 L
-107500 147500 445000 147500 1000 L
-242500 360000 375000 360000 1000 L
-277500 352500 297500 352500 2500 L
-365000 220000 350000 220000 1000 L
-357500 255000 360000 252500 1000 L
-337500 255000 357500 255000 1000 L
-340000 282500 462500 282500 1000 L
-457500 290000 470000 290000 2500 L
-255000 270000 332500 270000 2500 L
-250000 265000 255000 270000 2500 L
-242500 170000 180000 170000 1000 L
-247500 175000 250000 172500 1000 L
-190000 175000 247500 175000 1000 L
-250000 162500 242500 170000 1000 L
-227500 90000 255000 90000 1000 L
-230000 182500 245000 182500 1000 L
-230000 282500 340000 282500 1000 L
-225000 277500 230000 282500 1000 L
-197500 277500 225000 277500 1000 L
-192500 282500 197500 277500 1000 L
-155000 282500 192500 282500 1000 L
-257500 277500 385000 277500 1000 L
-387500 227500 390000 225000 1000 L
-270000 227500 387500 227500 1000 L
-267500 230000 270000 227500 1000 L
-210000 230000 267500 230000 1000 L
-220000 217500 170000 217500 1000 L
-225000 222500 220000 217500 1000 L
-230000 222500 225000 222500 1000 L
-232500 220000 230000 222500 1000 L
-245000 220000 232500 220000 1000 L
-247500 222500 245000 220000 1000 L
-250000 222500 247500 222500 1000 L
-292500 222500 250000 222500 1000 L
-297500 187500 325000 187500 1000 L
-150000 187500 297500 187500 1000 L
-250000 195000 252500 192500 1000 L
-225000 195000 250000 195000 1000 L
-252500 192500 315000 192500 1000 L
-310000 217500 225000 217500 1000 L
-300000 212500 215000 212500 1000 L
-220000 225000 240000 225000 2500 L
-637500 172500 535000 172500 1000 L
-210000 67500 87500 67500 1000 L
-205000 82500 97500 82500 1000 L
-200000 62500 97500 62500 1000 L
-195000 57500 87500 57500 1000 L
-192500 360000 242500 360000 1000 L
-212500 352500 232500 352500 2500 L
-202500 372500 202500 367500 1000 L
-257500 367500 262500 372500 1000 L
-110000 367500 257500 367500 1000 L
-57500 162000 57500 150000 2500 L
-82500 150000 57000 150000 2500 L
-95000 245000 115000 245000 1000 L
-182500 385000 252500 385000 1000 L
-355000 385000 252500 385000 1000 L
-272500 352500 277500 352500 2500 L
-297500 342500 317500 342500 1000 L
-280000 257500 300000 257500 1000 L
-517500 242500 522500 237500 1000 L
-392500 242500 517500 242500 1000 L
-380000 255000 392500 242500 1000 L
-380000 260000 380000 255000 1000 L
-522500 237500 557500 237500 1000 L
-370000 260000 380000 260000 1000 L
-425000 230000 430000 235000 1000 L
-375000 230000 425000 230000 1000 L
-370000 235000 375000 230000 1000 L
-402500 235000 420000 235000 1000 L
-447500 60000 447500 62500 1000 L
-450000 57500 447500 60000 1000 L
-477500 57500 450000 57500 1000 L
-487500 107500 472500 107500 1000 L
-467500 80000 467500 82500 1000 L
-512500 80000 467500 80000 1000 L
-610000 142500 547500 142500 1000 L
-537500 107500 507500 107500 1000 L
-537500 117500 537500 122500 1000 L
-577500 117500 537500 117500 1000 L
-417500 107500 447500 107500 1000 L
-555000 135000 417500 135000 1000 L
-557500 67500 557500 62500 1000 L
-417500 67500 557500 67500 1000 L
-417500 57500 417500 67500 1000 L
-582500 210000 545000 210000 1000 L
-555000 57500 577500 57500 1000 L
-542500 57500 555000 57500 1000 L
-537500 62500 542500 57500 1000 L
-447500 30000 440000 22500 1000 L
-417500 22500 417500 27500 1000 L
-437500 22500 417500 22500 1000 L
-440000 22500 437500 22500 1000 L
-507500 22500 507500 27500 1000 L
-527500 22500 507500 22500 1000 L
-502500 15000 467500 15000 1000 L
-615000 15000 557500 15000 1000 L
-397500 27500 397500 17500 2500 L
-355000 22500 355000 17500 2500 L
-340000 17500 335000 22500 2500 L
-400000 17500 340000 17500 2500 L
-90500 305500 75500 305500 1000 L
-415000 380000 172500 380000 2500 L
-415000 360000 415000 380000 2500 L
-232500 372500 232500 380000 2500 L
-317500 372500 317500 380000 2500 L
-172500 380000 172500 375000 2500 L
-297500 372500 297500 380000 2500 L
-115000 280000 130000 280000 2500 L
-137500 372500 172500 372500 2500 L
-55000 330000 105000 330000 1000 L
-622500 342500 627500 342500 4000 L
-127500 392500 212500 392500 2500 L
-332500 292500 332500 297500 2500 L
-382500 297500 390000 290000 2500 L
-325000 297500 382500 297500 2500 L
-362500 197500 430000 197500 1000 L
-360000 205000 360000 200000 1000 L
-360000 200000 362500 197500 1000 L
-205000 305000 202500 305000 2500 L
-285000 305000 205000 305000 2500 L
-292500 297500 285000 305000 2500 L
-300000 297500 292500 297500 2500 L
-212500 392500 327500 392500 2500 L
-300000 297500 325000 297500 2500 L
-290000 265000 480000 265000 1000 L
-390000 290000 457500 290000 2500 L
-442500 17500 447500 22500 2500 L
-400000 17500 442500 17500 2500 L
-45000 5000 675000 5000 100 L
-632500 87500 632500 92500 2500 L
-397500 87500 397500 95000 2500 L
-422500 100000 315000 100000 2500 L
-610000 102500 607500 100000 2500 L
-622500 102500 610000 102500 2500 L
-515000 152500 525000 152500 2500 L
-520000 152500 520000 162500 2500 L
-510000 162500 530000 162500 2500 L
-607500 100000 422500 100000 2500 L
-73500 289500 68500 284500 2500 L
-57000 238500 56000 239500 2500 L
-675000 5000 675000 398500 100 L
-57500 162000 57500 239000 2500 L
-675000 398500 45000 398500 100 L
-172500 290000 130000 290000 2500 L
-632500 337500 627500 342500 4000 L
-627500 342500 632500 347500 4000 L
-240000 245000 140000 245000 2500 L
-200000 255000 270000 255000 1000 L
-240000 245000 322500 245000 2500 L
-395000 317500 322500 317500 2500 L
-180000 152500 180000 162500 2500 L
-180000 162500 192500 162500 2500 L
-175000 152500 185000 152500 2500 L
-402500 95000 140000 95000 2500 L
-447500 82500 447500 95000 2500 L
-612500 95000 402500 95000 2500 L
-615000 92500 612500 95000 2500 L
-617500 92500 615000 92500 2500 L
-637500 92500 617500 92500 2500 L
-577500 80000 577500 87500 2500 L
-580000 77500 577500 80000 2500 L
-612500 77500 580000 77500 2500 L
-617500 82500 612500 77500 2500 L
-622500 82500 617500 82500 2500 L
-637500 82500 622500 82500 2500 L
-642500 77500 637500 82500 2500 L
-517500 87500 577500 87500 2500 L
-632500 67500 632500 72500 2500 L
-637500 72500 402500 72500 2500 L
-647500 72500 652500 77500 2500 L
-637500 72500 647500 72500 2500 L
-652500 327500 632500 327500 4500 L
-652500 317500 632500 317500 4500 L
-652500 307500 632500 307500 4500 L
-652500 297500 632500 297500 4500 L
-652500 287500 632500 287500 4500 L
-652500 277500 632500 277500 4500 L
-652500 267500 632500 267500 4500 L
-652500 257500 632500 257500 4500 L
-632500 357500 630000 360000 4500 L
-630000 360000 570000 360000 4500 L
-550000 360000 415000 360000 4500 L
-330000 305000 327500 305000 1000 L
-255000 285000 335000 285000 1000 L
-407500 305000 330000 305000 1000 L
-410000 307500 407500 305000 1000 L
-252500 287500 255000 285000 1000 L
-300000 177500 485000 177500 1000 L
-347500 285000 350000 285000 1000 L
-342500 290000 347500 285000 1000 L
-335000 285000 340000 290000 1000 L
-602500 260000 540000 260000 4500 L
-607500 297500 602500 292500 4500 L
-632500 297500 607500 297500 4500 L
-540000 307500 602500 307500 4500 L
-632500 277500 592500 277500 4500 L
-632500 287500 612500 287500 4500 L
-632500 327500 540000 327500 4500 L
-632500 317500 395000 317500 4500 L
-612500 267500 632500 267500 4500 L
-592500 277500 495000 277500 4500 L
-495000 220000 590000 220000 4500 L
-590000 220000 592500 222500 4500 L
-632500 47500 637500 52500 2500 L
-637500 52500 647500 52500 2500 L
-647500 52500 652500 57500 2500 L
-652500 357500 632500 357500 4000 L
-340000 290000 342500 290000 1000 L
-490000 370000 490000 362500 4500 L
-77500 392500 127500 392500 2500 L
-637500 92500 647500 92500 2500 L
-647500 92500 652500 97500 2500 L
-622500 102500 647500 102500 2500 L
-567500 107500 632500 107500 2500 L
-632500 47500 407500 47500 2500 L
-310000 52500 305000 57500 1000 L
-642500 47500 642500 42500 2500 L
-642500 42500 640000 40000 2500 L
-640000 40000 517500 40000 2500 L
-597500 27500 597500 22500 1000 L
-597500 22500 600000 20000 1000 L
-600000 20000 647500 20000 1000 L
-587500 27500 587500 30000 1000 L
-587500 30000 592500 35000 1000 L
-592500 35000 622500 35000 1000 L
-652500 67500 647500 62500 1000 L
-647500 62500 600000 62500 1000 L
-600000 62500 597500 65000 1000 L
-587500 87500 592500 92500 1000 L
-592500 92500 610000 92500 1000 L
-610000 92500 615000 87500 1000 L
-615000 87500 622500 87500 1000 L
-615000 130000 295000 130000 1000 L
-620000 52500 620000 52500 1000 L
-620000 52500 310000 52500 1000 L
-115000 112500 647500 112500 1000 L
-647500 112500 652500 117500 1000 L
-535000 172500 262500 172500 1000 L
-255000 120000 265000 120000 1000 L
-265000 130000 250000 130000 1000 L
-260000 105000 245000 105000 1000 L
-285000 120000 300000 120000 1000 L
-290000 125000 310000 125000 1000 L
-295000 137500 322500 137500 1000 L
-145000 137500 295000 137500 1000 L
-155000 125000 290000 125000 1000 L
-160000 100000 300000 100000 1000 L
-170000 142500 280000 142500 1000 L
-242500 132500 245000 135000 1000 L
-245000 135000 270000 135000 1000 L
-270000 135000 275000 130000 1000 L
-180000 132500 242500 132500 1000 L
-242500 110000 265000 110000 1000 L
-265000 110000 270000 105000 1000 L
-190000 105000 237500 105000 1000 L
-237500 105000 242500 110000 1000 L
-270000 255000 275000 250000 1000 L
-275000 250000 315000 250000 1000 L
-330000 80000 285000 80000 1000 L
-315000 250000 350000 250000 1000 L
-202500 282500 220000 282500 1000 L
-257500 250000 210000 250000 1000 L
-330000 205000 322500 197500 1000 L
-322500 197500 257500 197500 1000 L
-337500 255000 302500 255000 1000 L
-302500 255000 300000 257500 1000 L
-305000 85000 275000 85000 1000 L
-350000 285000 457500 285000 1000 L
-457500 285000 460000 287500 1000 L
-460000 287500 465000 287500 1000 L
-465000 287500 467500 285000 1000 L
-467500 285000 582500 285000 1000 L
-107500 180000 91000 180000 1000 L
-91000 180000 90000 181000 1000 L
-90000 181000 82500 181000 1000 L
-122000 160500 90500 160500 1000 L
-90500 160500 90000 161000 1000 L
-90000 161000 82500 161000 1000 L
-82000 10000 82500 9500 400 L
-80500 10000 82000 10000 400 L
-80000 9500 80500 10000 400 L
-80000 9500 80000 8500 400 L
-80000 8500 80500 8000 400 L
-80500 8000 82000 8000 400 L
-82000 8000 82500 7500 400 L
-82500 7500 82500 6500 400 L
-82000 6000 82500 6500 400 L
-80500 6000 82000 6000 400 L
-80000 6500 80500 6000 400 L
-83701 9500 83701 6500 400 L
-83701 9500 84201 10000 400 L
-84201 10000 85201 10000 400 L
-85201 10000 85701 9500 400 L
-85701 9500 85701 6500 400 L
-85201 6000 85701 6500 400 L
-84201 6000 85201 6000 400 L
-83701 6500 84201 6000 400 L
-86902 10000 86902 6000 400 L
-86902 6000 88902 6000 400 L
-90603 10000 90603 6000 400 L
-92103 10000 92603 9500 400 L
-92603 9500 92603 6500 400 L
-92103 6000 92603 6500 400 L
-90103 6000 92103 6000 400 L
-90103 10000 92103 10000 400 L
-93804 8000 95304 8000 400 L
-93804 6000 95804 6000 400 L
-93804 10000 93804 6000 400 L
-93804 10000 95804 10000 400 L
-97005 10000 99005 10000 400 L
-99005 10000 99505 9500 400 L
-99505 9500 99505 8500 400 L
-99005 8000 99505 8500 400 L
-97505 8000 99005 8000 400 L
-97505 10000 97505 6000 400 L
-97505 8000 99505 6000 400 L
-80000 32000 80000 28500 400 L
-80000 32000 80500 32500 400 L
-80500 32500 82000 32500 400 L
-82000 32500 82500 32000 400 L
-82500 32000 82500 28500 400 L
-80000 30500 82500 30500 400 L
-83701 32500 84701 32500 400 L
-84201 32500 84201 28500 400 L
-83701 28500 84701 28500 400 L
-86402 28500 87902 28500 400 L
-85902 29000 86402 28500 400 L
-85902 32000 85902 29000 400 L
-85902 32000 86402 32500 400 L
-86402 32500 87902 32500 400 L
-89103 30500 91103 30500 400 L
-92804 28500 93804 28500 400 L
-93304 32500 93304 28500 400 L
-92304 31500 93304 32500 400 L
-95005 28500 95505 28500 400 L
-96706 32000 97206 32500 400 L
-97206 32500 98206 32500 400 L
-98206 32500 98706 32000 400 L
-98706 32000 98706 29000 400 L
-98206 28500 98706 29000 400 L
-97206 28500 98206 28500 400 L
-96706 29000 97206 28500 400 L
-97206 30500 98706 30500 400 L
-99907 28500 100407 28500 400 L
-101608 29000 102108 28500 400 L
-101608 32000 101608 29000 400 L
-101608 32000 102108 32500 400 L
-102108 32500 103108 32500 400 L
-103108 32500 103608 32000 400 L
-103608 32000 103608 29000 400 L
-103108 28500 103608 29000 400 L
-102108 28500 103108 28500 400 L
-101608 29500 103608 31500 400 L
-80000 21500 80500 21000 400 L
-80000 24500 80500 25000 400 L
-80000 24500 80000 21500 400 L
-82201 21000 83701 21000 400 L
-81701 21500 82201 21000 400 L
-81701 24500 81701 21500 400 L
-81701 24500 82201 25000 400 L
-82201 25000 83701 25000 400 L
-84902 25000 85402 24500 400 L
-85402 24500 85402 21500 400 L
-84902 21000 85402 21500 400 L
-88403 24500 88903 25000 400 L
-88903 25000 90403 25000 400 L
-90403 25000 90903 24500 400 L
-90903 24500 90903 23500 400 L
-88403 21000 90903 23500 400 L
-88403 21000 90903 21000 400 L
-92104 21500 92604 21000 400 L
-92104 24500 92104 21500 400 L
-92104 24500 92604 25000 400 L
-92604 25000 93604 25000 400 L
-93604 25000 94104 24500 400 L
-94104 24500 94104 21500 400 L
-93604 21000 94104 21500 400 L
-92604 21000 93604 21000 400 L
-92104 22000 94104 24000 400 L
-95305 21500 95805 21000 400 L
-95305 24500 95305 21500 400 L
-95305 24500 95805 25000 400 L
-95805 25000 96805 25000 400 L
-96805 25000 97305 24500 400 L
-97305 24500 97305 21500 400 L
-96805 21000 97305 21500 400 L
-95805 21000 96805 21000 400 L
-95305 22000 97305 24000 400 L
-98506 24500 99006 25000 400 L
-99006 25000 100006 25000 400 L
-100006 25000 100506 24500 400 L
-100506 24500 100506 21500 400 L
-100006 21000 100506 21500 400 L
-99006 21000 100006 21000 400 L
-98506 21500 99006 21000 400 L
-99006 23000 100506 23000 400 L
-103507 25000 103507 21000 400 L
-103507 21000 105007 22500 400 L
-105007 22500 106507 21000 400 L
-106507 25000 106507 21000 400 L
-109208 23000 109708 22500 400 L
-108208 23000 109208 23000 400 L
-107708 22500 108208 23000 400 L
-107708 22500 107708 21500 400 L
-107708 21500 108208 21000 400 L
-109708 23000 109708 21500 400 L
-109708 21500 110208 21000 400 L
-108208 21000 109208 21000 400 L
-109208 21000 109708 21500 400 L
-111409 25000 111409 21500 400 L
-111409 21500 111909 21000 400 L
-113410 25000 113410 21500 400 L
-113410 21500 113910 21000 400 L
-112910 23500 113910 23500 400 L
-115411 21000 116911 21000 400 L
-114911 21500 115411 21000 400 L
-114911 22500 114911 21500 400 L
-114911 22500 115411 23000 400 L
-115411 23000 116411 23000 400 L
-116411 23000 116911 22500 400 L
-114911 22000 116911 22000 400 L
-116911 22500 116911 22000 400 L
-118612 22500 118612 21000 400 L
-118612 22500 119112 23000 400 L
-119112 23000 120112 23000 400 L
-118112 23000 118612 22500 400 L
-123113 25000 123113 21000 400 L
-123113 25000 125113 25000 400 L
-123113 23000 124613 23000 400 L
-126814 21000 128314 21000 400 L
-126314 21500 126814 21000 400 L
-126314 22500 126314 21500 400 L
-126314 22500 126814 23000 400 L
-126814 23000 127814 23000 400 L
-127814 23000 128314 22500 400 L
-126314 22000 128314 22000 400 L
-128314 22500 128314 22000 400 L
-130015 25000 130015 21500 400 L
-130015 21500 130515 21000 400 L
-129515 23500 130515 23500 400 L
-132016 25000 132016 21500 400 L
-132016 21500 132516 21000 400 L
-131516 23500 132516 23500 400 L
-134017 21000 135517 21000 400 L
-133517 21500 134017 21000 400 L
-133517 22500 133517 21500 400 L
-133517 22500 134017 23000 400 L
-134017 23000 135017 23000 400 L
-135017 23000 135517 22500 400 L
-133517 22000 135517 22000 400 L
-135517 22500 135517 22000 400 L
-137218 22500 137218 21000 400 L
-137218 22500 137718 23000 400 L
-137718 23000 138718 23000 400 L
-136718 23000 137218 22500 400 L
-141719 25000 141719 21000 400 L
-141719 21000 143719 21000 400 L
-146420 23000 146920 22500 400 L
-145420 23000 146420 23000 400 L
-144920 22500 145420 23000 400 L
-144920 22500 144920 21500 400 L
-144920 21500 145420 21000 400 L
-146920 23000 146920 21500 400 L
-146920 21500 147420 21000 400 L
-145420 21000 146420 21000 400 L
-146420 21000 146920 21500 400 L
-150121 23000 150621 22500 400 L
-149121 23000 150121 23000 400 L
-148621 22500 149121 23000 400 L
-148621 22500 148621 21500 400 L
-148621 21500 149121 21000 400 L
-149121 21000 150121 21000 400 L
-150121 21000 150621 21500 400 L
-148621 20000 149121 19500 400 L
-149121 19500 150121 19500 400 L
-150121 19500 150621 20000 400 L
-150621 23000 150621 20000 400 L
-152322 21000 153822 21000 400 L
-151822 21500 152322 21000 400 L
-151822 22500 151822 21500 400 L
-151822 22500 152322 23000 400 L
-152322 23000 153322 23000 400 L
-153322 23000 153822 22500 400 L
-151822 22000 153822 22000 400 L
-153822 22500 153822 22000 400 L
-155523 21000 157023 21000 400 L
-157023 21000 157523 21500 400 L
-157023 22000 157523 21500 400 L
-155523 22000 157023 22000 400 L
-155023 22500 155523 22000 400 L
-155023 22500 155523 23000 400 L
-155523 23000 157023 23000 400 L
-157023 23000 157523 22500 400 L
-155023 21500 155523 21000 400 L
-80000 17500 80000 13500 400 L
-80000 17500 82000 17500 400 L
-80000 15500 81500 15500 400 L
-83701 13500 85201 13500 400 L
-83201 14000 83701 13500 400 L
-83201 15000 83201 14000 400 L
-83201 15000 83701 15500 400 L
-83701 15500 84701 15500 400 L
-84701 15500 85201 15000 400 L
-83201 14500 85201 14500 400 L
-85201 15000 85201 14500 400 L
-86902 15000 86902 13500 400 L
-86902 15000 87402 15500 400 L
-87402 15500 88402 15500 400 L
-86402 15500 86902 15000 400 L
-90103 15000 90103 13500 400 L
-90103 15000 90603 15500 400 L
-90603 15500 91103 15500 400 L
-91103 15500 91603 15000 400 L
-91603 15000 91603 13500 400 L
-89603 15500 90103 15000 400 L
-94304 15500 94804 15000 400 L
-93304 15500 94304 15500 400 L
-92804 15000 93304 15500 400 L
-92804 15000 92804 14000 400 L
-92804 14000 93304 13500 400 L
-94804 15500 94804 14000 400 L
-94804 14000 95304 13500 400 L
-93304 13500 94304 13500 400 L
-94304 13500 94804 14000 400 L
-97005 15000 97005 13500 400 L
-97005 15000 97505 15500 400 L
-97505 15500 98005 15500 400 L
-98005 15500 98505 15000 400 L
-98505 15000 98505 13500 400 L
-96505 15500 97005 15000 400 L
-101706 17500 101706 13500 400 L
-101206 13500 101706 14000 400 L
-100206 13500 101206 13500 400 L
-99706 14000 100206 13500 400 L
-99706 15000 99706 14000 400 L
-99706 15000 100206 15500 400 L
-100206 15500 101206 15500 400 L
-101206 15500 101706 15000 400 L
-102907 15000 102907 14000 400 L
-102907 15000 103407 15500 400 L
-103407 15500 104407 15500 400 L
-104407 15500 104907 15000 400 L
-104907 15000 104907 14000 400 L
-104407 13500 104907 14000 400 L
-103407 13500 104407 13500 400 L
-102907 14000 103407 13500 400 L
-108408 17500 108408 13500 400 L
-107908 17500 109908 17500 400 L
-109908 17500 110408 17000 400 L
-110408 17000 110408 16000 400 L
-109908 15500 110408 16000 400 L
-108408 15500 109908 15500 400 L
-112109 13500 113609 13500 400 L
-111609 14000 112109 13500 400 L
-111609 15000 111609 14000 400 L
-111609 15000 112109 15500 400 L
-112109 15500 113109 15500 400 L
-113109 15500 113609 15000 400 L
-111609 14500 113609 14500 400 L
-113609 15000 113609 14500 400 L
-115310 13500 116810 13500 400 L
-116810 13500 117310 14000 400 L
-116810 14500 117310 14000 400 L
-115310 14500 116810 14500 400 L
-114810 15000 115310 14500 400 L
-114810 15000 115310 15500 400 L
-115310 15500 116810 15500 400 L
-116810 15500 117310 15000 400 L
-114810 14000 115310 13500 400 L
-119011 13500 120511 13500 400 L
-120511 13500 121011 14000 400 L
-120511 14500 121011 14000 400 L
-119011 14500 120511 14500 400 L
-118511 15000 119011 14500 400 L
-118511 15000 119011 15500 400 L
-119011 15500 120511 15500 400 L
-120511 15500 121011 15000 400 L
-118511 14000 119011 13500 400 L
-122212 15500 122212 14000 400 L
-122212 14000 122712 13500 400 L
-122712 13500 123712 13500 400 L
-123712 13500 124212 14000 400 L
-124212 15500 124212 14000 400 L
-125913 17500 125913 14000 400 L
-125913 14000 126413 13500 400 L
-125413 16000 126413 16000 400 L
-127914 17500 127914 14000 400 L
-127914 14000 128414 13500 400 L
-127414 16000 128414 16000 400 L
-129415 15000 129415 14000 400 L
-129415 15000 129915 15500 400 L
-129915 15500 130915 15500 400 L
-130915 15500 131415 15000 400 L
-131415 15000 131415 14000 400 L
-130915 13500 131415 14000 400 L
-129915 13500 130915 13500 400 L
-129415 14000 129915 13500 400 L
-335000 62500 6000 3500 PVSQ
-335000 22500 6000 3500 PVR
-297500 342500 6000 3500 PVSQ
-297500 372500 6000 3500 PVR
-415000 360000 8000 4200 PVSQ
-405000 360000 8000 4200 PVR
-395000 360000 8000 4200 PVR
-447500 122500 6000 3500 PVSQ
-447500 82500 6000 3500 PVR
-397500 117500 6000 3500 PVSQ
-407500 117500 6000 3500 PVR
-417500 117500 6000 3500 PVR
-427500 117500 6000 3500 PVR
-427500 87500 6000 3500 PVR
-417500 87500 6000 3500 PVR
-407500 87500 6000 3500 PVR
-397500 87500 6000 3500 PVR
-557500 122500 6000 3500 PVSQ
-557500 82500 6000 3500 PVR
-537500 62500 6000 3500 PVSQ
-537500 22500 6000 3500 PVR
-487500 57500 6000 3500 PVSQ
-497500 57500 6000 3500 PVR
-507500 57500 6000 3500 PVR
-517500 57500 6000 3500 PVR
-517500 27500 6000 3500 PVR
-507500 27500 6000 3500 PVR
-497500 27500 6000 3500 PVR
-487500 27500 6000 3500 PVR
-467500 62500 6000 3500 PVSQ
-467500 22500 6000 3500 PVR
-467500 122500 6000 3500 PVSQ
-467500 82500 6000 3500 PVR
-537500 122500 6000 3500 PVSQ
-537500 82500 6000 3500 PVR
-487500 117500 6000 3500 PVSQ
-497500 117500 6000 3500 PVR
-507500 117500 6000 3500 PVR
-517500 117500 6000 3500 PVR
-517500 87500 6000 3500 PVR
-507500 87500 6000 3500 PVR
-497500 87500 6000 3500 PVR
-487500 87500 6000 3500 PVR
-397500 57500 6000 3500 PVSQ
-407500 57500 6000 3500 PVR
-417500 57500 6000 3500 PVR
-427500 57500 6000 3500 PVR
-427500 27500 6000 3500 PVR
-417500 27500 6000 3500 PVR
-407500 27500 6000 3500 PVR
-397500 27500 6000 3500 PVR
-557500 62500 6000 3500 PVSQ
-557500 22500 6000 3500 PVR
-157500 342500 6000 3500 PVSQ
-157500 372500 6000 3500 PVR
-57500 239500 6000 3500 PVSQ
-57500 249500 6000 3500 PVR
-530000 245000 8000 4200 PVSQ
-540000 245000 8000 4200 PVR
-550000 245000 8000 4200 PVR
-245000 57500 6000 3500 PVSQ
-255000 57500 6000 3500 PVR
-265000 57500 6000 3500 PVR
-275000 57500 6000 3500 PVR
-285000 57500 6000 3500 PVR
-295000 57500 6000 3500 PVR
-305000 57500 6000 3500 PVR
-315000 57500 6000 3500 PVR
-315000 27500 6000 3500 PVR
-305000 27500 6000 3500 PVR
-295000 27500 6000 3500 PVR
-285000 27500 6000 3500 PVR
-275000 27500 6000 3500 PVR
-265000 27500 6000 3500 PVR
-255000 27500 6000 3500 PVR
-245000 27500 6000 3500 PVR
-317500 372500 6000 3500 PVSQ
-327500 372500 6000 3500 PVR
-420000 205000 7000 4200 PVSQ
-430000 205000 7000 4200 PVR
-420000 215000 7000 4200 PVR
-430000 215000 7000 4200 PVR
-420000 225000 7000 4200 PVR
-430000 225000 7000 4200 PVR
-420000 235000 7000 4200 PVR
-430000 235000 7000 4200 PVR
-140000 265000 6000 3500 PVSQ
-150000 265000 6000 3500 PVR
-160000 265000 6000 3500 PVR
-170000 265000 6000 3500 PVR
-180000 265000 6000 3500 PVR
-190000 265000 6000 3500 PVR
-200000 265000 6000 3500 PVR
-210000 265000 6000 3500 PVR
-220000 265000 6000 3500 PVR
-230000 265000 6000 3500 PVR
-240000 265000 6000 3500 PVR
-250000 265000 6000 3500 PVR
-250000 205000 6000 3500 PVR
-240000 205000 6000 3500 PVR
-230000 205000 6000 3500 PVR
-220000 205000 6000 3500 PVR
-210000 205000 6000 3500 PVR
-200000 205000 6000 3500 PVR
-190000 205000 6000 3500 PVR
-180000 205000 6000 3500 PVR
-170000 205000 6000 3500 PVR
-160000 205000 6000 3500 PVR
-150000 205000 6000 3500 PVR
-140000 205000 6000 3500 PVR
-280000 235000 6000 3500 PVSQ
-290000 235000 6000 3500 PVR
-300000 235000 6000 3500 PVR
-310000 235000 6000 3500 PVR
-320000 235000 6000 3500 PVR
-330000 235000 6000 3500 PVR
-340000 235000 6000 3500 PVR
-350000 235000 6000 3500 PVR
-360000 235000 6000 3500 PVR
-370000 235000 6000 3500 PVR
-380000 235000 6000 3500 PVR
-390000 235000 6000 3500 PVR
-390000 205000 6000 3500 PVR
-380000 205000 6000 3500 PVR
-370000 205000 6000 3500 PVR
-360000 205000 6000 3500 PVR
-350000 205000 6000 3500 PVR
-340000 205000 6000 3500 PVR
-330000 205000 6000 3500 PVR
-320000 205000 6000 3500 PVR
-310000 205000 6000 3500 PVR
-300000 205000 6000 3500 PVR
-290000 205000 6000 3500 PVR
-280000 205000 6000 3500 PVR
-77500 124000 12000 10000 PVR
-77500 218000 12000 10000 PVR
-82500 151000 7000 4200 PVR
-72500 156000 7000 4200 PVR
-82500 161000 7000 4200 PVR
-72500 166000 7000 4200 PVR
-82500 171000 7000 4200 PVR
-72500 176000 7000 4200 PVR
-82500 181000 7000 4200 PVR
-72500 186000 7000 4200 PVR
-82500 191000 7000 4200 PVSQ
-81500 239500 6000 3500 PVSQ
-81500 249500 6000 3500 PVR
-495000 220000 7000 4200 PVSQ
-470000 220000 7000 4200 PVR
-85000 330000 6000 3500 PVSQ
-85000 360000 6000 3500 PVR
-582500 245000 8000 4200 PVSQ
-592500 245000 8000 4200 PVR
-602500 245000 8000 4200 PVR
-535000 210000 6000 3500 PVSQ
-545000 210000 6000 3500 PVR
-355000 62500 6000 3500 PVSQ
-355000 22500 6000 3500 PVR
-105000 330000 7000 4200 PVSQ
-115000 330000 7000 4200 PVR
-172500 320000 6000 3500 PVSQ
-182500 320000 6000 3500 PVR
-192500 320000 6000 3500 PVR
-202500 320000 6000 3500 PVR
-202500 290000 6000 3500 PVR
-192500 290000 6000 3500 PVR
-182500 290000 6000 3500 PVR
-172500 290000 6000 3500 PVR
-495000 277500 7000 4200 PVSQ
-470000 277500 7000 4200 PVR
-570000 360000 8000 4200 PVSQ
-560000 360000 8000 4200 PVR
-550000 360000 8000 4200 PVR
-280000 257500 6000 3500 PVSQ
-280000 297500 6000 3500 PVR
-116000 280000 6000 3500 PVSQ
-76000 280000 6000 3500 PVR
-490000 370000 6000 3500 PVSQ
-475000 370000 6000 3500 PVR
-530000 292500 8000 4200 PVSQ
-540000 292500 8000 4200 PVR
-550000 292500 8000 4200 PVR
-652500 47500 6000 3500 PVSQ
-652500 57500 6000 3500 PVR
-652500 67500 6000 3500 PVR
-652500 77500 6000 3500 PVR
-652500 87500 6000 3500 PVR
-652500 97500 6000 3500 PVR
-652500 107500 6000 3500 PVR
-652500 117500 6000 3500 PVR
-652500 127500 6000 3500 PVR
-652500 137500 6000 3500 PVR
-652500 147500 6000 3500 PVR
-652500 157500 6000 3500 PVR
-652500 167500 6000 3500 PVR
-652500 177500 6000 3500 PVR
-652500 187500 6000 3500 PVR
-652500 197500 6000 3500 PVR
-652500 207500 6000 3500 PVR
-652500 217500 6000 3500 PVR
-652500 227500 6000 3500 PVR
-652500 237500 6000 3500 PVR
-652500 247500 6000 3500 PVR
-652500 257500 6000 3500 PVR
-652500 267500 6000 3500 PVR
-652500 277500 6000 3500 PVR
-652500 287500 6000 3500 PVR
-652500 297500 6000 3500 PVR
-652500 307500 6000 3500 PVR
-652500 317500 6000 3500 PVR
-652500 327500 6000 3500 PVR
-652500 337500 6000 3500 PVR
-652500 347500 6000 3500 PVR
-652500 357500 6000 3500 PVR
-642500 47500 6000 3500 PVR
-642500 57500 6000 3500 PVR
-642500 67500 6000 3500 PVR
-642500 77500 6000 3500 PVR
-642500 87500 6000 3500 PVR
-642500 97500 6000 3500 PVR
-642500 107500 6000 3500 PVR
-642500 117500 6000 3500 PVR
-642500 127500 6000 3500 PVR
-642500 137500 6000 3500 PVR
-642500 147500 6000 3500 PVR
-642500 157500 6000 3500 PVR
-642500 167500 6000 3500 PVR
-642500 177500 6000 3500 PVR
-642500 187500 6000 3500 PVR
-642500 197500 6000 3500 PVR
-642500 207500 6000 3500 PVR
-642500 217500 6000 3500 PVR
-642500 227500 6000 3500 PVR
-642500 237500 6000 3500 PVR
-642500 247500 6000 3500 PVR
-642500 257500 6000 3500 PVR
-642500 267500 6000 3500 PVR
-642500 277500 6000 3500 PVR
-642500 287500 6000 3500 PVR
-642500 297500 6000 3500 PVR
-642500 307500 6000 3500 PVR
-642500 317500 6000 3500 PVR
-642500 327500 6000 3500 PVR
-642500 337500 6000 3500 PVR
-642500 347500 6000 3500 PVR
-642500 357500 6000 3500 PVR
-632500 47500 6000 3500 PVR
-632500 57500 6000 3500 PVR
-632500 67500 6000 3500 PVR
-632500 77500 6000 3500 PVR
-632500 87500 6000 3500 PVR
-632500 97500 6000 3500 PVR
-632500 107500 6000 3500 PVR
-632500 117500 6000 3500 PVR
-632500 127500 6000 3500 PVR
-632500 137500 6000 3500 PVR
-632500 147500 6000 3500 PVR
-632500 157500 6000 3500 PVR
-632500 167500 6000 3500 PVR
-632500 177500 6000 3500 PVR
-632500 187500 6000 3500 PVR
-632500 197500 6000 3500 PVR
-632500 207500 6000 3500 PVR
-632500 217500 6000 3500 PVR
-632500 227500 6000 3500 PVR
-632500 237500 6000 3500 PVR
-632500 247500 6000 3500 PVR
-632500 257500 6000 3500 PVR
-632500 267500 6000 3500 PVR
-632500 277500 6000 3500 PVR
-632500 287500 6000 3500 PVR
-632500 297500 6000 3500 PVR
-632500 307500 6000 3500 PVR
-632500 317500 6000 3500 PVR
-632500 327500 6000 3500 PVR
-632500 337500 6000 3500 PVR
-632500 347500 6000 3500 PVR
-632500 357500 6000 3500 PVR
-662500 377500 12000 8000 PVR
-662500 27500 12000 8000 PVR
-332500 260000 6000 3500 PVSQ
-322500 260000 6000 3500 PVR
-447500 62500 6000 3500 PVSQ
-447500 22500 6000 3500 PVR
-300000 297500 6000 3500 PVSQ
-300000 257500 6000 3500 PVR
-475000 330000 6000 3500 PVSQ
-490000 330000 6000 3500 PVR
-55000 269500 7000 4200 PVSQ
-55000 287200 7000 4200 PVR
-64800 264600 7000 5200 PVR
-64800 292200 7000 5200 PVR
-582500 292500 8000 4200 PVSQ
-592500 292500 8000 4200 PVR
-602500 292500 8000 4200 PVR
-562500 187500 6000 3500 PVSQ
-592500 187500 6000 3500 PVR
-577500 117500 6000 3500 PVSQ
-587500 117500 6000 3500 PVR
-597500 117500 6000 3500 PVR
-607500 117500 6000 3500 PVR
-607500 87500 6000 3500 PVR
-597500 87500 6000 3500 PVR
-587500 87500 6000 3500 PVR
-577500 87500 6000 3500 PVR
-582500 210000 8000 4200 PVSQ
-592500 210000 8000 4200 PVR
-602500 210000 8000 4200 PVR
-577500 57500 6000 3500 PVSQ
-587500 57500 6000 3500 PVR
-597500 57500 6000 3500 PVR
-607500 57500 6000 3500 PVR
-607500 27500 6000 3500 PVR
-597500 27500 6000 3500 PVR
-587500 27500 6000 3500 PVR
-577500 27500 6000 3500 PVR
-322500 290000 6000 3500 PVSQ
-332500 290000 6000 3500 PVR
-87500 57500 6000 3500 PVSQ
-97500 62500 6000 3500 PVR
-87500 67500 6000 3500 PVR
-97500 72500 6000 3500 PVR
-87500 77500 6000 3500 PVR
-97500 82500 6000 3500 PVR
-87500 87500 6000 3500 PVR
-97500 92500 6000 3500 PVR
-62500 52500 14800 12800 PVR
-62500 97600 14800 12800 PVR
-74500 44500 8000 6000 PVR
-74500 105600 8000 6000 PVR
-360000 290000 6000 3500 PVSQ
-370000 290000 6000 3500 PVR
-380000 290000 6000 3500 PVR
-390000 290000 6000 3500 PVR
-390000 260000 6000 3500 PVR
-380000 260000 6000 3500 PVR
-370000 260000 6000 3500 PVR
-360000 260000 6000 3500 PVR
-317500 342500 6000 3500 PVSQ
-327500 342500 6000 3500 PVR
-137500 342500 6000 3500 PVSQ
-127500 342500 6000 3500 PVR
-540000 162500 6000 3500 PVSQ
-535000 152500 6000 3500 PVR
-530000 162500 6000 3500 PVR
-525000 152500 6000 3500 PVR
-520000 162500 6000 3500 PVR
-515000 152500 6000 3500 PVR
-510000 162500 6000 3500 PVR
-505000 152500 6000 3500 PVR
-500000 162500 6000 3500 PVR
-495000 152500 6000 3500 PVR
-490000 162500 6000 3500 PVR
-485000 152500 6000 3500 PVR
-480000 162500 6000 3500 PVR
-475000 152500 6000 3500 PVR
-470000 162500 6000 3500 PVR
-465000 152500 6000 3500 PVR
-460000 162500 6000 3500 PVR
-455000 152500 6000 3500 PVR
-450000 162500 6000 3500 PVR
-445000 152500 6000 3500 PVR
-440000 162500 6000 3500 PVR
-435000 152500 6000 3500 PVR
-430000 162500 6000 3500 PVR
-425000 152500 6000 3500 PVR
-420000 162500 6000 3500 PVR
-415000 152500 6000 3500 PVR
-410000 162500 6000 3500 PVR
-405000 152500 6000 3500 PVR
-400000 162500 6000 3500 PVR
-395000 152500 6000 3500 PVR
-390000 162500 6000 3500 PVR
-385000 152500 6000 3500 PVR
-380000 162500 6000 3500 PVR
-375000 152500 6000 3500 PVR
-370000 162500 6000 3500 PVR
-365000 152500 6000 3500 PVR
-340000 162500 6000 3500 PVR
-335000 152500 6000 3500 PVR
-330000 162500 6000 3500 PVR
-325000 152500 6000 3500 PVR
-320000 162500 6000 3500 PVR
-315000 152500 6000 3500 PVR
-310000 162500 6000 3500 PVR
-305000 152500 6000 3500 PVR
-300000 162500 6000 3500 PVR
-295000 152500 6000 3500 PVR
-290000 162500 6000 3500 PVR
-285000 152500 6000 3500 PVR
-280000 162500 6000 3500 PVR
-275000 152500 6000 3500 PVR
-270000 162500 6000 3500 PVR
-265000 152500 6000 3500 PVR
-260000 162500 6000 3500 PVR
-255000 152500 6000 3500 PVR
-250000 162500 6000 3500 PVR
-245000 152500 6000 3500 PVR
-240000 162500 6000 3500 PVR
-235000 152500 6000 3500 PVR
-230000 162500 6000 3500 PVR
-225000 152500 6000 3500 PVR
-220000 162500 6000 3500 PVR
-215000 152500 6000 3500 PVR
-210000 162500 6000 3500 PVR
-205000 152500 6000 3500 PVR
-200000 162500 6000 3500 PVR
-195000 152500 6000 3500 PVR
-190000 162500 6000 3500 PVR
-185000 152500 6000 3500 PVR
-180000 162500 6000 3500 PVR
-175000 152500 6000 3500 PVR
-170000 162500 6000 3500 PVR
-165000 152500 6000 3500 PVR
-573000 157500 8000 6000 PVR
-352500 157500 12000 10000 PVR
-132500 157500 12000 10000 PVR
-137500 372500 6000 3500 PVSQ
-127500 372500 6000 3500 PVR
-172500 372500 6000 3500 PVSQ
-182500 372500 6000 3500 PVR
-192500 372500 6000 3500 PVR
-202500 372500 6000 3500 PVR
-212500 372500 6000 3500 PVR
-222500 372500 6000 3500 PVR
-232500 372500 6000 3500 PVR
-242500 372500 6000 3500 PVR
-252500 372500 6000 3500 PVR
-262500 372500 6000 3500 PVR
-272500 372500 6000 3500 PVR
-282500 372500 6000 3500 PVR
-282500 342500 6000 3500 PVR
-272500 342500 6000 3500 PVR
-262500 342500 6000 3500 PVR
-252500 342500 6000 3500 PVR
-242500 342500 6000 3500 PVR
-232500 342500 6000 3500 PVR
-222500 342500 6000 3500 PVR
-212500 342500 6000 3500 PVR
-202500 342500 6000 3500 PVR
-192500 342500 6000 3500 PVR
-182500 342500 6000 3500 PVR
-172500 342500 6000 3500 PVR
-115500 305500 6000 3500 PVSQ
-75500 305500 6000 3500 PVR
-57500 27500 12000 8000 PVR
-57500 376200 12000 8000 PVR
-662500 27500 12000 8000 PVR
-662500 376200 12000 8000 PVR
-475000 342500 6000 3500 PVR
-490000 342500 6000 3500 PVR
-560000 342500 6000 3500 PVR
-602500 260000 6000 3500 PVR
-540000 260000 6000 3500 PVR
-540000 307500 6000 3500 PVR
-602500 307500 6000 3500 PVR
-592500 277500 6000 3500 PVR
-612500 287500 6000 3500 PVR
-540000 327500 6000 3500 PVR
-395000 317500 6000 3500 PVR
-475000 317500 6000 3500 PVR
-622500 342500 6000 3500 PVR
-612500 267500 6000 3500 PVR
-592500 222500 6000 3500 PVR
-462500 342500 6000 3500 PVR
-562500 220000 6000 3500 PVR
-622500 102500 6000 3500 PVR
-647500 102500 6000 3500 PVR
-567500 107500 6000 3500 PVR
-597500 47500 6000 3500 PVR
-537500 47500 6000 3500 PVR
-487500 47500 6000 3500 PVR
-517500 40000 6000 3500 PVR
-577500 40000 6000 3500 PVR
-402500 72500 6000 3500 PVR
-487500 72500 6000 3500 PVR
-537500 72500 6000 3500 PVR
-592500 72500 6000 3500 PVR
-497500 95000 6000 3500 PVR
-140000 95000 6000 3500 PVR
-175000 95000 6000 3500 PVR
-237500 95000 6000 3500 PVR
-322500 317500 6000 3500 PVR
-327500 392500 6000 3500 PVR
-240000 245000 6000 3500 PVR
-270000 245000 6000 3500 PVR
-140000 245000 6000 3500 PVR
-130000 280000 6000 3500 PVR
-130000 290000 6000 3500 PVR
-252500 287500 4000 2000 PVR
-427500 100000 6000 3500 PVR
-525000 100000 6000 3500 PVR
-315000 100000 6000 3500 PVR
-447500 95000 6000 3500 PVR
-202500 305000 6000 3500 PVR
-127500 392500 6000 3500 PVR
-212500 392500 6000 3500 PVR
-272500 392500 6000 3500 PVR
-360000 317500 6000 3500 PVR
-77500 392500 6000 3500 PVR
-487500 107500 4000 2000 PVR
-620000 52500 4000 2000 PVR
-622500 87500 4000 2000 PVR
-537500 107500 4000 2000 PVR
-637500 172500 4000 2000 PVR
-262500 172500 4000 2000 PVR
-597500 65000 4000 2000 PVR
-407500 47500 6000 3500 PVR
-205000 82500 4000 2000 PVR
-402500 235000 4000 2000 PVR
-295000 130000 4000 2000 PVR
-335000 52500 4000 2000 PVR
-527500 22500 4000 2000 PVR
-615000 15000 4000 2000 PVR
-477500 57500 4000 2000 PVR
-622500 35000 4000 2000 PVR
-647500 20000 4000 2000 PVR
-557500 15000 4000 2000 PVR
-502500 15000 4000 2000 PVR
-547500 142500 4000 2000 PVR
-610000 142500 4000 2000 PVR
-615000 130000 4000 2000 PVR
-555000 135000 4000 2000 PVR
-195000 57500 4000 2000 PVR
-242500 360000 4000 2000 PVR
-210000 67500 4000 2000 PVR
-115000 112500 4000 2000 PVR
-507500 107500 4000 2000 PVR
-417500 135000 4000 2000 PVR
-200000 62500 4000 2000 PVR
-512500 80000 4000 2000 PVR
-557500 237500 4000 2000 PVR
-447500 30000 4000 2000 PVR
-355000 130000 4000 2000 PVR
-272500 352500 6000 3500 PVR
-95000 245000 4000 2000 PVR
-115000 245000 4000 2000 PVR
-582500 285000 4000 2000 PVR
-110000 367500 4000 2000 PVR
-182500 385000 4000 2000 PVR
-252500 385000 4000 2000 PVR
-212500 352500 6000 3500 PVR
-232500 352500 6000 3500 PVR
-192500 360000 4000 2000 PVR
-417500 107500 4000 2000 PVR
-447500 107500 4000 2000 PVR
-472500 107500 4000 2000 PVR
-467500 15000 4000 2000 PVR
-255000 120000 4000 2000 PVR
-265000 120000 4000 2000 PVR
-265000 130000 4000 2000 PVR
-250000 130000 4000 2000 PVR
-260000 105000 4000 2000 PVR
-245000 105000 4000 2000 PVR
-285000 120000 4000 2000 PVR
-300000 120000 4000 2000 PVR
-290000 125000 4000 2000 PVR
-310000 125000 4000 2000 PVR
-295000 137500 4000 2000 PVR
-322500 137500 4000 2000 PVR
-145000 137500 4000 2000 PVR
-155000 125000 4000 2000 PVR
-160000 100000 4000 2000 PVR
-300000 100000 4000 2000 PVR
-170000 142500 4000 2000 PVR
-280000 142500 4000 2000 PVR
-180000 132500 4000 2000 PVR
-275000 130000 4000 2000 PVR
-190000 105000 4000 2000 PVR
-270000 105000 4000 2000 PVR
-200000 255000 4000 2000 PVR
-270000 255000 4000 2000 PVR
-322500 245000 6000 3500 PVR
-350000 250000 4000 2000 PVR
-202500 282500 4000 2000 PVR
-220000 282500 4000 2000 PVR
-257500 250000 4000 2000 PVR
-210000 250000 4000 2000 PVR
-257500 197500 4000 2000 PVR
-220000 225000 6000 3500 PVR
-240000 225000 6000 3500 PVR
-300000 212500 4000 2000 PVR
-215000 212500 4000 2000 PVR
-310000 217500 4000 2000 PVR
-225000 217500 4000 2000 PVR
-225000 195000 4000 2000 PVR
-315000 192500 4000 2000 PVR
-150000 187500 4000 2000 PVR
-325000 187500 4000 2000 PVR
-235000 187500 4000 2000 PVR
-360000 252500 4000 2000 PVR
-292500 222500 4000 2000 PVR
-170000 217500 4000 2000 PVR
-210000 230000 4000 2000 PVR
-390000 225000 4000 2000 PVR
-257500 277500 4000 2000 PVR
-385000 277500 4000 2000 PVR
-155000 282500 4000 2000 PVR
-340000 282500 4000 2000 PVR
-230000 182500 4000 2000 PVR
-245000 182500 4000 2000 PVR
-227500 90000 4000 2000 PVR
-255000 90000 4000 2000 PVR
-250000 172500 4000 2000 PVR
-190000 175000 4000 2000 PVR
-180000 170000 4000 2000 PVR
-430000 197500 4000 2000 PVR
-332500 270000 6000 3500 PVR
-290000 265000 4000 2000 PVR
-480000 265000 4000 2000 PVR
-470000 290000 6000 3500 PVR
-462500 282500 4000 2000 PVR
-300000 177500 4000 2000 PVR
-485000 177500 4000 2000 PVR
-305000 85000 4000 2000 PVR
-275000 85000 4000 2000 PVR
-330000 80000 4000 2000 PVR
-285000 80000 4000 2000 PVR
-350000 220000 4000 2000 PVR
-365000 220000 4000 2000 PVR
-355000 385000 4000 2000 PVR
-297500 352500 6000 3500 PVR
-375000 360000 4000 2000 PVR
-107500 147500 4000 2000 PVR
-122000 160500 4000 2000 PVR
-450000 182500 4000 2000 PVR
-262500 352500 4000 2000 PVR
-327500 352500 4000 2000 PVR
-400000 225000 4000 2000 PVR
-405000 215000 4000 2000 PVR
-410000 205000 4000 2000 PVR
-105000 270000 4000 2000 PVR
-415000 272500 4000 2000 PVR
-402500 250000 4000 2000 PVR
-222500 310000 4000 2000 PVR
-402500 310000 4000 2000 PVR
-520000 260000 4000 2000 PVR
-520000 337500 4000 2000 PVR
-210000 322500 4000 2000 PVR
-570000 322500 4000 2000 PVR
-570000 245000 4000 2000 PVR
-530000 327500 4000 2000 PVR
-282500 330000 4000 2000 PVR
-327500 305000 4000 2000 PVR
-49500 330000 4000 2000 PVR
-130000 255000 6000 3500 PVR
-76500 257000 4000 2000 PVR
-90500 305500 4000 2000 PVR
-592500 360000 6000 3500 PVR
-405000 342500 6000 3500 PVR
-335000 62500 800 400 DH
-335000 22500 800 400 DH
-297500 342500 800 400 DH
-297500 372500 800 400 DH
-415000 360000 800 400 DH
-405000 360000 800 400 DH
-395000 360000 800 400 DH
-447500 122500 800 400 DH
-447500 82500 800 400 DH
-397500 117500 800 400 DH
-407500 117500 800 400 DH
-417500 117500 800 400 DH
-427500 117500 800 400 DH
-427500 87500 800 400 DH
-417500 87500 800 400 DH
-407500 87500 800 400 DH
-397500 87500 800 400 DH
-557500 122500 800 400 DH
-557500 82500 800 400 DH
-537500 62500 800 400 DH
-537500 22500 800 400 DH
-487500 57500 800 400 DH
-497500 57500 800 400 DH
-507500 57500 800 400 DH
-517500 57500 800 400 DH
-517500 27500 800 400 DH
-507500 27500 800 400 DH
-497500 27500 800 400 DH
-487500 27500 800 400 DH
-467500 62500 800 400 DH
-467500 22500 800 400 DH
-467500 122500 800 400 DH
-467500 82500 800 400 DH
-537500 122500 800 400 DH
-537500 82500 800 400 DH
-487500 117500 800 400 DH
-497500 117500 800 400 DH
-507500 117500 800 400 DH
-517500 117500 800 400 DH
-517500 87500 800 400 DH
-507500 87500 800 400 DH
-497500 87500 800 400 DH
-487500 87500 800 400 DH
-397500 57500 800 400 DH
-407500 57500 800 400 DH
-417500 57500 800 400 DH
-427500 57500 800 400 DH
-427500 27500 800 400 DH
-417500 27500 800 400 DH
-407500 27500 800 400 DH
-397500 27500 800 400 DH
-557500 62500 800 400 DH
-557500 22500 800 400 DH
-157500 342500 800 400 DH
-157500 372500 800 400 DH
-57500 239500 800 400 DH
-57500 249500 800 400 DH
-530000 245000 800 400 DH
-540000 245000 800 400 DH
-550000 245000 800 400 DH
-245000 57500 800 400 DH
-255000 57500 800 400 DH
-265000 57500 800 400 DH
-275000 57500 800 400 DH
-285000 57500 800 400 DH
-295000 57500 800 400 DH
-305000 57500 800 400 DH
-315000 57500 800 400 DH
-315000 27500 800 400 DH
-305000 27500 800 400 DH
-295000 27500 800 400 DH
-285000 27500 800 400 DH
-275000 27500 800 400 DH
-265000 27500 800 400 DH
-255000 27500 800 400 DH
-245000 27500 800 400 DH
-317500 372500 800 400 DH
-327500 372500 800 400 DH
-420000 205000 800 400 DH
-430000 205000 800 400 DH
-420000 215000 800 400 DH
-430000 215000 800 400 DH
-420000 225000 800 400 DH
-430000 225000 800 400 DH
-420000 235000 800 400 DH
-430000 235000 800 400 DH
-140000 265000 800 400 DH
-150000 265000 800 400 DH
-160000 265000 800 400 DH
-170000 265000 800 400 DH
-180000 265000 800 400 DH
-190000 265000 800 400 DH
-200000 265000 800 400 DH
-210000 265000 800 400 DH
-220000 265000 800 400 DH
-230000 265000 800 400 DH
-240000 265000 800 400 DH
-250000 265000 800 400 DH
-250000 205000 800 400 DH
-240000 205000 800 400 DH
-230000 205000 800 400 DH
-220000 205000 800 400 DH
-210000 205000 800 400 DH
-200000 205000 800 400 DH
-190000 205000 800 400 DH
-180000 205000 800 400 DH
-170000 205000 800 400 DH
-160000 205000 800 400 DH
-150000 205000 800 400 DH
-140000 205000 800 400 DH
-280000 235000 800 400 DH
-290000 235000 800 400 DH
-300000 235000 800 400 DH
-310000 235000 800 400 DH
-320000 235000 800 400 DH
-330000 235000 800 400 DH
-340000 235000 800 400 DH
-350000 235000 800 400 DH
-360000 235000 800 400 DH
-370000 235000 800 400 DH
-380000 235000 800 400 DH
-390000 235000 800 400 DH
-390000 205000 800 400 DH
-380000 205000 800 400 DH
-370000 205000 800 400 DH
-360000 205000 800 400 DH
-350000 205000 800 400 DH
-340000 205000 800 400 DH
-330000 205000 800 400 DH
-320000 205000 800 400 DH
-310000 205000 800 400 DH
-300000 205000 800 400 DH
-290000 205000 800 400 DH
-280000 205000 800 400 DH
-77500 124000 800 400 DH
-77500 218000 800 400 DH
-82500 151000 800 400 DH
-72500 156000 800 400 DH
-82500 161000 800 400 DH
-72500 166000 800 400 DH
-82500 171000 800 400 DH
-72500 176000 800 400 DH
-82500 181000 800 400 DH
-72500 186000 800 400 DH
-82500 191000 800 400 DH
-81500 239500 800 400 DH
-81500 249500 800 400 DH
-495000 220000 800 400 DH
-470000 220000 800 400 DH
-85000 330000 800 400 DH
-85000 360000 800 400 DH
-582500 245000 800 400 DH
-592500 245000 800 400 DH
-602500 245000 800 400 DH
-535000 210000 800 400 DH
-545000 210000 800 400 DH
-355000 62500 800 400 DH
-355000 22500 800 400 DH
-105000 330000 800 400 DH
-115000 330000 800 400 DH
-172500 320000 800 400 DH
-182500 320000 800 400 DH
-192500 320000 800 400 DH
-202500 320000 800 400 DH
-202500 290000 800 400 DH
-192500 290000 800 400 DH
-182500 290000 800 400 DH
-172500 290000 800 400 DH
-495000 277500 800 400 DH
-470000 277500 800 400 DH
-570000 360000 800 400 DH
-560000 360000 800 400 DH
-550000 360000 800 400 DH
-280000 257500 800 400 DH
-280000 297500 800 400 DH
-116000 280000 800 400 DH
-76000 280000 800 400 DH
-490000 370000 800 400 DH
-475000 370000 800 400 DH
-530000 292500 800 400 DH
-540000 292500 800 400 DH
-550000 292500 800 400 DH
-652500 47500 800 400 DH
-652500 57500 800 400 DH
-652500 67500 800 400 DH
-652500 77500 800 400 DH
-652500 87500 800 400 DH
-652500 97500 800 400 DH
-652500 107500 800 400 DH
-652500 117500 800 400 DH
-652500 127500 800 400 DH
-652500 137500 800 400 DH
-652500 147500 800 400 DH
-652500 157500 800 400 DH
-652500 167500 800 400 DH
-652500 177500 800 400 DH
-652500 187500 800 400 DH
-652500 197500 800 400 DH
-652500 207500 800 400 DH
-652500 217500 800 400 DH
-652500 227500 800 400 DH
-652500 237500 800 400 DH
-652500 247500 800 400 DH
-652500 257500 800 400 DH
-652500 267500 800 400 DH
-652500 277500 800 400 DH
-652500 287500 800 400 DH
-652500 297500 800 400 DH
-652500 307500 800 400 DH
-652500 317500 800 400 DH
-652500 327500 800 400 DH
-652500 337500 800 400 DH
-652500 347500 800 400 DH
-652500 357500 800 400 DH
-642500 47500 800 400 DH
-642500 57500 800 400 DH
-642500 67500 800 400 DH
-642500 77500 800 400 DH
-642500 87500 800 400 DH
-642500 97500 800 400 DH
-642500 107500 800 400 DH
-642500 117500 800 400 DH
-642500 127500 800 400 DH
-642500 137500 800 400 DH
-642500 147500 800 400 DH
-642500 157500 800 400 DH
-642500 167500 800 400 DH
-642500 177500 800 400 DH
-642500 187500 800 400 DH
-642500 197500 800 400 DH
-642500 207500 800 400 DH
-642500 217500 800 400 DH
-642500 227500 800 400 DH
-642500 237500 800 400 DH
-642500 247500 800 400 DH
-642500 257500 800 400 DH
-642500 267500 800 400 DH
-642500 277500 800 400 DH
-642500 287500 800 400 DH
-642500 297500 800 400 DH
-642500 307500 800 400 DH
-642500 317500 800 400 DH
-642500 327500 800 400 DH
-642500 337500 800 400 DH
-642500 347500 800 400 DH
-642500 357500 800 400 DH
-632500 47500 800 400 DH
-632500 57500 800 400 DH
-632500 67500 800 400 DH
-632500 77500 800 400 DH
-632500 87500 800 400 DH
-632500 97500 800 400 DH
-632500 107500 800 400 DH
-632500 117500 800 400 DH
-632500 127500 800 400 DH
-632500 137500 800 400 DH
-632500 147500 800 400 DH
-632500 157500 800 400 DH
-632500 167500 800 400 DH
-632500 177500 800 400 DH
-632500 187500 800 400 DH
-632500 197500 800 400 DH
-632500 207500 800 400 DH
-632500 217500 800 400 DH
-632500 227500 800 400 DH
-632500 237500 800 400 DH
-632500 247500 800 400 DH
-632500 257500 800 400 DH
-632500 267500 800 400 DH
-632500 277500 800 400 DH
-632500 287500 800 400 DH
-632500 297500 800 400 DH
-632500 307500 800 400 DH
-632500 317500 800 400 DH
-632500 327500 800 400 DH
-632500 337500 800 400 DH
-632500 347500 800 400 DH
-632500 357500 800 400 DH
-662500 377500 800 400 DH
-662500 27500 800 400 DH
-332500 260000 800 400 DH
-322500 260000 800 400 DH
-447500 62500 800 400 DH
-447500 22500 800 400 DH
-300000 297500 800 400 DH
-300000 257500 800 400 DH
-475000 330000 800 400 DH
-490000 330000 800 400 DH
-55000 269500 800 400 DH
-55000 287200 800 400 DH
-64800 264600 800 400 DH
-64800 292200 800 400 DH
-582500 292500 800 400 DH
-592500 292500 800 400 DH
-602500 292500 800 400 DH
-562500 187500 800 400 DH
-592500 187500 800 400 DH
-577500 117500 800 400 DH
-587500 117500 800 400 DH
-597500 117500 800 400 DH
-607500 117500 800 400 DH
-607500 87500 800 400 DH
-597500 87500 800 400 DH
-587500 87500 800 400 DH
-577500 87500 800 400 DH
-582500 210000 800 400 DH
-592500 210000 800 400 DH
-602500 210000 800 400 DH
-577500 57500 800 400 DH
-587500 57500 800 400 DH
-597500 57500 800 400 DH
-607500 57500 800 400 DH
-607500 27500 800 400 DH
-597500 27500 800 400 DH
-587500 27500 800 400 DH
-577500 27500 800 400 DH
-322500 290000 800 400 DH
-332500 290000 800 400 DH
-87500 57500 800 400 DH
-97500 62500 800 400 DH
-87500 67500 800 400 DH
-97500 72500 800 400 DH
-87500 77500 800 400 DH
-97500 82500 800 400 DH
-87500 87500 800 400 DH
-97500 92500 800 400 DH
-62500 52500 800 400 DH
-62500 97600 800 400 DH
-74500 44500 800 400 DH
-74500 105600 800 400 DH
-360000 290000 800 400 DH
-370000 290000 800 400 DH
-380000 290000 800 400 DH
-390000 290000 800 400 DH
-390000 260000 800 400 DH
-380000 260000 800 400 DH
-370000 260000 800 400 DH
-360000 260000 800 400 DH
-317500 342500 800 400 DH
-327500 342500 800 400 DH
-137500 342500 800 400 DH
-127500 342500 800 400 DH
-540000 162500 800 400 DH
-535000 152500 800 400 DH
-530000 162500 800 400 DH
-525000 152500 800 400 DH
-520000 162500 800 400 DH
-515000 152500 800 400 DH
-510000 162500 800 400 DH
-505000 152500 800 400 DH
-500000 162500 800 400 DH
-495000 152500 800 400 DH
-490000 162500 800 400 DH
-485000 152500 800 400 DH
-480000 162500 800 400 DH
-475000 152500 800 400 DH
-470000 162500 800 400 DH
-465000 152500 800 400 DH
-460000 162500 800 400 DH
-455000 152500 800 400 DH
-450000 162500 800 400 DH
-445000 152500 800 400 DH
-440000 162500 800 400 DH
-435000 152500 800 400 DH
-430000 162500 800 400 DH
-425000 152500 800 400 DH
-420000 162500 800 400 DH
-415000 152500 800 400 DH
-410000 162500 800 400 DH
-405000 152500 800 400 DH
-400000 162500 800 400 DH
-395000 152500 800 400 DH
-390000 162500 800 400 DH
-385000 152500 800 400 DH
-380000 162500 800 400 DH
-375000 152500 800 400 DH
-370000 162500 800 400 DH
-365000 152500 800 400 DH
-340000 162500 800 400 DH
-335000 152500 800 400 DH
-330000 162500 800 400 DH
-325000 152500 800 400 DH
-320000 162500 800 400 DH
-315000 152500 800 400 DH
-310000 162500 800 400 DH
-305000 152500 800 400 DH
-300000 162500 800 400 DH
-295000 152500 800 400 DH
-290000 162500 800 400 DH
-285000 152500 800 400 DH
-280000 162500 800 400 DH
-275000 152500 800 400 DH
-270000 162500 800 400 DH
-265000 152500 800 400 DH
-260000 162500 800 400 DH
-255000 152500 800 400 DH
-250000 162500 800 400 DH
-245000 152500 800 400 DH
-240000 162500 800 400 DH
-235000 152500 800 400 DH
-230000 162500 800 400 DH
-225000 152500 800 400 DH
-220000 162500 800 400 DH
-215000 152500 800 400 DH
-210000 162500 800 400 DH
-205000 152500 800 400 DH
-200000 162500 800 400 DH
-195000 152500 800 400 DH
-190000 162500 800 400 DH
-185000 152500 800 400 DH
-180000 162500 800 400 DH
-175000 152500 800 400 DH
-170000 162500 800 400 DH
-165000 152500 800 400 DH
-573000 157500 800 400 DH
-352500 157500 800 400 DH
-132500 157500 800 400 DH
-137500 372500 800 400 DH
-127500 372500 800 400 DH
-172500 372500 800 400 DH
-182500 372500 800 400 DH
-192500 372500 800 400 DH
-202500 372500 800 400 DH
-212500 372500 800 400 DH
-222500 372500 800 400 DH
-232500 372500 800 400 DH
-242500 372500 800 400 DH
-252500 372500 800 400 DH
-262500 372500 800 400 DH
-272500 372500 800 400 DH
-282500 372500 800 400 DH
-282500 342500 800 400 DH
-272500 342500 800 400 DH
-262500 342500 800 400 DH
-252500 342500 800 400 DH
-242500 342500 800 400 DH
-232500 342500 800 400 DH
-222500 342500 800 400 DH
-212500 342500 800 400 DH
-202500 342500 800 400 DH
-192500 342500 800 400 DH
-182500 342500 800 400 DH
-172500 342500 800 400 DH
-115500 305500 800 400 DH
-75500 305500 800 400 DH
-57500 27500 800 400 DH
-57500 376200 800 400 DH
-662500 27500 800 400 DH
-662500 376200 800 400 DH
-475000 342500 800 400 DH
-490000 342500 800 400 DH
-560000 342500 800 400 DH
-602500 260000 800 400 DH
-540000 260000 800 400 DH
-540000 307500 800 400 DH
-602500 307500 800 400 DH
-592500 277500 800 400 DH
-612500 287500 800 400 DH
-540000 327500 800 400 DH
-395000 317500 800 400 DH
-475000 317500 800 400 DH
-622500 342500 800 400 DH
-612500 267500 800 400 DH
-592500 222500 800 400 DH
-462500 342500 800 400 DH
-562500 220000 800 400 DH
-622500 102500 800 400 DH
-647500 102500 800 400 DH
-567500 107500 800 400 DH
-597500 47500 800 400 DH
-537500 47500 800 400 DH
-487500 47500 800 400 DH
-517500 40000 800 400 DH
-577500 40000 800 400 DH
-402500 72500 800 400 DH
-487500 72500 800 400 DH
-537500 72500 800 400 DH
-592500 72500 800 400 DH
-497500 95000 800 400 DH
-140000 95000 800 400 DH
-175000 95000 800 400 DH
-237500 95000 800 400 DH
-322500 317500 800 400 DH
-327500 392500 800 400 DH
-240000 245000 800 400 DH
-270000 245000 800 400 DH
-140000 245000 800 400 DH
-130000 280000 800 400 DH
-130000 290000 800 400 DH
-252500 287500 800 400 DH
-427500 100000 800 400 DH
-525000 100000 800 400 DH
-315000 100000 800 400 DH
-447500 95000 800 400 DH
-202500 305000 800 400 DH
-127500 392500 800 400 DH
-212500 392500 800 400 DH
-272500 392500 800 400 DH
-360000 317500 800 400 DH
-77500 392500 800 400 DH
-487500 107500 800 400 DH
-620000 52500 800 400 DH
-622500 87500 800 400 DH
-537500 107500 800 400 DH
-637500 172500 800 400 DH
-262500 172500 800 400 DH
-597500 65000 800 400 DH
-407500 47500 800 400 DH
-205000 82500 800 400 DH
-402500 235000 800 400 DH
-295000 130000 800 400 DH
-335000 52500 800 400 DH
-527500 22500 800 400 DH
-615000 15000 800 400 DH
-477500 57500 800 400 DH
-622500 35000 800 400 DH
-647500 20000 800 400 DH
-557500 15000 800 400 DH
-502500 15000 800 400 DH
-547500 142500 800 400 DH
-610000 142500 800 400 DH
-615000 130000 800 400 DH
-555000 135000 800 400 DH
-195000 57500 800 400 DH
-242500 360000 800 400 DH
-210000 67500 800 400 DH
-115000 112500 800 400 DH
-507500 107500 800 400 DH
-417500 135000 800 400 DH
-200000 62500 800 400 DH
-512500 80000 800 400 DH
-557500 237500 800 400 DH
-447500 30000 800 400 DH
-355000 130000 800 400 DH
-272500 352500 800 400 DH
-95000 245000 800 400 DH
-115000 245000 800 400 DH
-582500 285000 800 400 DH
-110000 367500 800 400 DH
-182500 385000 800 400 DH
-252500 385000 800 400 DH
-212500 352500 800 400 DH
-232500 352500 800 400 DH
-192500 360000 800 400 DH
-417500 107500 800 400 DH
-447500 107500 800 400 DH
-472500 107500 800 400 DH
-467500 15000 800 400 DH
-255000 120000 800 400 DH
-265000 120000 800 400 DH
-265000 130000 800 400 DH
-250000 130000 800 400 DH
-260000 105000 800 400 DH
-245000 105000 800 400 DH
-285000 120000 800 400 DH
-300000 120000 800 400 DH
-290000 125000 800 400 DH
-310000 125000 800 400 DH
-295000 137500 800 400 DH
-322500 137500 800 400 DH
-145000 137500 800 400 DH
-155000 125000 800 400 DH
-160000 100000 800 400 DH
-300000 100000 800 400 DH
-170000 142500 800 400 DH
-280000 142500 800 400 DH
-180000 132500 800 400 DH
-275000 130000 800 400 DH
-190000 105000 800 400 DH
-270000 105000 800 400 DH
-200000 255000 800 400 DH
-270000 255000 800 400 DH
-322500 245000 800 400 DH
-350000 250000 800 400 DH
-202500 282500 800 400 DH
-220000 282500 800 400 DH
-257500 250000 800 400 DH
-210000 250000 800 400 DH
-257500 197500 800 400 DH
-220000 225000 800 400 DH
-240000 225000 800 400 DH
-300000 212500 800 400 DH
-215000 212500 800 400 DH
-310000 217500 800 400 DH
-225000 217500 800 400 DH
-225000 195000 800 400 DH
-315000 192500 800 400 DH
-150000 187500 800 400 DH
-325000 187500 800 400 DH
-235000 187500 800 400 DH
-360000 252500 800 400 DH
-292500 222500 800 400 DH
-170000 217500 800 400 DH
-210000 230000 800 400 DH
-390000 225000 800 400 DH
-257500 277500 800 400 DH
-385000 277500 800 400 DH
-155000 282500 800 400 DH
-340000 282500 800 400 DH
-230000 182500 800 400 DH
-245000 182500 800 400 DH
-227500 90000 800 400 DH
-255000 90000 800 400 DH
-250000 172500 800 400 DH
-190000 175000 800 400 DH
-180000 170000 800 400 DH
-430000 197500 800 400 DH
-332500 270000 800 400 DH
-290000 265000 800 400 DH
-480000 265000 800 400 DH
-470000 290000 800 400 DH
-462500 282500 800 400 DH
-300000 177500 800 400 DH
-485000 177500 800 400 DH
-305000 85000 800 400 DH
-275000 85000 800 400 DH
-330000 80000 800 400 DH
-285000 80000 800 400 DH
-350000 220000 800 400 DH
-365000 220000 800 400 DH
-355000 385000 800 400 DH
-297500 352500 800 400 DH
-375000 360000 800 400 DH
-107500 147500 800 400 DH
-122000 160500 800 400 DH
-450000 182500 800 400 DH
-262500 352500 800 400 DH
-327500 352500 800 400 DH
-400000 225000 800 400 DH
-405000 215000 800 400 DH
-410000 205000 800 400 DH
-105000 270000 800 400 DH
-415000 272500 800 400 DH
-402500 250000 800 400 DH
-222500 310000 800 400 DH
-402500 310000 800 400 DH
-520000 260000 800 400 DH
-520000 337500 800 400 DH
-210000 322500 800 400 DH
-570000 322500 800 400 DH
-570000 245000 800 400 DH
-530000 327500 800 400 DH
-282500 330000 800 400 DH
-327500 305000 800 400 DH
-49500 330000 800 400 DH
-130000 255000 800 400 DH
-76500 257000 800 400 DH
-90500 305500 800 400 DH
-592500 360000 800 400 DH
-405000 342500 800 400 DH
-/Color {0.000 0.000 0.000 mysetrgbcolor} def Color
-grestore
-gsave
-0.00072 0.00072 scale
-214900 579300 translate
-0.500 0.500 scale
-842140 0 translate
-90 rotate
-0 842140 translate
-1 -1 scale
-400 400 translate
-/Color {0.000 0.000 0.000 mysetrgbcolor} def Color
-335000 32500 335000 22500 2000 L
-335000 62500 335000 52500 2000 L
-340000 52500 330000 52500 2000 L
-340000 32500 340000 52500 2000 L
-330000 32500 340000 32500 2000 L
-330000 52500 330000 32500 2000 L
-333000 48500 333000 50500 400 L
-333000 48500 333500 48000 400 L
-333500 48000 334500 48000 400 L
-335000 48500 334500 48000 400 L
-335000 48500 335000 50000 400 L
-333000 50000 337000 50000 400 L
-335000 50000 337000 48000 400 L
-337000 45299 337000 46299 400 L
-333000 45799 337000 45799 400 L
-334000 46799 333000 45799 400 L
-333500 44098 333000 43598 400 L
-333000 42598 333000 43598 400 L
-333000 42598 333500 42098 400 L
-333500 42098 336500 42098 400 L
-337000 42598 336500 42098 400 L
-337000 42598 337000 43598 400 L
-336500 44098 337000 43598 400 L
-335000 42098 335000 43598 400 L
-297500 342500 297500 352500 1000 L
-297500 362500 297500 372500 1000 L
-297500 352500 302500 362500 1000 L
-302500 362500 292500 362500 1000 L
-292500 362500 297500 352500 1000 L
-302500 352500 292500 352500 1000 L
-298500 365000 302500 365000 400 L
-302500 366500 302000 367000 400 L
-299000 367000 302000 367000 400 L
-298500 366500 299000 367000 400 L
-298500 364500 298500 366500 400 L
-302500 364500 302500 366500 400 L
-302000 368201 302500 368701 400 L
-302500 368701 302500 370201 400 L
-302500 370201 302000 370701 400 L
-301000 370701 302000 370701 400 L
-298500 368201 301000 370701 400 L
-298500 368201 298500 370701 400 L
-425000 372000 385000 372000 2000 L
-385000 372000 385000 354000 2000 L
-385000 354000 425000 354000 2000 L
-425000 354000 425000 372000 2000 L
-425000 372000 385000 372000 2000 L
-385000 372000 385000 366000 2000 L
-385000 366000 425000 366000 2000 L
-425000 366000 425000 372000 2000 L
-412000 372000 412000 366000 1000 L
-398000 372000 398000 366000 1000 L
-425000 375500 425000 379000 400 L
-425000 375500 424500 375000 400 L
-423500 375000 424500 375000 400 L
-423500 375000 423000 375500 400 L
-423000 375500 423000 379000 400 L
-421799 378500 421299 379000 400 L
-419799 379000 421299 379000 400 L
-419799 379000 419299 378500 400 L
-419299 377500 419299 378500 400 L
-421799 375000 419299 377500 400 L
-419299 375000 421799 375000 400 L
-447500 92500 447500 82500 2000 L
-447500 122500 447500 112500 2000 L
-452500 112500 442500 112500 2000 L
-452500 92500 452500 112500 2000 L
-442500 92500 452500 92500 2000 L
-442500 112500 442500 92500 2000 L
-445500 108500 445500 110500 400 L
-445500 108500 446000 108000 400 L
-446000 108000 447000 108000 400 L
-447500 108500 447000 108000 400 L
-447500 108500 447500 110000 400 L
-445500 110000 449500 110000 400 L
-447500 110000 449500 108000 400 L
-449500 106799 447000 104299 400 L
-445500 104299 447000 104299 400 L
-445500 104299 445500 106799 400 L
-392500 122500 432500 122500 1000 L
-432500 122500 432500 82500 1000 L
-432500 82500 392500 82500 1000 L
-392500 122500 392500 107500 1000 L
-392500 97500 392500 82500 1000 L
-392500 102500 5000 5000 1000 90 180 A
-402500 100500 402500 104000 400 L
-402500 104000 403000 104500 400 L
-403000 104500 404000 104500 400 L
-404000 104500 404500 104000 400 L
-404500 100500 404500 104000 400 L
-406201 104500 407201 104500 400 L
-406701 100500 406701 104500 400 L
-405701 101500 406701 100500 400 L
-408402 100500 410402 100500 400 L
-408402 100500 408402 102500 400 L
-408402 102500 408902 102000 400 L
-408902 102000 409902 102000 400 L
-409902 102000 410402 102500 400 L
-410402 102500 410402 104000 400 L
-409902 104500 410402 104000 400 L
-408902 104500 409902 104500 400 L
-408402 104000 408902 104500 400 L
-557500 92500 557500 82500 2000 L
-557500 122500 557500 112500 2000 L
-562500 112500 552500 112500 2000 L
-562500 92500 562500 112500 2000 L
-552500 92500 562500 92500 2000 L
-552500 112500 552500 92500 2000 L
-555500 108500 555500 110500 400 L
-555500 108500 556000 108000 400 L
-556000 108000 557000 108000 400 L
-557500 108500 557000 108000 400 L
-557500 108500 557500 110000 400 L
-555500 110000 559500 110000 400 L
-557500 110000 559500 108000 400 L
-559000 106799 559500 106299 400 L
-558000 106799 559000 106799 400 L
-558000 106799 557500 106299 400 L
-557500 105299 557500 106299 400 L
-557500 105299 558000 104799 400 L
-558000 104799 559000 104799 400 L
-559500 105299 559000 104799 400 L
-559500 105299 559500 106299 400 L
-557000 106799 557500 106299 400 L
-556000 106799 557000 106799 400 L
-556000 106799 555500 106299 400 L
-555500 105299 555500 106299 400 L
-555500 105299 556000 104799 400 L
-556000 104799 557000 104799 400 L
-557500 105299 557000 104799 400 L
-537500 32500 537500 22500 2000 L
-537500 62500 537500 52500 2000 L
-542500 52500 532500 52500 2000 L
-542500 32500 542500 52500 2000 L
-532500 32500 542500 32500 2000 L
-532500 52500 532500 32500 2000 L
-535500 48500 535500 50500 400 L
-535500 48500 536000 48000 400 L
-536000 48000 537000 48000 400 L
-537500 48500 537000 48000 400 L
-537500 48500 537500 50000 400 L
-535500 50000 539500 50000 400 L
-537500 50000 539500 48000 400 L
-539500 45299 539500 46299 400 L
-535500 45799 539500 45799 400 L
-536500 46799 535500 45799 400 L
-482500 62500 522500 62500 1000 L
-522500 62500 522500 22500 1000 L
-522500 22500 482500 22500 1000 L
-482500 62500 482500 47500 1000 L
-482500 37500 482500 22500 1000 L
-482500 42500 5000 5000 1000 90 180 A
-492500 40500 492500 44000 400 L
-492500 44000 493000 44500 400 L
-493000 44500 494000 44500 400 L
-494000 44500 494500 44000 400 L
-494500 40500 494500 44000 400 L
-496201 44500 497201 44500 400 L
-496701 40500 496701 44500 400 L
-495701 41500 496701 40500 400 L
-498402 41000 498902 40500 400 L
-498902 40500 500402 40500 400 L
-500402 40500 500902 41000 400 L
-500902 41000 500902 42000 400 L
-498402 44500 500902 42000 400 L
-498402 44500 500902 44500 400 L
-467500 32500 467500 22500 2000 L
-467500 62500 467500 52500 2000 L
-472500 52500 462500 52500 2000 L
-472500 32500 472500 52500 2000 L
-462500 32500 472500 32500 2000 L
-462500 52500 462500 32500 2000 L
-465500 48500 465500 50500 400 L
-465500 48500 466000 48000 400 L
-466000 48000 467000 48000 400 L
-467500 48500 467000 48000 400 L
-467500 48500 467500 50000 400 L
-465500 50000 469500 50000 400 L
-467500 50000 469500 48000 400 L
-466000 46799 465500 46299 400 L
-465500 44799 465500 46299 400 L
-465500 44799 466000 44299 400 L
-466000 44299 467000 44299 400 L
-469500 46799 467000 44299 400 L
-469500 44299 469500 46799 400 L
-467500 92500 467500 82500 2000 L
-467500 122500 467500 112500 2000 L
-472500 112500 462500 112500 2000 L
-472500 92500 472500 112500 2000 L
-462500 92500 472500 92500 2000 L
-462500 112500 462500 92500 2000 L
-465500 108500 465500 110500 400 L
-465500 108500 466000 108000 400 L
-466000 108000 467000 108000 400 L
-467500 108500 467000 108000 400 L
-467500 108500 467500 110000 400 L
-465500 110000 469500 110000 400 L
-467500 110000 469500 108000 400 L
-465500 105299 466000 104799 400 L
-465500 105299 465500 106299 400 L
-466000 106799 465500 106299 400 L
-466000 106799 469000 106799 400 L
-469000 106799 469500 106299 400 L
-467500 105299 468000 104799 400 L
-467500 105299 467500 106799 400 L
-469500 105299 469500 106299 400 L
-469500 105299 469000 104799 400 L
-468000 104799 469000 104799 400 L
-537500 92500 537500 82500 2000 L
-537500 122500 537500 112500 2000 L
-542500 112500 532500 112500 2000 L
-542500 92500 542500 112500 2000 L
-532500 92500 542500 92500 2000 L
-532500 112500 532500 92500 2000 L
-535500 108500 535500 110500 400 L
-535500 108500 536000 108000 400 L
-536000 108000 537000 108000 400 L
-537500 108500 537000 108000 400 L
-537500 108500 537500 110000 400 L
-535500 110000 539500 110000 400 L
-537500 110000 539500 108000 400 L
-535500 104799 535500 106799 400 L
-535500 106799 537500 106799 400 L
-537500 106799 537000 106299 400 L
-537000 105299 537000 106299 400 L
-537000 105299 537500 104799 400 L
-537500 104799 539000 104799 400 L
-539500 105299 539000 104799 400 L
-539500 105299 539500 106299 400 L
-539000 106799 539500 106299 400 L
-482500 122500 522500 122500 1000 L
-522500 122500 522500 82500 1000 L
-522500 82500 482500 82500 1000 L
-482500 122500 482500 107500 1000 L
-482500 97500 482500 82500 1000 L
-482500 102500 5000 5000 1000 90 180 A
-492500 100500 492500 104000 400 L
-492500 104000 493000 104500 400 L
-493000 104500 494000 104500 400 L
-494000 104500 494500 104000 400 L
-494500 100500 494500 104000 400 L
-496201 104500 497201 104500 400 L
-496701 100500 496701 104500 400 L
-495701 101500 496701 100500 400 L
-498402 102500 500402 100500 400 L
-498402 102500 500902 102500 400 L
-500402 100500 500402 104500 400 L
-392500 62500 432500 62500 1000 L
-432500 62500 432500 22500 1000 L
-432500 22500 392500 22500 1000 L
-392500 62500 392500 47500 1000 L
-392500 37500 392500 22500 1000 L
-392500 42500 5000 5000 1000 90 180 A
-402500 40500 402500 44000 400 L
-402500 44000 403000 44500 400 L
-403000 44500 404000 44500 400 L
-404000 44500 404500 44000 400 L
-404500 40500 404500 44000 400 L
-406201 44500 407201 44500 400 L
-406701 40500 406701 44500 400 L
-405701 41500 406701 40500 400 L
-408402 41000 408902 40500 400 L
-408902 40500 409902 40500 400 L
-409902 40500 410402 41000 400 L
-410402 41000 410402 44000 400 L
-409902 44500 410402 44000 400 L
-408902 44500 409902 44500 400 L
-408402 44000 408902 44500 400 L
-408902 42500 410402 42500 400 L
-557500 32500 557500 22500 2000 L
-557500 62500 557500 52500 2000 L
-562500 52500 552500 52500 2000 L
-562500 32500 562500 52500 2000 L
-552500 32500 562500 32500 2000 L
-552500 52500 552500 32500 2000 L
-555500 48500 555500 50500 400 L
-555500 48500 556000 48000 400 L
-556000 48000 557000 48000 400 L
-557500 48500 557000 48000 400 L
-557500 48500 557500 50000 400 L
-555500 50000 559500 50000 400 L
-557500 50000 559500 48000 400 L
-557500 46799 555500 44799 400 L
-557500 44299 557500 46799 400 L
-555500 44799 559500 44799 400 L
-157500 342500 157500 352500 1000 L
-157500 362500 157500 372500 1000 L
-157500 352500 162500 362500 1000 L
-162500 362500 152500 362500 1000 L
-152500 362500 157500 352500 1000 L
-162500 352500 152500 352500 1000 L
-158500 365000 162500 365000 400 L
-162500 366500 162000 367000 400 L
-159000 367000 162000 367000 400 L
-158500 366500 159000 367000 400 L
-158500 364500 158500 366500 400 L
-162500 364500 162500 366500 400 L
-158500 368701 158500 369701 400 L
-158500 369201 162500 369201 400 L
-161500 368201 162500 369201 400 L
-57500 244500 7000 7000 1000 0 360 A
-57500 244500 5000 5000 1500 0 360 A
-53000 231500 53000 235500 400 L
-54500 231500 55000 232000 400 L
-55000 232000 55000 235000 400 L
-54500 235500 55000 235000 400 L
-52500 235500 54500 235500 400 L
-52500 231500 54500 231500 400 L
-56701 235500 57701 235500 400 L
-57201 231500 57201 235500 400 L
-56201 232500 57201 231500 400 L
-58902 235000 59402 235500 400 L
-58902 232000 58902 235000 400 L
-58902 232000 59402 231500 400 L
-59402 231500 60402 231500 400 L
-60402 231500 60902 232000 400 L
-60902 232000 60902 235000 400 L
-60402 235500 60902 235000 400 L
-59402 235500 60402 235500 400 L
-58902 234500 60902 232500 400 L
-547000 233000 547000 239000 1000 L
-533000 233000 533000 239000 1000 L
-520000 239000 520000 233000 2000 L
-560000 239000 520000 239000 2000 L
-560000 233000 560000 239000 2000 L
-520000 233000 560000 233000 2000 L
-520000 251000 520000 233000 2000 L
-560000 251000 520000 251000 2000 L
-560000 233000 560000 251000 2000 L
-520000 233000 560000 233000 2000 L
-520000 226500 520000 229500 400 L
-520000 226500 520500 226000 400 L
-520500 226000 521500 226000 400 L
-521500 226000 522000 226500 400 L
-522000 226500 522000 229500 400 L
-521500 230000 522000 229500 400 L
-520500 230000 521500 230000 400 L
-520000 229500 520500 230000 400 L
-521000 229000 522000 230000 400 L
-523201 226500 523701 226000 400 L
-523701 226000 525201 226000 400 L
-525201 226000 525701 226500 400 L
-525701 226500 525701 227500 400 L
-523201 230000 525701 227500 400 L
-523201 230000 525701 230000 400 L
-240000 62500 320000 62500 1000 L
-320000 62500 320000 22500 1000 L
-320000 22500 240000 22500 1000 L
-240000 62500 240000 47500 1000 L
-240000 37500 240000 22500 1000 L
-240000 42500 5000 5000 1000 90 180 A
-250000 40500 250000 44000 400 L
-250000 44000 250500 44500 400 L
-250500 44500 251500 44500 400 L
-251500 44500 252000 44000 400 L
-252000 40500 252000 44000 400 L
-253201 44500 255701 42000 400 L
-255701 40500 255701 42000 400 L
-253201 40500 255701 40500 400 L
-322500 372500 10000 10000 1000 0 360 A
-333000 366500 334500 366500 400 L
-332500 366000 333000 366500 400 L
-332500 363000 332500 366000 400 L
-332500 363000 333000 362500 400 L
-333000 362500 334500 362500 400 L
-335701 364500 337701 362500 400 L
-335701 364500 338201 364500 400 L
-337701 362500 337701 366500 400 L
-425000 210000 425000 200000 1000 L
-415000 210000 425000 210000 1000 L
-435000 200000 415000 200000 2000 L
-435000 240000 435000 200000 2000 L
-415000 240000 435000 240000 2000 L
-415000 200000 415000 240000 2000 L
-441000 200000 441000 201500 400 L
-437500 201500 441000 201500 400 L
-437000 201000 437500 201500 400 L
-437000 200500 437000 201000 400 L
-437500 200000 437000 200500 400 L
-437000 203201 441000 203201 400 L
-441000 202701 441000 204701 400 L
-441000 204701 440500 205201 400 L
-439500 205201 440500 205201 400 L
-439000 204701 439500 205201 400 L
-439000 203201 439000 204701 400 L
-437000 206902 437000 207902 400 L
-437000 207402 441000 207402 400 L
-440000 206402 441000 207402 400 L
-135000 270000 255000 270000 1000 L
-255000 270000 255000 200000 1000 L
-255000 200000 135000 200000 1000 L
-135000 270000 135000 240000 1000 L
-135000 230000 135000 200000 1000 L
-135000 235000 5000 5000 1000 90 180 A
-145000 233000 145000 236500 400 L
-145000 236500 145500 237000 400 L
-145500 237000 146500 237000 400 L
-146500 237000 147000 236500 400 L
-147000 233000 147000 236500 400 L
-149701 233000 150201 233500 400 L
-148701 233000 149701 233000 400 L
-148201 233500 148701 233000 400 L
-148201 233500 148201 236500 400 L
-148201 236500 148701 237000 400 L
-149701 235000 150201 235500 400 L
-148201 235000 149701 235000 400 L
-148701 237000 149701 237000 400 L
-149701 237000 150201 236500 400 L
-150201 235500 150201 236500 400 L
-275000 240000 395000 240000 1000 L
-395000 240000 395000 200000 1000 L
-395000 200000 275000 200000 1000 L
-275000 240000 275000 225000 1000 L
-275000 215000 275000 200000 1000 L
-275000 220000 5000 5000 1000 90 180 A
-285000 218000 285000 221500 400 L
-285000 221500 285500 222000 400 L
-285500 222000 286500 222000 400 L
-286500 222000 287000 221500 400 L
-287000 218000 287000 221500 400 L
-288201 221500 288701 222000 400 L
-288201 220500 288201 221500 400 L
-288201 220500 288701 220000 400 L
-288701 220000 289701 220000 400 L
-289701 220000 290201 220500 400 L
-290201 220500 290201 221500 400 L
-289701 222000 290201 221500 400 L
-288701 222000 289701 222000 400 L
-288201 219500 288701 220000 400 L
-288201 218500 288201 219500 400 L
-288201 218500 288701 218000 400 L
-288701 218000 289701 218000 400 L
-289701 218000 290201 218500 400 L
-290201 218500 290201 219500 400 L
-289701 220000 290201 219500 400 L
-31500 112000 34500 112000 1000 L
-34500 112000 34500 230000 1000 L
-34500 230000 31500 230000 1000 L
-31500 230000 31500 112000 1000 L
-31500 118000 34500 118000 1000 L
-31500 130000 34500 130000 1000 L
-31500 224000 34500 224000 1000 L
-31500 212000 34500 212000 1000 L
-4500 141000 31500 141000 2000 L
-31500 141000 31500 201000 1000 L
-31500 201000 4500 201000 2000 L
-4500 201000 4500 141000 2000 L
-34500 135000 54500 135000 2000 L
-54500 135000 54500 207000 2000 L
-54500 207000 34500 207000 2000 L
-34500 207000 34500 135000 1000 L
-82500 151000 54500 151000 2000 L
-72500 156000 54500 156000 2000 L
-82500 161000 54500 161000 2000 L
-72500 166000 54500 166000 2000 L
-82500 171000 54500 171000 2000 L
-72500 176000 54500 176000 2000 L
-82500 181000 54500 181000 2000 L
-72500 186000 54500 186000 2000 L
-82500 191000 54500 191000 2000 L
-42500 144000 42500 145500 400 L
-39000 145500 42500 145500 400 L
-38500 145000 39000 145500 400 L
-38500 144500 38500 145000 400 L
-39000 144000 38500 144500 400 L
-38500 146701 40500 148701 400 L
-40500 148701 42000 148701 400 L
-42500 148201 42000 148701 400 L
-42500 147201 42500 148201 400 L
-42000 146701 42500 147201 400 L
-41000 146701 42000 146701 400 L
-41000 146701 40500 147201 400 L
-40500 147201 40500 148701 400 L
-81500 244500 5000 5000 1500 0 360 A
-81500 244500 7000 7000 1000 0 360 A
-77000 231500 77000 235500 400 L
-78500 231500 79000 232000 400 L
-79000 232000 79000 235000 400 L
-78500 235500 79000 235000 400 L
-76500 235500 78500 235500 400 L
-76500 231500 78500 231500 400 L
-80201 235500 82201 233500 400 L
-82201 232000 82201 233500 400 L
-81701 231500 82201 232000 400 L
-80701 231500 81701 231500 400 L
-80201 232000 80701 231500 400 L
-80201 232000 80201 233000 400 L
-80201 233000 80701 233500 400 L
-80701 233500 82201 233500 400 L
-482500 220000 25000 25000 1000 180 360 A
-455500 241000 457000 241000 400 L
-457500 241500 457000 241000 400 L
-457500 241500 457500 244500 400 L
-457500 244500 457000 245000 400 L
-455500 245000 457000 245000 400 L
-454299 241000 451799 243500 400 L
-451799 243500 451799 245000 400 L
-451799 245000 454299 245000 400 L
-90000 340000 80000 340000 1000 L
-80000 350000 85000 340000 1000 L
-90000 350000 80000 350000 1000 L
-85000 340000 90000 350000 1000 L
-85000 350000 85000 360000 1000 L
-85000 330000 85000 340000 1000 L
-86000 352500 90000 352500 400 L
-90000 354000 89500 354500 400 L
-86500 354500 89500 354500 400 L
-86000 354000 86500 354500 400 L
-86000 352000 86000 354000 400 L
-90000 352000 90000 354000 400 L
-89500 355701 90000 356201 400 L
-90000 356201 90000 357201 400 L
-90000 357201 89500 357701 400 L
-86500 357701 89500 357701 400 L
-86000 357201 86500 357701 400 L
-86000 356201 86000 357201 400 L
-86500 355701 86000 356201 400 L
-88000 356201 88000 357701 400 L
-599500 233000 599500 239000 1000 L
-585500 233000 585500 239000 1000 L
-572500 239000 572500 233000 2000 L
-612500 239000 572500 239000 2000 L
-612500 233000 612500 239000 2000 L
-572500 233000 612500 233000 2000 L
-572500 251000 572500 233000 2000 L
-612500 251000 572500 251000 2000 L
-612500 233000 612500 251000 2000 L
-572500 233000 612500 233000 2000 L
-572500 226500 572500 229500 400 L
-572500 226500 573000 226000 400 L
-573000 226000 574000 226000 400 L
-574000 226000 574500 226500 400 L
-574500 226500 574500 229500 400 L
-574000 230000 574500 229500 400 L
-573000 230000 574000 230000 400 L
-572500 229500 573000 230000 400 L
-573500 229000 574500 230000 400 L
-576201 230000 577201 230000 400 L
-576701 226000 576701 230000 400 L
-575701 227000 576701 226000 400 L
-540000 210000 10000 10000 1000 0 360 A
-550500 204000 552000 204000 400 L
-550000 203500 550500 204000 400 L
-550000 200500 550000 203500 400 L
-550000 200500 550500 200000 400 L
-550500 200000 552000 200000 400 L
-553701 204000 554701 204000 400 L
-554201 200000 554201 204000 400 L
-553201 201000 554201 200000 400 L
-556402 204000 557402 204000 400 L
-556902 200000 556902 204000 400 L
-555902 201000 556902 200000 400 L
-355000 32500 355000 22500 2000 L
-355000 62500 355000 52500 2000 L
-360000 52500 350000 52500 2000 L
-360000 32500 360000 52500 2000 L
-350000 32500 360000 32500 2000 L
-350000 52500 350000 32500 2000 L
-353000 48500 353000 50500 400 L
-353000 48500 353500 48000 400 L
-353500 48000 354500 48000 400 L
-355000 48500 354500 48000 400 L
-355000 48500 355000 50000 400 L
-353000 50000 357000 50000 400 L
-355000 50000 357000 48000 400 L
-357000 45299 357000 46299 400 L
-353000 45799 357000 45799 400 L
-354000 46799 353000 45799 400 L
-355000 44098 353000 42098 400 L
-355000 41598 355000 44098 400 L
-353000 42098 357000 42098 400 L
-100000 325000 100000 335000 2000 L
-100000 335000 120000 335000 2000 L
-120000 335000 120000 325000 2000 L
-120000 325000 100000 325000 2000 L
-100000 335000 110000 335000 1000 L
-110000 335000 110000 325000 1000 L
-126000 325000 126000 326500 400 L
-122500 326500 126000 326500 400 L
-122000 326000 122500 326500 400 L
-122000 325500 122000 326000 400 L
-122500 325000 122000 325500 400 L
-122000 328201 126000 328201 400 L
-126000 327701 126000 329701 400 L
-126000 329701 125500 330201 400 L
-124500 330201 125500 330201 400 L
-124000 329701 124500 330201 400 L
-124000 328201 124000 329701 400 L
-125500 331402 126000 331902 400 L
-126000 331902 126000 333402 400 L
-126000 333402 125500 333902 400 L
-124500 333902 125500 333902 400 L
-122000 331402 124500 333902 400 L
-122000 331402 122000 333902 400 L
-167500 325000 207500 325000 1000 L
-207500 325000 207500 285000 1000 L
-207500 285000 167500 285000 1000 L
-167500 325000 167500 310000 1000 L
-167500 300000 167500 285000 1000 L
-167500 305000 5000 5000 1000 90 180 A
-177500 303000 177500 306500 400 L
-177500 306500 178000 307000 400 L
-178000 307000 179000 307000 400 L
-179000 307000 179500 306500 400 L
-179500 303000 179500 306500 400 L
-181201 307000 182201 307000 400 L
-181701 303000 181701 307000 400 L
-180701 304000 181701 303000 400 L
-183902 307000 184902 307000 400 L
-184402 303000 184402 307000 400 L
-183402 304000 184402 303000 400 L
-482500 277500 25000 25000 1000 180 360 A
-455500 298500 457000 298500 400 L
-457500 299000 457000 298500 400 L
-457500 299000 457500 302000 400 L
-457500 302000 457000 302500 400 L
-455500 302500 457000 302500 400 L
-454299 299000 453799 298500 400 L
-454299 299000 454299 300000 400 L
-454299 300000 453799 300500 400 L
-452799 300500 453799 300500 400 L
-452799 300500 452299 300000 400 L
-452299 299000 452299 300000 400 L
-452799 298500 452299 299000 400 L
-452799 298500 453799 298500 400 L
-454299 301000 453799 300500 400 L
-454299 301000 454299 302000 400 L
-454299 302000 453799 302500 400 L
-452799 302500 453799 302500 400 L
-452799 302500 452299 302000 400 L
-452299 301000 452299 302000 400 L
-452799 300500 452299 301000 400 L
-580000 372000 540000 372000 2000 L
-540000 372000 540000 354000 2000 L
-540000 354000 580000 354000 2000 L
-580000 354000 580000 372000 2000 L
-580000 372000 540000 372000 2000 L
-540000 372000 540000 366000 2000 L
-540000 366000 580000 366000 2000 L
-580000 366000 580000 372000 2000 L
-567000 372000 567000 366000 1000 L
-553000 372000 553000 366000 1000 L
-580000 375500 580000 379000 400 L
-580000 375500 579500 375000 400 L
-578500 375000 579500 375000 400 L
-578500 375000 578000 375500 400 L
-578000 375500 578000 379000 400 L
-576799 378500 576299 379000 400 L
-575299 379000 576299 379000 400 L
-575299 379000 574799 378500 400 L
-574799 375500 574799 378500 400 L
-575299 375000 574799 375500 400 L
-575299 375000 576299 375000 400 L
-576799 375500 576299 375000 400 L
-574799 377000 576299 377000 400 L
-280000 287500 280000 297500 2000 L
-280000 257500 280000 267500 2000 L
-275000 267500 285000 267500 2000 L
-275000 287500 275000 267500 2000 L
-285000 287500 275000 287500 2000 L
-285000 267500 285000 287500 2000 L
-282000 269500 282000 271500 400 L
-282000 271500 281500 272000 400 L
-280500 272000 281500 272000 400 L
-280000 271500 280500 272000 400 L
-280000 270000 280000 271500 400 L
-278000 270000 282000 270000 400 L
-280000 270000 278000 272000 400 L
-278000 273201 280000 275201 400 L
-280000 275201 281500 275201 400 L
-282000 274701 281500 275201 400 L
-282000 273701 282000 274701 400 L
-281500 273201 282000 273701 400 L
-280500 273201 281500 273201 400 L
-280500 273201 280000 273701 400 L
-280000 273701 280000 275201 400 L
-537500 320000 537500 375000 2000 L
-532500 320000 537500 320000 2000 L
-532500 375000 532500 320000 2000 L
-512500 375000 532500 375000 2000 L
-512500 320000 512500 375000 2000 L
-507500 320000 512500 320000 2000 L
-507500 385000 507500 320000 2000 L
-582500 375000 537500 375000 2000 L
-582500 320000 582500 375000 2000 L
-587500 320000 582500 320000 2000 L
-587500 375000 587500 320000 2000 L
-607500 375000 587500 375000 2000 L
-607500 320000 607500 375000 2000 L
-612500 320000 607500 320000 2000 L
-612500 385000 612500 320000 2000 L
-612500 385000 507500 385000 2000 L
-86000 280000 76000 280000 2000 L
-116000 280000 106000 280000 2000 L
-106000 275000 106000 285000 2000 L
-86000 275000 106000 275000 2000 L
-86000 285000 86000 275000 2000 L
-106000 285000 86000 285000 2000 L
-102000 282000 104000 282000 400 L
-102000 282000 101500 281500 400 L
-101500 280500 101500 281500 400 L
-102000 280000 101500 280500 400 L
-102000 280000 103500 280000 400 L
-103500 278000 103500 282000 400 L
-103500 280000 101500 278000 400 L
-98799 278000 99799 278000 400 L
-99299 278000 99299 282000 400 L
-100299 281000 99299 282000 400 L
-97598 281500 97098 282000 400 L
-95598 282000 97098 282000 400 L
-95598 282000 95098 281500 400 L
-95098 280500 95098 281500 400 L
-97598 278000 95098 280500 400 L
-95098 278000 97598 278000 400 L
-482500 370000 15000 15000 1000 180 360 A
-465500 381000 467000 381000 400 L
-467500 381500 467000 381000 400 L
-467500 381500 467500 384500 400 L
-467500 384500 467000 385000 400 L
-465500 385000 467000 385000 400 L
-462799 381000 463799 381000 400 L
-463299 381000 463299 385000 400 L
-464299 384000 463299 385000 400 L
-547000 280500 547000 286500 1000 L
-533000 280500 533000 286500 1000 L
-520000 286500 520000 280500 2000 L
-560000 286500 520000 286500 2000 L
-560000 280500 560000 286500 2000 L
-520000 280500 560000 280500 2000 L
-520000 298500 520000 280500 2000 L
-560000 298500 520000 298500 2000 L
-560000 280500 560000 298500 2000 L
-520000 280500 560000 280500 2000 L
-520000 274000 520000 277000 400 L
-520000 274000 520500 273500 400 L
-520500 273500 521500 273500 400 L
-521500 273500 522000 274000 400 L
-522000 274000 522000 277000 400 L
-521500 277500 522000 277000 400 L
-520500 277500 521500 277500 400 L
-520000 277000 520500 277500 400 L
-521000 276500 522000 277500 400 L
-523201 275500 525201 273500 400 L
-523201 275500 525701 275500 400 L
-525201 273500 525201 277500 400 L
-632500 357500 660000 357500 4000 L
-632500 347500 660000 347500 4000 L
-632500 337500 660000 337500 4000 L
-632500 327500 660000 327500 4000 L
-632500 317500 660000 317500 4000 L
-632500 307500 660000 307500 4000 L
-632500 297500 660000 297500 4000 L
-632500 287500 660000 287500 4000 L
-632500 277500 660000 277500 4000 L
-632500 267500 660000 267500 4000 L
-632500 257500 660000 257500 4000 L
-632500 247500 660000 247500 4000 L
-632500 237500 660000 237500 4000 L
-632500 227500 660000 227500 4000 L
-632500 217500 660000 217500 4000 L
-632500 207500 660000 207500 4000 L
-632500 197500 660000 197500 4000 L
-632500 187500 660000 187500 4000 L
-632500 177500 660000 177500 4000 L
-632500 167500 660000 167500 4000 L
-632500 157500 660000 157500 4000 L
-632500 147500 660000 147500 4000 L
-632500 137500 660000 137500 4000 L
-632500 127500 660000 127500 4000 L
-632500 117500 660000 117500 4000 L
-632500 107500 660000 107500 4000 L
-632500 97500 660000 97500 4000 L
-632500 87500 660000 87500 4000 L
-632500 77500 660000 77500 4000 L
-632500 67500 660000 67500 4000 L
-632500 57500 660000 57500 4000 L
-632500 47500 660000 47500 4000 L
-652500 387500 652500 365500 2000 L
-652500 365500 662000 365500 2000 L
-662000 365500 684500 365500 1000 L
-684500 365500 684500 377500 1000 L
-684500 377500 684500 387500 2000 L
-684500 387500 652500 387500 2000 L
-652500 39500 652500 17500 2000 L
-652500 17500 684500 17500 2000 L
-684500 17500 684500 27500 2000 L
-684500 27500 684500 39500 1000 L
-684500 39500 662000 39500 1000 L
-662000 39500 652500 39500 2000 L
-662000 365500 662000 39500 2000 L
-684500 377500 702500 377500 2000 L
-702500 377500 702500 27500 2000 L
-702500 27500 684500 27500 2000 L
-662500 342500 662500 345500 800 L
-662500 342500 669500 342500 800 L
-670500 343500 669500 342500 800 L
-670500 343500 670500 344500 800 L
-669500 345500 670500 344500 800 L
-670500 337098 670500 339098 800 L
-662500 338098 670500 338098 800 L
-664500 340098 662500 338098 800 L
-662500 330696 662500 334696 800 L
-662500 334696 666500 334696 800 L
-666500 334696 665500 333696 800 L
-665500 331696 665500 333696 800 L
-665500 331696 666500 330696 800 L
-666500 330696 669500 330696 800 L
-670500 331696 669500 330696 800 L
-670500 331696 670500 333696 800 L
-669500 334696 670500 333696 800 L
-327500 260000 10000 10000 1000 180 360 A
-315500 266000 317000 266000 400 L
-317500 266500 317000 266000 400 L
-317500 266500 317500 269500 400 L
-317500 269500 317000 270000 400 L
-315500 270000 317000 270000 400 L
-314299 266000 312299 268000 400 L
-312299 268000 312299 269500 400 L
-312799 270000 312299 269500 400 L
-312799 270000 313799 270000 400 L
-314299 269500 313799 270000 400 L
-314299 268500 314299 269500 400 L
-314299 268500 313799 268000 400 L
-312299 268000 313799 268000 400 L
-447500 32500 447500 22500 2000 L
-447500 62500 447500 52500 2000 L
-452500 52500 442500 52500 2000 L
-452500 32500 452500 52500 2000 L
-442500 32500 452500 32500 2000 L
-442500 52500 442500 32500 2000 L
-445500 48500 445500 50500 400 L
-445500 48500 446000 48000 400 L
-446000 48000 447000 48000 400 L
-447500 48500 447000 48000 400 L
-447500 48500 447500 50000 400 L
-445500 50000 449500 50000 400 L
-447500 50000 449500 48000 400 L
-446000 46799 445500 46299 400 L
-445500 45299 445500 46299 400 L
-445500 45299 446000 44799 400 L
-446000 44799 449000 44799 400 L
-449500 45299 449000 44799 400 L
-449500 45299 449500 46299 400 L
-449000 46799 449500 46299 400 L
-447500 44799 447500 46299 400 L
-300000 267500 300000 257500 2000 L
-300000 297500 300000 287500 2000 L
-305000 287500 295000 287500 2000 L
-305000 267500 305000 287500 2000 L
-295000 267500 305000 267500 2000 L
-295000 287500 295000 267500 2000 L
-298000 283500 298000 285500 400 L
-298000 283500 298500 283000 400 L
-298500 283000 299500 283000 400 L
-300000 283500 299500 283000 400 L
-300000 283500 300000 285000 400 L
-298000 285000 302000 285000 400 L
-300000 285000 302000 283000 400 L
-302000 280299 302000 281299 400 L
-298000 280799 302000 280799 400 L
-299000 281799 298000 280799 400 L
-301500 279098 302000 278598 400 L
-298500 279098 301500 279098 400 L
-298500 279098 298000 278598 400 L
-298000 277598 298000 278598 400 L
-298000 277598 298500 277098 400 L
-298500 277098 301500 277098 400 L
-302000 277598 301500 277098 400 L
-302000 277598 302000 278598 400 L
-301000 279098 299000 277098 400 L
-482500 330000 15000 15000 1000 0 360 A
-498000 319000 499500 319000 400 L
-497500 318500 498000 319000 400 L
-497500 315500 497500 318500 400 L
-497500 315500 498000 315000 400 L
-498000 315000 499500 315000 400 L
-500701 315500 501201 315000 400 L
-501201 315000 502701 315000 400 L
-502701 315000 503201 315500 400 L
-503201 315500 503201 316500 400 L
-500701 319000 503201 316500 400 L
-500701 319000 503201 319000 400 L
-382500 320000 382500 375000 2000 L
-377500 320000 382500 320000 2000 L
-377500 375000 377500 320000 2000 L
-357500 375000 377500 375000 2000 L
-357500 320000 357500 375000 2000 L
-352500 320000 357500 320000 2000 L
-352500 385000 352500 320000 2000 L
-427500 375000 382500 375000 2000 L
-427500 320000 427500 375000 2000 L
-432500 320000 427500 320000 2000 L
-432500 375000 432500 320000 2000 L
-452500 375000 432500 375000 2000 L
-452500 320000 452500 375000 2000 L
-457500 320000 452500 320000 2000 L
-457500 385000 457500 320000 2000 L
-457500 385000 352500 385000 2000 L
-70800 264600 45000 264600 2000 L
-45000 264600 45000 292200 2000 L
-45000 292200 70800 292200 2000 L
-58800 292200 58800 264600 2000 L
-45000 271500 8400 272500 2000 L
-8400 272500 8400 284300 2000 L
-8400 284300 45000 285300 2000 L
-66800 278400 67300 278900 400 L
-65300 278400 66800 278400 400 L
-64800 278900 65300 278400 400 L
-64800 278900 64800 279900 400 L
-64800 279900 65300 280400 400 L
-65300 280400 66800 280400 400 L
-66800 280400 67300 280900 400 L
-67300 280900 67300 281900 400 L
-66800 282400 67300 281900 400 L
-65300 282400 66800 282400 400 L
-64800 281900 65300 282400 400 L
-69001 282400 70001 282400 400 L
-69501 278400 69501 282400 400 L
-68501 279400 69501 278400 400 L
-599500 280500 599500 286500 1000 L
-585500 280500 585500 286500 1000 L
-572500 286500 572500 280500 2000 L
-612500 286500 572500 286500 2000 L
-612500 280500 612500 286500 2000 L
-572500 280500 612500 280500 2000 L
-572500 298500 572500 280500 2000 L
-612500 298500 572500 298500 2000 L
-612500 280500 612500 298500 2000 L
-572500 280500 612500 280500 2000 L
-572500 274000 572500 277000 400 L
-572500 274000 573000 273500 400 L
-573000 273500 574000 273500 400 L
-574000 273500 574500 274000 400 L
-574500 274000 574500 277000 400 L
-574000 277500 574500 277000 400 L
-573000 277500 574000 277500 400 L
-572500 277000 573000 277500 400 L
-573500 276500 574500 277500 400 L
-575701 274000 576201 273500 400 L
-576201 273500 577201 273500 400 L
-577201 273500 577701 274000 400 L
-577701 274000 577701 277000 400 L
-577201 277500 577701 277000 400 L
-576201 277500 577201 277500 400 L
-575701 277000 576201 277500 400 L
-576201 275500 577701 275500 400 L
-572500 182500 572500 192500 1000 L
-582500 192500 572500 187500 1000 L
-582500 182500 582500 192500 1000 L
-572500 187500 582500 182500 1000 L
-582500 187500 592500 187500 1000 L
-562500 187500 572500 187500 1000 L
-585000 182500 585000 186500 400 L
-586500 182500 587000 183000 400 L
-587000 183000 587000 186000 400 L
-586500 186500 587000 186000 400 L
-584500 186500 586500 186500 400 L
-584500 182500 586500 182500 400 L
-588201 186500 590701 184000 400 L
-590701 182500 590701 184000 400 L
-588201 182500 590701 182500 400 L
-572500 122500 612500 122500 1000 L
-612500 122500 612500 82500 1000 L
-612500 82500 572500 82500 1000 L
-572500 122500 572500 107500 1000 L
-572500 97500 572500 82500 1000 L
-572500 102500 5000 5000 1000 90 180 A
-582500 100500 582500 104000 400 L
-582500 104000 583000 104500 400 L
-583000 104500 584000 104500 400 L
-584000 104500 584500 104000 400 L
-584500 100500 584500 104000 400 L
-585701 100500 587701 100500 400 L
-585701 100500 585701 102500 400 L
-585701 102500 586201 102000 400 L
-586201 102000 587201 102000 400 L
-587201 102000 587701 102500 400 L
-587701 102500 587701 104000 400 L
-587201 104500 587701 104000 400 L
-586201 104500 587201 104500 400 L
-585701 104000 586201 104500 400 L
-599500 198000 599500 204000 1000 L
-585500 198000 585500 204000 1000 L
-572500 204000 572500 198000 2000 L
-612500 204000 572500 204000 2000 L
-612500 198000 612500 204000 2000 L
-572500 198000 612500 198000 2000 L
-572500 216000 572500 198000 2000 L
-612500 216000 572500 216000 2000 L
-612500 198000 612500 216000 2000 L
-572500 198000 612500 198000 2000 L
-572500 191500 572500 194500 400 L
-572500 191500 573000 191000 400 L
-573000 191000 574000 191000 400 L
-574000 191000 574500 191500 400 L
-574500 191500 574500 194500 400 L
-574000 195000 574500 194500 400 L
-573000 195000 574000 195000 400 L
-572500 194500 573000 195000 400 L
-573500 194000 574500 195000 400 L
-575701 191000 577701 191000 400 L
-575701 191000 575701 193000 400 L
-575701 193000 576201 192500 400 L
-576201 192500 577201 192500 400 L
-577201 192500 577701 193000 400 L
-577701 193000 577701 194500 400 L
-577201 195000 577701 194500 400 L
-576201 195000 577201 195000 400 L
-575701 194500 576201 195000 400 L
-572500 62500 612500 62500 1000 L
-612500 62500 612500 22500 1000 L
-612500 22500 572500 22500 1000 L
-572500 62500 572500 47500 1000 L
-572500 37500 572500 22500 1000 L
-572500 42500 5000 5000 1000 90 180 A
-582500 40500 582500 44000 400 L
-582500 44000 583000 44500 400 L
-583000 44500 584000 44500 400 L
-584000 44500 584500 44000 400 L
-584500 40500 584500 44000 400 L
-585701 42500 587701 40500 400 L
-585701 42500 588201 42500 400 L
-587701 40500 587701 44500 400 L
-327500 290000 10000 10000 1000 0 360 A
-338000 284000 339500 284000 400 L
-337500 283500 338000 284000 400 L
-337500 280500 337500 283500 400 L
-337500 280500 338000 280000 400 L
-338000 280000 339500 280000 400 L
-341201 284000 342201 284000 400 L
-341701 280000 341701 284000 400 L
-340701 281000 341701 280000 400 L
-343402 283500 343902 284000 400 L
-343402 280500 343402 283500 400 L
-343402 280500 343902 280000 400 L
-343902 280000 344902 280000 400 L
-344902 280000 345402 280500 400 L
-345402 280500 345402 283500 400 L
-344902 284000 345402 283500 400 L
-343902 284000 344902 284000 400 L
-343402 283000 345402 281000 400 L
-105000 106800 105000 43300 2000 L
-20000 106800 105000 106800 2000 L
-20000 43300 20000 106800 2000 L
-105000 43300 20000 43300 2000 L
-103500 112800 105000 112800 400 L
-103500 109300 103500 112800 400 L
-104000 108800 103500 109300 400 L
-104000 108800 104500 108800 400 L
-105000 109300 104500 108800 400 L
-102299 112300 101799 112800 400 L
-100299 112800 101799 112800 400 L
-100299 112800 99799 112300 400 L
-99799 111300 99799 112300 400 L
-102299 108800 99799 111300 400 L
-99799 108800 102299 108800 400 L
-355000 295000 395000 295000 1000 L
-395000 295000 395000 255000 1000 L
-395000 255000 355000 255000 1000 L
-355000 295000 355000 280000 1000 L
-355000 270000 355000 255000 1000 L
-355000 275000 5000 5000 1000 90 180 A
-365000 273000 365000 276500 400 L
-365000 276500 365500 277000 400 L
-365500 277000 366500 277000 400 L
-366500 277000 367000 276500 400 L
-367000 273000 367000 276500 400 L
-368701 277000 369701 277000 400 L
-369201 273000 369201 277000 400 L
-368201 274000 369201 273000 400 L
-370902 276500 371402 277000 400 L
-370902 273500 370902 276500 400 L
-370902 273500 371402 273000 400 L
-371402 273000 372402 273000 400 L
-372402 273000 372902 273500 400 L
-372902 273500 372902 276500 400 L
-372402 277000 372902 276500 400 L
-371402 277000 372402 277000 400 L
-370902 276000 372902 274000 400 L
-322500 342500 10000 10000 1000 0 360 A
-333000 336500 334500 336500 400 L
-332500 336000 333000 336500 400 L
-332500 333000 332500 336000 400 L
-332500 333000 333000 332500 400 L
-333000 332500 334500 332500 400 L
-337201 332500 337701 333000 400 L
-336201 332500 337201 332500 400 L
-335701 333000 336201 332500 400 L
-335701 333000 335701 336000 400 L
-335701 336000 336201 336500 400 L
-337201 334500 337701 335000 400 L
-335701 334500 337201 334500 400 L
-336201 336500 337201 336500 400 L
-337201 336500 337701 336000 400 L
-337701 335000 337701 336000 400 L
-132500 342500 10000 10000 1000 180 360 A
-120500 348500 122000 348500 400 L
-122500 349000 122000 348500 400 L
-122500 349000 122500 352000 400 L
-122500 352000 122000 352500 400 L
-120500 352500 122000 352500 400 L
-117299 352500 119299 352500 400 L
-119299 350500 119299 352500 400 L
-119299 350500 118799 351000 400 L
-117799 351000 118799 351000 400 L
-117799 351000 117299 350500 400 L
-117299 349000 117299 350500 400 L
-117799 348500 117299 349000 400 L
-117799 348500 118799 348500 400 L
-119299 349000 118799 348500 400 L
-580000 141000 125000 141000 2000 L
-125000 141000 125000 170000 2000 L
-125000 170000 580000 170000 2000 L
-580000 170000 580000 141000 2000 L
-580000 172500 580000 176000 400 L
-580000 172500 579500 172000 400 L
-578500 172000 579500 172000 400 L
-578500 172000 578000 172500 400 L
-578000 172500 578000 176000 400 L
-575299 172000 576299 172000 400 L
-575799 172000 575799 176000 400 L
-576799 175000 575799 176000 400 L
-132500 372500 10000 10000 1000 180 360 A
-120500 378500 122000 378500 400 L
-122500 379000 122000 378500 400 L
-122500 379000 122500 382000 400 L
-122500 382000 122000 382500 400 L
-120500 382500 122000 382500 400 L
-119299 382000 118799 382500 400 L
-117799 382500 118799 382500 400 L
-117799 382500 117299 382000 400 L
-117299 379000 117299 382000 400 L
-117799 378500 117299 379000 400 L
-117799 378500 118799 378500 400 L
-119299 379000 118799 378500 400 L
-117299 380500 118799 380500 400 L
-167500 377500 287500 377500 1000 L
-287500 377500 287500 337500 1000 L
-287500 337500 167500 337500 1000 L
-167500 377500 167500 362500 1000 L
-167500 352500 167500 337500 1000 L
-167500 357500 5000 5000 1000 90 180 A
-177500 355500 177500 359000 400 L
-177500 359000 178000 359500 400 L
-178000 359500 179000 359500 400 L
-179000 359500 179500 359000 400 L
-179500 355500 179500 359000 400 L
-180701 359500 182701 357500 400 L
-182701 356000 182701 357500 400 L
-182201 355500 182701 356000 400 L
-181201 355500 182201 355500 400 L
-180701 356000 181201 355500 400 L
-180701 356000 180701 357000 400 L
-180701 357000 181201 357500 400 L
-181201 357500 182701 357500 400 L
-105500 310500 85500 310500 2000 L
-85500 310500 85500 300500 2000 L
-85500 300500 105500 300500 2000 L
-105500 300500 105500 310500 2000 L
-115500 305500 105500 305500 2000 L
-85500 305500 75500 305500 2000 L
-101500 307500 103500 307500 400 L
-101500 307500 101000 307000 400 L
-101000 306000 101000 307000 400 L
-101500 305500 101000 306000 400 L
-101500 305500 103000 305500 400 L
-103000 303500 103000 307500 400 L
-103000 305500 101000 303500 400 L
-98299 303500 99299 303500 400 L
-98799 303500 98799 307500 400 L
-99799 306500 98799 307500 400 L
-95598 303500 96598 303500 400 L
-96098 303500 96098 307500 400 L
-97098 306500 96098 307500 400 L
-675000 5000 45000 5000 2000 L
-675000 398700 675000 5000 2000 L
-45000 398700 675000 398700 2000 L
-45000 5000 45000 398700 2000 L
-grestore
-% PCBENDDATA --- do not remove ---
-showpage
-%%EOF
+++ /dev/null
-%!PS-Adobe-3.0
-%%Title: (unknown), layergroup #1
-%%Creator: pcb-bin 20060321
-%%CreationDate: Tue Nov 27 09:49:27 2007
-%%For: fetter (Walter Fetter Lages,,,)
-%%LanguageLevel: 1
-%%Orientation: Portrait
-%%Pages: 1
-%%PageOrder: Ascend
-%%DocumentMedia: A4 594 841
-%%EndComments
-%%BeginProlog
-
-/PcbDict 200 dict def
-PcbDict begin
-PcbDict /DictMatrix matrix put
-
-% some constants
-/Black {0.0 mysetgray} def
-/White {1.0 mysetgray} def
-/TAN {0.207106781} def
-/MTAN {-0.207106781} def
-
-% draw a filled polygon
-% get (x,y)... and number of points from stack
-/PO {
- /number exch def
- newpath
- moveto
- number 1 sub { lineto } repeat
- closepath fill stroke
-} def
-
-/P {
-% draw a pin-polygon,
-% get x, y and thickness from stack
- /thickness exch def /y exch def /x exch def
- gsave x y translate thickness thickness scale
- 0.5 MTAN
- TAN -0.5
- MTAN -0.5
- -0.5 MTAN
- -0.5 TAN
- MTAN 0.5
- TAN 0.5
- 0.5 TAN
- 8 PO grestore
-} def
-
-/PV {
-% pin or via, x, y and thickness are on the stack
- /drillinghole exch def /thickness exch def /y exch def /x exch def
- x y thickness P
-% draw drilling hole
- gsave White 0 setlinewidth
- newpath x y drillinghole 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/PVR {
-% pin or via, x, y and thickness are on the stack
- /drillinghole exch def /thickness exch def /y exch def /x exch def
- gsave 0 setlinewidth
- newpath x y thickness 2 div 0 360 arc closepath fill stroke
-% draw drilling whole
- White
- newpath x y drillinghole 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/PVSQ {
-% square pin or via, x, y and thickness are on the stack
- /drillinghole exch def /thickness exch def /y exch def /x exch def
- newpath x thickness 2 div sub y thickness 2 div sub moveto
- thickness 0 rlineto 0 thickness rlineto
- thickness neg 0 rlineto closepath fill stroke
-% draw drilling hole
- gsave White 0 setlinewidth
- newpath x y drillinghole 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/DH {
-% drill helpher; x, y, hole, copper-thickness are on stack
- /copper exch def /hole exch def /y exch def /x exch def
- gsave copper setlinewidth
- newpath x y hole copper add 2 div 0 360 arc closepath stroke
- grestore
-} def
-
-/L {
-% line, get x1, y1, x2, y2 and thickness from stack
- /thick exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave thick setlinewidth
- x1 y1 moveto x2 y2 lineto stroke
- grestore
-} def
-
-/CL {
-% line, get x1, y1, x2, y2 and thickness from stack
- /thick exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave White thick setlinewidth
- x1 y1 moveto x2 y2 lineto stroke
- grestore
-} def
-
-/B {
-% filled box, get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath fill stroke
-} def
-
-/PA {
-% pad, same as line
- L
-} def
-
-/A {
-% arc for elements, get x, y, width, height, thickness
-% startangle and delta-angle from stack
- /delta exch def /start exch def /thickness exch def
- /height exch def /width exch def /y exch def /x exch def
-% draw it
- gsave thickness setlinewidth /save DictMatrix currentmatrix def
-% scaling is less then zero because the coord system has to be swapped
- x y translate width neg height scale
- 0 0 1 start start delta add arc save setmatrix stroke
- grestore
-} def
-
-/CA {
-% arc for elements, get x, y, width, height, thickness
-% startangle and delta-angle from stack
- /delta exch def /start exch def /thickness exch def
- /height exch def /width exch def /y exch def /x exch def
-% draw it
- gsave White thickness setlinewidth /save DictMatrix currentmatrix def
-% scaling is less then zero because the coord system has to be swapped
- x y translate width neg height scale
- 0 0 1 start start delta add arc save setmatrix stroke
- grestore
-} def
-
-/CLRPV {
-% clears a pin/via for groundplane; x,y and thickness are on stack
- /thickness exch def /y exch def /x exch def
- gsave White x y thickness P grestore
-} def
-
-/CLRPVSQ {
-% clears a square pin, x,y and thickness are on stack
- /thickness exch def /y exch def /x exch def
- gsave White
- newpath x thickness 2 div sub y thickness 2 div sub moveto
- thickness 0 rlineto 0 thickness rlineto
- thickness neg 0 rlineto closepath fill stroke
- grestore
-} def
-
-/CLRPVR {
-% clears a round pin/via for groundplane; x,y and thickness are on the stack
- /thickness exch def /y exch def /x exch def
- gsave White 0 setlinewidth
- newpath x y thickness 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/CLRPA {
-% clear line, get x1, y1, x2, y2 and thickness from stack
- /thick exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave White thick setlinewidth
- x1 y1 moveto x2 y2 lineto stroke
- grestore
-} def
-
-/CLRB {
-% cleared box, get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave White newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath fill stroke
- grestore
-} def
-
-/FILL {
-% draw a filled rectangle for the ground plane
-% get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave 0 setlinewidth
- newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath fill stroke
- grestore
-} def
-
-/Outline {
-% outline, get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave 0.175 setlinewidth
- newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath stroke
- grestore
-} def
-
-/Alignment {
-% alignment targets, get x1, y1, x2, y2 and distance from stack
- /dis exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave 0.175 setlinewidth
- newpath x1 y1 dis add moveto
- 0 dis 2 mul neg rlineto
- dis neg dis rmoveto
- dis 2 mul 0 rlineto
- stroke
- newpath x1 y1 dis 0 90 arcn stroke
- newpath x1 y2 dis sub moveto 0 dis rlineto dis 0 rlineto stroke
- newpath x2 y2 dis sub moveto
- 0 2 dis mul rlineto
- dis dup neg rmoveto
- 2 dis mul neg 0 rlineto stroke
- newpath x2 y1 dis add moveto 0 dis neg rlineto dis neg 0 rlineto stroke
- grestore
-} def
-
-/mysetgray { setgray } def
-/mysetrgbcolor { setrgbcolor } def
-
-%%EndProlog
-%%BeginDefaults
-%%EndDefaults
-%%BeginSetup
-0.0 setlinewidth
-1 setlinecap
-Black
-%%EndSetup
-%%Page: 1 1
-%%BeginPageSetup
-%%EndPageSetup
-gsave White newpath
-153 160 moveto 451 160 lineto 451 673 lineto 153 673 lineto
-closepath fill stroke grestore
-% PCBMIN(-400,-400), PCBMAX(710400,410400)
-% PCBOFFSET(214900,223900), PCBSCALE(1.00000)
-% PCBSTARTDATA --- do not remove ---
-gsave
-0.00072 0.00072 scale
-214900 223900 translate
-1.000 1.000 scale
-410800 0 translate
-90 rotate
-0 410800 translate
-1 -1 scale
-400 400 translate
--400 -400 710400 410400 200 Alignment
-/Color {0.545 0.137 0.137 mysetrgbcolor} def Color
-64500 257000 76000 257000 1000 L
-58000 250500 64500 257000 1000 L
-87000 254500 81500 249000 2500 L
-129000 254500 87000 254500 2500 L
-55000 330000 49500 330000 1000 L
-58500 284500 55000 288000 2500 L
-68500 284500 58500 284500 2500 L
-45000 398500 45000 5000 100 L
-130000 289500 73500 289500 2500 L
-632500 345000 652500 345000 4000 L
-632500 342500 652500 342500 4000 L
-632500 340000 652500 340000 4000 L
-652500 337500 632500 337500 4000 L
-652500 347500 652500 337500 4000 L
-632500 347500 652500 347500 4000 L
-632500 342500 405000 342500 4500 L
-632500 337500 632500 347500 4500 L
-537500 307500 410000 307500 1000 L
-287500 325000 282500 330000 1000 L
-527500 325000 287500 325000 1000 L
-530000 327500 527500 325000 1000 L
-570000 245000 582500 245000 1000 L
-210000 322500 570000 322500 1000 L
-202500 342500 202500 337500 1000 L
-520000 260000 540000 260000 1000 L
-127500 337500 520000 337500 1000 L
-127500 342500 127500 337500 1000 L
-245000 270000 105000 270000 1000 L
-247500 272500 245000 270000 1000 L
-270000 272500 247500 272500 1000 L
-272500 275000 270000 272500 1000 L
-345000 275000 272500 275000 1000 L
-347500 272500 345000 275000 1000 L
-415000 272500 347500 272500 1000 L
-420000 205000 410000 205000 1000 L
-420000 215000 405000 215000 1000 L
-400000 225000 420000 225000 1000 L
-267500 357500 322500 357500 1000 L
-325000 355000 327500 352500 1000 L
-322500 357500 325000 355000 1000 L
-262500 352500 267500 357500 1000 L
-242500 342500 252500 342500 1000 L
-297500 342500 297500 347500 1000 L
-312500 347500 317500 342500 1000 L
-240000 347500 312500 347500 1000 L
-237500 347500 240000 347500 1000 L
-232500 342500 237500 347500 1000 L
-182500 342500 192500 342500 1000 L
-137500 342500 172500 342500 1000 L
-530000 245000 407500 245000 1000 L
-407500 245000 402500 250000 1000 L
-402500 310000 222500 310000 1000 L
-217500 180000 220000 177500 1000 L
-127500 180000 217500 180000 1000 L
-107500 180000 127500 180000 1000 L
-295000 182500 450000 182500 1000 L
-290000 177500 295000 182500 1000 L
-220000 177500 290000 177500 1000 L
-445000 147500 445000 152500 1000 L
-107500 147500 445000 147500 1000 L
-242500 360000 375000 360000 1000 L
-277500 352500 297500 352500 2500 L
-365000 220000 350000 220000 1000 L
-357500 255000 360000 252500 1000 L
-337500 255000 357500 255000 1000 L
-340000 282500 462500 282500 1000 L
-457500 290000 470000 290000 2500 L
-255000 270000 332500 270000 2500 L
-250000 265000 255000 270000 2500 L
-242500 170000 180000 170000 1000 L
-247500 175000 250000 172500 1000 L
-190000 175000 247500 175000 1000 L
-250000 162500 242500 170000 1000 L
-227500 90000 255000 90000 1000 L
-230000 182500 245000 182500 1000 L
-230000 282500 340000 282500 1000 L
-225000 277500 230000 282500 1000 L
-197500 277500 225000 277500 1000 L
-192500 282500 197500 277500 1000 L
-155000 282500 192500 282500 1000 L
-257500 277500 385000 277500 1000 L
-387500 227500 390000 225000 1000 L
-270000 227500 387500 227500 1000 L
-267500 230000 270000 227500 1000 L
-210000 230000 267500 230000 1000 L
-220000 217500 170000 217500 1000 L
-225000 222500 220000 217500 1000 L
-230000 222500 225000 222500 1000 L
-232500 220000 230000 222500 1000 L
-245000 220000 232500 220000 1000 L
-247500 222500 245000 220000 1000 L
-250000 222500 247500 222500 1000 L
-292500 222500 250000 222500 1000 L
-297500 187500 325000 187500 1000 L
-150000 187500 297500 187500 1000 L
-250000 195000 252500 192500 1000 L
-225000 195000 250000 195000 1000 L
-252500 192500 315000 192500 1000 L
-310000 217500 225000 217500 1000 L
-300000 212500 215000 212500 1000 L
-220000 225000 240000 225000 2500 L
-637500 172500 535000 172500 1000 L
-210000 67500 87500 67500 1000 L
-205000 82500 97500 82500 1000 L
-200000 62500 97500 62500 1000 L
-195000 57500 87500 57500 1000 L
-192500 360000 242500 360000 1000 L
-212500 352500 232500 352500 2500 L
-202500 372500 202500 367500 1000 L
-257500 367500 262500 372500 1000 L
-110000 367500 257500 367500 1000 L
-57500 162000 57500 150000 2500 L
-82500 150000 57000 150000 2500 L
-95000 245000 115000 245000 1000 L
-182500 385000 252500 385000 1000 L
-355000 385000 252500 385000 1000 L
-272500 352500 277500 352500 2500 L
-297500 342500 317500 342500 1000 L
-280000 257500 300000 257500 1000 L
-517500 242500 522500 237500 1000 L
-392500 242500 517500 242500 1000 L
-380000 255000 392500 242500 1000 L
-380000 260000 380000 255000 1000 L
-522500 237500 557500 237500 1000 L
-370000 260000 380000 260000 1000 L
-425000 230000 430000 235000 1000 L
-375000 230000 425000 230000 1000 L
-370000 235000 375000 230000 1000 L
-402500 235000 420000 235000 1000 L
-447500 60000 447500 62500 1000 L
-450000 57500 447500 60000 1000 L
-477500 57500 450000 57500 1000 L
-487500 107500 472500 107500 1000 L
-467500 80000 467500 82500 1000 L
-512500 80000 467500 80000 1000 L
-610000 142500 547500 142500 1000 L
-537500 107500 507500 107500 1000 L
-537500 117500 537500 122500 1000 L
-577500 117500 537500 117500 1000 L
-417500 107500 447500 107500 1000 L
-555000 135000 417500 135000 1000 L
-557500 67500 557500 62500 1000 L
-417500 67500 557500 67500 1000 L
-417500 57500 417500 67500 1000 L
-582500 210000 545000 210000 1000 L
-555000 57500 577500 57500 1000 L
-542500 57500 555000 57500 1000 L
-537500 62500 542500 57500 1000 L
-447500 30000 440000 22500 1000 L
-417500 22500 417500 27500 1000 L
-437500 22500 417500 22500 1000 L
-440000 22500 437500 22500 1000 L
-507500 22500 507500 27500 1000 L
-527500 22500 507500 22500 1000 L
-502500 15000 467500 15000 1000 L
-615000 15000 557500 15000 1000 L
-397500 27500 397500 17500 2500 L
-355000 22500 355000 17500 2500 L
-340000 17500 335000 22500 2500 L
-400000 17500 340000 17500 2500 L
-90500 305500 75500 305500 1000 L
-415000 380000 172500 380000 2500 L
-415000 360000 415000 380000 2500 L
-232500 372500 232500 380000 2500 L
-317500 372500 317500 380000 2500 L
-172500 380000 172500 375000 2500 L
-297500 372500 297500 380000 2500 L
-115000 280000 130000 280000 2500 L
-137500 372500 172500 372500 2500 L
-55000 330000 105000 330000 1000 L
-622500 342500 627500 342500 4000 L
-127500 392500 212500 392500 2500 L
-332500 292500 332500 297500 2500 L
-382500 297500 390000 290000 2500 L
-325000 297500 382500 297500 2500 L
-362500 197500 430000 197500 1000 L
-360000 205000 360000 200000 1000 L
-360000 200000 362500 197500 1000 L
-205000 305000 202500 305000 2500 L
-285000 305000 205000 305000 2500 L
-292500 297500 285000 305000 2500 L
-300000 297500 292500 297500 2500 L
-212500 392500 327500 392500 2500 L
-300000 297500 325000 297500 2500 L
-290000 265000 480000 265000 1000 L
-390000 290000 457500 290000 2500 L
-442500 17500 447500 22500 2500 L
-400000 17500 442500 17500 2500 L
-45000 5000 675000 5000 100 L
-632500 87500 632500 92500 2500 L
-397500 87500 397500 95000 2500 L
-422500 100000 315000 100000 2500 L
-610000 102500 607500 100000 2500 L
-622500 102500 610000 102500 2500 L
-515000 152500 525000 152500 2500 L
-520000 152500 520000 162500 2500 L
-510000 162500 530000 162500 2500 L
-607500 100000 422500 100000 2500 L
-73500 289500 68500 284500 2500 L
-57000 238500 56000 239500 2500 L
-675000 5000 675000 398500 100 L
-57500 162000 57500 239000 2500 L
-675000 398500 45000 398500 100 L
-172500 290000 130000 290000 2500 L
-632500 337500 627500 342500 4000 L
-627500 342500 632500 347500 4000 L
-240000 245000 140000 245000 2500 L
-200000 255000 270000 255000 1000 L
-240000 245000 322500 245000 2500 L
-395000 317500 322500 317500 2500 L
-180000 152500 180000 162500 2500 L
-180000 162500 192500 162500 2500 L
-175000 152500 185000 152500 2500 L
-402500 95000 140000 95000 2500 L
-447500 82500 447500 95000 2500 L
-612500 95000 402500 95000 2500 L
-615000 92500 612500 95000 2500 L
-617500 92500 615000 92500 2500 L
-637500 92500 617500 92500 2500 L
-577500 80000 577500 87500 2500 L
-580000 77500 577500 80000 2500 L
-612500 77500 580000 77500 2500 L
-617500 82500 612500 77500 2500 L
-622500 82500 617500 82500 2500 L
-637500 82500 622500 82500 2500 L
-642500 77500 637500 82500 2500 L
-517500 87500 577500 87500 2500 L
-632500 67500 632500 72500 2500 L
-637500 72500 402500 72500 2500 L
-647500 72500 652500 77500 2500 L
-637500 72500 647500 72500 2500 L
-652500 327500 632500 327500 4500 L
-652500 317500 632500 317500 4500 L
-652500 307500 632500 307500 4500 L
-652500 297500 632500 297500 4500 L
-652500 287500 632500 287500 4500 L
-652500 277500 632500 277500 4500 L
-652500 267500 632500 267500 4500 L
-652500 257500 632500 257500 4500 L
-632500 357500 630000 360000 4500 L
-630000 360000 570000 360000 4500 L
-550000 360000 415000 360000 4500 L
-330000 305000 327500 305000 1000 L
-255000 285000 335000 285000 1000 L
-407500 305000 330000 305000 1000 L
-410000 307500 407500 305000 1000 L
-252500 287500 255000 285000 1000 L
-300000 177500 485000 177500 1000 L
-347500 285000 350000 285000 1000 L
-342500 290000 347500 285000 1000 L
-335000 285000 340000 290000 1000 L
-602500 260000 540000 260000 4500 L
-607500 297500 602500 292500 4500 L
-632500 297500 607500 297500 4500 L
-540000 307500 602500 307500 4500 L
-632500 277500 592500 277500 4500 L
-632500 287500 612500 287500 4500 L
-632500 327500 540000 327500 4500 L
-632500 317500 395000 317500 4500 L
-612500 267500 632500 267500 4500 L
-592500 277500 495000 277500 4500 L
-495000 220000 590000 220000 4500 L
-590000 220000 592500 222500 4500 L
-632500 47500 637500 52500 2500 L
-637500 52500 647500 52500 2500 L
-647500 52500 652500 57500 2500 L
-652500 357500 632500 357500 4000 L
-340000 290000 342500 290000 1000 L
-490000 370000 490000 362500 4500 L
-77500 392500 127500 392500 2500 L
-637500 92500 647500 92500 2500 L
-647500 92500 652500 97500 2500 L
-622500 102500 647500 102500 2500 L
-567500 107500 632500 107500 2500 L
-632500 47500 407500 47500 2500 L
-310000 52500 305000 57500 1000 L
-642500 47500 642500 42500 2500 L
-642500 42500 640000 40000 2500 L
-640000 40000 517500 40000 2500 L
-597500 27500 597500 22500 1000 L
-597500 22500 600000 20000 1000 L
-600000 20000 647500 20000 1000 L
-587500 27500 587500 30000 1000 L
-587500 30000 592500 35000 1000 L
-592500 35000 622500 35000 1000 L
-652500 67500 647500 62500 1000 L
-647500 62500 600000 62500 1000 L
-600000 62500 597500 65000 1000 L
-587500 87500 592500 92500 1000 L
-592500 92500 610000 92500 1000 L
-610000 92500 615000 87500 1000 L
-615000 87500 622500 87500 1000 L
-615000 130000 295000 130000 1000 L
-620000 52500 620000 52500 1000 L
-620000 52500 310000 52500 1000 L
-115000 112500 647500 112500 1000 L
-647500 112500 652500 117500 1000 L
-535000 172500 262500 172500 1000 L
-255000 120000 265000 120000 1000 L
-265000 130000 250000 130000 1000 L
-260000 105000 245000 105000 1000 L
-285000 120000 300000 120000 1000 L
-290000 125000 310000 125000 1000 L
-295000 137500 322500 137500 1000 L
-145000 137500 295000 137500 1000 L
-155000 125000 290000 125000 1000 L
-160000 100000 300000 100000 1000 L
-170000 142500 280000 142500 1000 L
-242500 132500 245000 135000 1000 L
-245000 135000 270000 135000 1000 L
-270000 135000 275000 130000 1000 L
-180000 132500 242500 132500 1000 L
-242500 110000 265000 110000 1000 L
-265000 110000 270000 105000 1000 L
-190000 105000 237500 105000 1000 L
-237500 105000 242500 110000 1000 L
-270000 255000 275000 250000 1000 L
-275000 250000 315000 250000 1000 L
-330000 80000 285000 80000 1000 L
-315000 250000 350000 250000 1000 L
-202500 282500 220000 282500 1000 L
-257500 250000 210000 250000 1000 L
-330000 205000 322500 197500 1000 L
-322500 197500 257500 197500 1000 L
-337500 255000 302500 255000 1000 L
-302500 255000 300000 257500 1000 L
-305000 85000 275000 85000 1000 L
-350000 285000 457500 285000 1000 L
-457500 285000 460000 287500 1000 L
-460000 287500 465000 287500 1000 L
-465000 287500 467500 285000 1000 L
-467500 285000 582500 285000 1000 L
-107500 180000 91000 180000 1000 L
-91000 180000 90000 181000 1000 L
-90000 181000 82500 181000 1000 L
-122000 160500 90500 160500 1000 L
-90500 160500 90000 161000 1000 L
-90000 161000 82500 161000 1000 L
-82000 10000 82500 9500 400 L
-80500 10000 82000 10000 400 L
-80000 9500 80500 10000 400 L
-80000 9500 80000 8500 400 L
-80000 8500 80500 8000 400 L
-80500 8000 82000 8000 400 L
-82000 8000 82500 7500 400 L
-82500 7500 82500 6500 400 L
-82000 6000 82500 6500 400 L
-80500 6000 82000 6000 400 L
-80000 6500 80500 6000 400 L
-83701 9500 83701 6500 400 L
-83701 9500 84201 10000 400 L
-84201 10000 85201 10000 400 L
-85201 10000 85701 9500 400 L
-85701 9500 85701 6500 400 L
-85201 6000 85701 6500 400 L
-84201 6000 85201 6000 400 L
-83701 6500 84201 6000 400 L
-86902 10000 86902 6000 400 L
-86902 6000 88902 6000 400 L
-90603 10000 90603 6000 400 L
-92103 10000 92603 9500 400 L
-92603 9500 92603 6500 400 L
-92103 6000 92603 6500 400 L
-90103 6000 92103 6000 400 L
-90103 10000 92103 10000 400 L
-93804 8000 95304 8000 400 L
-93804 6000 95804 6000 400 L
-93804 10000 93804 6000 400 L
-93804 10000 95804 10000 400 L
-97005 10000 99005 10000 400 L
-99005 10000 99505 9500 400 L
-99505 9500 99505 8500 400 L
-99005 8000 99505 8500 400 L
-97505 8000 99005 8000 400 L
-97505 10000 97505 6000 400 L
-97505 8000 99505 6000 400 L
-80000 32000 80000 28500 400 L
-80000 32000 80500 32500 400 L
-80500 32500 82000 32500 400 L
-82000 32500 82500 32000 400 L
-82500 32000 82500 28500 400 L
-80000 30500 82500 30500 400 L
-83701 32500 84701 32500 400 L
-84201 32500 84201 28500 400 L
-83701 28500 84701 28500 400 L
-86402 28500 87902 28500 400 L
-85902 29000 86402 28500 400 L
-85902 32000 85902 29000 400 L
-85902 32000 86402 32500 400 L
-86402 32500 87902 32500 400 L
-89103 30500 91103 30500 400 L
-92804 28500 93804 28500 400 L
-93304 32500 93304 28500 400 L
-92304 31500 93304 32500 400 L
-95005 28500 95505 28500 400 L
-96706 32000 97206 32500 400 L
-97206 32500 98206 32500 400 L
-98206 32500 98706 32000 400 L
-98706 32000 98706 29000 400 L
-98206 28500 98706 29000 400 L
-97206 28500 98206 28500 400 L
-96706 29000 97206 28500 400 L
-97206 30500 98706 30500 400 L
-99907 28500 100407 28500 400 L
-101608 29000 102108 28500 400 L
-101608 32000 101608 29000 400 L
-101608 32000 102108 32500 400 L
-102108 32500 103108 32500 400 L
-103108 32500 103608 32000 400 L
-103608 32000 103608 29000 400 L
-103108 28500 103608 29000 400 L
-102108 28500 103108 28500 400 L
-101608 29500 103608 31500 400 L
-80000 21500 80500 21000 400 L
-80000 24500 80500 25000 400 L
-80000 24500 80000 21500 400 L
-82201 21000 83701 21000 400 L
-81701 21500 82201 21000 400 L
-81701 24500 81701 21500 400 L
-81701 24500 82201 25000 400 L
-82201 25000 83701 25000 400 L
-84902 25000 85402 24500 400 L
-85402 24500 85402 21500 400 L
-84902 21000 85402 21500 400 L
-88403 24500 88903 25000 400 L
-88903 25000 90403 25000 400 L
-90403 25000 90903 24500 400 L
-90903 24500 90903 23500 400 L
-88403 21000 90903 23500 400 L
-88403 21000 90903 21000 400 L
-92104 21500 92604 21000 400 L
-92104 24500 92104 21500 400 L
-92104 24500 92604 25000 400 L
-92604 25000 93604 25000 400 L
-93604 25000 94104 24500 400 L
-94104 24500 94104 21500 400 L
-93604 21000 94104 21500 400 L
-92604 21000 93604 21000 400 L
-92104 22000 94104 24000 400 L
-95305 21500 95805 21000 400 L
-95305 24500 95305 21500 400 L
-95305 24500 95805 25000 400 L
-95805 25000 96805 25000 400 L
-96805 25000 97305 24500 400 L
-97305 24500 97305 21500 400 L
-96805 21000 97305 21500 400 L
-95805 21000 96805 21000 400 L
-95305 22000 97305 24000 400 L
-98506 24500 99006 25000 400 L
-99006 25000 100006 25000 400 L
-100006 25000 100506 24500 400 L
-100506 24500 100506 21500 400 L
-100006 21000 100506 21500 400 L
-99006 21000 100006 21000 400 L
-98506 21500 99006 21000 400 L
-99006 23000 100506 23000 400 L
-103507 25000 103507 21000 400 L
-103507 21000 105007 22500 400 L
-105007 22500 106507 21000 400 L
-106507 25000 106507 21000 400 L
-109208 23000 109708 22500 400 L
-108208 23000 109208 23000 400 L
-107708 22500 108208 23000 400 L
-107708 22500 107708 21500 400 L
-107708 21500 108208 21000 400 L
-109708 23000 109708 21500 400 L
-109708 21500 110208 21000 400 L
-108208 21000 109208 21000 400 L
-109208 21000 109708 21500 400 L
-111409 25000 111409 21500 400 L
-111409 21500 111909 21000 400 L
-113410 25000 113410 21500 400 L
-113410 21500 113910 21000 400 L
-112910 23500 113910 23500 400 L
-115411 21000 116911 21000 400 L
-114911 21500 115411 21000 400 L
-114911 22500 114911 21500 400 L
-114911 22500 115411 23000 400 L
-115411 23000 116411 23000 400 L
-116411 23000 116911 22500 400 L
-114911 22000 116911 22000 400 L
-116911 22500 116911 22000 400 L
-118612 22500 118612 21000 400 L
-118612 22500 119112 23000 400 L
-119112 23000 120112 23000 400 L
-118112 23000 118612 22500 400 L
-123113 25000 123113 21000 400 L
-123113 25000 125113 25000 400 L
-123113 23000 124613 23000 400 L
-126814 21000 128314 21000 400 L
-126314 21500 126814 21000 400 L
-126314 22500 126314 21500 400 L
-126314 22500 126814 23000 400 L
-126814 23000 127814 23000 400 L
-127814 23000 128314 22500 400 L
-126314 22000 128314 22000 400 L
-128314 22500 128314 22000 400 L
-130015 25000 130015 21500 400 L
-130015 21500 130515 21000 400 L
-129515 23500 130515 23500 400 L
-132016 25000 132016 21500 400 L
-132016 21500 132516 21000 400 L
-131516 23500 132516 23500 400 L
-134017 21000 135517 21000 400 L
-133517 21500 134017 21000 400 L
-133517 22500 133517 21500 400 L
-133517 22500 134017 23000 400 L
-134017 23000 135017 23000 400 L
-135017 23000 135517 22500 400 L
-133517 22000 135517 22000 400 L
-135517 22500 135517 22000 400 L
-137218 22500 137218 21000 400 L
-137218 22500 137718 23000 400 L
-137718 23000 138718 23000 400 L
-136718 23000 137218 22500 400 L
-141719 25000 141719 21000 400 L
-141719 21000 143719 21000 400 L
-146420 23000 146920 22500 400 L
-145420 23000 146420 23000 400 L
-144920 22500 145420 23000 400 L
-144920 22500 144920 21500 400 L
-144920 21500 145420 21000 400 L
-146920 23000 146920 21500 400 L
-146920 21500 147420 21000 400 L
-145420 21000 146420 21000 400 L
-146420 21000 146920 21500 400 L
-150121 23000 150621 22500 400 L
-149121 23000 150121 23000 400 L
-148621 22500 149121 23000 400 L
-148621 22500 148621 21500 400 L
-148621 21500 149121 21000 400 L
-149121 21000 150121 21000 400 L
-150121 21000 150621 21500 400 L
-148621 20000 149121 19500 400 L
-149121 19500 150121 19500 400 L
-150121 19500 150621 20000 400 L
-150621 23000 150621 20000 400 L
-152322 21000 153822 21000 400 L
-151822 21500 152322 21000 400 L
-151822 22500 151822 21500 400 L
-151822 22500 152322 23000 400 L
-152322 23000 153322 23000 400 L
-153322 23000 153822 22500 400 L
-151822 22000 153822 22000 400 L
-153822 22500 153822 22000 400 L
-155523 21000 157023 21000 400 L
-157023 21000 157523 21500 400 L
-157023 22000 157523 21500 400 L
-155523 22000 157023 22000 400 L
-155023 22500 155523 22000 400 L
-155023 22500 155523 23000 400 L
-155523 23000 157023 23000 400 L
-157023 23000 157523 22500 400 L
-155023 21500 155523 21000 400 L
-80000 17500 80000 13500 400 L
-80000 17500 82000 17500 400 L
-80000 15500 81500 15500 400 L
-83701 13500 85201 13500 400 L
-83201 14000 83701 13500 400 L
-83201 15000 83201 14000 400 L
-83201 15000 83701 15500 400 L
-83701 15500 84701 15500 400 L
-84701 15500 85201 15000 400 L
-83201 14500 85201 14500 400 L
-85201 15000 85201 14500 400 L
-86902 15000 86902 13500 400 L
-86902 15000 87402 15500 400 L
-87402 15500 88402 15500 400 L
-86402 15500 86902 15000 400 L
-90103 15000 90103 13500 400 L
-90103 15000 90603 15500 400 L
-90603 15500 91103 15500 400 L
-91103 15500 91603 15000 400 L
-91603 15000 91603 13500 400 L
-89603 15500 90103 15000 400 L
-94304 15500 94804 15000 400 L
-93304 15500 94304 15500 400 L
-92804 15000 93304 15500 400 L
-92804 15000 92804 14000 400 L
-92804 14000 93304 13500 400 L
-94804 15500 94804 14000 400 L
-94804 14000 95304 13500 400 L
-93304 13500 94304 13500 400 L
-94304 13500 94804 14000 400 L
-97005 15000 97005 13500 400 L
-97005 15000 97505 15500 400 L
-97505 15500 98005 15500 400 L
-98005 15500 98505 15000 400 L
-98505 15000 98505 13500 400 L
-96505 15500 97005 15000 400 L
-101706 17500 101706 13500 400 L
-101206 13500 101706 14000 400 L
-100206 13500 101206 13500 400 L
-99706 14000 100206 13500 400 L
-99706 15000 99706 14000 400 L
-99706 15000 100206 15500 400 L
-100206 15500 101206 15500 400 L
-101206 15500 101706 15000 400 L
-102907 15000 102907 14000 400 L
-102907 15000 103407 15500 400 L
-103407 15500 104407 15500 400 L
-104407 15500 104907 15000 400 L
-104907 15000 104907 14000 400 L
-104407 13500 104907 14000 400 L
-103407 13500 104407 13500 400 L
-102907 14000 103407 13500 400 L
-108408 17500 108408 13500 400 L
-107908 17500 109908 17500 400 L
-109908 17500 110408 17000 400 L
-110408 17000 110408 16000 400 L
-109908 15500 110408 16000 400 L
-108408 15500 109908 15500 400 L
-112109 13500 113609 13500 400 L
-111609 14000 112109 13500 400 L
-111609 15000 111609 14000 400 L
-111609 15000 112109 15500 400 L
-112109 15500 113109 15500 400 L
-113109 15500 113609 15000 400 L
-111609 14500 113609 14500 400 L
-113609 15000 113609 14500 400 L
-115310 13500 116810 13500 400 L
-116810 13500 117310 14000 400 L
-116810 14500 117310 14000 400 L
-115310 14500 116810 14500 400 L
-114810 15000 115310 14500 400 L
-114810 15000 115310 15500 400 L
-115310 15500 116810 15500 400 L
-116810 15500 117310 15000 400 L
-114810 14000 115310 13500 400 L
-119011 13500 120511 13500 400 L
-120511 13500 121011 14000 400 L
-120511 14500 121011 14000 400 L
-119011 14500 120511 14500 400 L
-118511 15000 119011 14500 400 L
-118511 15000 119011 15500 400 L
-119011 15500 120511 15500 400 L
-120511 15500 121011 15000 400 L
-118511 14000 119011 13500 400 L
-122212 15500 122212 14000 400 L
-122212 14000 122712 13500 400 L
-122712 13500 123712 13500 400 L
-123712 13500 124212 14000 400 L
-124212 15500 124212 14000 400 L
-125913 17500 125913 14000 400 L
-125913 14000 126413 13500 400 L
-125413 16000 126413 16000 400 L
-127914 17500 127914 14000 400 L
-127914 14000 128414 13500 400 L
-127414 16000 128414 16000 400 L
-129415 15000 129415 14000 400 L
-129415 15000 129915 15500 400 L
-129915 15500 130915 15500 400 L
-130915 15500 131415 15000 400 L
-131415 15000 131415 14000 400 L
-130915 13500 131415 14000 400 L
-129915 13500 130915 13500 400 L
-129415 14000 129915 13500 400 L
-/Color {0.227 0.373 0.804 mysetrgbcolor} def Color
-/Color {0.063 0.306 0.545 mysetrgbcolor} def Color
-/Color {0.302 0.302 0.302 mysetrgbcolor} def Color
-335000 62500 6000 3500 PVSQ
-335000 22500 6000 3500 PVR
-297500 342500 6000 3500 PVSQ
-297500 372500 6000 3500 PVR
-415000 360000 8000 4200 PVSQ
-405000 360000 8000 4200 PVR
-395000 360000 8000 4200 PVR
-447500 122500 6000 3500 PVSQ
-447500 82500 6000 3500 PVR
-397500 117500 6000 3500 PVSQ
-407500 117500 6000 3500 PVR
-417500 117500 6000 3500 PVR
-427500 117500 6000 3500 PVR
-427500 87500 6000 3500 PVR
-417500 87500 6000 3500 PVR
-407500 87500 6000 3500 PVR
-397500 87500 6000 3500 PVR
-557500 122500 6000 3500 PVSQ
-557500 82500 6000 3500 PVR
-537500 62500 6000 3500 PVSQ
-537500 22500 6000 3500 PVR
-487500 57500 6000 3500 PVSQ
-497500 57500 6000 3500 PVR
-507500 57500 6000 3500 PVR
-517500 57500 6000 3500 PVR
-517500 27500 6000 3500 PVR
-507500 27500 6000 3500 PVR
-497500 27500 6000 3500 PVR
-487500 27500 6000 3500 PVR
-467500 62500 6000 3500 PVSQ
-467500 22500 6000 3500 PVR
-467500 122500 6000 3500 PVSQ
-467500 82500 6000 3500 PVR
-537500 122500 6000 3500 PVSQ
-537500 82500 6000 3500 PVR
-487500 117500 6000 3500 PVSQ
-497500 117500 6000 3500 PVR
-507500 117500 6000 3500 PVR
-517500 117500 6000 3500 PVR
-517500 87500 6000 3500 PVR
-507500 87500 6000 3500 PVR
-497500 87500 6000 3500 PVR
-487500 87500 6000 3500 PVR
-397500 57500 6000 3500 PVSQ
-407500 57500 6000 3500 PVR
-417500 57500 6000 3500 PVR
-427500 57500 6000 3500 PVR
-427500 27500 6000 3500 PVR
-417500 27500 6000 3500 PVR
-407500 27500 6000 3500 PVR
-397500 27500 6000 3500 PVR
-557500 62500 6000 3500 PVSQ
-557500 22500 6000 3500 PVR
-157500 342500 6000 3500 PVSQ
-157500 372500 6000 3500 PVR
-57500 239500 6000 3500 PVSQ
-57500 249500 6000 3500 PVR
-530000 245000 8000 4200 PVSQ
-540000 245000 8000 4200 PVR
-550000 245000 8000 4200 PVR
-245000 57500 6000 3500 PVSQ
-255000 57500 6000 3500 PVR
-265000 57500 6000 3500 PVR
-275000 57500 6000 3500 PVR
-285000 57500 6000 3500 PVR
-295000 57500 6000 3500 PVR
-305000 57500 6000 3500 PVR
-315000 57500 6000 3500 PVR
-315000 27500 6000 3500 PVR
-305000 27500 6000 3500 PVR
-295000 27500 6000 3500 PVR
-285000 27500 6000 3500 PVR
-275000 27500 6000 3500 PVR
-265000 27500 6000 3500 PVR
-255000 27500 6000 3500 PVR
-245000 27500 6000 3500 PVR
-317500 372500 6000 3500 PVSQ
-327500 372500 6000 3500 PVR
-420000 205000 7000 4200 PVSQ
-430000 205000 7000 4200 PVR
-420000 215000 7000 4200 PVR
-430000 215000 7000 4200 PVR
-420000 225000 7000 4200 PVR
-430000 225000 7000 4200 PVR
-420000 235000 7000 4200 PVR
-430000 235000 7000 4200 PVR
-140000 265000 6000 3500 PVSQ
-150000 265000 6000 3500 PVR
-160000 265000 6000 3500 PVR
-170000 265000 6000 3500 PVR
-180000 265000 6000 3500 PVR
-190000 265000 6000 3500 PVR
-200000 265000 6000 3500 PVR
-210000 265000 6000 3500 PVR
-220000 265000 6000 3500 PVR
-230000 265000 6000 3500 PVR
-240000 265000 6000 3500 PVR
-250000 265000 6000 3500 PVR
-250000 205000 6000 3500 PVR
-240000 205000 6000 3500 PVR
-230000 205000 6000 3500 PVR
-220000 205000 6000 3500 PVR
-210000 205000 6000 3500 PVR
-200000 205000 6000 3500 PVR
-190000 205000 6000 3500 PVR
-180000 205000 6000 3500 PVR
-170000 205000 6000 3500 PVR
-160000 205000 6000 3500 PVR
-150000 205000 6000 3500 PVR
-140000 205000 6000 3500 PVR
-280000 235000 6000 3500 PVSQ
-290000 235000 6000 3500 PVR
-300000 235000 6000 3500 PVR
-310000 235000 6000 3500 PVR
-320000 235000 6000 3500 PVR
-330000 235000 6000 3500 PVR
-340000 235000 6000 3500 PVR
-350000 235000 6000 3500 PVR
-360000 235000 6000 3500 PVR
-370000 235000 6000 3500 PVR
-380000 235000 6000 3500 PVR
-390000 235000 6000 3500 PVR
-390000 205000 6000 3500 PVR
-380000 205000 6000 3500 PVR
-370000 205000 6000 3500 PVR
-360000 205000 6000 3500 PVR
-350000 205000 6000 3500 PVR
-340000 205000 6000 3500 PVR
-330000 205000 6000 3500 PVR
-320000 205000 6000 3500 PVR
-310000 205000 6000 3500 PVR
-300000 205000 6000 3500 PVR
-290000 205000 6000 3500 PVR
-280000 205000 6000 3500 PVR
-77500 124000 12000 10000 PVR
-77500 218000 12000 10000 PVR
-82500 151000 7000 4200 PVR
-72500 156000 7000 4200 PVR
-82500 161000 7000 4200 PVR
-72500 166000 7000 4200 PVR
-82500 171000 7000 4200 PVR
-72500 176000 7000 4200 PVR
-82500 181000 7000 4200 PVR
-72500 186000 7000 4200 PVR
-82500 191000 7000 4200 PVSQ
-81500 239500 6000 3500 PVSQ
-81500 249500 6000 3500 PVR
-495000 220000 7000 4200 PVSQ
-470000 220000 7000 4200 PVR
-85000 330000 6000 3500 PVSQ
-85000 360000 6000 3500 PVR
-582500 245000 8000 4200 PVSQ
-592500 245000 8000 4200 PVR
-602500 245000 8000 4200 PVR
-535000 210000 6000 3500 PVSQ
-545000 210000 6000 3500 PVR
-355000 62500 6000 3500 PVSQ
-355000 22500 6000 3500 PVR
-105000 330000 7000 4200 PVSQ
-115000 330000 7000 4200 PVR
-172500 320000 6000 3500 PVSQ
-182500 320000 6000 3500 PVR
-192500 320000 6000 3500 PVR
-202500 320000 6000 3500 PVR
-202500 290000 6000 3500 PVR
-192500 290000 6000 3500 PVR
-182500 290000 6000 3500 PVR
-172500 290000 6000 3500 PVR
-495000 277500 7000 4200 PVSQ
-470000 277500 7000 4200 PVR
-570000 360000 8000 4200 PVSQ
-560000 360000 8000 4200 PVR
-550000 360000 8000 4200 PVR
-280000 257500 6000 3500 PVSQ
-280000 297500 6000 3500 PVR
-116000 280000 6000 3500 PVSQ
-76000 280000 6000 3500 PVR
-490000 370000 6000 3500 PVSQ
-475000 370000 6000 3500 PVR
-530000 292500 8000 4200 PVSQ
-540000 292500 8000 4200 PVR
-550000 292500 8000 4200 PVR
-652500 47500 6000 3500 PVSQ
-652500 57500 6000 3500 PVR
-652500 67500 6000 3500 PVR
-652500 77500 6000 3500 PVR
-652500 87500 6000 3500 PVR
-652500 97500 6000 3500 PVR
-652500 107500 6000 3500 PVR
-652500 117500 6000 3500 PVR
-652500 127500 6000 3500 PVR
-652500 137500 6000 3500 PVR
-652500 147500 6000 3500 PVR
-652500 157500 6000 3500 PVR
-652500 167500 6000 3500 PVR
-652500 177500 6000 3500 PVR
-652500 187500 6000 3500 PVR
-652500 197500 6000 3500 PVR
-652500 207500 6000 3500 PVR
-652500 217500 6000 3500 PVR
-652500 227500 6000 3500 PVR
-652500 237500 6000 3500 PVR
-652500 247500 6000 3500 PVR
-652500 257500 6000 3500 PVR
-652500 267500 6000 3500 PVR
-652500 277500 6000 3500 PVR
-652500 287500 6000 3500 PVR
-652500 297500 6000 3500 PVR
-652500 307500 6000 3500 PVR
-652500 317500 6000 3500 PVR
-652500 327500 6000 3500 PVR
-652500 337500 6000 3500 PVR
-652500 347500 6000 3500 PVR
-652500 357500 6000 3500 PVR
-642500 47500 6000 3500 PVR
-642500 57500 6000 3500 PVR
-642500 67500 6000 3500 PVR
-642500 77500 6000 3500 PVR
-642500 87500 6000 3500 PVR
-642500 97500 6000 3500 PVR
-642500 107500 6000 3500 PVR
-642500 117500 6000 3500 PVR
-642500 127500 6000 3500 PVR
-642500 137500 6000 3500 PVR
-642500 147500 6000 3500 PVR
-642500 157500 6000 3500 PVR
-642500 167500 6000 3500 PVR
-642500 177500 6000 3500 PVR
-642500 187500 6000 3500 PVR
-642500 197500 6000 3500 PVR
-642500 207500 6000 3500 PVR
-642500 217500 6000 3500 PVR
-642500 227500 6000 3500 PVR
-642500 237500 6000 3500 PVR
-642500 247500 6000 3500 PVR
-642500 257500 6000 3500 PVR
-642500 267500 6000 3500 PVR
-642500 277500 6000 3500 PVR
-642500 287500 6000 3500 PVR
-642500 297500 6000 3500 PVR
-642500 307500 6000 3500 PVR
-642500 317500 6000 3500 PVR
-642500 327500 6000 3500 PVR
-642500 337500 6000 3500 PVR
-642500 347500 6000 3500 PVR
-642500 357500 6000 3500 PVR
-632500 47500 6000 3500 PVR
-632500 57500 6000 3500 PVR
-632500 67500 6000 3500 PVR
-632500 77500 6000 3500 PVR
-632500 87500 6000 3500 PVR
-632500 97500 6000 3500 PVR
-632500 107500 6000 3500 PVR
-632500 117500 6000 3500 PVR
-632500 127500 6000 3500 PVR
-632500 137500 6000 3500 PVR
-632500 147500 6000 3500 PVR
-632500 157500 6000 3500 PVR
-632500 167500 6000 3500 PVR
-632500 177500 6000 3500 PVR
-632500 187500 6000 3500 PVR
-632500 197500 6000 3500 PVR
-632500 207500 6000 3500 PVR
-632500 217500 6000 3500 PVR
-632500 227500 6000 3500 PVR
-632500 237500 6000 3500 PVR
-632500 247500 6000 3500 PVR
-632500 257500 6000 3500 PVR
-632500 267500 6000 3500 PVR
-632500 277500 6000 3500 PVR
-632500 287500 6000 3500 PVR
-632500 297500 6000 3500 PVR
-632500 307500 6000 3500 PVR
-632500 317500 6000 3500 PVR
-632500 327500 6000 3500 PVR
-632500 337500 6000 3500 PVR
-632500 347500 6000 3500 PVR
-632500 357500 6000 3500 PVR
-662500 377500 12000 8000 PVR
-662500 27500 12000 8000 PVR
-332500 260000 6000 3500 PVSQ
-322500 260000 6000 3500 PVR
-447500 62500 6000 3500 PVSQ
-447500 22500 6000 3500 PVR
-300000 297500 6000 3500 PVSQ
-300000 257500 6000 3500 PVR
-475000 330000 6000 3500 PVSQ
-490000 330000 6000 3500 PVR
-55000 269500 7000 4200 PVSQ
-55000 287200 7000 4200 PVR
-64800 264600 7000 5200 PVR
-64800 292200 7000 5200 PVR
-582500 292500 8000 4200 PVSQ
-592500 292500 8000 4200 PVR
-602500 292500 8000 4200 PVR
-562500 187500 6000 3500 PVSQ
-592500 187500 6000 3500 PVR
-577500 117500 6000 3500 PVSQ
-587500 117500 6000 3500 PVR
-597500 117500 6000 3500 PVR
-607500 117500 6000 3500 PVR
-607500 87500 6000 3500 PVR
-597500 87500 6000 3500 PVR
-587500 87500 6000 3500 PVR
-577500 87500 6000 3500 PVR
-582500 210000 8000 4200 PVSQ
-592500 210000 8000 4200 PVR
-602500 210000 8000 4200 PVR
-577500 57500 6000 3500 PVSQ
-587500 57500 6000 3500 PVR
-597500 57500 6000 3500 PVR
-607500 57500 6000 3500 PVR
-607500 27500 6000 3500 PVR
-597500 27500 6000 3500 PVR
-587500 27500 6000 3500 PVR
-577500 27500 6000 3500 PVR
-322500 290000 6000 3500 PVSQ
-332500 290000 6000 3500 PVR
-87500 57500 6000 3500 PVSQ
-97500 62500 6000 3500 PVR
-87500 67500 6000 3500 PVR
-97500 72500 6000 3500 PVR
-87500 77500 6000 3500 PVR
-97500 82500 6000 3500 PVR
-87500 87500 6000 3500 PVR
-97500 92500 6000 3500 PVR
-62500 52500 14800 12800 PVR
-62500 97600 14800 12800 PVR
-74500 44500 8000 6000 PVR
-74500 105600 8000 6000 PVR
-360000 290000 6000 3500 PVSQ
-370000 290000 6000 3500 PVR
-380000 290000 6000 3500 PVR
-390000 290000 6000 3500 PVR
-390000 260000 6000 3500 PVR
-380000 260000 6000 3500 PVR
-370000 260000 6000 3500 PVR
-360000 260000 6000 3500 PVR
-317500 342500 6000 3500 PVSQ
-327500 342500 6000 3500 PVR
-137500 342500 6000 3500 PVSQ
-127500 342500 6000 3500 PVR
-540000 162500 6000 3500 PVSQ
-535000 152500 6000 3500 PVR
-530000 162500 6000 3500 PVR
-525000 152500 6000 3500 PVR
-520000 162500 6000 3500 PVR
-515000 152500 6000 3500 PVR
-510000 162500 6000 3500 PVR
-505000 152500 6000 3500 PVR
-500000 162500 6000 3500 PVR
-495000 152500 6000 3500 PVR
-490000 162500 6000 3500 PVR
-485000 152500 6000 3500 PVR
-480000 162500 6000 3500 PVR
-475000 152500 6000 3500 PVR
-470000 162500 6000 3500 PVR
-465000 152500 6000 3500 PVR
-460000 162500 6000 3500 PVR
-455000 152500 6000 3500 PVR
-450000 162500 6000 3500 PVR
-445000 152500 6000 3500 PVR
-440000 162500 6000 3500 PVR
-435000 152500 6000 3500 PVR
-430000 162500 6000 3500 PVR
-425000 152500 6000 3500 PVR
-420000 162500 6000 3500 PVR
-415000 152500 6000 3500 PVR
-410000 162500 6000 3500 PVR
-405000 152500 6000 3500 PVR
-400000 162500 6000 3500 PVR
-395000 152500 6000 3500 PVR
-390000 162500 6000 3500 PVR
-385000 152500 6000 3500 PVR
-380000 162500 6000 3500 PVR
-375000 152500 6000 3500 PVR
-370000 162500 6000 3500 PVR
-365000 152500 6000 3500 PVR
-340000 162500 6000 3500 PVR
-335000 152500 6000 3500 PVR
-330000 162500 6000 3500 PVR
-325000 152500 6000 3500 PVR
-320000 162500 6000 3500 PVR
-315000 152500 6000 3500 PVR
-310000 162500 6000 3500 PVR
-305000 152500 6000 3500 PVR
-300000 162500 6000 3500 PVR
-295000 152500 6000 3500 PVR
-290000 162500 6000 3500 PVR
-285000 152500 6000 3500 PVR
-280000 162500 6000 3500 PVR
-275000 152500 6000 3500 PVR
-270000 162500 6000 3500 PVR
-265000 152500 6000 3500 PVR
-260000 162500 6000 3500 PVR
-255000 152500 6000 3500 PVR
-250000 162500 6000 3500 PVR
-245000 152500 6000 3500 PVR
-240000 162500 6000 3500 PVR
-235000 152500 6000 3500 PVR
-230000 162500 6000 3500 PVR
-225000 152500 6000 3500 PVR
-220000 162500 6000 3500 PVR
-215000 152500 6000 3500 PVR
-210000 162500 6000 3500 PVR
-205000 152500 6000 3500 PVR
-200000 162500 6000 3500 PVR
-195000 152500 6000 3500 PVR
-190000 162500 6000 3500 PVR
-185000 152500 6000 3500 PVR
-180000 162500 6000 3500 PVR
-175000 152500 6000 3500 PVR
-170000 162500 6000 3500 PVR
-165000 152500 6000 3500 PVR
-573000 157500 8000 6000 PVR
-352500 157500 12000 10000 PVR
-132500 157500 12000 10000 PVR
-137500 372500 6000 3500 PVSQ
-127500 372500 6000 3500 PVR
-172500 372500 6000 3500 PVSQ
-182500 372500 6000 3500 PVR
-192500 372500 6000 3500 PVR
-202500 372500 6000 3500 PVR
-212500 372500 6000 3500 PVR
-222500 372500 6000 3500 PVR
-232500 372500 6000 3500 PVR
-242500 372500 6000 3500 PVR
-252500 372500 6000 3500 PVR
-262500 372500 6000 3500 PVR
-272500 372500 6000 3500 PVR
-282500 372500 6000 3500 PVR
-282500 342500 6000 3500 PVR
-272500 342500 6000 3500 PVR
-262500 342500 6000 3500 PVR
-252500 342500 6000 3500 PVR
-242500 342500 6000 3500 PVR
-232500 342500 6000 3500 PVR
-222500 342500 6000 3500 PVR
-212500 342500 6000 3500 PVR
-202500 342500 6000 3500 PVR
-192500 342500 6000 3500 PVR
-182500 342500 6000 3500 PVR
-172500 342500 6000 3500 PVR
-115500 305500 6000 3500 PVSQ
-75500 305500 6000 3500 PVR
-57500 27500 12000 8000 PVR
-57500 376200 12000 8000 PVR
-662500 27500 12000 8000 PVR
-662500 376200 12000 8000 PVR
-/Color {0.498 0.498 0.498 mysetrgbcolor} def Color
-475000 342500 6000 3500 PVR
-490000 342500 6000 3500 PVR
-560000 342500 6000 3500 PVR
-602500 260000 6000 3500 PVR
-540000 260000 6000 3500 PVR
-540000 307500 6000 3500 PVR
-602500 307500 6000 3500 PVR
-592500 277500 6000 3500 PVR
-612500 287500 6000 3500 PVR
-540000 327500 6000 3500 PVR
-395000 317500 6000 3500 PVR
-475000 317500 6000 3500 PVR
-622500 342500 6000 3500 PVR
-612500 267500 6000 3500 PVR
-592500 222500 6000 3500 PVR
-462500 342500 6000 3500 PVR
-562500 220000 6000 3500 PVR
-622500 102500 6000 3500 PVR
-647500 102500 6000 3500 PVR
-567500 107500 6000 3500 PVR
-597500 47500 6000 3500 PVR
-537500 47500 6000 3500 PVR
-487500 47500 6000 3500 PVR
-517500 40000 6000 3500 PVR
-577500 40000 6000 3500 PVR
-402500 72500 6000 3500 PVR
-487500 72500 6000 3500 PVR
-537500 72500 6000 3500 PVR
-592500 72500 6000 3500 PVR
-497500 95000 6000 3500 PVR
-140000 95000 6000 3500 PVR
-175000 95000 6000 3500 PVR
-237500 95000 6000 3500 PVR
-322500 317500 6000 3500 PVR
-327500 392500 6000 3500 PVR
-240000 245000 6000 3500 PVR
-270000 245000 6000 3500 PVR
-140000 245000 6000 3500 PVR
-130000 280000 6000 3500 PVR
-130000 290000 6000 3500 PVR
-252500 287500 4000 2000 PVR
-427500 100000 6000 3500 PVR
-525000 100000 6000 3500 PVR
-315000 100000 6000 3500 PVR
-447500 95000 6000 3500 PVR
-202500 305000 6000 3500 PVR
-127500 392500 6000 3500 PVR
-212500 392500 6000 3500 PVR
-272500 392500 6000 3500 PVR
-360000 317500 6000 3500 PVR
-77500 392500 6000 3500 PVR
-487500 107500 4000 2000 PVR
-620000 52500 4000 2000 PVR
-622500 87500 4000 2000 PVR
-537500 107500 4000 2000 PVR
-637500 172500 4000 2000 PVR
-262500 172500 4000 2000 PVR
-597500 65000 4000 2000 PVR
-407500 47500 6000 3500 PVR
-205000 82500 4000 2000 PVR
-402500 235000 4000 2000 PVR
-295000 130000 4000 2000 PVR
-335000 52500 4000 2000 PVR
-527500 22500 4000 2000 PVR
-615000 15000 4000 2000 PVR
-477500 57500 4000 2000 PVR
-622500 35000 4000 2000 PVR
-647500 20000 4000 2000 PVR
-557500 15000 4000 2000 PVR
-502500 15000 4000 2000 PVR
-547500 142500 4000 2000 PVR
-610000 142500 4000 2000 PVR
-615000 130000 4000 2000 PVR
-555000 135000 4000 2000 PVR
-195000 57500 4000 2000 PVR
-242500 360000 4000 2000 PVR
-210000 67500 4000 2000 PVR
-115000 112500 4000 2000 PVR
-507500 107500 4000 2000 PVR
-417500 135000 4000 2000 PVR
-200000 62500 4000 2000 PVR
-512500 80000 4000 2000 PVR
-557500 237500 4000 2000 PVR
-447500 30000 4000 2000 PVR
-355000 130000 4000 2000 PVR
-272500 352500 6000 3500 PVR
-95000 245000 4000 2000 PVR
-115000 245000 4000 2000 PVR
-582500 285000 4000 2000 PVR
-110000 367500 4000 2000 PVR
-182500 385000 4000 2000 PVR
-252500 385000 4000 2000 PVR
-212500 352500 6000 3500 PVR
-232500 352500 6000 3500 PVR
-192500 360000 4000 2000 PVR
-417500 107500 4000 2000 PVR
-447500 107500 4000 2000 PVR
-472500 107500 4000 2000 PVR
-467500 15000 4000 2000 PVR
-255000 120000 4000 2000 PVR
-265000 120000 4000 2000 PVR
-265000 130000 4000 2000 PVR
-250000 130000 4000 2000 PVR
-260000 105000 4000 2000 PVR
-245000 105000 4000 2000 PVR
-285000 120000 4000 2000 PVR
-300000 120000 4000 2000 PVR
-290000 125000 4000 2000 PVR
-310000 125000 4000 2000 PVR
-295000 137500 4000 2000 PVR
-322500 137500 4000 2000 PVR
-145000 137500 4000 2000 PVR
-155000 125000 4000 2000 PVR
-160000 100000 4000 2000 PVR
-300000 100000 4000 2000 PVR
-170000 142500 4000 2000 PVR
-280000 142500 4000 2000 PVR
-180000 132500 4000 2000 PVR
-275000 130000 4000 2000 PVR
-190000 105000 4000 2000 PVR
-270000 105000 4000 2000 PVR
-200000 255000 4000 2000 PVR
-270000 255000 4000 2000 PVR
-322500 245000 6000 3500 PVR
-350000 250000 4000 2000 PVR
-202500 282500 4000 2000 PVR
-220000 282500 4000 2000 PVR
-257500 250000 4000 2000 PVR
-210000 250000 4000 2000 PVR
-257500 197500 4000 2000 PVR
-220000 225000 6000 3500 PVR
-240000 225000 6000 3500 PVR
-300000 212500 4000 2000 PVR
-215000 212500 4000 2000 PVR
-310000 217500 4000 2000 PVR
-225000 217500 4000 2000 PVR
-225000 195000 4000 2000 PVR
-315000 192500 4000 2000 PVR
-150000 187500 4000 2000 PVR
-325000 187500 4000 2000 PVR
-235000 187500 4000 2000 PVR
-360000 252500 4000 2000 PVR
-292500 222500 4000 2000 PVR
-170000 217500 4000 2000 PVR
-210000 230000 4000 2000 PVR
-390000 225000 4000 2000 PVR
-257500 277500 4000 2000 PVR
-385000 277500 4000 2000 PVR
-155000 282500 4000 2000 PVR
-340000 282500 4000 2000 PVR
-230000 182500 4000 2000 PVR
-245000 182500 4000 2000 PVR
-227500 90000 4000 2000 PVR
-255000 90000 4000 2000 PVR
-250000 172500 4000 2000 PVR
-190000 175000 4000 2000 PVR
-180000 170000 4000 2000 PVR
-430000 197500 4000 2000 PVR
-332500 270000 6000 3500 PVR
-290000 265000 4000 2000 PVR
-480000 265000 4000 2000 PVR
-470000 290000 6000 3500 PVR
-462500 282500 4000 2000 PVR
-300000 177500 4000 2000 PVR
-485000 177500 4000 2000 PVR
-305000 85000 4000 2000 PVR
-275000 85000 4000 2000 PVR
-330000 80000 4000 2000 PVR
-285000 80000 4000 2000 PVR
-350000 220000 4000 2000 PVR
-365000 220000 4000 2000 PVR
-355000 385000 4000 2000 PVR
-297500 352500 6000 3500 PVR
-375000 360000 4000 2000 PVR
-107500 147500 4000 2000 PVR
-122000 160500 4000 2000 PVR
-450000 182500 4000 2000 PVR
-262500 352500 4000 2000 PVR
-327500 352500 4000 2000 PVR
-400000 225000 4000 2000 PVR
-405000 215000 4000 2000 PVR
-410000 205000 4000 2000 PVR
-105000 270000 4000 2000 PVR
-415000 272500 4000 2000 PVR
-402500 250000 4000 2000 PVR
-222500 310000 4000 2000 PVR
-402500 310000 4000 2000 PVR
-520000 260000 4000 2000 PVR
-520000 337500 4000 2000 PVR
-210000 322500 4000 2000 PVR
-570000 322500 4000 2000 PVR
-570000 245000 4000 2000 PVR
-530000 327500 4000 2000 PVR
-282500 330000 4000 2000 PVR
-327500 305000 4000 2000 PVR
-49500 330000 4000 2000 PVR
-130000 255000 6000 3500 PVR
-76500 257000 4000 2000 PVR
-90500 305500 4000 2000 PVR
-592500 360000 6000 3500 PVR
-405000 342500 6000 3500 PVR
-/Color {0.302 0.302 0.302 mysetrgbcolor} def Color
-335000 62500 800 400 DH
-335000 22500 800 400 DH
-297500 342500 800 400 DH
-297500 372500 800 400 DH
-415000 360000 800 400 DH
-405000 360000 800 400 DH
-395000 360000 800 400 DH
-447500 122500 800 400 DH
-447500 82500 800 400 DH
-397500 117500 800 400 DH
-407500 117500 800 400 DH
-417500 117500 800 400 DH
-427500 117500 800 400 DH
-427500 87500 800 400 DH
-417500 87500 800 400 DH
-407500 87500 800 400 DH
-397500 87500 800 400 DH
-557500 122500 800 400 DH
-557500 82500 800 400 DH
-537500 62500 800 400 DH
-537500 22500 800 400 DH
-487500 57500 800 400 DH
-497500 57500 800 400 DH
-507500 57500 800 400 DH
-517500 57500 800 400 DH
-517500 27500 800 400 DH
-507500 27500 800 400 DH
-497500 27500 800 400 DH
-487500 27500 800 400 DH
-467500 62500 800 400 DH
-467500 22500 800 400 DH
-467500 122500 800 400 DH
-467500 82500 800 400 DH
-537500 122500 800 400 DH
-537500 82500 800 400 DH
-487500 117500 800 400 DH
-497500 117500 800 400 DH
-507500 117500 800 400 DH
-517500 117500 800 400 DH
-517500 87500 800 400 DH
-507500 87500 800 400 DH
-497500 87500 800 400 DH
-487500 87500 800 400 DH
-397500 57500 800 400 DH
-407500 57500 800 400 DH
-417500 57500 800 400 DH
-427500 57500 800 400 DH
-427500 27500 800 400 DH
-417500 27500 800 400 DH
-407500 27500 800 400 DH
-397500 27500 800 400 DH
-557500 62500 800 400 DH
-557500 22500 800 400 DH
-157500 342500 800 400 DH
-157500 372500 800 400 DH
-57500 239500 800 400 DH
-57500 249500 800 400 DH
-530000 245000 800 400 DH
-540000 245000 800 400 DH
-550000 245000 800 400 DH
-245000 57500 800 400 DH
-255000 57500 800 400 DH
-265000 57500 800 400 DH
-275000 57500 800 400 DH
-285000 57500 800 400 DH
-295000 57500 800 400 DH
-305000 57500 800 400 DH
-315000 57500 800 400 DH
-315000 27500 800 400 DH
-305000 27500 800 400 DH
-295000 27500 800 400 DH
-285000 27500 800 400 DH
-275000 27500 800 400 DH
-265000 27500 800 400 DH
-255000 27500 800 400 DH
-245000 27500 800 400 DH
-317500 372500 800 400 DH
-327500 372500 800 400 DH
-420000 205000 800 400 DH
-430000 205000 800 400 DH
-420000 215000 800 400 DH
-430000 215000 800 400 DH
-420000 225000 800 400 DH
-430000 225000 800 400 DH
-420000 235000 800 400 DH
-430000 235000 800 400 DH
-140000 265000 800 400 DH
-150000 265000 800 400 DH
-160000 265000 800 400 DH
-170000 265000 800 400 DH
-180000 265000 800 400 DH
-190000 265000 800 400 DH
-200000 265000 800 400 DH
-210000 265000 800 400 DH
-220000 265000 800 400 DH
-230000 265000 800 400 DH
-240000 265000 800 400 DH
-250000 265000 800 400 DH
-250000 205000 800 400 DH
-240000 205000 800 400 DH
-230000 205000 800 400 DH
-220000 205000 800 400 DH
-210000 205000 800 400 DH
-200000 205000 800 400 DH
-190000 205000 800 400 DH
-180000 205000 800 400 DH
-170000 205000 800 400 DH
-160000 205000 800 400 DH
-150000 205000 800 400 DH
-140000 205000 800 400 DH
-280000 235000 800 400 DH
-290000 235000 800 400 DH
-300000 235000 800 400 DH
-310000 235000 800 400 DH
-320000 235000 800 400 DH
-330000 235000 800 400 DH
-340000 235000 800 400 DH
-350000 235000 800 400 DH
-360000 235000 800 400 DH
-370000 235000 800 400 DH
-380000 235000 800 400 DH
-390000 235000 800 400 DH
-390000 205000 800 400 DH
-380000 205000 800 400 DH
-370000 205000 800 400 DH
-360000 205000 800 400 DH
-350000 205000 800 400 DH
-340000 205000 800 400 DH
-330000 205000 800 400 DH
-320000 205000 800 400 DH
-310000 205000 800 400 DH
-300000 205000 800 400 DH
-290000 205000 800 400 DH
-280000 205000 800 400 DH
-77500 124000 800 400 DH
-77500 218000 800 400 DH
-82500 151000 800 400 DH
-72500 156000 800 400 DH
-82500 161000 800 400 DH
-72500 166000 800 400 DH
-82500 171000 800 400 DH
-72500 176000 800 400 DH
-82500 181000 800 400 DH
-72500 186000 800 400 DH
-82500 191000 800 400 DH
-81500 239500 800 400 DH
-81500 249500 800 400 DH
-495000 220000 800 400 DH
-470000 220000 800 400 DH
-85000 330000 800 400 DH
-85000 360000 800 400 DH
-582500 245000 800 400 DH
-592500 245000 800 400 DH
-602500 245000 800 400 DH
-535000 210000 800 400 DH
-545000 210000 800 400 DH
-355000 62500 800 400 DH
-355000 22500 800 400 DH
-105000 330000 800 400 DH
-115000 330000 800 400 DH
-172500 320000 800 400 DH
-182500 320000 800 400 DH
-192500 320000 800 400 DH
-202500 320000 800 400 DH
-202500 290000 800 400 DH
-192500 290000 800 400 DH
-182500 290000 800 400 DH
-172500 290000 800 400 DH
-495000 277500 800 400 DH
-470000 277500 800 400 DH
-570000 360000 800 400 DH
-560000 360000 800 400 DH
-550000 360000 800 400 DH
-280000 257500 800 400 DH
-280000 297500 800 400 DH
-116000 280000 800 400 DH
-76000 280000 800 400 DH
-490000 370000 800 400 DH
-475000 370000 800 400 DH
-530000 292500 800 400 DH
-540000 292500 800 400 DH
-550000 292500 800 400 DH
-652500 47500 800 400 DH
-652500 57500 800 400 DH
-652500 67500 800 400 DH
-652500 77500 800 400 DH
-652500 87500 800 400 DH
-652500 97500 800 400 DH
-652500 107500 800 400 DH
-652500 117500 800 400 DH
-652500 127500 800 400 DH
-652500 137500 800 400 DH
-652500 147500 800 400 DH
-652500 157500 800 400 DH
-652500 167500 800 400 DH
-652500 177500 800 400 DH
-652500 187500 800 400 DH
-652500 197500 800 400 DH
-652500 207500 800 400 DH
-652500 217500 800 400 DH
-652500 227500 800 400 DH
-652500 237500 800 400 DH
-652500 247500 800 400 DH
-652500 257500 800 400 DH
-652500 267500 800 400 DH
-652500 277500 800 400 DH
-652500 287500 800 400 DH
-652500 297500 800 400 DH
-652500 307500 800 400 DH
-652500 317500 800 400 DH
-652500 327500 800 400 DH
-652500 337500 800 400 DH
-652500 347500 800 400 DH
-652500 357500 800 400 DH
-642500 47500 800 400 DH
-642500 57500 800 400 DH
-642500 67500 800 400 DH
-642500 77500 800 400 DH
-642500 87500 800 400 DH
-642500 97500 800 400 DH
-642500 107500 800 400 DH
-642500 117500 800 400 DH
-642500 127500 800 400 DH
-642500 137500 800 400 DH
-642500 147500 800 400 DH
-642500 157500 800 400 DH
-642500 167500 800 400 DH
-642500 177500 800 400 DH
-642500 187500 800 400 DH
-642500 197500 800 400 DH
-642500 207500 800 400 DH
-642500 217500 800 400 DH
-642500 227500 800 400 DH
-642500 237500 800 400 DH
-642500 247500 800 400 DH
-642500 257500 800 400 DH
-642500 267500 800 400 DH
-642500 277500 800 400 DH
-642500 287500 800 400 DH
-642500 297500 800 400 DH
-642500 307500 800 400 DH
-642500 317500 800 400 DH
-642500 327500 800 400 DH
-642500 337500 800 400 DH
-642500 347500 800 400 DH
-642500 357500 800 400 DH
-632500 47500 800 400 DH
-632500 57500 800 400 DH
-632500 67500 800 400 DH
-632500 77500 800 400 DH
-632500 87500 800 400 DH
-632500 97500 800 400 DH
-632500 107500 800 400 DH
-632500 117500 800 400 DH
-632500 127500 800 400 DH
-632500 137500 800 400 DH
-632500 147500 800 400 DH
-632500 157500 800 400 DH
-632500 167500 800 400 DH
-632500 177500 800 400 DH
-632500 187500 800 400 DH
-632500 197500 800 400 DH
-632500 207500 800 400 DH
-632500 217500 800 400 DH
-632500 227500 800 400 DH
-632500 237500 800 400 DH
-632500 247500 800 400 DH
-632500 257500 800 400 DH
-632500 267500 800 400 DH
-632500 277500 800 400 DH
-632500 287500 800 400 DH
-632500 297500 800 400 DH
-632500 307500 800 400 DH
-632500 317500 800 400 DH
-632500 327500 800 400 DH
-632500 337500 800 400 DH
-632500 347500 800 400 DH
-632500 357500 800 400 DH
-662500 377500 800 400 DH
-662500 27500 800 400 DH
-332500 260000 800 400 DH
-322500 260000 800 400 DH
-447500 62500 800 400 DH
-447500 22500 800 400 DH
-300000 297500 800 400 DH
-300000 257500 800 400 DH
-475000 330000 800 400 DH
-490000 330000 800 400 DH
-55000 269500 800 400 DH
-55000 287200 800 400 DH
-64800 264600 800 400 DH
-64800 292200 800 400 DH
-582500 292500 800 400 DH
-592500 292500 800 400 DH
-602500 292500 800 400 DH
-562500 187500 800 400 DH
-592500 187500 800 400 DH
-577500 117500 800 400 DH
-587500 117500 800 400 DH
-597500 117500 800 400 DH
-607500 117500 800 400 DH
-607500 87500 800 400 DH
-597500 87500 800 400 DH
-587500 87500 800 400 DH
-577500 87500 800 400 DH
-582500 210000 800 400 DH
-592500 210000 800 400 DH
-602500 210000 800 400 DH
-577500 57500 800 400 DH
-587500 57500 800 400 DH
-597500 57500 800 400 DH
-607500 57500 800 400 DH
-607500 27500 800 400 DH
-597500 27500 800 400 DH
-587500 27500 800 400 DH
-577500 27500 800 400 DH
-322500 290000 800 400 DH
-332500 290000 800 400 DH
-87500 57500 800 400 DH
-97500 62500 800 400 DH
-87500 67500 800 400 DH
-97500 72500 800 400 DH
-87500 77500 800 400 DH
-97500 82500 800 400 DH
-87500 87500 800 400 DH
-97500 92500 800 400 DH
-62500 52500 800 400 DH
-62500 97600 800 400 DH
-74500 44500 800 400 DH
-74500 105600 800 400 DH
-360000 290000 800 400 DH
-370000 290000 800 400 DH
-380000 290000 800 400 DH
-390000 290000 800 400 DH
-390000 260000 800 400 DH
-380000 260000 800 400 DH
-370000 260000 800 400 DH
-360000 260000 800 400 DH
-317500 342500 800 400 DH
-327500 342500 800 400 DH
-137500 342500 800 400 DH
-127500 342500 800 400 DH
-540000 162500 800 400 DH
-535000 152500 800 400 DH
-530000 162500 800 400 DH
-525000 152500 800 400 DH
-520000 162500 800 400 DH
-515000 152500 800 400 DH
-510000 162500 800 400 DH
-505000 152500 800 400 DH
-500000 162500 800 400 DH
-495000 152500 800 400 DH
-490000 162500 800 400 DH
-485000 152500 800 400 DH
-480000 162500 800 400 DH
-475000 152500 800 400 DH
-470000 162500 800 400 DH
-465000 152500 800 400 DH
-460000 162500 800 400 DH
-455000 152500 800 400 DH
-450000 162500 800 400 DH
-445000 152500 800 400 DH
-440000 162500 800 400 DH
-435000 152500 800 400 DH
-430000 162500 800 400 DH
-425000 152500 800 400 DH
-420000 162500 800 400 DH
-415000 152500 800 400 DH
-410000 162500 800 400 DH
-405000 152500 800 400 DH
-400000 162500 800 400 DH
-395000 152500 800 400 DH
-390000 162500 800 400 DH
-385000 152500 800 400 DH
-380000 162500 800 400 DH
-375000 152500 800 400 DH
-370000 162500 800 400 DH
-365000 152500 800 400 DH
-340000 162500 800 400 DH
-335000 152500 800 400 DH
-330000 162500 800 400 DH
-325000 152500 800 400 DH
-320000 162500 800 400 DH
-315000 152500 800 400 DH
-310000 162500 800 400 DH
-305000 152500 800 400 DH
-300000 162500 800 400 DH
-295000 152500 800 400 DH
-290000 162500 800 400 DH
-285000 152500 800 400 DH
-280000 162500 800 400 DH
-275000 152500 800 400 DH
-270000 162500 800 400 DH
-265000 152500 800 400 DH
-260000 162500 800 400 DH
-255000 152500 800 400 DH
-250000 162500 800 400 DH
-245000 152500 800 400 DH
-240000 162500 800 400 DH
-235000 152500 800 400 DH
-230000 162500 800 400 DH
-225000 152500 800 400 DH
-220000 162500 800 400 DH
-215000 152500 800 400 DH
-210000 162500 800 400 DH
-205000 152500 800 400 DH
-200000 162500 800 400 DH
-195000 152500 800 400 DH
-190000 162500 800 400 DH
-185000 152500 800 400 DH
-180000 162500 800 400 DH
-175000 152500 800 400 DH
-170000 162500 800 400 DH
-165000 152500 800 400 DH
-573000 157500 800 400 DH
-352500 157500 800 400 DH
-132500 157500 800 400 DH
-137500 372500 800 400 DH
-127500 372500 800 400 DH
-172500 372500 800 400 DH
-182500 372500 800 400 DH
-192500 372500 800 400 DH
-202500 372500 800 400 DH
-212500 372500 800 400 DH
-222500 372500 800 400 DH
-232500 372500 800 400 DH
-242500 372500 800 400 DH
-252500 372500 800 400 DH
-262500 372500 800 400 DH
-272500 372500 800 400 DH
-282500 372500 800 400 DH
-282500 342500 800 400 DH
-272500 342500 800 400 DH
-262500 342500 800 400 DH
-252500 342500 800 400 DH
-242500 342500 800 400 DH
-232500 342500 800 400 DH
-222500 342500 800 400 DH
-212500 342500 800 400 DH
-202500 342500 800 400 DH
-192500 342500 800 400 DH
-182500 342500 800 400 DH
-172500 342500 800 400 DH
-115500 305500 800 400 DH
-75500 305500 800 400 DH
-57500 27500 800 400 DH
-57500 376200 800 400 DH
-662500 27500 800 400 DH
-662500 376200 800 400 DH
-/Color {0.498 0.498 0.498 mysetrgbcolor} def Color
-475000 342500 800 400 DH
-490000 342500 800 400 DH
-560000 342500 800 400 DH
-602500 260000 800 400 DH
-540000 260000 800 400 DH
-540000 307500 800 400 DH
-602500 307500 800 400 DH
-592500 277500 800 400 DH
-612500 287500 800 400 DH
-540000 327500 800 400 DH
-395000 317500 800 400 DH
-475000 317500 800 400 DH
-622500 342500 800 400 DH
-612500 267500 800 400 DH
-592500 222500 800 400 DH
-462500 342500 800 400 DH
-562500 220000 800 400 DH
-622500 102500 800 400 DH
-647500 102500 800 400 DH
-567500 107500 800 400 DH
-597500 47500 800 400 DH
-537500 47500 800 400 DH
-487500 47500 800 400 DH
-517500 40000 800 400 DH
-577500 40000 800 400 DH
-402500 72500 800 400 DH
-487500 72500 800 400 DH
-537500 72500 800 400 DH
-592500 72500 800 400 DH
-497500 95000 800 400 DH
-140000 95000 800 400 DH
-175000 95000 800 400 DH
-237500 95000 800 400 DH
-322500 317500 800 400 DH
-327500 392500 800 400 DH
-240000 245000 800 400 DH
-270000 245000 800 400 DH
-140000 245000 800 400 DH
-130000 280000 800 400 DH
-130000 290000 800 400 DH
-252500 287500 800 400 DH
-427500 100000 800 400 DH
-525000 100000 800 400 DH
-315000 100000 800 400 DH
-447500 95000 800 400 DH
-202500 305000 800 400 DH
-127500 392500 800 400 DH
-212500 392500 800 400 DH
-272500 392500 800 400 DH
-360000 317500 800 400 DH
-77500 392500 800 400 DH
-487500 107500 800 400 DH
-620000 52500 800 400 DH
-622500 87500 800 400 DH
-537500 107500 800 400 DH
-637500 172500 800 400 DH
-262500 172500 800 400 DH
-597500 65000 800 400 DH
-407500 47500 800 400 DH
-205000 82500 800 400 DH
-402500 235000 800 400 DH
-295000 130000 800 400 DH
-335000 52500 800 400 DH
-527500 22500 800 400 DH
-615000 15000 800 400 DH
-477500 57500 800 400 DH
-622500 35000 800 400 DH
-647500 20000 800 400 DH
-557500 15000 800 400 DH
-502500 15000 800 400 DH
-547500 142500 800 400 DH
-610000 142500 800 400 DH
-615000 130000 800 400 DH
-555000 135000 800 400 DH
-195000 57500 800 400 DH
-242500 360000 800 400 DH
-210000 67500 800 400 DH
-115000 112500 800 400 DH
-507500 107500 800 400 DH
-417500 135000 800 400 DH
-200000 62500 800 400 DH
-512500 80000 800 400 DH
-557500 237500 800 400 DH
-447500 30000 800 400 DH
-355000 130000 800 400 DH
-272500 352500 800 400 DH
-95000 245000 800 400 DH
-115000 245000 800 400 DH
-582500 285000 800 400 DH
-110000 367500 800 400 DH
-182500 385000 800 400 DH
-252500 385000 800 400 DH
-212500 352500 800 400 DH
-232500 352500 800 400 DH
-192500 360000 800 400 DH
-417500 107500 800 400 DH
-447500 107500 800 400 DH
-472500 107500 800 400 DH
-467500 15000 800 400 DH
-255000 120000 800 400 DH
-265000 120000 800 400 DH
-265000 130000 800 400 DH
-250000 130000 800 400 DH
-260000 105000 800 400 DH
-245000 105000 800 400 DH
-285000 120000 800 400 DH
-300000 120000 800 400 DH
-290000 125000 800 400 DH
-310000 125000 800 400 DH
-295000 137500 800 400 DH
-322500 137500 800 400 DH
-145000 137500 800 400 DH
-155000 125000 800 400 DH
-160000 100000 800 400 DH
-300000 100000 800 400 DH
-170000 142500 800 400 DH
-280000 142500 800 400 DH
-180000 132500 800 400 DH
-275000 130000 800 400 DH
-190000 105000 800 400 DH
-270000 105000 800 400 DH
-200000 255000 800 400 DH
-270000 255000 800 400 DH
-322500 245000 800 400 DH
-350000 250000 800 400 DH
-202500 282500 800 400 DH
-220000 282500 800 400 DH
-257500 250000 800 400 DH
-210000 250000 800 400 DH
-257500 197500 800 400 DH
-220000 225000 800 400 DH
-240000 225000 800 400 DH
-300000 212500 800 400 DH
-215000 212500 800 400 DH
-310000 217500 800 400 DH
-225000 217500 800 400 DH
-225000 195000 800 400 DH
-315000 192500 800 400 DH
-150000 187500 800 400 DH
-325000 187500 800 400 DH
-235000 187500 800 400 DH
-360000 252500 800 400 DH
-292500 222500 800 400 DH
-170000 217500 800 400 DH
-210000 230000 800 400 DH
-390000 225000 800 400 DH
-257500 277500 800 400 DH
-385000 277500 800 400 DH
-155000 282500 800 400 DH
-340000 282500 800 400 DH
-230000 182500 800 400 DH
-245000 182500 800 400 DH
-227500 90000 800 400 DH
-255000 90000 800 400 DH
-250000 172500 800 400 DH
-190000 175000 800 400 DH
-180000 170000 800 400 DH
-430000 197500 800 400 DH
-332500 270000 800 400 DH
-290000 265000 800 400 DH
-480000 265000 800 400 DH
-470000 290000 800 400 DH
-462500 282500 800 400 DH
-300000 177500 800 400 DH
-485000 177500 800 400 DH
-305000 85000 800 400 DH
-275000 85000 800 400 DH
-330000 80000 800 400 DH
-285000 80000 800 400 DH
-350000 220000 800 400 DH
-365000 220000 800 400 DH
-355000 385000 800 400 DH
-297500 352500 800 400 DH
-375000 360000 800 400 DH
-107500 147500 800 400 DH
-122000 160500 800 400 DH
-450000 182500 800 400 DH
-262500 352500 800 400 DH
-327500 352500 800 400 DH
-400000 225000 800 400 DH
-405000 215000 800 400 DH
-410000 205000 800 400 DH
-105000 270000 800 400 DH
-415000 272500 800 400 DH
-402500 250000 800 400 DH
-222500 310000 800 400 DH
-402500 310000 800 400 DH
-520000 260000 800 400 DH
-520000 337500 800 400 DH
-210000 322500 800 400 DH
-570000 322500 800 400 DH
-570000 245000 800 400 DH
-530000 327500 800 400 DH
-282500 330000 800 400 DH
-327500 305000 800 400 DH
-49500 330000 800 400 DH
-130000 255000 800 400 DH
-76500 257000 800 400 DH
-90500 305500 800 400 DH
-592500 360000 800 400 DH
-405000 342500 800 400 DH
-grestore
-% PCBENDDATA --- do not remove ---
-showpage
-%%EOF
+++ /dev/null
-%!PS-Adobe-3.0
-%%Title: (unknown), solder mask solder side
-%%Creator: pcb-bin 20060321
-%%CreationDate: Tue Nov 27 09:49:27 2007
-%%For: fetter (Walter Fetter Lages,,,)
-%%LanguageLevel: 1
-%%Orientation: Portrait
-%%Pages: 1
-%%PageOrder: Ascend
-%%DocumentMedia: A4 594 841
-%%EndComments
-%%BeginProlog
-
-/PcbDict 200 dict def
-PcbDict begin
-PcbDict /DictMatrix matrix put
-
-% some constants
-/Black {0.0 mysetgray} def
-/White {1.0 mysetgray} def
-/TAN {0.207106781} def
-/MTAN {-0.207106781} def
-
-% draw a filled polygon
-% get (x,y)... and number of points from stack
-/PO {
- /number exch def
- newpath
- moveto
- number 1 sub { lineto } repeat
- closepath fill stroke
-} def
-
-/P {
-% draw a pin-polygon,
-% get x, y and thickness from stack
- /thickness exch def /y exch def /x exch def
- gsave x y translate thickness thickness scale
- 0.5 MTAN
- TAN -0.5
- MTAN -0.5
- -0.5 MTAN
- -0.5 TAN
- MTAN 0.5
- TAN 0.5
- 0.5 TAN
- 8 PO grestore
-} def
-
-/PV {
-% pin or via, x, y and thickness are on the stack
- /drillinghole exch def /thickness exch def /y exch def /x exch def
- x y thickness P
-% draw drilling hole
- gsave White 0 setlinewidth
- newpath x y drillinghole 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/PVR {
-% pin or via, x, y and thickness are on the stack
- /drillinghole exch def /thickness exch def /y exch def /x exch def
- gsave 0 setlinewidth
- newpath x y thickness 2 div 0 360 arc closepath fill stroke
-% draw drilling whole
- White
- newpath x y drillinghole 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/PVSQ {
-% square pin or via, x, y and thickness are on the stack
- /drillinghole exch def /thickness exch def /y exch def /x exch def
- newpath x thickness 2 div sub y thickness 2 div sub moveto
- thickness 0 rlineto 0 thickness rlineto
- thickness neg 0 rlineto closepath fill stroke
-% draw drilling hole
- gsave White 0 setlinewidth
- newpath x y drillinghole 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/DH {
-% drill helpher; x, y, hole, copper-thickness are on stack
- /copper exch def /hole exch def /y exch def /x exch def
- gsave copper setlinewidth
- newpath x y hole copper add 2 div 0 360 arc closepath stroke
- grestore
-} def
-
-/L {
-% line, get x1, y1, x2, y2 and thickness from stack
- /thick exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave thick setlinewidth
- x1 y1 moveto x2 y2 lineto stroke
- grestore
-} def
-
-/CL {
-% line, get x1, y1, x2, y2 and thickness from stack
- /thick exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave White thick setlinewidth
- x1 y1 moveto x2 y2 lineto stroke
- grestore
-} def
-
-/B {
-% filled box, get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath fill stroke
-} def
-
-/PA {
-% pad, same as line
- L
-} def
-
-/A {
-% arc for elements, get x, y, width, height, thickness
-% startangle and delta-angle from stack
- /delta exch def /start exch def /thickness exch def
- /height exch def /width exch def /y exch def /x exch def
-% draw it
- gsave thickness setlinewidth /save DictMatrix currentmatrix def
-% scaling is less then zero because the coord system has to be swapped
- x y translate width neg height scale
- 0 0 1 start start delta add arc save setmatrix stroke
- grestore
-} def
-
-/CA {
-% arc for elements, get x, y, width, height, thickness
-% startangle and delta-angle from stack
- /delta exch def /start exch def /thickness exch def
- /height exch def /width exch def /y exch def /x exch def
-% draw it
- gsave White thickness setlinewidth /save DictMatrix currentmatrix def
-% scaling is less then zero because the coord system has to be swapped
- x y translate width neg height scale
- 0 0 1 start start delta add arc save setmatrix stroke
- grestore
-} def
-
-/CLRPV {
-% clears a pin/via for groundplane; x,y and thickness are on stack
- /thickness exch def /y exch def /x exch def
- gsave White x y thickness P grestore
-} def
-
-/CLRPVSQ {
-% clears a square pin, x,y and thickness are on stack
- /thickness exch def /y exch def /x exch def
- gsave White
- newpath x thickness 2 div sub y thickness 2 div sub moveto
- thickness 0 rlineto 0 thickness rlineto
- thickness neg 0 rlineto closepath fill stroke
- grestore
-} def
-
-/CLRPVR {
-% clears a round pin/via for groundplane; x,y and thickness are on the stack
- /thickness exch def /y exch def /x exch def
- gsave White 0 setlinewidth
- newpath x y thickness 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/CLRPA {
-% clear line, get x1, y1, x2, y2 and thickness from stack
- /thick exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave White thick setlinewidth
- x1 y1 moveto x2 y2 lineto stroke
- grestore
-} def
-
-/CLRB {
-% cleared box, get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave White newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath fill stroke
- grestore
-} def
-
-/FILL {
-% draw a filled rectangle for the ground plane
-% get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave 0 setlinewidth
- newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath fill stroke
- grestore
-} def
-
-/Outline {
-% outline, get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave 0.175 setlinewidth
- newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath stroke
- grestore
-} def
-
-/Alignment {
-% alignment targets, get x1, y1, x2, y2 and distance from stack
- /dis exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave 0.175 setlinewidth
- newpath x1 y1 dis add moveto
- 0 dis 2 mul neg rlineto
- dis neg dis rmoveto
- dis 2 mul 0 rlineto
- stroke
- newpath x1 y1 dis 0 90 arcn stroke
- newpath x1 y2 dis sub moveto 0 dis rlineto dis 0 rlineto stroke
- newpath x2 y2 dis sub moveto
- 0 2 dis mul rlineto
- dis dup neg rmoveto
- 2 dis mul neg 0 rlineto stroke
- newpath x2 y1 dis add moveto 0 dis neg rlineto dis neg 0 rlineto stroke
- grestore
-} def
-
-/mysetgray {neg 1.0 add setgray} def
-/mysetrgbcolor {
- /blue exch def /green exch def /red exch def
- 1.0 red sub 1.0 green sub 1.0 blue sub setrgbcolor
-} def
-%%EndProlog
-%%BeginDefaults
-%%EndDefaults
-%%BeginSetup
-0.0 setlinewidth
-1 setlinecap
-Black
-%%EndSetup
-%%Page: 1 1
-%%BeginPageSetup
-%%EndPageSetup
-gsave White newpath
-153 160 moveto 451 160 lineto 451 673 lineto 153 673 lineto
-closepath fill stroke grestore
-% PCBMIN(-400,-400), PCBMAX(710400,410400)
-% PCBOFFSET(214900,223900), PCBSCALE(1.00000)
-% PCBSTARTDATA --- do not remove ---
-gsave
-0.00072 0.00072 scale
-214900 223900 translate
-1.000 1.000 scale
-410800 0 translate
-90 rotate
-0 410800 translate
-1 -1 scale
-400 400 translate
-/mysetgray { setgray } def
-/mysetrgbcolor { setrgbcolor } def
-
-/Color {0.302 0.302 0.302 mysetrgbcolor} def Color
--400 -400 710400 410400 200 Alignment
-335000 62500 6600 CLRPVSQ
-335000 22500 6600 CLRPVR
-297500 342500 6600 CLRPVSQ
-297500 372500 6600 CLRPVR
-415000 360000 8600 CLRPVSQ
-405000 360000 8600 CLRPVR
-395000 360000 8600 CLRPVR
-447500 122500 6600 CLRPVSQ
-447500 82500 6600 CLRPVR
-397500 117500 6600 CLRPVSQ
-407500 117500 6600 CLRPVR
-417500 117500 6600 CLRPVR
-427500 117500 6600 CLRPVR
-427500 87500 6600 CLRPVR
-417500 87500 6600 CLRPVR
-407500 87500 6600 CLRPVR
-397500 87500 6600 CLRPVR
-557500 122500 6600 CLRPVSQ
-557500 82500 6600 CLRPVR
-537500 62500 6600 CLRPVSQ
-537500 22500 6600 CLRPVR
-487500 57500 6600 CLRPVSQ
-497500 57500 6600 CLRPVR
-507500 57500 6600 CLRPVR
-517500 57500 6600 CLRPVR
-517500 27500 6600 CLRPVR
-507500 27500 6600 CLRPVR
-497500 27500 6600 CLRPVR
-487500 27500 6600 CLRPVR
-467500 62500 6600 CLRPVSQ
-467500 22500 6600 CLRPVR
-467500 122500 6600 CLRPVSQ
-467500 82500 6600 CLRPVR
-537500 122500 6600 CLRPVSQ
-537500 82500 6600 CLRPVR
-487500 117500 6600 CLRPVSQ
-497500 117500 6600 CLRPVR
-507500 117500 6600 CLRPVR
-517500 117500 6600 CLRPVR
-517500 87500 6600 CLRPVR
-507500 87500 6600 CLRPVR
-497500 87500 6600 CLRPVR
-487500 87500 6600 CLRPVR
-397500 57500 6600 CLRPVSQ
-407500 57500 6600 CLRPVR
-417500 57500 6600 CLRPVR
-427500 57500 6600 CLRPVR
-427500 27500 6600 CLRPVR
-417500 27500 6600 CLRPVR
-407500 27500 6600 CLRPVR
-397500 27500 6600 CLRPVR
-557500 62500 6600 CLRPVSQ
-557500 22500 6600 CLRPVR
-157500 342500 6600 CLRPVSQ
-157500 372500 6600 CLRPVR
-57500 239500 6600 CLRPVSQ
-57500 249500 6600 CLRPVR
-530000 245000 8600 CLRPVSQ
-540000 245000 8600 CLRPVR
-550000 245000 8600 CLRPVR
-245000 57500 6600 CLRPVSQ
-255000 57500 6600 CLRPVR
-265000 57500 6600 CLRPVR
-275000 57500 6600 CLRPVR
-285000 57500 6600 CLRPVR
-295000 57500 6600 CLRPVR
-305000 57500 6600 CLRPVR
-315000 57500 6600 CLRPVR
-315000 27500 6600 CLRPVR
-305000 27500 6600 CLRPVR
-295000 27500 6600 CLRPVR
-285000 27500 6600 CLRPVR
-275000 27500 6600 CLRPVR
-265000 27500 6600 CLRPVR
-255000 27500 6600 CLRPVR
-245000 27500 6600 CLRPVR
-317500 372500 6600 CLRPVSQ
-327500 372500 6600 CLRPVR
-420000 205000 7600 CLRPVSQ
-430000 205000 7600 CLRPVR
-420000 215000 7600 CLRPVR
-430000 215000 7600 CLRPVR
-420000 225000 7600 CLRPVR
-430000 225000 7600 CLRPVR
-420000 235000 7600 CLRPVR
-430000 235000 7600 CLRPVR
-140000 265000 6600 CLRPVSQ
-150000 265000 6600 CLRPVR
-160000 265000 6600 CLRPVR
-170000 265000 6600 CLRPVR
-180000 265000 6600 CLRPVR
-190000 265000 6600 CLRPVR
-200000 265000 6600 CLRPVR
-210000 265000 6600 CLRPVR
-220000 265000 6600 CLRPVR
-230000 265000 6600 CLRPVR
-240000 265000 6600 CLRPVR
-250000 265000 6600 CLRPVR
-250000 205000 6600 CLRPVR
-240000 205000 6600 CLRPVR
-230000 205000 6600 CLRPVR
-220000 205000 6600 CLRPVR
-210000 205000 6600 CLRPVR
-200000 205000 6600 CLRPVR
-190000 205000 6600 CLRPVR
-180000 205000 6600 CLRPVR
-170000 205000 6600 CLRPVR
-160000 205000 6600 CLRPVR
-150000 205000 6600 CLRPVR
-140000 205000 6600 CLRPVR
-280000 235000 6600 CLRPVSQ
-290000 235000 6600 CLRPVR
-300000 235000 6600 CLRPVR
-310000 235000 6600 CLRPVR
-320000 235000 6600 CLRPVR
-330000 235000 6600 CLRPVR
-340000 235000 6600 CLRPVR
-350000 235000 6600 CLRPVR
-360000 235000 6600 CLRPVR
-370000 235000 6600 CLRPVR
-380000 235000 6600 CLRPVR
-390000 235000 6600 CLRPVR
-390000 205000 6600 CLRPVR
-380000 205000 6600 CLRPVR
-370000 205000 6600 CLRPVR
-360000 205000 6600 CLRPVR
-350000 205000 6600 CLRPVR
-340000 205000 6600 CLRPVR
-330000 205000 6600 CLRPVR
-320000 205000 6600 CLRPVR
-310000 205000 6600 CLRPVR
-300000 205000 6600 CLRPVR
-290000 205000 6600 CLRPVR
-280000 205000 6600 CLRPVR
-77500 124000 12600 CLRPVR
-77500 218000 12600 CLRPVR
-82500 151000 7600 CLRPVR
-72500 156000 7600 CLRPVR
-82500 161000 7600 CLRPVR
-72500 166000 7600 CLRPVR
-82500 171000 7600 CLRPVR
-72500 176000 7600 CLRPVR
-82500 181000 7600 CLRPVR
-72500 186000 7600 CLRPVR
-82500 191000 7600 CLRPVSQ
-81500 239500 6600 CLRPVSQ
-81500 249500 6600 CLRPVR
-495000 220000 7600 CLRPVSQ
-470000 220000 7600 CLRPVR
-85000 330000 6600 CLRPVSQ
-85000 360000 6600 CLRPVR
-582500 245000 8600 CLRPVSQ
-592500 245000 8600 CLRPVR
-602500 245000 8600 CLRPVR
-535000 210000 6600 CLRPVSQ
-545000 210000 6600 CLRPVR
-355000 62500 6600 CLRPVSQ
-355000 22500 6600 CLRPVR
-105000 330000 7600 CLRPVSQ
-115000 330000 7600 CLRPVR
-172500 320000 6600 CLRPVSQ
-182500 320000 6600 CLRPVR
-192500 320000 6600 CLRPVR
-202500 320000 6600 CLRPVR
-202500 290000 6600 CLRPVR
-192500 290000 6600 CLRPVR
-182500 290000 6600 CLRPVR
-172500 290000 6600 CLRPVR
-495000 277500 7600 CLRPVSQ
-470000 277500 7600 CLRPVR
-570000 360000 8600 CLRPVSQ
-560000 360000 8600 CLRPVR
-550000 360000 8600 CLRPVR
-280000 257500 6600 CLRPVSQ
-280000 297500 6600 CLRPVR
-116000 280000 6600 CLRPVSQ
-76000 280000 6600 CLRPVR
-490000 370000 6600 CLRPVSQ
-475000 370000 6600 CLRPVR
-530000 292500 8600 CLRPVSQ
-540000 292500 8600 CLRPVR
-550000 292500 8600 CLRPVR
-652500 47500 6600 CLRPVSQ
-652500 57500 6600 CLRPVR
-652500 67500 6600 CLRPVR
-652500 77500 6600 CLRPVR
-652500 87500 6600 CLRPVR
-652500 97500 6600 CLRPVR
-652500 107500 6600 CLRPVR
-652500 117500 6600 CLRPVR
-652500 127500 6600 CLRPVR
-652500 137500 6600 CLRPVR
-652500 147500 6600 CLRPVR
-652500 157500 6600 CLRPVR
-652500 167500 6600 CLRPVR
-652500 177500 6600 CLRPVR
-652500 187500 6600 CLRPVR
-652500 197500 6600 CLRPVR
-652500 207500 6600 CLRPVR
-652500 217500 6600 CLRPVR
-652500 227500 6600 CLRPVR
-652500 237500 6600 CLRPVR
-652500 247500 6600 CLRPVR
-652500 257500 6600 CLRPVR
-652500 267500 6600 CLRPVR
-652500 277500 6600 CLRPVR
-652500 287500 6600 CLRPVR
-652500 297500 6600 CLRPVR
-652500 307500 6600 CLRPVR
-652500 317500 6600 CLRPVR
-652500 327500 6600 CLRPVR
-652500 337500 6600 CLRPVR
-652500 347500 6600 CLRPVR
-652500 357500 6600 CLRPVR
-642500 47500 6600 CLRPVR
-642500 57500 6600 CLRPVR
-642500 67500 6600 CLRPVR
-642500 77500 6600 CLRPVR
-642500 87500 6600 CLRPVR
-642500 97500 6600 CLRPVR
-642500 107500 6600 CLRPVR
-642500 117500 6600 CLRPVR
-642500 127500 6600 CLRPVR
-642500 137500 6600 CLRPVR
-642500 147500 6600 CLRPVR
-642500 157500 6600 CLRPVR
-642500 167500 6600 CLRPVR
-642500 177500 6600 CLRPVR
-642500 187500 6600 CLRPVR
-642500 197500 6600 CLRPVR
-642500 207500 6600 CLRPVR
-642500 217500 6600 CLRPVR
-642500 227500 6600 CLRPVR
-642500 237500 6600 CLRPVR
-642500 247500 6600 CLRPVR
-642500 257500 6600 CLRPVR
-642500 267500 6600 CLRPVR
-642500 277500 6600 CLRPVR
-642500 287500 6600 CLRPVR
-642500 297500 6600 CLRPVR
-642500 307500 6600 CLRPVR
-642500 317500 6600 CLRPVR
-642500 327500 6600 CLRPVR
-642500 337500 6600 CLRPVR
-642500 347500 6600 CLRPVR
-642500 357500 6600 CLRPVR
-632500 47500 6600 CLRPVR
-632500 57500 6600 CLRPVR
-632500 67500 6600 CLRPVR
-632500 77500 6600 CLRPVR
-632500 87500 6600 CLRPVR
-632500 97500 6600 CLRPVR
-632500 107500 6600 CLRPVR
-632500 117500 6600 CLRPVR
-632500 127500 6600 CLRPVR
-632500 137500 6600 CLRPVR
-632500 147500 6600 CLRPVR
-632500 157500 6600 CLRPVR
-632500 167500 6600 CLRPVR
-632500 177500 6600 CLRPVR
-632500 187500 6600 CLRPVR
-632500 197500 6600 CLRPVR
-632500 207500 6600 CLRPVR
-632500 217500 6600 CLRPVR
-632500 227500 6600 CLRPVR
-632500 237500 6600 CLRPVR
-632500 247500 6600 CLRPVR
-632500 257500 6600 CLRPVR
-632500 267500 6600 CLRPVR
-632500 277500 6600 CLRPVR
-632500 287500 6600 CLRPVR
-632500 297500 6600 CLRPVR
-632500 307500 6600 CLRPVR
-632500 317500 6600 CLRPVR
-632500 327500 6600 CLRPVR
-632500 337500 6600 CLRPVR
-632500 347500 6600 CLRPVR
-632500 357500 6600 CLRPVR
-662500 377500 12600 CLRPVR
-662500 27500 12600 CLRPVR
-332500 260000 6600 CLRPVSQ
-322500 260000 6600 CLRPVR
-447500 62500 6600 CLRPVSQ
-447500 22500 6600 CLRPVR
-300000 297500 6600 CLRPVSQ
-300000 257500 6600 CLRPVR
-475000 330000 6600 CLRPVSQ
-490000 330000 6600 CLRPVR
-55000 269500 7600 CLRPVSQ
-55000 287200 7600 CLRPVR
-64800 264600 7600 CLRPVR
-64800 292200 7600 CLRPVR
-582500 292500 8600 CLRPVSQ
-592500 292500 8600 CLRPVR
-602500 292500 8600 CLRPVR
-562500 187500 6600 CLRPVSQ
-592500 187500 6600 CLRPVR
-577500 117500 6600 CLRPVSQ
-587500 117500 6600 CLRPVR
-597500 117500 6600 CLRPVR
-607500 117500 6600 CLRPVR
-607500 87500 6600 CLRPVR
-597500 87500 6600 CLRPVR
-587500 87500 6600 CLRPVR
-577500 87500 6600 CLRPVR
-582500 210000 8600 CLRPVSQ
-592500 210000 8600 CLRPVR
-602500 210000 8600 CLRPVR
-577500 57500 6600 CLRPVSQ
-587500 57500 6600 CLRPVR
-597500 57500 6600 CLRPVR
-607500 57500 6600 CLRPVR
-607500 27500 6600 CLRPVR
-597500 27500 6600 CLRPVR
-587500 27500 6600 CLRPVR
-577500 27500 6600 CLRPVR
-322500 290000 6600 CLRPVSQ
-332500 290000 6600 CLRPVR
-87500 57500 6600 CLRPVSQ
-97500 62500 6600 CLRPVR
-87500 67500 6600 CLRPVR
-97500 72500 6600 CLRPVR
-87500 77500 6600 CLRPVR
-97500 82500 6600 CLRPVR
-87500 87500 6600 CLRPVR
-97500 92500 6600 CLRPVR
-62500 52500 15400 CLRPVR
-62500 97600 15400 CLRPVR
-74500 44500 8600 CLRPVR
-74500 105600 8600 CLRPVR
-360000 290000 6600 CLRPVSQ
-370000 290000 6600 CLRPVR
-380000 290000 6600 CLRPVR
-390000 290000 6600 CLRPVR
-390000 260000 6600 CLRPVR
-380000 260000 6600 CLRPVR
-370000 260000 6600 CLRPVR
-360000 260000 6600 CLRPVR
-317500 342500 6600 CLRPVSQ
-327500 342500 6600 CLRPVR
-137500 342500 6600 CLRPVSQ
-127500 342500 6600 CLRPVR
-540000 162500 6600 CLRPVSQ
-535000 152500 6600 CLRPVR
-530000 162500 6600 CLRPVR
-525000 152500 6600 CLRPVR
-520000 162500 6600 CLRPVR
-515000 152500 6600 CLRPVR
-510000 162500 6600 CLRPVR
-505000 152500 6600 CLRPVR
-500000 162500 6600 CLRPVR
-495000 152500 6600 CLRPVR
-490000 162500 6600 CLRPVR
-485000 152500 6600 CLRPVR
-480000 162500 6600 CLRPVR
-475000 152500 6600 CLRPVR
-470000 162500 6600 CLRPVR
-465000 152500 6600 CLRPVR
-460000 162500 6600 CLRPVR
-455000 152500 6600 CLRPVR
-450000 162500 6600 CLRPVR
-445000 152500 6600 CLRPVR
-440000 162500 6600 CLRPVR
-435000 152500 6600 CLRPVR
-430000 162500 6600 CLRPVR
-425000 152500 6600 CLRPVR
-420000 162500 6600 CLRPVR
-415000 152500 6600 CLRPVR
-410000 162500 6600 CLRPVR
-405000 152500 6600 CLRPVR
-400000 162500 6600 CLRPVR
-395000 152500 6600 CLRPVR
-390000 162500 6600 CLRPVR
-385000 152500 6600 CLRPVR
-380000 162500 6600 CLRPVR
-375000 152500 6600 CLRPVR
-370000 162500 6600 CLRPVR
-365000 152500 6600 CLRPVR
-340000 162500 6600 CLRPVR
-335000 152500 6600 CLRPVR
-330000 162500 6600 CLRPVR
-325000 152500 6600 CLRPVR
-320000 162500 6600 CLRPVR
-315000 152500 6600 CLRPVR
-310000 162500 6600 CLRPVR
-305000 152500 6600 CLRPVR
-300000 162500 6600 CLRPVR
-295000 152500 6600 CLRPVR
-290000 162500 6600 CLRPVR
-285000 152500 6600 CLRPVR
-280000 162500 6600 CLRPVR
-275000 152500 6600 CLRPVR
-270000 162500 6600 CLRPVR
-265000 152500 6600 CLRPVR
-260000 162500 6600 CLRPVR
-255000 152500 6600 CLRPVR
-250000 162500 6600 CLRPVR
-245000 152500 6600 CLRPVR
-240000 162500 6600 CLRPVR
-235000 152500 6600 CLRPVR
-230000 162500 6600 CLRPVR
-225000 152500 6600 CLRPVR
-220000 162500 6600 CLRPVR
-215000 152500 6600 CLRPVR
-210000 162500 6600 CLRPVR
-205000 152500 6600 CLRPVR
-200000 162500 6600 CLRPVR
-195000 152500 6600 CLRPVR
-190000 162500 6600 CLRPVR
-185000 152500 6600 CLRPVR
-180000 162500 6600 CLRPVR
-175000 152500 6600 CLRPVR
-170000 162500 6600 CLRPVR
-165000 152500 6600 CLRPVR
-573000 157500 8600 CLRPVR
-352500 157500 12600 CLRPVR
-132500 157500 12600 CLRPVR
-137500 372500 6600 CLRPVSQ
-127500 372500 6600 CLRPVR
-172500 372500 6600 CLRPVSQ
-182500 372500 6600 CLRPVR
-192500 372500 6600 CLRPVR
-202500 372500 6600 CLRPVR
-212500 372500 6600 CLRPVR
-222500 372500 6600 CLRPVR
-232500 372500 6600 CLRPVR
-242500 372500 6600 CLRPVR
-252500 372500 6600 CLRPVR
-262500 372500 6600 CLRPVR
-272500 372500 6600 CLRPVR
-282500 372500 6600 CLRPVR
-282500 342500 6600 CLRPVR
-272500 342500 6600 CLRPVR
-262500 342500 6600 CLRPVR
-252500 342500 6600 CLRPVR
-242500 342500 6600 CLRPVR
-232500 342500 6600 CLRPVR
-222500 342500 6600 CLRPVR
-212500 342500 6600 CLRPVR
-202500 342500 6600 CLRPVR
-192500 342500 6600 CLRPVR
-182500 342500 6600 CLRPVR
-172500 342500 6600 CLRPVR
-115500 305500 6600 CLRPVSQ
-75500 305500 6600 CLRPVR
-57500 27500 12600 CLRPVR
-57500 376200 12600 CLRPVR
-662500 27500 12600 CLRPVR
-662500 376200 12600 CLRPVR
-475000 342500 6600 CLRPVR
-490000 342500 6600 CLRPVR
-560000 342500 6600 CLRPVR
-602500 260000 6600 CLRPVR
-540000 260000 6600 CLRPVR
-540000 307500 6600 CLRPVR
-602500 307500 6600 CLRPVR
-592500 277500 6600 CLRPVR
-612500 287500 6600 CLRPVR
-540000 327500 6600 CLRPVR
-395000 317500 6600 CLRPVR
-475000 317500 6600 CLRPVR
-622500 342500 6600 CLRPVR
-612500 267500 6600 CLRPVR
-592500 222500 6600 CLRPVR
-462500 342500 6600 CLRPVR
-562500 220000 6600 CLRPVR
-622500 102500 6600 CLRPVR
-647500 102500 6600 CLRPVR
-567500 107500 6600 CLRPVR
-597500 47500 6600 CLRPVR
-537500 47500 6600 CLRPVR
-487500 47500 6600 CLRPVR
-517500 40000 6600 CLRPVR
-577500 40000 6600 CLRPVR
-402500 72500 6600 CLRPVR
-487500 72500 6600 CLRPVR
-537500 72500 6600 CLRPVR
-592500 72500 6600 CLRPVR
-497500 95000 6600 CLRPVR
-140000 95000 6600 CLRPVR
-175000 95000 6600 CLRPVR
-237500 95000 6600 CLRPVR
-322500 317500 6600 CLRPVR
-327500 392500 6600 CLRPVR
-240000 245000 6600 CLRPVR
-270000 245000 6600 CLRPVR
-140000 245000 6600 CLRPVR
-130000 280000 6600 CLRPVR
-130000 290000 6600 CLRPVR
-252500 287500 4600 CLRPVR
-427500 100000 6600 CLRPVR
-525000 100000 6600 CLRPVR
-315000 100000 6600 CLRPVR
-447500 95000 6600 CLRPVR
-202500 305000 6600 CLRPVR
-127500 392500 6600 CLRPVR
-212500 392500 6600 CLRPVR
-272500 392500 6600 CLRPVR
-360000 317500 6600 CLRPVR
-77500 392500 6600 CLRPVR
-487500 107500 4600 CLRPVR
-620000 52500 4600 CLRPVR
-622500 87500 4600 CLRPVR
-537500 107500 4600 CLRPVR
-637500 172500 4600 CLRPVR
-262500 172500 4600 CLRPVR
-597500 65000 4600 CLRPVR
-407500 47500 6600 CLRPVR
-205000 82500 4600 CLRPVR
-402500 235000 4600 CLRPVR
-295000 130000 4600 CLRPVR
-335000 52500 4600 CLRPVR
-527500 22500 4600 CLRPVR
-615000 15000 4600 CLRPVR
-477500 57500 4600 CLRPVR
-622500 35000 4600 CLRPVR
-647500 20000 4600 CLRPVR
-557500 15000 4600 CLRPVR
-502500 15000 4600 CLRPVR
-547500 142500 4600 CLRPVR
-610000 142500 4600 CLRPVR
-615000 130000 4600 CLRPVR
-555000 135000 4600 CLRPVR
-195000 57500 4600 CLRPVR
-242500 360000 4600 CLRPVR
-210000 67500 4600 CLRPVR
-115000 112500 4600 CLRPVR
-507500 107500 4600 CLRPVR
-417500 135000 4600 CLRPVR
-200000 62500 4600 CLRPVR
-512500 80000 4600 CLRPVR
-557500 237500 4600 CLRPVR
-447500 30000 4600 CLRPVR
-355000 130000 4600 CLRPVR
-272500 352500 6600 CLRPVR
-95000 245000 4600 CLRPVR
-115000 245000 4600 CLRPVR
-582500 285000 4600 CLRPVR
-110000 367500 4600 CLRPVR
-182500 385000 4600 CLRPVR
-252500 385000 4600 CLRPVR
-212500 352500 6600 CLRPVR
-232500 352500 6600 CLRPVR
-192500 360000 4600 CLRPVR
-417500 107500 4600 CLRPVR
-447500 107500 4600 CLRPVR
-472500 107500 4600 CLRPVR
-467500 15000 4600 CLRPVR
-255000 120000 4600 CLRPVR
-265000 120000 4600 CLRPVR
-265000 130000 4600 CLRPVR
-250000 130000 4600 CLRPVR
-260000 105000 4600 CLRPVR
-245000 105000 4600 CLRPVR
-285000 120000 4600 CLRPVR
-300000 120000 4600 CLRPVR
-290000 125000 4600 CLRPVR
-310000 125000 4600 CLRPVR
-295000 137500 4600 CLRPVR
-322500 137500 4600 CLRPVR
-145000 137500 4600 CLRPVR
-155000 125000 4600 CLRPVR
-160000 100000 4600 CLRPVR
-300000 100000 4600 CLRPVR
-170000 142500 4600 CLRPVR
-280000 142500 4600 CLRPVR
-180000 132500 4600 CLRPVR
-275000 130000 4600 CLRPVR
-190000 105000 4600 CLRPVR
-270000 105000 4600 CLRPVR
-200000 255000 4600 CLRPVR
-270000 255000 4600 CLRPVR
-322500 245000 6600 CLRPVR
-350000 250000 4600 CLRPVR
-202500 282500 4600 CLRPVR
-220000 282500 4600 CLRPVR
-257500 250000 4600 CLRPVR
-210000 250000 4600 CLRPVR
-257500 197500 4600 CLRPVR
-220000 225000 6600 CLRPVR
-240000 225000 6600 CLRPVR
-300000 212500 4600 CLRPVR
-215000 212500 4600 CLRPVR
-310000 217500 4600 CLRPVR
-225000 217500 4600 CLRPVR
-225000 195000 4600 CLRPVR
-315000 192500 4600 CLRPVR
-150000 187500 4600 CLRPVR
-325000 187500 4600 CLRPVR
-235000 187500 4600 CLRPVR
-360000 252500 4600 CLRPVR
-292500 222500 4600 CLRPVR
-170000 217500 4600 CLRPVR
-210000 230000 4600 CLRPVR
-390000 225000 4600 CLRPVR
-257500 277500 4600 CLRPVR
-385000 277500 4600 CLRPVR
-155000 282500 4600 CLRPVR
-340000 282500 4600 CLRPVR
-230000 182500 4600 CLRPVR
-245000 182500 4600 CLRPVR
-227500 90000 4600 CLRPVR
-255000 90000 4600 CLRPVR
-250000 172500 4600 CLRPVR
-190000 175000 4600 CLRPVR
-180000 170000 4600 CLRPVR
-430000 197500 4600 CLRPVR
-332500 270000 6600 CLRPVR
-290000 265000 4600 CLRPVR
-480000 265000 4600 CLRPVR
-470000 290000 6600 CLRPVR
-462500 282500 4600 CLRPVR
-300000 177500 4600 CLRPVR
-485000 177500 4600 CLRPVR
-305000 85000 4600 CLRPVR
-275000 85000 4600 CLRPVR
-330000 80000 4600 CLRPVR
-285000 80000 4600 CLRPVR
-350000 220000 4600 CLRPVR
-365000 220000 4600 CLRPVR
-355000 385000 4600 CLRPVR
-297500 352500 6600 CLRPVR
-375000 360000 4600 CLRPVR
-107500 147500 4600 CLRPVR
-122000 160500 4600 CLRPVR
-450000 182500 4600 CLRPVR
-262500 352500 4600 CLRPVR
-327500 352500 4600 CLRPVR
-400000 225000 4600 CLRPVR
-405000 215000 4600 CLRPVR
-410000 205000 4600 CLRPVR
-105000 270000 4600 CLRPVR
-415000 272500 4600 CLRPVR
-402500 250000 4600 CLRPVR
-222500 310000 4600 CLRPVR
-402500 310000 4600 CLRPVR
-520000 260000 4600 CLRPVR
-520000 337500 4600 CLRPVR
-210000 322500 4600 CLRPVR
-570000 322500 4600 CLRPVR
-570000 245000 4600 CLRPVR
-530000 327500 4600 CLRPVR
-282500 330000 4600 CLRPVR
-327500 305000 4600 CLRPVR
-49500 330000 4600 CLRPVR
-130000 255000 6600 CLRPVR
-76500 257000 4600 CLRPVR
-90500 305500 4600 CLRPVR
-592500 360000 6600 CLRPVR
-405000 342500 6600 CLRPVR
-grestore
-% PCBENDDATA --- do not remove ---
-showpage
-%%EOF
+++ /dev/null
-G04 Title: (unknown), solder mask component side *\r
-G04 Creator: pcb 1.6.3 *\r
-G04 CreationDate: Mon Mar 31 19:59:34 2003 UTC *\r
-G04 For: fetter *\r
-G04 Format: Gerber/RS-274X *\r
-G04 PCB-Dimensions: 7100 4100 *\r
-G04 PCB-Coordinate-Origin: lower left *\r
-G04 Color: R0 G0 B0 *\r
-*\r
-%FSLAX23Y23*%\r
-%MOIN*%\r
-%ADD11C,0.010*%\r
-%ADD12C,0.025*%\r
-%ADD13C,0.045*%\r
-%ADD14C,0.040*%\r
-%ADD15C,0.001*%\r
-%ADD16C,0.120*%\r
-%ADD17C,0.150*%\r
-%ADD18C,0.020*%\r
-%ADD19R,0.060X0.060*%\r
-%ADD20R,0.090X0.090*%\r
-%ADD21C,0.060*%\r
-%ADD22C,0.090*%\r
-%ADD23C,0.008*%\r
-%ADD24C,0.080*%\r
-%ADD25C,0.110*%\r
-%ADD26C,0.148*%\r
-%ADD27C,0.178*%\r
-%ADD28R,0.080X0.080*%\r
-%ADD29R,0.110X0.110*%\r
-%ADD30R,0.070X0.070*%\r
-%ADD31R,0.100X0.100*%\r
-%ADD32C,0.070*%\r
-%ADD33C,0.100*%\r
-%ADD34C,0.016*%\r
-%ADD35C,0.015*%\r
-%IPNEG*%\r
-G01*\r
-G54D17*X575Y3825D03*\r
-Y338D03*\r
-X6625Y3825D03*\r
-Y338D03*\r
-G54D20*X1155Y1045D03*\r
-G54D22*X755D03*\r
-G54D20*X1725Y375D03*\r
-G54D22*X1825D03*\r
-X1925D03*\r
-X2025D03*\r
-X2125D03*\r
-X2225D03*\r
-X2325D03*\r
-X2425D03*\r
-X2525D03*\r
-X2625D03*\r
-X2725D03*\r
-X2825D03*\r
-Y675D03*\r
-X2725D03*\r
-X2625D03*\r
-X2525D03*\r
-X2425D03*\r
-X2325D03*\r
-X2225D03*\r
-X2125D03*\r
-X2025D03*\r
-X1925D03*\r
-X1825D03*\r
-X1725D03*\r
-G54D20*X1375Y375D03*\r
-G54D22*X1275D03*\r
-G54D20*X5400Y2475D03*\r
-G54D22*X5350Y2575D03*\r
-X5300Y2475D03*\r
-X5250Y2575D03*\r
-X5200Y2475D03*\r
-X5150Y2575D03*\r
-X5100Y2475D03*\r
-X5050Y2575D03*\r
-X5000Y2475D03*\r
-X4950Y2575D03*\r
-X4900Y2475D03*\r
-X4850Y2575D03*\r
-X4800Y2475D03*\r
-X4750Y2575D03*\r
-X4700Y2475D03*\r
-X4650Y2575D03*\r
-X4600Y2475D03*\r
-X4550Y2575D03*\r
-X4500Y2475D03*\r
-X4450Y2575D03*\r
-X4400Y2475D03*\r
-X4350Y2575D03*\r
-X4300Y2475D03*\r
-X4250Y2575D03*\r
-X4200Y2475D03*\r
-X4150Y2575D03*\r
-X4100Y2475D03*\r
-X4050Y2575D03*\r
-X4000Y2475D03*\r
-X3950Y2575D03*\r
-X3900Y2475D03*\r
-X3850Y2575D03*\r
-X3800Y2475D03*\r
-X3750Y2575D03*\r
-X3700Y2475D03*\r
-X3650Y2575D03*\r
-X3400Y2475D03*\r
-X3350Y2575D03*\r
-X3300Y2475D03*\r
-X3250Y2575D03*\r
-X3200Y2475D03*\r
-X3150Y2575D03*\r
-X3100Y2475D03*\r
-X3050Y2575D03*\r
-X3000Y2475D03*\r
-X2950Y2575D03*\r
-X2900Y2475D03*\r
-X2850Y2575D03*\r
-X2800Y2475D03*\r
-X2750Y2575D03*\r
-X2700Y2475D03*\r
-X2650Y2575D03*\r
-X2600Y2475D03*\r
-X2550Y2575D03*\r
-X2500Y2475D03*\r
-X2450Y2575D03*\r
-X2400Y2475D03*\r
-X2350Y2575D03*\r
-X2300Y2475D03*\r
-X2250Y2575D03*\r
-X2200Y2475D03*\r
-X2150Y2575D03*\r
-X2100Y2475D03*\r
-X2050Y2575D03*\r
-X2000Y2475D03*\r
-X1950Y2575D03*\r
-X1900Y2475D03*\r
-X1850Y2575D03*\r
-X1800Y2475D03*\r
-X1750Y2575D03*\r
-X1700Y2475D03*\r
-X1650Y2575D03*\r
-G54D25*X5730Y2525D03*\r
-G54D17*X3525D03*\r
-X1325D03*\r
-G54D20*X1375Y675D03*\r
-G54D22*X1275D03*\r
-G54D20*X3175D03*\r
-G54D22*X3275D03*\r
-G54D20*X3600Y1200D03*\r
-G54D22*X3700D03*\r
-X3800D03*\r
-X3900D03*\r
-Y1500D03*\r
-X3800D03*\r
-X3700D03*\r
-X3600D03*\r
-G54D20*X875Y3525D03*\r
-G54D22*X975Y3475D03*\r
-X875Y3425D03*\r
-X975Y3375D03*\r
-X875Y3325D03*\r
-X975Y3275D03*\r
-X875Y3225D03*\r
-X975Y3175D03*\r
-G54D27*X625Y3575D03*\r
-Y3124D03*\r
-G54D25*X745Y3655D03*\r
-Y3044D03*\r
-G54D20*X3225Y1200D03*\r
-G54D22*X3325D03*\r
-G54D20*X5775Y3525D03*\r
-G54D22*X5875D03*\r
-X5975D03*\r
-X6075D03*\r
-Y3825D03*\r
-X5975D03*\r
-X5875D03*\r
-X5775D03*\r
-G54D29*X5825Y2000D03*\r
-G54D25*X5925D03*\r
-X6025D03*\r
-G54D20*X5775Y2925D03*\r
-G54D22*X5875D03*\r
-X5975D03*\r
-X6075D03*\r
-Y3225D03*\r
-X5975D03*\r
-X5875D03*\r
-X5775D03*\r
-G54D20*X5625Y2225D03*\r
-G54D22*X5925D03*\r
-G54D29*X5825Y1175D03*\r
-G54D25*X5925D03*\r
-X6025D03*\r
-G54D31*X550Y1405D03*\r
-G54D33*Y1228D03*\r
-X648Y1454D03*\r
-Y1178D03*\r
-G54D20*X4750Y800D03*\r
-G54D22*X4900D03*\r
-G54D20*X3000Y1125D03*\r
-G54D22*Y1525D03*\r
-G54D20*X4475Y3475D03*\r
-G54D22*Y3875D03*\r
-G54D20*X3325Y1500D03*\r
-G54D22*X3225D03*\r
-G54D20*X6525Y3625D03*\r
-G54D22*Y3525D03*\r
-Y3425D03*\r
-Y3325D03*\r
-Y3225D03*\r
-Y3125D03*\r
-Y3025D03*\r
-Y2925D03*\r
-Y2825D03*\r
-Y2725D03*\r
-Y2625D03*\r
-Y2525D03*\r
-Y2425D03*\r
-Y2325D03*\r
-Y2225D03*\r
-Y2125D03*\r
-Y2025D03*\r
-Y1925D03*\r
-Y1825D03*\r
-Y1725D03*\r
-Y1625D03*\r
-Y1525D03*\r
-Y1425D03*\r
-Y1325D03*\r
-Y1225D03*\r
-Y1125D03*\r
-Y1025D03*\r
-Y925D03*\r
-Y825D03*\r
-Y725D03*\r
-Y625D03*\r
-Y525D03*\r
-X6425Y3625D03*\r
-Y3525D03*\r
-Y3425D03*\r
-Y3325D03*\r
-Y3225D03*\r
-Y3125D03*\r
-Y3025D03*\r
-Y2925D03*\r
-Y2825D03*\r
-Y2725D03*\r
-Y2625D03*\r
-Y2525D03*\r
-Y2425D03*\r
-Y2325D03*\r
-Y2225D03*\r
-Y2125D03*\r
-Y2025D03*\r
-Y1925D03*\r
-Y1825D03*\r
-Y1725D03*\r
-Y1625D03*\r
-Y1525D03*\r
-Y1425D03*\r
-Y1325D03*\r
-Y1225D03*\r
-Y1125D03*\r
-Y1025D03*\r
-Y925D03*\r
-Y825D03*\r
-Y725D03*\r
-Y625D03*\r
-Y525D03*\r
-X6325Y3625D03*\r
-Y3525D03*\r
-Y3425D03*\r
-Y3325D03*\r
-Y3225D03*\r
-Y3125D03*\r
-Y3025D03*\r
-Y2925D03*\r
-Y2825D03*\r
-Y2725D03*\r
-Y2625D03*\r
-Y2525D03*\r
-Y2425D03*\r
-Y2325D03*\r
-Y2225D03*\r
-Y2125D03*\r
-Y2025D03*\r
-Y1925D03*\r
-Y1825D03*\r
-Y1725D03*\r
-Y1625D03*\r
-Y1525D03*\r
-Y1425D03*\r
-Y1325D03*\r
-Y1225D03*\r
-Y1125D03*\r
-Y1025D03*\r
-Y925D03*\r
-Y825D03*\r
-Y725D03*\r
-Y625D03*\r
-Y525D03*\r
-G54D17*X6625Y325D03*\r
-Y3825D03*\r
-G54D29*X5300Y1175D03*\r
-G54D25*X5400D03*\r
-X5500D03*\r
-G54D20*X4900Y400D03*\r
-G54D22*X4750D03*\r
-G54D20*X1160Y1300D03*\r
-G54D22*X760D03*\r
-G54D20*X2800Y1525D03*\r
-G54D22*Y1125D03*\r
-G54D29*X5700Y500D03*\r
-G54D25*X5600D03*\r
-X5500D03*\r
-G54D31*X4950Y1325D03*\r
-G54D33*X4700D03*\r
-G54D20*X1725Y900D03*\r
-G54D22*X1825D03*\r
-X1925D03*\r
-X2025D03*\r
-Y1200D03*\r
-X1925D03*\r
-X1825D03*\r
-X1725D03*\r
-G54D31*X1050Y800D03*\r
-G54D33*X1150D03*\r
-G54D20*X3550Y3475D03*\r
-G54D22*Y3875D03*\r
-G54D20*X5350Y2000D03*\r
-G54D22*X5450D03*\r
-G54D29*X5825Y1650D03*\r
-G54D25*X5925D03*\r
-X6025D03*\r
-G54D20*X850Y800D03*\r
-G54D22*Y500D03*\r
-G54D31*X4950Y1900D03*\r
-G54D33*X4700D03*\r
-G54D20*X815Y1705D03*\r
-G54D22*Y1605D03*\r
-G54D17*X775Y2860D03*\r
-Y1920D03*\r
-G54D33*X825Y2590D03*\r
-X725Y2540D03*\r
-X825Y2490D03*\r
-X725Y2440D03*\r
-X825Y2390D03*\r
-X725Y2340D03*\r
-X825Y2290D03*\r
-X725Y2240D03*\r
-G54D31*X825Y2190D03*\r
-G54D20*X2800Y1750D03*\r
-G54D22*X2900D03*\r
-X3000D03*\r
-X3100D03*\r
-X3200D03*\r
-X3300D03*\r
-X3400D03*\r
-X3500D03*\r
-X3600D03*\r
-X3700D03*\r
-X3800D03*\r
-X3900D03*\r
-Y2050D03*\r
-X3800D03*\r
-X3700D03*\r
-X3600D03*\r
-X3500D03*\r
-X3400D03*\r
-X3300D03*\r
-X3200D03*\r
-X3100D03*\r
-X3000D03*\r
-X2900D03*\r
-X2800D03*\r
-G54D20*X1400Y1450D03*\r
-G54D22*X1500D03*\r
-X1600D03*\r
-X1700D03*\r
-X1800D03*\r
-X1900D03*\r
-X2000D03*\r
-X2100D03*\r
-X2200D03*\r
-X2300D03*\r
-X2400D03*\r
-X2500D03*\r
-Y2050D03*\r
-X2400D03*\r
-X2300D03*\r
-X2200D03*\r
-X2100D03*\r
-X2000D03*\r
-X1900D03*\r
-X1800D03*\r
-X1700D03*\r
-X1600D03*\r
-X1500D03*\r
-X1400D03*\r
-G54D31*X4200D03*\r
-G54D33*X4300D03*\r
-X4200Y1950D03*\r
-X4300D03*\r
-X4200Y1850D03*\r
-X4300D03*\r
-X4200Y1750D03*\r
-X4300D03*\r
-G54D20*X3175Y375D03*\r
-G54D22*X3275D03*\r
-G54D20*X2450Y3525D03*\r
-G54D22*X2550D03*\r
-X2650D03*\r
-X2750D03*\r
-X2850D03*\r
-X2950D03*\r
-X3050D03*\r
-X3150D03*\r
-Y3825D03*\r
-X3050D03*\r
-X2950D03*\r
-X2850D03*\r
-X2750D03*\r
-X2650D03*\r
-X2550D03*\r
-X2450D03*\r
-G54D29*X5300Y1650D03*\r
-G54D25*X5400D03*\r
-X5500D03*\r
-G54D20*X575Y1705D03*\r
-G54D22*Y1605D03*\r
-G54D20*X1575Y675D03*\r
-G54D22*Y375D03*\r
-G54D20*X5575Y3475D03*\r
-G54D22*Y3875D03*\r
-G54D20*X3975Y3525D03*\r
-G54D22*X4075D03*\r
-X4175D03*\r
-X4275D03*\r
-Y3825D03*\r
-X4175D03*\r
-X4075D03*\r
-X3975D03*\r
-G54D20*X4875Y2925D03*\r
-G54D22*X4975D03*\r
-X5075D03*\r
-X5175D03*\r
-Y3225D03*\r
-X5075D03*\r
-X4975D03*\r
-X4875D03*\r
-G54D20*X5375Y2875D03*\r
-G54D22*Y3275D03*\r
-G54D20*X4675Y2875D03*\r
-G54D22*Y3275D03*\r
-G54D20*Y3475D03*\r
-G54D22*Y3875D03*\r
-G54D20*X4875Y3525D03*\r
-G54D22*X4975D03*\r
-X5075D03*\r
-X5175D03*\r
-Y3825D03*\r
-X5075D03*\r
-X4975D03*\r
-X4875D03*\r
-G54D20*X5375Y3475D03*\r
-G54D22*Y3875D03*\r
-G54D20*X5575Y2875D03*\r
-G54D22*Y3275D03*\r
-G54D20*X3975Y2925D03*\r
-G54D22*X4075D03*\r
-X4175D03*\r
-X4275D03*\r
-Y3225D03*\r
-X4175D03*\r
-X4075D03*\r
-X3975D03*\r
-G54D20*X4475Y2875D03*\r
-G54D22*Y3275D03*\r
-G54D29*X4150Y500D03*\r
-G54D25*X4050D03*\r
-X3950D03*\r
-G54D20*X2975Y675D03*\r
-G54D22*Y375D03*\r
-G54D20*X3350Y3475D03*\r
-G54D22*Y3875D03*\r
-X4750Y675D03*\r
-X4900D03*\r
-X5600D03*\r
-X6025Y1500D03*\r
-X5400D03*\r
-Y1025D03*\r
-X6025D03*\r
-X5925Y1325D03*\r
-X6125Y1225D03*\r
-X5400Y825D03*\r
-X3950Y925D03*\r
-X4750D03*\r
-X6225Y675D03*\r
-X6125Y1425D03*\r
-X5925Y1875D03*\r
-X4625Y675D03*\r
-X5625Y1900D03*\r
-X6225Y3075D03*\r
-X6475D03*\r
-X5675Y3025D03*\r
-X5975Y3625D03*\r
-X5375D03*\r
-X4875D03*\r
-X5175Y3700D03*\r
-X5775D03*\r
-X4025Y3375D03*\r
-X4875D03*\r
-X5375D03*\r
-X5925D03*\r
-X4975Y3150D03*\r
-X1400D03*\r
-X1750D03*\r
-X2375D03*\r
-X3225Y925D03*\r
-X3275Y175D03*\r
-X2400Y1650D03*\r
-X2700D03*\r
-X1400D03*\r
-X1300Y1300D03*\r
-Y1200D03*\r
-G54D32*X2525Y1225D03*\r
-G54D22*X4275Y3100D03*\r
-X5250D03*\r
-X3150D03*\r
-X4475Y3150D03*\r
-X2025Y1050D03*\r
-X1275Y175D03*\r
-X2125D03*\r
-X2725D03*\r
-X3600Y925D03*\r
-X775Y175D03*\r
-G54D32*X4875Y3025D03*\r
-X6200Y3575D03*\r
-X6225Y3225D03*\r
-X5375Y3025D03*\r
-X6375Y2375D03*\r
-X2625D03*\r
-X5975Y3450D03*\r
-G54D22*X4075Y3625D03*\r
-G54D32*X2050Y3275D03*\r
-X4025Y1750D03*\r
-X2950Y2800D03*\r
-X3350Y3575D03*\r
-X5275Y3875D03*\r
-X6150Y3950D03*\r
-X4775Y3525D03*\r
-X6225Y3750D03*\r
-X6475Y3900D03*\r
-X5575Y3950D03*\r
-X5025D03*\r
-X5475Y2675D03*\r
-X6100D03*\r
-X6150Y2800D03*\r
-X5550Y2750D03*\r
-X1950Y3525D03*\r
-X2425Y500D03*\r
-X2100Y3425D03*\r
-X1150Y2975D03*\r
-X5075Y3025D03*\r
-X4175Y2750D03*\r
-X2000Y3475D03*\r
-X5125Y3300D03*\r
-X5575Y1725D03*\r
-X4475Y3800D03*\r
-X3550Y2800D03*\r
-G54D22*X2725Y575D03*\r
-G54D32*X950Y1650D03*\r
-X1150D03*\r
-X5825Y1250D03*\r
-X1100Y425D03*\r
-X1825Y250D03*\r
-X2525D03*\r
-G54D22*X2125Y575D03*\r
-X2325D03*\r
-G54D32*X1925Y500D03*\r
-X4175Y3025D03*\r
-X4475D03*\r
-X4725D03*\r
-X4675Y3950D03*\r
-X2550Y2900D03*\r
-X2650D03*\r
-Y2800D03*\r
-X2500D03*\r
-X2600Y3050D03*\r
-X2450D03*\r
-X2850Y2900D03*\r
-X3000D03*\r
-X2900Y2850D03*\r
-X3100D03*\r
-X2950Y2725D03*\r
-X3225D03*\r
-X1450D03*\r
-X1550Y2850D03*\r
-X1600Y3100D03*\r
-X3000D03*\r
-X1700Y2675D03*\r
-X2800D03*\r
-X1800Y2775D03*\r
-X2750Y2800D03*\r
-X1900Y3050D03*\r
-X2700D03*\r
-X2000Y1550D03*\r
-X2700D03*\r
-G54D22*X3225Y1650D03*\r
-G54D32*X3500Y1600D03*\r
-X2025Y1275D03*\r
-X2200D03*\r
-X2575Y1600D03*\r
-X2100D03*\r
-X2575Y2125D03*\r
-G54D22*X2200Y1850D03*\r
-X2400D03*\r
-G54D32*X3000Y1975D03*\r
-X2150D03*\r
-X3100Y1925D03*\r
-X2250D03*\r
-Y2150D03*\r
-X3150Y2175D03*\r
-X1500Y2225D03*\r
-X3250D03*\r
-X2350D03*\r
-X3600Y1575D03*\r
-X2925Y1875D03*\r
-X1700Y1925D03*\r
-X2100Y1800D03*\r
-X3900Y1850D03*\r
-X2575Y1325D03*\r
-X3850D03*\r
-X1550Y1275D03*\r
-X3400D03*\r
-X2300Y2275D03*\r
-X2450D03*\r
-X2275Y3200D03*\r
-X2550D03*\r
-X2500Y2375D03*\r
-X1900Y2350D03*\r
-X1800Y2400D03*\r
-X4300Y2125D03*\r
-G54D22*X3325Y1400D03*\r
-G54D32*X2900Y1450D03*\r
-X4800D03*\r
-G54D22*X4700Y1200D03*\r
-G54D32*X4625Y1275D03*\r
-X3000Y2325D03*\r
-X4850D03*\r
-X3050Y3250D03*\r
-X2750D03*\r
-X3300Y3300D03*\r
-X2850D03*\r
-X3500Y1900D03*\r
-X3650D03*\r
-X3550Y250D03*\r
-G54D22*X2975Y575D03*\r
-G54D32*X3750Y500D03*\r
-X1075Y2625D03*\r
-X1220Y2495D03*\r
-X4500Y2275D03*\r
-X2625Y575D03*\r
-X3275D03*\r
-X4000Y1850D03*\r
-X4050Y1950D03*\r
-X4100Y2050D03*\r
-X1050Y1400D03*\r
-X4150Y1375D03*\r
-X4025Y1600D03*\r
-X2225Y1000D03*\r
-X4025D03*\r
-X5200Y1500D03*\r
-Y725D03*\r
-X2100Y875D03*\r
-X5700D03*\r
-Y1650D03*\r
-X5300Y825D03*\r
-X2825Y800D03*\r
-X3275Y1050D03*\r
-X495Y800D03*\r
-G54D22*X1300Y1550D03*\r
-G54D32*X765Y1530D03*\r
-X905Y1045D03*\r
-G54D22*X5925Y500D03*\r
-X4050Y675D03*\r
-D02*\r
-M02*\r
+++ /dev/null
-G04 Title: (unknown), silkscreen component side *\r
-G04 Creator: pcb 1.6.3 *\r
-G04 CreationDate: Mon Mar 31 19:59:34 2003 UTC *\r
-G04 For: fetter *\r
-G04 Format: Gerber/RS-274X *\r
-G04 PCB-Dimensions: 7100 4100 *\r
-G04 PCB-Coordinate-Origin: lower left *\r
-G04 Color: R0 G0 B0 *\r
-*\r
-%FSLAX23Y23*%\r
-%MOIN*%\r
-%ADD11C,0.010*%\r
-%ADD12C,0.025*%\r
-%ADD13C,0.045*%\r
-%ADD14C,0.040*%\r
-%ADD15C,0.001*%\r
-%ADD16C,0.120*%\r
-%ADD17C,0.150*%\r
-%ADD18C,0.020*%\r
-%ADD19R,0.060X0.060*%\r
-%ADD20R,0.090X0.090*%\r
-%ADD21C,0.060*%\r
-%ADD22C,0.090*%\r
-%ADD23C,0.008*%\r
-%ADD24C,0.080*%\r
-%ADD25C,0.110*%\r
-%ADD26C,0.148*%\r
-%ADD27C,0.178*%\r
-%ADD28R,0.080X0.080*%\r
-%ADD29R,0.110X0.110*%\r
-%ADD30R,0.070X0.070*%\r
-%ADD31R,0.100X0.100*%\r
-%ADD32C,0.070*%\r
-%ADD33C,0.100*%\r
-%ADD34C,0.016*%\r
-%ADD35C,0.015*%\r
-%IPPOS*%\r
-G01*\r
-G54D18*X450Y4050D02*Y113D01*\r
-D02*X6750D01*\r
-D02*Y4050D01*\r
-D02*X450D01*\r
-X855Y1045D02*X755D01*\r
-X1155D02*X1055D01*\r
-Y1095D02*Y995D01*\r
-X855Y1095D02*X1055D01*\r
-X855Y995D02*Y1095D01*\r
-X1055Y995D02*X855D01*\r
-G04 Text: R11 *\r
-G54D23*X1035Y1025D02*X1015D01*\r
-D02*X1010Y1030D01*\r
-D02*Y1040D01*\r
-X1015Y1045D02*X1010Y1040D01*\r
-X1030Y1045D02*X1015D01*\r
-X1030Y1025D02*Y1065D01*\r
-Y1045D02*X1010Y1065D01*\r
-X992D02*X982D01*\r
-X987Y1025D02*Y1065D01*\r
-X997Y1035D02*X987Y1025D01*\r
-X964Y1065D02*X954D01*\r
-X959Y1025D02*Y1065D01*\r
-X969Y1035D02*X959Y1025D01*\r
-G54D11*X1675Y575D02*Y725D01*\r
-Y325D02*Y475D01*\r
-X2875Y725D02*X1675D01*\r
-X2875Y325D02*Y725D01*\r
-X1675Y325D02*X2875D01*\r
-X1674Y475D02*G75G03I1J50X1675Y575D01*G01*\r
-G04 Text: U9 *\r
-G54D23*X1775Y545D02*Y510D01*\r
-D02*X1780Y505D01*\r
-D02*X1790D01*\r
-D02*X1795Y510D01*\r
-Y545D02*Y510D01*\r
-X1808Y505D02*X1828Y525D01*\r
-Y540D02*Y525D01*\r
-X1823Y545D02*X1828Y540D01*\r
-X1813Y545D02*X1823D01*\r
-X1808Y540D02*X1813Y545D01*\r
-X1808Y540D02*Y530D01*\r
-D02*X1813Y525D01*\r
-D02*X1828D01*\r
-G54D11*X1425Y375D02*G75G03I-100J0X1425Y375D01*G01*\r
-G04 Text: C3 *\r
-G54D23*X1220Y315D02*X1205D01*\r
-X1225Y310D02*X1220Y315D01*\r
-X1225Y280D02*Y310D01*\r
-Y280D02*X1220Y275D01*\r
-D02*X1205D01*\r
-X1192Y280D02*X1187Y275D01*\r
-D02*X1177D01*\r
-D02*X1172Y280D01*\r
-D02*Y310D01*\r
-X1177Y315D02*X1172Y310D01*\r
-X1187Y315D02*X1177D01*\r
-X1192Y310D02*X1187Y315D01*\r
-Y295D02*X1172D01*\r
-G54D18*X5800Y2400D02*Y2690D01*\r
-X1250Y2400D02*X5800D01*\r
-X1250Y2690D02*Y2400D01*\r
-X5800Y2690D02*X1250D01*\r
-G04 Text: U1 *\r
-G54D23*X5800Y2340D02*Y2375D01*\r
-D02*X5795Y2380D01*\r
-D02*X5785D01*\r
-D02*X5780Y2375D01*\r
-Y2340D02*Y2375D01*\r
-X5762Y2380D02*X5752D01*\r
-X5757Y2340D02*Y2380D01*\r
-X5767Y2350D02*X5757Y2340D01*\r
-G54D11*X1425Y675D02*G75G03I-100J0X1425Y675D01*G01*\r
-G04 Text: C5 *\r
-G54D23*X1220Y615D02*X1205D01*\r
-X1225Y610D02*X1220Y615D01*\r
-X1225Y580D02*Y610D01*\r
-Y580D02*X1220Y575D01*\r
-D02*X1205D01*\r
-X1192D02*X1172D01*\r
-X1192D02*Y595D01*\r
-D02*X1187Y590D01*\r
-D02*X1177D01*\r
-D02*X1172Y595D01*\r
-D02*Y610D01*\r
-X1177Y615D02*X1172Y610D01*\r
-X1187Y615D02*X1177D01*\r
-X1192Y610D02*X1187Y615D01*\r
-G54D11*X3125Y675D02*G75G03I100J0X3125Y676D01*G01*\r
-G04 Text: C6 *\r
-G54D23*X3330Y735D02*X3345D01*\r
-X3325Y740D02*X3330Y735D01*\r
-X3325Y770D02*Y740D01*\r
-Y770D02*X3330Y775D01*\r
-D02*X3345D01*\r
-X3373D02*X3378Y770D01*\r
-X3363Y775D02*X3373D01*\r
-X3358Y770D02*X3363Y775D01*\r
-X3358Y770D02*Y740D01*\r
-D02*X3363Y735D01*\r
-X3373Y755D02*X3378Y750D01*\r
-X3358Y755D02*X3373D01*\r
-X3363Y735D02*X3373D01*\r
-D02*X3378Y740D01*\r
-Y750D02*Y740D01*\r
-G54D11*X3550Y1400D02*Y1550D01*\r
-Y1150D02*Y1300D01*\r
-X3950Y1550D02*X3550D01*\r
-X3950Y1150D02*Y1550D01*\r
-X3550Y1150D02*X3950D01*\r
-X3549Y1300D02*G75G03I1J50X3550Y1400D01*G01*\r
-G04 Text: U10 *\r
-G54D23*X3650Y1370D02*Y1335D01*\r
-D02*X3655Y1330D01*\r
-D02*X3665D01*\r
-D02*X3670Y1335D01*\r
-Y1370D02*Y1335D01*\r
-X3688Y1330D02*X3698D01*\r
-X3693Y1370D02*Y1330D01*\r
-X3683Y1360D02*X3693Y1370D01*\r
-X3711Y1335D02*X3716Y1330D01*\r
-X3711Y1365D02*Y1335D01*\r
-Y1365D02*X3716Y1370D01*\r
-D02*X3726D01*\r
-D02*X3731Y1365D01*\r
-D02*Y1335D01*\r
-X3726Y1330D02*X3731Y1335D01*\r
-X3716Y1330D02*X3726D01*\r
-X3711Y1340D02*X3731Y1360D01*\r
-G54D18*X1050Y3667D02*X200D01*\r
-D02*Y3032D01*\r
-D02*X1050D01*\r
-D02*Y3667D01*\r
-G04 Text: J2 *\r
-G54D23*Y2972D02*X1035D01*\r
-D02*Y3007D01*\r
-X1040Y3012D02*X1035Y3007D01*\r
-X1045Y3012D02*X1040D01*\r
-X1050Y3007D02*X1045Y3012D01*\r
-X1022Y2977D02*X1017Y2972D01*\r
-D02*X1002D01*\r
-D02*X997Y2977D01*\r
-D02*Y2987D01*\r
-X1022Y3012D02*X997Y2987D01*\r
-X1022Y3012D02*X997D01*\r
-G54D11*X3175Y1200D02*G75G03I100J0X3175Y1201D01*G01*\r
-G04 Text: C10 *\r
-G54D23*X3380Y1260D02*X3395D01*\r
-X3375Y1265D02*X3380Y1260D01*\r
-X3375Y1295D02*Y1265D01*\r
-Y1295D02*X3380Y1300D01*\r
-D02*X3395D01*\r
-X3413Y1260D02*X3423D01*\r
-X3418Y1300D02*Y1260D01*\r
-X3408Y1290D02*X3418Y1300D01*\r
-X3436Y1265D02*X3441Y1260D01*\r
-X3436Y1295D02*Y1265D01*\r
-Y1295D02*X3441Y1300D01*\r
-D02*X3451D01*\r
-D02*X3456Y1295D01*\r
-D02*Y1265D01*\r
-X3451Y1260D02*X3456Y1265D01*\r
-X3441Y1260D02*X3451D01*\r
-X3436Y1270D02*X3456Y1290D01*\r
-G54D11*X5725Y3725D02*Y3875D01*\r
-Y3475D02*Y3625D01*\r
-X6125Y3875D02*X5725D01*\r
-X6125Y3475D02*Y3875D01*\r
-X5725Y3475D02*X6125D01*\r
-X5724Y3625D02*G75G03I1J50X5725Y3725D01*G01*\r
-G04 Text: U4 *\r
-G54D23*X5825Y3695D02*Y3660D01*\r
-D02*X5830Y3655D01*\r
-D02*X5840D01*\r
-D02*X5845Y3660D01*\r
-Y3695D02*Y3660D01*\r
-X5858Y3675D02*X5878Y3695D01*\r
-X5858Y3675D02*X5883D01*\r
-X5878Y3695D02*Y3655D01*\r
-G54D18*X5725Y2120D02*X6125D01*\r
-D02*Y1940D01*\r
-D02*X5725D01*\r
-D02*Y2120D01*\r
-D02*X6125D01*\r
-D02*Y2060D01*\r
-D02*X5725D01*\r
-D02*Y2120D01*\r
-G54D11*X5855D02*Y2060D01*\r
-X5995Y2120D02*Y2060D01*\r
-G04 Text: Q5 *\r
-G54D23*X5725Y2185D02*Y2155D01*\r
-Y2185D02*X5730Y2190D01*\r
-D02*X5740D01*\r
-D02*X5745Y2185D01*\r
-D02*Y2155D01*\r
-X5740Y2150D02*X5745Y2155D01*\r
-X5730Y2150D02*X5740D01*\r
-X5725Y2155D02*X5730Y2150D01*\r
-X5735Y2160D02*X5745Y2150D01*\r
-X5758Y2190D02*X5778D01*\r
-X5758D02*Y2170D01*\r
-D02*X5763Y2175D01*\r
-D02*X5773D01*\r
-D02*X5778Y2170D01*\r
-D02*Y2155D01*\r
-X5773Y2150D02*X5778Y2155D01*\r
-X5763Y2150D02*X5773D01*\r
-X5758Y2155D02*X5763Y2150D01*\r
-G54D11*X5725Y3125D02*Y3275D01*\r
-Y2875D02*Y3025D01*\r
-X6125Y3275D02*X5725D01*\r
-X6125Y2875D02*Y3275D01*\r
-X5725Y2875D02*X6125D01*\r
-X5724Y3025D02*G75G03I1J50X5725Y3125D01*G01*\r
-G04 Text: U5 *\r
-G54D23*X5825Y3095D02*Y3060D01*\r
-D02*X5830Y3055D01*\r
-D02*X5840D01*\r
-D02*X5845Y3060D01*\r
-Y3095D02*Y3060D01*\r
-X5858Y3095D02*X5878D01*\r
-X5858D02*Y3075D01*\r
-D02*X5863Y3080D01*\r
-D02*X5873D01*\r
-D02*X5878Y3075D01*\r
-D02*Y3060D01*\r
-X5873Y3055D02*X5878Y3060D01*\r
-X5863Y3055D02*X5873D01*\r
-X5858Y3060D02*X5863Y3055D01*\r
-G54D11*X5625Y2225D02*X5725D01*\r
-X5825D02*X5925D01*\r
-X5725D02*X5825Y2275D01*\r
-D02*Y2175D01*\r
-D02*X5725Y2225D01*\r
-Y2275D02*Y2175D01*\r
-G04 Text: D7 *\r
-G54D23*X5850Y2275D02*Y2235D01*\r
-X5865Y2275D02*X5870Y2270D01*\r
-D02*Y2240D01*\r
-X5865Y2235D02*X5870Y2240D01*\r
-X5845Y2235D02*X5865D01*\r
-X5845Y2275D02*X5865D01*\r
-X5883Y2235D02*X5908Y2260D01*\r
-Y2275D02*Y2260D01*\r
-X5883Y2275D02*X5908D01*\r
-G54D18*X5725Y1295D02*X6125D01*\r
-D02*Y1115D01*\r
-D02*X5725D01*\r
-D02*Y1295D01*\r
-D02*X6125D01*\r
-D02*Y1235D01*\r
-D02*X5725D01*\r
-D02*Y1295D01*\r
-G54D11*X5855D02*Y1235D01*\r
-X5995Y1295D02*Y1235D01*\r
-G04 Text: Q3 *\r
-G54D23*X5725Y1360D02*Y1330D01*\r
-Y1360D02*X5730Y1365D01*\r
-D02*X5740D01*\r
-D02*X5745Y1360D01*\r
-D02*Y1330D01*\r
-X5740Y1325D02*X5745Y1330D01*\r
-X5730Y1325D02*X5740D01*\r
-X5725Y1330D02*X5730Y1325D01*\r
-X5735Y1335D02*X5745Y1325D01*\r
-X5758Y1360D02*X5763Y1365D01*\r
-D02*X5773D01*\r
-D02*X5778Y1360D01*\r
-D02*Y1330D01*\r
-X5773Y1325D02*X5778Y1330D01*\r
-X5763Y1325D02*X5773D01*\r
-X5758Y1330D02*X5763Y1325D01*\r
-Y1345D02*X5778D01*\r
-G54D18*X84Y1257D02*X450Y1247D01*\r
-X84Y1375D02*Y1257D01*\r
-X450Y1385D02*X84Y1375D01*\r
-X588Y1178D02*Y1454D01*\r
-X450Y1178D02*X708D01*\r
-X450Y1454D02*Y1178D01*\r
-X708Y1454D02*X450D01*\r
-G04 Text: S1 *\r
-G54D23*X668Y1316D02*X673Y1311D01*\r
-X653Y1316D02*X668D01*\r
-X648Y1311D02*X653Y1316D01*\r
-X648Y1311D02*Y1301D01*\r
-D02*X653Y1296D01*\r
-D02*X668D01*\r
-D02*X673Y1291D01*\r
-D02*Y1281D01*\r
-X668Y1276D02*X673Y1281D01*\r
-X653Y1276D02*X668D01*\r
-X648Y1281D02*X653Y1276D01*\r
-X691D02*X701D01*\r
-X696Y1316D02*Y1276D01*\r
-X686Y1306D02*X696Y1316D01*\r
-G54D18*X4575Y250D02*X3525D01*\r
-X4575D02*Y900D01*\r
-D02*X4525D01*\r
-D02*Y350D01*\r
-D02*X4325D01*\r
-D02*Y900D01*\r
-D02*X4275D01*\r
-D02*Y350D01*\r
-D02*X3825D01*\r
-X3525Y250D02*Y900D01*\r
-D02*X3575D01*\r
-D02*Y350D01*\r
-D02*X3775D01*\r
-D02*Y900D01*\r
-D02*X3825D01*\r
-D02*Y350D01*\r
-G54D11*X4675Y800D02*G75G03I150J0X4675Y801D01*G01*\r
-G04 Text: C2 *\r
-G54D23*X4980Y910D02*X4995D01*\r
-X4975Y915D02*X4980Y910D01*\r
-X4975Y945D02*Y915D01*\r
-Y945D02*X4980Y950D01*\r
-D02*X4995D01*\r
-X5008Y945D02*X5013Y950D01*\r
-D02*X5028D01*\r
-D02*X5033Y945D01*\r
-D02*Y935D01*\r
-X5008Y910D02*X5033Y935D01*\r
-X5008Y910D02*X5033D01*\r
-G54D18*X2950Y1225D02*Y1425D01*\r
-D02*X3050D01*\r
-D02*Y1225D01*\r
-D02*X2950D01*\r
-X3000Y1125D02*Y1225D01*\r
-Y1425D02*Y1525D01*\r
-G04 Text: R10 *\r
-G54D23*X2980Y1245D02*Y1265D01*\r
-D02*X2985Y1270D01*\r
-D02*X2995D01*\r
-X3000Y1265D02*X2995Y1270D01*\r
-X3000Y1250D02*Y1265D01*\r
-X2980Y1250D02*X3020D01*\r
-X3000D02*X3020Y1270D01*\r
-Y1288D02*Y1298D01*\r
-X2980Y1293D02*X3020D01*\r
-X2990Y1283D02*X2980Y1293D01*\r
-X3015Y1311D02*X3020Y1316D01*\r
-X2985Y1311D02*X3015D01*\r
-X2985D02*X2980Y1316D01*\r
-D02*Y1326D01*\r
-D02*X2985Y1331D01*\r
-D02*X3015D01*\r
-X3020Y1326D02*X3015Y1331D01*\r
-X3020Y1316D02*Y1326D01*\r
-X3010Y1311D02*X2990Y1331D01*\r
-G54D18*X4425Y3575D02*Y3775D01*\r
-D02*X4525D01*\r
-D02*Y3575D01*\r
-D02*X4425D01*\r
-X4475Y3475D02*Y3575D01*\r
-Y3775D02*Y3875D01*\r
-G04 Text: R3 *\r
-G54D23*X4455Y3595D02*Y3615D01*\r
-D02*X4460Y3620D01*\r
-D02*X4470D01*\r
-X4475Y3615D02*X4470Y3620D01*\r
-X4475Y3600D02*Y3615D01*\r
-X4455Y3600D02*X4495D01*\r
-X4475D02*X4495Y3620D01*\r
-X4460Y3633D02*X4455Y3638D01*\r
-D02*Y3648D01*\r
-D02*X4460Y3653D01*\r
-D02*X4490D01*\r
-X4495Y3648D02*X4490Y3653D01*\r
-X4495Y3638D02*Y3648D01*\r
-X4490Y3633D02*X4495Y3638D01*\r
-X4475D02*Y3653D01*\r
-G54D11*X3375Y1500D02*G75G03I-100J0X3375Y1500D01*G01*\r
-G04 Text: C9 *\r
-G54D23*X3170Y1440D02*X3155D01*\r
-X3175Y1435D02*X3170Y1440D01*\r
-X3175Y1405D02*Y1435D01*\r
-Y1405D02*X3170Y1400D01*\r
-D02*X3155D01*\r
-X3142Y1440D02*X3122Y1420D01*\r
-Y1405D02*Y1420D01*\r
-X3127Y1400D02*X3122Y1405D01*\r
-X3137Y1400D02*X3127D01*\r
-X3142Y1405D02*X3137Y1400D01*\r
-X3142Y1405D02*Y1415D01*\r
-D02*X3137Y1420D01*\r
-D02*X3122D01*\r
-G54D18*X7025Y3825D02*X6845D01*\r
-X7025Y325D02*Y3825D01*\r
-X6845Y325D02*X7025D01*\r
-X6620Y445D02*Y3705D01*\r
-D02*X6525D01*\r
-G54D11*X6845D02*X6620D01*\r
-X6845Y3825D02*Y3705D01*\r
-G54D18*Y3925D02*Y3825D01*\r
-X6525Y3925D02*X6845D01*\r
-X6525Y3705D02*Y3925D01*\r
-X6845Y225D02*X6525D01*\r
-X6845Y325D02*Y225D01*\r
-G54D11*Y445D02*Y325D01*\r
-X6620Y445D02*X6845D01*\r
-G54D18*X6525D02*X6620D01*\r
-X6525Y225D02*Y445D01*\r
-G54D14*X6325Y3625D02*X6600D01*\r
-X6325Y3525D02*X6600D01*\r
-X6325Y3425D02*X6600D01*\r
-X6325Y3325D02*X6600D01*\r
-X6325Y3225D02*X6600D01*\r
-X6325Y3125D02*X6600D01*\r
-X6325Y3025D02*X6600D01*\r
-X6325Y2925D02*X6600D01*\r
-X6325Y2825D02*X6600D01*\r
-X6325Y2725D02*X6600D01*\r
-X6325Y2625D02*X6600D01*\r
-X6325Y2525D02*X6600D01*\r
-X6325Y2425D02*X6600D01*\r
-X6325Y2325D02*X6600D01*\r
-X6325Y2225D02*X6600D01*\r
-X6325Y2125D02*X6600D01*\r
-X6325Y2025D02*X6600D01*\r
-X6325Y1925D02*X6600D01*\r
-X6325Y1825D02*X6600D01*\r
-X6325Y1725D02*X6600D01*\r
-X6325Y1625D02*X6600D01*\r
-X6325Y1525D02*X6600D01*\r
-X6325Y1425D02*X6600D01*\r
-X6325Y1325D02*X6600D01*\r
-X6325Y1225D02*X6600D01*\r
-X6325Y1125D02*X6600D01*\r
-X6325Y1025D02*X6600D01*\r
-X6325Y925D02*X6600D01*\r
-X6325Y825D02*X6600D01*\r
-X6325Y725D02*X6600D01*\r
-X6325Y625D02*X6600D01*\r
-X6325Y525D02*X6600D01*\r
-G04 Text: J15 *\r
-G54D34*X6625Y645D02*Y675D01*\r
-D02*X6695D01*\r
-X6705Y665D02*X6695Y675D01*\r
-X6705Y655D02*Y665D01*\r
-X6695Y645D02*X6705Y655D01*\r
-Y711D02*Y731D01*\r
-X6625Y721D02*X6705D01*\r
-X6645Y701D02*X6625Y721D01*\r
-Y757D02*Y797D01*\r
-Y757D02*X6665D01*\r
-D02*X6655Y767D01*\r
-D02*Y787D01*\r
-D02*X6665Y797D01*\r
-D02*X6695D01*\r
-X6705Y787D02*X6695Y797D01*\r
-X6705Y767D02*Y787D01*\r
-X6695Y757D02*X6705Y767D01*\r
-G54D18*X5200Y1295D02*X5600D01*\r
-D02*Y1115D01*\r
-D02*X5200D01*\r
-D02*Y1295D01*\r
-D02*X5600D01*\r
-D02*Y1235D01*\r
-D02*X5200D01*\r
-D02*Y1295D01*\r
-G54D11*X5330D02*Y1235D01*\r
-X5470Y1295D02*Y1235D01*\r
-G04 Text: Q4 *\r
-G54D23*X5200Y1360D02*Y1330D01*\r
-Y1360D02*X5205Y1365D01*\r
-D02*X5215D01*\r
-D02*X5220Y1360D01*\r
-D02*Y1330D01*\r
-X5215Y1325D02*X5220Y1330D01*\r
-X5205Y1325D02*X5215D01*\r
-X5200Y1330D02*X5205Y1325D01*\r
-X5210Y1335D02*X5220Y1325D01*\r
-X5233Y1345D02*X5253Y1365D01*\r
-X5233Y1345D02*X5258D01*\r
-X5253Y1365D02*Y1325D01*\r
-G54D11*X4975Y400D02*G75G03I-150J0X4975Y400D01*G01*\r
-G04 Text: C1 *\r
-G54D23*X4670Y290D02*X4655D01*\r
-X4675Y285D02*X4670Y290D01*\r
-X4675Y255D02*Y285D01*\r
-Y255D02*X4670Y250D01*\r
-D02*X4655D01*\r
-X4637Y290D02*X4627D01*\r
-X4632Y250D02*Y290D01*\r
-X4642Y260D02*X4632Y250D01*\r
-G54D18*X1060Y1250D02*X860D01*\r
-D02*Y1350D01*\r
-D02*X1060D01*\r
-D02*Y1250D01*\r
-X1160Y1300D02*X1060D01*\r
-X860D02*X760D01*\r
-G04 Text: R12 *\r
-G54D23*X1040Y1280D02*X1020D01*\r
-D02*X1015Y1285D01*\r
-D02*Y1295D01*\r
-X1020Y1300D02*X1015Y1295D01*\r
-X1035Y1300D02*X1020D01*\r
-X1035Y1280D02*Y1320D01*\r
-Y1300D02*X1015Y1320D01*\r
-X997D02*X987D01*\r
-X992Y1280D02*Y1320D01*\r
-X1002Y1290D02*X992Y1280D01*\r
-X974Y1285D02*X969Y1280D01*\r
-D02*X954D01*\r
-D02*X949Y1285D01*\r
-D02*Y1295D01*\r
-X974Y1320D02*X949Y1295D01*\r
-X974Y1320D02*X949D01*\r
-G54D18*X6125Y250D02*X5075D01*\r
-X6125D02*Y900D01*\r
-D02*X6075D01*\r
-D02*Y350D01*\r
-D02*X5875D01*\r
-D02*Y900D01*\r
-D02*X5825D01*\r
-D02*Y350D01*\r
-D02*X5375D01*\r
-X5075Y250D02*Y900D01*\r
-D02*X5125D01*\r
-D02*Y350D01*\r
-D02*X5325D01*\r
-D02*Y900D01*\r
-D02*X5375D01*\r
-D02*Y350D01*\r
-X2850Y1425D02*Y1225D01*\r
-D02*X2750D01*\r
-D02*Y1425D01*\r
-D02*X2850D01*\r
-X2800Y1525D02*Y1425D01*\r
-Y1225D02*Y1125D01*\r
-G04 Text: R9 *\r
-G54D23*X2820Y1405D02*Y1385D01*\r
-D02*X2815Y1380D01*\r
-D02*X2805D01*\r
-X2800Y1385D02*X2805Y1380D01*\r
-X2800Y1400D02*Y1385D01*\r
-X2820Y1400D02*X2780D01*\r
-X2800D02*X2780Y1380D01*\r
-Y1367D02*X2800Y1347D01*\r
-X2815D02*X2800D01*\r
-X2820Y1352D02*X2815Y1347D01*\r
-X2820Y1362D02*Y1352D01*\r
-X2815Y1367D02*X2820Y1362D01*\r
-X2815Y1367D02*X2805D01*\r
-D02*X2800Y1362D01*\r
-D02*Y1347D01*\r
-G54D11*X5530Y380D02*Y440D01*\r
-X5670Y380D02*Y440D01*\r
-G54D18*X5800D02*Y380D01*\r
-X5400Y440D02*X5800D01*\r
-X5400Y380D02*Y440D01*\r
-X5800Y380D02*X5400D01*\r
-X5800Y560D02*Y380D01*\r
-X5400Y560D02*X5800D01*\r
-X5400Y380D02*Y560D01*\r
-X5800Y380D02*X5400D01*\r
-G04 Text: U3 *\r
-G54D23*X5800Y310D02*Y345D01*\r
-D02*X5795Y350D01*\r
-D02*X5785D01*\r
-D02*X5780Y345D01*\r
-Y310D02*Y345D01*\r
-X5767Y315D02*X5762Y310D01*\r
-D02*X5752D01*\r
-D02*X5747Y315D01*\r
-D02*Y345D01*\r
-X5752Y350D02*X5747Y345D01*\r
-X5762Y350D02*X5752D01*\r
-X5767Y345D02*X5762Y350D01*\r
-Y330D02*X5747D01*\r
-G54D11*X5075Y1325D02*G75G03I-250J0X5075Y1325D01*G01*\r
-G04 Text: C8 *\r
-G54D23*X4570Y1115D02*X4555D01*\r
-X4575Y1110D02*X4570Y1115D01*\r
-X4575Y1080D02*Y1110D01*\r
-Y1080D02*X4570Y1075D01*\r
-D02*X4555D01*\r
-X4542Y1110D02*X4537Y1115D01*\r
-X4542Y1100D02*Y1110D01*\r
-Y1100D02*X4537Y1095D01*\r
-D02*X4527D01*\r
-D02*X4522Y1100D01*\r
-D02*Y1110D01*\r
-X4527Y1115D02*X4522Y1110D01*\r
-X4537Y1115D02*X4527D01*\r
-X4542Y1090D02*X4537Y1095D01*\r
-X4542Y1080D02*Y1090D01*\r
-Y1080D02*X4537Y1075D01*\r
-D02*X4527D01*\r
-D02*X4522Y1080D01*\r
-D02*Y1090D01*\r
-X4527Y1095D02*X4522Y1090D01*\r
-G54D11*X1675Y1100D02*Y1250D01*\r
-Y850D02*Y1000D01*\r
-X2075Y1250D02*X1675D01*\r
-X2075Y850D02*Y1250D01*\r
-X1675Y850D02*X2075D01*\r
-X1674Y1000D02*G75G03I1J50X1675Y1100D01*G01*\r
-G04 Text: U11 *\r
-G54D23*X1775Y1070D02*Y1035D01*\r
-D02*X1780Y1030D01*\r
-D02*X1790D01*\r
-D02*X1795Y1035D01*\r
-Y1070D02*Y1035D01*\r
-X1813Y1030D02*X1823D01*\r
-X1818Y1070D02*Y1030D01*\r
-X1808Y1060D02*X1818Y1070D01*\r
-X1841Y1030D02*X1851D01*\r
-X1846Y1070D02*Y1030D01*\r
-X1836Y1060D02*X1846Y1070D01*\r
-G54D11*X1100Y750D02*Y850D01*\r
-X1000Y750D02*X1100D01*\r
-G54D18*X1200Y850D02*X1000D01*\r
-X1200Y750D02*Y850D01*\r
-X1000Y750D02*X1200D01*\r
-X1000Y850D02*Y750D01*\r
-G04 Text: JP2 *\r
-G54D23*X1260Y850D02*Y835D01*\r
-D02*X1225D01*\r
-X1220Y840D02*X1225Y835D01*\r
-X1220Y845D02*Y840D01*\r
-X1225Y850D02*X1220Y845D01*\r
-X1260Y817D02*X1220D01*\r
-X1260Y822D02*Y802D01*\r
-D02*X1255Y797D01*\r
-D02*X1245D01*\r
-X1240Y802D02*X1245Y797D01*\r
-X1240Y817D02*Y802D01*\r
-X1255Y784D02*X1260Y779D01*\r
-D02*Y764D01*\r
-D02*X1255Y759D01*\r
-D02*X1245D01*\r
-X1220Y784D02*X1245Y759D01*\r
-X1220Y784D02*Y759D01*\r
-G54D18*X3500Y3575D02*Y3775D01*\r
-D02*X3600D01*\r
-D02*Y3575D01*\r
-D02*X3500D01*\r
-X3550Y3475D02*Y3575D01*\r
-Y3775D02*Y3875D01*\r
-G04 Text: R14 *\r
-G54D23*X3530Y3595D02*Y3615D01*\r
-D02*X3535Y3620D01*\r
-D02*X3545D01*\r
-X3550Y3615D02*X3545Y3620D01*\r
-X3550Y3600D02*Y3615D01*\r
-X3530Y3600D02*X3570D01*\r
-X3550D02*X3570Y3620D01*\r
-Y3638D02*Y3648D01*\r
-X3530Y3643D02*X3570D01*\r
-X3540Y3633D02*X3530Y3643D01*\r
-X3550Y3661D02*X3530Y3681D01*\r
-X3550Y3661D02*Y3686D01*\r
-X3530Y3681D02*X3570D01*\r
-G54D11*X5300Y2000D02*G75G03I100J0X5300Y2001D01*G01*\r
-G04 Text: C11 *\r
-G54D23*X5505Y2060D02*X5520D01*\r
-X5500Y2065D02*X5505Y2060D01*\r
-X5500Y2095D02*Y2065D01*\r
-Y2095D02*X5505Y2100D01*\r
-D02*X5520D01*\r
-X5538Y2060D02*X5548D01*\r
-X5543Y2100D02*Y2060D01*\r
-X5533Y2090D02*X5543Y2100D01*\r
-X5566Y2060D02*X5576D01*\r
-X5571Y2100D02*Y2060D01*\r
-X5561Y2090D02*X5571Y2100D01*\r
-G54D18*X5725Y1770D02*X6125D01*\r
-D02*Y1590D01*\r
-D02*X5725D01*\r
-D02*Y1770D01*\r
-D02*X6125D01*\r
-D02*Y1710D01*\r
-D02*X5725D01*\r
-D02*Y1770D01*\r
-G54D11*X5855D02*Y1710D01*\r
-X5995Y1770D02*Y1710D01*\r
-G04 Text: Q1 *\r
-G54D23*X5725Y1835D02*Y1805D01*\r
-Y1835D02*X5730Y1840D01*\r
-D02*X5740D01*\r
-D02*X5745Y1835D01*\r
-D02*Y1805D01*\r
-X5740Y1800D02*X5745Y1805D01*\r
-X5730Y1800D02*X5740D01*\r
-X5725Y1805D02*X5730Y1800D01*\r
-X5735Y1810D02*X5745Y1800D01*\r
-X5763D02*X5773D01*\r
-X5768Y1840D02*Y1800D01*\r
-X5758Y1830D02*X5768Y1840D01*\r
-G54D11*X850Y800D02*Y700D01*\r
-Y600D02*Y500D01*\r
-Y700D02*X900Y600D01*\r
-D02*X800D01*\r
-D02*X850Y700D01*\r
-X900D02*X800D01*\r
-G04 Text: D3 *\r
-G54D23*X900Y575D02*X860D01*\r
-X900Y560D02*X895Y555D01*\r
-D02*X865D01*\r
-X860Y560D02*X865Y555D01*\r
-X860Y580D02*Y560D01*\r
-X900Y580D02*Y560D01*\r
-X895Y542D02*X900Y537D01*\r
-D02*Y527D01*\r
-D02*X895Y522D01*\r
-D02*X865D01*\r
-X860Y527D02*X865Y522D01*\r
-X860Y537D02*Y527D01*\r
-X865Y542D02*X860Y537D01*\r
-X880D02*Y522D01*\r
-G54D11*X5075Y1900D02*G75G03I-250J0X5075Y1900D01*G01*\r
-G04 Text: C7 *\r
-G54D23*X4570Y1690D02*X4555D01*\r
-X4575Y1685D02*X4570Y1690D01*\r
-X4575Y1655D02*Y1685D01*\r
-Y1655D02*X4570Y1650D01*\r
-D02*X4555D01*\r
-X4542Y1690D02*X4517Y1665D01*\r
-Y1650D02*Y1665D01*\r
-X4542Y1650D02*X4517D01*\r
-G54D11*X745Y1655D02*G75G03I70J0X745Y1656D01*G01*\r
-G54D35*X765Y1655D02*G75G03I50J0X765Y1656D01*G01*\r
-G04 Text: D9 *\r
-G54D23*X770Y1785D02*Y1745D01*\r
-X785Y1785D02*X790Y1780D01*\r
-D02*Y1750D01*\r
-X785Y1745D02*X790Y1750D01*\r
-X765Y1745D02*X785D01*\r
-X765Y1785D02*X785D01*\r
-X803Y1745D02*X823Y1765D01*\r
-Y1780D02*Y1765D01*\r
-X818Y1785D02*X823Y1780D01*\r
-X808Y1785D02*X818D01*\r
-X803Y1780D02*X808Y1785D01*\r
-X803Y1780D02*Y1770D01*\r
-D02*X808Y1765D01*\r
-D02*X823D01*\r
-G54D18*X825Y2190D02*X545D01*\r
-X725Y2240D02*X545D01*\r
-X825Y2290D02*X545D01*\r
-X725Y2340D02*X545D01*\r
-X825Y2390D02*X545D01*\r
-X725Y2440D02*X545D01*\r
-X825Y2490D02*X545D01*\r
-X725Y2540D02*X545D01*\r
-X825Y2590D02*X545D01*\r
-G54D11*X345Y2030D02*Y2750D01*\r
-G54D18*X545Y2030D02*X345D01*\r
-X545Y2750D02*Y2030D01*\r
-X345Y2750D02*X545D01*\r
-X45Y2090D02*Y2690D01*\r
-X315Y2090D02*X45D01*\r
-G54D11*X315Y2690D02*Y2090D01*\r
-G54D18*X45Y2690D02*X315D01*\r
-G54D11*Y1980D02*X345D01*\r
-X315Y1860D02*X345D01*\r
-X315Y2800D02*X345D01*\r
-X315Y2920D02*X345D01*\r
-X315Y1800D02*Y2980D01*\r
-X345Y1800D02*X315D01*\r
-X345Y2980D02*Y1800D01*\r
-X315Y2980D02*X345D01*\r
-G04 Text: J9 *\r
-G54D23*X425Y2660D02*Y2645D01*\r
-D02*X390D01*\r
-X385Y2650D02*X390Y2645D01*\r
-X385Y2655D02*Y2650D01*\r
-X390Y2660D02*X385Y2655D01*\r
-Y2632D02*X405Y2612D01*\r
-X420D02*X405D01*\r
-X425Y2617D02*X420Y2612D01*\r
-X425Y2627D02*Y2617D01*\r
-X420Y2632D02*X425Y2627D01*\r
-X420Y2632D02*X410D01*\r
-D02*X405Y2627D01*\r
-D02*Y2612D01*\r
-G54D11*X2750Y1950D02*Y2100D01*\r
-Y1700D02*Y1850D01*\r
-X3950Y2100D02*X2750D01*\r
-X3950Y1700D02*Y2100D01*\r
-X2750Y1700D02*X3950D01*\r
-X2749Y1850D02*G75G03I1J50X2750Y1950D01*G01*\r
-G04 Text: U8 *\r
-G54D23*X2850Y1920D02*Y1885D01*\r
-D02*X2855Y1880D01*\r
-D02*X2865D01*\r
-D02*X2870Y1885D01*\r
-Y1920D02*Y1885D01*\r
-X2883D02*X2888Y1880D01*\r
-X2883Y1895D02*Y1885D01*\r
-Y1895D02*X2888Y1900D01*\r
-D02*X2898D01*\r
-D02*X2903Y1895D01*\r
-D02*Y1885D01*\r
-X2898Y1880D02*X2903Y1885D01*\r
-X2888Y1880D02*X2898D01*\r
-X2883Y1905D02*X2888Y1900D01*\r
-X2883Y1915D02*Y1905D01*\r
-Y1915D02*X2888Y1920D01*\r
-D02*X2898D01*\r
-D02*X2903Y1915D01*\r
-D02*Y1905D01*\r
-X2898Y1900D02*X2903Y1905D01*\r
-G54D11*X1350Y1800D02*Y2100D01*\r
-Y1400D02*Y1700D01*\r
-X2550Y2100D02*X1350D01*\r
-X2550Y1400D02*Y2100D01*\r
-X1350Y1400D02*X2550D01*\r
-X1349Y1700D02*G75G03I1J50X1350Y1800D01*G01*\r
-G04 Text: U6 *\r
-G54D23*X1450Y1770D02*Y1735D01*\r
-D02*X1455Y1730D01*\r
-D02*X1465D01*\r
-D02*X1470Y1735D01*\r
-Y1770D02*Y1735D01*\r
-X1498Y1770D02*X1503Y1765D01*\r
-X1488Y1770D02*X1498D01*\r
-X1483Y1765D02*X1488Y1770D01*\r
-X1483Y1765D02*Y1735D01*\r
-D02*X1488Y1730D01*\r
-X1498Y1750D02*X1503Y1745D01*\r
-X1483Y1750D02*X1498D01*\r
-X1488Y1730D02*X1498D01*\r
-D02*X1503Y1735D01*\r
-Y1745D02*Y1735D01*\r
-G54D18*X4150Y2100D02*Y1700D01*\r
-D02*X4350D01*\r
-D02*Y2100D01*\r
-D02*X4150D01*\r
-G54D11*Y2000D02*X4250D01*\r
-D02*Y2100D01*\r
-G04 Text: JP1 *\r
-G54D23*X4410D02*Y2085D01*\r
-D02*X4375D01*\r
-X4370Y2090D02*X4375Y2085D01*\r
-X4370Y2095D02*Y2090D01*\r
-X4375Y2100D02*X4370Y2095D01*\r
-X4410Y2067D02*X4370D01*\r
-X4410Y2072D02*Y2052D01*\r
-D02*X4405Y2047D01*\r
-D02*X4395D01*\r
-X4390Y2052D02*X4395Y2047D01*\r
-X4390Y2067D02*Y2052D01*\r
-X4370Y2029D02*Y2019D01*\r
-X4410Y2024D02*X4370D01*\r
-X4400Y2034D02*X4410Y2024D01*\r
-G54D11*X3125Y375D02*G75G03I100J0X3125Y376D01*G01*\r
-G04 Text: C4 *\r
-G54D23*X3330Y435D02*X3345D01*\r
-X3325Y440D02*X3330Y435D01*\r
-X3325Y470D02*Y440D01*\r
-Y470D02*X3330Y475D01*\r
-D02*X3345D01*\r
-X3358Y455D02*X3378Y475D01*\r
-X3358Y455D02*X3383D01*\r
-X3378Y475D02*Y435D01*\r
-G54D11*X2400Y3725D02*Y3875D01*\r
-Y3475D02*Y3625D01*\r
-X3200Y3875D02*X2400D01*\r
-X3200Y3475D02*Y3875D01*\r
-X2400Y3475D02*X3200D01*\r
-X2399Y3625D02*G75G03I1J50X2400Y3725D01*G01*\r
-G04 Text: U7 *\r
-G54D23*X2500Y3695D02*Y3660D01*\r
-D02*X2505Y3655D01*\r
-D02*X2515D01*\r
-D02*X2520Y3660D01*\r
-Y3695D02*Y3660D01*\r
-X2533Y3655D02*X2558Y3680D01*\r
-Y3695D02*Y3680D01*\r
-X2533Y3695D02*X2558D01*\r
-G54D18*X5200Y1770D02*X5600D01*\r
-D02*Y1590D01*\r
-D02*X5200D01*\r
-D02*Y1770D01*\r
-D02*X5600D01*\r
-D02*Y1710D01*\r
-D02*X5200D01*\r
-D02*Y1770D01*\r
-G54D11*X5330D02*Y1710D01*\r
-X5470Y1770D02*Y1710D01*\r
-G04 Text: Q2 *\r
-G54D23*X5200Y1835D02*Y1805D01*\r
-Y1835D02*X5205Y1840D01*\r
-D02*X5215D01*\r
-D02*X5220Y1835D01*\r
-D02*Y1805D01*\r
-X5215Y1800D02*X5220Y1805D01*\r
-X5205Y1800D02*X5215D01*\r
-X5200Y1805D02*X5205Y1800D01*\r
-X5210Y1810D02*X5220Y1800D01*\r
-X5233Y1835D02*X5238Y1840D01*\r
-D02*X5253D01*\r
-D02*X5258Y1835D01*\r
-D02*Y1825D01*\r
-X5233Y1800D02*X5258Y1825D01*\r
-X5233Y1800D02*X5258D01*\r
-G54D35*X525Y1655D02*G75G03I50J0X525Y1656D01*G01*\r
-G54D11*X505Y1655D02*G75G03I70J0X505Y1656D01*G01*\r
-G04 Text: D10 *\r
-G54D23*X530Y1785D02*Y1745D01*\r
-X545Y1785D02*X550Y1780D01*\r
-D02*Y1750D01*\r
-X545Y1745D02*X550Y1750D01*\r
-X525Y1745D02*X545D01*\r
-X525Y1785D02*X545D01*\r
-X568Y1745D02*X578D01*\r
-X573Y1785D02*Y1745D01*\r
-X563Y1775D02*X573Y1785D01*\r
-X591Y1750D02*X596Y1745D01*\r
-X591Y1780D02*Y1750D01*\r
-Y1780D02*X596Y1785D01*\r
-D02*X606D01*\r
-D02*X611Y1780D01*\r
-D02*Y1750D01*\r
-X606Y1745D02*X611Y1750D01*\r
-X596Y1745D02*X606D01*\r
-X591Y1755D02*X611Y1775D01*\r
-G54D11*X1625Y575D02*X1525D01*\r
-Y475D02*X1575Y575D01*\r
-X1625Y475D02*X1525D01*\r
-X1575Y575D02*X1625Y475D01*\r
-X1575D02*Y375D01*\r
-Y675D02*Y575D01*\r
-G04 Text: D1 *\r
-G54D23*X1625Y450D02*X1585D01*\r
-X1625Y435D02*X1620Y430D01*\r
-D02*X1590D01*\r
-X1585Y435D02*X1590Y430D01*\r
-X1585Y455D02*Y435D01*\r
-X1625Y455D02*Y435D01*\r
-X1585Y412D02*Y402D01*\r
-X1625Y407D02*X1585D01*\r
-X1615Y417D02*X1625Y407D01*\r
-G54D18*X5525Y3575D02*Y3775D01*\r
-D02*X5625D01*\r
-D02*Y3575D01*\r
-D02*X5525D01*\r
-X5575Y3475D02*Y3575D01*\r
-Y3775D02*Y3875D01*\r
-G04 Text: R4 *\r
-G54D23*X5555Y3595D02*Y3615D01*\r
-D02*X5560Y3620D01*\r
-D02*X5570D01*\r
-X5575Y3615D02*X5570Y3620D01*\r
-X5575Y3600D02*Y3615D01*\r
-X5555Y3600D02*X5595D01*\r
-X5575D02*X5595Y3620D01*\r
-X5575Y3633D02*X5555Y3653D01*\r
-X5575Y3633D02*Y3658D01*\r
-X5555Y3653D02*X5595D01*\r
-G54D11*X3925Y3725D02*Y3875D01*\r
-Y3475D02*Y3625D01*\r
-X4325Y3875D02*X3925D01*\r
-X4325Y3475D02*Y3875D01*\r
-X3925Y3475D02*X4325D01*\r
-X3924Y3625D02*G75G03I1J50X3925Y3725D01*G01*\r
-G04 Text: U13 *\r
-G54D23*X4025Y3695D02*Y3660D01*\r
-D02*X4030Y3655D01*\r
-D02*X4040D01*\r
-D02*X4045Y3660D01*\r
-Y3695D02*Y3660D01*\r
-X4063Y3655D02*X4073D01*\r
-X4068Y3695D02*Y3655D01*\r
-X4058Y3685D02*X4068Y3695D01*\r
-X4086Y3690D02*X4091Y3695D01*\r
-D02*X4101D01*\r
-D02*X4106Y3690D01*\r
-D02*Y3660D01*\r
-X4101Y3655D02*X4106Y3660D01*\r
-X4091Y3655D02*X4101D01*\r
-X4086Y3660D02*X4091Y3655D01*\r
-Y3675D02*X4106D01*\r
-G54D11*X4825Y3125D02*Y3275D01*\r
-Y2875D02*Y3025D01*\r
-X5225Y3275D02*X4825D01*\r
-X5225Y2875D02*Y3275D01*\r
-X4825Y2875D02*X5225D01*\r
-X4824Y3025D02*G75G03I1J50X4825Y3125D01*G01*\r
-G04 Text: U14 *\r
-G54D23*X4925Y3095D02*Y3060D01*\r
-D02*X4930Y3055D01*\r
-D02*X4940D01*\r
-D02*X4945Y3060D01*\r
-Y3095D02*Y3060D01*\r
-X4963Y3055D02*X4973D01*\r
-X4968Y3095D02*Y3055D01*\r
-X4958Y3085D02*X4968Y3095D01*\r
-X4986Y3075D02*X5006Y3095D01*\r
-X4986Y3075D02*X5011D01*\r
-X5006Y3095D02*Y3055D01*\r
-G54D18*X5325Y2975D02*Y3175D01*\r
-D02*X5425D01*\r
-D02*Y2975D01*\r
-D02*X5325D01*\r
-X5375Y2875D02*Y2975D01*\r
-Y3175D02*Y3275D01*\r
-G04 Text: R5 *\r
-G54D23*X5355Y2995D02*Y3015D01*\r
-D02*X5360Y3020D01*\r
-D02*X5370D01*\r
-X5375Y3015D02*X5370Y3020D01*\r
-X5375Y3000D02*Y3015D01*\r
-X5355Y3000D02*X5395D01*\r
-X5375D02*X5395Y3020D01*\r
-X5355Y3033D02*Y3053D01*\r
-Y3033D02*X5375D01*\r
-D02*X5370Y3038D01*\r
-D02*Y3048D01*\r
-D02*X5375Y3053D01*\r
-D02*X5390D01*\r
-X5395Y3048D02*X5390Y3053D01*\r
-X5395Y3038D02*Y3048D01*\r
-X5390Y3033D02*X5395Y3038D01*\r
-G54D18*X4625Y2975D02*Y3175D01*\r
-D02*X4725D01*\r
-D02*Y2975D01*\r
-D02*X4625D01*\r
-X4675Y2875D02*Y2975D01*\r
-Y3175D02*Y3275D01*\r
-G04 Text: R6 *\r
-G54D23*X4655Y2995D02*Y3015D01*\r
-D02*X4660Y3020D01*\r
-D02*X4670D01*\r
-X4675Y3015D02*X4670Y3020D01*\r
-X4675Y3000D02*Y3015D01*\r
-X4655Y3000D02*X4695D01*\r
-X4675D02*X4695Y3020D01*\r
-X4655Y3048D02*X4660Y3053D01*\r
-X4655Y3038D02*Y3048D01*\r
-X4660Y3033D02*X4655Y3038D01*\r
-X4660Y3033D02*X4690D01*\r
-D02*X4695Y3038D01*\r
-X4675Y3048D02*X4680Y3053D01*\r
-X4675Y3033D02*Y3048D01*\r
-X4695Y3038D02*Y3048D01*\r
-D02*X4690Y3053D01*\r
-X4680D02*X4690D01*\r
-G54D18*X4625Y3575D02*Y3775D01*\r
-D02*X4725D01*\r
-D02*Y3575D01*\r
-D02*X4625D01*\r
-X4675Y3475D02*Y3575D01*\r
-Y3775D02*Y3875D01*\r
-G04 Text: R2 *\r
-G54D23*X4655Y3595D02*Y3615D01*\r
-D02*X4660Y3620D01*\r
-D02*X4670D01*\r
-X4675Y3615D02*X4670Y3620D01*\r
-X4675Y3600D02*Y3615D01*\r
-X4655Y3600D02*X4695D01*\r
-X4675D02*X4695Y3620D01*\r
-X4660Y3633D02*X4655Y3638D01*\r
-D02*Y3653D01*\r
-D02*X4660Y3658D01*\r
-D02*X4670D01*\r
-X4695Y3633D02*X4670Y3658D01*\r
-X4695Y3633D02*Y3658D01*\r
-G54D11*X4825Y3725D02*Y3875D01*\r
-Y3475D02*Y3625D01*\r
-X5225Y3875D02*X4825D01*\r
-X5225Y3475D02*Y3875D01*\r
-X4825Y3475D02*X5225D01*\r
-X4824Y3625D02*G75G03I1J50X4825Y3725D01*G01*\r
-G04 Text: U12 *\r
-G54D23*X4925Y3695D02*Y3660D01*\r
-D02*X4930Y3655D01*\r
-D02*X4940D01*\r
-D02*X4945Y3660D01*\r
-Y3695D02*Y3660D01*\r
-X4963Y3655D02*X4973D01*\r
-X4968Y3695D02*Y3655D01*\r
-X4958Y3685D02*X4968Y3695D01*\r
-X4986Y3690D02*X4991Y3695D01*\r
-D02*X5006D01*\r
-D02*X5011Y3690D01*\r
-D02*Y3680D01*\r
-X4986Y3655D02*X5011Y3680D01*\r
-X4986Y3655D02*X5011D01*\r
-G54D18*X5325Y3575D02*Y3775D01*\r
-D02*X5425D01*\r
-D02*Y3575D01*\r
-D02*X5325D01*\r
-X5375Y3475D02*Y3575D01*\r
-Y3775D02*Y3875D01*\r
-G04 Text: R1 *\r
-G54D23*X5355Y3595D02*Y3615D01*\r
-D02*X5360Y3620D01*\r
-D02*X5370D01*\r
-X5375Y3615D02*X5370Y3620D01*\r
-X5375Y3600D02*Y3615D01*\r
-X5355Y3600D02*X5395D01*\r
-X5375D02*X5395Y3620D01*\r
-Y3638D02*Y3648D01*\r
-X5355Y3643D02*X5395D01*\r
-X5365Y3633D02*X5355Y3643D01*\r
-G54D18*X5525Y2975D02*Y3175D01*\r
-D02*X5625D01*\r
-D02*Y2975D01*\r
-D02*X5525D01*\r
-X5575Y2875D02*Y2975D01*\r
-Y3175D02*Y3275D01*\r
-G04 Text: R8 *\r
-G54D23*X5555Y2995D02*Y3015D01*\r
-D02*X5560Y3020D01*\r
-D02*X5570D01*\r
-X5575Y3015D02*X5570Y3020D01*\r
-X5575Y3000D02*Y3015D01*\r
-X5555Y3000D02*X5595D01*\r
-X5575D02*X5595Y3020D01*\r
-X5590Y3033D02*X5595Y3038D01*\r
-X5580Y3033D02*X5590D01*\r
-X5580D02*X5575Y3038D01*\r
-D02*Y3048D01*\r
-D02*X5580Y3053D01*\r
-D02*X5590D01*\r
-X5595Y3048D02*X5590Y3053D01*\r
-X5595Y3038D02*Y3048D01*\r
-X5570Y3033D02*X5575Y3038D01*\r
-X5560Y3033D02*X5570D01*\r
-X5560D02*X5555Y3038D01*\r
-D02*Y3048D01*\r
-D02*X5560Y3053D01*\r
-D02*X5570D01*\r
-X5575Y3048D02*X5570Y3053D01*\r
-G54D11*X3925Y3125D02*Y3275D01*\r
-Y2875D02*Y3025D01*\r
-X4325Y3275D02*X3925D01*\r
-X4325Y2875D02*Y3275D01*\r
-X3925Y2875D02*X4325D01*\r
-X3924Y3025D02*G75G03I1J50X3925Y3125D01*G01*\r
-G04 Text: U15 *\r
-G54D23*X4025Y3095D02*Y3060D01*\r
-D02*X4030Y3055D01*\r
-D02*X4040D01*\r
-D02*X4045Y3060D01*\r
-Y3095D02*Y3060D01*\r
-X4063Y3055D02*X4073D01*\r
-X4068Y3095D02*Y3055D01*\r
-X4058Y3085D02*X4068Y3095D01*\r
-X4086D02*X4106D01*\r
-X4086D02*Y3075D01*\r
-D02*X4091Y3080D01*\r
-D02*X4101D01*\r
-D02*X4106Y3075D01*\r
-D02*Y3060D01*\r
-X4101Y3055D02*X4106Y3060D01*\r
-X4091Y3055D02*X4101D01*\r
-X4086Y3060D02*X4091Y3055D01*\r
-G54D18*X4425Y2975D02*Y3175D01*\r
-D02*X4525D01*\r
-D02*Y2975D01*\r
-D02*X4425D01*\r
-X4475Y2875D02*Y2975D01*\r
-Y3175D02*Y3275D01*\r
-G04 Text: R7 *\r
-G54D23*X4455Y2995D02*Y3015D01*\r
-D02*X4460Y3020D01*\r
-D02*X4470D01*\r
-X4475Y3015D02*X4470Y3020D01*\r
-X4475Y3000D02*Y3015D01*\r
-X4455Y3000D02*X4495D01*\r
-X4475D02*X4495Y3020D01*\r
-Y3033D02*X4470Y3058D01*\r
-X4455D02*X4470D01*\r
-X4455Y3033D02*Y3058D01*\r
-G54D11*X3980Y380D02*Y440D01*\r
-X4120Y380D02*Y440D01*\r
-G54D18*X4250D02*Y380D01*\r
-X3850Y440D02*X4250D01*\r
-X3850Y380D02*Y440D01*\r
-X4250Y380D02*X3850D01*\r
-X4250Y560D02*Y380D01*\r
-X3850Y560D02*X4250D01*\r
-X3850Y380D02*Y560D01*\r
-X4250Y380D02*X3850D01*\r
-G04 Text: U2 *\r
-G54D23*X4250Y310D02*Y345D01*\r
-D02*X4245Y350D01*\r
-D02*X4235D01*\r
-D02*X4230Y345D01*\r
-Y310D02*Y345D01*\r
-X4217Y315D02*X4212Y310D01*\r
-D02*X4197D01*\r
-D02*X4192Y315D01*\r
-D02*Y325D01*\r
-X4217Y350D02*X4192Y325D01*\r
-X4217Y350D02*X4192D01*\r
-G54D11*X3025Y575D02*X2925D01*\r
-Y475D02*X2975Y575D01*\r
-X3025Y475D02*X2925D01*\r
-X2975Y575D02*X3025Y475D01*\r
-X2975D02*Y375D01*\r
-Y675D02*Y575D01*\r
-G04 Text: D2 *\r
-G54D23*X3025Y450D02*X2985D01*\r
-X3025Y435D02*X3020Y430D01*\r
-D02*X2990D01*\r
-X2985Y435D02*X2990Y430D01*\r
-X2985Y455D02*Y435D01*\r
-X3025Y455D02*Y435D01*\r
-X3020Y417D02*X3025Y412D01*\r
-D02*Y397D01*\r
-D02*X3020Y392D01*\r
-D02*X3010D01*\r
-X2985Y417D02*X3010Y392D01*\r
-X2985Y417D02*Y392D01*\r
-G54D18*X3300Y3575D02*Y3775D01*\r
-D02*X3400D01*\r
-D02*Y3575D01*\r
-D02*X3300D01*\r
-X3350Y3475D02*Y3575D01*\r
-Y3775D02*Y3875D01*\r
-G04 Text: R13 *\r
-G54D23*X3330Y3595D02*Y3615D01*\r
-D02*X3335Y3620D01*\r
-D02*X3345D01*\r
-X3350Y3615D02*X3345Y3620D01*\r
-X3350Y3600D02*Y3615D01*\r
-X3330Y3600D02*X3370D01*\r
-X3350D02*X3370Y3620D01*\r
-Y3638D02*Y3648D01*\r
-X3330Y3643D02*X3370D01*\r
-X3340Y3633D02*X3330Y3643D01*\r
-X3335Y3661D02*X3330Y3666D01*\r
-D02*Y3676D01*\r
-D02*X3335Y3681D01*\r
-D02*X3365D01*\r
-X3370Y3676D02*X3365Y3681D01*\r
-X3370Y3666D02*Y3676D01*\r
-X3365Y3661D02*X3370Y3666D01*\r
-X3350D02*Y3681D01*\r
-D02*\r
-M02*\r
+++ /dev/null
-M48\r
-INCH,TZ\r
-T01F00S00C0.035\r
-T02F00S00C0.042\r
-T03F00S00C0.052\r
-T04F00S00C0.060\r
-T05F00S00C0.080\r
-T06F00S00C0.100\r
-T07F00S00C0.128\r
-T08F00S00C0.020\r
-%\r
-T01\r
-X1155Y1045\r
-X755Y1045\r
-X1725Y375\r
-X1825Y375\r
-X1925Y375\r
-X2025Y375\r
-X2125Y375\r
-X2225Y375\r
-X2325Y375\r
-X2425Y375\r
-X2525Y375\r
-X2625Y375\r
-X2725Y375\r
-X2825Y375\r
-X2825Y675\r
-X2725Y675\r
-X2625Y675\r
-X2525Y675\r
-X2425Y675\r
-X2325Y675\r
-X2225Y675\r
-X2125Y675\r
-X2025Y675\r
-X1925Y675\r
-X1825Y675\r
-X1725Y675\r
-X1375Y375\r
-X1275Y375\r
-X5400Y2475\r
-X5350Y2575\r
-X5300Y2475\r
-X5250Y2575\r
-X5200Y2475\r
-X5150Y2575\r
-X5100Y2475\r
-X5050Y2575\r
-X5000Y2475\r
-X4950Y2575\r
-X4900Y2475\r
-X4850Y2575\r
-X4800Y2475\r
-X4750Y2575\r
-X4700Y2475\r
-X4650Y2575\r
-X4600Y2475\r
-X4550Y2575\r
-X4500Y2475\r
-X4450Y2575\r
-X4400Y2475\r
-X4350Y2575\r
-X4300Y2475\r
-X4250Y2575\r
-X4200Y2475\r
-X4150Y2575\r
-X4100Y2475\r
-X4050Y2575\r
-X4000Y2475\r
-X3950Y2575\r
-X3900Y2475\r
-X3850Y2575\r
-X3800Y2475\r
-X3750Y2575\r
-X3700Y2475\r
-X3650Y2575\r
-X3400Y2475\r
-X3350Y2575\r
-X3300Y2475\r
-X3250Y2575\r
-X3200Y2475\r
-X3150Y2575\r
-X3100Y2475\r
-X3050Y2575\r
-X3000Y2475\r
-X2950Y2575\r
-X2900Y2475\r
-X2850Y2575\r
-X2800Y2475\r
-X2750Y2575\r
-X2700Y2475\r
-X2650Y2575\r
-X2600Y2475\r
-X2550Y2575\r
-X2500Y2475\r
-X2450Y2575\r
-X2400Y2475\r
-X2350Y2575\r
-X2300Y2475\r
-X2250Y2575\r
-X2200Y2475\r
-X2150Y2575\r
-X2100Y2475\r
-X2050Y2575\r
-X2000Y2475\r
-X1950Y2575\r
-X1900Y2475\r
-X1850Y2575\r
-X1800Y2475\r
-X1750Y2575\r
-X1700Y2475\r
-X1650Y2575\r
-X1375Y675\r
-X1275Y675\r
-X3175Y675\r
-X3275Y675\r
-X3600Y1200\r
-X3700Y1200\r
-X3800Y1200\r
-X3900Y1200\r
-X3900Y1500\r
-X3800Y1500\r
-X3700Y1500\r
-X3600Y1500\r
-X875Y3525\r
-X975Y3475\r
-X875Y3425\r
-X975Y3375\r
-X875Y3325\r
-X975Y3275\r
-X875Y3225\r
-X975Y3175\r
-X3225Y1200\r
-X3325Y1200\r
-X5775Y3525\r
-X5875Y3525\r
-X5975Y3525\r
-X6075Y3525\r
-X6075Y3825\r
-X5975Y3825\r
-X5875Y3825\r
-X5775Y3825\r
-X5775Y2925\r
-X5875Y2925\r
-X5975Y2925\r
-X6075Y2925\r
-X6075Y3225\r
-X5975Y3225\r
-X5875Y3225\r
-X5775Y3225\r
-X5625Y2225\r
-X5925Y2225\r
-X4750Y800\r
-X4900Y800\r
-X3000Y1125\r
-X3000Y1525\r
-X4475Y3475\r
-X4475Y3875\r
-X3325Y1500\r
-X3225Y1500\r
-X6525Y3625\r
-X6525Y3525\r
-X6525Y3425\r
-X6525Y3325\r
-X6525Y3225\r
-X6525Y3125\r
-X6525Y3025\r
-X6525Y2925\r
-X6525Y2825\r
-X6525Y2725\r
-X6525Y2625\r
-X6525Y2525\r
-X6525Y2425\r
-X6525Y2325\r
-X6525Y2225\r
-X6525Y2125\r
-X6525Y2025\r
-X6525Y1925\r
-X6525Y1825\r
-X6525Y1725\r
-X6525Y1625\r
-X6525Y1525\r
-X6525Y1425\r
-X6525Y1325\r
-X6525Y1225\r
-X6525Y1125\r
-X6525Y1025\r
-X6525Y925\r
-X6525Y825\r
-X6525Y725\r
-X6525Y625\r
-X6525Y525\r
-X6425Y3625\r
-X6425Y3525\r
-X6425Y3425\r
-X6425Y3325\r
-X6425Y3225\r
-X6425Y3125\r
-X6425Y3025\r
-X6425Y2925\r
-X6425Y2825\r
-X6425Y2725\r
-X6425Y2625\r
-X6425Y2525\r
-X6425Y2425\r
-X6425Y2325\r
-X6425Y2225\r
-X6425Y2125\r
-X6425Y2025\r
-X6425Y1925\r
-X6425Y1825\r
-X6425Y1725\r
-X6425Y1625\r
-X6425Y1525\r
-X6425Y1425\r
-X6425Y1325\r
-X6425Y1225\r
-X6425Y1125\r
-X6425Y1025\r
-X6425Y925\r
-X6425Y825\r
-X6425Y725\r
-X6425Y625\r
-X6425Y525\r
-X6325Y3625\r
-X6325Y3525\r
-X6325Y3425\r
-X6325Y3325\r
-X6325Y3225\r
-X6325Y3125\r
-X6325Y3025\r
-X6325Y2925\r
-X6325Y2825\r
-X6325Y2725\r
-X6325Y2625\r
-X6325Y2525\r
-X6325Y2425\r
-X6325Y2325\r
-X6325Y2225\r
-X6325Y2125\r
-X6325Y2025\r
-X6325Y1925\r
-X6325Y1825\r
-X6325Y1725\r
-X6325Y1625\r
-X6325Y1525\r
-X6325Y1425\r
-X6325Y1325\r
-X6325Y1225\r
-X6325Y1125\r
-X6325Y1025\r
-X6325Y925\r
-X6325Y825\r
-X6325Y725\r
-X6325Y625\r
-X6325Y525\r
-X4900Y400\r
-X4750Y400\r
-X1160Y1300\r
-X760Y1300\r
-X2800Y1525\r
-X2800Y1125\r
-X1725Y900\r
-X1825Y900\r
-X1925Y900\r
-X2025Y900\r
-X2025Y1200\r
-X1925Y1200\r
-X1825Y1200\r
-X1725Y1200\r
-X3550Y3475\r
-X3550Y3875\r
-X5350Y2000\r
-X5450Y2000\r
-X850Y800\r
-X850Y500\r
-X815Y1705\r
-X815Y1605\r
-X2800Y1750\r
-X2900Y1750\r
-X3000Y1750\r
-X3100Y1750\r
-X3200Y1750\r
-X3300Y1750\r
-X3400Y1750\r
-X3500Y1750\r
-X3600Y1750\r
-X3700Y1750\r
-X3800Y1750\r
-X3900Y1750\r
-X3900Y2050\r
-X3800Y2050\r
-X3700Y2050\r
-X3600Y2050\r
-X3500Y2050\r
-X3400Y2050\r
-X3300Y2050\r
-X3200Y2050\r
-X3100Y2050\r
-X3000Y2050\r
-X2900Y2050\r
-X2800Y2050\r
-X1400Y1450\r
-X1500Y1450\r
-X1600Y1450\r
-X1700Y1450\r
-X1800Y1450\r
-X1900Y1450\r
-X2000Y1450\r
-X2100Y1450\r
-X2200Y1450\r
-X2300Y1450\r
-X2400Y1450\r
-X2500Y1450\r
-X2500Y2050\r
-X2400Y2050\r
-X2300Y2050\r
-X2200Y2050\r
-X2100Y2050\r
-X2000Y2050\r
-X1900Y2050\r
-X1800Y2050\r
-X1700Y2050\r
-X1600Y2050\r
-X1500Y2050\r
-X1400Y2050\r
-X3175Y375\r
-X3275Y375\r
-X2450Y3525\r
-X2550Y3525\r
-X2650Y3525\r
-X2750Y3525\r
-X2850Y3525\r
-X2950Y3525\r
-X3050Y3525\r
-X3150Y3525\r
-X3150Y3825\r
-X3050Y3825\r
-X2950Y3825\r
-X2850Y3825\r
-X2750Y3825\r
-X2650Y3825\r
-X2550Y3825\r
-X2450Y3825\r
-X575Y1705\r
-X575Y1605\r
-X1575Y675\r
-X1575Y375\r
-X5575Y3475\r
-X5575Y3875\r
-X3975Y3525\r
-X4075Y3525\r
-X4175Y3525\r
-X4275Y3525\r
-X4275Y3825\r
-X4175Y3825\r
-X4075Y3825\r
-X3975Y3825\r
-X4875Y2925\r
-X4975Y2925\r
-X5075Y2925\r
-X5175Y2925\r
-X5175Y3225\r
-X5075Y3225\r
-X4975Y3225\r
-X4875Y3225\r
-X5375Y2875\r
-X5375Y3275\r
-X4675Y2875\r
-X4675Y3275\r
-X4675Y3475\r
-X4675Y3875\r
-X4875Y3525\r
-X4975Y3525\r
-X5075Y3525\r
-X5175Y3525\r
-X5175Y3825\r
-X5075Y3825\r
-X4975Y3825\r
-X4875Y3825\r
-X5375Y3475\r
-X5375Y3875\r
-X5575Y2875\r
-X5575Y3275\r
-X3975Y2925\r
-X4075Y2925\r
-X4175Y2925\r
-X4275Y2925\r
-X4275Y3225\r
-X4175Y3225\r
-X4075Y3225\r
-X3975Y3225\r
-X4475Y2875\r
-X4475Y3275\r
-X2975Y675\r
-X2975Y375\r
-X3350Y3475\r
-X3350Y3875\r
-X4750Y675\r
-X4900Y675\r
-X5600Y675\r
-X6025Y1500\r
-X5400Y1500\r
-X5400Y1025\r
-X6025Y1025\r
-X5925Y1325\r
-X6125Y1225\r
-X5400Y825\r
-X3950Y925\r
-X4750Y925\r
-X6225Y675\r
-X6125Y1425\r
-X5925Y1875\r
-X4625Y675\r
-X5625Y1900\r
-X6225Y3075\r
-X6475Y3075\r
-X5675Y3025\r
-X5975Y3625\r
-X5375Y3625\r
-X4875Y3625\r
-X5175Y3700\r
-X5775Y3700\r
-X4025Y3375\r
-X4875Y3375\r
-X5375Y3375\r
-X5925Y3375\r
-X4975Y3150\r
-X1400Y3150\r
-X1750Y3150\r
-X2375Y3150\r
-X3225Y925\r
-X3275Y175\r
-X2400Y1650\r
-X2700Y1650\r
-X1400Y1650\r
-X1300Y1300\r
-X1300Y1200\r
-X4275Y3100\r
-X5250Y3100\r
-X3150Y3100\r
-X4475Y3150\r
-X2025Y1050\r
-X1275Y175\r
-X2125Y175\r
-X2725Y175\r
-X3600Y925\r
-X775Y175\r
-X4075Y3625\r
-X2725Y575\r
-X2125Y575\r
-X2325Y575\r
-X3225Y1650\r
-X2200Y1850\r
-X2400Y1850\r
-X3325Y1400\r
-X4700Y1200\r
-X2975Y575\r
-X1300Y1550\r
-X5925Y500\r
-X4050Y675\r
-T02\r
-X5825Y2000\r
-X5925Y2000\r
-X6025Y2000\r
-X5825Y1175\r
-X5925Y1175\r
-X6025Y1175\r
-X550Y1405\r
-X550Y1228\r
-X5300Y1175\r
-X5400Y1175\r
-X5500Y1175\r
-X5700Y500\r
-X5600Y500\r
-X5500Y500\r
-X4950Y1325\r
-X4700Y1325\r
-X1050Y800\r
-X1150Y800\r
-X5825Y1650\r
-X5925Y1650\r
-X6025Y1650\r
-X4950Y1900\r
-X4700Y1900\r
-X825Y2590\r
-X725Y2540\r
-X825Y2490\r
-X725Y2440\r
-X825Y2390\r
-X725Y2340\r
-X825Y2290\r
-X725Y2240\r
-X825Y2190\r
-X4200Y2050\r
-X4300Y2050\r
-X4200Y1950\r
-X4300Y1950\r
-X4200Y1850\r
-X4300Y1850\r
-X4200Y1750\r
-X4300Y1750\r
-X5300Y1650\r
-X5400Y1650\r
-X5500Y1650\r
-X4150Y500\r
-X4050Y500\r
-X3950Y500\r
-T03\r
-X648Y1454\r
-X648Y1178\r
-T04\r
-X5730Y2525\r
-X745Y3655\r
-X745Y3044\r
-T05\r
-X575Y3825\r
-X575Y338\r
-X6625Y3825\r
-X6625Y338\r
-X6625Y325\r
-X6625Y3825\r
-T06\r
-X3525Y2525\r
-X1325Y2525\r
-X775Y2860\r
-X775Y1920\r
-T07\r
-X625Y3575\r
-X625Y3124\r
-T08\r
-X2525Y1225\r
-X4875Y3025\r
-X6200Y3575\r
-X6225Y3225\r
-X5375Y3025\r
-X6375Y2375\r
-X2625Y2375\r
-X5975Y3450\r
-X2050Y3275\r
-X4025Y1750\r
-X2950Y2800\r
-X3350Y3575\r
-X5275Y3875\r
-X6150Y3950\r
-X4775Y3525\r
-X6225Y3750\r
-X6475Y3900\r
-X5575Y3950\r
-X5025Y3950\r
-X5475Y2675\r
-X6100Y2675\r
-X6150Y2800\r
-X5550Y2750\r
-X1950Y3525\r
-X2425Y500\r
-X2100Y3425\r
-X1150Y2975\r
-X5075Y3025\r
-X4175Y2750\r
-X2000Y3475\r
-X5125Y3300\r
-X5575Y1725\r
-X4475Y3800\r
-X3550Y2800\r
-X950Y1650\r
-X1150Y1650\r
-X5825Y1250\r
-X1100Y425\r
-X1825Y250\r
-X2525Y250\r
-X1925Y500\r
-X4175Y3025\r
-X4475Y3025\r
-X4725Y3025\r
-X4675Y3950\r
-X2550Y2900\r
-X2650Y2900\r
-X2650Y2800\r
-X2500Y2800\r
-X2600Y3050\r
-X2450Y3050\r
-X2850Y2900\r
-X3000Y2900\r
-X2900Y2850\r
-X3100Y2850\r
-X2950Y2725\r
-X3225Y2725\r
-X1450Y2725\r
-X1550Y2850\r
-X1600Y3100\r
-X3000Y3100\r
-X1700Y2675\r
-X2800Y2675\r
-X1800Y2775\r
-X2750Y2800\r
-X1900Y3050\r
-X2700Y3050\r
-X2000Y1550\r
-X2700Y1550\r
-X3500Y1600\r
-X2025Y1275\r
-X2200Y1275\r
-X2575Y1600\r
-X2100Y1600\r
-X2575Y2125\r
-X3000Y1975\r
-X2150Y1975\r
-X3100Y1925\r
-X2250Y1925\r
-X2250Y2150\r
-X3150Y2175\r
-X1500Y2225\r
-X3250Y2225\r
-X2350Y2225\r
-X3600Y1575\r
-X2925Y1875\r
-X1700Y1925\r
-X2100Y1800\r
-X3900Y1850\r
-X2575Y1325\r
-X3850Y1325\r
-X1550Y1275\r
-X3400Y1275\r
-X2300Y2275\r
-X2450Y2275\r
-X2275Y3200\r
-X2550Y3200\r
-X2500Y2375\r
-X1900Y2350\r
-X1800Y2400\r
-X4300Y2125\r
-X2900Y1450\r
-X4800Y1450\r
-X4625Y1275\r
-X3000Y2325\r
-X4850Y2325\r
-X3050Y3250\r
-X2750Y3250\r
-X3300Y3300\r
-X2850Y3300\r
-X3500Y1900\r
-X3650Y1900\r
-X3550Y250\r
-X3750Y500\r
-X1075Y2625\r
-X1220Y2495\r
-X4500Y2275\r
-X2625Y575\r
-X3275Y575\r
-X4000Y1850\r
-X4050Y1950\r
-X4100Y2050\r
-X1050Y1400\r
-X4150Y1375\r
-X4025Y1600\r
-X2225Y1000\r
-X4025Y1000\r
-X5200Y1500\r
-X5200Y725\r
-X2100Y875\r
-X5700Y875\r
-X5700Y1650\r
-X5300Y825\r
-X2825Y800\r
-X3275Y1050\r
-X495Y800\r
-X765Y1530\r
-X905Y1045\r
-M30\r
+++ /dev/null
-%!PS-Adobe-3.0
-%%Title: (unknown), Fabrication Drawing
-%%Creator: pcb-bin 20060321
-%%CreationDate: Tue Nov 27 09:49:27 2007
-%%For: fetter (Walter Fetter Lages,,,)
-%%LanguageLevel: 1
-%%Orientation: Portrait
-%%Pages: 1
-%%PageOrder: Ascend
-%%DocumentMedia: A4 594 841
-%%EndComments
-%%BeginProlog
-
-/PcbDict 200 dict def
-PcbDict begin
-PcbDict /DictMatrix matrix put
-
-% some constants
-/Black {0.0 mysetgray} def
-/White {1.0 mysetgray} def
-/TAN {0.207106781} def
-/MTAN {-0.207106781} def
-
-% draw a filled polygon
-% get (x,y)... and number of points from stack
-/PO {
- /number exch def
- newpath
- moveto
- number 1 sub { lineto } repeat
- closepath fill stroke
-} def
-
-/P {
-% draw a pin-polygon,
-% get x, y and thickness from stack
- /thickness exch def /y exch def /x exch def
- gsave x y translate thickness thickness scale
- 0.5 MTAN
- TAN -0.5
- MTAN -0.5
- -0.5 MTAN
- -0.5 TAN
- MTAN 0.5
- TAN 0.5
- 0.5 TAN
- 8 PO grestore
-} def
-
-/PV {
-% pin or via, x, y and thickness are on the stack
- /drillinghole exch def /thickness exch def /y exch def /x exch def
- x y thickness P
-% draw drilling hole
- gsave White 0 setlinewidth
- newpath x y drillinghole 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/PVR {
-% pin or via, x, y and thickness are on the stack
- /drillinghole exch def /thickness exch def /y exch def /x exch def
- gsave 0 setlinewidth
- newpath x y thickness 2 div 0 360 arc closepath fill stroke
-% draw drilling whole
- White
- newpath x y drillinghole 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/PVSQ {
-% square pin or via, x, y and thickness are on the stack
- /drillinghole exch def /thickness exch def /y exch def /x exch def
- newpath x thickness 2 div sub y thickness 2 div sub moveto
- thickness 0 rlineto 0 thickness rlineto
- thickness neg 0 rlineto closepath fill stroke
-% draw drilling hole
- gsave White 0 setlinewidth
- newpath x y drillinghole 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/DH {
-% drill helpher; x, y, hole, copper-thickness are on stack
- /copper exch def /hole exch def /y exch def /x exch def
- gsave copper setlinewidth
- newpath x y hole copper add 2 div 0 360 arc closepath stroke
- grestore
-} def
-
-/L {
-% line, get x1, y1, x2, y2 and thickness from stack
- /thick exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave thick setlinewidth
- x1 y1 moveto x2 y2 lineto stroke
- grestore
-} def
-
-/CL {
-% line, get x1, y1, x2, y2 and thickness from stack
- /thick exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave White thick setlinewidth
- x1 y1 moveto x2 y2 lineto stroke
- grestore
-} def
-
-/B {
-% filled box, get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath fill stroke
-} def
-
-/PA {
-% pad, same as line
- L
-} def
-
-/A {
-% arc for elements, get x, y, width, height, thickness
-% startangle and delta-angle from stack
- /delta exch def /start exch def /thickness exch def
- /height exch def /width exch def /y exch def /x exch def
-% draw it
- gsave thickness setlinewidth /save DictMatrix currentmatrix def
-% scaling is less then zero because the coord system has to be swapped
- x y translate width neg height scale
- 0 0 1 start start delta add arc save setmatrix stroke
- grestore
-} def
-
-/CA {
-% arc for elements, get x, y, width, height, thickness
-% startangle and delta-angle from stack
- /delta exch def /start exch def /thickness exch def
- /height exch def /width exch def /y exch def /x exch def
-% draw it
- gsave White thickness setlinewidth /save DictMatrix currentmatrix def
-% scaling is less then zero because the coord system has to be swapped
- x y translate width neg height scale
- 0 0 1 start start delta add arc save setmatrix stroke
- grestore
-} def
-
-/CLRPV {
-% clears a pin/via for groundplane; x,y and thickness are on stack
- /thickness exch def /y exch def /x exch def
- gsave White x y thickness P grestore
-} def
-
-/CLRPVSQ {
-% clears a square pin, x,y and thickness are on stack
- /thickness exch def /y exch def /x exch def
- gsave White
- newpath x thickness 2 div sub y thickness 2 div sub moveto
- thickness 0 rlineto 0 thickness rlineto
- thickness neg 0 rlineto closepath fill stroke
- grestore
-} def
-
-/CLRPVR {
-% clears a round pin/via for groundplane; x,y and thickness are on the stack
- /thickness exch def /y exch def /x exch def
- gsave White 0 setlinewidth
- newpath x y thickness 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/CLRPA {
-% clear line, get x1, y1, x2, y2 and thickness from stack
- /thick exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave White thick setlinewidth
- x1 y1 moveto x2 y2 lineto stroke
- grestore
-} def
-
-/CLRB {
-% cleared box, get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave White newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath fill stroke
- grestore
-} def
-
-/FILL {
-% draw a filled rectangle for the ground plane
-% get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave 0 setlinewidth
- newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath fill stroke
- grestore
-} def
-
-/Outline {
-% outline, get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave 0.175 setlinewidth
- newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath stroke
- grestore
-} def
-
-/Alignment {
-% alignment targets, get x1, y1, x2, y2 and distance from stack
- /dis exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave 0.175 setlinewidth
- newpath x1 y1 dis add moveto
- 0 dis 2 mul neg rlineto
- dis neg dis rmoveto
- dis 2 mul 0 rlineto
- stroke
- newpath x1 y1 dis 0 90 arcn stroke
- newpath x1 y2 dis sub moveto 0 dis rlineto dis 0 rlineto stroke
- newpath x2 y2 dis sub moveto
- 0 2 dis mul rlineto
- dis dup neg rmoveto
- 2 dis mul neg 0 rlineto stroke
- newpath x2 y1 dis add moveto 0 dis neg rlineto dis neg 0 rlineto stroke
- grestore
-} def
-
-/mysetgray { setgray } def
-/mysetrgbcolor { setrgbcolor } def
-
-%%EndProlog
-%%BeginDefaults
-%%EndDefaults
-%%BeginSetup
-0.0 setlinewidth
-1 setlinecap
-Black
-%%EndSetup
-%%Page: 1 1
-%%BeginPageSetup
-%%EndPageSetup
-gsave White newpath
-153 160 moveto 451 160 lineto 451 673 lineto 153 673 lineto
-closepath fill stroke grestore
-% PCBMIN(-400,-400), PCBMAX(710400,410400)
-% PCBOFFSET(214900,223900), PCBSCALE(1.00000)
-% PCBSTARTDATA --- do not remove ---
-gsave
-0.00072 0.00072 scale
-214900 223900 translate
-1.000 1.000 scale
-410800 0 translate
-90 rotate
-0 410800 translate
-1 -1 scale
-400 400 translate
-/Color {0.302 0.302 0.302 mysetrgbcolor} def Color
-60100 50100 64900 54900 800 L
-60100 54900 64900 50100 800 L
-60900 50900 64100 50900 800 L
-60900 50900 60900 54100 800 L
-60900 54100 64100 54100 800 L
-64100 50900 64100 54100 800 L
-60100 95200 64900 100000 800 L
-60100 100000 64900 95200 800 L
-60900 96000 64100 96000 800 L
-60900 96000 60900 99200 800 L
-60900 99200 64100 99200 800 L
-64100 96000 64100 99200 800 L
-12600 -13650 17400 -8850 800 L
-12600 -8850 17400 -13650 800 L
-13400 -12850 16600 -12850 800 L
-13400 -12850 13400 -9650 800 L
-13400 -9650 16600 -9650 800 L
-16600 -12850 16600 -9650 800 L
-135000 -15000 135000 -14250 600 L
-135000 -14250 136500 -12750 600 L
-136500 -12750 138000 -14250 600 L
-138000 -15000 138000 -14250 600 L
-136500 -12750 136500 -9000 600 L
-139801 -12000 142051 -12000 600 L
-139801 -9000 142801 -9000 600 L
-139801 -15000 139801 -9000 600 L
-139801 -15000 142801 -15000 600 L
-147603 -15000 148353 -14250 600 L
-145353 -15000 147603 -15000 600 L
-144603 -14250 145353 -15000 600 L
-144603 -14250 144603 -12750 600 L
-144603 -12750 145353 -12000 600 L
-145353 -12000 147603 -12000 600 L
-147603 -12000 148353 -11250 600 L
-148353 -11250 148353 -9750 600 L
-147603 -9000 148353 -9750 600 L
-145353 -9000 147603 -9000 600 L
-144603 -9750 145353 -9000 600 L
-135000 -5749 150154 -5749 800 L
-98000 -14250 98750 -15000 600 L
-98750 -15000 101000 -15000 600 L
-101000 -15000 101750 -14250 600 L
-101750 -14250 101750 -12750 600 L
-98000 -9000 101750 -12750 600 L
-98000 -9000 101750 -9000 600 L
-98000 -5749 103551 -5749 800 L
-/Color {0.000 0.000 0.000 mysetrgbcolor} def Color
-45000 -9750 45750 -9000 600 L
-45000 -14250 45000 -9750 600 L
-45000 -14250 45750 -15000 600 L
-45750 -15000 47250 -15000 600 L
-47250 -15000 48000 -14250 600 L
-48000 -14250 48000 -9750 600 L
-47250 -9000 48000 -9750 600 L
-45750 -9000 47250 -9000 600 L
-45000 -10500 48000 -13500 600 L
-49801 -9000 50551 -9000 600 L
-53103 -9000 54603 -9000 600 L
-53853 -15000 53853 -9000 600 L
-52353 -13500 53853 -15000 600 L
-56404 -14250 57154 -15000 600 L
-57154 -15000 59404 -15000 600 L
-59404 -15000 60154 -14250 600 L
-60154 -14250 60154 -12750 600 L
-56404 -9000 60154 -12750 600 L
-56404 -9000 60154 -9000 600 L
-61956 -9750 62706 -9000 600 L
-61956 -11250 61956 -9750 600 L
-61956 -11250 62706 -12000 600 L
-62706 -12000 64206 -12000 600 L
-64206 -12000 64956 -11250 600 L
-64956 -11250 64956 -9750 600 L
-64206 -9000 64956 -9750 600 L
-62706 -9000 64206 -9000 600 L
-61956 -12750 62706 -12000 600 L
-61956 -14250 61956 -12750 600 L
-61956 -14250 62706 -15000 600 L
-62706 -15000 64206 -15000 600 L
-64206 -15000 64956 -14250 600 L
-64956 -14250 64956 -12750 600 L
-64206 -12000 64956 -12750 600 L
-45000 -5749 66757 -5749 800 L
-/Color {0.302 0.302 0.302 mysetrgbcolor} def Color
-77500 120800 77500 127200 800 L
-74300 124000 80700 124000 800 L
-75900 122400 79100 122400 800 L
-75900 122400 75900 125600 800 L
-75900 125600 79100 125600 800 L
-79100 122400 79100 125600 800 L
-77500 214800 77500 221200 800 L
-74300 218000 80700 218000 800 L
-75900 216400 79100 216400 800 L
-75900 216400 75900 219600 800 L
-75900 219600 79100 219600 800 L
-79100 216400 79100 219600 800 L
-352500 154300 352500 160700 800 L
-349300 157500 355700 157500 800 L
-350900 155900 354100 155900 800 L
-350900 155900 350900 159100 800 L
-350900 159100 354100 159100 800 L
-354100 155900 354100 159100 800 L
-132500 154300 132500 160700 800 L
-129300 157500 135700 157500 800 L
-130900 155900 134100 155900 800 L
-130900 155900 130900 159100 800 L
-130900 159100 134100 159100 800 L
-134100 155900 134100 159100 800 L
-15000 -29450 15000 -23050 800 L
-11800 -26250 18200 -26250 800 L
-13400 -27850 16600 -27850 800 L
-13400 -27850 13400 -24650 800 L
-13400 -24650 16600 -24650 800 L
-16600 -27850 16600 -24650 800 L
-135000 -30000 135000 -29250 600 L
-135000 -29250 136500 -27750 600 L
-136500 -27750 138000 -29250 600 L
-138000 -30000 138000 -29250 600 L
-136500 -27750 136500 -24000 600 L
-139801 -27000 142051 -27000 600 L
-139801 -24000 142801 -24000 600 L
-139801 -30000 139801 -24000 600 L
-139801 -30000 142801 -30000 600 L
-147603 -30000 148353 -29250 600 L
-145353 -30000 147603 -30000 600 L
-144603 -29250 145353 -30000 600 L
-144603 -29250 144603 -27750 600 L
-144603 -27750 145353 -27000 600 L
-145353 -27000 147603 -27000 600 L
-147603 -27000 148353 -26250 600 L
-148353 -26250 148353 -24750 600 L
-147603 -24000 148353 -24750 600 L
-145353 -24000 147603 -24000 600 L
-144603 -24750 145353 -24000 600 L
-135000 -20749 150154 -20749 800 L
-98000 -27000 101000 -30000 600 L
-98000 -27000 101750 -27000 600 L
-101000 -30000 101000 -24000 600 L
-98000 -20749 103551 -20749 800 L
-/Color {0.000 0.000 0.000 mysetrgbcolor} def Color
-45000 -24750 45750 -24000 600 L
-45000 -29250 45000 -24750 600 L
-45000 -29250 45750 -30000 600 L
-45750 -30000 47250 -30000 600 L
-47250 -30000 48000 -29250 600 L
-48000 -29250 48000 -24750 600 L
-47250 -24000 48000 -24750 600 L
-45750 -24000 47250 -24000 600 L
-45000 -25500 48000 -28500 600 L
-49801 -24000 50551 -24000 600 L
-53103 -24000 54603 -24000 600 L
-53853 -30000 53853 -24000 600 L
-52353 -28500 53853 -30000 600 L
-56404 -24750 57154 -24000 600 L
-56404 -29250 56404 -24750 600 L
-56404 -29250 57154 -30000 600 L
-57154 -30000 58654 -30000 600 L
-58654 -30000 59404 -29250 600 L
-59404 -29250 59404 -24750 600 L
-58654 -24000 59404 -24750 600 L
-57154 -24000 58654 -24000 600 L
-56404 -25500 59404 -28500 600 L
-61206 -24750 61956 -24000 600 L
-61206 -29250 61206 -24750 600 L
-61206 -29250 61956 -30000 600 L
-61956 -30000 63456 -30000 600 L
-63456 -30000 64206 -29250 600 L
-64206 -29250 64206 -24750 600 L
-63456 -24000 64206 -24750 600 L
-61956 -24000 63456 -24000 600 L
-61206 -25500 64206 -28500 600 L
-45000 -20749 66007 -20749 800 L
-/Color {0.302 0.302 0.302 mysetrgbcolor} def Color
-662500 377500 662500 380700 800 L
-662500 377500 665273 375900 800 L
-662500 377500 659727 375900 800 L
-662500 377500 1600 1600 800 0 180 A
-662500 377500 1600 1600 800 180 180 A
-662500 27500 662500 30700 800 L
-662500 27500 665273 25900 800 L
-662500 27500 659727 25900 800 L
-662500 27500 1600 1600 800 0 180 A
-662500 27500 1600 1600 800 180 180 A
-57500 27500 57500 30700 800 L
-57500 27500 60273 25900 800 L
-57500 27500 54727 25900 800 L
-57500 27500 1600 1600 800 0 180 A
-57500 27500 1600 1600 800 180 180 A
-57500 376200 57500 379400 800 L
-57500 376200 60273 374600 800 L
-57500 376200 54727 374600 800 L
-57500 376200 1600 1600 800 0 180 A
-57500 376200 1600 1600 800 180 180 A
-662500 27500 662500 30700 800 L
-662500 27500 665273 25900 800 L
-662500 27500 659727 25900 800 L
-662500 27500 1600 1600 800 0 180 A
-662500 27500 1600 1600 800 180 180 A
-662500 376200 662500 379400 800 L
-662500 376200 665273 374600 800 L
-662500 376200 659727 374600 800 L
-662500 376200 1600 1600 800 0 180 A
-662500 376200 1600 1600 800 180 180 A
-15000 -41250 15000 -38050 800 L
-15000 -41250 17773 -42850 800 L
-15000 -41250 12227 -42850 800 L
-15000 -41250 1600 1600 800 0 180 A
-15000 -41250 1600 1600 800 180 180 A
-135000 -45000 135000 -44250 600 L
-135000 -44250 136500 -42750 600 L
-136500 -42750 138000 -44250 600 L
-138000 -45000 138000 -44250 600 L
-136500 -42750 136500 -39000 600 L
-139801 -42000 142051 -42000 600 L
-139801 -39000 142801 -39000 600 L
-139801 -45000 139801 -39000 600 L
-139801 -45000 142801 -45000 600 L
-147603 -45000 148353 -44250 600 L
-145353 -45000 147603 -45000 600 L
-144603 -44250 145353 -45000 600 L
-144603 -44250 144603 -42750 600 L
-144603 -42750 145353 -42000 600 L
-145353 -42000 147603 -42000 600 L
-147603 -42000 148353 -41250 600 L
-148353 -41250 148353 -39750 600 L
-147603 -39000 148353 -39750 600 L
-145353 -39000 147603 -39000 600 L
-144603 -39750 145353 -39000 600 L
-135000 -35749 150154 -35749 800 L
-100250 -45000 101000 -44250 600 L
-98750 -45000 100250 -45000 600 L
-98000 -44250 98750 -45000 600 L
-98000 -44250 98000 -39750 600 L
-98000 -39750 98750 -39000 600 L
-100250 -42000 101000 -41250 600 L
-98000 -42000 100250 -42000 600 L
-98750 -39000 100250 -39000 600 L
-100250 -39000 101000 -39750 600 L
-101000 -41250 101000 -39750 600 L
-98000 -35749 102801 -35749 800 L
-/Color {0.000 0.000 0.000 mysetrgbcolor} def Color
-45000 -39750 45750 -39000 600 L
-45000 -44250 45000 -39750 600 L
-45000 -44250 45750 -45000 600 L
-45750 -45000 47250 -45000 600 L
-47250 -45000 48000 -44250 600 L
-48000 -44250 48000 -39750 600 L
-47250 -39000 48000 -39750 600 L
-45750 -39000 47250 -39000 600 L
-45000 -40500 48000 -43500 600 L
-49801 -39000 50551 -39000 600 L
-52353 -39750 53103 -39000 600 L
-52353 -44250 52353 -39750 600 L
-52353 -44250 53103 -45000 600 L
-53103 -45000 54603 -45000 600 L
-54603 -45000 55353 -44250 600 L
-55353 -44250 55353 -39750 600 L
-54603 -39000 55353 -39750 600 L
-53103 -39000 54603 -39000 600 L
-52353 -40500 55353 -43500 600 L
-57154 -39750 57904 -39000 600 L
-57154 -41250 57154 -39750 600 L
-57154 -41250 57904 -42000 600 L
-57904 -42000 59404 -42000 600 L
-59404 -42000 60154 -41250 600 L
-60154 -41250 60154 -39750 600 L
-59404 -39000 60154 -39750 600 L
-57904 -39000 59404 -39000 600 L
-57154 -42750 57904 -42000 600 L
-57154 -44250 57154 -42750 600 L
-57154 -44250 57904 -45000 600 L
-57904 -45000 59404 -45000 600 L
-59404 -45000 60154 -44250 600 L
-60154 -44250 60154 -42750 600 L
-59404 -42000 60154 -42750 600 L
-61956 -39750 62706 -39000 600 L
-61956 -44250 61956 -39750 600 L
-61956 -44250 62706 -45000 600 L
-62706 -45000 64206 -45000 600 L
-64206 -45000 64956 -44250 600 L
-64956 -44250 64956 -39750 600 L
-64206 -39000 64956 -39750 600 L
-62706 -39000 64206 -39000 600 L
-61956 -40500 64956 -43500 600 L
-45000 -35749 66757 -35749 800 L
-/Color {0.302 0.302 0.302 mysetrgbcolor} def Color
-72900 42900 76100 42900 800 L
-72900 42900 72900 46100 800 L
-72900 46100 76100 46100 800 L
-76100 42900 76100 46100 800 L
-72900 104000 76100 104000 800 L
-72900 104000 72900 107200 800 L
-72900 107200 76100 107200 800 L
-76100 104000 76100 107200 800 L
-571400 155900 574600 155900 800 L
-571400 155900 571400 159100 800 L
-571400 159100 574600 159100 800 L
-574600 155900 574600 159100 800 L
-13400 -57850 16600 -57850 800 L
-13400 -57850 13400 -54650 800 L
-13400 -54650 16600 -54650 800 L
-16600 -57850 16600 -54650 800 L
-135000 -60000 135000 -59250 600 L
-135000 -59250 136500 -57750 600 L
-136500 -57750 138000 -59250 600 L
-138000 -60000 138000 -59250 600 L
-136500 -57750 136500 -54000 600 L
-139801 -57000 142051 -57000 600 L
-139801 -54000 142801 -54000 600 L
-139801 -60000 139801 -54000 600 L
-139801 -60000 142801 -60000 600 L
-147603 -60000 148353 -59250 600 L
-145353 -60000 147603 -60000 600 L
-144603 -59250 145353 -60000 600 L
-144603 -59250 144603 -57750 600 L
-144603 -57750 145353 -57000 600 L
-145353 -57000 147603 -57000 600 L
-147603 -57000 148353 -56250 600 L
-148353 -56250 148353 -54750 600 L
-147603 -54000 148353 -54750 600 L
-145353 -54000 147603 -54000 600 L
-144603 -54750 145353 -54000 600 L
-135000 -50749 150154 -50749 800 L
-98000 -59250 98750 -60000 600 L
-98750 -60000 100250 -60000 600 L
-100250 -60000 101000 -59250 600 L
-101000 -59250 101000 -54750 600 L
-100250 -54000 101000 -54750 600 L
-98750 -54000 100250 -54000 600 L
-98000 -54750 98750 -54000 600 L
-98750 -57000 101000 -57000 600 L
-98000 -50749 102801 -50749 800 L
-/Color {0.000 0.000 0.000 mysetrgbcolor} def Color
-45000 -54750 45750 -54000 600 L
-45000 -59250 45000 -54750 600 L
-45000 -59250 45750 -60000 600 L
-45750 -60000 47250 -60000 600 L
-47250 -60000 48000 -59250 600 L
-48000 -59250 48000 -54750 600 L
-47250 -54000 48000 -54750 600 L
-45750 -54000 47250 -54000 600 L
-45000 -55500 48000 -58500 600 L
-49801 -54000 50551 -54000 600 L
-52353 -54750 53103 -54000 600 L
-52353 -59250 52353 -54750 600 L
-52353 -59250 53103 -60000 600 L
-53103 -60000 54603 -60000 600 L
-54603 -60000 55353 -59250 600 L
-55353 -59250 55353 -54750 600 L
-54603 -54000 55353 -54750 600 L
-53103 -54000 54603 -54000 600 L
-52353 -55500 55353 -58500 600 L
-59404 -60000 60154 -59250 600 L
-57904 -60000 59404 -60000 600 L
-57154 -59250 57904 -60000 600 L
-57154 -59250 57154 -54750 600 L
-57154 -54750 57904 -54000 600 L
-59404 -57000 60154 -56250 600 L
-57154 -57000 59404 -57000 600 L
-57904 -54000 59404 -54000 600 L
-59404 -54000 60154 -54750 600 L
-60154 -56250 60154 -54750 600 L
-61956 -54750 62706 -54000 600 L
-61956 -59250 61956 -54750 600 L
-61956 -59250 62706 -60000 600 L
-62706 -60000 64206 -60000 600 L
-64206 -60000 64956 -59250 600 L
-64956 -59250 64956 -54750 600 L
-64206 -54000 64956 -54750 600 L
-62706 -54000 64206 -54000 600 L
-61956 -55500 64956 -58500 600 L
-45000 -50749 66757 -50749 800 L
-/Color {0.302 0.302 0.302 mysetrgbcolor} def Color
-64800 264600 800 800 800 0 180 A
-64800 264600 800 800 800 180 180 A
-64800 292200 800 800 800 0 180 A
-64800 292200 800 800 800 180 180 A
-15000 -71250 800 800 800 0 180 A
-15000 -71250 800 800 800 180 180 A
-135000 -75000 135000 -74250 600 L
-135000 -74250 136500 -72750 600 L
-136500 -72750 138000 -74250 600 L
-138000 -75000 138000 -74250 600 L
-136500 -72750 136500 -69000 600 L
-139801 -72000 142051 -72000 600 L
-139801 -69000 142801 -69000 600 L
-139801 -75000 139801 -69000 600 L
-139801 -75000 142801 -75000 600 L
-147603 -75000 148353 -74250 600 L
-145353 -75000 147603 -75000 600 L
-144603 -74250 145353 -75000 600 L
-144603 -74250 144603 -72750 600 L
-144603 -72750 145353 -72000 600 L
-145353 -72000 147603 -72000 600 L
-147603 -72000 148353 -71250 600 L
-148353 -71250 148353 -69750 600 L
-147603 -69000 148353 -69750 600 L
-145353 -69000 147603 -69000 600 L
-144603 -69750 145353 -69000 600 L
-135000 -65749 150154 -65749 800 L
-98000 -74250 98750 -75000 600 L
-98750 -75000 101000 -75000 600 L
-101000 -75000 101750 -74250 600 L
-101750 -74250 101750 -72750 600 L
-98000 -69000 101750 -72750 600 L
-98000 -69000 101750 -69000 600 L
-98000 -65749 103551 -65749 800 L
-/Color {0.000 0.000 0.000 mysetrgbcolor} def Color
-45000 -69750 45750 -69000 600 L
-45000 -74250 45000 -69750 600 L
-45000 -74250 45750 -75000 600 L
-45750 -75000 47250 -75000 600 L
-47250 -75000 48000 -74250 600 L
-48000 -74250 48000 -69750 600 L
-47250 -69000 48000 -69750 600 L
-45750 -69000 47250 -69000 600 L
-45000 -70500 48000 -73500 600 L
-49801 -69000 50551 -69000 600 L
-52353 -69750 53103 -69000 600 L
-52353 -74250 52353 -69750 600 L
-52353 -74250 53103 -75000 600 L
-53103 -75000 54603 -75000 600 L
-54603 -75000 55353 -74250 600 L
-55353 -74250 55353 -69750 600 L
-54603 -69000 55353 -69750 600 L
-53103 -69000 54603 -69000 600 L
-52353 -70500 55353 -73500 600 L
-57154 -75000 60154 -75000 600 L
-57154 -75000 57154 -72000 600 L
-57154 -72000 57904 -72750 600 L
-57904 -72750 59404 -72750 600 L
-59404 -72750 60154 -72000 600 L
-60154 -72000 60154 -69750 600 L
-59404 -69000 60154 -69750 600 L
-57904 -69000 59404 -69000 600 L
-57154 -69750 57904 -69000 600 L
-61956 -74250 62706 -75000 600 L
-62706 -75000 64956 -75000 600 L
-64956 -75000 65706 -74250 600 L
-65706 -74250 65706 -72750 600 L
-61956 -69000 65706 -72750 600 L
-61956 -69000 65706 -69000 600 L
-45000 -65749 67507 -65749 800 L
-/Color {0.302 0.302 0.302 mysetrgbcolor} def Color
-413800 358800 416200 361200 800 L
-413800 361200 416200 358800 800 L
-403800 358800 406200 361200 800 L
-403800 361200 406200 358800 800 L
-393800 358800 396200 361200 800 L
-393800 361200 396200 358800 800 L
-528800 243800 531200 246200 800 L
-528800 246200 531200 243800 800 L
-538800 243800 541200 246200 800 L
-538800 246200 541200 243800 800 L
-548800 243800 551200 246200 800 L
-548800 246200 551200 243800 800 L
-418800 203800 421200 206200 800 L
-418800 206200 421200 203800 800 L
-428800 203800 431200 206200 800 L
-428800 206200 431200 203800 800 L
-418800 213800 421200 216200 800 L
-418800 216200 421200 213800 800 L
-428800 213800 431200 216200 800 L
-428800 216200 431200 213800 800 L
-418800 223800 421200 226200 800 L
-418800 226200 421200 223800 800 L
-428800 223800 431200 226200 800 L
-428800 226200 431200 223800 800 L
-418800 233800 421200 236200 800 L
-418800 236200 421200 233800 800 L
-428800 233800 431200 236200 800 L
-428800 236200 431200 233800 800 L
-81300 149800 83700 152200 800 L
-81300 152200 83700 149800 800 L
-71300 154800 73700 157200 800 L
-71300 157200 73700 154800 800 L
-81300 159800 83700 162200 800 L
-81300 162200 83700 159800 800 L
-71300 164800 73700 167200 800 L
-71300 167200 73700 164800 800 L
-81300 169800 83700 172200 800 L
-81300 172200 83700 169800 800 L
-71300 174800 73700 177200 800 L
-71300 177200 73700 174800 800 L
-81300 179800 83700 182200 800 L
-81300 182200 83700 179800 800 L
-71300 184800 73700 187200 800 L
-71300 187200 73700 184800 800 L
-81300 189800 83700 192200 800 L
-81300 192200 83700 189800 800 L
-493800 218800 496200 221200 800 L
-493800 221200 496200 218800 800 L
-468800 218800 471200 221200 800 L
-468800 221200 471200 218800 800 L
-581300 243800 583700 246200 800 L
-581300 246200 583700 243800 800 L
-591300 243800 593700 246200 800 L
-591300 246200 593700 243800 800 L
-601300 243800 603700 246200 800 L
-601300 246200 603700 243800 800 L
-103800 328800 106200 331200 800 L
-103800 331200 106200 328800 800 L
-113800 328800 116200 331200 800 L
-113800 331200 116200 328800 800 L
-493800 276300 496200 278700 800 L
-493800 278700 496200 276300 800 L
-468800 276300 471200 278700 800 L
-468800 278700 471200 276300 800 L
-568800 358800 571200 361200 800 L
-568800 361200 571200 358800 800 L
-558800 358800 561200 361200 800 L
-558800 361200 561200 358800 800 L
-548800 358800 551200 361200 800 L
-548800 361200 551200 358800 800 L
-528800 291300 531200 293700 800 L
-528800 293700 531200 291300 800 L
-538800 291300 541200 293700 800 L
-538800 293700 541200 291300 800 L
-548800 291300 551200 293700 800 L
-548800 293700 551200 291300 800 L
-53800 268300 56200 270700 800 L
-53800 270700 56200 268300 800 L
-53800 286000 56200 288400 800 L
-53800 288400 56200 286000 800 L
-581300 291300 583700 293700 800 L
-581300 293700 583700 291300 800 L
-591300 291300 593700 293700 800 L
-591300 293700 593700 291300 800 L
-601300 291300 603700 293700 800 L
-601300 293700 603700 291300 800 L
-581300 208800 583700 211200 800 L
-581300 211200 583700 208800 800 L
-591300 208800 593700 211200 800 L
-591300 211200 593700 208800 800 L
-601300 208800 603700 211200 800 L
-601300 211200 603700 208800 800 L
-13800 -87450 16200 -85050 800 L
-13800 -85050 16200 -87450 800 L
-135000 -90000 135000 -89250 600 L
-135000 -89250 136500 -87750 600 L
-136500 -87750 138000 -89250 600 L
-138000 -90000 138000 -89250 600 L
-136500 -87750 136500 -84000 600 L
-139801 -87000 142051 -87000 600 L
-139801 -84000 142801 -84000 600 L
-139801 -90000 139801 -84000 600 L
-139801 -90000 142801 -90000 600 L
-147603 -90000 148353 -89250 600 L
-145353 -90000 147603 -90000 600 L
-144603 -89250 145353 -90000 600 L
-144603 -89250 144603 -87750 600 L
-144603 -87750 145353 -87000 600 L
-145353 -87000 147603 -87000 600 L
-147603 -87000 148353 -86250 600 L
-148353 -86250 148353 -84750 600 L
-147603 -84000 148353 -84750 600 L
-145353 -84000 147603 -84000 600 L
-144603 -84750 145353 -84000 600 L
-135000 -80749 150154 -80749 800 L
-98000 -87000 101000 -90000 600 L
-98000 -87000 101750 -87000 600 L
-101000 -90000 101000 -84000 600 L
-105801 -90000 106551 -89250 600 L
-104301 -90000 105801 -90000 600 L
-103551 -89250 104301 -90000 600 L
-103551 -89250 103551 -84750 600 L
-103551 -84750 104301 -84000 600 L
-105801 -87000 106551 -86250 600 L
-103551 -87000 105801 -87000 600 L
-104301 -84000 105801 -84000 600 L
-105801 -84000 106551 -84750 600 L
-106551 -86250 106551 -84750 600 L
-98000 -80749 108353 -80749 800 L
-/Color {0.000 0.000 0.000 mysetrgbcolor} def Color
-45000 -84750 45750 -84000 600 L
-45000 -89250 45000 -84750 600 L
-45000 -89250 45750 -90000 600 L
-45750 -90000 47250 -90000 600 L
-47250 -90000 48000 -89250 600 L
-48000 -89250 48000 -84750 600 L
-47250 -84000 48000 -84750 600 L
-45750 -84000 47250 -84000 600 L
-45000 -85500 48000 -88500 600 L
-49801 -84000 50551 -84000 600 L
-52353 -84750 53103 -84000 600 L
-52353 -89250 52353 -84750 600 L
-52353 -89250 53103 -90000 600 L
-53103 -90000 54603 -90000 600 L
-54603 -90000 55353 -89250 600 L
-55353 -89250 55353 -84750 600 L
-54603 -84000 55353 -84750 600 L
-53103 -84000 54603 -84000 600 L
-52353 -85500 55353 -88500 600 L
-57154 -87000 60154 -90000 600 L
-57154 -87000 60904 -87000 600 L
-60154 -90000 60154 -84000 600 L
-62706 -89250 63456 -90000 600 L
-63456 -90000 65706 -90000 600 L
-65706 -90000 66456 -89250 600 L
-66456 -89250 66456 -87750 600 L
-62706 -84000 66456 -87750 600 L
-62706 -84000 66456 -84000 600 L
-45000 -80749 68257 -80749 800 L
-/Color {0.302 0.302 0.302 mysetrgbcolor} def Color
-335000 60900 335000 64100 800 L
-333400 62500 336600 62500 800 L
-335000 20900 335000 24100 800 L
-333400 22500 336600 22500 800 L
-297500 340900 297500 344100 800 L
-295900 342500 299100 342500 800 L
-297500 370900 297500 374100 800 L
-295900 372500 299100 372500 800 L
-447500 120900 447500 124100 800 L
-445900 122500 449100 122500 800 L
-447500 80900 447500 84100 800 L
-445900 82500 449100 82500 800 L
-397500 115900 397500 119100 800 L
-395900 117500 399100 117500 800 L
-407500 115900 407500 119100 800 L
-405900 117500 409100 117500 800 L
-417500 115900 417500 119100 800 L
-415900 117500 419100 117500 800 L
-427500 115900 427500 119100 800 L
-425900 117500 429100 117500 800 L
-427500 85900 427500 89100 800 L
-425900 87500 429100 87500 800 L
-417500 85900 417500 89100 800 L
-415900 87500 419100 87500 800 L
-407500 85900 407500 89100 800 L
-405900 87500 409100 87500 800 L
-397500 85900 397500 89100 800 L
-395900 87500 399100 87500 800 L
-557500 120900 557500 124100 800 L
-555900 122500 559100 122500 800 L
-557500 80900 557500 84100 800 L
-555900 82500 559100 82500 800 L
-537500 60900 537500 64100 800 L
-535900 62500 539100 62500 800 L
-537500 20900 537500 24100 800 L
-535900 22500 539100 22500 800 L
-487500 55900 487500 59100 800 L
-485900 57500 489100 57500 800 L
-497500 55900 497500 59100 800 L
-495900 57500 499100 57500 800 L
-507500 55900 507500 59100 800 L
-505900 57500 509100 57500 800 L
-517500 55900 517500 59100 800 L
-515900 57500 519100 57500 800 L
-517500 25900 517500 29100 800 L
-515900 27500 519100 27500 800 L
-507500 25900 507500 29100 800 L
-505900 27500 509100 27500 800 L
-497500 25900 497500 29100 800 L
-495900 27500 499100 27500 800 L
-487500 25900 487500 29100 800 L
-485900 27500 489100 27500 800 L
-467500 60900 467500 64100 800 L
-465900 62500 469100 62500 800 L
-467500 20900 467500 24100 800 L
-465900 22500 469100 22500 800 L
-467500 120900 467500 124100 800 L
-465900 122500 469100 122500 800 L
-467500 80900 467500 84100 800 L
-465900 82500 469100 82500 800 L
-537500 120900 537500 124100 800 L
-535900 122500 539100 122500 800 L
-537500 80900 537500 84100 800 L
-535900 82500 539100 82500 800 L
-487500 115900 487500 119100 800 L
-485900 117500 489100 117500 800 L
-497500 115900 497500 119100 800 L
-495900 117500 499100 117500 800 L
-507500 115900 507500 119100 800 L
-505900 117500 509100 117500 800 L
-517500 115900 517500 119100 800 L
-515900 117500 519100 117500 800 L
-517500 85900 517500 89100 800 L
-515900 87500 519100 87500 800 L
-507500 85900 507500 89100 800 L
-505900 87500 509100 87500 800 L
-497500 85900 497500 89100 800 L
-495900 87500 499100 87500 800 L
-487500 85900 487500 89100 800 L
-485900 87500 489100 87500 800 L
-397500 55900 397500 59100 800 L
-395900 57500 399100 57500 800 L
-407500 55900 407500 59100 800 L
-405900 57500 409100 57500 800 L
-417500 55900 417500 59100 800 L
-415900 57500 419100 57500 800 L
-427500 55900 427500 59100 800 L
-425900 57500 429100 57500 800 L
-427500 25900 427500 29100 800 L
-425900 27500 429100 27500 800 L
-417500 25900 417500 29100 800 L
-415900 27500 419100 27500 800 L
-407500 25900 407500 29100 800 L
-405900 27500 409100 27500 800 L
-397500 25900 397500 29100 800 L
-395900 27500 399100 27500 800 L
-557500 60900 557500 64100 800 L
-555900 62500 559100 62500 800 L
-557500 20900 557500 24100 800 L
-555900 22500 559100 22500 800 L
-157500 340900 157500 344100 800 L
-155900 342500 159100 342500 800 L
-157500 370900 157500 374100 800 L
-155900 372500 159100 372500 800 L
-57500 237900 57500 241100 800 L
-55900 239500 59100 239500 800 L
-57500 247900 57500 251100 800 L
-55900 249500 59100 249500 800 L
-245000 55900 245000 59100 800 L
-243400 57500 246600 57500 800 L
-255000 55900 255000 59100 800 L
-253400 57500 256600 57500 800 L
-265000 55900 265000 59100 800 L
-263400 57500 266600 57500 800 L
-275000 55900 275000 59100 800 L
-273400 57500 276600 57500 800 L
-285000 55900 285000 59100 800 L
-283400 57500 286600 57500 800 L
-295000 55900 295000 59100 800 L
-293400 57500 296600 57500 800 L
-305000 55900 305000 59100 800 L
-303400 57500 306600 57500 800 L
-315000 55900 315000 59100 800 L
-313400 57500 316600 57500 800 L
-315000 25900 315000 29100 800 L
-313400 27500 316600 27500 800 L
-305000 25900 305000 29100 800 L
-303400 27500 306600 27500 800 L
-295000 25900 295000 29100 800 L
-293400 27500 296600 27500 800 L
-285000 25900 285000 29100 800 L
-283400 27500 286600 27500 800 L
-275000 25900 275000 29100 800 L
-273400 27500 276600 27500 800 L
-265000 25900 265000 29100 800 L
-263400 27500 266600 27500 800 L
-255000 25900 255000 29100 800 L
-253400 27500 256600 27500 800 L
-245000 25900 245000 29100 800 L
-243400 27500 246600 27500 800 L
-317500 370900 317500 374100 800 L
-315900 372500 319100 372500 800 L
-327500 370900 327500 374100 800 L
-325900 372500 329100 372500 800 L
-140000 263400 140000 266600 800 L
-138400 265000 141600 265000 800 L
-150000 263400 150000 266600 800 L
-148400 265000 151600 265000 800 L
-160000 263400 160000 266600 800 L
-158400 265000 161600 265000 800 L
-170000 263400 170000 266600 800 L
-168400 265000 171600 265000 800 L
-180000 263400 180000 266600 800 L
-178400 265000 181600 265000 800 L
-190000 263400 190000 266600 800 L
-188400 265000 191600 265000 800 L
-200000 263400 200000 266600 800 L
-198400 265000 201600 265000 800 L
-210000 263400 210000 266600 800 L
-208400 265000 211600 265000 800 L
-220000 263400 220000 266600 800 L
-218400 265000 221600 265000 800 L
-230000 263400 230000 266600 800 L
-228400 265000 231600 265000 800 L
-240000 263400 240000 266600 800 L
-238400 265000 241600 265000 800 L
-250000 263400 250000 266600 800 L
-248400 265000 251600 265000 800 L
-250000 203400 250000 206600 800 L
-248400 205000 251600 205000 800 L
-240000 203400 240000 206600 800 L
-238400 205000 241600 205000 800 L
-230000 203400 230000 206600 800 L
-228400 205000 231600 205000 800 L
-220000 203400 220000 206600 800 L
-218400 205000 221600 205000 800 L
-210000 203400 210000 206600 800 L
-208400 205000 211600 205000 800 L
-200000 203400 200000 206600 800 L
-198400 205000 201600 205000 800 L
-190000 203400 190000 206600 800 L
-188400 205000 191600 205000 800 L
-180000 203400 180000 206600 800 L
-178400 205000 181600 205000 800 L
-170000 203400 170000 206600 800 L
-168400 205000 171600 205000 800 L
-160000 203400 160000 206600 800 L
-158400 205000 161600 205000 800 L
-150000 203400 150000 206600 800 L
-148400 205000 151600 205000 800 L
-140000 203400 140000 206600 800 L
-138400 205000 141600 205000 800 L
-280000 233400 280000 236600 800 L
-278400 235000 281600 235000 800 L
-290000 233400 290000 236600 800 L
-288400 235000 291600 235000 800 L
-300000 233400 300000 236600 800 L
-298400 235000 301600 235000 800 L
-310000 233400 310000 236600 800 L
-308400 235000 311600 235000 800 L
-320000 233400 320000 236600 800 L
-318400 235000 321600 235000 800 L
-330000 233400 330000 236600 800 L
-328400 235000 331600 235000 800 L
-340000 233400 340000 236600 800 L
-338400 235000 341600 235000 800 L
-350000 233400 350000 236600 800 L
-348400 235000 351600 235000 800 L
-360000 233400 360000 236600 800 L
-358400 235000 361600 235000 800 L
-370000 233400 370000 236600 800 L
-368400 235000 371600 235000 800 L
-380000 233400 380000 236600 800 L
-378400 235000 381600 235000 800 L
-390000 233400 390000 236600 800 L
-388400 235000 391600 235000 800 L
-390000 203400 390000 206600 800 L
-388400 205000 391600 205000 800 L
-380000 203400 380000 206600 800 L
-378400 205000 381600 205000 800 L
-370000 203400 370000 206600 800 L
-368400 205000 371600 205000 800 L
-360000 203400 360000 206600 800 L
-358400 205000 361600 205000 800 L
-350000 203400 350000 206600 800 L
-348400 205000 351600 205000 800 L
-340000 203400 340000 206600 800 L
-338400 205000 341600 205000 800 L
-330000 203400 330000 206600 800 L
-328400 205000 331600 205000 800 L
-320000 203400 320000 206600 800 L
-318400 205000 321600 205000 800 L
-310000 203400 310000 206600 800 L
-308400 205000 311600 205000 800 L
-300000 203400 300000 206600 800 L
-298400 205000 301600 205000 800 L
-290000 203400 290000 206600 800 L
-288400 205000 291600 205000 800 L
-280000 203400 280000 206600 800 L
-278400 205000 281600 205000 800 L
-81500 237900 81500 241100 800 L
-79900 239500 83100 239500 800 L
-81500 247900 81500 251100 800 L
-79900 249500 83100 249500 800 L
-85000 328400 85000 331600 800 L
-83400 330000 86600 330000 800 L
-85000 358400 85000 361600 800 L
-83400 360000 86600 360000 800 L
-535000 208400 535000 211600 800 L
-533400 210000 536600 210000 800 L
-545000 208400 545000 211600 800 L
-543400 210000 546600 210000 800 L
-355000 60900 355000 64100 800 L
-353400 62500 356600 62500 800 L
-355000 20900 355000 24100 800 L
-353400 22500 356600 22500 800 L
-172500 318400 172500 321600 800 L
-170900 320000 174100 320000 800 L
-182500 318400 182500 321600 800 L
-180900 320000 184100 320000 800 L
-192500 318400 192500 321600 800 L
-190900 320000 194100 320000 800 L
-202500 318400 202500 321600 800 L
-200900 320000 204100 320000 800 L
-202500 288400 202500 291600 800 L
-200900 290000 204100 290000 800 L
-192500 288400 192500 291600 800 L
-190900 290000 194100 290000 800 L
-182500 288400 182500 291600 800 L
-180900 290000 184100 290000 800 L
-172500 288400 172500 291600 800 L
-170900 290000 174100 290000 800 L
-280000 255900 280000 259100 800 L
-278400 257500 281600 257500 800 L
-280000 295900 280000 299100 800 L
-278400 297500 281600 297500 800 L
-116000 278400 116000 281600 800 L
-114400 280000 117600 280000 800 L
-76000 278400 76000 281600 800 L
-74400 280000 77600 280000 800 L
-490000 368400 490000 371600 800 L
-488400 370000 491600 370000 800 L
-475000 368400 475000 371600 800 L
-473400 370000 476600 370000 800 L
-652500 45900 652500 49100 800 L
-650900 47500 654100 47500 800 L
-652500 55900 652500 59100 800 L
-650900 57500 654100 57500 800 L
-652500 65900 652500 69100 800 L
-650900 67500 654100 67500 800 L
-652500 75900 652500 79100 800 L
-650900 77500 654100 77500 800 L
-652500 85900 652500 89100 800 L
-650900 87500 654100 87500 800 L
-652500 95900 652500 99100 800 L
-650900 97500 654100 97500 800 L
-652500 105900 652500 109100 800 L
-650900 107500 654100 107500 800 L
-652500 115900 652500 119100 800 L
-650900 117500 654100 117500 800 L
-652500 125900 652500 129100 800 L
-650900 127500 654100 127500 800 L
-652500 135900 652500 139100 800 L
-650900 137500 654100 137500 800 L
-652500 145900 652500 149100 800 L
-650900 147500 654100 147500 800 L
-652500 155900 652500 159100 800 L
-650900 157500 654100 157500 800 L
-652500 165900 652500 169100 800 L
-650900 167500 654100 167500 800 L
-652500 175900 652500 179100 800 L
-650900 177500 654100 177500 800 L
-652500 185900 652500 189100 800 L
-650900 187500 654100 187500 800 L
-652500 195900 652500 199100 800 L
-650900 197500 654100 197500 800 L
-652500 205900 652500 209100 800 L
-650900 207500 654100 207500 800 L
-652500 215900 652500 219100 800 L
-650900 217500 654100 217500 800 L
-652500 225900 652500 229100 800 L
-650900 227500 654100 227500 800 L
-652500 235900 652500 239100 800 L
-650900 237500 654100 237500 800 L
-652500 245900 652500 249100 800 L
-650900 247500 654100 247500 800 L
-652500 255900 652500 259100 800 L
-650900 257500 654100 257500 800 L
-652500 265900 652500 269100 800 L
-650900 267500 654100 267500 800 L
-652500 275900 652500 279100 800 L
-650900 277500 654100 277500 800 L
-652500 285900 652500 289100 800 L
-650900 287500 654100 287500 800 L
-652500 295900 652500 299100 800 L
-650900 297500 654100 297500 800 L
-652500 305900 652500 309100 800 L
-650900 307500 654100 307500 800 L
-652500 315900 652500 319100 800 L
-650900 317500 654100 317500 800 L
-652500 325900 652500 329100 800 L
-650900 327500 654100 327500 800 L
-652500 335900 652500 339100 800 L
-650900 337500 654100 337500 800 L
-652500 345900 652500 349100 800 L
-650900 347500 654100 347500 800 L
-652500 355900 652500 359100 800 L
-650900 357500 654100 357500 800 L
-642500 45900 642500 49100 800 L
-640900 47500 644100 47500 800 L
-642500 55900 642500 59100 800 L
-640900 57500 644100 57500 800 L
-642500 65900 642500 69100 800 L
-640900 67500 644100 67500 800 L
-642500 75900 642500 79100 800 L
-640900 77500 644100 77500 800 L
-642500 85900 642500 89100 800 L
-640900 87500 644100 87500 800 L
-642500 95900 642500 99100 800 L
-640900 97500 644100 97500 800 L
-642500 105900 642500 109100 800 L
-640900 107500 644100 107500 800 L
-642500 115900 642500 119100 800 L
-640900 117500 644100 117500 800 L
-642500 125900 642500 129100 800 L
-640900 127500 644100 127500 800 L
-642500 135900 642500 139100 800 L
-640900 137500 644100 137500 800 L
-642500 145900 642500 149100 800 L
-640900 147500 644100 147500 800 L
-642500 155900 642500 159100 800 L
-640900 157500 644100 157500 800 L
-642500 165900 642500 169100 800 L
-640900 167500 644100 167500 800 L
-642500 175900 642500 179100 800 L
-640900 177500 644100 177500 800 L
-642500 185900 642500 189100 800 L
-640900 187500 644100 187500 800 L
-642500 195900 642500 199100 800 L
-640900 197500 644100 197500 800 L
-642500 205900 642500 209100 800 L
-640900 207500 644100 207500 800 L
-642500 215900 642500 219100 800 L
-640900 217500 644100 217500 800 L
-642500 225900 642500 229100 800 L
-640900 227500 644100 227500 800 L
-642500 235900 642500 239100 800 L
-640900 237500 644100 237500 800 L
-642500 245900 642500 249100 800 L
-640900 247500 644100 247500 800 L
-642500 255900 642500 259100 800 L
-640900 257500 644100 257500 800 L
-642500 265900 642500 269100 800 L
-640900 267500 644100 267500 800 L
-642500 275900 642500 279100 800 L
-640900 277500 644100 277500 800 L
-642500 285900 642500 289100 800 L
-640900 287500 644100 287500 800 L
-642500 295900 642500 299100 800 L
-640900 297500 644100 297500 800 L
-642500 305900 642500 309100 800 L
-640900 307500 644100 307500 800 L
-642500 315900 642500 319100 800 L
-640900 317500 644100 317500 800 L
-642500 325900 642500 329100 800 L
-640900 327500 644100 327500 800 L
-642500 335900 642500 339100 800 L
-640900 337500 644100 337500 800 L
-642500 345900 642500 349100 800 L
-640900 347500 644100 347500 800 L
-642500 355900 642500 359100 800 L
-640900 357500 644100 357500 800 L
-632500 45900 632500 49100 800 L
-630900 47500 634100 47500 800 L
-632500 55900 632500 59100 800 L
-630900 57500 634100 57500 800 L
-632500 65900 632500 69100 800 L
-630900 67500 634100 67500 800 L
-632500 75900 632500 79100 800 L
-630900 77500 634100 77500 800 L
-632500 85900 632500 89100 800 L
-630900 87500 634100 87500 800 L
-632500 95900 632500 99100 800 L
-630900 97500 634100 97500 800 L
-632500 105900 632500 109100 800 L
-630900 107500 634100 107500 800 L
-632500 115900 632500 119100 800 L
-630900 117500 634100 117500 800 L
-632500 125900 632500 129100 800 L
-630900 127500 634100 127500 800 L
-632500 135900 632500 139100 800 L
-630900 137500 634100 137500 800 L
-632500 145900 632500 149100 800 L
-630900 147500 634100 147500 800 L
-632500 155900 632500 159100 800 L
-630900 157500 634100 157500 800 L
-632500 165900 632500 169100 800 L
-630900 167500 634100 167500 800 L
-632500 175900 632500 179100 800 L
-630900 177500 634100 177500 800 L
-632500 185900 632500 189100 800 L
-630900 187500 634100 187500 800 L
-632500 195900 632500 199100 800 L
-630900 197500 634100 197500 800 L
-632500 205900 632500 209100 800 L
-630900 207500 634100 207500 800 L
-632500 215900 632500 219100 800 L
-630900 217500 634100 217500 800 L
-632500 225900 632500 229100 800 L
-630900 227500 634100 227500 800 L
-632500 235900 632500 239100 800 L
-630900 237500 634100 237500 800 L
-632500 245900 632500 249100 800 L
-630900 247500 634100 247500 800 L
-632500 255900 632500 259100 800 L
-630900 257500 634100 257500 800 L
-632500 265900 632500 269100 800 L
-630900 267500 634100 267500 800 L
-632500 275900 632500 279100 800 L
-630900 277500 634100 277500 800 L
-632500 285900 632500 289100 800 L
-630900 287500 634100 287500 800 L
-632500 295900 632500 299100 800 L
-630900 297500 634100 297500 800 L
-632500 305900 632500 309100 800 L
-630900 307500 634100 307500 800 L
-632500 315900 632500 319100 800 L
-630900 317500 634100 317500 800 L
-632500 325900 632500 329100 800 L
-630900 327500 634100 327500 800 L
-632500 335900 632500 339100 800 L
-630900 337500 634100 337500 800 L
-632500 345900 632500 349100 800 L
-630900 347500 634100 347500 800 L
-632500 355900 632500 359100 800 L
-630900 357500 634100 357500 800 L
-332500 258400 332500 261600 800 L
-330900 260000 334100 260000 800 L
-322500 258400 322500 261600 800 L
-320900 260000 324100 260000 800 L
-447500 60900 447500 64100 800 L
-445900 62500 449100 62500 800 L
-447500 20900 447500 24100 800 L
-445900 22500 449100 22500 800 L
-300000 295900 300000 299100 800 L
-298400 297500 301600 297500 800 L
-300000 255900 300000 259100 800 L
-298400 257500 301600 257500 800 L
-475000 328400 475000 331600 800 L
-473400 330000 476600 330000 800 L
-490000 328400 490000 331600 800 L
-488400 330000 491600 330000 800 L
-562500 185900 562500 189100 800 L
-560900 187500 564100 187500 800 L
-592500 185900 592500 189100 800 L
-590900 187500 594100 187500 800 L
-577500 115900 577500 119100 800 L
-575900 117500 579100 117500 800 L
-587500 115900 587500 119100 800 L
-585900 117500 589100 117500 800 L
-597500 115900 597500 119100 800 L
-595900 117500 599100 117500 800 L
-607500 115900 607500 119100 800 L
-605900 117500 609100 117500 800 L
-607500 85900 607500 89100 800 L
-605900 87500 609100 87500 800 L
-597500 85900 597500 89100 800 L
-595900 87500 599100 87500 800 L
-587500 85900 587500 89100 800 L
-585900 87500 589100 87500 800 L
-577500 85900 577500 89100 800 L
-575900 87500 579100 87500 800 L
-577500 55900 577500 59100 800 L
-575900 57500 579100 57500 800 L
-587500 55900 587500 59100 800 L
-585900 57500 589100 57500 800 L
-597500 55900 597500 59100 800 L
-595900 57500 599100 57500 800 L
-607500 55900 607500 59100 800 L
-605900 57500 609100 57500 800 L
-607500 25900 607500 29100 800 L
-605900 27500 609100 27500 800 L
-597500 25900 597500 29100 800 L
-595900 27500 599100 27500 800 L
-587500 25900 587500 29100 800 L
-585900 27500 589100 27500 800 L
-577500 25900 577500 29100 800 L
-575900 27500 579100 27500 800 L
-322500 288400 322500 291600 800 L
-320900 290000 324100 290000 800 L
-332500 288400 332500 291600 800 L
-330900 290000 334100 290000 800 L
-87500 55900 87500 59100 800 L
-85900 57500 89100 57500 800 L
-97500 60900 97500 64100 800 L
-95900 62500 99100 62500 800 L
-87500 65900 87500 69100 800 L
-85900 67500 89100 67500 800 L
-97500 70900 97500 74100 800 L
-95900 72500 99100 72500 800 L
-87500 75900 87500 79100 800 L
-85900 77500 89100 77500 800 L
-97500 80900 97500 84100 800 L
-95900 82500 99100 82500 800 L
-87500 85900 87500 89100 800 L
-85900 87500 89100 87500 800 L
-97500 90900 97500 94100 800 L
-95900 92500 99100 92500 800 L
-360000 288400 360000 291600 800 L
-358400 290000 361600 290000 800 L
-370000 288400 370000 291600 800 L
-368400 290000 371600 290000 800 L
-380000 288400 380000 291600 800 L
-378400 290000 381600 290000 800 L
-390000 288400 390000 291600 800 L
-388400 290000 391600 290000 800 L
-390000 258400 390000 261600 800 L
-388400 260000 391600 260000 800 L
-380000 258400 380000 261600 800 L
-378400 260000 381600 260000 800 L
-370000 258400 370000 261600 800 L
-368400 260000 371600 260000 800 L
-360000 258400 360000 261600 800 L
-358400 260000 361600 260000 800 L
-317500 340900 317500 344100 800 L
-315900 342500 319100 342500 800 L
-327500 340900 327500 344100 800 L
-325900 342500 329100 342500 800 L
-137500 340900 137500 344100 800 L
-135900 342500 139100 342500 800 L
-127500 340900 127500 344100 800 L
-125900 342500 129100 342500 800 L
-540000 160900 540000 164100 800 L
-538400 162500 541600 162500 800 L
-535000 150900 535000 154100 800 L
-533400 152500 536600 152500 800 L
-530000 160900 530000 164100 800 L
-528400 162500 531600 162500 800 L
-525000 150900 525000 154100 800 L
-523400 152500 526600 152500 800 L
-520000 160900 520000 164100 800 L
-518400 162500 521600 162500 800 L
-515000 150900 515000 154100 800 L
-513400 152500 516600 152500 800 L
-510000 160900 510000 164100 800 L
-508400 162500 511600 162500 800 L
-505000 150900 505000 154100 800 L
-503400 152500 506600 152500 800 L
-500000 160900 500000 164100 800 L
-498400 162500 501600 162500 800 L
-495000 150900 495000 154100 800 L
-493400 152500 496600 152500 800 L
-490000 160900 490000 164100 800 L
-488400 162500 491600 162500 800 L
-485000 150900 485000 154100 800 L
-483400 152500 486600 152500 800 L
-480000 160900 480000 164100 800 L
-478400 162500 481600 162500 800 L
-475000 150900 475000 154100 800 L
-473400 152500 476600 152500 800 L
-470000 160900 470000 164100 800 L
-468400 162500 471600 162500 800 L
-465000 150900 465000 154100 800 L
-463400 152500 466600 152500 800 L
-460000 160900 460000 164100 800 L
-458400 162500 461600 162500 800 L
-455000 150900 455000 154100 800 L
-453400 152500 456600 152500 800 L
-450000 160900 450000 164100 800 L
-448400 162500 451600 162500 800 L
-445000 150900 445000 154100 800 L
-443400 152500 446600 152500 800 L
-440000 160900 440000 164100 800 L
-438400 162500 441600 162500 800 L
-435000 150900 435000 154100 800 L
-433400 152500 436600 152500 800 L
-430000 160900 430000 164100 800 L
-428400 162500 431600 162500 800 L
-425000 150900 425000 154100 800 L
-423400 152500 426600 152500 800 L
-420000 160900 420000 164100 800 L
-418400 162500 421600 162500 800 L
-415000 150900 415000 154100 800 L
-413400 152500 416600 152500 800 L
-410000 160900 410000 164100 800 L
-408400 162500 411600 162500 800 L
-405000 150900 405000 154100 800 L
-403400 152500 406600 152500 800 L
-400000 160900 400000 164100 800 L
-398400 162500 401600 162500 800 L
-395000 150900 395000 154100 800 L
-393400 152500 396600 152500 800 L
-390000 160900 390000 164100 800 L
-388400 162500 391600 162500 800 L
-385000 150900 385000 154100 800 L
-383400 152500 386600 152500 800 L
-380000 160900 380000 164100 800 L
-378400 162500 381600 162500 800 L
-375000 150900 375000 154100 800 L
-373400 152500 376600 152500 800 L
-370000 160900 370000 164100 800 L
-368400 162500 371600 162500 800 L
-365000 150900 365000 154100 800 L
-363400 152500 366600 152500 800 L
-340000 160900 340000 164100 800 L
-338400 162500 341600 162500 800 L
-335000 150900 335000 154100 800 L
-333400 152500 336600 152500 800 L
-330000 160900 330000 164100 800 L
-328400 162500 331600 162500 800 L
-325000 150900 325000 154100 800 L
-323400 152500 326600 152500 800 L
-320000 160900 320000 164100 800 L
-318400 162500 321600 162500 800 L
-315000 150900 315000 154100 800 L
-313400 152500 316600 152500 800 L
-310000 160900 310000 164100 800 L
-308400 162500 311600 162500 800 L
-305000 150900 305000 154100 800 L
-303400 152500 306600 152500 800 L
-300000 160900 300000 164100 800 L
-298400 162500 301600 162500 800 L
-295000 150900 295000 154100 800 L
-293400 152500 296600 152500 800 L
-290000 160900 290000 164100 800 L
-288400 162500 291600 162500 800 L
-285000 150900 285000 154100 800 L
-283400 152500 286600 152500 800 L
-280000 160900 280000 164100 800 L
-278400 162500 281600 162500 800 L
-275000 150900 275000 154100 800 L
-273400 152500 276600 152500 800 L
-270000 160900 270000 164100 800 L
-268400 162500 271600 162500 800 L
-265000 150900 265000 154100 800 L
-263400 152500 266600 152500 800 L
-260000 160900 260000 164100 800 L
-258400 162500 261600 162500 800 L
-255000 150900 255000 154100 800 L
-253400 152500 256600 152500 800 L
-250000 160900 250000 164100 800 L
-248400 162500 251600 162500 800 L
-245000 150900 245000 154100 800 L
-243400 152500 246600 152500 800 L
-240000 160900 240000 164100 800 L
-238400 162500 241600 162500 800 L
-235000 150900 235000 154100 800 L
-233400 152500 236600 152500 800 L
-230000 160900 230000 164100 800 L
-228400 162500 231600 162500 800 L
-225000 150900 225000 154100 800 L
-223400 152500 226600 152500 800 L
-220000 160900 220000 164100 800 L
-218400 162500 221600 162500 800 L
-215000 150900 215000 154100 800 L
-213400 152500 216600 152500 800 L
-210000 160900 210000 164100 800 L
-208400 162500 211600 162500 800 L
-205000 150900 205000 154100 800 L
-203400 152500 206600 152500 800 L
-200000 160900 200000 164100 800 L
-198400 162500 201600 162500 800 L
-195000 150900 195000 154100 800 L
-193400 152500 196600 152500 800 L
-190000 160900 190000 164100 800 L
-188400 162500 191600 162500 800 L
-185000 150900 185000 154100 800 L
-183400 152500 186600 152500 800 L
-180000 160900 180000 164100 800 L
-178400 162500 181600 162500 800 L
-175000 150900 175000 154100 800 L
-173400 152500 176600 152500 800 L
-170000 160900 170000 164100 800 L
-168400 162500 171600 162500 800 L
-165000 150900 165000 154100 800 L
-163400 152500 166600 152500 800 L
-137500 370900 137500 374100 800 L
-135900 372500 139100 372500 800 L
-127500 370900 127500 374100 800 L
-125900 372500 129100 372500 800 L
-172500 370900 172500 374100 800 L
-170900 372500 174100 372500 800 L
-182500 370900 182500 374100 800 L
-180900 372500 184100 372500 800 L
-192500 370900 192500 374100 800 L
-190900 372500 194100 372500 800 L
-202500 370900 202500 374100 800 L
-200900 372500 204100 372500 800 L
-212500 370900 212500 374100 800 L
-210900 372500 214100 372500 800 L
-222500 370900 222500 374100 800 L
-220900 372500 224100 372500 800 L
-232500 370900 232500 374100 800 L
-230900 372500 234100 372500 800 L
-242500 370900 242500 374100 800 L
-240900 372500 244100 372500 800 L
-252500 370900 252500 374100 800 L
-250900 372500 254100 372500 800 L
-262500 370900 262500 374100 800 L
-260900 372500 264100 372500 800 L
-272500 370900 272500 374100 800 L
-270900 372500 274100 372500 800 L
-282500 370900 282500 374100 800 L
-280900 372500 284100 372500 800 L
-282500 340900 282500 344100 800 L
-280900 342500 284100 342500 800 L
-272500 340900 272500 344100 800 L
-270900 342500 274100 342500 800 L
-262500 340900 262500 344100 800 L
-260900 342500 264100 342500 800 L
-252500 340900 252500 344100 800 L
-250900 342500 254100 342500 800 L
-242500 340900 242500 344100 800 L
-240900 342500 244100 342500 800 L
-232500 340900 232500 344100 800 L
-230900 342500 234100 342500 800 L
-222500 340900 222500 344100 800 L
-220900 342500 224100 342500 800 L
-212500 340900 212500 344100 800 L
-210900 342500 214100 342500 800 L
-202500 340900 202500 344100 800 L
-200900 342500 204100 342500 800 L
-192500 340900 192500 344100 800 L
-190900 342500 194100 342500 800 L
-182500 340900 182500 344100 800 L
-180900 342500 184100 342500 800 L
-172500 340900 172500 344100 800 L
-170900 342500 174100 342500 800 L
-115500 303900 115500 307100 800 L
-113900 305500 117100 305500 800 L
-75500 303900 75500 307100 800 L
-73900 305500 77100 305500 800 L
-475000 340900 475000 344100 800 L
-473400 342500 476600 342500 800 L
-490000 340900 490000 344100 800 L
-488400 342500 491600 342500 800 L
-560000 340900 560000 344100 800 L
-558400 342500 561600 342500 800 L
-602500 258400 602500 261600 800 L
-600900 260000 604100 260000 800 L
-540000 258400 540000 261600 800 L
-538400 260000 541600 260000 800 L
-540000 305900 540000 309100 800 L
-538400 307500 541600 307500 800 L
-602500 305900 602500 309100 800 L
-600900 307500 604100 307500 800 L
-592500 275900 592500 279100 800 L
-590900 277500 594100 277500 800 L
-612500 285900 612500 289100 800 L
-610900 287500 614100 287500 800 L
-540000 325900 540000 329100 800 L
-538400 327500 541600 327500 800 L
-395000 315900 395000 319100 800 L
-393400 317500 396600 317500 800 L
-475000 315900 475000 319100 800 L
-473400 317500 476600 317500 800 L
-622500 340900 622500 344100 800 L
-620900 342500 624100 342500 800 L
-612500 265900 612500 269100 800 L
-610900 267500 614100 267500 800 L
-592500 220900 592500 224100 800 L
-590900 222500 594100 222500 800 L
-462500 340900 462500 344100 800 L
-460900 342500 464100 342500 800 L
-562500 218400 562500 221600 800 L
-560900 220000 564100 220000 800 L
-622500 100900 622500 104100 800 L
-620900 102500 624100 102500 800 L
-647500 100900 647500 104100 800 L
-645900 102500 649100 102500 800 L
-567500 105900 567500 109100 800 L
-565900 107500 569100 107500 800 L
-597500 45900 597500 49100 800 L
-595900 47500 599100 47500 800 L
-537500 45900 537500 49100 800 L
-535900 47500 539100 47500 800 L
-487500 45900 487500 49100 800 L
-485900 47500 489100 47500 800 L
-517500 38400 517500 41600 800 L
-515900 40000 519100 40000 800 L
-577500 38400 577500 41600 800 L
-575900 40000 579100 40000 800 L
-402500 70900 402500 74100 800 L
-400900 72500 404100 72500 800 L
-487500 70900 487500 74100 800 L
-485900 72500 489100 72500 800 L
-537500 70900 537500 74100 800 L
-535900 72500 539100 72500 800 L
-592500 70900 592500 74100 800 L
-590900 72500 594100 72500 800 L
-497500 93400 497500 96600 800 L
-495900 95000 499100 95000 800 L
-140000 93400 140000 96600 800 L
-138400 95000 141600 95000 800 L
-175000 93400 175000 96600 800 L
-173400 95000 176600 95000 800 L
-237500 93400 237500 96600 800 L
-235900 95000 239100 95000 800 L
-322500 315900 322500 319100 800 L
-320900 317500 324100 317500 800 L
-327500 390900 327500 394100 800 L
-325900 392500 329100 392500 800 L
-240000 243400 240000 246600 800 L
-238400 245000 241600 245000 800 L
-270000 243400 270000 246600 800 L
-268400 245000 271600 245000 800 L
-140000 243400 140000 246600 800 L
-138400 245000 141600 245000 800 L
-130000 278400 130000 281600 800 L
-128400 280000 131600 280000 800 L
-130000 288400 130000 291600 800 L
-128400 290000 131600 290000 800 L
-427500 98400 427500 101600 800 L
-425900 100000 429100 100000 800 L
-525000 98400 525000 101600 800 L
-523400 100000 526600 100000 800 L
-315000 98400 315000 101600 800 L
-313400 100000 316600 100000 800 L
-447500 93400 447500 96600 800 L
-445900 95000 449100 95000 800 L
-202500 303400 202500 306600 800 L
-200900 305000 204100 305000 800 L
-127500 390900 127500 394100 800 L
-125900 392500 129100 392500 800 L
-212500 390900 212500 394100 800 L
-210900 392500 214100 392500 800 L
-272500 390900 272500 394100 800 L
-270900 392500 274100 392500 800 L
-360000 315900 360000 319100 800 L
-358400 317500 361600 317500 800 L
-77500 390900 77500 394100 800 L
-75900 392500 79100 392500 800 L
-407500 45900 407500 49100 800 L
-405900 47500 409100 47500 800 L
-272500 350900 272500 354100 800 L
-270900 352500 274100 352500 800 L
-212500 350900 212500 354100 800 L
-210900 352500 214100 352500 800 L
-232500 350900 232500 354100 800 L
-230900 352500 234100 352500 800 L
-322500 243400 322500 246600 800 L
-320900 245000 324100 245000 800 L
-220000 223400 220000 226600 800 L
-218400 225000 221600 225000 800 L
-240000 223400 240000 226600 800 L
-238400 225000 241600 225000 800 L
-332500 268400 332500 271600 800 L
-330900 270000 334100 270000 800 L
-470000 288400 470000 291600 800 L
-468400 290000 471600 290000 800 L
-297500 350900 297500 354100 800 L
-295900 352500 299100 352500 800 L
-130000 253400 130000 256600 800 L
-128400 255000 131600 255000 800 L
-592500 358400 592500 361600 800 L
-590900 360000 594100 360000 800 L
-405000 340900 405000 344100 800 L
-403400 342500 406600 342500 800 L
-15000 -102850 15000 -99650 800 L
-13400 -101250 16600 -101250 800 L
-135000 -105000 135000 -104250 600 L
-135000 -104250 136500 -102750 600 L
-136500 -102750 138000 -104250 600 L
-138000 -105000 138000 -104250 600 L
-136500 -102750 136500 -99000 600 L
-139801 -102000 142051 -102000 600 L
-139801 -99000 142801 -99000 600 L
-139801 -105000 139801 -99000 600 L
-139801 -105000 142801 -105000 600 L
-147603 -105000 148353 -104250 600 L
-145353 -105000 147603 -105000 600 L
-144603 -104250 145353 -105000 600 L
-144603 -104250 144603 -102750 600 L
-144603 -102750 145353 -102000 600 L
-145353 -102000 147603 -102000 600 L
-147603 -102000 148353 -101250 600 L
-148353 -101250 148353 -99750 600 L
-147603 -99000 148353 -99750 600 L
-145353 -99000 147603 -99000 600 L
-144603 -99750 145353 -99000 600 L
-135000 -95749 150154 -95749 800 L
-98000 -102000 101000 -105000 600 L
-98000 -102000 101750 -102000 600 L
-101000 -105000 101000 -99000 600 L
-103551 -102000 106551 -105000 600 L
-103551 -102000 107301 -102000 600 L
-106551 -105000 106551 -99000 600 L
-109103 -99000 112103 -102000 600 L
-112103 -104250 112103 -102000 600 L
-111353 -105000 112103 -104250 600 L
-109853 -105000 111353 -105000 600 L
-109103 -104250 109853 -105000 600 L
-109103 -104250 109103 -102750 600 L
-109103 -102750 109853 -102000 600 L
-109853 -102000 112103 -102000 600 L
-98000 -95749 113904 -95749 800 L
-/Color {0.000 0.000 0.000 mysetrgbcolor} def Color
-45000 -99750 45750 -99000 600 L
-45000 -104250 45000 -99750 600 L
-45000 -104250 45750 -105000 600 L
-45750 -105000 47250 -105000 600 L
-47250 -105000 48000 -104250 600 L
-48000 -104250 48000 -99750 600 L
-47250 -99000 48000 -99750 600 L
-45750 -99000 47250 -99000 600 L
-45000 -100500 48000 -103500 600 L
-49801 -99000 50551 -99000 600 L
-52353 -99750 53103 -99000 600 L
-52353 -104250 52353 -99750 600 L
-52353 -104250 53103 -105000 600 L
-53103 -105000 54603 -105000 600 L
-54603 -105000 55353 -104250 600 L
-55353 -104250 55353 -99750 600 L
-54603 -99000 55353 -99750 600 L
-53103 -99000 54603 -99000 600 L
-52353 -100500 55353 -103500 600 L
-57154 -104250 57904 -105000 600 L
-57904 -105000 59404 -105000 600 L
-59404 -105000 60154 -104250 600 L
-60154 -104250 60154 -99750 600 L
-59404 -99000 60154 -99750 600 L
-57904 -99000 59404 -99000 600 L
-57154 -99750 57904 -99000 600 L
-57904 -102000 60154 -102000 600 L
-61956 -105000 64956 -105000 600 L
-61956 -105000 61956 -102000 600 L
-61956 -102000 62706 -102750 600 L
-62706 -102750 64206 -102750 600 L
-64206 -102750 64956 -102000 600 L
-64956 -102000 64956 -99750 600 L
-64206 -99000 64956 -99750 600 L
-62706 -99000 64206 -99000 600 L
-61956 -99750 62706 -99000 600 L
-45000 -95749 66757 -95749 800 L
-/Color {0.302 0.302 0.302 mysetrgbcolor} def Color
-252500 287500 252500 289100 800 L
-252500 287500 253886 286700 800 L
-252500 287500 251114 286700 800 L
-487500 107500 487500 109100 800 L
-487500 107500 488886 106700 800 L
-487500 107500 486114 106700 800 L
-620000 52500 620000 54100 800 L
-620000 52500 621386 51700 800 L
-620000 52500 618614 51700 800 L
-622500 87500 622500 89100 800 L
-622500 87500 623886 86700 800 L
-622500 87500 621114 86700 800 L
-537500 107500 537500 109100 800 L
-537500 107500 538886 106700 800 L
-537500 107500 536114 106700 800 L
-637500 172500 637500 174100 800 L
-637500 172500 638886 171700 800 L
-637500 172500 636114 171700 800 L
-262500 172500 262500 174100 800 L
-262500 172500 263886 171700 800 L
-262500 172500 261114 171700 800 L
-597500 65000 597500 66600 800 L
-597500 65000 598886 64200 800 L
-597500 65000 596114 64200 800 L
-205000 82500 205000 84100 800 L
-205000 82500 206386 81700 800 L
-205000 82500 203614 81700 800 L
-402500 235000 402500 236600 800 L
-402500 235000 403886 234200 800 L
-402500 235000 401114 234200 800 L
-295000 130000 295000 131600 800 L
-295000 130000 296386 129200 800 L
-295000 130000 293614 129200 800 L
-335000 52500 335000 54100 800 L
-335000 52500 336386 51700 800 L
-335000 52500 333614 51700 800 L
-527500 22500 527500 24100 800 L
-527500 22500 528886 21700 800 L
-527500 22500 526114 21700 800 L
-615000 15000 615000 16600 800 L
-615000 15000 616386 14200 800 L
-615000 15000 613614 14200 800 L
-477500 57500 477500 59100 800 L
-477500 57500 478886 56700 800 L
-477500 57500 476114 56700 800 L
-622500 35000 622500 36600 800 L
-622500 35000 623886 34200 800 L
-622500 35000 621114 34200 800 L
-647500 20000 647500 21600 800 L
-647500 20000 648886 19200 800 L
-647500 20000 646114 19200 800 L
-557500 15000 557500 16600 800 L
-557500 15000 558886 14200 800 L
-557500 15000 556114 14200 800 L
-502500 15000 502500 16600 800 L
-502500 15000 503886 14200 800 L
-502500 15000 501114 14200 800 L
-547500 142500 547500 144100 800 L
-547500 142500 548886 141700 800 L
-547500 142500 546114 141700 800 L
-610000 142500 610000 144100 800 L
-610000 142500 611386 141700 800 L
-610000 142500 608614 141700 800 L
-615000 130000 615000 131600 800 L
-615000 130000 616386 129200 800 L
-615000 130000 613614 129200 800 L
-555000 135000 555000 136600 800 L
-555000 135000 556386 134200 800 L
-555000 135000 553614 134200 800 L
-195000 57500 195000 59100 800 L
-195000 57500 196386 56700 800 L
-195000 57500 193614 56700 800 L
-242500 360000 242500 361600 800 L
-242500 360000 243886 359200 800 L
-242500 360000 241114 359200 800 L
-210000 67500 210000 69100 800 L
-210000 67500 211386 66700 800 L
-210000 67500 208614 66700 800 L
-115000 112500 115000 114100 800 L
-115000 112500 116386 111700 800 L
-115000 112500 113614 111700 800 L
-507500 107500 507500 109100 800 L
-507500 107500 508886 106700 800 L
-507500 107500 506114 106700 800 L
-417500 135000 417500 136600 800 L
-417500 135000 418886 134200 800 L
-417500 135000 416114 134200 800 L
-200000 62500 200000 64100 800 L
-200000 62500 201386 61700 800 L
-200000 62500 198614 61700 800 L
-512500 80000 512500 81600 800 L
-512500 80000 513886 79200 800 L
-512500 80000 511114 79200 800 L
-557500 237500 557500 239100 800 L
-557500 237500 558886 236700 800 L
-557500 237500 556114 236700 800 L
-447500 30000 447500 31600 800 L
-447500 30000 448886 29200 800 L
-447500 30000 446114 29200 800 L
-355000 130000 355000 131600 800 L
-355000 130000 356386 129200 800 L
-355000 130000 353614 129200 800 L
-95000 245000 95000 246600 800 L
-95000 245000 96386 244200 800 L
-95000 245000 93614 244200 800 L
-115000 245000 115000 246600 800 L
-115000 245000 116386 244200 800 L
-115000 245000 113614 244200 800 L
-582500 285000 582500 286600 800 L
-582500 285000 583886 284200 800 L
-582500 285000 581114 284200 800 L
-110000 367500 110000 369100 800 L
-110000 367500 111386 366700 800 L
-110000 367500 108614 366700 800 L
-182500 385000 182500 386600 800 L
-182500 385000 183886 384200 800 L
-182500 385000 181114 384200 800 L
-252500 385000 252500 386600 800 L
-252500 385000 253886 384200 800 L
-252500 385000 251114 384200 800 L
-192500 360000 192500 361600 800 L
-192500 360000 193886 359200 800 L
-192500 360000 191114 359200 800 L
-417500 107500 417500 109100 800 L
-417500 107500 418886 106700 800 L
-417500 107500 416114 106700 800 L
-447500 107500 447500 109100 800 L
-447500 107500 448886 106700 800 L
-447500 107500 446114 106700 800 L
-472500 107500 472500 109100 800 L
-472500 107500 473886 106700 800 L
-472500 107500 471114 106700 800 L
-467500 15000 467500 16600 800 L
-467500 15000 468886 14200 800 L
-467500 15000 466114 14200 800 L
-255000 120000 255000 121600 800 L
-255000 120000 256386 119200 800 L
-255000 120000 253614 119200 800 L
-265000 120000 265000 121600 800 L
-265000 120000 266386 119200 800 L
-265000 120000 263614 119200 800 L
-265000 130000 265000 131600 800 L
-265000 130000 266386 129200 800 L
-265000 130000 263614 129200 800 L
-250000 130000 250000 131600 800 L
-250000 130000 251386 129200 800 L
-250000 130000 248614 129200 800 L
-260000 105000 260000 106600 800 L
-260000 105000 261386 104200 800 L
-260000 105000 258614 104200 800 L
-245000 105000 245000 106600 800 L
-245000 105000 246386 104200 800 L
-245000 105000 243614 104200 800 L
-285000 120000 285000 121600 800 L
-285000 120000 286386 119200 800 L
-285000 120000 283614 119200 800 L
-300000 120000 300000 121600 800 L
-300000 120000 301386 119200 800 L
-300000 120000 298614 119200 800 L
-290000 125000 290000 126600 800 L
-290000 125000 291386 124200 800 L
-290000 125000 288614 124200 800 L
-310000 125000 310000 126600 800 L
-310000 125000 311386 124200 800 L
-310000 125000 308614 124200 800 L
-295000 137500 295000 139100 800 L
-295000 137500 296386 136700 800 L
-295000 137500 293614 136700 800 L
-322500 137500 322500 139100 800 L
-322500 137500 323886 136700 800 L
-322500 137500 321114 136700 800 L
-145000 137500 145000 139100 800 L
-145000 137500 146386 136700 800 L
-145000 137500 143614 136700 800 L
-155000 125000 155000 126600 800 L
-155000 125000 156386 124200 800 L
-155000 125000 153614 124200 800 L
-160000 100000 160000 101600 800 L
-160000 100000 161386 99200 800 L
-160000 100000 158614 99200 800 L
-300000 100000 300000 101600 800 L
-300000 100000 301386 99200 800 L
-300000 100000 298614 99200 800 L
-170000 142500 170000 144100 800 L
-170000 142500 171386 141700 800 L
-170000 142500 168614 141700 800 L
-280000 142500 280000 144100 800 L
-280000 142500 281386 141700 800 L
-280000 142500 278614 141700 800 L
-180000 132500 180000 134100 800 L
-180000 132500 181386 131700 800 L
-180000 132500 178614 131700 800 L
-275000 130000 275000 131600 800 L
-275000 130000 276386 129200 800 L
-275000 130000 273614 129200 800 L
-190000 105000 190000 106600 800 L
-190000 105000 191386 104200 800 L
-190000 105000 188614 104200 800 L
-270000 105000 270000 106600 800 L
-270000 105000 271386 104200 800 L
-270000 105000 268614 104200 800 L
-200000 255000 200000 256600 800 L
-200000 255000 201386 254200 800 L
-200000 255000 198614 254200 800 L
-270000 255000 270000 256600 800 L
-270000 255000 271386 254200 800 L
-270000 255000 268614 254200 800 L
-350000 250000 350000 251600 800 L
-350000 250000 351386 249200 800 L
-350000 250000 348614 249200 800 L
-202500 282500 202500 284100 800 L
-202500 282500 203886 281700 800 L
-202500 282500 201114 281700 800 L
-220000 282500 220000 284100 800 L
-220000 282500 221386 281700 800 L
-220000 282500 218614 281700 800 L
-257500 250000 257500 251600 800 L
-257500 250000 258886 249200 800 L
-257500 250000 256114 249200 800 L
-210000 250000 210000 251600 800 L
-210000 250000 211386 249200 800 L
-210000 250000 208614 249200 800 L
-257500 197500 257500 199100 800 L
-257500 197500 258886 196700 800 L
-257500 197500 256114 196700 800 L
-300000 212500 300000 214100 800 L
-300000 212500 301386 211700 800 L
-300000 212500 298614 211700 800 L
-215000 212500 215000 214100 800 L
-215000 212500 216386 211700 800 L
-215000 212500 213614 211700 800 L
-310000 217500 310000 219100 800 L
-310000 217500 311386 216700 800 L
-310000 217500 308614 216700 800 L
-225000 217500 225000 219100 800 L
-225000 217500 226386 216700 800 L
-225000 217500 223614 216700 800 L
-225000 195000 225000 196600 800 L
-225000 195000 226386 194200 800 L
-225000 195000 223614 194200 800 L
-315000 192500 315000 194100 800 L
-315000 192500 316386 191700 800 L
-315000 192500 313614 191700 800 L
-150000 187500 150000 189100 800 L
-150000 187500 151386 186700 800 L
-150000 187500 148614 186700 800 L
-325000 187500 325000 189100 800 L
-325000 187500 326386 186700 800 L
-325000 187500 323614 186700 800 L
-235000 187500 235000 189100 800 L
-235000 187500 236386 186700 800 L
-235000 187500 233614 186700 800 L
-360000 252500 360000 254100 800 L
-360000 252500 361386 251700 800 L
-360000 252500 358614 251700 800 L
-292500 222500 292500 224100 800 L
-292500 222500 293886 221700 800 L
-292500 222500 291114 221700 800 L
-170000 217500 170000 219100 800 L
-170000 217500 171386 216700 800 L
-170000 217500 168614 216700 800 L
-210000 230000 210000 231600 800 L
-210000 230000 211386 229200 800 L
-210000 230000 208614 229200 800 L
-390000 225000 390000 226600 800 L
-390000 225000 391386 224200 800 L
-390000 225000 388614 224200 800 L
-257500 277500 257500 279100 800 L
-257500 277500 258886 276700 800 L
-257500 277500 256114 276700 800 L
-385000 277500 385000 279100 800 L
-385000 277500 386386 276700 800 L
-385000 277500 383614 276700 800 L
-155000 282500 155000 284100 800 L
-155000 282500 156386 281700 800 L
-155000 282500 153614 281700 800 L
-340000 282500 340000 284100 800 L
-340000 282500 341386 281700 800 L
-340000 282500 338614 281700 800 L
-230000 182500 230000 184100 800 L
-230000 182500 231386 181700 800 L
-230000 182500 228614 181700 800 L
-245000 182500 245000 184100 800 L
-245000 182500 246386 181700 800 L
-245000 182500 243614 181700 800 L
-227500 90000 227500 91600 800 L
-227500 90000 228886 89200 800 L
-227500 90000 226114 89200 800 L
-255000 90000 255000 91600 800 L
-255000 90000 256386 89200 800 L
-255000 90000 253614 89200 800 L
-250000 172500 250000 174100 800 L
-250000 172500 251386 171700 800 L
-250000 172500 248614 171700 800 L
-190000 175000 190000 176600 800 L
-190000 175000 191386 174200 800 L
-190000 175000 188614 174200 800 L
-180000 170000 180000 171600 800 L
-180000 170000 181386 169200 800 L
-180000 170000 178614 169200 800 L
-430000 197500 430000 199100 800 L
-430000 197500 431386 196700 800 L
-430000 197500 428614 196700 800 L
-290000 265000 290000 266600 800 L
-290000 265000 291386 264200 800 L
-290000 265000 288614 264200 800 L
-480000 265000 480000 266600 800 L
-480000 265000 481386 264200 800 L
-480000 265000 478614 264200 800 L
-462500 282500 462500 284100 800 L
-462500 282500 463886 281700 800 L
-462500 282500 461114 281700 800 L
-300000 177500 300000 179100 800 L
-300000 177500 301386 176700 800 L
-300000 177500 298614 176700 800 L
-485000 177500 485000 179100 800 L
-485000 177500 486386 176700 800 L
-485000 177500 483614 176700 800 L
-305000 85000 305000 86600 800 L
-305000 85000 306386 84200 800 L
-305000 85000 303614 84200 800 L
-275000 85000 275000 86600 800 L
-275000 85000 276386 84200 800 L
-275000 85000 273614 84200 800 L
-330000 80000 330000 81600 800 L
-330000 80000 331386 79200 800 L
-330000 80000 328614 79200 800 L
-285000 80000 285000 81600 800 L
-285000 80000 286386 79200 800 L
-285000 80000 283614 79200 800 L
-350000 220000 350000 221600 800 L
-350000 220000 351386 219200 800 L
-350000 220000 348614 219200 800 L
-365000 220000 365000 221600 800 L
-365000 220000 366386 219200 800 L
-365000 220000 363614 219200 800 L
-355000 385000 355000 386600 800 L
-355000 385000 356386 384200 800 L
-355000 385000 353614 384200 800 L
-375000 360000 375000 361600 800 L
-375000 360000 376386 359200 800 L
-375000 360000 373614 359200 800 L
-107500 147500 107500 149100 800 L
-107500 147500 108886 146700 800 L
-107500 147500 106114 146700 800 L
-122000 160500 122000 162100 800 L
-122000 160500 123386 159700 800 L
-122000 160500 120614 159700 800 L
-450000 182500 450000 184100 800 L
-450000 182500 451386 181700 800 L
-450000 182500 448614 181700 800 L
-262500 352500 262500 354100 800 L
-262500 352500 263886 351700 800 L
-262500 352500 261114 351700 800 L
-327500 352500 327500 354100 800 L
-327500 352500 328886 351700 800 L
-327500 352500 326114 351700 800 L
-400000 225000 400000 226600 800 L
-400000 225000 401386 224200 800 L
-400000 225000 398614 224200 800 L
-405000 215000 405000 216600 800 L
-405000 215000 406386 214200 800 L
-405000 215000 403614 214200 800 L
-410000 205000 410000 206600 800 L
-410000 205000 411386 204200 800 L
-410000 205000 408614 204200 800 L
-105000 270000 105000 271600 800 L
-105000 270000 106386 269200 800 L
-105000 270000 103614 269200 800 L
-415000 272500 415000 274100 800 L
-415000 272500 416386 271700 800 L
-415000 272500 413614 271700 800 L
-402500 250000 402500 251600 800 L
-402500 250000 403886 249200 800 L
-402500 250000 401114 249200 800 L
-222500 310000 222500 311600 800 L
-222500 310000 223886 309200 800 L
-222500 310000 221114 309200 800 L
-402500 310000 402500 311600 800 L
-402500 310000 403886 309200 800 L
-402500 310000 401114 309200 800 L
-520000 260000 520000 261600 800 L
-520000 260000 521386 259200 800 L
-520000 260000 518614 259200 800 L
-520000 337500 520000 339100 800 L
-520000 337500 521386 336700 800 L
-520000 337500 518614 336700 800 L
-210000 322500 210000 324100 800 L
-210000 322500 211386 321700 800 L
-210000 322500 208614 321700 800 L
-570000 322500 570000 324100 800 L
-570000 322500 571386 321700 800 L
-570000 322500 568614 321700 800 L
-570000 245000 570000 246600 800 L
-570000 245000 571386 244200 800 L
-570000 245000 568614 244200 800 L
-530000 327500 530000 329100 800 L
-530000 327500 531386 326700 800 L
-530000 327500 528614 326700 800 L
-282500 330000 282500 331600 800 L
-282500 330000 283886 329200 800 L
-282500 330000 281114 329200 800 L
-327500 305000 327500 306600 800 L
-327500 305000 328886 304200 800 L
-327500 305000 326114 304200 800 L
-49500 330000 49500 331600 800 L
-49500 330000 50886 329200 800 L
-49500 330000 48114 329200 800 L
-76500 257000 76500 258600 800 L
-76500 257000 77886 256200 800 L
-76500 257000 75114 256200 800 L
-90500 305500 90500 307100 800 L
-90500 305500 91886 304700 800 L
-90500 305500 89114 304700 800 L
-15000 -116250 15000 -114650 800 L
-15000 -116250 16386 -117050 800 L
-15000 -116250 13614 -117050 800 L
-135000 -120000 135000 -119250 600 L
-135000 -119250 136500 -117750 600 L
-136500 -117750 138000 -119250 600 L
-138000 -120000 138000 -119250 600 L
-136500 -117750 136500 -114000 600 L
-139801 -117000 142051 -117000 600 L
-139801 -114000 142801 -114000 600 L
-139801 -120000 139801 -114000 600 L
-139801 -120000 142801 -120000 600 L
-147603 -120000 148353 -119250 600 L
-145353 -120000 147603 -120000 600 L
-144603 -119250 145353 -120000 600 L
-144603 -119250 144603 -117750 600 L
-144603 -117750 145353 -117000 600 L
-145353 -117000 147603 -117000 600 L
-147603 -117000 148353 -116250 600 L
-148353 -116250 148353 -114750 600 L
-147603 -114000 148353 -114750 600 L
-145353 -114000 147603 -114000 600 L
-144603 -114750 145353 -114000 600 L
-135000 -110749 150154 -110749 800 L
-98750 -114000 100250 -114000 600 L
-99500 -120000 99500 -114000 600 L
-98000 -118500 99500 -120000 600 L
-102051 -119250 102801 -120000 600 L
-102801 -120000 104301 -120000 600 L
-104301 -120000 105051 -119250 600 L
-105051 -119250 105051 -114750 600 L
-104301 -114000 105051 -114750 600 L
-102801 -114000 104301 -114000 600 L
-102051 -114750 102801 -114000 600 L
-102801 -117000 105051 -117000 600 L
-106853 -114750 107603 -114000 600 L
-106853 -116250 106853 -114750 600 L
-106853 -116250 107603 -117000 600 L
-107603 -117000 109103 -117000 600 L
-109103 -117000 109853 -116250 600 L
-109853 -116250 109853 -114750 600 L
-109103 -114000 109853 -114750 600 L
-107603 -114000 109103 -114000 600 L
-106853 -117750 107603 -117000 600 L
-106853 -119250 106853 -117750 600 L
-106853 -119250 107603 -120000 600 L
-107603 -120000 109103 -120000 600 L
-109103 -120000 109853 -119250 600 L
-109853 -119250 109853 -117750 600 L
-109103 -117000 109853 -117750 600 L
-98000 -110749 111654 -110749 800 L
-/Color {0.000 0.000 0.000 mysetrgbcolor} def Color
-45000 -114750 45750 -114000 600 L
-45000 -119250 45000 -114750 600 L
-45000 -119250 45750 -120000 600 L
-45750 -120000 47250 -120000 600 L
-47250 -120000 48000 -119250 600 L
-48000 -119250 48000 -114750 600 L
-47250 -114000 48000 -114750 600 L
-45750 -114000 47250 -114000 600 L
-45000 -115500 48000 -118500 600 L
-49801 -114000 50551 -114000 600 L
-52353 -114750 53103 -114000 600 L
-52353 -119250 52353 -114750 600 L
-52353 -119250 53103 -120000 600 L
-53103 -120000 54603 -120000 600 L
-54603 -120000 55353 -119250 600 L
-55353 -119250 55353 -114750 600 L
-54603 -114000 55353 -114750 600 L
-53103 -114000 54603 -114000 600 L
-52353 -115500 55353 -118500 600 L
-57154 -119250 57904 -120000 600 L
-57904 -120000 60154 -120000 600 L
-60154 -120000 60904 -119250 600 L
-60904 -119250 60904 -117750 600 L
-57154 -114000 60904 -117750 600 L
-57154 -114000 60904 -114000 600 L
-62706 -114750 63456 -114000 600 L
-62706 -119250 62706 -114750 600 L
-62706 -119250 63456 -120000 600 L
-63456 -120000 64956 -120000 600 L
-64956 -120000 65706 -119250 600 L
-65706 -119250 65706 -114750 600 L
-64956 -114000 65706 -114750 600 L
-63456 -114000 64956 -114000 600 L
-62706 -115500 65706 -118500 600 L
-45000 -110749 67507 -110749 800 L
-/Color {0.000 0.000 0.000 mysetrgbcolor} def Color
-3000 -135000 3750 -134250 600 L
-750 -135000 3000 -135000 600 L
-0 -134250 750 -135000 600 L
-0 -134250 0 -132750 600 L
-0 -132750 750 -132000 600 L
-750 -132000 3000 -132000 600 L
-3000 -132000 3750 -131250 600 L
-3750 -131250 3750 -129750 600 L
-3000 -129000 3750 -129750 600 L
-750 -129000 3000 -129000 600 L
-0 -129750 750 -129000 600 L
-5551 -132000 5551 -129750 600 L
-5551 -129750 6301 -129000 600 L
-8551 -132000 8551 -127500 600 L
-7801 -126750 8551 -127500 600 L
-6301 -126750 7801 -126750 600 L
-5551 -127500 6301 -126750 600 L
-6301 -129000 7801 -129000 600 L
-7801 -129000 8551 -129750 600 L
-11103 -131250 11103 -129000 600 L
-11103 -131250 11853 -132000 600 L
-11853 -132000 12603 -132000 600 L
-12603 -132000 13353 -131250 600 L
-13353 -131250 13353 -129000 600 L
-13353 -131250 14103 -132000 600 L
-14103 -132000 14853 -132000 600 L
-14853 -132000 15603 -131250 600 L
-15603 -131250 15603 -129000 600 L
-10353 -132000 11103 -131250 600 L
-17404 -135000 17404 -129000 600 L
-17404 -129750 18154 -129000 600 L
-18154 -129000 19654 -129000 600 L
-19654 -129000 20404 -129750 600 L
-20404 -131250 20404 -129750 600 L
-19654 -132000 20404 -131250 600 L
-18154 -132000 19654 -132000 600 L
-17404 -131250 18154 -132000 600 L
-22206 -131250 22206 -129750 600 L
-22206 -131250 22956 -132000 600 L
-22956 -132000 24456 -132000 600 L
-24456 -132000 25206 -131250 600 L
-25206 -131250 25206 -129750 600 L
-24456 -129000 25206 -129750 600 L
-22956 -129000 24456 -129000 600 L
-22206 -129750 22956 -129000 600 L
-27007 -135000 27007 -129750 600 L
-27007 -129750 27757 -129000 600 L
-41750 -135000 41750 -129000 600 L
-44000 -135000 44750 -134250 600 L
-44750 -134250 44750 -129750 600 L
-44000 -129000 44750 -129750 600 L
-41000 -129000 44000 -129000 600 L
-41000 -135000 44000 -135000 600 L
-46551 -133500 46551 -132750 600 L
-46551 -131250 46551 -129000 600 L
-50303 -132000 51053 -131250 600 L
-48803 -132000 50303 -132000 600 L
-48053 -131250 48803 -132000 600 L
-48053 -131250 48053 -129750 600 L
-48053 -129750 48803 -129000 600 L
-51053 -132000 51053 -129750 600 L
-51053 -129750 51803 -129000 600 L
-48803 -129000 50303 -129000 600 L
-50303 -129000 51053 -129750 600 L
-54354 -131250 54354 -129000 600 L
-54354 -131250 55104 -132000 600 L
-55104 -132000 55854 -132000 600 L
-55854 -132000 56604 -131250 600 L
-56604 -131250 56604 -129000 600 L
-56604 -131250 57354 -132000 600 L
-57354 -132000 58104 -132000 600 L
-58104 -132000 58854 -131250 600 L
-58854 -131250 58854 -129000 600 L
-53604 -132000 54354 -131250 600 L
-60656 -129000 61406 -129000 600 L
-65907 -129750 66657 -129000 600 L
-65907 -134250 66657 -135000 600 L
-65907 -134250 65907 -129750 600 L
-68459 -135000 69959 -135000 600 L
-69209 -135000 69209 -129000 600 L
-68459 -129000 69959 -129000 600 L
-72510 -131250 72510 -129000 600 L
-72510 -131250 73260 -132000 600 L
-73260 -132000 74010 -132000 600 L
-74010 -132000 74760 -131250 600 L
-74760 -131250 74760 -129000 600 L
-71760 -132000 72510 -131250 600 L
-77312 -132000 79562 -132000 600 L
-76562 -131250 77312 -132000 600 L
-76562 -131250 76562 -129750 600 L
-76562 -129750 77312 -129000 600 L
-77312 -129000 79562 -129000 600 L
-81363 -135000 81363 -129000 600 L
-81363 -131250 82113 -132000 600 L
-82113 -132000 83613 -132000 600 L
-83613 -132000 84363 -131250 600 L
-84363 -131250 84363 -129000 600 L
-86165 -135000 86915 -134250 600 L
-86915 -134250 86915 -129750 600 L
-86165 -129000 86915 -129750 600 L
-95750 -129000 98000 -129000 600 L
-95000 -129750 95750 -129000 600 L
-95000 -134250 95000 -129750 600 L
-95000 -134250 95750 -135000 600 L
-95750 -135000 98000 -135000 600 L
-99801 -131250 99801 -129750 600 L
-99801 -131250 100551 -132000 600 L
-100551 -132000 102051 -132000 600 L
-102051 -132000 102801 -131250 600 L
-102801 -131250 102801 -129750 600 L
-102051 -129000 102801 -129750 600 L
-100551 -129000 102051 -129000 600 L
-99801 -129750 100551 -129000 600 L
-104603 -132000 104603 -129750 600 L
-104603 -129750 105353 -129000 600 L
-105353 -129000 106853 -129000 600 L
-106853 -129000 107603 -129750 600 L
-107603 -132000 107603 -129750 600 L
-110154 -131250 110154 -129000 600 L
-110154 -131250 110904 -132000 600 L
-110904 -132000 111654 -132000 600 L
-111654 -132000 112404 -131250 600 L
-112404 -131250 112404 -129000 600 L
-109404 -132000 110154 -131250 600 L
-114956 -135000 114956 -129750 600 L
-114956 -129750 115706 -129000 600 L
-114206 -132750 115706 -132750 600 L
-130750 -135000 130750 -129000 600 L
-130000 -135000 133000 -135000 600 L
-133000 -135000 133750 -134250 600 L
-133750 -134250 133750 -132750 600 L
-133000 -132000 133750 -132750 600 L
-130750 -132000 133000 -132000 600 L
-135551 -135000 135551 -129750 600 L
-135551 -129750 136301 -129000 600 L
-140053 -132000 140803 -131250 600 L
-138553 -132000 140053 -132000 600 L
-137803 -131250 138553 -132000 600 L
-137803 -131250 137803 -129750 600 L
-137803 -129750 138553 -129000 600 L
-140803 -132000 140803 -129750 600 L
-140803 -129750 141553 -129000 600 L
-138553 -129000 140053 -129000 600 L
-140053 -129000 140803 -129750 600 L
-144104 -135000 144104 -129750 600 L
-144104 -129750 144854 -129000 600 L
-143354 -132750 144854 -132750 600 L
-147106 -129000 149356 -129000 600 L
-146356 -129750 147106 -129000 600 L
-146356 -131250 146356 -129750 600 L
-146356 -131250 147106 -132000 600 L
-147106 -132000 148606 -132000 600 L
-148606 -132000 149356 -131250 600 L
-146356 -130500 149356 -130500 600 L
-149356 -131250 149356 -130500 600 L
-154157 -135000 154157 -129000 600 L
-153407 -129000 154157 -129750 600 L
-151907 -129000 153407 -129000 600 L
-151157 -129750 151907 -129000 600 L
-151157 -131250 151157 -129750 600 L
-151157 -131250 151907 -132000 600 L
-151907 -132000 153407 -132000 600 L
-153407 -132000 154157 -131250 600 L
-157459 -132000 157459 -131250 600 L
-157459 -129750 157459 -129000 600 L
-155959 -134250 155959 -133500 600 L
-155959 -134250 156709 -135000 600 L
-156709 -135000 158209 -135000 600 L
-158209 -135000 158959 -134250 600 L
-158959 -134250 158959 -133500 600 L
-157459 -132000 158959 -133500 600 L
-0 -150000 3000 -150000 600 L
-1500 -150000 1500 -144000 600 L
-4801 -150000 4801 -144000 600 L
-4801 -146250 5551 -147000 600 L
-5551 -147000 7051 -147000 600 L
-7051 -147000 7801 -146250 600 L
-7801 -146250 7801 -144000 600 L
-10353 -144000 12603 -144000 600 L
-9603 -144750 10353 -144000 600 L
-9603 -146250 9603 -144750 600 L
-9603 -146250 10353 -147000 600 L
-10353 -147000 11853 -147000 600 L
-11853 -147000 12603 -146250 600 L
-9603 -145500 12603 -145500 600 L
-12603 -146250 12603 -145500 600 L
-15154 -146250 15154 -144000 600 L
-15154 -146250 15904 -147000 600 L
-15904 -147000 17404 -147000 600 L
-14404 -147000 15154 -146250 600 L
-19956 -144000 22206 -144000 600 L
-19206 -144750 19956 -144000 600 L
-19206 -146250 19206 -144750 600 L
-19206 -146250 19956 -147000 600 L
-19956 -147000 21456 -147000 600 L
-21456 -147000 22206 -146250 600 L
-19206 -145500 22206 -145500 600 L
-22206 -146250 22206 -145500 600 L
-28957 -147000 29707 -146250 600 L
-27457 -147000 28957 -147000 600 L
-26707 -146250 27457 -147000 600 L
-26707 -146250 26707 -144750 600 L
-26707 -144750 27457 -144000 600 L
-29707 -147000 29707 -144750 600 L
-29707 -144750 30457 -144000 600 L
-27457 -144000 28957 -144000 600 L
-28957 -144000 29707 -144750 600 L
-33009 -146250 33009 -144000 600 L
-33009 -146250 33759 -147000 600 L
-33759 -147000 35259 -147000 600 L
-32259 -147000 33009 -146250 600 L
-37810 -144000 40060 -144000 600 L
-37060 -144750 37810 -144000 600 L
-37060 -146250 37060 -144750 600 L
-37060 -146250 37810 -147000 600 L
-37810 -147000 39310 -147000 600 L
-39310 -147000 40060 -146250 600 L
-37060 -145500 40060 -145500 600 L
-40060 -146250 40060 -145500 600 L
-44562 -144750 45312 -144000 600 L
-44562 -146250 44562 -144750 600 L
-44562 -146250 45312 -147000 600 L
-45312 -147000 46812 -147000 600 L
-46812 -147000 47562 -146250 600 L
-47562 -146250 47562 -144750 600 L
-46812 -144000 47562 -144750 600 L
-45312 -144000 46812 -144000 600 L
-44562 -147750 45312 -147000 600 L
-44562 -149250 44562 -147750 600 L
-44562 -149250 45312 -150000 600 L
-45312 -150000 46812 -150000 600 L
-46812 -150000 47562 -149250 600 L
-47562 -149250 47562 -147750 600 L
-46812 -147000 47562 -147750 600 L
-55063 -150000 55063 -144000 600 L
-54313 -144000 55063 -144750 600 L
-52813 -144000 54313 -144000 600 L
-52063 -144750 52813 -144000 600 L
-52063 -146250 52063 -144750 600 L
-52063 -146250 52813 -147000 600 L
-52813 -147000 54313 -147000 600 L
-54313 -147000 55063 -146250 600 L
-56865 -148500 56865 -147750 600 L
-56865 -146250 56865 -144000 600 L
-59116 -149250 59116 -144000 600 L
-59116 -149250 59866 -150000 600 L
-59866 -150000 60616 -150000 600 L
-58366 -147000 59866 -147000 600 L
-62868 -149250 62868 -144000 600 L
-62868 -149250 63618 -150000 600 L
-63618 -150000 64368 -150000 600 L
-62118 -147000 63618 -147000 600 L
-66619 -144000 68869 -144000 600 L
-65869 -144750 66619 -144000 600 L
-65869 -146250 65869 -144750 600 L
-65869 -146250 66619 -147000 600 L
-66619 -147000 68119 -147000 600 L
-68119 -147000 68869 -146250 600 L
-65869 -145500 68869 -145500 600 L
-68869 -146250 68869 -145500 600 L
-71421 -146250 71421 -144000 600 L
-71421 -146250 72171 -147000 600 L
-72171 -147000 73671 -147000 600 L
-70671 -147000 71421 -146250 600 L
-76222 -144000 78472 -144000 600 L
-75472 -144750 76222 -144000 600 L
-75472 -146250 75472 -144750 600 L
-75472 -146250 76222 -147000 600 L
-76222 -147000 77722 -147000 600 L
-77722 -147000 78472 -146250 600 L
-75472 -145500 78472 -145500 600 L
-78472 -146250 78472 -145500 600 L
-81024 -146250 81024 -144000 600 L
-81024 -146250 81774 -147000 600 L
-81774 -147000 82524 -147000 600 L
-82524 -147000 83274 -146250 600 L
-83274 -146250 83274 -144000 600 L
-80274 -147000 81024 -146250 600 L
-85825 -150000 85825 -144750 600 L
-85825 -144750 86575 -144000 600 L
-85075 -147750 86575 -147750 600 L
-93777 -150000 93777 -144000 600 L
-93027 -144000 93777 -144750 600 L
-91527 -144000 93027 -144000 600 L
-90777 -144750 91527 -144000 600 L
-90777 -146250 90777 -144750 600 L
-90777 -146250 91527 -147000 600 L
-91527 -147000 93027 -147000 600 L
-93027 -147000 93777 -146250 600 L
-96328 -146250 96328 -144000 600 L
-96328 -146250 97078 -147000 600 L
-97078 -147000 98578 -147000 600 L
-95578 -147000 96328 -146250 600 L
-100380 -148500 100380 -147750 600 L
-100380 -146250 100380 -144000 600 L
-101881 -150000 101881 -144750 600 L
-101881 -144750 102631 -144000 600 L
-104133 -150000 104133 -144750 600 L
-104133 -144750 104883 -144000 600 L
-109834 -144000 112084 -144000 600 L
-112084 -144000 112834 -144750 600 L
-112084 -145500 112834 -144750 600 L
-109834 -145500 112084 -145500 600 L
-109084 -146250 109834 -145500 600 L
-109084 -146250 109834 -147000 600 L
-109834 -147000 112084 -147000 600 L
-112084 -147000 112834 -146250 600 L
-109084 -144750 109834 -144000 600 L
-114636 -148500 114636 -147750 600 L
-114636 -146250 114636 -144000 600 L
-116137 -147000 119137 -147000 600 L
-116137 -144000 119137 -147000 600 L
-116137 -144000 119137 -144000 600 L
-121689 -144000 123939 -144000 600 L
-120939 -144750 121689 -144000 600 L
-120939 -146250 120939 -144750 600 L
-120939 -146250 121689 -147000 600 L
-121689 -147000 123189 -147000 600 L
-123189 -147000 123939 -146250 600 L
-120939 -145500 123939 -145500 600 L
-123939 -146250 123939 -145500 600 L
-126490 -144000 128740 -144000 600 L
-128740 -144000 129490 -144750 600 L
-128740 -145500 129490 -144750 600 L
-126490 -145500 128740 -145500 600 L
-125740 -146250 126490 -145500 600 L
-125740 -146250 126490 -147000 600 L
-126490 -147000 128740 -147000 600 L
-128740 -147000 129490 -146250 600 L
-125740 -144750 126490 -144000 600 L
-133992 -147000 133992 -144750 600 L
-133992 -144750 134742 -144000 600 L
-134742 -144000 136242 -144000 600 L
-136242 -144000 136992 -144750 600 L
-136992 -147000 136992 -144750 600 L
-139543 -144000 141793 -144000 600 L
-141793 -144000 142543 -144750 600 L
-141793 -145500 142543 -144750 600 L
-139543 -145500 141793 -145500 600 L
-138793 -146250 139543 -145500 600 L
-138793 -146250 139543 -147000 600 L
-139543 -147000 141793 -147000 600 L
-141793 -147000 142543 -146250 600 L
-138793 -144750 139543 -144000 600 L
-145095 -144000 147345 -144000 600 L
-144345 -144750 145095 -144000 600 L
-144345 -146250 144345 -144750 600 L
-144345 -146250 145095 -147000 600 L
-145095 -147000 146595 -147000 600 L
-146595 -147000 147345 -146250 600 L
-144345 -145500 147345 -145500 600 L
-147345 -146250 147345 -145500 600 L
-152146 -150000 152146 -144000 600 L
-151396 -144000 152146 -144750 600 L
-149896 -144000 151396 -144000 600 L
-149146 -144750 149896 -144000 600 L
-149146 -146250 149146 -144750 600 L
-149146 -146250 149896 -147000 600 L
-149896 -147000 151396 -147000 600 L
-151396 -147000 152146 -146250 600 L
-156648 -148500 156648 -147750 600 L
-156648 -146250 156648 -144000 600 L
-158899 -146250 158899 -144000 600 L
-158899 -146250 159649 -147000 600 L
-159649 -147000 160399 -147000 600 L
-160399 -147000 161149 -146250 600 L
-161149 -146250 161149 -144000 600 L
-158149 -147000 158899 -146250 600 L
-166401 -150000 166401 -144750 600 L
-166401 -144750 167151 -144000 600 L
-165651 -147750 167151 -147750 600 L
-168652 -150000 168652 -144000 600 L
-168652 -146250 169402 -147000 600 L
-169402 -147000 170902 -147000 600 L
-170902 -147000 171652 -146250 600 L
-171652 -146250 171652 -144000 600 L
-173454 -148500 173454 -147750 600 L
-173454 -146250 173454 -144000 600 L
-175705 -144000 177955 -144000 600 L
-177955 -144000 178705 -144750 600 L
-177955 -145500 178705 -144750 600 L
-175705 -145500 177955 -145500 600 L
-174955 -146250 175705 -145500 600 L
-174955 -146250 175705 -147000 600 L
-175705 -147000 177955 -147000 600 L
-177955 -147000 178705 -146250 600 L
-174955 -144750 175705 -144000 600 L
-183207 -150000 183207 -144750 600 L
-183207 -144750 183957 -144000 600 L
-187708 -147000 188458 -146250 600 L
-186208 -147000 187708 -147000 600 L
-185458 -146250 186208 -147000 600 L
-185458 -146250 185458 -144750 600 L
-185458 -144750 186208 -144000 600 L
-188458 -147000 188458 -144750 600 L
-188458 -144750 189208 -144000 600 L
-186208 -144000 187708 -144000 600 L
-187708 -144000 188458 -144750 600 L
-191010 -147000 191010 -144750 600 L
-191010 -144750 191760 -144000 600 L
-194010 -147000 194010 -142500 600 L
-193260 -141750 194010 -142500 600 L
-191760 -141750 193260 -141750 600 L
-191010 -142500 191760 -141750 600 L
-191760 -144000 193260 -144000 600 L
-193260 -144000 194010 -144750 600 L
-195811 -146250 195811 -144750 600 L
-195811 -146250 196561 -147000 600 L
-196561 -147000 198061 -147000 600 L
-198061 -147000 198811 -146250 600 L
-198811 -146250 198811 -144750 600 L
-198061 -144000 198811 -144750 600 L
-196561 -144000 198061 -144000 600 L
-195811 -144750 196561 -144000 600 L
-200613 -147000 200613 -144750 600 L
-200613 -144750 201363 -144000 600 L
-201363 -144000 202863 -144000 600 L
-202863 -144000 203613 -144750 600 L
-203613 -147000 203613 -144750 600 L
-206164 -150000 206164 -144750 600 L
-206164 -144750 206914 -144000 600 L
-205414 -147750 206914 -147750 600 L
-208416 -142500 209916 -144000 600 L
-216667 -150000 217417 -149250 600 L
-215167 -150000 216667 -150000 600 L
-214417 -149250 215167 -150000 600 L
-214417 -149250 214417 -144750 600 L
-214417 -144750 215167 -144000 600 L
-216667 -147000 217417 -146250 600 L
-214417 -147000 216667 -147000 600 L
-215167 -144000 216667 -144000 600 L
-216667 -144000 217417 -144750 600 L
-217417 -146250 217417 -144750 600 L
-219219 -150000 222219 -150000 600 L
-219219 -150000 219219 -147000 600 L
-219219 -147000 219969 -147750 600 L
-219969 -147750 221469 -147750 600 L
-221469 -147750 222219 -147000 600 L
-222219 -147000 222219 -144750 600 L
-221469 -144000 222219 -144750 600 L
-219969 -144000 221469 -144000 600 L
-219219 -144750 219969 -144000 600 L
-224020 -144750 224770 -144000 600 L
-224020 -149250 224020 -144750 600 L
-224020 -149250 224770 -150000 600 L
-224770 -150000 226270 -150000 600 L
-226270 -150000 227020 -149250 600 L
-227020 -149250 227020 -144750 600 L
-226270 -144000 227020 -144750 600 L
-224770 -144000 226270 -144000 600 L
-224020 -145500 227020 -148500 600 L
-231522 -150000 231522 -144000 600 L
-231522 -146250 232272 -147000 600 L
-232272 -147000 233772 -147000 600 L
-233772 -147000 234522 -146250 600 L
-234522 -146250 234522 -144000 600 L
-236323 -146250 236323 -144750 600 L
-236323 -146250 237073 -147000 600 L
-237073 -147000 238573 -147000 600 L
-238573 -147000 239323 -146250 600 L
-239323 -146250 239323 -144750 600 L
-238573 -144000 239323 -144750 600 L
-237073 -144000 238573 -144000 600 L
-236323 -144750 237073 -144000 600 L
-241125 -150000 241125 -144750 600 L
-241125 -144750 241875 -144000 600 L
-244126 -144000 246376 -144000 600 L
-243376 -144750 244126 -144000 600 L
-243376 -146250 243376 -144750 600 L
-243376 -146250 244126 -147000 600 L
-244126 -147000 245626 -147000 600 L
-245626 -147000 246376 -146250 600 L
-243376 -145500 246376 -145500 600 L
-246376 -146250 246376 -145500 600 L
-248928 -144000 251178 -144000 600 L
-251178 -144000 251928 -144750 600 L
-251178 -145500 251928 -144750 600 L
-248928 -145500 251178 -145500 600 L
-248178 -146250 248928 -145500 600 L
-248178 -146250 248928 -147000 600 L
-248928 -147000 251178 -147000 600 L
-251178 -147000 251928 -146250 600 L
-248178 -144750 248928 -144000 600 L
-257179 -150000 257179 -144750 600 L
-257179 -144750 257929 -144000 600 L
-256429 -147750 257929 -147750 600 L
-259431 -146250 259431 -144750 600 L
-259431 -146250 260181 -147000 600 L
-260181 -147000 261681 -147000 600 L
-261681 -147000 262431 -146250 600 L
-262431 -146250 262431 -144750 600 L
-261681 -144000 262431 -144750 600 L
-260181 -144000 261681 -144000 600 L
-259431 -144750 260181 -144000 600 L
-264982 -150000 264982 -144750 600 L
-264982 -144750 265732 -144000 600 L
-264232 -147750 265732 -147750 600 L
-269484 -147000 270234 -146250 600 L
-267984 -147000 269484 -147000 600 L
-267234 -146250 267984 -147000 600 L
-267234 -146250 267234 -144750 600 L
-267234 -144750 267984 -144000 600 L
-270234 -147000 270234 -144750 600 L
-270234 -144750 270984 -144000 600 L
-267984 -144000 269484 -144000 600 L
-269484 -144000 270234 -144750 600 L
-272785 -150000 272785 -144750 600 L
-272785 -144750 273535 -144000 600 L
-200000 -15000 200000 -9000 600 L
-200000 -15000 202250 -12750 600 L
-202250 -12750 204500 -15000 600 L
-204500 -15000 204500 -9000 600 L
-208551 -12000 209301 -11250 600 L
-207051 -12000 208551 -12000 600 L
-206301 -11250 207051 -12000 600 L
-206301 -11250 206301 -9750 600 L
-206301 -9750 207051 -9000 600 L
-209301 -12000 209301 -9750 600 L
-209301 -9750 210051 -9000 600 L
-207051 -9000 208551 -9000 600 L
-208551 -9000 209301 -9750 600 L
-211853 -12000 214853 -9000 600 L
-211853 -9000 214853 -12000 600 L
-216654 -13500 216654 -12750 600 L
-216654 -11250 216654 -9000 600 L
-218906 -11250 218906 -9000 600 L
-218906 -11250 219656 -12000 600 L
-219656 -12000 220406 -12000 600 L
-220406 -12000 221156 -11250 600 L
-221156 -11250 221156 -9000 600 L
-221156 -11250 221906 -12000 600 L
-221906 -12000 222656 -12000 600 L
-222656 -12000 223406 -11250 600 L
-223406 -11250 223406 -9000 600 L
-218156 -12000 218906 -11250 600 L
-225207 -12000 225207 -9750 600 L
-225207 -9750 225957 -9000 600 L
-225957 -9000 227457 -9000 600 L
-227457 -9000 228207 -9750 600 L
-228207 -12000 228207 -9750 600 L
-230759 -11250 230759 -9000 600 L
-230759 -11250 231509 -12000 600 L
-231509 -12000 232259 -12000 600 L
-232259 -12000 233009 -11250 600 L
-233009 -11250 233009 -9000 600 L
-233009 -11250 233759 -12000 600 L
-233759 -12000 234509 -12000 600 L
-234509 -12000 235259 -11250 600 L
-235259 -11250 235259 -9000 600 L
-230009 -12000 230759 -11250 600 L
-240510 -15000 240510 -9000 600 L
-242760 -15000 243510 -14250 600 L
-243510 -14250 243510 -9750 600 L
-242760 -9000 243510 -9750 600 L
-239760 -9000 242760 -9000 600 L
-239760 -15000 242760 -15000 600 L
-245312 -13500 245312 -12750 600 L
-245312 -11250 245312 -9000 600 L
-247563 -11250 247563 -9000 600 L
-247563 -11250 248313 -12000 600 L
-248313 -12000 249063 -12000 600 L
-249063 -12000 249813 -11250 600 L
-249813 -11250 249813 -9000 600 L
-249813 -11250 250563 -12000 600 L
-250563 -12000 251313 -12000 600 L
-251313 -12000 252063 -11250 600 L
-252063 -11250 252063 -9000 600 L
-246813 -12000 247563 -11250 600 L
-254615 -9000 256865 -9000 600 L
-253865 -9750 254615 -9000 600 L
-253865 -11250 253865 -9750 600 L
-253865 -11250 254615 -12000 600 L
-254615 -12000 256115 -12000 600 L
-256115 -12000 256865 -11250 600 L
-253865 -10500 256865 -10500 600 L
-256865 -11250 256865 -10500 600 L
-259416 -11250 259416 -9000 600 L
-259416 -11250 260166 -12000 600 L
-260166 -12000 260916 -12000 600 L
-260916 -12000 261666 -11250 600 L
-261666 -11250 261666 -9000 600 L
-258666 -12000 259416 -11250 600 L
-264218 -9000 266468 -9000 600 L
-266468 -9000 267218 -9750 600 L
-266468 -10500 267218 -9750 600 L
-264218 -10500 266468 -10500 600 L
-263468 -11250 264218 -10500 600 L
-263468 -11250 264218 -12000 600 L
-264218 -12000 266468 -12000 600 L
-266468 -12000 267218 -11250 600 L
-263468 -9750 264218 -9000 600 L
-269019 -13500 269019 -12750 600 L
-269019 -11250 269019 -9000 600 L
-270521 -11250 270521 -9750 600 L
-270521 -11250 271271 -12000 600 L
-271271 -12000 272771 -12000 600 L
-272771 -12000 273521 -11250 600 L
-273521 -11250 273521 -9750 600 L
-272771 -9000 273521 -9750 600 L
-271271 -9000 272771 -9000 600 L
-270521 -9750 271271 -9000 600 L
-276072 -11250 276072 -9000 600 L
-276072 -11250 276822 -12000 600 L
-276822 -12000 277572 -12000 600 L
-277572 -12000 278322 -11250 600 L
-278322 -11250 278322 -9000 600 L
-275322 -12000 276072 -11250 600 L
-280874 -9000 283124 -9000 600 L
-283124 -9000 283874 -9750 600 L
-283124 -10500 283874 -9750 600 L
-280874 -10500 283124 -10500 600 L
-280124 -11250 280874 -10500 600 L
-280124 -11250 280874 -12000 600 L
-280874 -12000 283124 -12000 600 L
-283124 -12000 283874 -11250 600 L
-280124 -9750 280874 -9000 600 L
-285675 -12750 286425 -12750 600 L
-285675 -11250 286425 -11250 600 L
-290927 -9000 294677 -12750 600 L
-294677 -15000 294677 -12750 600 L
-290927 -15000 294677 -15000 600 L
-297228 -9000 298728 -9000 600 L
-297978 -15000 297978 -9000 600 L
-296478 -13500 297978 -15000 600 L
-300530 -9750 301280 -9000 600 L
-300530 -14250 300530 -9750 600 L
-300530 -14250 301280 -15000 600 L
-301280 -15000 302780 -15000 600 L
-302780 -15000 303530 -14250 600 L
-303530 -14250 303530 -9750 600 L
-302780 -9000 303530 -9750 600 L
-301280 -9000 302780 -9000 600 L
-300530 -10500 303530 -13500 600 L
-305331 -9750 306081 -9000 600 L
-305331 -14250 305331 -9750 600 L
-305331 -14250 306081 -15000 600 L
-306081 -15000 307581 -15000 600 L
-307581 -15000 308331 -14250 600 L
-308331 -14250 308331 -9750 600 L
-307581 -9000 308331 -9750 600 L
-306081 -9000 307581 -9000 600 L
-305331 -10500 308331 -13500 600 L
-313583 -11250 313583 -9000 600 L
-313583 -11250 314333 -12000 600 L
-314333 -12000 315083 -12000 600 L
-315083 -12000 315833 -11250 600 L
-315833 -11250 315833 -9000 600 L
-315833 -11250 316583 -12000 600 L
-316583 -12000 317333 -12000 600 L
-317333 -12000 318083 -11250 600 L
-318083 -11250 318083 -9000 600 L
-312833 -12000 313583 -11250 600 L
-319884 -13500 319884 -12750 600 L
-319884 -11250 319884 -9000 600 L
-321386 -15000 321386 -9750 600 L
-321386 -9750 322136 -9000 600 L
-324387 -9000 326637 -9000 600 L
-326637 -9000 327387 -9750 600 L
-326637 -10500 327387 -9750 600 L
-324387 -10500 326637 -10500 600 L
-323637 -11250 324387 -10500 600 L
-323637 -11250 324387 -12000 600 L
-324387 -12000 326637 -12000 600 L
-326637 -12000 327387 -11250 600 L
-323637 -9750 324387 -9000 600 L
-331889 -12000 331889 -9750 600 L
-331889 -9750 332639 -9000 600 L
-332639 -9000 333389 -9000 600 L
-333389 -9000 334139 -9750 600 L
-334139 -12000 334139 -9750 600 L
-334139 -9750 334889 -9000 600 L
-334889 -9000 335639 -9000 600 L
-335639 -9000 336389 -9750 600 L
-336389 -12000 336389 -9750 600 L
-338190 -13500 338190 -12750 600 L
-338190 -11250 338190 -9000 600 L
-342692 -15000 342692 -9000 600 L
-341942 -9000 342692 -9750 600 L
-340442 -9000 341942 -9000 600 L
-339692 -9750 340442 -9000 600 L
-339692 -11250 339692 -9750 600 L
-339692 -11250 340442 -12000 600 L
-340442 -12000 341942 -12000 600 L
-341942 -12000 342692 -11250 600 L
-345243 -9000 347493 -9000 600 L
-344493 -9750 345243 -9000 600 L
-344493 -11250 344493 -9750 600 L
-344493 -11250 345243 -12000 600 L
-345243 -12000 346743 -12000 600 L
-346743 -12000 347493 -11250 600 L
-344493 -10500 347493 -10500 600 L
-347493 -11250 347493 -10500 600 L
-349295 -7500 350795 -9000 600 L
-355296 -12000 358296 -15000 600 L
-355296 -12000 359046 -12000 600 L
-358296 -15000 358296 -9000 600 L
-361598 -9000 363098 -9000 600 L
-362348 -15000 362348 -9000 600 L
-360848 -13500 362348 -15000 600 L
-364899 -9750 365649 -9000 600 L
-364899 -14250 364899 -9750 600 L
-364899 -14250 365649 -15000 600 L
-365649 -15000 367149 -15000 600 L
-367149 -15000 367899 -14250 600 L
-367899 -14250 367899 -9750 600 L
-367149 -9000 367899 -9750 600 L
-365649 -9000 367149 -9000 600 L
-364899 -10500 367899 -13500 600 L
-369701 -9750 370451 -9000 600 L
-369701 -14250 369701 -9750 600 L
-369701 -14250 370451 -15000 600 L
-370451 -15000 371951 -15000 600 L
-371951 -15000 372701 -14250 600 L
-372701 -14250 372701 -9750 600 L
-371951 -9000 372701 -9750 600 L
-370451 -9000 371951 -9000 600 L
-369701 -10500 372701 -13500 600 L
-377952 -11250 377952 -9000 600 L
-377952 -11250 378702 -12000 600 L
-378702 -12000 379452 -12000 600 L
-379452 -12000 380202 -11250 600 L
-380202 -11250 380202 -9000 600 L
-380202 -11250 380952 -12000 600 L
-380952 -12000 381702 -12000 600 L
-381702 -12000 382452 -11250 600 L
-382452 -11250 382452 -9000 600 L
-377202 -12000 377952 -11250 600 L
-384254 -13500 384254 -12750 600 L
-384254 -11250 384254 -9000 600 L
-385755 -15000 385755 -9750 600 L
-385755 -9750 386505 -9000 600 L
-388757 -9000 391007 -9000 600 L
-391007 -9000 391757 -9750 600 L
-391007 -10500 391757 -9750 600 L
-388757 -10500 391007 -10500 600 L
-388007 -11250 388757 -10500 600 L
-388007 -11250 388757 -12000 600 L
-388757 -12000 391007 -12000 600 L
-391007 -12000 391757 -11250 600 L
-388007 -9750 388757 -9000 600 L
-396258 -15000 396258 -9000 600 L
-396258 -11250 397008 -12000 600 L
-397008 -12000 398508 -12000 600 L
-398508 -12000 399258 -11250 600 L
-399258 -11250 399258 -9000 600 L
-401060 -13500 401060 -12750 600 L
-401060 -11250 401060 -9000 600 L
-404811 -12000 405561 -11250 600 L
-403311 -12000 404811 -12000 600 L
-402561 -11250 403311 -12000 600 L
-402561 -11250 402561 -9750 600 L
-402561 -9750 403311 -9000 600 L
-403311 -9000 404811 -9000 600 L
-404811 -9000 405561 -9750 600 L
-402561 -7500 403311 -6750 600 L
-403311 -6750 404811 -6750 600 L
-404811 -6750 405561 -7500 600 L
-405561 -12000 405561 -7500 600 L
-407363 -15000 407363 -9000 600 L
-407363 -11250 408113 -12000 600 L
-408113 -12000 409613 -12000 600 L
-409613 -12000 410363 -11250 600 L
-410363 -11250 410363 -9000 600 L
-0 0 710000 410000 Outline
-197226 418000 200226 418000 600 L
-200226 418000 200976 417250 600 L
-200976 415750 200976 417250 600 L
-200226 415000 200976 415750 600 L
-197976 415000 200226 415000 600 L
-197976 412000 197976 418000 600 L
-197226 412000 200226 412000 600 L
-200226 412000 200976 412750 600 L
-200976 412750 200976 414250 600 L
-200226 415000 200976 414250 600 L
-202777 415750 202777 417250 600 L
-202777 415750 203527 415000 600 L
-203527 415000 205027 415000 600 L
-205027 415000 205777 415750 600 L
-205777 415750 205777 417250 600 L
-205027 418000 205777 417250 600 L
-203527 418000 205027 418000 600 L
-202777 417250 203527 418000 600 L
-209829 415000 210579 415750 600 L
-208329 415000 209829 415000 600 L
-207579 415750 208329 415000 600 L
-207579 415750 207579 417250 600 L
-207579 417250 208329 418000 600 L
-210579 415000 210579 417250 600 L
-210579 417250 211329 418000 600 L
-208329 418000 209829 418000 600 L
-209829 418000 210579 417250 600 L
-213880 415750 213880 418000 600 L
-213880 415750 214630 415000 600 L
-214630 415000 216130 415000 600 L
-213130 415000 213880 415750 600 L
-220932 412000 220932 418000 600 L
-220182 418000 220932 417250 600 L
-218682 418000 220182 418000 600 L
-217932 417250 218682 418000 600 L
-217932 415750 217932 417250 600 L
-217932 415750 218682 415000 600 L
-218682 415000 220182 415000 600 L
-220182 415000 220932 415750 600 L
-225433 415750 225433 417250 600 L
-225433 415750 226183 415000 600 L
-226183 415000 227683 415000 600 L
-227683 415000 228433 415750 600 L
-228433 415750 228433 417250 600 L
-227683 418000 228433 417250 600 L
-226183 418000 227683 418000 600 L
-225433 417250 226183 418000 600 L
-230235 415000 230235 417250 600 L
-230235 417250 230985 418000 600 L
-230985 418000 232485 418000 600 L
-232485 418000 233235 417250 600 L
-233235 415000 233235 417250 600 L
-235786 412000 235786 417250 600 L
-235786 417250 236536 418000 600 L
-235036 414250 236536 414250 600 L
-238038 412000 238038 417250 600 L
-238038 417250 238788 418000 600 L
-240289 413500 240289 414250 600 L
-240289 415750 240289 418000 600 L
-242541 415750 242541 418000 600 L
-242541 415750 243291 415000 600 L
-243291 415000 244041 415000 600 L
-244041 415000 244791 415750 600 L
-244791 415750 244791 418000 600 L
-241791 415000 242541 415750 600 L
-247342 418000 249592 418000 600 L
-246592 417250 247342 418000 600 L
-246592 415750 246592 417250 600 L
-246592 415750 247342 415000 600 L
-247342 415000 248842 415000 600 L
-248842 415000 249592 415750 600 L
-246592 416500 249592 416500 600 L
-249592 415750 249592 416500 600 L
-254094 413500 254094 414250 600 L
-254094 415750 254094 418000 600 L
-256345 418000 258595 418000 600 L
-258595 418000 259345 417250 600 L
-258595 416500 259345 417250 600 L
-256345 416500 258595 416500 600 L
-255595 415750 256345 416500 600 L
-255595 415750 256345 415000 600 L
-256345 415000 258595 415000 600 L
-258595 415000 259345 415750 600 L
-255595 417250 256345 418000 600 L
-264597 412000 264597 417250 600 L
-264597 417250 265347 418000 600 L
-263847 414250 265347 414250 600 L
-266848 412000 266848 418000 600 L
-266848 415750 267598 415000 600 L
-267598 415000 269098 415000 600 L
-269098 415000 269848 415750 600 L
-269848 415750 269848 418000 600 L
-272400 418000 274650 418000 600 L
-271650 417250 272400 418000 600 L
-271650 415750 271650 417250 600 L
-271650 415750 272400 415000 600 L
-272400 415000 273900 415000 600 L
-273900 415000 274650 415750 600 L
-271650 416500 274650 416500 600 L
-274650 415750 274650 416500 600 L
-279901 415000 282151 415000 600 L
-279151 415750 279901 415000 600 L
-279151 415750 279151 417250 600 L
-279151 417250 279901 418000 600 L
-279901 418000 282151 418000 600 L
-284703 418000 286953 418000 600 L
-283953 417250 284703 418000 600 L
-283953 415750 283953 417250 600 L
-283953 415750 284703 415000 600 L
-284703 415000 286203 415000 600 L
-286203 415000 286953 415750 600 L
-283953 416500 286953 416500 600 L
-286953 415750 286953 416500 600 L
-289504 415750 289504 418000 600 L
-289504 415750 290254 415000 600 L
-290254 415000 291004 415000 600 L
-291004 415000 291754 415750 600 L
-291754 415750 291754 418000 600 L
-288754 415000 289504 415750 600 L
-294306 412000 294306 417250 600 L
-294306 417250 295056 418000 600 L
-293556 414250 295056 414250 600 L
-297307 418000 299557 418000 600 L
-296557 417250 297307 418000 600 L
-296557 415750 296557 417250 600 L
-296557 415750 297307 415000 600 L
-297307 415000 298807 415000 600 L
-298807 415000 299557 415750 600 L
-296557 416500 299557 416500 600 L
-299557 415750 299557 416500 600 L
-302109 415750 302109 418000 600 L
-302109 415750 302859 415000 600 L
-302859 415000 304359 415000 600 L
-301359 415000 302109 415750 600 L
-306160 412000 306160 417250 600 L
-306160 417250 306910 418000 600 L
-308412 413500 308412 414250 600 L
-308412 415750 308412 418000 600 L
-310663 415750 310663 418000 600 L
-310663 415750 311413 415000 600 L
-311413 415000 312163 415000 600 L
-312163 415000 312913 415750 600 L
-312913 415750 312913 418000 600 L
-309913 415000 310663 415750 600 L
-315465 418000 317715 418000 600 L
-314715 417250 315465 418000 600 L
-314715 415750 314715 417250 600 L
-314715 415750 315465 415000 600 L
-315465 415000 316965 415000 600 L
-316965 415000 317715 415750 600 L
-314715 416500 317715 416500 600 L
-317715 415750 317715 416500 600 L
-322216 415750 322216 417250 600 L
-322216 415750 322966 415000 600 L
-322966 415000 324466 415000 600 L
-324466 415000 325216 415750 600 L
-325216 415750 325216 417250 600 L
-324466 418000 325216 417250 600 L
-322966 418000 324466 418000 600 L
-322216 417250 322966 418000 600 L
-327768 412750 327768 418000 600 L
-327768 412750 328518 412000 600 L
-328518 412000 329268 412000 600 L
-327018 415000 328518 415000 600 L
-334219 412000 334219 417250 600 L
-334219 417250 334969 418000 600 L
-333469 414250 334969 414250 600 L
-336471 412000 336471 418000 600 L
-336471 415750 337221 415000 600 L
-337221 415000 338721 415000 600 L
-338721 415000 339471 415750 600 L
-339471 415750 339471 418000 600 L
-341272 413500 341272 414250 600 L
-341272 415750 341272 418000 600 L
-343524 418000 345774 418000 600 L
-345774 418000 346524 417250 600 L
-345774 416500 346524 417250 600 L
-343524 416500 345774 416500 600 L
-342774 415750 343524 416500 600 L
-342774 415750 343524 415000 600 L
-343524 415000 345774 415000 600 L
-345774 415000 346524 415750 600 L
-342774 417250 343524 418000 600 L
-351775 418000 353275 418000 600 L
-352525 412000 352525 418000 600 L
-351025 413500 352525 412000 600 L
-355077 417250 355827 418000 600 L
-355077 412750 355077 417250 600 L
-355077 412750 355827 412000 600 L
-355827 412000 357327 412000 600 L
-357327 412000 358077 412750 600 L
-358077 412750 358077 417250 600 L
-357327 418000 358077 417250 600 L
-355827 418000 357327 418000 600 L
-355077 416500 358077 413500 600 L
-363328 415750 363328 418000 600 L
-363328 415750 364078 415000 600 L
-364078 415000 364828 415000 600 L
-364828 415000 365578 415750 600 L
-365578 415750 365578 418000 600 L
-365578 415750 366328 415000 600 L
-366328 415000 367078 415000 600 L
-367078 415000 367828 415750 600 L
-367828 415750 367828 418000 600 L
-362578 415000 363328 415750 600 L
-369630 413500 369630 414250 600 L
-369630 415750 369630 418000 600 L
-371131 412000 371131 417250 600 L
-371131 417250 371881 418000 600 L
-376833 415750 376833 418000 600 L
-376833 415750 377583 415000 600 L
-377583 415000 379083 415000 600 L
-376083 415000 376833 415750 600 L
-381634 418000 383884 418000 600 L
-380884 417250 381634 418000 600 L
-380884 415750 380884 417250 600 L
-380884 415750 381634 415000 600 L
-381634 415000 383134 415000 600 L
-383134 415000 383884 415750 600 L
-380884 416500 383884 416500 600 L
-383884 415750 383884 416500 600 L
-386436 415000 388686 415000 600 L
-385686 415750 386436 415000 600 L
-385686 415750 385686 417250 600 L
-385686 417250 386436 418000 600 L
-386436 418000 388686 418000 600 L
-391237 412000 391237 417250 600 L
-391237 417250 391987 418000 600 L
-390487 414250 391987 414250 600 L
-395739 415000 396489 415750 600 L
-394239 415000 395739 415000 600 L
-393489 415750 394239 415000 600 L
-393489 415750 393489 417250 600 L
-393489 417250 394239 418000 600 L
-396489 415000 396489 417250 600 L
-396489 417250 397239 418000 600 L
-394239 418000 395739 418000 600 L
-395739 418000 396489 417250 600 L
-399790 415750 399790 418000 600 L
-399790 415750 400540 415000 600 L
-400540 415000 401290 415000 600 L
-401290 415000 402040 415750 600 L
-402040 415750 402040 418000 600 L
-399040 415000 399790 415750 600 L
-406092 415000 406842 415750 600 L
-404592 415000 406092 415000 600 L
-403842 415750 404592 415000 600 L
-403842 415750 403842 417250 600 L
-403842 417250 404592 418000 600 L
-404592 418000 406092 418000 600 L
-406092 418000 406842 417250 600 L
-403842 419500 404592 420250 600 L
-404592 420250 406092 420250 600 L
-406092 420250 406842 419500 600 L
-406842 415000 406842 419500 600 L
-408643 412000 408643 417250 600 L
-408643 417250 409393 418000 600 L
-411645 418000 413895 418000 600 L
-410895 417250 411645 418000 600 L
-410895 415750 410895 417250 600 L
-410895 415750 411645 415000 600 L
-411645 415000 413145 415000 600 L
-413145 415000 413895 415750 600 L
-410895 416500 413895 416500 600 L
-413895 415750 413895 416500 600 L
-418396 415000 421396 415000 600 L
-425898 417250 426648 418000 600 L
-425898 412750 425898 417250 600 L
-425898 412750 426648 412000 600 L
-426648 412000 428148 412000 600 L
-428148 412000 428898 412750 600 L
-428898 412750 428898 417250 600 L
-428148 418000 428898 417250 600 L
-426648 418000 428148 418000 600 L
-425898 416500 428898 413500 600 L
-430699 419500 432199 418000 600 L
-434001 417250 434751 418000 600 L
-434001 412750 434001 417250 600 L
-434001 412750 434751 412000 600 L
-434751 412000 436251 412000 600 L
-436251 412000 437001 412750 600 L
-437001 412750 437001 417250 600 L
-436251 418000 437001 417250 600 L
-434751 418000 436251 418000 600 L
-434001 416500 437001 413500 600 L
-442252 412000 442252 417250 600 L
-442252 417250 443002 418000 600 L
-441502 414250 443002 414250 600 L
-444504 415750 444504 417250 600 L
-444504 415750 445254 415000 600 L
-445254 415000 446754 415000 600 L
-446754 415000 447504 415750 600 L
-447504 415750 447504 417250 600 L
-446754 418000 447504 417250 600 L
-445254 418000 446754 418000 600 L
-444504 417250 445254 418000 600 L
-452005 418000 455755 414250 600 L
-455755 412000 455755 414250 600 L
-452005 412000 455755 412000 600 L
-458307 418000 459807 418000 600 L
-459057 412000 459057 418000 600 L
-457557 413500 459057 412000 600 L
-461608 417250 462358 418000 600 L
-461608 412750 461608 417250 600 L
-461608 412750 462358 412000 600 L
-462358 412000 463858 412000 600 L
-463858 412000 464608 412750 600 L
-464608 412750 464608 417250 600 L
-463858 418000 464608 417250 600 L
-462358 418000 463858 418000 600 L
-461608 416500 464608 413500 600 L
-466410 417250 467160 418000 600 L
-466410 412750 466410 417250 600 L
-466410 412750 467160 412000 600 L
-467160 412000 468660 412000 600 L
-468660 412000 469410 412750 600 L
-469410 412750 469410 417250 600 L
-468660 418000 469410 417250 600 L
-467160 418000 468660 418000 600 L
-466410 416500 469410 413500 600 L
-471211 419500 472711 418000 600 L
-474513 415000 477513 412000 600 L
-474513 415000 478263 415000 600 L
-477513 412000 477513 418000 600 L
-480814 418000 482314 418000 600 L
-481564 412000 481564 418000 600 L
-480064 413500 481564 412000 600 L
-484116 417250 484866 418000 600 L
-484116 412750 484116 417250 600 L
-484116 412750 484866 412000 600 L
-484866 412000 486366 412000 600 L
-486366 412000 487116 412750 600 L
-487116 412750 487116 417250 600 L
-486366 418000 487116 417250 600 L
-484866 418000 486366 418000 600 L
-484116 416500 487116 413500 600 L
-488917 417250 489667 418000 600 L
-488917 412750 488917 417250 600 L
-488917 412750 489667 412000 600 L
-489667 412000 491167 412000 600 L
-491167 412000 491917 412750 600 L
-491917 412750 491917 417250 600 L
-491167 418000 491917 417250 600 L
-489667 418000 491167 418000 600 L
-488917 416500 491917 413500 600 L
-497169 415750 497169 418000 600 L
-497169 415750 497919 415000 600 L
-497919 415000 498669 415000 600 L
-498669 415000 499419 415750 600 L
-499419 415750 499419 418000 600 L
-499419 415750 500169 415000 600 L
-500169 415000 500919 415000 600 L
-500919 415000 501669 415750 600 L
-501669 415750 501669 418000 600 L
-496419 415000 497169 415750 600 L
-503470 413500 503470 414250 600 L
-503470 415750 503470 418000 600 L
-504972 412000 504972 417250 600 L
-504972 417250 505722 418000 600 L
-507973 418000 510223 418000 600 L
-510223 418000 510973 417250 600 L
-510223 416500 510973 417250 600 L
-507973 416500 510223 416500 600 L
-507223 415750 507973 416500 600 L
-507223 415750 507973 415000 600 L
-507973 415000 510223 415000 600 L
-510223 415000 510973 415750 600 L
-507223 417250 507973 418000 600 L
-200750 -30000 200750 -24000 600 L
-203000 -30000 203750 -29250 600 L
-203750 -29250 203750 -24750 600 L
-203000 -24000 203750 -24750 600 L
-200000 -24000 203000 -24000 600 L
-200000 -30000 203000 -30000 600 L
-207801 -27000 208551 -26250 600 L
-206301 -27000 207801 -27000 600 L
-205551 -26250 206301 -27000 600 L
-205551 -26250 205551 -24750 600 L
-205551 -24750 206301 -24000 600 L
-208551 -27000 208551 -24750 600 L
-208551 -24750 209301 -24000 600 L
-206301 -24000 207801 -24000 600 L
-207801 -24000 208551 -24750 600 L
-211853 -30000 211853 -24750 600 L
-211853 -24750 212603 -24000 600 L
-211103 -27750 212603 -27750 600 L
-214854 -24000 217104 -24000 600 L
-214104 -24750 214854 -24000 600 L
-214104 -26250 214104 -24750 600 L
-214104 -26250 214854 -27000 600 L
-214854 -27000 216354 -27000 600 L
-216354 -27000 217104 -26250 600 L
-214104 -25500 217104 -25500 600 L
-217104 -26250 217104 -25500 600 L
-218906 -27750 219656 -27750 600 L
-218906 -26250 219656 -26250 600 L
-224157 -30000 227157 -30000 600 L
-225657 -30000 225657 -24000 600 L
-228959 -27000 228959 -24750 600 L
-228959 -24750 229709 -24000 600 L
-229709 -24000 231209 -24000 600 L
-231209 -24000 231959 -24750 600 L
-231959 -27000 231959 -24750 600 L
-234510 -24000 236760 -24000 600 L
-233760 -24750 234510 -24000 600 L
-233760 -26250 233760 -24750 600 L
-233760 -26250 234510 -27000 600 L
-234510 -27000 236010 -27000 600 L
-236010 -27000 236760 -26250 600 L
-233760 -25500 236760 -25500 600 L
-236760 -26250 236760 -25500 600 L
-241262 -30000 241262 -24000 600 L
-241262 -30000 241262 -29250 600 L
-241262 -29250 245012 -25500 600 L
-245012 -30000 245012 -24000 600 L
-246813 -26250 246813 -24750 600 L
-246813 -26250 247563 -27000 600 L
-247563 -27000 249063 -27000 600 L
-249063 -27000 249813 -26250 600 L
-249813 -26250 249813 -24750 600 L
-249063 -24000 249813 -24750 600 L
-247563 -24000 249063 -24000 600 L
-246813 -24750 247563 -24000 600 L
-251615 -27000 251615 -25500 600 L
-251615 -25500 253115 -24000 600 L
-253115 -24000 254615 -25500 600 L
-254615 -27000 254615 -25500 600 L
-259116 -29250 259866 -30000 600 L
-259866 -30000 262116 -30000 600 L
-262116 -30000 262866 -29250 600 L
-262866 -29250 262866 -27750 600 L
-259116 -24000 262866 -27750 600 L
-259116 -24000 262866 -24000 600 L
-264668 -24000 268418 -27750 600 L
-268418 -30000 268418 -27750 600 L
-264668 -30000 268418 -30000 600 L
-273669 -24000 275169 -24000 600 L
-274419 -30000 274419 -24000 600 L
-272919 -28500 274419 -30000 600 L
-277721 -24000 279221 -24000 600 L
-278471 -30000 278471 -24000 600 L
-276971 -28500 278471 -30000 600 L
-281022 -27750 281772 -27750 600 L
-281022 -26250 281772 -26250 600 L
-283574 -27000 286574 -30000 600 L
-283574 -27000 287324 -27000 600 L
-286574 -30000 286574 -24000 600 L
-289125 -24000 292125 -27000 600 L
-292125 -29250 292125 -27000 600 L
-291375 -30000 292125 -29250 600 L
-289875 -30000 291375 -30000 600 L
-289125 -29250 289875 -30000 600 L
-289125 -29250 289125 -27750 600 L
-289125 -27750 289875 -27000 600 L
-289875 -27000 292125 -27000 600 L
-293927 -27750 294677 -27750 600 L
-293927 -26250 294677 -26250 600 L
-296478 -29250 297228 -30000 600 L
-297228 -30000 299478 -30000 600 L
-299478 -30000 300228 -29250 600 L
-300228 -29250 300228 -27750 600 L
-296478 -24000 300228 -27750 600 L
-296478 -24000 300228 -24000 600 L
-302030 -24000 305780 -27750 600 L
-305780 -30000 305780 -27750 600 L
-302030 -30000 305780 -30000 600 L
-310281 -29250 311031 -30000 600 L
-311031 -30000 313281 -30000 600 L
-313281 -30000 314031 -29250 600 L
-314031 -29250 314031 -27750 600 L
-310281 -24000 314031 -27750 600 L
-310281 -24000 314031 -24000 600 L
-315833 -24750 316583 -24000 600 L
-315833 -29250 315833 -24750 600 L
-315833 -29250 316583 -30000 600 L
-316583 -30000 318083 -30000 600 L
-318083 -30000 318833 -29250 600 L
-318833 -29250 318833 -24750 600 L
-318083 -24000 318833 -24750 600 L
-316583 -24000 318083 -24000 600 L
-315833 -25500 318833 -28500 600 L
-320634 -24750 321384 -24000 600 L
-320634 -29250 320634 -24750 600 L
-320634 -29250 321384 -30000 600 L
-321384 -30000 322884 -30000 600 L
-322884 -30000 323634 -29250 600 L
-323634 -29250 323634 -24750 600 L
-322884 -24000 323634 -24750 600 L
-321384 -24000 322884 -24000 600 L
-320634 -25500 323634 -28500 600 L
-325436 -24000 329186 -27750 600 L
-329186 -30000 329186 -27750 600 L
-325436 -30000 329186 -30000 600 L
-333687 -30000 333687 -24750 600 L
-333687 -24750 334437 -24000 600 L
-334437 -24000 335937 -24000 600 L
-335937 -24000 336687 -24750 600 L
-336687 -30000 336687 -24750 600 L
-338489 -30000 341489 -30000 600 L
-339989 -30000 339989 -24000 600 L
-344040 -24000 346290 -24000 600 L
-343290 -24750 344040 -24000 600 L
-343290 -29250 343290 -24750 600 L
-343290 -29250 344040 -30000 600 L
-344040 -30000 346290 -30000 600 L
-200000 -44250 200000 -39000 600 L
-200000 -44250 200750 -45000 600 L
-200750 -45000 203000 -45000 600 L
-203000 -45000 203750 -44250 600 L
-203750 -44250 203750 -39000 600 L
-200000 -42000 203750 -42000 600 L
-205551 -42000 205551 -39750 600 L
-205551 -39750 206301 -39000 600 L
-206301 -39000 207801 -39000 600 L
-207801 -39000 208551 -39750 600 L
-208551 -42000 208551 -39750 600 L
-211103 -45000 211103 -39750 600 L
-211103 -39750 211853 -39000 600 L
-210353 -42750 211853 -42750 600 L
-213354 -45000 213354 -39000 600 L
-213354 -41250 214104 -42000 600 L
-214104 -42000 215604 -42000 600 L
-215604 -42000 216354 -41250 600 L
-216354 -41250 216354 -39000 600 L
-218156 -41250 218156 -39750 600 L
-218156 -41250 218906 -42000 600 L
-218906 -42000 220406 -42000 600 L
-220406 -42000 221156 -41250 600 L
-221156 -41250 221156 -39750 600 L
-220406 -39000 221156 -39750 600 L
-218906 -39000 220406 -39000 600 L
-218156 -39750 218906 -39000 600 L
-223707 -41250 223707 -39000 600 L
-223707 -41250 224457 -42000 600 L
-224457 -42000 225957 -42000 600 L
-222957 -42000 223707 -41250 600 L
-227759 -42750 228509 -42750 600 L
-227759 -41250 228509 -41250 600 L
-233010 -45000 233010 -39000 600 L
-233010 -39000 235260 -41250 600 L
-235260 -41250 237510 -39000 600 L
-237510 -45000 237510 -39000 600 L
-241562 -42000 242312 -41250 600 L
-240062 -42000 241562 -42000 600 L
-239312 -41250 240062 -42000 600 L
-239312 -41250 239312 -39750 600 L
-239312 -39750 240062 -39000 600 L
-242312 -42000 242312 -39750 600 L
-242312 -39750 243062 -39000 600 L
-240062 -39000 241562 -39000 600 L
-241562 -39000 242312 -39750 600 L
-244863 -45000 244863 -39750 600 L
-244863 -39750 245613 -39000 600 L
-247865 -45000 247865 -39750 600 L
-247865 -39750 248615 -39000 600 L
-247115 -42750 248615 -42750 600 L
-250866 -39000 253116 -39000 600 L
-250116 -39750 250866 -39000 600 L
-250116 -41250 250116 -39750 600 L
-250116 -41250 250866 -42000 600 L
-250866 -42000 252366 -42000 600 L
-252366 -42000 253116 -41250 600 L
-250116 -40500 253116 -40500 600 L
-253116 -41250 253116 -40500 600 L
-255668 -41250 255668 -39000 600 L
-255668 -41250 256418 -42000 600 L
-256418 -42000 257918 -42000 600 L
-254918 -42000 255668 -41250 600 L
-262419 -45000 262419 -39000 600 L
-262419 -45000 265419 -45000 600 L
-262419 -42000 264669 -42000 600 L
-267971 -39000 270221 -39000 600 L
-267221 -39750 267971 -39000 600 L
-267221 -41250 267221 -39750 600 L
-267221 -41250 267971 -42000 600 L
-267971 -42000 269471 -42000 600 L
-269471 -42000 270221 -41250 600 L
-267221 -40500 270221 -40500 600 L
-270221 -41250 270221 -40500 600 L
-272772 -45000 272772 -39750 600 L
-272772 -39750 273522 -39000 600 L
-272022 -42750 273522 -42750 600 L
-275774 -45000 275774 -39750 600 L
-275774 -39750 276524 -39000 600 L
-275024 -42750 276524 -42750 600 L
-278775 -39000 281025 -39000 600 L
-278025 -39750 278775 -39000 600 L
-278025 -41250 278025 -39750 600 L
-278025 -41250 278775 -42000 600 L
-278775 -42000 280275 -42000 600 L
-280275 -42000 281025 -41250 600 L
-278025 -40500 281025 -40500 600 L
-281025 -41250 281025 -40500 600 L
-283577 -41250 283577 -39000 600 L
-283577 -41250 284327 -42000 600 L
-284327 -42000 285827 -42000 600 L
-282827 -42000 283577 -41250 600 L
-290328 -45000 290328 -39000 600 L
-290328 -39000 293328 -39000 600 L
-297380 -42000 298130 -41250 600 L
-295880 -42000 297380 -42000 600 L
-295130 -41250 295880 -42000 600 L
-295130 -41250 295130 -39750 600 L
-295130 -39750 295880 -39000 600 L
-298130 -42000 298130 -39750 600 L
-298130 -39750 298880 -39000 600 L
-295880 -39000 297380 -39000 600 L
-297380 -39000 298130 -39750 600 L
-302931 -42000 303681 -41250 600 L
-301431 -42000 302931 -42000 600 L
-300681 -41250 301431 -42000 600 L
-300681 -41250 300681 -39750 600 L
-300681 -39750 301431 -39000 600 L
-301431 -39000 302931 -39000 600 L
-302931 -39000 303681 -39750 600 L
-300681 -37500 301431 -36750 600 L
-301431 -36750 302931 -36750 600 L
-302931 -36750 303681 -37500 600 L
-303681 -42000 303681 -37500 600 L
-306233 -39000 308483 -39000 600 L
-305483 -39750 306233 -39000 600 L
-305483 -41250 305483 -39750 600 L
-305483 -41250 306233 -42000 600 L
-306233 -42000 307733 -42000 600 L
-307733 -42000 308483 -41250 600 L
-305483 -40500 308483 -40500 600 L
-308483 -41250 308483 -40500 600 L
-311034 -39000 313284 -39000 600 L
-313284 -39000 314034 -39750 600 L
-313284 -40500 314034 -39750 600 L
-311034 -40500 313284 -40500 600 L
-310284 -41250 311034 -40500 600 L
-310284 -41250 311034 -42000 600 L
-311034 -42000 313284 -42000 600 L
-313284 -42000 314034 -41250 600 L
-310284 -39750 311034 -39000 600 L
-200000 -60000 203000 -60000 600 L
-201500 -60000 201500 -54000 600 L
-204801 -58500 204801 -57750 600 L
-204801 -56250 204801 -54000 600 L
-207053 -60000 207053 -54750 600 L
-207053 -54750 207803 -54000 600 L
-206303 -57750 207803 -57750 600 L
-209304 -60000 209304 -54750 600 L
-209304 -54750 210054 -54000 600 L
-212306 -54000 214556 -54000 600 L
-211556 -54750 212306 -54000 600 L
-211556 -56250 211556 -54750 600 L
-211556 -56250 212306 -57000 600 L
-212306 -57000 213806 -57000 600 L
-213806 -57000 214556 -56250 600 L
-211556 -55500 214556 -55500 600 L
-214556 -56250 214556 -55500 600 L
-216357 -57750 217107 -57750 600 L
-216357 -56250 217107 -56250 600 L
-221609 -54750 222359 -54000 600 L
-221609 -59250 222359 -60000 600 L
-221609 -59250 221609 -54750 600 L
-224160 -57000 224160 -54750 600 L
-224160 -54750 224910 -54000 600 L
-224910 -54000 226410 -54000 600 L
-226410 -54000 227160 -54750 600 L
-227160 -57000 227160 -54750 600 L
-229712 -56250 229712 -54000 600 L
-229712 -56250 230462 -57000 600 L
-230462 -57000 231212 -57000 600 L
-231212 -57000 231962 -56250 600 L
-231962 -56250 231962 -54000 600 L
-228962 -57000 229712 -56250 600 L
-233763 -60000 233763 -54000 600 L
-233763 -56250 236013 -54000 600 L
-233763 -56250 235263 -57750 600 L
-238565 -56250 238565 -54000 600 L
-238565 -56250 239315 -57000 600 L
-239315 -57000 240065 -57000 600 L
-240065 -57000 240815 -56250 600 L
-240815 -56250 240815 -54000 600 L
-237815 -57000 238565 -56250 600 L
-242616 -56250 242616 -54750 600 L
-242616 -56250 243366 -57000 600 L
-243366 -57000 244866 -57000 600 L
-244866 -57000 245616 -56250 600 L
-245616 -56250 245616 -54750 600 L
-244866 -54000 245616 -54750 600 L
-243366 -54000 244866 -54000 600 L
-242616 -54750 243366 -54000 600 L
-247418 -57000 247418 -54750 600 L
-247418 -54750 248168 -54000 600 L
-248168 -54000 248918 -54000 600 L
-248918 -54000 249668 -54750 600 L
-249668 -57000 249668 -54750 600 L
-249668 -54750 250418 -54000 600 L
-250418 -54000 251168 -54000 600 L
-251168 -54000 251918 -54750 600 L
-251918 -57000 251918 -54750 600 L
-254469 -56250 254469 -54000 600 L
-254469 -56250 255219 -57000 600 L
-255219 -57000 255969 -57000 600 L
-255969 -57000 256719 -56250 600 L
-256719 -56250 256719 -54000 600 L
-253719 -57000 254469 -56250 600 L
-258521 -60000 259271 -59250 600 L
-259271 -59250 259271 -54750 600 L
-258521 -54000 259271 -54750 600 L
-263772 -57000 266772 -57000 600 L
-271274 -60000 271274 -54000 600 L
-271274 -60000 274274 -60000 600 L
-271274 -57000 273524 -57000 600 L
-278325 -57000 279075 -56250 600 L
-276825 -57000 278325 -57000 600 L
-276075 -56250 276825 -57000 600 L
-276075 -56250 276075 -54750 600 L
-276075 -54750 276825 -54000 600 L
-279075 -57000 279075 -54750 600 L
-279075 -54750 279825 -54000 600 L
-276825 -54000 278325 -54000 600 L
-278325 -54000 279075 -54750 600 L
-281627 -60000 281627 -54000 600 L
-281627 -54750 282377 -54000 600 L
-282377 -54000 283877 -54000 600 L
-283877 -54000 284627 -54750 600 L
-284627 -56250 284627 -54750 600 L
-283877 -57000 284627 -56250 600 L
-282377 -57000 283877 -57000 600 L
-281627 -56250 282377 -57000 600 L
-287178 -56250 287178 -54000 600 L
-287178 -56250 287928 -57000 600 L
-287928 -57000 289428 -57000 600 L
-286428 -57000 287178 -56250 600 L
-291230 -58500 291230 -57750 600 L
-291230 -56250 291230 -54000 600 L
-293481 -57000 295731 -57000 600 L
-292731 -56250 293481 -57000 600 L
-292731 -56250 292731 -54750 600 L
-292731 -54750 293481 -54000 600 L
-293481 -54000 295731 -54000 600 L
-299783 -57000 300533 -56250 600 L
-298283 -57000 299783 -57000 600 L
-297533 -56250 298283 -57000 600 L
-297533 -56250 297533 -54750 600 L
-297533 -54750 298283 -54000 600 L
-300533 -57000 300533 -54750 600 L
-300533 -54750 301283 -54000 600 L
-298283 -54000 299783 -54000 600 L
-299783 -54000 300533 -54750 600 L
-303834 -60000 303834 -54750 600 L
-303834 -54750 304584 -54000 600 L
-303084 -57750 304584 -57750 600 L
-306086 -58500 306086 -57750 600 L
-306086 -56250 306086 -54000 600 L
-307587 -56250 307587 -54750 600 L
-307587 -56250 308337 -57000 600 L
-308337 -57000 309837 -57000 600 L
-309837 -57000 310587 -56250 600 L
-310587 -56250 310587 -54750 600 L
-309837 -54000 310587 -54750 600 L
-308337 -54000 309837 -54000 600 L
-307587 -54750 308337 -54000 600 L
-313139 -56250 313139 -54000 600 L
-313139 -56250 313889 -57000 600 L
-313889 -57000 314639 -57000 600 L
-314639 -57000 315389 -56250 600 L
-315389 -56250 315389 -54000 600 L
-312389 -57000 313139 -56250 600 L
-320640 -60000 320640 -54000 600 L
-322890 -60000 323640 -59250 600 L
-323640 -59250 323640 -54750 600 L
-322890 -54000 323640 -54750 600 L
-319890 -54000 322890 -54000 600 L
-319890 -60000 322890 -60000 600 L
-326192 -56250 326192 -54000 600 L
-326192 -56250 326942 -57000 600 L
-326942 -57000 328442 -57000 600 L
-325442 -57000 326192 -56250 600 L
-332493 -57000 333243 -56250 600 L
-330993 -57000 332493 -57000 600 L
-330243 -56250 330993 -57000 600 L
-330243 -56250 330243 -54750 600 L
-330243 -54750 330993 -54000 600 L
-333243 -57000 333243 -54750 600 L
-333243 -54750 333993 -54000 600 L
-330993 -54000 332493 -54000 600 L
-332493 -54000 333243 -54750 600 L
-335795 -57000 335795 -54750 600 L
-335795 -54750 336545 -54000 600 L
-336545 -54000 337295 -54000 600 L
-337295 -54000 338045 -54750 600 L
-338045 -57000 338045 -54750 600 L
-338045 -54750 338795 -54000 600 L
-338795 -54000 339545 -54000 600 L
-339545 -54000 340295 -54750 600 L
-340295 -57000 340295 -54750 600 L
-342096 -58500 342096 -57750 600 L
-342096 -56250 342096 -54000 600 L
-344348 -56250 344348 -54000 600 L
-344348 -56250 345098 -57000 600 L
-345098 -57000 345848 -57000 600 L
-345848 -57000 346598 -56250 600 L
-346598 -56250 346598 -54000 600 L
-343598 -57000 344348 -56250 600 L
-350649 -57000 351399 -56250 600 L
-349149 -57000 350649 -57000 600 L
-348399 -56250 349149 -57000 600 L
-348399 -56250 348399 -54750 600 L
-348399 -54750 349149 -54000 600 L
-349149 -54000 350649 -54000 600 L
-350649 -54000 351399 -54750 600 L
-348399 -52500 349149 -51750 600 L
-349149 -51750 350649 -51750 600 L
-350649 -51750 351399 -52500 600 L
-351399 -57000 351399 -52500 600 L
-grestore
-% PCBENDDATA --- do not remove ---
-showpage
-%%EOF
+++ /dev/null
-%!PS-Adobe-3.0
-%%Title: (unknown), layergroup #2
-%%Creator: pcb-bin 20060321
-%%CreationDate: Tue Nov 27 09:49:27 2007
-%%For: fetter (Walter Fetter Lages,,,)
-%%LanguageLevel: 1
-%%Orientation: Portrait
-%%Pages: 1
-%%PageOrder: Ascend
-%%DocumentMedia: A4 594 841
-%%EndComments
-%%BeginProlog
-
-/PcbDict 200 dict def
-PcbDict begin
-PcbDict /DictMatrix matrix put
-
-% some constants
-/Black {0.0 mysetgray} def
-/White {1.0 mysetgray} def
-/TAN {0.207106781} def
-/MTAN {-0.207106781} def
-
-% draw a filled polygon
-% get (x,y)... and number of points from stack
-/PO {
- /number exch def
- newpath
- moveto
- number 1 sub { lineto } repeat
- closepath fill stroke
-} def
-
-/P {
-% draw a pin-polygon,
-% get x, y and thickness from stack
- /thickness exch def /y exch def /x exch def
- gsave x y translate thickness thickness scale
- 0.5 MTAN
- TAN -0.5
- MTAN -0.5
- -0.5 MTAN
- -0.5 TAN
- MTAN 0.5
- TAN 0.5
- 0.5 TAN
- 8 PO grestore
-} def
-
-/PV {
-% pin or via, x, y and thickness are on the stack
- /drillinghole exch def /thickness exch def /y exch def /x exch def
- x y thickness P
-% draw drilling hole
- gsave White 0 setlinewidth
- newpath x y drillinghole 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/PVR {
-% pin or via, x, y and thickness are on the stack
- /drillinghole exch def /thickness exch def /y exch def /x exch def
- gsave 0 setlinewidth
- newpath x y thickness 2 div 0 360 arc closepath fill stroke
-% draw drilling whole
- White
- newpath x y drillinghole 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/PVSQ {
-% square pin or via, x, y and thickness are on the stack
- /drillinghole exch def /thickness exch def /y exch def /x exch def
- newpath x thickness 2 div sub y thickness 2 div sub moveto
- thickness 0 rlineto 0 thickness rlineto
- thickness neg 0 rlineto closepath fill stroke
-% draw drilling hole
- gsave White 0 setlinewidth
- newpath x y drillinghole 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/DH {
-% drill helpher; x, y, hole, copper-thickness are on stack
- /copper exch def /hole exch def /y exch def /x exch def
- gsave copper setlinewidth
- newpath x y hole copper add 2 div 0 360 arc closepath stroke
- grestore
-} def
-
-/L {
-% line, get x1, y1, x2, y2 and thickness from stack
- /thick exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave thick setlinewidth
- x1 y1 moveto x2 y2 lineto stroke
- grestore
-} def
-
-/CL {
-% line, get x1, y1, x2, y2 and thickness from stack
- /thick exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave White thick setlinewidth
- x1 y1 moveto x2 y2 lineto stroke
- grestore
-} def
-
-/B {
-% filled box, get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath fill stroke
-} def
-
-/PA {
-% pad, same as line
- L
-} def
-
-/A {
-% arc for elements, get x, y, width, height, thickness
-% startangle and delta-angle from stack
- /delta exch def /start exch def /thickness exch def
- /height exch def /width exch def /y exch def /x exch def
-% draw it
- gsave thickness setlinewidth /save DictMatrix currentmatrix def
-% scaling is less then zero because the coord system has to be swapped
- x y translate width neg height scale
- 0 0 1 start start delta add arc save setmatrix stroke
- grestore
-} def
-
-/CA {
-% arc for elements, get x, y, width, height, thickness
-% startangle and delta-angle from stack
- /delta exch def /start exch def /thickness exch def
- /height exch def /width exch def /y exch def /x exch def
-% draw it
- gsave White thickness setlinewidth /save DictMatrix currentmatrix def
-% scaling is less then zero because the coord system has to be swapped
- x y translate width neg height scale
- 0 0 1 start start delta add arc save setmatrix stroke
- grestore
-} def
-
-/CLRPV {
-% clears a pin/via for groundplane; x,y and thickness are on stack
- /thickness exch def /y exch def /x exch def
- gsave White x y thickness P grestore
-} def
-
-/CLRPVSQ {
-% clears a square pin, x,y and thickness are on stack
- /thickness exch def /y exch def /x exch def
- gsave White
- newpath x thickness 2 div sub y thickness 2 div sub moveto
- thickness 0 rlineto 0 thickness rlineto
- thickness neg 0 rlineto closepath fill stroke
- grestore
-} def
-
-/CLRPVR {
-% clears a round pin/via for groundplane; x,y and thickness are on the stack
- /thickness exch def /y exch def /x exch def
- gsave White 0 setlinewidth
- newpath x y thickness 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/CLRPA {
-% clear line, get x1, y1, x2, y2 and thickness from stack
- /thick exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave White thick setlinewidth
- x1 y1 moveto x2 y2 lineto stroke
- grestore
-} def
-
-/CLRB {
-% cleared box, get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave White newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath fill stroke
- grestore
-} def
-
-/FILL {
-% draw a filled rectangle for the ground plane
-% get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave 0 setlinewidth
- newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath fill stroke
- grestore
-} def
-
-/Outline {
-% outline, get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave 0.175 setlinewidth
- newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath stroke
- grestore
-} def
-
-/Alignment {
-% alignment targets, get x1, y1, x2, y2 and distance from stack
- /dis exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave 0.175 setlinewidth
- newpath x1 y1 dis add moveto
- 0 dis 2 mul neg rlineto
- dis neg dis rmoveto
- dis 2 mul 0 rlineto
- stroke
- newpath x1 y1 dis 0 90 arcn stroke
- newpath x1 y2 dis sub moveto 0 dis rlineto dis 0 rlineto stroke
- newpath x2 y2 dis sub moveto
- 0 2 dis mul rlineto
- dis dup neg rmoveto
- 2 dis mul neg 0 rlineto stroke
- newpath x2 y1 dis add moveto 0 dis neg rlineto dis neg 0 rlineto stroke
- grestore
-} def
-
-/mysetgray { setgray } def
-/mysetrgbcolor { setrgbcolor } def
-
-%%EndProlog
-%%BeginDefaults
-%%EndDefaults
-%%BeginSetup
-0.0 setlinewidth
-1 setlinecap
-Black
-%%EndSetup
-%%Page: 1 1
-%%BeginPageSetup
-%%EndPageSetup
-gsave White newpath
-153 160 moveto 451 160 lineto 451 673 lineto 153 673 lineto
-closepath fill stroke grestore
-% PCBMIN(-400,-400), PCBMAX(710400,410400)
-% PCBOFFSET(214900,223900), PCBSCALE(1.00000)
-% PCBSTARTDATA --- do not remove ---
-gsave
-0.00072 0.00072 scale
-214900 223900 translate
-1.000 1.000 scale
-410800 0 translate
-90 rotate
-0 410800 translate
-1 -1 scale
-400 400 translate
--400 -400 710400 410400 200 Alignment
-/Color {0.804 0.216 0.000 mysetrgbcolor} def Color
-147500 140000 145000 137500 1000 L
-147500 165000 147500 140000 1000 L
-145000 167500 147500 165000 1000 L
-145000 250000 145000 167500 1000 L
-140000 150000 140000 95000 2500 L
-142500 152500 140000 150000 2500 L
-142500 162500 142500 152500 2500 L
-140000 165000 142500 162500 2500 L
-140000 205000 140000 165000 2500 L
-76500 257000 76500 280500 1000 L
-57500 239500 70000 252000 2500 L
-675000 398500 45000 398500 100 L
-55000 269500 49500 275000 1000 L
-130000 290500 130500 291000 2500 L
-130000 273000 130000 290500 2500 L
-582500 285000 582500 292500 1000 L
-327500 305000 327500 342500 1000 L
-282500 330000 282500 342500 1000 L
-530000 292500 530000 327500 1000 L
-570000 322500 570000 245000 1000 L
-210000 325000 210000 322500 1000 L
-192500 342500 210000 325000 1000 L
-520000 337500 520000 260000 1000 L
-402500 250000 402500 310000 1000 L
-222500 310000 222500 342500 1000 L
-105000 270000 105000 330000 1000 L
-420000 162500 415000 167500 1000 L
-415000 167500 415000 272500 1000 L
-327500 352500 327500 342500 1000 L
-262500 342500 262500 352500 1000 L
-450000 182500 450000 162500 1000 L
-107500 160000 107500 147500 1000 L
-122500 172500 122500 161000 1000 L
-252500 342500 252500 287500 1000 L
-122500 161000 122000 160500 1000 L
-375000 360000 375000 210000 1000 L
-375000 210000 380000 205000 1000 L
-297500 352500 297500 372500 2500 L
-355000 222500 355000 385000 1000 L
-355000 220000 355000 222500 1000 L
-370000 205000 355000 220000 1000 L
-350000 220000 350000 205000 1000 L
-380000 235000 385000 240000 1000 L
-325000 167500 325000 160000 1000 L
-320000 172500 325000 167500 1000 L
-320000 205000 320000 172500 1000 L
-285000 80000 285000 57500 1000 L
-275000 85000 275000 57500 1000 L
-305000 135000 305000 85000 1000 L
-300000 140000 305000 135000 1000 L
-300000 147500 300000 140000 1000 L
-300000 155000 300000 147500 1000 L
-305000 160000 300000 155000 1000 L
-305000 162500 305000 160000 1000 L
-305000 170000 305000 162500 1000 L
-310000 175000 305000 170000 1000 L
-310000 205000 310000 175000 1000 L
-300000 162500 300000 177500 1000 L
-485000 177500 485000 152500 1000 L
-462500 217500 465000 215000 1000 L
-462500 282500 462500 217500 1000 L
-465000 215000 465000 152500 1000 L
-480000 265000 480000 162500 1000 L
-290000 235000 290000 265000 1000 L
-430000 197500 430000 165000 1000 L
-180000 170000 180000 205000 1000 L
-255000 152500 255000 167500 1000 L
-190000 175000 190000 205000 1000 L
-255000 167500 250000 172500 1000 L
-240000 155000 240000 107500 1000 L
-242500 157500 240000 155000 1000 L
-245000 160000 242500 157500 1000 L
-245000 182500 245000 160000 1000 L
-230000 205000 230000 182500 1000 L
-255000 90000 255000 57500 1000 L
-227500 95000 227500 90000 1000 L
-240000 107500 227500 95000 1000 L
-340000 282500 340000 235000 1000 L
-155000 255000 155000 282500 1000 L
-160000 250000 155000 255000 1000 L
-160000 205000 160000 250000 1000 L
-250000 205000 250000 255000 1000 L
-325000 160000 330000 155000 1000 L
-330000 155000 330000 80000 1000 L
-257500 262500 257500 277500 1000 L
-250000 255000 257500 262500 1000 L
-210000 205000 210000 230000 1000 L
-215000 212500 215000 152500 1000 L
-390000 225000 390000 205000 1000 L
-200000 250000 195000 255000 1000 L
-300000 205000 292500 212500 1000 L
-170000 217500 170000 205000 1000 L
-292500 212500 292500 222500 1000 L
-235000 152500 235000 187500 1000 L
-325000 230000 330000 235000 1000 L
-325000 187500 325000 230000 1000 L
-150000 205000 150000 187500 1000 L
-315000 230000 320000 235000 1000 L
-315000 192500 315000 230000 1000 L
-225000 152500 225000 195000 1000 L
-220000 195000 225000 200000 1000 L
-310000 235000 310000 217500 1000 L
-225000 200000 225000 217500 1000 L
-220000 162500 220000 195000 1000 L
-300000 235000 300000 212500 1000 L
-200000 205000 200000 250000 1000 L
-195000 275000 202500 282500 1000 L
-195000 255000 195000 275000 1000 L
-240000 215000 240000 205000 1000 L
-232500 222500 240000 215000 1000 L
-232500 232500 232500 222500 1000 L
-230000 235000 232500 232500 1000 L
-230000 265000 230000 235000 1000 L
-230000 227500 230000 205000 1000 L
-220000 237500 230000 227500 1000 L
-220000 265000 220000 237500 1000 L
-240000 245000 240000 227500 2500 L
-540000 350000 550000 360000 4500 L
-395000 317500 395000 360000 4500 L
-475000 330000 475000 317500 4500 L
-632500 307500 622500 307500 4500 L
-622500 307500 622500 342500 4500 L
-622500 307500 622500 230000 4500 L
-642500 97500 652500 107500 2500 L
-632500 257500 622500 257500 4500 L
-592500 210000 592500 212500 4500 L
-592500 212500 612500 232500 4500 L
-612500 232500 612500 267500 4500 L
-592500 222500 592500 245000 4500 L
-470000 220000 470000 277500 4500 L
-470000 277500 470000 310000 4500 L
-470000 310000 462500 317500 4500 L
-462500 317500 462500 342500 4500 L
-562500 187500 562500 220000 4500 L
-592500 187500 592500 210000 4500 L
-642500 47500 642500 57500 2500 L
-642500 67500 642500 77500 2500 L
-642500 87500 642500 97500 2500 L
-622500 230000 622500 102500 4000 L
-602500 210000 620000 210000 4000 L
-562500 187500 562500 135000 2500 L
-562500 135000 567500 130000 2500 L
-567500 130000 567500 107500 2500 L
-597500 57500 597500 47500 2500 L
-537500 22500 537500 47500 2500 L
-487500 27500 487500 47500 2500 L
-517500 27500 517500 40000 2500 L
-577500 27500 577500 40000 2500 L
-587500 57500 587500 50000 2500 L
-587500 50000 577500 40000 2500 L
-647500 20000 647500 42500 1000 L
-647500 42500 652500 47500 1000 L
-622500 47500 632500 57500 1000 L
-622500 35000 622500 47500 1000 L
-597500 65000 597500 87500 1000 L
-622500 87500 632500 77500 1000 L
-632500 97500 615000 97500 1000 L
-615000 97500 615000 130000 1000 L
-295000 130000 295000 57500 1000 L
-615000 62500 620000 52500 1000 L
-652500 87500 647500 82500 1000 L
-647500 82500 637500 82500 1000 L
-637500 82500 637500 72500 1000 L
-637500 72500 615000 72500 1000 L
-615000 72500 615000 62500 1000 L
-407500 47500 407500 57500 2500 L
-115000 232500 115000 112500 1000 L
-85000 360000 85000 355000 1000 L
-85000 355000 95000 345000 1000 L
-95000 345000 95000 252500 1000 L
-282500 342500 282500 372500 1000 L
-642500 107500 637500 112500 1000 L
-637500 112500 637500 172500 1000 L
-262500 172500 262500 282500 1000 L
-262500 282500 277500 297500 1000 L
-550000 292500 550000 332500 4500 L
-550000 332500 560000 342500 4500 L
-210000 162500 210000 67500 1000 L
-205000 152500 205000 82500 1000 L
-200000 162500 200000 62500 1000 L
-195000 152500 195000 57500 1000 L
-242500 360000 242500 372500 1000 L
-192500 372500 192500 360000 1000 L
-232500 372500 232500 352500 2500 L
-252500 385000 252500 372500 1000 L
-182500 372500 182500 385000 1000 L
-105000 162500 107500 160000 1000 L
-70000 385000 77500 392500 2500 L
-110000 310000 110000 367500 1000 L
-280000 235000 280000 215000 1000 L
-280000 215000 290000 205000 1000 L
-220000 282500 220000 265000 1000 L
-202500 290000 202500 282500 1000 L
-122500 322500 122500 172500 1000 L
-115000 330000 122500 322500 1000 L
-115000 245000 115000 232500 1000 L
-95000 252500 95000 245000 1000 L
-272500 347500 272500 352500 2500 L
-557500 237500 557500 222500 1000 L
-395000 227500 402500 235000 1000 L
-395000 152500 395000 227500 1000 L
-405000 215000 405000 200000 1000 L
-400000 162500 400000 205000 1000 L
-400000 205000 400000 225000 1000 L
-405000 195000 405000 200000 1000 L
-405000 152500 405000 195000 1000 L
-410000 180000 410000 195000 1000 L
-410000 162500 410000 180000 1000 L
-410000 205000 410000 195000 1000 L
-470000 162500 470000 142500 1000 L
-457500 122500 447500 122500 1000 L
-457500 130000 457500 122500 1000 L
-470000 142500 457500 130000 1000 L
-467500 135000 467500 122500 1000 L
-475000 142500 467500 135000 1000 L
-475000 152500 475000 142500 1000 L
-490000 147500 477500 135000 1000 L
-490000 162500 490000 147500 1000 L
-477500 135000 477500 57500 1000 L
-495000 145000 492500 142500 1000 L
-467500 65000 467500 62500 1000 L
-475000 72500 467500 65000 1000 L
-475000 92500 475000 72500 1000 L
-472500 95000 475000 92500 1000 L
-472500 107500 472500 95000 1000 L
-490000 107500 487500 107500 1000 L
-492500 110000 490000 107500 1000 L
-495000 152500 495000 145000 1000 L
-492500 142500 492500 110000 1000 L
-517500 95000 512500 90000 1000 L
-517500 107500 517500 95000 1000 L
-507500 117500 517500 107500 1000 L
-512500 87500 512500 80000 1000 L
-512500 90000 512500 87500 1000 L
-557500 95000 557500 92500 1000 L
-552500 100000 557500 95000 1000 L
-552500 107500 552500 100000 1000 L
-547500 112500 552500 107500 1000 L
-547500 142500 547500 112500 1000 L
-610000 120000 610000 142500 1000 L
-607500 117500 610000 120000 1000 L
-430000 205000 430000 235000 1000 L
-557500 92500 557500 82500 1000 L
-507500 107500 507500 87500 1000 L
-537500 122500 537500 107500 1000 L
-447500 107500 447500 122500 1000 L
-417500 87500 417500 107500 1000 L
-417500 135000 417500 117500 1000 L
-555000 125000 555000 135000 1000 L
-557500 122500 555000 125000 1000 L
-447500 62500 447500 30000 1000 L
-527500 52500 527500 22500 1000 L
-537500 62500 527500 52500 1000 L
-502500 42500 502500 15000 1000 L
-507500 47500 502500 42500 1000 L
-507500 57500 507500 47500 1000 L
-467500 15000 467500 22500 1000 L
-557500 15000 557500 22500 1000 L
-615000 50000 615000 15000 1000 L
-607500 57500 615000 50000 1000 L
-335000 62500 335000 52500 1000 L
-355000 62500 355000 130000 1000 L
-70000 257500 70000 252500 2500 L
-72500 260000 70000 257500 2500 L
-72500 267500 72500 260000 2500 L
-675000 5000 675000 398500 100 L
-45000 398500 45000 5000 100 L
-49500 275000 49500 330000 1000 L
-557500 222500 545000 210000 1000 L
-272500 342500 272500 347500 2500 L
-222500 342500 222500 372500 1000 L
-212500 352500 212500 342500 2500 L
-330000 372500 327500 372500 2500 L
-337500 365000 330000 372500 2500 L
-337500 295000 337500 365000 2500 L
-332500 290000 337500 295000 2500 L
-360000 290000 360000 317500 2500 L
-360000 260000 360000 290000 2500 L
-272500 372500 272500 392500 2500 L
-212500 372500 212500 392500 2500 L
-127500 392500 127500 372500 2500 L
-202500 305000 202500 322500 2500 L
-390000 260000 390000 290000 2500 L
-390000 235000 390000 260000 2500 L
-332500 260000 332500 290000 2500 L
-550000 225000 535000 210000 2500 L
-550000 245000 550000 225000 2500 L
-390000 80000 390000 35000 2500 L
-397500 87500 390000 80000 2500 L
-390000 35000 397500 27500 2500 L
-447500 85000 447500 95000 2500 L
-435000 80000 427500 87500 2500 L
-435000 30000 435000 80000 2500 L
-432500 27500 435000 30000 2500 L
-427500 27500 432500 27500 2500 L
-315000 100000 315000 57500 2500 L
-525000 152500 525000 100000 2500 L
-427500 87500 427500 100000 2500 L
-130000 275000 130000 255000 2500 L
-110000 310000 115000 305000 1000 L
-130000 255000 140000 245000 2500 L
-140000 245000 140000 205000 2500 L
-280000 205000 277500 205000 2500 L
-270000 212500 270000 245000 2500 L
-277500 205000 270000 212500 2500 L
-240000 245000 240000 265000 2500 L
-540000 327500 540000 350000 4500 L
-220000 205000 220000 225000 2500 L
-327500 372500 327500 392500 2500 L
-322500 317500 322500 260000 2500 L
-245000 27500 242500 27500 2500 L
-175000 152500 175000 95000 2500 L
-76500 280500 76000 281000 1000 L
-237500 32500 237500 95000 2500 L
-242500 27500 237500 32500 2500 L
-492500 92500 497500 97500 2500 L
-492500 80000 492500 92500 2500 L
-497500 75000 492500 80000 2500 L
-500000 142500 500000 162500 2500 L
-497500 140000 500000 142500 2500 L
-497500 117500 497500 140000 2500 L
-497500 95000 497500 117500 2500 L
-497500 57500 497500 75000 2500 L
-582500 92500 577500 87500 2500 L
-582500 102500 582500 92500 2500 L
-582500 112500 582500 102500 2500 L
-587500 117500 582500 112500 2500 L
-592500 112500 592500 72500 2500 L
-597500 117500 592500 112500 2500 L
-537500 82500 537500 72500 2500 L
-487500 87500 487500 72500 2500 L
-402500 112500 407500 117500 2500 L
-402500 72500 402500 112500 2500 L
-592500 245000 592500 360000 4500 L
-405000 342500 405000 360000 4500 L
-475000 370000 475000 342500 4500 L
-490000 330000 490000 342500 4500 L
-560000 360000 560000 342500 4500 L
-550000 245000 550000 292500 4500 L
-602500 245000 602500 260000 4500 L
-540000 292500 540000 307500 4500 L
-540000 260000 540000 245000 4500 L
-602500 292500 602500 307500 4500 L
-602500 260000 602500 277500 4500 L
-602500 277500 612500 287500 4500 L
-255000 152500 255000 120000 1000 L
-265000 120000 265000 57500 1000 L
-250000 130000 250000 35000 1000 L
-250000 35000 250000 32500 1000 L
-250000 32500 255000 27500 1000 L
-265000 152500 265000 130000 1000 L
-260000 162500 260000 105000 1000 L
-245000 105000 245000 57500 1000 L
-270000 32500 265000 27500 1000 L
-270000 162500 270000 32500 1000 L
-275000 152500 275000 95000 1000 L
-275000 95000 280000 90000 1000 L
-280000 90000 280000 32500 1000 L
-280000 32500 275000 27500 1000 L
-280000 95000 290000 85000 1000 L
-290000 85000 290000 32500 1000 L
-290000 32500 285000 27500 1000 L
-280000 162500 280000 95000 1000 L
-285000 152500 285000 120000 1000 L
-300000 120000 300000 32500 1000 L
-300000 32500 295000 27500 1000 L
-310000 125000 310000 32500 1000 L
-310000 32500 305000 27500 1000 L
-290000 162500 290000 125000 1000 L
-322500 35000 315000 27500 1000 L
-295000 152500 295000 137500 1000 L
-322500 137500 322500 35000 1000 L
-140000 255000 145000 250000 1000 L
-90500 249000 90500 305500 1000 L
-81500 240000 90500 249000 1000 L
-140000 265000 140000 255000 1000 L
-150000 265000 150000 255000 1000 L
-150000 255000 155000 250000 1000 L
-155000 250000 155000 125000 1000 L
-160000 265000 160000 255000 1000 L
-160000 255000 165000 250000 1000 L
-165000 250000 165000 170000 1000 L
-165000 170000 162500 167500 1000 L
-162500 167500 160000 165000 1000 L
-160000 165000 160000 100000 1000 L
-170000 265000 170000 255000 1000 L
-170000 255000 175000 250000 1000 L
-175000 250000 175000 160000 1000 L
-175000 160000 170000 155000 1000 L
-170000 155000 170000 142500 1000 L
-180000 265000 180000 255000 1000 L
-180000 255000 185000 250000 1000 L
-185000 250000 185000 160000 1000 L
-185000 160000 180000 155000 1000 L
-180000 155000 180000 132500 1000 L
-190000 265000 190000 255000 1000 L
-190000 255000 195000 250000 1000 L
-195000 250000 195000 160000 1000 L
-195000 160000 192500 157500 1000 L
-192500 157500 190000 155000 1000 L
-190000 155000 190000 105000 1000 L
-200000 265000 200000 255000 1000 L
-270000 255000 265000 250000 1000 L
-265000 250000 265000 182500 1000 L
-265000 182500 270000 177500 1000 L
-270000 177500 270000 172500 1000 L
-270000 172500 265000 167500 1000 L
-265000 167500 265000 152500 1000 L
-322500 245000 322500 260000 2500 L
-350000 250000 350000 235000 1000 L
-257500 165000 257500 200000 1000 L
-257500 200000 257500 250000 1000 L
-210000 250000 210000 265000 1000 L
-260000 162500 257500 165000 1000 L
-360000 235000 360000 250000 1000 L
-360000 250000 360000 252500 1000 L
-370000 290000 370000 272500 1000 L
-370000 272500 365000 267500 1000 L
-365000 267500 365000 220000 1000 L
-385000 240000 385000 277500 1000 L
-45000 5000 675000 5000 100 L
-70000 315000 70000 300000 2500 L
-70000 300000 72500 297500 2500 L
-72500 297500 72500 287500 2500 L
-72500 287500 70000 285000 2500 L
-70000 285000 70000 270000 2500 L
-70000 270000 72500 267500 2500 L
-70000 315000 70000 385000 2500 L
-105000 162500 96500 171000 1000 L
-96500 171000 82500 171000 1000 L
-78000 11500 79500 11500 400 L
-77500 11000 78000 11500 400 L
-77500 8000 77500 11000 400 L
-77500 8000 78000 7500 400 L
-78000 7500 79500 7500 400 L
-80701 8000 80701 11000 400 L
-80701 8000 81201 7500 400 L
-81201 7500 82201 7500 400 L
-82201 7500 82701 8000 400 L
-82701 8000 82701 11000 400 L
-82201 11500 82701 11000 400 L
-81201 11500 82201 11500 400 L
-80701 11000 81201 11500 400 L
-83902 7500 83902 11500 400 L
-83902 7500 85402 9000 400 L
-85402 9000 86902 7500 400 L
-86902 7500 86902 11500 400 L
-88603 7500 88603 11500 400 L
-88103 7500 90103 7500 400 L
-90103 7500 90603 8000 400 L
-90603 8000 90603 9000 400 L
-90103 9500 90603 9000 400 L
-88603 9500 90103 9500 400 L
-91804 8000 91804 11000 400 L
-91804 8000 92304 7500 400 L
-92304 7500 93304 7500 400 L
-93304 7500 93804 8000 400 L
-93804 8000 93804 11000 400 L
-93304 11500 93804 11000 400 L
-92304 11500 93304 11500 400 L
-91804 11000 92304 11500 400 L
-95005 7500 95005 11500 400 L
-95005 7500 95005 8000 400 L
-95005 8000 97505 10500 400 L
-97505 7500 97505 11500 400 L
-98706 9500 100206 9500 400 L
-98706 11500 100706 11500 400 L
-98706 7500 98706 11500 400 L
-98706 7500 100706 7500 400 L
-101907 7500 101907 11500 400 L
-101907 7500 101907 8000 400 L
-101907 8000 104407 10500 400 L
-104407 7500 104407 11500 400 L
-105608 7500 107608 7500 400 L
-106608 7500 106608 11500 400 L
-77500 15500 77500 19000 400 L
-77500 15500 78000 15000 400 L
-78000 15000 79500 15000 400 L
-79500 15000 80000 15500 400 L
-80000 15500 80000 19000 400 L
-77500 17000 80000 17000 400 L
-81201 15000 82201 15000 400 L
-81701 15000 81701 19000 400 L
-81201 19000 82201 19000 400 L
-83902 19000 85402 19000 400 L
-83402 18500 83902 19000 400 L
-83402 15500 83402 18500 400 L
-83402 15500 83902 15000 400 L
-83902 15000 85402 15000 400 L
-86603 17000 88603 17000 400 L
-90304 19000 91304 19000 400 L
-90804 15000 90804 19000 400 L
-89804 16000 90804 15000 400 L
-92505 19000 93005 19000 400 L
-94206 15500 94706 15000 400 L
-94706 15000 95706 15000 400 L
-95706 15000 96206 15500 400 L
-96206 15500 96206 18500 400 L
-95706 19000 96206 18500 400 L
-94706 19000 95706 19000 400 L
-94206 18500 94706 19000 400 L
-94706 17000 96206 17000 400 L
-97407 19000 97907 19000 400 L
-99108 18500 99608 19000 400 L
-99108 15500 99108 18500 400 L
-99108 15500 99608 15000 400 L
-99608 15000 100608 15000 400 L
-100608 15000 101108 15500 400 L
-101108 15500 101108 18500 400 L
-100608 19000 101108 18500 400 L
-99608 19000 100608 19000 400 L
-99108 18000 101108 16000 400 L
-77500 26000 78000 26500 400 L
-77500 23000 78000 22500 400 L
-77500 23000 77500 26000 400 L
-79701 24500 81201 24500 400 L
-79201 25000 79701 24500 400 L
-79201 25000 79201 26000 400 L
-79201 26000 79701 26500 400 L
-79701 26500 81201 26500 400 L
-82402 22500 82902 23000 400 L
-82902 23000 82902 26000 400 L
-82402 26500 82902 26000 400 L
-85903 23000 86403 22500 400 L
-86403 22500 87903 22500 400 L
-87903 22500 88403 23000 400 L
-88403 23000 88403 24000 400 L
-85903 26500 88403 24000 400 L
-85903 26500 88403 26500 400 L
-89604 26000 90104 26500 400 L
-89604 23000 89604 26000 400 L
-89604 23000 90104 22500 400 L
-90104 22500 91104 22500 400 L
-91104 22500 91604 23000 400 L
-91604 23000 91604 26000 400 L
-91104 26500 91604 26000 400 L
-90104 26500 91104 26500 400 L
-89604 25500 91604 23500 400 L
-92805 26000 93305 26500 400 L
-92805 23000 92805 26000 400 L
-92805 23000 93305 22500 400 L
-93305 22500 94305 22500 400 L
-94305 22500 94805 23000 400 L
-94805 23000 94805 26000 400 L
-94305 26500 94805 26000 400 L
-93305 26500 94305 26500 400 L
-92805 25500 94805 23500 400 L
-96006 23000 96506 22500 400 L
-96506 22500 97506 22500 400 L
-97506 22500 98006 23000 400 L
-98006 23000 98006 26000 400 L
-97506 26500 98006 26000 400 L
-96506 26500 97506 26500 400 L
-96006 26000 96506 26500 400 L
-96506 24500 98006 24500 400 L
-101007 22500 101007 26500 400 L
-101007 26500 102507 25000 400 L
-102507 25000 104007 26500 400 L
-104007 22500 104007 26500 400 L
-106708 24500 107208 25000 400 L
-105708 24500 106708 24500 400 L
-105208 25000 105708 24500 400 L
-105208 25000 105208 26000 400 L
-105208 26000 105708 26500 400 L
-107208 24500 107208 26000 400 L
-107208 26000 107708 26500 400 L
-105708 26500 106708 26500 400 L
-106708 26500 107208 26000 400 L
-108909 22500 108909 26000 400 L
-108909 26000 109409 26500 400 L
-110910 22500 110910 26000 400 L
-110910 26000 111410 26500 400 L
-110410 24000 111410 24000 400 L
-112911 26500 114411 26500 400 L
-112411 26000 112911 26500 400 L
-112411 25000 112411 26000 400 L
-112411 25000 112911 24500 400 L
-112911 24500 113911 24500 400 L
-113911 24500 114411 25000 400 L
-112411 25500 114411 25500 400 L
-114411 25000 114411 25500 400 L
-116112 25000 116112 26500 400 L
-116112 25000 116612 24500 400 L
-116612 24500 117612 24500 400 L
-115612 24500 116112 25000 400 L
-120613 22500 120613 26500 400 L
-120613 22500 122613 22500 400 L
-120613 24500 122113 24500 400 L
-124314 26500 125814 26500 400 L
-123814 26000 124314 26500 400 L
-123814 25000 123814 26000 400 L
-123814 25000 124314 24500 400 L
-124314 24500 125314 24500 400 L
-125314 24500 125814 25000 400 L
-123814 25500 125814 25500 400 L
-125814 25000 125814 25500 400 L
-127515 22500 127515 26000 400 L
-127515 26000 128015 26500 400 L
-127015 24000 128015 24000 400 L
-129516 22500 129516 26000 400 L
-129516 26000 130016 26500 400 L
-129016 24000 130016 24000 400 L
-131517 26500 133017 26500 400 L
-131017 26000 131517 26500 400 L
-131017 25000 131017 26000 400 L
-131017 25000 131517 24500 400 L
-131517 24500 132517 24500 400 L
-132517 24500 133017 25000 400 L
-131017 25500 133017 25500 400 L
-133017 25000 133017 25500 400 L
-134718 25000 134718 26500 400 L
-134718 25000 135218 24500 400 L
-135218 24500 136218 24500 400 L
-134218 24500 134718 25000 400 L
-139219 22500 139219 26500 400 L
-139219 26500 141219 26500 400 L
-143920 24500 144420 25000 400 L
-142920 24500 143920 24500 400 L
-142420 25000 142920 24500 400 L
-142420 25000 142420 26000 400 L
-142420 26000 142920 26500 400 L
-144420 24500 144420 26000 400 L
-144420 26000 144920 26500 400 L
-142920 26500 143920 26500 400 L
-143920 26500 144420 26000 400 L
-147621 24500 148121 25000 400 L
-146621 24500 147621 24500 400 L
-146121 25000 146621 24500 400 L
-146121 25000 146121 26000 400 L
-146121 26000 146621 26500 400 L
-146621 26500 147621 26500 400 L
-147621 26500 148121 26000 400 L
-146121 27500 146621 28000 400 L
-146621 28000 147621 28000 400 L
-147621 28000 148121 27500 400 L
-148121 24500 148121 27500 400 L
-149822 26500 151322 26500 400 L
-149322 26000 149822 26500 400 L
-149322 25000 149322 26000 400 L
-149322 25000 149822 24500 400 L
-149822 24500 150822 24500 400 L
-150822 24500 151322 25000 400 L
-149322 25500 151322 25500 400 L
-151322 25000 151322 25500 400 L
-153023 26500 154523 26500 400 L
-154523 26500 155023 26000 400 L
-154523 25500 155023 26000 400 L
-153023 25500 154523 25500 400 L
-152523 25000 153023 25500 400 L
-152523 25000 153023 24500 400 L
-153023 24500 154523 24500 400 L
-154523 24500 155023 25000 400 L
-152523 26000 153023 26500 400 L
-102500 30000 102500 34000 400 L
-102500 30000 104500 30000 400 L
-102500 32000 104000 32000 400 L
-106201 34000 107701 34000 400 L
-105701 33500 106201 34000 400 L
-105701 32500 105701 33500 400 L
-105701 32500 106201 32000 400 L
-106201 32000 107201 32000 400 L
-107201 32000 107701 32500 400 L
-105701 33000 107701 33000 400 L
-107701 32500 107701 33000 400 L
-109402 32500 109402 34000 400 L
-109402 32500 109902 32000 400 L
-109902 32000 110902 32000 400 L
-108902 32000 109402 32500 400 L
-112603 32500 112603 34000 400 L
-112603 32500 113103 32000 400 L
-113103 32000 113603 32000 400 L
-113603 32000 114103 32500 400 L
-114103 32500 114103 34000 400 L
-112103 32000 112603 32500 400 L
-116804 32000 117304 32500 400 L
-115804 32000 116804 32000 400 L
-115304 32500 115804 32000 400 L
-115304 32500 115304 33500 400 L
-115304 33500 115804 34000 400 L
-117304 32000 117304 33500 400 L
-117304 33500 117804 34000 400 L
-115804 34000 116804 34000 400 L
-116804 34000 117304 33500 400 L
-119505 32500 119505 34000 400 L
-119505 32500 120005 32000 400 L
-120005 32000 120505 32000 400 L
-120505 32000 121005 32500 400 L
-121005 32500 121005 34000 400 L
-119005 32000 119505 32500 400 L
-124206 30000 124206 34000 400 L
-123706 34000 124206 33500 400 L
-122706 34000 123706 34000 400 L
-122206 33500 122706 34000 400 L
-122206 32500 122206 33500 400 L
-122206 32500 122706 32000 400 L
-122706 32000 123706 32000 400 L
-123706 32000 124206 32500 400 L
-125407 32500 125407 33500 400 L
-125407 32500 125907 32000 400 L
-125907 32000 126907 32000 400 L
-126907 32000 127407 32500 400 L
-127407 32500 127407 33500 400 L
-126907 34000 127407 33500 400 L
-125907 34000 126907 34000 400 L
-125407 33500 125907 34000 400 L
-130908 30000 130908 34000 400 L
-130408 30000 132408 30000 400 L
-132408 30000 132908 30500 400 L
-132908 30500 132908 31500 400 L
-132408 32000 132908 31500 400 L
-130908 32000 132408 32000 400 L
-134609 34000 136109 34000 400 L
-134109 33500 134609 34000 400 L
-134109 32500 134109 33500 400 L
-134109 32500 134609 32000 400 L
-134609 32000 135609 32000 400 L
-135609 32000 136109 32500 400 L
-134109 33000 136109 33000 400 L
-136109 32500 136109 33000 400 L
-137810 34000 139310 34000 400 L
-139310 34000 139810 33500 400 L
-139310 33000 139810 33500 400 L
-137810 33000 139310 33000 400 L
-137310 32500 137810 33000 400 L
-137310 32500 137810 32000 400 L
-137810 32000 139310 32000 400 L
-139310 32000 139810 32500 400 L
-137310 33500 137810 34000 400 L
-141511 34000 143011 34000 400 L
-143011 34000 143511 33500 400 L
-143011 33000 143511 33500 400 L
-141511 33000 143011 33000 400 L
-141011 32500 141511 33000 400 L
-141011 32500 141511 32000 400 L
-141511 32000 143011 32000 400 L
-143011 32000 143511 32500 400 L
-141011 33500 141511 34000 400 L
-144712 32000 144712 33500 400 L
-144712 33500 145212 34000 400 L
-145212 34000 146212 34000 400 L
-146212 34000 146712 33500 400 L
-146712 32000 146712 33500 400 L
-148413 30000 148413 33500 400 L
-148413 33500 148913 34000 400 L
-147913 31500 148913 31500 400 L
-150414 30000 150414 33500 400 L
-150414 33500 150914 34000 400 L
-149914 31500 150914 31500 400 L
-151915 32500 151915 33500 400 L
-151915 32500 152415 32000 400 L
-152415 32000 153415 32000 400 L
-153415 32000 153915 32500 400 L
-153915 32500 153915 33500 400 L
-153415 34000 153915 33500 400 L
-152415 34000 153415 34000 400 L
-151915 33500 152415 34000 400 L
-/Color {0.329 0.545 0.329 mysetrgbcolor} def Color
-/Color {0.545 0.451 0.333 mysetrgbcolor} def Color
-/Color {0.302 0.302 0.302 mysetrgbcolor} def Color
-335000 62500 6000 3500 PVSQ
-335000 22500 6000 3500 PVR
-297500 342500 6000 3500 PVSQ
-297500 372500 6000 3500 PVR
-415000 360000 8000 4200 PVSQ
-405000 360000 8000 4200 PVR
-395000 360000 8000 4200 PVR
-447500 122500 6000 3500 PVSQ
-447500 82500 6000 3500 PVR
-397500 117500 6000 3500 PVSQ
-407500 117500 6000 3500 PVR
-417500 117500 6000 3500 PVR
-427500 117500 6000 3500 PVR
-427500 87500 6000 3500 PVR
-417500 87500 6000 3500 PVR
-407500 87500 6000 3500 PVR
-397500 87500 6000 3500 PVR
-557500 122500 6000 3500 PVSQ
-557500 82500 6000 3500 PVR
-537500 62500 6000 3500 PVSQ
-537500 22500 6000 3500 PVR
-487500 57500 6000 3500 PVSQ
-497500 57500 6000 3500 PVR
-507500 57500 6000 3500 PVR
-517500 57500 6000 3500 PVR
-517500 27500 6000 3500 PVR
-507500 27500 6000 3500 PVR
-497500 27500 6000 3500 PVR
-487500 27500 6000 3500 PVR
-467500 62500 6000 3500 PVSQ
-467500 22500 6000 3500 PVR
-467500 122500 6000 3500 PVSQ
-467500 82500 6000 3500 PVR
-537500 122500 6000 3500 PVSQ
-537500 82500 6000 3500 PVR
-487500 117500 6000 3500 PVSQ
-497500 117500 6000 3500 PVR
-507500 117500 6000 3500 PVR
-517500 117500 6000 3500 PVR
-517500 87500 6000 3500 PVR
-507500 87500 6000 3500 PVR
-497500 87500 6000 3500 PVR
-487500 87500 6000 3500 PVR
-397500 57500 6000 3500 PVSQ
-407500 57500 6000 3500 PVR
-417500 57500 6000 3500 PVR
-427500 57500 6000 3500 PVR
-427500 27500 6000 3500 PVR
-417500 27500 6000 3500 PVR
-407500 27500 6000 3500 PVR
-397500 27500 6000 3500 PVR
-557500 62500 6000 3500 PVSQ
-557500 22500 6000 3500 PVR
-157500 342500 6000 3500 PVSQ
-157500 372500 6000 3500 PVR
-57500 239500 6000 3500 PVSQ
-57500 249500 6000 3500 PVR
-530000 245000 8000 4200 PVSQ
-540000 245000 8000 4200 PVR
-550000 245000 8000 4200 PVR
-245000 57500 6000 3500 PVSQ
-255000 57500 6000 3500 PVR
-265000 57500 6000 3500 PVR
-275000 57500 6000 3500 PVR
-285000 57500 6000 3500 PVR
-295000 57500 6000 3500 PVR
-305000 57500 6000 3500 PVR
-315000 57500 6000 3500 PVR
-315000 27500 6000 3500 PVR
-305000 27500 6000 3500 PVR
-295000 27500 6000 3500 PVR
-285000 27500 6000 3500 PVR
-275000 27500 6000 3500 PVR
-265000 27500 6000 3500 PVR
-255000 27500 6000 3500 PVR
-245000 27500 6000 3500 PVR
-317500 372500 6000 3500 PVSQ
-327500 372500 6000 3500 PVR
-420000 205000 7000 4200 PVSQ
-430000 205000 7000 4200 PVR
-420000 215000 7000 4200 PVR
-430000 215000 7000 4200 PVR
-420000 225000 7000 4200 PVR
-430000 225000 7000 4200 PVR
-420000 235000 7000 4200 PVR
-430000 235000 7000 4200 PVR
-140000 265000 6000 3500 PVSQ
-150000 265000 6000 3500 PVR
-160000 265000 6000 3500 PVR
-170000 265000 6000 3500 PVR
-180000 265000 6000 3500 PVR
-190000 265000 6000 3500 PVR
-200000 265000 6000 3500 PVR
-210000 265000 6000 3500 PVR
-220000 265000 6000 3500 PVR
-230000 265000 6000 3500 PVR
-240000 265000 6000 3500 PVR
-250000 265000 6000 3500 PVR
-250000 205000 6000 3500 PVR
-240000 205000 6000 3500 PVR
-230000 205000 6000 3500 PVR
-220000 205000 6000 3500 PVR
-210000 205000 6000 3500 PVR
-200000 205000 6000 3500 PVR
-190000 205000 6000 3500 PVR
-180000 205000 6000 3500 PVR
-170000 205000 6000 3500 PVR
-160000 205000 6000 3500 PVR
-150000 205000 6000 3500 PVR
-140000 205000 6000 3500 PVR
-280000 235000 6000 3500 PVSQ
-290000 235000 6000 3500 PVR
-300000 235000 6000 3500 PVR
-310000 235000 6000 3500 PVR
-320000 235000 6000 3500 PVR
-330000 235000 6000 3500 PVR
-340000 235000 6000 3500 PVR
-350000 235000 6000 3500 PVR
-360000 235000 6000 3500 PVR
-370000 235000 6000 3500 PVR
-380000 235000 6000 3500 PVR
-390000 235000 6000 3500 PVR
-390000 205000 6000 3500 PVR
-380000 205000 6000 3500 PVR
-370000 205000 6000 3500 PVR
-360000 205000 6000 3500 PVR
-350000 205000 6000 3500 PVR
-340000 205000 6000 3500 PVR
-330000 205000 6000 3500 PVR
-320000 205000 6000 3500 PVR
-310000 205000 6000 3500 PVR
-300000 205000 6000 3500 PVR
-290000 205000 6000 3500 PVR
-280000 205000 6000 3500 PVR
-77500 124000 12000 10000 PVR
-77500 218000 12000 10000 PVR
-82500 151000 7000 4200 PVR
-72500 156000 7000 4200 PVR
-82500 161000 7000 4200 PVR
-72500 166000 7000 4200 PVR
-82500 171000 7000 4200 PVR
-72500 176000 7000 4200 PVR
-82500 181000 7000 4200 PVR
-72500 186000 7000 4200 PVR
-82500 191000 7000 4200 PVSQ
-81500 239500 6000 3500 PVSQ
-81500 249500 6000 3500 PVR
-495000 220000 7000 4200 PVSQ
-470000 220000 7000 4200 PVR
-85000 330000 6000 3500 PVSQ
-85000 360000 6000 3500 PVR
-582500 245000 8000 4200 PVSQ
-592500 245000 8000 4200 PVR
-602500 245000 8000 4200 PVR
-535000 210000 6000 3500 PVSQ
-545000 210000 6000 3500 PVR
-355000 62500 6000 3500 PVSQ
-355000 22500 6000 3500 PVR
-105000 330000 7000 4200 PVSQ
-115000 330000 7000 4200 PVR
-172500 320000 6000 3500 PVSQ
-182500 320000 6000 3500 PVR
-192500 320000 6000 3500 PVR
-202500 320000 6000 3500 PVR
-202500 290000 6000 3500 PVR
-192500 290000 6000 3500 PVR
-182500 290000 6000 3500 PVR
-172500 290000 6000 3500 PVR
-495000 277500 7000 4200 PVSQ
-470000 277500 7000 4200 PVR
-570000 360000 8000 4200 PVSQ
-560000 360000 8000 4200 PVR
-550000 360000 8000 4200 PVR
-280000 257500 6000 3500 PVSQ
-280000 297500 6000 3500 PVR
-116000 280000 6000 3500 PVSQ
-76000 280000 6000 3500 PVR
-490000 370000 6000 3500 PVSQ
-475000 370000 6000 3500 PVR
-530000 292500 8000 4200 PVSQ
-540000 292500 8000 4200 PVR
-550000 292500 8000 4200 PVR
-652500 47500 6000 3500 PVSQ
-652500 57500 6000 3500 PVR
-652500 67500 6000 3500 PVR
-652500 77500 6000 3500 PVR
-652500 87500 6000 3500 PVR
-652500 97500 6000 3500 PVR
-652500 107500 6000 3500 PVR
-652500 117500 6000 3500 PVR
-652500 127500 6000 3500 PVR
-652500 137500 6000 3500 PVR
-652500 147500 6000 3500 PVR
-652500 157500 6000 3500 PVR
-652500 167500 6000 3500 PVR
-652500 177500 6000 3500 PVR
-652500 187500 6000 3500 PVR
-652500 197500 6000 3500 PVR
-652500 207500 6000 3500 PVR
-652500 217500 6000 3500 PVR
-652500 227500 6000 3500 PVR
-652500 237500 6000 3500 PVR
-652500 247500 6000 3500 PVR
-652500 257500 6000 3500 PVR
-652500 267500 6000 3500 PVR
-652500 277500 6000 3500 PVR
-652500 287500 6000 3500 PVR
-652500 297500 6000 3500 PVR
-652500 307500 6000 3500 PVR
-652500 317500 6000 3500 PVR
-652500 327500 6000 3500 PVR
-652500 337500 6000 3500 PVR
-652500 347500 6000 3500 PVR
-652500 357500 6000 3500 PVR
-642500 47500 6000 3500 PVR
-642500 57500 6000 3500 PVR
-642500 67500 6000 3500 PVR
-642500 77500 6000 3500 PVR
-642500 87500 6000 3500 PVR
-642500 97500 6000 3500 PVR
-642500 107500 6000 3500 PVR
-642500 117500 6000 3500 PVR
-642500 127500 6000 3500 PVR
-642500 137500 6000 3500 PVR
-642500 147500 6000 3500 PVR
-642500 157500 6000 3500 PVR
-642500 167500 6000 3500 PVR
-642500 177500 6000 3500 PVR
-642500 187500 6000 3500 PVR
-642500 197500 6000 3500 PVR
-642500 207500 6000 3500 PVR
-642500 217500 6000 3500 PVR
-642500 227500 6000 3500 PVR
-642500 237500 6000 3500 PVR
-642500 247500 6000 3500 PVR
-642500 257500 6000 3500 PVR
-642500 267500 6000 3500 PVR
-642500 277500 6000 3500 PVR
-642500 287500 6000 3500 PVR
-642500 297500 6000 3500 PVR
-642500 307500 6000 3500 PVR
-642500 317500 6000 3500 PVR
-642500 327500 6000 3500 PVR
-642500 337500 6000 3500 PVR
-642500 347500 6000 3500 PVR
-642500 357500 6000 3500 PVR
-632500 47500 6000 3500 PVR
-632500 57500 6000 3500 PVR
-632500 67500 6000 3500 PVR
-632500 77500 6000 3500 PVR
-632500 87500 6000 3500 PVR
-632500 97500 6000 3500 PVR
-632500 107500 6000 3500 PVR
-632500 117500 6000 3500 PVR
-632500 127500 6000 3500 PVR
-632500 137500 6000 3500 PVR
-632500 147500 6000 3500 PVR
-632500 157500 6000 3500 PVR
-632500 167500 6000 3500 PVR
-632500 177500 6000 3500 PVR
-632500 187500 6000 3500 PVR
-632500 197500 6000 3500 PVR
-632500 207500 6000 3500 PVR
-632500 217500 6000 3500 PVR
-632500 227500 6000 3500 PVR
-632500 237500 6000 3500 PVR
-632500 247500 6000 3500 PVR
-632500 257500 6000 3500 PVR
-632500 267500 6000 3500 PVR
-632500 277500 6000 3500 PVR
-632500 287500 6000 3500 PVR
-632500 297500 6000 3500 PVR
-632500 307500 6000 3500 PVR
-632500 317500 6000 3500 PVR
-632500 327500 6000 3500 PVR
-632500 337500 6000 3500 PVR
-632500 347500 6000 3500 PVR
-632500 357500 6000 3500 PVR
-662500 377500 12000 8000 PVR
-662500 27500 12000 8000 PVR
-332500 260000 6000 3500 PVSQ
-322500 260000 6000 3500 PVR
-447500 62500 6000 3500 PVSQ
-447500 22500 6000 3500 PVR
-300000 297500 6000 3500 PVSQ
-300000 257500 6000 3500 PVR
-475000 330000 6000 3500 PVSQ
-490000 330000 6000 3500 PVR
-55000 269500 7000 4200 PVSQ
-55000 287200 7000 4200 PVR
-64800 264600 7000 5200 PVR
-64800 292200 7000 5200 PVR
-582500 292500 8000 4200 PVSQ
-592500 292500 8000 4200 PVR
-602500 292500 8000 4200 PVR
-562500 187500 6000 3500 PVSQ
-592500 187500 6000 3500 PVR
-577500 117500 6000 3500 PVSQ
-587500 117500 6000 3500 PVR
-597500 117500 6000 3500 PVR
-607500 117500 6000 3500 PVR
-607500 87500 6000 3500 PVR
-597500 87500 6000 3500 PVR
-587500 87500 6000 3500 PVR
-577500 87500 6000 3500 PVR
-582500 210000 8000 4200 PVSQ
-592500 210000 8000 4200 PVR
-602500 210000 8000 4200 PVR
-577500 57500 6000 3500 PVSQ
-587500 57500 6000 3500 PVR
-597500 57500 6000 3500 PVR
-607500 57500 6000 3500 PVR
-607500 27500 6000 3500 PVR
-597500 27500 6000 3500 PVR
-587500 27500 6000 3500 PVR
-577500 27500 6000 3500 PVR
-322500 290000 6000 3500 PVSQ
-332500 290000 6000 3500 PVR
-87500 57500 6000 3500 PVSQ
-97500 62500 6000 3500 PVR
-87500 67500 6000 3500 PVR
-97500 72500 6000 3500 PVR
-87500 77500 6000 3500 PVR
-97500 82500 6000 3500 PVR
-87500 87500 6000 3500 PVR
-97500 92500 6000 3500 PVR
-62500 52500 14800 12800 PVR
-62500 97600 14800 12800 PVR
-74500 44500 8000 6000 PVR
-74500 105600 8000 6000 PVR
-360000 290000 6000 3500 PVSQ
-370000 290000 6000 3500 PVR
-380000 290000 6000 3500 PVR
-390000 290000 6000 3500 PVR
-390000 260000 6000 3500 PVR
-380000 260000 6000 3500 PVR
-370000 260000 6000 3500 PVR
-360000 260000 6000 3500 PVR
-317500 342500 6000 3500 PVSQ
-327500 342500 6000 3500 PVR
-137500 342500 6000 3500 PVSQ
-127500 342500 6000 3500 PVR
-540000 162500 6000 3500 PVSQ
-535000 152500 6000 3500 PVR
-530000 162500 6000 3500 PVR
-525000 152500 6000 3500 PVR
-520000 162500 6000 3500 PVR
-515000 152500 6000 3500 PVR
-510000 162500 6000 3500 PVR
-505000 152500 6000 3500 PVR
-500000 162500 6000 3500 PVR
-495000 152500 6000 3500 PVR
-490000 162500 6000 3500 PVR
-485000 152500 6000 3500 PVR
-480000 162500 6000 3500 PVR
-475000 152500 6000 3500 PVR
-470000 162500 6000 3500 PVR
-465000 152500 6000 3500 PVR
-460000 162500 6000 3500 PVR
-455000 152500 6000 3500 PVR
-450000 162500 6000 3500 PVR
-445000 152500 6000 3500 PVR
-440000 162500 6000 3500 PVR
-435000 152500 6000 3500 PVR
-430000 162500 6000 3500 PVR
-425000 152500 6000 3500 PVR
-420000 162500 6000 3500 PVR
-415000 152500 6000 3500 PVR
-410000 162500 6000 3500 PVR
-405000 152500 6000 3500 PVR
-400000 162500 6000 3500 PVR
-395000 152500 6000 3500 PVR
-390000 162500 6000 3500 PVR
-385000 152500 6000 3500 PVR
-380000 162500 6000 3500 PVR
-375000 152500 6000 3500 PVR
-370000 162500 6000 3500 PVR
-365000 152500 6000 3500 PVR
-340000 162500 6000 3500 PVR
-335000 152500 6000 3500 PVR
-330000 162500 6000 3500 PVR
-325000 152500 6000 3500 PVR
-320000 162500 6000 3500 PVR
-315000 152500 6000 3500 PVR
-310000 162500 6000 3500 PVR
-305000 152500 6000 3500 PVR
-300000 162500 6000 3500 PVR
-295000 152500 6000 3500 PVR
-290000 162500 6000 3500 PVR
-285000 152500 6000 3500 PVR
-280000 162500 6000 3500 PVR
-275000 152500 6000 3500 PVR
-270000 162500 6000 3500 PVR
-265000 152500 6000 3500 PVR
-260000 162500 6000 3500 PVR
-255000 152500 6000 3500 PVR
-250000 162500 6000 3500 PVR
-245000 152500 6000 3500 PVR
-240000 162500 6000 3500 PVR
-235000 152500 6000 3500 PVR
-230000 162500 6000 3500 PVR
-225000 152500 6000 3500 PVR
-220000 162500 6000 3500 PVR
-215000 152500 6000 3500 PVR
-210000 162500 6000 3500 PVR
-205000 152500 6000 3500 PVR
-200000 162500 6000 3500 PVR
-195000 152500 6000 3500 PVR
-190000 162500 6000 3500 PVR
-185000 152500 6000 3500 PVR
-180000 162500 6000 3500 PVR
-175000 152500 6000 3500 PVR
-170000 162500 6000 3500 PVR
-165000 152500 6000 3500 PVR
-573000 157500 8000 6000 PVR
-352500 157500 12000 10000 PVR
-132500 157500 12000 10000 PVR
-137500 372500 6000 3500 PVSQ
-127500 372500 6000 3500 PVR
-172500 372500 6000 3500 PVSQ
-182500 372500 6000 3500 PVR
-192500 372500 6000 3500 PVR
-202500 372500 6000 3500 PVR
-212500 372500 6000 3500 PVR
-222500 372500 6000 3500 PVR
-232500 372500 6000 3500 PVR
-242500 372500 6000 3500 PVR
-252500 372500 6000 3500 PVR
-262500 372500 6000 3500 PVR
-272500 372500 6000 3500 PVR
-282500 372500 6000 3500 PVR
-282500 342500 6000 3500 PVR
-272500 342500 6000 3500 PVR
-262500 342500 6000 3500 PVR
-252500 342500 6000 3500 PVR
-242500 342500 6000 3500 PVR
-232500 342500 6000 3500 PVR
-222500 342500 6000 3500 PVR
-212500 342500 6000 3500 PVR
-202500 342500 6000 3500 PVR
-192500 342500 6000 3500 PVR
-182500 342500 6000 3500 PVR
-172500 342500 6000 3500 PVR
-115500 305500 6000 3500 PVSQ
-75500 305500 6000 3500 PVR
-57500 27500 12000 8000 PVR
-57500 376200 12000 8000 PVR
-662500 27500 12000 8000 PVR
-662500 376200 12000 8000 PVR
-/Color {0.498 0.498 0.498 mysetrgbcolor} def Color
-475000 342500 6000 3500 PVR
-490000 342500 6000 3500 PVR
-560000 342500 6000 3500 PVR
-602500 260000 6000 3500 PVR
-540000 260000 6000 3500 PVR
-540000 307500 6000 3500 PVR
-602500 307500 6000 3500 PVR
-592500 277500 6000 3500 PVR
-612500 287500 6000 3500 PVR
-540000 327500 6000 3500 PVR
-395000 317500 6000 3500 PVR
-475000 317500 6000 3500 PVR
-622500 342500 6000 3500 PVR
-612500 267500 6000 3500 PVR
-592500 222500 6000 3500 PVR
-462500 342500 6000 3500 PVR
-562500 220000 6000 3500 PVR
-622500 102500 6000 3500 PVR
-647500 102500 6000 3500 PVR
-567500 107500 6000 3500 PVR
-597500 47500 6000 3500 PVR
-537500 47500 6000 3500 PVR
-487500 47500 6000 3500 PVR
-517500 40000 6000 3500 PVR
-577500 40000 6000 3500 PVR
-402500 72500 6000 3500 PVR
-487500 72500 6000 3500 PVR
-537500 72500 6000 3500 PVR
-592500 72500 6000 3500 PVR
-497500 95000 6000 3500 PVR
-140000 95000 6000 3500 PVR
-175000 95000 6000 3500 PVR
-237500 95000 6000 3500 PVR
-322500 317500 6000 3500 PVR
-327500 392500 6000 3500 PVR
-240000 245000 6000 3500 PVR
-270000 245000 6000 3500 PVR
-140000 245000 6000 3500 PVR
-130000 280000 6000 3500 PVR
-130000 290000 6000 3500 PVR
-252500 287500 4000 2000 PVR
-427500 100000 6000 3500 PVR
-525000 100000 6000 3500 PVR
-315000 100000 6000 3500 PVR
-447500 95000 6000 3500 PVR
-202500 305000 6000 3500 PVR
-127500 392500 6000 3500 PVR
-212500 392500 6000 3500 PVR
-272500 392500 6000 3500 PVR
-360000 317500 6000 3500 PVR
-77500 392500 6000 3500 PVR
-487500 107500 4000 2000 PVR
-620000 52500 4000 2000 PVR
-622500 87500 4000 2000 PVR
-537500 107500 4000 2000 PVR
-637500 172500 4000 2000 PVR
-262500 172500 4000 2000 PVR
-597500 65000 4000 2000 PVR
-407500 47500 6000 3500 PVR
-205000 82500 4000 2000 PVR
-402500 235000 4000 2000 PVR
-295000 130000 4000 2000 PVR
-335000 52500 4000 2000 PVR
-527500 22500 4000 2000 PVR
-615000 15000 4000 2000 PVR
-477500 57500 4000 2000 PVR
-622500 35000 4000 2000 PVR
-647500 20000 4000 2000 PVR
-557500 15000 4000 2000 PVR
-502500 15000 4000 2000 PVR
-547500 142500 4000 2000 PVR
-610000 142500 4000 2000 PVR
-615000 130000 4000 2000 PVR
-555000 135000 4000 2000 PVR
-195000 57500 4000 2000 PVR
-242500 360000 4000 2000 PVR
-210000 67500 4000 2000 PVR
-115000 112500 4000 2000 PVR
-507500 107500 4000 2000 PVR
-417500 135000 4000 2000 PVR
-200000 62500 4000 2000 PVR
-512500 80000 4000 2000 PVR
-557500 237500 4000 2000 PVR
-447500 30000 4000 2000 PVR
-355000 130000 4000 2000 PVR
-272500 352500 6000 3500 PVR
-95000 245000 4000 2000 PVR
-115000 245000 4000 2000 PVR
-582500 285000 4000 2000 PVR
-110000 367500 4000 2000 PVR
-182500 385000 4000 2000 PVR
-252500 385000 4000 2000 PVR
-212500 352500 6000 3500 PVR
-232500 352500 6000 3500 PVR
-192500 360000 4000 2000 PVR
-417500 107500 4000 2000 PVR
-447500 107500 4000 2000 PVR
-472500 107500 4000 2000 PVR
-467500 15000 4000 2000 PVR
-255000 120000 4000 2000 PVR
-265000 120000 4000 2000 PVR
-265000 130000 4000 2000 PVR
-250000 130000 4000 2000 PVR
-260000 105000 4000 2000 PVR
-245000 105000 4000 2000 PVR
-285000 120000 4000 2000 PVR
-300000 120000 4000 2000 PVR
-290000 125000 4000 2000 PVR
-310000 125000 4000 2000 PVR
-295000 137500 4000 2000 PVR
-322500 137500 4000 2000 PVR
-145000 137500 4000 2000 PVR
-155000 125000 4000 2000 PVR
-160000 100000 4000 2000 PVR
-300000 100000 4000 2000 PVR
-170000 142500 4000 2000 PVR
-280000 142500 4000 2000 PVR
-180000 132500 4000 2000 PVR
-275000 130000 4000 2000 PVR
-190000 105000 4000 2000 PVR
-270000 105000 4000 2000 PVR
-200000 255000 4000 2000 PVR
-270000 255000 4000 2000 PVR
-322500 245000 6000 3500 PVR
-350000 250000 4000 2000 PVR
-202500 282500 4000 2000 PVR
-220000 282500 4000 2000 PVR
-257500 250000 4000 2000 PVR
-210000 250000 4000 2000 PVR
-257500 197500 4000 2000 PVR
-220000 225000 6000 3500 PVR
-240000 225000 6000 3500 PVR
-300000 212500 4000 2000 PVR
-215000 212500 4000 2000 PVR
-310000 217500 4000 2000 PVR
-225000 217500 4000 2000 PVR
-225000 195000 4000 2000 PVR
-315000 192500 4000 2000 PVR
-150000 187500 4000 2000 PVR
-325000 187500 4000 2000 PVR
-235000 187500 4000 2000 PVR
-360000 252500 4000 2000 PVR
-292500 222500 4000 2000 PVR
-170000 217500 4000 2000 PVR
-210000 230000 4000 2000 PVR
-390000 225000 4000 2000 PVR
-257500 277500 4000 2000 PVR
-385000 277500 4000 2000 PVR
-155000 282500 4000 2000 PVR
-340000 282500 4000 2000 PVR
-230000 182500 4000 2000 PVR
-245000 182500 4000 2000 PVR
-227500 90000 4000 2000 PVR
-255000 90000 4000 2000 PVR
-250000 172500 4000 2000 PVR
-190000 175000 4000 2000 PVR
-180000 170000 4000 2000 PVR
-430000 197500 4000 2000 PVR
-332500 270000 6000 3500 PVR
-290000 265000 4000 2000 PVR
-480000 265000 4000 2000 PVR
-470000 290000 6000 3500 PVR
-462500 282500 4000 2000 PVR
-300000 177500 4000 2000 PVR
-485000 177500 4000 2000 PVR
-305000 85000 4000 2000 PVR
-275000 85000 4000 2000 PVR
-330000 80000 4000 2000 PVR
-285000 80000 4000 2000 PVR
-350000 220000 4000 2000 PVR
-365000 220000 4000 2000 PVR
-355000 385000 4000 2000 PVR
-297500 352500 6000 3500 PVR
-375000 360000 4000 2000 PVR
-107500 147500 4000 2000 PVR
-122000 160500 4000 2000 PVR
-450000 182500 4000 2000 PVR
-262500 352500 4000 2000 PVR
-327500 352500 4000 2000 PVR
-400000 225000 4000 2000 PVR
-405000 215000 4000 2000 PVR
-410000 205000 4000 2000 PVR
-105000 270000 4000 2000 PVR
-415000 272500 4000 2000 PVR
-402500 250000 4000 2000 PVR
-222500 310000 4000 2000 PVR
-402500 310000 4000 2000 PVR
-520000 260000 4000 2000 PVR
-520000 337500 4000 2000 PVR
-210000 322500 4000 2000 PVR
-570000 322500 4000 2000 PVR
-570000 245000 4000 2000 PVR
-530000 327500 4000 2000 PVR
-282500 330000 4000 2000 PVR
-327500 305000 4000 2000 PVR
-49500 330000 4000 2000 PVR
-130000 255000 6000 3500 PVR
-76500 257000 4000 2000 PVR
-90500 305500 4000 2000 PVR
-592500 360000 6000 3500 PVR
-405000 342500 6000 3500 PVR
-/Color {0.302 0.302 0.302 mysetrgbcolor} def Color
-335000 62500 800 400 DH
-335000 22500 800 400 DH
-297500 342500 800 400 DH
-297500 372500 800 400 DH
-415000 360000 800 400 DH
-405000 360000 800 400 DH
-395000 360000 800 400 DH
-447500 122500 800 400 DH
-447500 82500 800 400 DH
-397500 117500 800 400 DH
-407500 117500 800 400 DH
-417500 117500 800 400 DH
-427500 117500 800 400 DH
-427500 87500 800 400 DH
-417500 87500 800 400 DH
-407500 87500 800 400 DH
-397500 87500 800 400 DH
-557500 122500 800 400 DH
-557500 82500 800 400 DH
-537500 62500 800 400 DH
-537500 22500 800 400 DH
-487500 57500 800 400 DH
-497500 57500 800 400 DH
-507500 57500 800 400 DH
-517500 57500 800 400 DH
-517500 27500 800 400 DH
-507500 27500 800 400 DH
-497500 27500 800 400 DH
-487500 27500 800 400 DH
-467500 62500 800 400 DH
-467500 22500 800 400 DH
-467500 122500 800 400 DH
-467500 82500 800 400 DH
-537500 122500 800 400 DH
-537500 82500 800 400 DH
-487500 117500 800 400 DH
-497500 117500 800 400 DH
-507500 117500 800 400 DH
-517500 117500 800 400 DH
-517500 87500 800 400 DH
-507500 87500 800 400 DH
-497500 87500 800 400 DH
-487500 87500 800 400 DH
-397500 57500 800 400 DH
-407500 57500 800 400 DH
-417500 57500 800 400 DH
-427500 57500 800 400 DH
-427500 27500 800 400 DH
-417500 27500 800 400 DH
-407500 27500 800 400 DH
-397500 27500 800 400 DH
-557500 62500 800 400 DH
-557500 22500 800 400 DH
-157500 342500 800 400 DH
-157500 372500 800 400 DH
-57500 239500 800 400 DH
-57500 249500 800 400 DH
-530000 245000 800 400 DH
-540000 245000 800 400 DH
-550000 245000 800 400 DH
-245000 57500 800 400 DH
-255000 57500 800 400 DH
-265000 57500 800 400 DH
-275000 57500 800 400 DH
-285000 57500 800 400 DH
-295000 57500 800 400 DH
-305000 57500 800 400 DH
-315000 57500 800 400 DH
-315000 27500 800 400 DH
-305000 27500 800 400 DH
-295000 27500 800 400 DH
-285000 27500 800 400 DH
-275000 27500 800 400 DH
-265000 27500 800 400 DH
-255000 27500 800 400 DH
-245000 27500 800 400 DH
-317500 372500 800 400 DH
-327500 372500 800 400 DH
-420000 205000 800 400 DH
-430000 205000 800 400 DH
-420000 215000 800 400 DH
-430000 215000 800 400 DH
-420000 225000 800 400 DH
-430000 225000 800 400 DH
-420000 235000 800 400 DH
-430000 235000 800 400 DH
-140000 265000 800 400 DH
-150000 265000 800 400 DH
-160000 265000 800 400 DH
-170000 265000 800 400 DH
-180000 265000 800 400 DH
-190000 265000 800 400 DH
-200000 265000 800 400 DH
-210000 265000 800 400 DH
-220000 265000 800 400 DH
-230000 265000 800 400 DH
-240000 265000 800 400 DH
-250000 265000 800 400 DH
-250000 205000 800 400 DH
-240000 205000 800 400 DH
-230000 205000 800 400 DH
-220000 205000 800 400 DH
-210000 205000 800 400 DH
-200000 205000 800 400 DH
-190000 205000 800 400 DH
-180000 205000 800 400 DH
-170000 205000 800 400 DH
-160000 205000 800 400 DH
-150000 205000 800 400 DH
-140000 205000 800 400 DH
-280000 235000 800 400 DH
-290000 235000 800 400 DH
-300000 235000 800 400 DH
-310000 235000 800 400 DH
-320000 235000 800 400 DH
-330000 235000 800 400 DH
-340000 235000 800 400 DH
-350000 235000 800 400 DH
-360000 235000 800 400 DH
-370000 235000 800 400 DH
-380000 235000 800 400 DH
-390000 235000 800 400 DH
-390000 205000 800 400 DH
-380000 205000 800 400 DH
-370000 205000 800 400 DH
-360000 205000 800 400 DH
-350000 205000 800 400 DH
-340000 205000 800 400 DH
-330000 205000 800 400 DH
-320000 205000 800 400 DH
-310000 205000 800 400 DH
-300000 205000 800 400 DH
-290000 205000 800 400 DH
-280000 205000 800 400 DH
-77500 124000 800 400 DH
-77500 218000 800 400 DH
-82500 151000 800 400 DH
-72500 156000 800 400 DH
-82500 161000 800 400 DH
-72500 166000 800 400 DH
-82500 171000 800 400 DH
-72500 176000 800 400 DH
-82500 181000 800 400 DH
-72500 186000 800 400 DH
-82500 191000 800 400 DH
-81500 239500 800 400 DH
-81500 249500 800 400 DH
-495000 220000 800 400 DH
-470000 220000 800 400 DH
-85000 330000 800 400 DH
-85000 360000 800 400 DH
-582500 245000 800 400 DH
-592500 245000 800 400 DH
-602500 245000 800 400 DH
-535000 210000 800 400 DH
-545000 210000 800 400 DH
-355000 62500 800 400 DH
-355000 22500 800 400 DH
-105000 330000 800 400 DH
-115000 330000 800 400 DH
-172500 320000 800 400 DH
-182500 320000 800 400 DH
-192500 320000 800 400 DH
-202500 320000 800 400 DH
-202500 290000 800 400 DH
-192500 290000 800 400 DH
-182500 290000 800 400 DH
-172500 290000 800 400 DH
-495000 277500 800 400 DH
-470000 277500 800 400 DH
-570000 360000 800 400 DH
-560000 360000 800 400 DH
-550000 360000 800 400 DH
-280000 257500 800 400 DH
-280000 297500 800 400 DH
-116000 280000 800 400 DH
-76000 280000 800 400 DH
-490000 370000 800 400 DH
-475000 370000 800 400 DH
-530000 292500 800 400 DH
-540000 292500 800 400 DH
-550000 292500 800 400 DH
-652500 47500 800 400 DH
-652500 57500 800 400 DH
-652500 67500 800 400 DH
-652500 77500 800 400 DH
-652500 87500 800 400 DH
-652500 97500 800 400 DH
-652500 107500 800 400 DH
-652500 117500 800 400 DH
-652500 127500 800 400 DH
-652500 137500 800 400 DH
-652500 147500 800 400 DH
-652500 157500 800 400 DH
-652500 167500 800 400 DH
-652500 177500 800 400 DH
-652500 187500 800 400 DH
-652500 197500 800 400 DH
-652500 207500 800 400 DH
-652500 217500 800 400 DH
-652500 227500 800 400 DH
-652500 237500 800 400 DH
-652500 247500 800 400 DH
-652500 257500 800 400 DH
-652500 267500 800 400 DH
-652500 277500 800 400 DH
-652500 287500 800 400 DH
-652500 297500 800 400 DH
-652500 307500 800 400 DH
-652500 317500 800 400 DH
-652500 327500 800 400 DH
-652500 337500 800 400 DH
-652500 347500 800 400 DH
-652500 357500 800 400 DH
-642500 47500 800 400 DH
-642500 57500 800 400 DH
-642500 67500 800 400 DH
-642500 77500 800 400 DH
-642500 87500 800 400 DH
-642500 97500 800 400 DH
-642500 107500 800 400 DH
-642500 117500 800 400 DH
-642500 127500 800 400 DH
-642500 137500 800 400 DH
-642500 147500 800 400 DH
-642500 157500 800 400 DH
-642500 167500 800 400 DH
-642500 177500 800 400 DH
-642500 187500 800 400 DH
-642500 197500 800 400 DH
-642500 207500 800 400 DH
-642500 217500 800 400 DH
-642500 227500 800 400 DH
-642500 237500 800 400 DH
-642500 247500 800 400 DH
-642500 257500 800 400 DH
-642500 267500 800 400 DH
-642500 277500 800 400 DH
-642500 287500 800 400 DH
-642500 297500 800 400 DH
-642500 307500 800 400 DH
-642500 317500 800 400 DH
-642500 327500 800 400 DH
-642500 337500 800 400 DH
-642500 347500 800 400 DH
-642500 357500 800 400 DH
-632500 47500 800 400 DH
-632500 57500 800 400 DH
-632500 67500 800 400 DH
-632500 77500 800 400 DH
-632500 87500 800 400 DH
-632500 97500 800 400 DH
-632500 107500 800 400 DH
-632500 117500 800 400 DH
-632500 127500 800 400 DH
-632500 137500 800 400 DH
-632500 147500 800 400 DH
-632500 157500 800 400 DH
-632500 167500 800 400 DH
-632500 177500 800 400 DH
-632500 187500 800 400 DH
-632500 197500 800 400 DH
-632500 207500 800 400 DH
-632500 217500 800 400 DH
-632500 227500 800 400 DH
-632500 237500 800 400 DH
-632500 247500 800 400 DH
-632500 257500 800 400 DH
-632500 267500 800 400 DH
-632500 277500 800 400 DH
-632500 287500 800 400 DH
-632500 297500 800 400 DH
-632500 307500 800 400 DH
-632500 317500 800 400 DH
-632500 327500 800 400 DH
-632500 337500 800 400 DH
-632500 347500 800 400 DH
-632500 357500 800 400 DH
-662500 377500 800 400 DH
-662500 27500 800 400 DH
-332500 260000 800 400 DH
-322500 260000 800 400 DH
-447500 62500 800 400 DH
-447500 22500 800 400 DH
-300000 297500 800 400 DH
-300000 257500 800 400 DH
-475000 330000 800 400 DH
-490000 330000 800 400 DH
-55000 269500 800 400 DH
-55000 287200 800 400 DH
-64800 264600 800 400 DH
-64800 292200 800 400 DH
-582500 292500 800 400 DH
-592500 292500 800 400 DH
-602500 292500 800 400 DH
-562500 187500 800 400 DH
-592500 187500 800 400 DH
-577500 117500 800 400 DH
-587500 117500 800 400 DH
-597500 117500 800 400 DH
-607500 117500 800 400 DH
-607500 87500 800 400 DH
-597500 87500 800 400 DH
-587500 87500 800 400 DH
-577500 87500 800 400 DH
-582500 210000 800 400 DH
-592500 210000 800 400 DH
-602500 210000 800 400 DH
-577500 57500 800 400 DH
-587500 57500 800 400 DH
-597500 57500 800 400 DH
-607500 57500 800 400 DH
-607500 27500 800 400 DH
-597500 27500 800 400 DH
-587500 27500 800 400 DH
-577500 27500 800 400 DH
-322500 290000 800 400 DH
-332500 290000 800 400 DH
-87500 57500 800 400 DH
-97500 62500 800 400 DH
-87500 67500 800 400 DH
-97500 72500 800 400 DH
-87500 77500 800 400 DH
-97500 82500 800 400 DH
-87500 87500 800 400 DH
-97500 92500 800 400 DH
-62500 52500 800 400 DH
-62500 97600 800 400 DH
-74500 44500 800 400 DH
-74500 105600 800 400 DH
-360000 290000 800 400 DH
-370000 290000 800 400 DH
-380000 290000 800 400 DH
-390000 290000 800 400 DH
-390000 260000 800 400 DH
-380000 260000 800 400 DH
-370000 260000 800 400 DH
-360000 260000 800 400 DH
-317500 342500 800 400 DH
-327500 342500 800 400 DH
-137500 342500 800 400 DH
-127500 342500 800 400 DH
-540000 162500 800 400 DH
-535000 152500 800 400 DH
-530000 162500 800 400 DH
-525000 152500 800 400 DH
-520000 162500 800 400 DH
-515000 152500 800 400 DH
-510000 162500 800 400 DH
-505000 152500 800 400 DH
-500000 162500 800 400 DH
-495000 152500 800 400 DH
-490000 162500 800 400 DH
-485000 152500 800 400 DH
-480000 162500 800 400 DH
-475000 152500 800 400 DH
-470000 162500 800 400 DH
-465000 152500 800 400 DH
-460000 162500 800 400 DH
-455000 152500 800 400 DH
-450000 162500 800 400 DH
-445000 152500 800 400 DH
-440000 162500 800 400 DH
-435000 152500 800 400 DH
-430000 162500 800 400 DH
-425000 152500 800 400 DH
-420000 162500 800 400 DH
-415000 152500 800 400 DH
-410000 162500 800 400 DH
-405000 152500 800 400 DH
-400000 162500 800 400 DH
-395000 152500 800 400 DH
-390000 162500 800 400 DH
-385000 152500 800 400 DH
-380000 162500 800 400 DH
-375000 152500 800 400 DH
-370000 162500 800 400 DH
-365000 152500 800 400 DH
-340000 162500 800 400 DH
-335000 152500 800 400 DH
-330000 162500 800 400 DH
-325000 152500 800 400 DH
-320000 162500 800 400 DH
-315000 152500 800 400 DH
-310000 162500 800 400 DH
-305000 152500 800 400 DH
-300000 162500 800 400 DH
-295000 152500 800 400 DH
-290000 162500 800 400 DH
-285000 152500 800 400 DH
-280000 162500 800 400 DH
-275000 152500 800 400 DH
-270000 162500 800 400 DH
-265000 152500 800 400 DH
-260000 162500 800 400 DH
-255000 152500 800 400 DH
-250000 162500 800 400 DH
-245000 152500 800 400 DH
-240000 162500 800 400 DH
-235000 152500 800 400 DH
-230000 162500 800 400 DH
-225000 152500 800 400 DH
-220000 162500 800 400 DH
-215000 152500 800 400 DH
-210000 162500 800 400 DH
-205000 152500 800 400 DH
-200000 162500 800 400 DH
-195000 152500 800 400 DH
-190000 162500 800 400 DH
-185000 152500 800 400 DH
-180000 162500 800 400 DH
-175000 152500 800 400 DH
-170000 162500 800 400 DH
-165000 152500 800 400 DH
-573000 157500 800 400 DH
-352500 157500 800 400 DH
-132500 157500 800 400 DH
-137500 372500 800 400 DH
-127500 372500 800 400 DH
-172500 372500 800 400 DH
-182500 372500 800 400 DH
-192500 372500 800 400 DH
-202500 372500 800 400 DH
-212500 372500 800 400 DH
-222500 372500 800 400 DH
-232500 372500 800 400 DH
-242500 372500 800 400 DH
-252500 372500 800 400 DH
-262500 372500 800 400 DH
-272500 372500 800 400 DH
-282500 372500 800 400 DH
-282500 342500 800 400 DH
-272500 342500 800 400 DH
-262500 342500 800 400 DH
-252500 342500 800 400 DH
-242500 342500 800 400 DH
-232500 342500 800 400 DH
-222500 342500 800 400 DH
-212500 342500 800 400 DH
-202500 342500 800 400 DH
-192500 342500 800 400 DH
-182500 342500 800 400 DH
-172500 342500 800 400 DH
-115500 305500 800 400 DH
-75500 305500 800 400 DH
-57500 27500 800 400 DH
-57500 376200 800 400 DH
-662500 27500 800 400 DH
-662500 376200 800 400 DH
-/Color {0.498 0.498 0.498 mysetrgbcolor} def Color
-475000 342500 800 400 DH
-490000 342500 800 400 DH
-560000 342500 800 400 DH
-602500 260000 800 400 DH
-540000 260000 800 400 DH
-540000 307500 800 400 DH
-602500 307500 800 400 DH
-592500 277500 800 400 DH
-612500 287500 800 400 DH
-540000 327500 800 400 DH
-395000 317500 800 400 DH
-475000 317500 800 400 DH
-622500 342500 800 400 DH
-612500 267500 800 400 DH
-592500 222500 800 400 DH
-462500 342500 800 400 DH
-562500 220000 800 400 DH
-622500 102500 800 400 DH
-647500 102500 800 400 DH
-567500 107500 800 400 DH
-597500 47500 800 400 DH
-537500 47500 800 400 DH
-487500 47500 800 400 DH
-517500 40000 800 400 DH
-577500 40000 800 400 DH
-402500 72500 800 400 DH
-487500 72500 800 400 DH
-537500 72500 800 400 DH
-592500 72500 800 400 DH
-497500 95000 800 400 DH
-140000 95000 800 400 DH
-175000 95000 800 400 DH
-237500 95000 800 400 DH
-322500 317500 800 400 DH
-327500 392500 800 400 DH
-240000 245000 800 400 DH
-270000 245000 800 400 DH
-140000 245000 800 400 DH
-130000 280000 800 400 DH
-130000 290000 800 400 DH
-252500 287500 800 400 DH
-427500 100000 800 400 DH
-525000 100000 800 400 DH
-315000 100000 800 400 DH
-447500 95000 800 400 DH
-202500 305000 800 400 DH
-127500 392500 800 400 DH
-212500 392500 800 400 DH
-272500 392500 800 400 DH
-360000 317500 800 400 DH
-77500 392500 800 400 DH
-487500 107500 800 400 DH
-620000 52500 800 400 DH
-622500 87500 800 400 DH
-537500 107500 800 400 DH
-637500 172500 800 400 DH
-262500 172500 800 400 DH
-597500 65000 800 400 DH
-407500 47500 800 400 DH
-205000 82500 800 400 DH
-402500 235000 800 400 DH
-295000 130000 800 400 DH
-335000 52500 800 400 DH
-527500 22500 800 400 DH
-615000 15000 800 400 DH
-477500 57500 800 400 DH
-622500 35000 800 400 DH
-647500 20000 800 400 DH
-557500 15000 800 400 DH
-502500 15000 800 400 DH
-547500 142500 800 400 DH
-610000 142500 800 400 DH
-615000 130000 800 400 DH
-555000 135000 800 400 DH
-195000 57500 800 400 DH
-242500 360000 800 400 DH
-210000 67500 800 400 DH
-115000 112500 800 400 DH
-507500 107500 800 400 DH
-417500 135000 800 400 DH
-200000 62500 800 400 DH
-512500 80000 800 400 DH
-557500 237500 800 400 DH
-447500 30000 800 400 DH
-355000 130000 800 400 DH
-272500 352500 800 400 DH
-95000 245000 800 400 DH
-115000 245000 800 400 DH
-582500 285000 800 400 DH
-110000 367500 800 400 DH
-182500 385000 800 400 DH
-252500 385000 800 400 DH
-212500 352500 800 400 DH
-232500 352500 800 400 DH
-192500 360000 800 400 DH
-417500 107500 800 400 DH
-447500 107500 800 400 DH
-472500 107500 800 400 DH
-467500 15000 800 400 DH
-255000 120000 800 400 DH
-265000 120000 800 400 DH
-265000 130000 800 400 DH
-250000 130000 800 400 DH
-260000 105000 800 400 DH
-245000 105000 800 400 DH
-285000 120000 800 400 DH
-300000 120000 800 400 DH
-290000 125000 800 400 DH
-310000 125000 800 400 DH
-295000 137500 800 400 DH
-322500 137500 800 400 DH
-145000 137500 800 400 DH
-155000 125000 800 400 DH
-160000 100000 800 400 DH
-300000 100000 800 400 DH
-170000 142500 800 400 DH
-280000 142500 800 400 DH
-180000 132500 800 400 DH
-275000 130000 800 400 DH
-190000 105000 800 400 DH
-270000 105000 800 400 DH
-200000 255000 800 400 DH
-270000 255000 800 400 DH
-322500 245000 800 400 DH
-350000 250000 800 400 DH
-202500 282500 800 400 DH
-220000 282500 800 400 DH
-257500 250000 800 400 DH
-210000 250000 800 400 DH
-257500 197500 800 400 DH
-220000 225000 800 400 DH
-240000 225000 800 400 DH
-300000 212500 800 400 DH
-215000 212500 800 400 DH
-310000 217500 800 400 DH
-225000 217500 800 400 DH
-225000 195000 800 400 DH
-315000 192500 800 400 DH
-150000 187500 800 400 DH
-325000 187500 800 400 DH
-235000 187500 800 400 DH
-360000 252500 800 400 DH
-292500 222500 800 400 DH
-170000 217500 800 400 DH
-210000 230000 800 400 DH
-390000 225000 800 400 DH
-257500 277500 800 400 DH
-385000 277500 800 400 DH
-155000 282500 800 400 DH
-340000 282500 800 400 DH
-230000 182500 800 400 DH
-245000 182500 800 400 DH
-227500 90000 800 400 DH
-255000 90000 800 400 DH
-250000 172500 800 400 DH
-190000 175000 800 400 DH
-180000 170000 800 400 DH
-430000 197500 800 400 DH
-332500 270000 800 400 DH
-290000 265000 800 400 DH
-480000 265000 800 400 DH
-470000 290000 800 400 DH
-462500 282500 800 400 DH
-300000 177500 800 400 DH
-485000 177500 800 400 DH
-305000 85000 800 400 DH
-275000 85000 800 400 DH
-330000 80000 800 400 DH
-285000 80000 800 400 DH
-350000 220000 800 400 DH
-365000 220000 800 400 DH
-355000 385000 800 400 DH
-297500 352500 800 400 DH
-375000 360000 800 400 DH
-107500 147500 800 400 DH
-122000 160500 800 400 DH
-450000 182500 800 400 DH
-262500 352500 800 400 DH
-327500 352500 800 400 DH
-400000 225000 800 400 DH
-405000 215000 800 400 DH
-410000 205000 800 400 DH
-105000 270000 800 400 DH
-415000 272500 800 400 DH
-402500 250000 800 400 DH
-222500 310000 800 400 DH
-402500 310000 800 400 DH
-520000 260000 800 400 DH
-520000 337500 800 400 DH
-210000 322500 800 400 DH
-570000 322500 800 400 DH
-570000 245000 800 400 DH
-530000 327500 800 400 DH
-282500 330000 800 400 DH
-327500 305000 800 400 DH
-49500 330000 800 400 DH
-130000 255000 800 400 DH
-76500 257000 800 400 DH
-90500 305500 800 400 DH
-592500 360000 800 400 DH
-405000 342500 800 400 DH
-grestore
-% PCBENDDATA --- do not remove ---
-showpage
-%%EOF
+++ /dev/null
-%!PS-Adobe-3.0
-%%Title: (unknown), solder mask component side
-%%Creator: pcb-bin 20060321
-%%CreationDate: Tue Nov 27 09:49:27 2007
-%%For: fetter (Walter Fetter Lages,,,)
-%%LanguageLevel: 1
-%%Orientation: Portrait
-%%Pages: 1
-%%PageOrder: Ascend
-%%DocumentMedia: A4 594 841
-%%EndComments
-%%BeginProlog
-
-/PcbDict 200 dict def
-PcbDict begin
-PcbDict /DictMatrix matrix put
-
-% some constants
-/Black {0.0 mysetgray} def
-/White {1.0 mysetgray} def
-/TAN {0.207106781} def
-/MTAN {-0.207106781} def
-
-% draw a filled polygon
-% get (x,y)... and number of points from stack
-/PO {
- /number exch def
- newpath
- moveto
- number 1 sub { lineto } repeat
- closepath fill stroke
-} def
-
-/P {
-% draw a pin-polygon,
-% get x, y and thickness from stack
- /thickness exch def /y exch def /x exch def
- gsave x y translate thickness thickness scale
- 0.5 MTAN
- TAN -0.5
- MTAN -0.5
- -0.5 MTAN
- -0.5 TAN
- MTAN 0.5
- TAN 0.5
- 0.5 TAN
- 8 PO grestore
-} def
-
-/PV {
-% pin or via, x, y and thickness are on the stack
- /drillinghole exch def /thickness exch def /y exch def /x exch def
- x y thickness P
-% draw drilling hole
- gsave White 0 setlinewidth
- newpath x y drillinghole 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/PVR {
-% pin or via, x, y and thickness are on the stack
- /drillinghole exch def /thickness exch def /y exch def /x exch def
- gsave 0 setlinewidth
- newpath x y thickness 2 div 0 360 arc closepath fill stroke
-% draw drilling whole
- White
- newpath x y drillinghole 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/PVSQ {
-% square pin or via, x, y and thickness are on the stack
- /drillinghole exch def /thickness exch def /y exch def /x exch def
- newpath x thickness 2 div sub y thickness 2 div sub moveto
- thickness 0 rlineto 0 thickness rlineto
- thickness neg 0 rlineto closepath fill stroke
-% draw drilling hole
- gsave White 0 setlinewidth
- newpath x y drillinghole 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/DH {
-% drill helpher; x, y, hole, copper-thickness are on stack
- /copper exch def /hole exch def /y exch def /x exch def
- gsave copper setlinewidth
- newpath x y hole copper add 2 div 0 360 arc closepath stroke
- grestore
-} def
-
-/L {
-% line, get x1, y1, x2, y2 and thickness from stack
- /thick exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave thick setlinewidth
- x1 y1 moveto x2 y2 lineto stroke
- grestore
-} def
-
-/CL {
-% line, get x1, y1, x2, y2 and thickness from stack
- /thick exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave White thick setlinewidth
- x1 y1 moveto x2 y2 lineto stroke
- grestore
-} def
-
-/B {
-% filled box, get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath fill stroke
-} def
-
-/PA {
-% pad, same as line
- L
-} def
-
-/A {
-% arc for elements, get x, y, width, height, thickness
-% startangle and delta-angle from stack
- /delta exch def /start exch def /thickness exch def
- /height exch def /width exch def /y exch def /x exch def
-% draw it
- gsave thickness setlinewidth /save DictMatrix currentmatrix def
-% scaling is less then zero because the coord system has to be swapped
- x y translate width neg height scale
- 0 0 1 start start delta add arc save setmatrix stroke
- grestore
-} def
-
-/CA {
-% arc for elements, get x, y, width, height, thickness
-% startangle and delta-angle from stack
- /delta exch def /start exch def /thickness exch def
- /height exch def /width exch def /y exch def /x exch def
-% draw it
- gsave White thickness setlinewidth /save DictMatrix currentmatrix def
-% scaling is less then zero because the coord system has to be swapped
- x y translate width neg height scale
- 0 0 1 start start delta add arc save setmatrix stroke
- grestore
-} def
-
-/CLRPV {
-% clears a pin/via for groundplane; x,y and thickness are on stack
- /thickness exch def /y exch def /x exch def
- gsave White x y thickness P grestore
-} def
-
-/CLRPVSQ {
-% clears a square pin, x,y and thickness are on stack
- /thickness exch def /y exch def /x exch def
- gsave White
- newpath x thickness 2 div sub y thickness 2 div sub moveto
- thickness 0 rlineto 0 thickness rlineto
- thickness neg 0 rlineto closepath fill stroke
- grestore
-} def
-
-/CLRPVR {
-% clears a round pin/via for groundplane; x,y and thickness are on the stack
- /thickness exch def /y exch def /x exch def
- gsave White 0 setlinewidth
- newpath x y thickness 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/CLRPA {
-% clear line, get x1, y1, x2, y2 and thickness from stack
- /thick exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave White thick setlinewidth
- x1 y1 moveto x2 y2 lineto stroke
- grestore
-} def
-
-/CLRB {
-% cleared box, get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave White newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath fill stroke
- grestore
-} def
-
-/FILL {
-% draw a filled rectangle for the ground plane
-% get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave 0 setlinewidth
- newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath fill stroke
- grestore
-} def
-
-/Outline {
-% outline, get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave 0.175 setlinewidth
- newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath stroke
- grestore
-} def
-
-/Alignment {
-% alignment targets, get x1, y1, x2, y2 and distance from stack
- /dis exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave 0.175 setlinewidth
- newpath x1 y1 dis add moveto
- 0 dis 2 mul neg rlineto
- dis neg dis rmoveto
- dis 2 mul 0 rlineto
- stroke
- newpath x1 y1 dis 0 90 arcn stroke
- newpath x1 y2 dis sub moveto 0 dis rlineto dis 0 rlineto stroke
- newpath x2 y2 dis sub moveto
- 0 2 dis mul rlineto
- dis dup neg rmoveto
- 2 dis mul neg 0 rlineto stroke
- newpath x2 y1 dis add moveto 0 dis neg rlineto dis neg 0 rlineto stroke
- grestore
-} def
-
-/mysetgray {neg 1.0 add setgray} def
-/mysetrgbcolor {
- /blue exch def /green exch def /red exch def
- 1.0 red sub 1.0 green sub 1.0 blue sub setrgbcolor
-} def
-%%EndProlog
-%%BeginDefaults
-%%EndDefaults
-%%BeginSetup
-0.0 setlinewidth
-1 setlinecap
-Black
-%%EndSetup
-%%Page: 1 1
-%%BeginPageSetup
-%%EndPageSetup
-gsave White newpath
-153 160 moveto 451 160 lineto 451 673 lineto 153 673 lineto
-closepath fill stroke grestore
-% PCBMIN(-400,-400), PCBMAX(710400,410400)
-% PCBOFFSET(214900,223900), PCBSCALE(1.00000)
-% PCBSTARTDATA --- do not remove ---
-gsave
-0.00072 0.00072 scale
-214900 223900 translate
-1.000 1.000 scale
-410800 0 translate
-90 rotate
-0 410800 translate
-1 -1 scale
-400 400 translate
-/mysetgray { setgray } def
-/mysetrgbcolor { setrgbcolor } def
-
-/Color {0.302 0.302 0.302 mysetrgbcolor} def Color
--400 -400 710400 410400 200 Alignment
-335000 62500 6600 CLRPVSQ
-335000 22500 6600 CLRPVR
-297500 342500 6600 CLRPVSQ
-297500 372500 6600 CLRPVR
-415000 360000 8600 CLRPVSQ
-405000 360000 8600 CLRPVR
-395000 360000 8600 CLRPVR
-447500 122500 6600 CLRPVSQ
-447500 82500 6600 CLRPVR
-397500 117500 6600 CLRPVSQ
-407500 117500 6600 CLRPVR
-417500 117500 6600 CLRPVR
-427500 117500 6600 CLRPVR
-427500 87500 6600 CLRPVR
-417500 87500 6600 CLRPVR
-407500 87500 6600 CLRPVR
-397500 87500 6600 CLRPVR
-557500 122500 6600 CLRPVSQ
-557500 82500 6600 CLRPVR
-537500 62500 6600 CLRPVSQ
-537500 22500 6600 CLRPVR
-487500 57500 6600 CLRPVSQ
-497500 57500 6600 CLRPVR
-507500 57500 6600 CLRPVR
-517500 57500 6600 CLRPVR
-517500 27500 6600 CLRPVR
-507500 27500 6600 CLRPVR
-497500 27500 6600 CLRPVR
-487500 27500 6600 CLRPVR
-467500 62500 6600 CLRPVSQ
-467500 22500 6600 CLRPVR
-467500 122500 6600 CLRPVSQ
-467500 82500 6600 CLRPVR
-537500 122500 6600 CLRPVSQ
-537500 82500 6600 CLRPVR
-487500 117500 6600 CLRPVSQ
-497500 117500 6600 CLRPVR
-507500 117500 6600 CLRPVR
-517500 117500 6600 CLRPVR
-517500 87500 6600 CLRPVR
-507500 87500 6600 CLRPVR
-497500 87500 6600 CLRPVR
-487500 87500 6600 CLRPVR
-397500 57500 6600 CLRPVSQ
-407500 57500 6600 CLRPVR
-417500 57500 6600 CLRPVR
-427500 57500 6600 CLRPVR
-427500 27500 6600 CLRPVR
-417500 27500 6600 CLRPVR
-407500 27500 6600 CLRPVR
-397500 27500 6600 CLRPVR
-557500 62500 6600 CLRPVSQ
-557500 22500 6600 CLRPVR
-157500 342500 6600 CLRPVSQ
-157500 372500 6600 CLRPVR
-57500 239500 6600 CLRPVSQ
-57500 249500 6600 CLRPVR
-530000 245000 8600 CLRPVSQ
-540000 245000 8600 CLRPVR
-550000 245000 8600 CLRPVR
-245000 57500 6600 CLRPVSQ
-255000 57500 6600 CLRPVR
-265000 57500 6600 CLRPVR
-275000 57500 6600 CLRPVR
-285000 57500 6600 CLRPVR
-295000 57500 6600 CLRPVR
-305000 57500 6600 CLRPVR
-315000 57500 6600 CLRPVR
-315000 27500 6600 CLRPVR
-305000 27500 6600 CLRPVR
-295000 27500 6600 CLRPVR
-285000 27500 6600 CLRPVR
-275000 27500 6600 CLRPVR
-265000 27500 6600 CLRPVR
-255000 27500 6600 CLRPVR
-245000 27500 6600 CLRPVR
-317500 372500 6600 CLRPVSQ
-327500 372500 6600 CLRPVR
-420000 205000 7600 CLRPVSQ
-430000 205000 7600 CLRPVR
-420000 215000 7600 CLRPVR
-430000 215000 7600 CLRPVR
-420000 225000 7600 CLRPVR
-430000 225000 7600 CLRPVR
-420000 235000 7600 CLRPVR
-430000 235000 7600 CLRPVR
-140000 265000 6600 CLRPVSQ
-150000 265000 6600 CLRPVR
-160000 265000 6600 CLRPVR
-170000 265000 6600 CLRPVR
-180000 265000 6600 CLRPVR
-190000 265000 6600 CLRPVR
-200000 265000 6600 CLRPVR
-210000 265000 6600 CLRPVR
-220000 265000 6600 CLRPVR
-230000 265000 6600 CLRPVR
-240000 265000 6600 CLRPVR
-250000 265000 6600 CLRPVR
-250000 205000 6600 CLRPVR
-240000 205000 6600 CLRPVR
-230000 205000 6600 CLRPVR
-220000 205000 6600 CLRPVR
-210000 205000 6600 CLRPVR
-200000 205000 6600 CLRPVR
-190000 205000 6600 CLRPVR
-180000 205000 6600 CLRPVR
-170000 205000 6600 CLRPVR
-160000 205000 6600 CLRPVR
-150000 205000 6600 CLRPVR
-140000 205000 6600 CLRPVR
-280000 235000 6600 CLRPVSQ
-290000 235000 6600 CLRPVR
-300000 235000 6600 CLRPVR
-310000 235000 6600 CLRPVR
-320000 235000 6600 CLRPVR
-330000 235000 6600 CLRPVR
-340000 235000 6600 CLRPVR
-350000 235000 6600 CLRPVR
-360000 235000 6600 CLRPVR
-370000 235000 6600 CLRPVR
-380000 235000 6600 CLRPVR
-390000 235000 6600 CLRPVR
-390000 205000 6600 CLRPVR
-380000 205000 6600 CLRPVR
-370000 205000 6600 CLRPVR
-360000 205000 6600 CLRPVR
-350000 205000 6600 CLRPVR
-340000 205000 6600 CLRPVR
-330000 205000 6600 CLRPVR
-320000 205000 6600 CLRPVR
-310000 205000 6600 CLRPVR
-300000 205000 6600 CLRPVR
-290000 205000 6600 CLRPVR
-280000 205000 6600 CLRPVR
-77500 124000 12600 CLRPVR
-77500 218000 12600 CLRPVR
-82500 151000 7600 CLRPVR
-72500 156000 7600 CLRPVR
-82500 161000 7600 CLRPVR
-72500 166000 7600 CLRPVR
-82500 171000 7600 CLRPVR
-72500 176000 7600 CLRPVR
-82500 181000 7600 CLRPVR
-72500 186000 7600 CLRPVR
-82500 191000 7600 CLRPVSQ
-81500 239500 6600 CLRPVSQ
-81500 249500 6600 CLRPVR
-495000 220000 7600 CLRPVSQ
-470000 220000 7600 CLRPVR
-85000 330000 6600 CLRPVSQ
-85000 360000 6600 CLRPVR
-582500 245000 8600 CLRPVSQ
-592500 245000 8600 CLRPVR
-602500 245000 8600 CLRPVR
-535000 210000 6600 CLRPVSQ
-545000 210000 6600 CLRPVR
-355000 62500 6600 CLRPVSQ
-355000 22500 6600 CLRPVR
-105000 330000 7600 CLRPVSQ
-115000 330000 7600 CLRPVR
-172500 320000 6600 CLRPVSQ
-182500 320000 6600 CLRPVR
-192500 320000 6600 CLRPVR
-202500 320000 6600 CLRPVR
-202500 290000 6600 CLRPVR
-192500 290000 6600 CLRPVR
-182500 290000 6600 CLRPVR
-172500 290000 6600 CLRPVR
-495000 277500 7600 CLRPVSQ
-470000 277500 7600 CLRPVR
-570000 360000 8600 CLRPVSQ
-560000 360000 8600 CLRPVR
-550000 360000 8600 CLRPVR
-280000 257500 6600 CLRPVSQ
-280000 297500 6600 CLRPVR
-116000 280000 6600 CLRPVSQ
-76000 280000 6600 CLRPVR
-490000 370000 6600 CLRPVSQ
-475000 370000 6600 CLRPVR
-530000 292500 8600 CLRPVSQ
-540000 292500 8600 CLRPVR
-550000 292500 8600 CLRPVR
-652500 47500 6600 CLRPVSQ
-652500 57500 6600 CLRPVR
-652500 67500 6600 CLRPVR
-652500 77500 6600 CLRPVR
-652500 87500 6600 CLRPVR
-652500 97500 6600 CLRPVR
-652500 107500 6600 CLRPVR
-652500 117500 6600 CLRPVR
-652500 127500 6600 CLRPVR
-652500 137500 6600 CLRPVR
-652500 147500 6600 CLRPVR
-652500 157500 6600 CLRPVR
-652500 167500 6600 CLRPVR
-652500 177500 6600 CLRPVR
-652500 187500 6600 CLRPVR
-652500 197500 6600 CLRPVR
-652500 207500 6600 CLRPVR
-652500 217500 6600 CLRPVR
-652500 227500 6600 CLRPVR
-652500 237500 6600 CLRPVR
-652500 247500 6600 CLRPVR
-652500 257500 6600 CLRPVR
-652500 267500 6600 CLRPVR
-652500 277500 6600 CLRPVR
-652500 287500 6600 CLRPVR
-652500 297500 6600 CLRPVR
-652500 307500 6600 CLRPVR
-652500 317500 6600 CLRPVR
-652500 327500 6600 CLRPVR
-652500 337500 6600 CLRPVR
-652500 347500 6600 CLRPVR
-652500 357500 6600 CLRPVR
-642500 47500 6600 CLRPVR
-642500 57500 6600 CLRPVR
-642500 67500 6600 CLRPVR
-642500 77500 6600 CLRPVR
-642500 87500 6600 CLRPVR
-642500 97500 6600 CLRPVR
-642500 107500 6600 CLRPVR
-642500 117500 6600 CLRPVR
-642500 127500 6600 CLRPVR
-642500 137500 6600 CLRPVR
-642500 147500 6600 CLRPVR
-642500 157500 6600 CLRPVR
-642500 167500 6600 CLRPVR
-642500 177500 6600 CLRPVR
-642500 187500 6600 CLRPVR
-642500 197500 6600 CLRPVR
-642500 207500 6600 CLRPVR
-642500 217500 6600 CLRPVR
-642500 227500 6600 CLRPVR
-642500 237500 6600 CLRPVR
-642500 247500 6600 CLRPVR
-642500 257500 6600 CLRPVR
-642500 267500 6600 CLRPVR
-642500 277500 6600 CLRPVR
-642500 287500 6600 CLRPVR
-642500 297500 6600 CLRPVR
-642500 307500 6600 CLRPVR
-642500 317500 6600 CLRPVR
-642500 327500 6600 CLRPVR
-642500 337500 6600 CLRPVR
-642500 347500 6600 CLRPVR
-642500 357500 6600 CLRPVR
-632500 47500 6600 CLRPVR
-632500 57500 6600 CLRPVR
-632500 67500 6600 CLRPVR
-632500 77500 6600 CLRPVR
-632500 87500 6600 CLRPVR
-632500 97500 6600 CLRPVR
-632500 107500 6600 CLRPVR
-632500 117500 6600 CLRPVR
-632500 127500 6600 CLRPVR
-632500 137500 6600 CLRPVR
-632500 147500 6600 CLRPVR
-632500 157500 6600 CLRPVR
-632500 167500 6600 CLRPVR
-632500 177500 6600 CLRPVR
-632500 187500 6600 CLRPVR
-632500 197500 6600 CLRPVR
-632500 207500 6600 CLRPVR
-632500 217500 6600 CLRPVR
-632500 227500 6600 CLRPVR
-632500 237500 6600 CLRPVR
-632500 247500 6600 CLRPVR
-632500 257500 6600 CLRPVR
-632500 267500 6600 CLRPVR
-632500 277500 6600 CLRPVR
-632500 287500 6600 CLRPVR
-632500 297500 6600 CLRPVR
-632500 307500 6600 CLRPVR
-632500 317500 6600 CLRPVR
-632500 327500 6600 CLRPVR
-632500 337500 6600 CLRPVR
-632500 347500 6600 CLRPVR
-632500 357500 6600 CLRPVR
-662500 377500 12600 CLRPVR
-662500 27500 12600 CLRPVR
-332500 260000 6600 CLRPVSQ
-322500 260000 6600 CLRPVR
-447500 62500 6600 CLRPVSQ
-447500 22500 6600 CLRPVR
-300000 297500 6600 CLRPVSQ
-300000 257500 6600 CLRPVR
-475000 330000 6600 CLRPVSQ
-490000 330000 6600 CLRPVR
-55000 269500 7600 CLRPVSQ
-55000 287200 7600 CLRPVR
-64800 264600 7600 CLRPVR
-64800 292200 7600 CLRPVR
-582500 292500 8600 CLRPVSQ
-592500 292500 8600 CLRPVR
-602500 292500 8600 CLRPVR
-562500 187500 6600 CLRPVSQ
-592500 187500 6600 CLRPVR
-577500 117500 6600 CLRPVSQ
-587500 117500 6600 CLRPVR
-597500 117500 6600 CLRPVR
-607500 117500 6600 CLRPVR
-607500 87500 6600 CLRPVR
-597500 87500 6600 CLRPVR
-587500 87500 6600 CLRPVR
-577500 87500 6600 CLRPVR
-582500 210000 8600 CLRPVSQ
-592500 210000 8600 CLRPVR
-602500 210000 8600 CLRPVR
-577500 57500 6600 CLRPVSQ
-587500 57500 6600 CLRPVR
-597500 57500 6600 CLRPVR
-607500 57500 6600 CLRPVR
-607500 27500 6600 CLRPVR
-597500 27500 6600 CLRPVR
-587500 27500 6600 CLRPVR
-577500 27500 6600 CLRPVR
-322500 290000 6600 CLRPVSQ
-332500 290000 6600 CLRPVR
-87500 57500 6600 CLRPVSQ
-97500 62500 6600 CLRPVR
-87500 67500 6600 CLRPVR
-97500 72500 6600 CLRPVR
-87500 77500 6600 CLRPVR
-97500 82500 6600 CLRPVR
-87500 87500 6600 CLRPVR
-97500 92500 6600 CLRPVR
-62500 52500 15400 CLRPVR
-62500 97600 15400 CLRPVR
-74500 44500 8600 CLRPVR
-74500 105600 8600 CLRPVR
-360000 290000 6600 CLRPVSQ
-370000 290000 6600 CLRPVR
-380000 290000 6600 CLRPVR
-390000 290000 6600 CLRPVR
-390000 260000 6600 CLRPVR
-380000 260000 6600 CLRPVR
-370000 260000 6600 CLRPVR
-360000 260000 6600 CLRPVR
-317500 342500 6600 CLRPVSQ
-327500 342500 6600 CLRPVR
-137500 342500 6600 CLRPVSQ
-127500 342500 6600 CLRPVR
-540000 162500 6600 CLRPVSQ
-535000 152500 6600 CLRPVR
-530000 162500 6600 CLRPVR
-525000 152500 6600 CLRPVR
-520000 162500 6600 CLRPVR
-515000 152500 6600 CLRPVR
-510000 162500 6600 CLRPVR
-505000 152500 6600 CLRPVR
-500000 162500 6600 CLRPVR
-495000 152500 6600 CLRPVR
-490000 162500 6600 CLRPVR
-485000 152500 6600 CLRPVR
-480000 162500 6600 CLRPVR
-475000 152500 6600 CLRPVR
-470000 162500 6600 CLRPVR
-465000 152500 6600 CLRPVR
-460000 162500 6600 CLRPVR
-455000 152500 6600 CLRPVR
-450000 162500 6600 CLRPVR
-445000 152500 6600 CLRPVR
-440000 162500 6600 CLRPVR
-435000 152500 6600 CLRPVR
-430000 162500 6600 CLRPVR
-425000 152500 6600 CLRPVR
-420000 162500 6600 CLRPVR
-415000 152500 6600 CLRPVR
-410000 162500 6600 CLRPVR
-405000 152500 6600 CLRPVR
-400000 162500 6600 CLRPVR
-395000 152500 6600 CLRPVR
-390000 162500 6600 CLRPVR
-385000 152500 6600 CLRPVR
-380000 162500 6600 CLRPVR
-375000 152500 6600 CLRPVR
-370000 162500 6600 CLRPVR
-365000 152500 6600 CLRPVR
-340000 162500 6600 CLRPVR
-335000 152500 6600 CLRPVR
-330000 162500 6600 CLRPVR
-325000 152500 6600 CLRPVR
-320000 162500 6600 CLRPVR
-315000 152500 6600 CLRPVR
-310000 162500 6600 CLRPVR
-305000 152500 6600 CLRPVR
-300000 162500 6600 CLRPVR
-295000 152500 6600 CLRPVR
-290000 162500 6600 CLRPVR
-285000 152500 6600 CLRPVR
-280000 162500 6600 CLRPVR
-275000 152500 6600 CLRPVR
-270000 162500 6600 CLRPVR
-265000 152500 6600 CLRPVR
-260000 162500 6600 CLRPVR
-255000 152500 6600 CLRPVR
-250000 162500 6600 CLRPVR
-245000 152500 6600 CLRPVR
-240000 162500 6600 CLRPVR
-235000 152500 6600 CLRPVR
-230000 162500 6600 CLRPVR
-225000 152500 6600 CLRPVR
-220000 162500 6600 CLRPVR
-215000 152500 6600 CLRPVR
-210000 162500 6600 CLRPVR
-205000 152500 6600 CLRPVR
-200000 162500 6600 CLRPVR
-195000 152500 6600 CLRPVR
-190000 162500 6600 CLRPVR
-185000 152500 6600 CLRPVR
-180000 162500 6600 CLRPVR
-175000 152500 6600 CLRPVR
-170000 162500 6600 CLRPVR
-165000 152500 6600 CLRPVR
-573000 157500 8600 CLRPVR
-352500 157500 12600 CLRPVR
-132500 157500 12600 CLRPVR
-137500 372500 6600 CLRPVSQ
-127500 372500 6600 CLRPVR
-172500 372500 6600 CLRPVSQ
-182500 372500 6600 CLRPVR
-192500 372500 6600 CLRPVR
-202500 372500 6600 CLRPVR
-212500 372500 6600 CLRPVR
-222500 372500 6600 CLRPVR
-232500 372500 6600 CLRPVR
-242500 372500 6600 CLRPVR
-252500 372500 6600 CLRPVR
-262500 372500 6600 CLRPVR
-272500 372500 6600 CLRPVR
-282500 372500 6600 CLRPVR
-282500 342500 6600 CLRPVR
-272500 342500 6600 CLRPVR
-262500 342500 6600 CLRPVR
-252500 342500 6600 CLRPVR
-242500 342500 6600 CLRPVR
-232500 342500 6600 CLRPVR
-222500 342500 6600 CLRPVR
-212500 342500 6600 CLRPVR
-202500 342500 6600 CLRPVR
-192500 342500 6600 CLRPVR
-182500 342500 6600 CLRPVR
-172500 342500 6600 CLRPVR
-115500 305500 6600 CLRPVSQ
-75500 305500 6600 CLRPVR
-57500 27500 12600 CLRPVR
-57500 376200 12600 CLRPVR
-662500 27500 12600 CLRPVR
-662500 376200 12600 CLRPVR
-475000 342500 6600 CLRPVR
-490000 342500 6600 CLRPVR
-560000 342500 6600 CLRPVR
-602500 260000 6600 CLRPVR
-540000 260000 6600 CLRPVR
-540000 307500 6600 CLRPVR
-602500 307500 6600 CLRPVR
-592500 277500 6600 CLRPVR
-612500 287500 6600 CLRPVR
-540000 327500 6600 CLRPVR
-395000 317500 6600 CLRPVR
-475000 317500 6600 CLRPVR
-622500 342500 6600 CLRPVR
-612500 267500 6600 CLRPVR
-592500 222500 6600 CLRPVR
-462500 342500 6600 CLRPVR
-562500 220000 6600 CLRPVR
-622500 102500 6600 CLRPVR
-647500 102500 6600 CLRPVR
-567500 107500 6600 CLRPVR
-597500 47500 6600 CLRPVR
-537500 47500 6600 CLRPVR
-487500 47500 6600 CLRPVR
-517500 40000 6600 CLRPVR
-577500 40000 6600 CLRPVR
-402500 72500 6600 CLRPVR
-487500 72500 6600 CLRPVR
-537500 72500 6600 CLRPVR
-592500 72500 6600 CLRPVR
-497500 95000 6600 CLRPVR
-140000 95000 6600 CLRPVR
-175000 95000 6600 CLRPVR
-237500 95000 6600 CLRPVR
-322500 317500 6600 CLRPVR
-327500 392500 6600 CLRPVR
-240000 245000 6600 CLRPVR
-270000 245000 6600 CLRPVR
-140000 245000 6600 CLRPVR
-130000 280000 6600 CLRPVR
-130000 290000 6600 CLRPVR
-252500 287500 4600 CLRPVR
-427500 100000 6600 CLRPVR
-525000 100000 6600 CLRPVR
-315000 100000 6600 CLRPVR
-447500 95000 6600 CLRPVR
-202500 305000 6600 CLRPVR
-127500 392500 6600 CLRPVR
-212500 392500 6600 CLRPVR
-272500 392500 6600 CLRPVR
-360000 317500 6600 CLRPVR
-77500 392500 6600 CLRPVR
-487500 107500 4600 CLRPVR
-620000 52500 4600 CLRPVR
-622500 87500 4600 CLRPVR
-537500 107500 4600 CLRPVR
-637500 172500 4600 CLRPVR
-262500 172500 4600 CLRPVR
-597500 65000 4600 CLRPVR
-407500 47500 6600 CLRPVR
-205000 82500 4600 CLRPVR
-402500 235000 4600 CLRPVR
-295000 130000 4600 CLRPVR
-335000 52500 4600 CLRPVR
-527500 22500 4600 CLRPVR
-615000 15000 4600 CLRPVR
-477500 57500 4600 CLRPVR
-622500 35000 4600 CLRPVR
-647500 20000 4600 CLRPVR
-557500 15000 4600 CLRPVR
-502500 15000 4600 CLRPVR
-547500 142500 4600 CLRPVR
-610000 142500 4600 CLRPVR
-615000 130000 4600 CLRPVR
-555000 135000 4600 CLRPVR
-195000 57500 4600 CLRPVR
-242500 360000 4600 CLRPVR
-210000 67500 4600 CLRPVR
-115000 112500 4600 CLRPVR
-507500 107500 4600 CLRPVR
-417500 135000 4600 CLRPVR
-200000 62500 4600 CLRPVR
-512500 80000 4600 CLRPVR
-557500 237500 4600 CLRPVR
-447500 30000 4600 CLRPVR
-355000 130000 4600 CLRPVR
-272500 352500 6600 CLRPVR
-95000 245000 4600 CLRPVR
-115000 245000 4600 CLRPVR
-582500 285000 4600 CLRPVR
-110000 367500 4600 CLRPVR
-182500 385000 4600 CLRPVR
-252500 385000 4600 CLRPVR
-212500 352500 6600 CLRPVR
-232500 352500 6600 CLRPVR
-192500 360000 4600 CLRPVR
-417500 107500 4600 CLRPVR
-447500 107500 4600 CLRPVR
-472500 107500 4600 CLRPVR
-467500 15000 4600 CLRPVR
-255000 120000 4600 CLRPVR
-265000 120000 4600 CLRPVR
-265000 130000 4600 CLRPVR
-250000 130000 4600 CLRPVR
-260000 105000 4600 CLRPVR
-245000 105000 4600 CLRPVR
-285000 120000 4600 CLRPVR
-300000 120000 4600 CLRPVR
-290000 125000 4600 CLRPVR
-310000 125000 4600 CLRPVR
-295000 137500 4600 CLRPVR
-322500 137500 4600 CLRPVR
-145000 137500 4600 CLRPVR
-155000 125000 4600 CLRPVR
-160000 100000 4600 CLRPVR
-300000 100000 4600 CLRPVR
-170000 142500 4600 CLRPVR
-280000 142500 4600 CLRPVR
-180000 132500 4600 CLRPVR
-275000 130000 4600 CLRPVR
-190000 105000 4600 CLRPVR
-270000 105000 4600 CLRPVR
-200000 255000 4600 CLRPVR
-270000 255000 4600 CLRPVR
-322500 245000 6600 CLRPVR
-350000 250000 4600 CLRPVR
-202500 282500 4600 CLRPVR
-220000 282500 4600 CLRPVR
-257500 250000 4600 CLRPVR
-210000 250000 4600 CLRPVR
-257500 197500 4600 CLRPVR
-220000 225000 6600 CLRPVR
-240000 225000 6600 CLRPVR
-300000 212500 4600 CLRPVR
-215000 212500 4600 CLRPVR
-310000 217500 4600 CLRPVR
-225000 217500 4600 CLRPVR
-225000 195000 4600 CLRPVR
-315000 192500 4600 CLRPVR
-150000 187500 4600 CLRPVR
-325000 187500 4600 CLRPVR
-235000 187500 4600 CLRPVR
-360000 252500 4600 CLRPVR
-292500 222500 4600 CLRPVR
-170000 217500 4600 CLRPVR
-210000 230000 4600 CLRPVR
-390000 225000 4600 CLRPVR
-257500 277500 4600 CLRPVR
-385000 277500 4600 CLRPVR
-155000 282500 4600 CLRPVR
-340000 282500 4600 CLRPVR
-230000 182500 4600 CLRPVR
-245000 182500 4600 CLRPVR
-227500 90000 4600 CLRPVR
-255000 90000 4600 CLRPVR
-250000 172500 4600 CLRPVR
-190000 175000 4600 CLRPVR
-180000 170000 4600 CLRPVR
-430000 197500 4600 CLRPVR
-332500 270000 6600 CLRPVR
-290000 265000 4600 CLRPVR
-480000 265000 4600 CLRPVR
-470000 290000 6600 CLRPVR
-462500 282500 4600 CLRPVR
-300000 177500 4600 CLRPVR
-485000 177500 4600 CLRPVR
-305000 85000 4600 CLRPVR
-275000 85000 4600 CLRPVR
-330000 80000 4600 CLRPVR
-285000 80000 4600 CLRPVR
-350000 220000 4600 CLRPVR
-365000 220000 4600 CLRPVR
-355000 385000 4600 CLRPVR
-297500 352500 6600 CLRPVR
-375000 360000 4600 CLRPVR
-107500 147500 4600 CLRPVR
-122000 160500 4600 CLRPVR
-450000 182500 4600 CLRPVR
-262500 352500 4600 CLRPVR
-327500 352500 4600 CLRPVR
-400000 225000 4600 CLRPVR
-405000 215000 4600 CLRPVR
-410000 205000 4600 CLRPVR
-105000 270000 4600 CLRPVR
-415000 272500 4600 CLRPVR
-402500 250000 4600 CLRPVR
-222500 310000 4600 CLRPVR
-402500 310000 4600 CLRPVR
-520000 260000 4600 CLRPVR
-520000 337500 4600 CLRPVR
-210000 322500 4600 CLRPVR
-570000 322500 4600 CLRPVR
-570000 245000 4600 CLRPVR
-530000 327500 4600 CLRPVR
-282500 330000 4600 CLRPVR
-327500 305000 4600 CLRPVR
-49500 330000 4600 CLRPVR
-130000 255000 6600 CLRPVR
-76500 257000 4600 CLRPVR
-90500 305500 4600 CLRPVR
-592500 360000 6600 CLRPVR
-405000 342500 6600 CLRPVR
-grestore
-% PCBENDDATA --- do not remove ---
-showpage
-%%EOF
+++ /dev/null
-%!PS-Adobe-3.0
-%%Title: (unknown), silkscreen, component side
-%%Creator: pcb-bin 20060321
-%%CreationDate: Tue Nov 27 09:49:27 2007
-%%For: fetter (Walter Fetter Lages,,,)
-%%LanguageLevel: 1
-%%Orientation: Portrait
-%%Pages: 1
-%%PageOrder: Ascend
-%%DocumentMedia: A4 594 841
-%%EndComments
-%%BeginProlog
-
-/PcbDict 200 dict def
-PcbDict begin
-PcbDict /DictMatrix matrix put
-
-% some constants
-/Black {0.0 mysetgray} def
-/White {1.0 mysetgray} def
-/TAN {0.207106781} def
-/MTAN {-0.207106781} def
-
-% draw a filled polygon
-% get (x,y)... and number of points from stack
-/PO {
- /number exch def
- newpath
- moveto
- number 1 sub { lineto } repeat
- closepath fill stroke
-} def
-
-/P {
-% draw a pin-polygon,
-% get x, y and thickness from stack
- /thickness exch def /y exch def /x exch def
- gsave x y translate thickness thickness scale
- 0.5 MTAN
- TAN -0.5
- MTAN -0.5
- -0.5 MTAN
- -0.5 TAN
- MTAN 0.5
- TAN 0.5
- 0.5 TAN
- 8 PO grestore
-} def
-
-/PV {
-% pin or via, x, y and thickness are on the stack
- /drillinghole exch def /thickness exch def /y exch def /x exch def
- x y thickness P
-% draw drilling hole
- gsave White 0 setlinewidth
- newpath x y drillinghole 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/PVR {
-% pin or via, x, y and thickness are on the stack
- /drillinghole exch def /thickness exch def /y exch def /x exch def
- gsave 0 setlinewidth
- newpath x y thickness 2 div 0 360 arc closepath fill stroke
-% draw drilling whole
- White
- newpath x y drillinghole 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/PVSQ {
-% square pin or via, x, y and thickness are on the stack
- /drillinghole exch def /thickness exch def /y exch def /x exch def
- newpath x thickness 2 div sub y thickness 2 div sub moveto
- thickness 0 rlineto 0 thickness rlineto
- thickness neg 0 rlineto closepath fill stroke
-% draw drilling hole
- gsave White 0 setlinewidth
- newpath x y drillinghole 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/DH {
-% drill helpher; x, y, hole, copper-thickness are on stack
- /copper exch def /hole exch def /y exch def /x exch def
- gsave copper setlinewidth
- newpath x y hole copper add 2 div 0 360 arc closepath stroke
- grestore
-} def
-
-/L {
-% line, get x1, y1, x2, y2 and thickness from stack
- /thick exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave thick setlinewidth
- x1 y1 moveto x2 y2 lineto stroke
- grestore
-} def
-
-/CL {
-% line, get x1, y1, x2, y2 and thickness from stack
- /thick exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave White thick setlinewidth
- x1 y1 moveto x2 y2 lineto stroke
- grestore
-} def
-
-/B {
-% filled box, get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath fill stroke
-} def
-
-/PA {
-% pad, same as line
- L
-} def
-
-/A {
-% arc for elements, get x, y, width, height, thickness
-% startangle and delta-angle from stack
- /delta exch def /start exch def /thickness exch def
- /height exch def /width exch def /y exch def /x exch def
-% draw it
- gsave thickness setlinewidth /save DictMatrix currentmatrix def
-% scaling is less then zero because the coord system has to be swapped
- x y translate width neg height scale
- 0 0 1 start start delta add arc save setmatrix stroke
- grestore
-} def
-
-/CA {
-% arc for elements, get x, y, width, height, thickness
-% startangle and delta-angle from stack
- /delta exch def /start exch def /thickness exch def
- /height exch def /width exch def /y exch def /x exch def
-% draw it
- gsave White thickness setlinewidth /save DictMatrix currentmatrix def
-% scaling is less then zero because the coord system has to be swapped
- x y translate width neg height scale
- 0 0 1 start start delta add arc save setmatrix stroke
- grestore
-} def
-
-/CLRPV {
-% clears a pin/via for groundplane; x,y and thickness are on stack
- /thickness exch def /y exch def /x exch def
- gsave White x y thickness P grestore
-} def
-
-/CLRPVSQ {
-% clears a square pin, x,y and thickness are on stack
- /thickness exch def /y exch def /x exch def
- gsave White
- newpath x thickness 2 div sub y thickness 2 div sub moveto
- thickness 0 rlineto 0 thickness rlineto
- thickness neg 0 rlineto closepath fill stroke
- grestore
-} def
-
-/CLRPVR {
-% clears a round pin/via for groundplane; x,y and thickness are on the stack
- /thickness exch def /y exch def /x exch def
- gsave White 0 setlinewidth
- newpath x y thickness 2 div 0 360 arc closepath fill stroke
- grestore
-} def
-
-/CLRPA {
-% clear line, get x1, y1, x2, y2 and thickness from stack
- /thick exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave White thick setlinewidth
- x1 y1 moveto x2 y2 lineto stroke
- grestore
-} def
-
-/CLRB {
-% cleared box, get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave White newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath fill stroke
- grestore
-} def
-
-/FILL {
-% draw a filled rectangle for the ground plane
-% get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave 0 setlinewidth
- newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath fill stroke
- grestore
-} def
-
-/Outline {
-% outline, get x1, y1, x2 and y2 from stack
- /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave 0.175 setlinewidth
- newpath
- x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto
- closepath stroke
- grestore
-} def
-
-/Alignment {
-% alignment targets, get x1, y1, x2, y2 and distance from stack
- /dis exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
- gsave 0.175 setlinewidth
- newpath x1 y1 dis add moveto
- 0 dis 2 mul neg rlineto
- dis neg dis rmoveto
- dis 2 mul 0 rlineto
- stroke
- newpath x1 y1 dis 0 90 arcn stroke
- newpath x1 y2 dis sub moveto 0 dis rlineto dis 0 rlineto stroke
- newpath x2 y2 dis sub moveto
- 0 2 dis mul rlineto
- dis dup neg rmoveto
- 2 dis mul neg 0 rlineto stroke
- newpath x2 y1 dis add moveto 0 dis neg rlineto dis neg 0 rlineto stroke
- grestore
-} def
-
-/mysetgray { setgray } def
-/mysetrgbcolor { setrgbcolor } def
-
-%%EndProlog
-%%BeginDefaults
-%%EndDefaults
-%%BeginSetup
-0.0 setlinewidth
-1 setlinecap
-Black
-%%EndSetup
-%%Page: 1 1
-%%BeginPageSetup
-%%EndPageSetup
-gsave White newpath
-153 160 moveto 451 160 lineto 451 673 lineto 153 673 lineto
-closepath fill stroke grestore
-% PCBMIN(-400,-400), PCBMAX(710400,410400)
-% PCBOFFSET(214900,223900), PCBSCALE(1.00000)
-% PCBSTARTDATA --- do not remove ---
-gsave
-0.00072 0.00072 scale
-214900 223900 translate
-1.000 1.000 scale
-410800 0 translate
-90 rotate
-0 410800 translate
-1 -1 scale
-400 400 translate
--400 -400 710400 410400 200 Alignment
-/Color {0.000 0.000 0.000 mysetrgbcolor} def Color
-335000 32500 335000 22500 2000 L
-335000 62500 335000 52500 2000 L
-340000 52500 330000 52500 2000 L
-340000 32500 340000 52500 2000 L
-330000 32500 340000 32500 2000 L
-330000 52500 330000 32500 2000 L
-333000 48500 333000 50500 400 L
-333000 48500 333500 48000 400 L
-333500 48000 334500 48000 400 L
-335000 48500 334500 48000 400 L
-335000 48500 335000 50000 400 L
-333000 50000 337000 50000 400 L
-335000 50000 337000 48000 400 L
-337000 45299 337000 46299 400 L
-333000 45799 337000 45799 400 L
-334000 46799 333000 45799 400 L
-333500 44098 333000 43598 400 L
-333000 42598 333000 43598 400 L
-333000 42598 333500 42098 400 L
-333500 42098 336500 42098 400 L
-337000 42598 336500 42098 400 L
-337000 42598 337000 43598 400 L
-336500 44098 337000 43598 400 L
-335000 42098 335000 43598 400 L
-297500 342500 297500 352500 1000 L
-297500 362500 297500 372500 1000 L
-297500 352500 302500 362500 1000 L
-302500 362500 292500 362500 1000 L
-292500 362500 297500 352500 1000 L
-302500 352500 292500 352500 1000 L
-298500 365000 302500 365000 400 L
-302500 366500 302000 367000 400 L
-299000 367000 302000 367000 400 L
-298500 366500 299000 367000 400 L
-298500 364500 298500 366500 400 L
-302500 364500 302500 366500 400 L
-302000 368201 302500 368701 400 L
-302500 368701 302500 370201 400 L
-302500 370201 302000 370701 400 L
-301000 370701 302000 370701 400 L
-298500 368201 301000 370701 400 L
-298500 368201 298500 370701 400 L
-425000 372000 385000 372000 2000 L
-385000 372000 385000 354000 2000 L
-385000 354000 425000 354000 2000 L
-425000 354000 425000 372000 2000 L
-425000 372000 385000 372000 2000 L
-385000 372000 385000 366000 2000 L
-385000 366000 425000 366000 2000 L
-425000 366000 425000 372000 2000 L
-412000 372000 412000 366000 1000 L
-398000 372000 398000 366000 1000 L
-425000 375500 425000 379000 400 L
-425000 375500 424500 375000 400 L
-423500 375000 424500 375000 400 L
-423500 375000 423000 375500 400 L
-423000 375500 423000 379000 400 L
-421799 378500 421299 379000 400 L
-419799 379000 421299 379000 400 L
-419799 379000 419299 378500 400 L
-419299 377500 419299 378500 400 L
-421799 375000 419299 377500 400 L
-419299 375000 421799 375000 400 L
-447500 92500 447500 82500 2000 L
-447500 122500 447500 112500 2000 L
-452500 112500 442500 112500 2000 L
-452500 92500 452500 112500 2000 L
-442500 92500 452500 92500 2000 L
-442500 112500 442500 92500 2000 L
-445500 108500 445500 110500 400 L
-445500 108500 446000 108000 400 L
-446000 108000 447000 108000 400 L
-447500 108500 447000 108000 400 L
-447500 108500 447500 110000 400 L
-445500 110000 449500 110000 400 L
-447500 110000 449500 108000 400 L
-449500 106799 447000 104299 400 L
-445500 104299 447000 104299 400 L
-445500 104299 445500 106799 400 L
-392500 122500 432500 122500 1000 L
-432500 122500 432500 82500 1000 L
-432500 82500 392500 82500 1000 L
-392500 122500 392500 107500 1000 L
-392500 97500 392500 82500 1000 L
-392500 102500 5000 5000 1000 90 180 A
-402500 100500 402500 104000 400 L
-402500 104000 403000 104500 400 L
-403000 104500 404000 104500 400 L
-404000 104500 404500 104000 400 L
-404500 100500 404500 104000 400 L
-406201 104500 407201 104500 400 L
-406701 100500 406701 104500 400 L
-405701 101500 406701 100500 400 L
-408402 100500 410402 100500 400 L
-408402 100500 408402 102500 400 L
-408402 102500 408902 102000 400 L
-408902 102000 409902 102000 400 L
-409902 102000 410402 102500 400 L
-410402 102500 410402 104000 400 L
-409902 104500 410402 104000 400 L
-408902 104500 409902 104500 400 L
-408402 104000 408902 104500 400 L
-557500 92500 557500 82500 2000 L
-557500 122500 557500 112500 2000 L
-562500 112500 552500 112500 2000 L
-562500 92500 562500 112500 2000 L
-552500 92500 562500 92500 2000 L
-552500 112500 552500 92500 2000 L
-555500 108500 555500 110500 400 L
-555500 108500 556000 108000 400 L
-556000 108000 557000 108000 400 L
-557500 108500 557000 108000 400 L
-557500 108500 557500 110000 400 L
-555500 110000 559500 110000 400 L
-557500 110000 559500 108000 400 L
-559000 106799 559500 106299 400 L
-558000 106799 559000 106799 400 L
-558000 106799 557500 106299 400 L
-557500 105299 557500 106299 400 L
-557500 105299 558000 104799 400 L
-558000 104799 559000 104799 400 L
-559500 105299 559000 104799 400 L
-559500 105299 559500 106299 400 L
-557000 106799 557500 106299 400 L
-556000 106799 557000 106799 400 L
-556000 106799 555500 106299 400 L
-555500 105299 555500 106299 400 L
-555500 105299 556000 104799 400 L
-556000 104799 557000 104799 400 L
-557500 105299 557000 104799 400 L
-537500 32500 537500 22500 2000 L
-537500 62500 537500 52500 2000 L
-542500 52500 532500 52500 2000 L
-542500 32500 542500 52500 2000 L
-532500 32500 542500 32500 2000 L
-532500 52500 532500 32500 2000 L
-535500 48500 535500 50500 400 L
-535500 48500 536000 48000 400 L
-536000 48000 537000 48000 400 L
-537500 48500 537000 48000 400 L
-537500 48500 537500 50000 400 L
-535500 50000 539500 50000 400 L
-537500 50000 539500 48000 400 L
-539500 45299 539500 46299 400 L
-535500 45799 539500 45799 400 L
-536500 46799 535500 45799 400 L
-482500 62500 522500 62500 1000 L
-522500 62500 522500 22500 1000 L
-522500 22500 482500 22500 1000 L
-482500 62500 482500 47500 1000 L
-482500 37500 482500 22500 1000 L
-482500 42500 5000 5000 1000 90 180 A
-492500 40500 492500 44000 400 L
-492500 44000 493000 44500 400 L
-493000 44500 494000 44500 400 L
-494000 44500 494500 44000 400 L
-494500 40500 494500 44000 400 L
-496201 44500 497201 44500 400 L
-496701 40500 496701 44500 400 L
-495701 41500 496701 40500 400 L
-498402 41000 498902 40500 400 L
-498902 40500 500402 40500 400 L
-500402 40500 500902 41000 400 L
-500902 41000 500902 42000 400 L
-498402 44500 500902 42000 400 L
-498402 44500 500902 44500 400 L
-467500 32500 467500 22500 2000 L
-467500 62500 467500 52500 2000 L
-472500 52500 462500 52500 2000 L
-472500 32500 472500 52500 2000 L
-462500 32500 472500 32500 2000 L
-462500 52500 462500 32500 2000 L
-465500 48500 465500 50500 400 L
-465500 48500 466000 48000 400 L
-466000 48000 467000 48000 400 L
-467500 48500 467000 48000 400 L
-467500 48500 467500 50000 400 L
-465500 50000 469500 50000 400 L
-467500 50000 469500 48000 400 L
-466000 46799 465500 46299 400 L
-465500 44799 465500 46299 400 L
-465500 44799 466000 44299 400 L
-466000 44299 467000 44299 400 L
-469500 46799 467000 44299 400 L
-469500 44299 469500 46799 400 L
-467500 92500 467500 82500 2000 L
-467500 122500 467500 112500 2000 L
-472500 112500 462500 112500 2000 L
-472500 92500 472500 112500 2000 L
-462500 92500 472500 92500 2000 L
-462500 112500 462500 92500 2000 L
-465500 108500 465500 110500 400 L
-465500 108500 466000 108000 400 L
-466000 108000 467000 108000 400 L
-467500 108500 467000 108000 400 L
-467500 108500 467500 110000 400 L
-465500 110000 469500 110000 400 L
-467500 110000 469500 108000 400 L
-465500 105299 466000 104799 400 L
-465500 105299 465500 106299 400 L
-466000 106799 465500 106299 400 L
-466000 106799 469000 106799 400 L
-469000 106799 469500 106299 400 L
-467500 105299 468000 104799 400 L
-467500 105299 467500 106799 400 L
-469500 105299 469500 106299 400 L
-469500 105299 469000 104799 400 L
-468000 104799 469000 104799 400 L
-537500 92500 537500 82500 2000 L
-537500 122500 537500 112500 2000 L
-542500 112500 532500 112500 2000 L
-542500 92500 542500 112500 2000 L
-532500 92500 542500 92500 2000 L
-532500 112500 532500 92500 2000 L
-535500 108500 535500 110500 400 L
-535500 108500 536000 108000 400 L
-536000 108000 537000 108000 400 L
-537500 108500 537000 108000 400 L
-537500 108500 537500 110000 400 L
-535500 110000 539500 110000 400 L
-537500 110000 539500 108000 400 L
-535500 104799 535500 106799 400 L
-535500 106799 537500 106799 400 L
-537500 106799 537000 106299 400 L
-537000 105299 537000 106299 400 L
-537000 105299 537500 104799 400 L
-537500 104799 539000 104799 400 L
-539500 105299 539000 104799 400 L
-539500 105299 539500 106299 400 L
-539000 106799 539500 106299 400 L
-482500 122500 522500 122500 1000 L
-522500 122500 522500 82500 1000 L
-522500 82500 482500 82500 1000 L
-482500 122500 482500 107500 1000 L
-482500 97500 482500 82500 1000 L
-482500 102500 5000 5000 1000 90 180 A
-492500 100500 492500 104000 400 L
-492500 104000 493000 104500 400 L
-493000 104500 494000 104500 400 L
-494000 104500 494500 104000 400 L
-494500 100500 494500 104000 400 L
-496201 104500 497201 104500 400 L
-496701 100500 496701 104500 400 L
-495701 101500 496701 100500 400 L
-498402 102500 500402 100500 400 L
-498402 102500 500902 102500 400 L
-500402 100500 500402 104500 400 L
-392500 62500 432500 62500 1000 L
-432500 62500 432500 22500 1000 L
-432500 22500 392500 22500 1000 L
-392500 62500 392500 47500 1000 L
-392500 37500 392500 22500 1000 L
-392500 42500 5000 5000 1000 90 180 A
-402500 40500 402500 44000 400 L
-402500 44000 403000 44500 400 L
-403000 44500 404000 44500 400 L
-404000 44500 404500 44000 400 L
-404500 40500 404500 44000 400 L
-406201 44500 407201 44500 400 L
-406701 40500 406701 44500 400 L
-405701 41500 406701 40500 400 L
-408402 41000 408902 40500 400 L
-408902 40500 409902 40500 400 L
-409902 40500 410402 41000 400 L
-410402 41000 410402 44000 400 L
-409902 44500 410402 44000 400 L
-408902 44500 409902 44500 400 L
-408402 44000 408902 44500 400 L
-408902 42500 410402 42500 400 L
-557500 32500 557500 22500 2000 L
-557500 62500 557500 52500 2000 L
-562500 52500 552500 52500 2000 L
-562500 32500 562500 52500 2000 L
-552500 32500 562500 32500 2000 L
-552500 52500 552500 32500 2000 L
-555500 48500 555500 50500 400 L
-555500 48500 556000 48000 400 L
-556000 48000 557000 48000 400 L
-557500 48500 557000 48000 400 L
-557500 48500 557500 50000 400 L
-555500 50000 559500 50000 400 L
-557500 50000 559500 48000 400 L
-557500 46799 555500 44799 400 L
-557500 44299 557500 46799 400 L
-555500 44799 559500 44799 400 L
-157500 342500 157500 352500 1000 L
-157500 362500 157500 372500 1000 L
-157500 352500 162500 362500 1000 L
-162500 362500 152500 362500 1000 L
-152500 362500 157500 352500 1000 L
-162500 352500 152500 352500 1000 L
-158500 365000 162500 365000 400 L
-162500 366500 162000 367000 400 L
-159000 367000 162000 367000 400 L
-158500 366500 159000 367000 400 L
-158500 364500 158500 366500 400 L
-162500 364500 162500 366500 400 L
-158500 368701 158500 369701 400 L
-158500 369201 162500 369201 400 L
-161500 368201 162500 369201 400 L
-57500 244500 7000 7000 1000 0 360 A
-57500 244500 5000 5000 1500 0 360 A
-53000 231500 53000 235500 400 L
-54500 231500 55000 232000 400 L
-55000 232000 55000 235000 400 L
-54500 235500 55000 235000 400 L
-52500 235500 54500 235500 400 L
-52500 231500 54500 231500 400 L
-56701 235500 57701 235500 400 L
-57201 231500 57201 235500 400 L
-56201 232500 57201 231500 400 L
-58902 235000 59402 235500 400 L
-58902 232000 58902 235000 400 L
-58902 232000 59402 231500 400 L
-59402 231500 60402 231500 400 L
-60402 231500 60902 232000 400 L
-60902 232000 60902 235000 400 L
-60402 235500 60902 235000 400 L
-59402 235500 60402 235500 400 L
-58902 234500 60902 232500 400 L
-547000 233000 547000 239000 1000 L
-533000 233000 533000 239000 1000 L
-520000 239000 520000 233000 2000 L
-560000 239000 520000 239000 2000 L
-560000 233000 560000 239000 2000 L
-520000 233000 560000 233000 2000 L
-520000 251000 520000 233000 2000 L
-560000 251000 520000 251000 2000 L
-560000 233000 560000 251000 2000 L
-520000 233000 560000 233000 2000 L
-520000 226500 520000 229500 400 L
-520000 226500 520500 226000 400 L
-520500 226000 521500 226000 400 L
-521500 226000 522000 226500 400 L
-522000 226500 522000 229500 400 L
-521500 230000 522000 229500 400 L
-520500 230000 521500 230000 400 L
-520000 229500 520500 230000 400 L
-521000 229000 522000 230000 400 L
-523201 226500 523701 226000 400 L
-523701 226000 525201 226000 400 L
-525201 226000 525701 226500 400 L
-525701 226500 525701 227500 400 L
-523201 230000 525701 227500 400 L
-523201 230000 525701 230000 400 L
-240000 62500 320000 62500 1000 L
-320000 62500 320000 22500 1000 L
-320000 22500 240000 22500 1000 L
-240000 62500 240000 47500 1000 L
-240000 37500 240000 22500 1000 L
-240000 42500 5000 5000 1000 90 180 A
-250000 40500 250000 44000 400 L
-250000 44000 250500 44500 400 L
-250500 44500 251500 44500 400 L
-251500 44500 252000 44000 400 L
-252000 40500 252000 44000 400 L
-253201 44500 255701 42000 400 L
-255701 40500 255701 42000 400 L
-253201 40500 255701 40500 400 L
-322500 372500 10000 10000 1000 0 360 A
-333000 366500 334500 366500 400 L
-332500 366000 333000 366500 400 L
-332500 363000 332500 366000 400 L
-332500 363000 333000 362500 400 L
-333000 362500 334500 362500 400 L
-335701 364500 337701 362500 400 L
-335701 364500 338201 364500 400 L
-337701 362500 337701 366500 400 L
-425000 210000 425000 200000 1000 L
-415000 210000 425000 210000 1000 L
-435000 200000 415000 200000 2000 L
-435000 240000 435000 200000 2000 L
-415000 240000 435000 240000 2000 L
-415000 200000 415000 240000 2000 L
-441000 200000 441000 201500 400 L
-437500 201500 441000 201500 400 L
-437000 201000 437500 201500 400 L
-437000 200500 437000 201000 400 L
-437500 200000 437000 200500 400 L
-437000 203201 441000 203201 400 L
-441000 202701 441000 204701 400 L
-441000 204701 440500 205201 400 L
-439500 205201 440500 205201 400 L
-439000 204701 439500 205201 400 L
-439000 203201 439000 204701 400 L
-437000 206902 437000 207902 400 L
-437000 207402 441000 207402 400 L
-440000 206402 441000 207402 400 L
-135000 270000 255000 270000 1000 L
-255000 270000 255000 200000 1000 L
-255000 200000 135000 200000 1000 L
-135000 270000 135000 240000 1000 L
-135000 230000 135000 200000 1000 L
-135000 235000 5000 5000 1000 90 180 A
-145000 233000 145000 236500 400 L
-145000 236500 145500 237000 400 L
-145500 237000 146500 237000 400 L
-146500 237000 147000 236500 400 L
-147000 233000 147000 236500 400 L
-149701 233000 150201 233500 400 L
-148701 233000 149701 233000 400 L
-148201 233500 148701 233000 400 L
-148201 233500 148201 236500 400 L
-148201 236500 148701 237000 400 L
-149701 235000 150201 235500 400 L
-148201 235000 149701 235000 400 L
-148701 237000 149701 237000 400 L
-149701 237000 150201 236500 400 L
-150201 235500 150201 236500 400 L
-275000 240000 395000 240000 1000 L
-395000 240000 395000 200000 1000 L
-395000 200000 275000 200000 1000 L
-275000 240000 275000 225000 1000 L
-275000 215000 275000 200000 1000 L
-275000 220000 5000 5000 1000 90 180 A
-285000 218000 285000 221500 400 L
-285000 221500 285500 222000 400 L
-285500 222000 286500 222000 400 L
-286500 222000 287000 221500 400 L
-287000 218000 287000 221500 400 L
-288201 221500 288701 222000 400 L
-288201 220500 288201 221500 400 L
-288201 220500 288701 220000 400 L
-288701 220000 289701 220000 400 L
-289701 220000 290201 220500 400 L
-290201 220500 290201 221500 400 L
-289701 222000 290201 221500 400 L
-288701 222000 289701 222000 400 L
-288201 219500 288701 220000 400 L
-288201 218500 288201 219500 400 L
-288201 218500 288701 218000 400 L
-288701 218000 289701 218000 400 L
-289701 218000 290201 218500 400 L
-290201 218500 290201 219500 400 L
-289701 220000 290201 219500 400 L
-31500 112000 34500 112000 1000 L
-34500 112000 34500 230000 1000 L
-34500 230000 31500 230000 1000 L
-31500 230000 31500 112000 1000 L
-31500 118000 34500 118000 1000 L
-31500 130000 34500 130000 1000 L
-31500 224000 34500 224000 1000 L
-31500 212000 34500 212000 1000 L
-4500 141000 31500 141000 2000 L
-31500 141000 31500 201000 1000 L
-31500 201000 4500 201000 2000 L
-4500 201000 4500 141000 2000 L
-34500 135000 54500 135000 2000 L
-54500 135000 54500 207000 2000 L
-54500 207000 34500 207000 2000 L
-34500 207000 34500 135000 1000 L
-82500 151000 54500 151000 2000 L
-72500 156000 54500 156000 2000 L
-82500 161000 54500 161000 2000 L
-72500 166000 54500 166000 2000 L
-82500 171000 54500 171000 2000 L
-72500 176000 54500 176000 2000 L
-82500 181000 54500 181000 2000 L
-72500 186000 54500 186000 2000 L
-82500 191000 54500 191000 2000 L
-42500 144000 42500 145500 400 L
-39000 145500 42500 145500 400 L
-38500 145000 39000 145500 400 L
-38500 144500 38500 145000 400 L
-39000 144000 38500 144500 400 L
-38500 146701 40500 148701 400 L
-40500 148701 42000 148701 400 L
-42500 148201 42000 148701 400 L
-42500 147201 42500 148201 400 L
-42000 146701 42500 147201 400 L
-41000 146701 42000 146701 400 L
-41000 146701 40500 147201 400 L
-40500 147201 40500 148701 400 L
-81500 244500 5000 5000 1500 0 360 A
-81500 244500 7000 7000 1000 0 360 A
-77000 231500 77000 235500 400 L
-78500 231500 79000 232000 400 L
-79000 232000 79000 235000 400 L
-78500 235500 79000 235000 400 L
-76500 235500 78500 235500 400 L
-76500 231500 78500 231500 400 L
-80201 235500 82201 233500 400 L
-82201 232000 82201 233500 400 L
-81701 231500 82201 232000 400 L
-80701 231500 81701 231500 400 L
-80201 232000 80701 231500 400 L
-80201 232000 80201 233000 400 L
-80201 233000 80701 233500 400 L
-80701 233500 82201 233500 400 L
-482500 220000 25000 25000 1000 180 360 A
-455500 241000 457000 241000 400 L
-457500 241500 457000 241000 400 L
-457500 241500 457500 244500 400 L
-457500 244500 457000 245000 400 L
-455500 245000 457000 245000 400 L
-454299 241000 451799 243500 400 L
-451799 243500 451799 245000 400 L
-451799 245000 454299 245000 400 L
-90000 340000 80000 340000 1000 L
-80000 350000 85000 340000 1000 L
-90000 350000 80000 350000 1000 L
-85000 340000 90000 350000 1000 L
-85000 350000 85000 360000 1000 L
-85000 330000 85000 340000 1000 L
-86000 352500 90000 352500 400 L
-90000 354000 89500 354500 400 L
-86500 354500 89500 354500 400 L
-86000 354000 86500 354500 400 L
-86000 352000 86000 354000 400 L
-90000 352000 90000 354000 400 L
-89500 355701 90000 356201 400 L
-90000 356201 90000 357201 400 L
-90000 357201 89500 357701 400 L
-86500 357701 89500 357701 400 L
-86000 357201 86500 357701 400 L
-86000 356201 86000 357201 400 L
-86500 355701 86000 356201 400 L
-88000 356201 88000 357701 400 L
-599500 233000 599500 239000 1000 L
-585500 233000 585500 239000 1000 L
-572500 239000 572500 233000 2000 L
-612500 239000 572500 239000 2000 L
-612500 233000 612500 239000 2000 L
-572500 233000 612500 233000 2000 L
-572500 251000 572500 233000 2000 L
-612500 251000 572500 251000 2000 L
-612500 233000 612500 251000 2000 L
-572500 233000 612500 233000 2000 L
-572500 226500 572500 229500 400 L
-572500 226500 573000 226000 400 L
-573000 226000 574000 226000 400 L
-574000 226000 574500 226500 400 L
-574500 226500 574500 229500 400 L
-574000 230000 574500 229500 400 L
-573000 230000 574000 230000 400 L
-572500 229500 573000 230000 400 L
-573500 229000 574500 230000 400 L
-576201 230000 577201 230000 400 L
-576701 226000 576701 230000 400 L
-575701 227000 576701 226000 400 L
-540000 210000 10000 10000 1000 0 360 A
-550500 204000 552000 204000 400 L
-550000 203500 550500 204000 400 L
-550000 200500 550000 203500 400 L
-550000 200500 550500 200000 400 L
-550500 200000 552000 200000 400 L
-553701 204000 554701 204000 400 L
-554201 200000 554201 204000 400 L
-553201 201000 554201 200000 400 L
-556402 204000 557402 204000 400 L
-556902 200000 556902 204000 400 L
-555902 201000 556902 200000 400 L
-355000 32500 355000 22500 2000 L
-355000 62500 355000 52500 2000 L
-360000 52500 350000 52500 2000 L
-360000 32500 360000 52500 2000 L
-350000 32500 360000 32500 2000 L
-350000 52500 350000 32500 2000 L
-353000 48500 353000 50500 400 L
-353000 48500 353500 48000 400 L
-353500 48000 354500 48000 400 L
-355000 48500 354500 48000 400 L
-355000 48500 355000 50000 400 L
-353000 50000 357000 50000 400 L
-355000 50000 357000 48000 400 L
-357000 45299 357000 46299 400 L
-353000 45799 357000 45799 400 L
-354000 46799 353000 45799 400 L
-355000 44098 353000 42098 400 L
-355000 41598 355000 44098 400 L
-353000 42098 357000 42098 400 L
-100000 325000 100000 335000 2000 L
-100000 335000 120000 335000 2000 L
-120000 335000 120000 325000 2000 L
-120000 325000 100000 325000 2000 L
-100000 335000 110000 335000 1000 L
-110000 335000 110000 325000 1000 L
-126000 325000 126000 326500 400 L
-122500 326500 126000 326500 400 L
-122000 326000 122500 326500 400 L
-122000 325500 122000 326000 400 L
-122500 325000 122000 325500 400 L
-122000 328201 126000 328201 400 L
-126000 327701 126000 329701 400 L
-126000 329701 125500 330201 400 L
-124500 330201 125500 330201 400 L
-124000 329701 124500 330201 400 L
-124000 328201 124000 329701 400 L
-125500 331402 126000 331902 400 L
-126000 331902 126000 333402 400 L
-126000 333402 125500 333902 400 L
-124500 333902 125500 333902 400 L
-122000 331402 124500 333902 400 L
-122000 331402 122000 333902 400 L
-167500 325000 207500 325000 1000 L
-207500 325000 207500 285000 1000 L
-207500 285000 167500 285000 1000 L
-167500 325000 167500 310000 1000 L
-167500 300000 167500 285000 1000 L
-167500 305000 5000 5000 1000 90 180 A
-177500 303000 177500 306500 400 L
-177500 306500 178000 307000 400 L
-178000 307000 179000 307000 400 L
-179000 307000 179500 306500 400 L
-179500 303000 179500 306500 400 L
-181201 307000 182201 307000 400 L
-181701 303000 181701 307000 400 L
-180701 304000 181701 303000 400 L
-183902 307000 184902 307000 400 L
-184402 303000 184402 307000 400 L
-183402 304000 184402 303000 400 L
-482500 277500 25000 25000 1000 180 360 A
-455500 298500 457000 298500 400 L
-457500 299000 457000 298500 400 L
-457500 299000 457500 302000 400 L
-457500 302000 457000 302500 400 L
-455500 302500 457000 302500 400 L
-454299 299000 453799 298500 400 L
-454299 299000 454299 300000 400 L
-454299 300000 453799 300500 400 L
-452799 300500 453799 300500 400 L
-452799 300500 452299 300000 400 L
-452299 299000 452299 300000 400 L
-452799 298500 452299 299000 400 L
-452799 298500 453799 298500 400 L
-454299 301000 453799 300500 400 L
-454299 301000 454299 302000 400 L
-454299 302000 453799 302500 400 L
-452799 302500 453799 302500 400 L
-452799 302500 452299 302000 400 L
-452299 301000 452299 302000 400 L
-452799 300500 452299 301000 400 L
-580000 372000 540000 372000 2000 L
-540000 372000 540000 354000 2000 L
-540000 354000 580000 354000 2000 L
-580000 354000 580000 372000 2000 L
-580000 372000 540000 372000 2000 L
-540000 372000 540000 366000 2000 L
-540000 366000 580000 366000 2000 L
-580000 366000 580000 372000 2000 L
-567000 372000 567000 366000 1000 L
-553000 372000 553000 366000 1000 L
-580000 375500 580000 379000 400 L
-580000 375500 579500 375000 400 L
-578500 375000 579500 375000 400 L
-578500 375000 578000 375500 400 L
-578000 375500 578000 379000 400 L
-576799 378500 576299 379000 400 L
-575299 379000 576299 379000 400 L
-575299 379000 574799 378500 400 L
-574799 375500 574799 378500 400 L
-575299 375000 574799 375500 400 L
-575299 375000 576299 375000 400 L
-576799 375500 576299 375000 400 L
-574799 377000 576299 377000 400 L
-280000 287500 280000 297500 2000 L
-280000 257500 280000 267500 2000 L
-275000 267500 285000 267500 2000 L
-275000 287500 275000 267500 2000 L
-285000 287500 275000 287500 2000 L
-285000 267500 285000 287500 2000 L
-282000 269500 282000 271500 400 L
-282000 271500 281500 272000 400 L
-280500 272000 281500 272000 400 L
-280000 271500 280500 272000 400 L
-280000 270000 280000 271500 400 L
-278000 270000 282000 270000 400 L
-280000 270000 278000 272000 400 L
-278000 273201 280000 275201 400 L
-280000 275201 281500 275201 400 L
-282000 274701 281500 275201 400 L
-282000 273701 282000 274701 400 L
-281500 273201 282000 273701 400 L
-280500 273201 281500 273201 400 L
-280500 273201 280000 273701 400 L
-280000 273701 280000 275201 400 L
-537500 320000 537500 375000 2000 L
-532500 320000 537500 320000 2000 L
-532500 375000 532500 320000 2000 L
-512500 375000 532500 375000 2000 L
-512500 320000 512500 375000 2000 L
-507500 320000 512500 320000 2000 L
-507500 385000 507500 320000 2000 L
-582500 375000 537500 375000 2000 L
-582500 320000 582500 375000 2000 L
-587500 320000 582500 320000 2000 L
-587500 375000 587500 320000 2000 L
-607500 375000 587500 375000 2000 L
-607500 320000 607500 375000 2000 L
-612500 320000 607500 320000 2000 L
-612500 385000 612500 320000 2000 L
-612500 385000 507500 385000 2000 L
-86000 280000 76000 280000 2000 L
-116000 280000 106000 280000 2000 L
-106000 275000 106000 285000 2000 L
-86000 275000 106000 275000 2000 L
-86000 285000 86000 275000 2000 L
-106000 285000 86000 285000 2000 L
-102000 282000 104000 282000 400 L
-102000 282000 101500 281500 400 L
-101500 280500 101500 281500 400 L
-102000 280000 101500 280500 400 L
-102000 280000 103500 280000 400 L
-103500 278000 103500 282000 400 L
-103500 280000 101500 278000 400 L
-98799 278000 99799 278000 400 L
-99299 278000 99299 282000 400 L
-100299 281000 99299 282000 400 L
-97598 281500 97098 282000 400 L
-95598 282000 97098 282000 400 L
-95598 282000 95098 281500 400 L
-95098 280500 95098 281500 400 L
-97598 278000 95098 280500 400 L
-95098 278000 97598 278000 400 L
-482500 370000 15000 15000 1000 180 360 A
-465500 381000 467000 381000 400 L
-467500 381500 467000 381000 400 L
-467500 381500 467500 384500 400 L
-467500 384500 467000 385000 400 L
-465500 385000 467000 385000 400 L
-462799 381000 463799 381000 400 L
-463299 381000 463299 385000 400 L
-464299 384000 463299 385000 400 L
-547000 280500 547000 286500 1000 L
-533000 280500 533000 286500 1000 L
-520000 286500 520000 280500 2000 L
-560000 286500 520000 286500 2000 L
-560000 280500 560000 286500 2000 L
-520000 280500 560000 280500 2000 L
-520000 298500 520000 280500 2000 L
-560000 298500 520000 298500 2000 L
-560000 280500 560000 298500 2000 L
-520000 280500 560000 280500 2000 L
-520000 274000 520000 277000 400 L
-520000 274000 520500 273500 400 L
-520500 273500 521500 273500 400 L
-521500 273500 522000 274000 400 L
-522000 274000 522000 277000 400 L
-521500 277500 522000 277000 400 L
-520500 277500 521500 277500 400 L
-520000 277000 520500 277500 400 L
-521000 276500 522000 277500 400 L
-523201 275500 525201 273500 400 L
-523201 275500 525701 275500 400 L
-525201 273500 525201 277500 400 L
-632500 357500 660000 357500 4000 L
-632500 347500 660000 347500 4000 L
-632500 337500 660000 337500 4000 L
-632500 327500 660000 327500 4000 L
-632500 317500 660000 317500 4000 L
-632500 307500 660000 307500 4000 L
-632500 297500 660000 297500 4000 L
-632500 287500 660000 287500 4000 L
-632500 277500 660000 277500 4000 L
-632500 267500 660000 267500 4000 L
-632500 257500 660000 257500 4000 L
-632500 247500 660000 247500 4000 L
-632500 237500 660000 237500 4000 L
-632500 227500 660000 227500 4000 L
-632500 217500 660000 217500 4000 L
-632500 207500 660000 207500 4000 L
-632500 197500 660000 197500 4000 L
-632500 187500 660000 187500 4000 L
-632500 177500 660000 177500 4000 L
-632500 167500 660000 167500 4000 L
-632500 157500 660000 157500 4000 L
-632500 147500 660000 147500 4000 L
-632500 137500 660000 137500 4000 L
-632500 127500 660000 127500 4000 L
-632500 117500 660000 117500 4000 L
-632500 107500 660000 107500 4000 L
-632500 97500 660000 97500 4000 L
-632500 87500 660000 87500 4000 L
-632500 77500 660000 77500 4000 L
-632500 67500 660000 67500 4000 L
-632500 57500 660000 57500 4000 L
-632500 47500 660000 47500 4000 L
-652500 387500 652500 365500 2000 L
-652500 365500 662000 365500 2000 L
-662000 365500 684500 365500 1000 L
-684500 365500 684500 377500 1000 L
-684500 377500 684500 387500 2000 L
-684500 387500 652500 387500 2000 L
-652500 39500 652500 17500 2000 L
-652500 17500 684500 17500 2000 L
-684500 17500 684500 27500 2000 L
-684500 27500 684500 39500 1000 L
-684500 39500 662000 39500 1000 L
-662000 39500 652500 39500 2000 L
-662000 365500 662000 39500 2000 L
-684500 377500 702500 377500 2000 L
-702500 377500 702500 27500 2000 L
-702500 27500 684500 27500 2000 L
-662500 342500 662500 345500 800 L
-662500 342500 669500 342500 800 L
-670500 343500 669500 342500 800 L
-670500 343500 670500 344500 800 L
-669500 345500 670500 344500 800 L
-670500 337098 670500 339098 800 L
-662500 338098 670500 338098 800 L
-664500 340098 662500 338098 800 L
-662500 330696 662500 334696 800 L
-662500 334696 666500 334696 800 L
-666500 334696 665500 333696 800 L
-665500 331696 665500 333696 800 L
-665500 331696 666500 330696 800 L
-666500 330696 669500 330696 800 L
-670500 331696 669500 330696 800 L
-670500 331696 670500 333696 800 L
-669500 334696 670500 333696 800 L
-327500 260000 10000 10000 1000 180 360 A
-315500 266000 317000 266000 400 L
-317500 266500 317000 266000 400 L
-317500 266500 317500 269500 400 L
-317500 269500 317000 270000 400 L
-315500 270000 317000 270000 400 L
-314299 266000 312299 268000 400 L
-312299 268000 312299 269500 400 L
-312799 270000 312299 269500 400 L
-312799 270000 313799 270000 400 L
-314299 269500 313799 270000 400 L
-314299 268500 314299 269500 400 L
-314299 268500 313799 268000 400 L
-312299 268000 313799 268000 400 L
-447500 32500 447500 22500 2000 L
-447500 62500 447500 52500 2000 L
-452500 52500 442500 52500 2000 L
-452500 32500 452500 52500 2000 L
-442500 32500 452500 32500 2000 L
-442500 52500 442500 32500 2000 L
-445500 48500 445500 50500 400 L
-445500 48500 446000 48000 400 L
-446000 48000 447000 48000 400 L
-447500 48500 447000 48000 400 L
-447500 48500 447500 50000 400 L
-445500 50000 449500 50000 400 L
-447500 50000 449500 48000 400 L
-446000 46799 445500 46299 400 L
-445500 45299 445500 46299 400 L
-445500 45299 446000 44799 400 L
-446000 44799 449000 44799 400 L
-449500 45299 449000 44799 400 L
-449500 45299 449500 46299 400 L
-449000 46799 449500 46299 400 L
-447500 44799 447500 46299 400 L
-300000 267500 300000 257500 2000 L
-300000 297500 300000 287500 2000 L
-305000 287500 295000 287500 2000 L
-305000 267500 305000 287500 2000 L
-295000 267500 305000 267500 2000 L
-295000 287500 295000 267500 2000 L
-298000 283500 298000 285500 400 L
-298000 283500 298500 283000 400 L
-298500 283000 299500 283000 400 L
-300000 283500 299500 283000 400 L
-300000 283500 300000 285000 400 L
-298000 285000 302000 285000 400 L
-300000 285000 302000 283000 400 L
-302000 280299 302000 281299 400 L
-298000 280799 302000 280799 400 L
-299000 281799 298000 280799 400 L
-301500 279098 302000 278598 400 L
-298500 279098 301500 279098 400 L
-298500 279098 298000 278598 400 L
-298000 277598 298000 278598 400 L
-298000 277598 298500 277098 400 L
-298500 277098 301500 277098 400 L
-302000 277598 301500 277098 400 L
-302000 277598 302000 278598 400 L
-301000 279098 299000 277098 400 L
-482500 330000 15000 15000 1000 0 360 A
-498000 319000 499500 319000 400 L
-497500 318500 498000 319000 400 L
-497500 315500 497500 318500 400 L
-497500 315500 498000 315000 400 L
-498000 315000 499500 315000 400 L
-500701 315500 501201 315000 400 L
-501201 315000 502701 315000 400 L
-502701 315000 503201 315500 400 L
-503201 315500 503201 316500 400 L
-500701 319000 503201 316500 400 L
-500701 319000 503201 319000 400 L
-382500 320000 382500 375000 2000 L
-377500 320000 382500 320000 2000 L
-377500 375000 377500 320000 2000 L
-357500 375000 377500 375000 2000 L
-357500 320000 357500 375000 2000 L
-352500 320000 357500 320000 2000 L
-352500 385000 352500 320000 2000 L
-427500 375000 382500 375000 2000 L
-427500 320000 427500 375000 2000 L
-432500 320000 427500 320000 2000 L
-432500 375000 432500 320000 2000 L
-452500 375000 432500 375000 2000 L
-452500 320000 452500 375000 2000 L
-457500 320000 452500 320000 2000 L
-457500 385000 457500 320000 2000 L
-457500 385000 352500 385000 2000 L
-70800 264600 45000 264600 2000 L
-45000 264600 45000 292200 2000 L
-45000 292200 70800 292200 2000 L
-58800 292200 58800 264600 2000 L
-45000 271500 8400 272500 2000 L
-8400 272500 8400 284300 2000 L
-8400 284300 45000 285300 2000 L
-66800 278400 67300 278900 400 L
-65300 278400 66800 278400 400 L
-64800 278900 65300 278400 400 L
-64800 278900 64800 279900 400 L
-64800 279900 65300 280400 400 L
-65300 280400 66800 280400 400 L
-66800 280400 67300 280900 400 L
-67300 280900 67300 281900 400 L
-66800 282400 67300 281900 400 L
-65300 282400 66800 282400 400 L
-64800 281900 65300 282400 400 L
-69001 282400 70001 282400 400 L
-69501 278400 69501 282400 400 L
-68501 279400 69501 278400 400 L
-599500 280500 599500 286500 1000 L
-585500 280500 585500 286500 1000 L
-572500 286500 572500 280500 2000 L
-612500 286500 572500 286500 2000 L
-612500 280500 612500 286500 2000 L
-572500 280500 612500 280500 2000 L
-572500 298500 572500 280500 2000 L
-612500 298500 572500 298500 2000 L
-612500 280500 612500 298500 2000 L
-572500 280500 612500 280500 2000 L
-572500 274000 572500 277000 400 L
-572500 274000 573000 273500 400 L
-573000 273500 574000 273500 400 L
-574000 273500 574500 274000 400 L
-574500 274000 574500 277000 400 L
-574000 277500 574500 277000 400 L
-573000 277500 574000 277500 400 L
-572500 277000 573000 277500 400 L
-573500 276500 574500 277500 400 L
-575701 274000 576201 273500 400 L
-576201 273500 577201 273500 400 L
-577201 273500 577701 274000 400 L
-577701 274000 577701 277000 400 L
-577201 277500 577701 277000 400 L
-576201 277500 577201 277500 400 L
-575701 277000 576201 277500 400 L
-576201 275500 577701 275500 400 L
-572500 182500 572500 192500 1000 L
-582500 192500 572500 187500 1000 L
-582500 182500 582500 192500 1000 L
-572500 187500 582500 182500 1000 L
-582500 187500 592500 187500 1000 L
-562500 187500 572500 187500 1000 L
-585000 182500 585000 186500 400 L
-586500 182500 587000 183000 400 L
-587000 183000 587000 186000 400 L
-586500 186500 587000 186000 400 L
-584500 186500 586500 186500 400 L
-584500 182500 586500 182500 400 L
-588201 186500 590701 184000 400 L
-590701 182500 590701 184000 400 L
-588201 182500 590701 182500 400 L
-572500 122500 612500 122500 1000 L
-612500 122500 612500 82500 1000 L
-612500 82500 572500 82500 1000 L
-572500 122500 572500 107500 1000 L
-572500 97500 572500 82500 1000 L
-572500 102500 5000 5000 1000 90 180 A
-582500 100500 582500 104000 400 L
-582500 104000 583000 104500 400 L
-583000 104500 584000 104500 400 L
-584000 104500 584500 104000 400 L
-584500 100500 584500 104000 400 L
-585701 100500 587701 100500 400 L
-585701 100500 585701 102500 400 L
-585701 102500 586201 102000 400 L
-586201 102000 587201 102000 400 L
-587201 102000 587701 102500 400 L
-587701 102500 587701 104000 400 L
-587201 104500 587701 104000 400 L
-586201 104500 587201 104500 400 L
-585701 104000 586201 104500 400 L
-599500 198000 599500 204000 1000 L
-585500 198000 585500 204000 1000 L
-572500 204000 572500 198000 2000 L
-612500 204000 572500 204000 2000 L
-612500 198000 612500 204000 2000 L
-572500 198000 612500 198000 2000 L
-572500 216000 572500 198000 2000 L
-612500 216000 572500 216000 2000 L
-612500 198000 612500 216000 2000 L
-572500 198000 612500 198000 2000 L
-572500 191500 572500 194500 400 L
-572500 191500 573000 191000 400 L
-573000 191000 574000 191000 400 L
-574000 191000 574500 191500 400 L
-574500 191500 574500 194500 400 L
-574000 195000 574500 194500 400 L
-573000 195000 574000 195000 400 L
-572500 194500 573000 195000 400 L
-573500 194000 574500 195000 400 L
-575701 191000 577701 191000 400 L
-575701 191000 575701 193000 400 L
-575701 193000 576201 192500 400 L
-576201 192500 577201 192500 400 L
-577201 192500 577701 193000 400 L
-577701 193000 577701 194500 400 L
-577201 195000 577701 194500 400 L
-576201 195000 577201 195000 400 L
-575701 194500 576201 195000 400 L
-572500 62500 612500 62500 1000 L
-612500 62500 612500 22500 1000 L
-612500 22500 572500 22500 1000 L
-572500 62500 572500 47500 1000 L
-572500 37500 572500 22500 1000 L
-572500 42500 5000 5000 1000 90 180 A
-582500 40500 582500 44000 400 L
-582500 44000 583000 44500 400 L
-583000 44500 584000 44500 400 L
-584000 44500 584500 44000 400 L
-584500 40500 584500 44000 400 L
-585701 42500 587701 40500 400 L
-585701 42500 588201 42500 400 L
-587701 40500 587701 44500 400 L
-327500 290000 10000 10000 1000 0 360 A
-338000 284000 339500 284000 400 L
-337500 283500 338000 284000 400 L
-337500 280500 337500 283500 400 L
-337500 280500 338000 280000 400 L
-338000 280000 339500 280000 400 L
-341201 284000 342201 284000 400 L
-341701 280000 341701 284000 400 L
-340701 281000 341701 280000 400 L
-343402 283500 343902 284000 400 L
-343402 280500 343402 283500 400 L
-343402 280500 343902 280000 400 L
-343902 280000 344902 280000 400 L
-344902 280000 345402 280500 400 L
-345402 280500 345402 283500 400 L
-344902 284000 345402 283500 400 L
-343902 284000 344902 284000 400 L
-343402 283000 345402 281000 400 L
-105000 106800 105000 43300 2000 L
-20000 106800 105000 106800 2000 L
-20000 43300 20000 106800 2000 L
-105000 43300 20000 43300 2000 L
-103500 112800 105000 112800 400 L
-103500 109300 103500 112800 400 L
-104000 108800 103500 109300 400 L
-104000 108800 104500 108800 400 L
-105000 109300 104500 108800 400 L
-102299 112300 101799 112800 400 L
-100299 112800 101799 112800 400 L
-100299 112800 99799 112300 400 L
-99799 111300 99799 112300 400 L
-102299 108800 99799 111300 400 L
-99799 108800 102299 108800 400 L
-355000 295000 395000 295000 1000 L
-395000 295000 395000 255000 1000 L
-395000 255000 355000 255000 1000 L
-355000 295000 355000 280000 1000 L
-355000 270000 355000 255000 1000 L
-355000 275000 5000 5000 1000 90 180 A
-365000 273000 365000 276500 400 L
-365000 276500 365500 277000 400 L
-365500 277000 366500 277000 400 L
-366500 277000 367000 276500 400 L
-367000 273000 367000 276500 400 L
-368701 277000 369701 277000 400 L
-369201 273000 369201 277000 400 L
-368201 274000 369201 273000 400 L
-370902 276500 371402 277000 400 L
-370902 273500 370902 276500 400 L
-370902 273500 371402 273000 400 L
-371402 273000 372402 273000 400 L
-372402 273000 372902 273500 400 L
-372902 273500 372902 276500 400 L
-372402 277000 372902 276500 400 L
-371402 277000 372402 277000 400 L
-370902 276000 372902 274000 400 L
-322500 342500 10000 10000 1000 0 360 A
-333000 336500 334500 336500 400 L
-332500 336000 333000 336500 400 L
-332500 333000 332500 336000 400 L
-332500 333000 333000 332500 400 L
-333000 332500 334500 332500 400 L
-337201 332500 337701 333000 400 L
-336201 332500 337201 332500 400 L
-335701 333000 336201 332500 400 L
-335701 333000 335701 336000 400 L
-335701 336000 336201 336500 400 L
-337201 334500 337701 335000 400 L
-335701 334500 337201 334500 400 L
-336201 336500 337201 336500 400 L
-337201 336500 337701 336000 400 L
-337701 335000 337701 336000 400 L
-132500 342500 10000 10000 1000 180 360 A
-120500 348500 122000 348500 400 L
-122500 349000 122000 348500 400 L
-122500 349000 122500 352000 400 L
-122500 352000 122000 352500 400 L
-120500 352500 122000 352500 400 L
-117299 352500 119299 352500 400 L
-119299 350500 119299 352500 400 L
-119299 350500 118799 351000 400 L
-117799 351000 118799 351000 400 L
-117799 351000 117299 350500 400 L
-117299 349000 117299 350500 400 L
-117799 348500 117299 349000 400 L
-117799 348500 118799 348500 400 L
-119299 349000 118799 348500 400 L
-580000 141000 125000 141000 2000 L
-125000 141000 125000 170000 2000 L
-125000 170000 580000 170000 2000 L
-580000 170000 580000 141000 2000 L
-580000 172500 580000 176000 400 L
-580000 172500 579500 172000 400 L
-578500 172000 579500 172000 400 L
-578500 172000 578000 172500 400 L
-578000 172500 578000 176000 400 L
-575299 172000 576299 172000 400 L
-575799 172000 575799 176000 400 L
-576799 175000 575799 176000 400 L
-132500 372500 10000 10000 1000 180 360 A
-120500 378500 122000 378500 400 L
-122500 379000 122000 378500 400 L
-122500 379000 122500 382000 400 L
-122500 382000 122000 382500 400 L
-120500 382500 122000 382500 400 L
-119299 382000 118799 382500 400 L
-117799 382500 118799 382500 400 L
-117799 382500 117299 382000 400 L
-117299 379000 117299 382000 400 L
-117799 378500 117299 379000 400 L
-117799 378500 118799 378500 400 L
-119299 379000 118799 378500 400 L
-117299 380500 118799 380500 400 L
-167500 377500 287500 377500 1000 L
-287500 377500 287500 337500 1000 L
-287500 337500 167500 337500 1000 L
-167500 377500 167500 362500 1000 L
-167500 352500 167500 337500 1000 L
-167500 357500 5000 5000 1000 90 180 A
-177500 355500 177500 359000 400 L
-177500 359000 178000 359500 400 L
-178000 359500 179000 359500 400 L
-179000 359500 179500 359000 400 L
-179500 355500 179500 359000 400 L
-180701 359500 182701 357500 400 L
-182701 356000 182701 357500 400 L
-182201 355500 182701 356000 400 L
-181201 355500 182201 355500 400 L
-180701 356000 181201 355500 400 L
-180701 356000 180701 357000 400 L
-180701 357000 181201 357500 400 L
-181201 357500 182701 357500 400 L
-105500 310500 85500 310500 2000 L
-85500 310500 85500 300500 2000 L
-85500 300500 105500 300500 2000 L
-105500 300500 105500 310500 2000 L
-115500 305500 105500 305500 2000 L
-85500 305500 75500 305500 2000 L
-101500 307500 103500 307500 400 L
-101500 307500 101000 307000 400 L
-101000 306000 101000 307000 400 L
-101500 305500 101000 306000 400 L
-101500 305500 103000 305500 400 L
-103000 303500 103000 307500 400 L
-103000 305500 101000 303500 400 L
-98299 303500 99299 303500 400 L
-98799 303500 98799 307500 400 L
-99799 306500 98799 307500 400 L
-95598 303500 96598 303500 400 L
-96098 303500 96098 307500 400 L
-97098 306500 96098 307500 400 L
-675000 5000 45000 5000 2000 L
-675000 398700 675000 5000 2000 L
-45000 398700 675000 398700 2000 L
-45000 5000 45000 398700 2000 L
-335000 62500 6000 CLRPVSQ
-335000 22500 6000 CLRPVR
-297500 342500 6000 CLRPVSQ
-297500 372500 6000 CLRPVR
-447500 122500 6000 CLRPVSQ
-447500 82500 6000 CLRPVR
-557500 122500 6000 CLRPVSQ
-557500 82500 6000 CLRPVR
-537500 62500 6000 CLRPVSQ
-537500 22500 6000 CLRPVR
-467500 62500 6000 CLRPVSQ
-467500 22500 6000 CLRPVR
-467500 122500 6000 CLRPVSQ
-467500 82500 6000 CLRPVR
-537500 122500 6000 CLRPVSQ
-537500 82500 6000 CLRPVR
-557500 62500 6000 CLRPVSQ
-557500 22500 6000 CLRPVR
-157500 342500 6000 CLRPVSQ
-157500 372500 6000 CLRPVR
-57500 239500 6000 CLRPVSQ
-57500 249500 6000 CLRPVR
-82500 151000 7000 CLRPVR
-72500 156000 7000 CLRPVR
-82500 161000 7000 CLRPVR
-72500 166000 7000 CLRPVR
-82500 171000 7000 CLRPVR
-72500 176000 7000 CLRPVR
-82500 181000 7000 CLRPVR
-72500 186000 7000 CLRPVR
-82500 191000 7000 CLRPVSQ
-81500 239500 6000 CLRPVSQ
-81500 249500 6000 CLRPVR
-85000 330000 6000 CLRPVSQ
-85000 360000 6000 CLRPVR
-355000 62500 6000 CLRPVSQ
-355000 22500 6000 CLRPVR
-280000 257500 6000 CLRPVSQ
-280000 297500 6000 CLRPVR
-116000 280000 6000 CLRPVSQ
-76000 280000 6000 CLRPVR
-652500 47500 6000 CLRPVSQ
-652500 57500 6000 CLRPVR
-652500 67500 6000 CLRPVR
-652500 77500 6000 CLRPVR
-652500 87500 6000 CLRPVR
-652500 97500 6000 CLRPVR
-652500 107500 6000 CLRPVR
-652500 117500 6000 CLRPVR
-652500 127500 6000 CLRPVR
-652500 137500 6000 CLRPVR
-652500 147500 6000 CLRPVR
-652500 157500 6000 CLRPVR
-652500 167500 6000 CLRPVR
-652500 177500 6000 CLRPVR
-652500 187500 6000 CLRPVR
-652500 197500 6000 CLRPVR
-652500 207500 6000 CLRPVR
-652500 217500 6000 CLRPVR
-652500 227500 6000 CLRPVR
-652500 237500 6000 CLRPVR
-652500 247500 6000 CLRPVR
-652500 257500 6000 CLRPVR
-652500 267500 6000 CLRPVR
-652500 277500 6000 CLRPVR
-652500 287500 6000 CLRPVR
-652500 297500 6000 CLRPVR
-652500 307500 6000 CLRPVR
-652500 317500 6000 CLRPVR
-652500 327500 6000 CLRPVR
-652500 337500 6000 CLRPVR
-652500 347500 6000 CLRPVR
-652500 357500 6000 CLRPVR
-642500 47500 6000 CLRPVR
-642500 57500 6000 CLRPVR
-642500 67500 6000 CLRPVR
-642500 77500 6000 CLRPVR
-642500 87500 6000 CLRPVR
-642500 97500 6000 CLRPVR
-642500 107500 6000 CLRPVR
-642500 117500 6000 CLRPVR
-642500 127500 6000 CLRPVR
-642500 137500 6000 CLRPVR
-642500 147500 6000 CLRPVR
-642500 157500 6000 CLRPVR
-642500 167500 6000 CLRPVR
-642500 177500 6000 CLRPVR
-642500 187500 6000 CLRPVR
-642500 197500 6000 CLRPVR
-642500 207500 6000 CLRPVR
-642500 217500 6000 CLRPVR
-642500 227500 6000 CLRPVR
-642500 237500 6000 CLRPVR
-642500 247500 6000 CLRPVR
-642500 257500 6000 CLRPVR
-642500 267500 6000 CLRPVR
-642500 277500 6000 CLRPVR
-642500 287500 6000 CLRPVR
-642500 297500 6000 CLRPVR
-642500 307500 6000 CLRPVR
-642500 317500 6000 CLRPVR
-642500 327500 6000 CLRPVR
-642500 337500 6000 CLRPVR
-642500 347500 6000 CLRPVR
-642500 357500 6000 CLRPVR
-632500 47500 6000 CLRPVR
-632500 57500 6000 CLRPVR
-632500 67500 6000 CLRPVR
-632500 77500 6000 CLRPVR
-632500 87500 6000 CLRPVR
-632500 97500 6000 CLRPVR
-632500 107500 6000 CLRPVR
-632500 117500 6000 CLRPVR
-632500 127500 6000 CLRPVR
-632500 137500 6000 CLRPVR
-632500 147500 6000 CLRPVR
-632500 157500 6000 CLRPVR
-632500 167500 6000 CLRPVR
-632500 177500 6000 CLRPVR
-632500 187500 6000 CLRPVR
-632500 197500 6000 CLRPVR
-632500 207500 6000 CLRPVR
-632500 217500 6000 CLRPVR
-632500 227500 6000 CLRPVR
-632500 237500 6000 CLRPVR
-632500 247500 6000 CLRPVR
-632500 257500 6000 CLRPVR
-632500 267500 6000 CLRPVR
-632500 277500 6000 CLRPVR
-632500 287500 6000 CLRPVR
-632500 297500 6000 CLRPVR
-632500 307500 6000 CLRPVR
-632500 317500 6000 CLRPVR
-632500 327500 6000 CLRPVR
-632500 337500 6000 CLRPVR
-632500 347500 6000 CLRPVR
-632500 357500 6000 CLRPVR
-447500 62500 6000 CLRPVSQ
-447500 22500 6000 CLRPVR
-300000 297500 6000 CLRPVSQ
-300000 257500 6000 CLRPVR
-55000 269500 7000 CLRPVSQ
-55000 287200 7000 CLRPVR
-64800 264600 7000 CLRPVR
-64800 292200 7000 CLRPVR
-562500 187500 6000 CLRPVSQ
-592500 187500 6000 CLRPVR
-74500 44500 8000 CLRPVR
-74500 105600 8000 CLRPVR
-115500 305500 6000 CLRPVSQ
-75500 305500 6000 CLRPVR
-475000 342500 6000 CLRPVR
-490000 342500 6000 CLRPVR
-592500 277500 6000 CLRPVR
-612500 287500 6000 CLRPVR
-540000 327500 6000 CLRPVR
-475000 317500 6000 CLRPVR
-647500 102500 6000 CLRPVR
-537500 47500 6000 CLRPVR
-487500 47500 6000 CLRPVR
-577500 40000 6000 CLRPVR
-525000 100000 6000 CLRPVR
-447500 95000 6000 CLRPVR
-360000 317500 6000 CLRPVR
-487500 107500 4000 CLRPVR
-537500 107500 4000 CLRPVR
-262500 172500 4000 CLRPVR
-597500 65000 4000 CLRPVR
-407500 47500 6000 CLRPVR
-335000 52500 4000 CLRPVR
-547500 142500 4000 CLRPVR
-512500 80000 4000 CLRPVR
-557500 237500 4000 CLRPVR
-447500 30000 4000 CLRPVR
-582500 285000 4000 CLRPVR
-447500 107500 4000 CLRPVR
-472500 107500 4000 CLRPVR
-170000 142500 4000 CLRPVR
-280000 142500 4000 CLRPVR
-202500 282500 4000 CLRPVR
-257500 250000 4000 CLRPVR
-360000 252500 4000 CLRPVR
-292500 222500 4000 CLRPVR
-340000 282500 4000 CLRPVR
-250000 172500 4000 CLRPVR
-180000 170000 4000 CLRPVR
-430000 197500 4000 CLRPVR
-355000 385000 4000 CLRPVR
-297500 352500 6000 CLRPVR
-375000 360000 4000 CLRPVR
-122000 160500 4000 CLRPVR
-327500 352500 4000 CLRPVR
-210000 322500 4000 CLRPVR
-570000 245000 4000 CLRPVR
-530000 327500 4000 CLRPVR
-grestore
-% PCBENDDATA --- do not remove ---
-showpage
-%%EOF
+++ /dev/null
-G04 Title: (unknown), layergroup #1 *\r
-G04 Creator: pcb 1.6.3 *\r
-G04 CreationDate: Mon Mar 31 19:59:34 2003 UTC *\r
-G04 For: fetter *\r
-G04 Format: Gerber/RS-274X *\r
-G04 PCB-Dimensions: 7100 4100 *\r
-G04 PCB-Coordinate-Origin: lower left *\r
-G04 Color: R0 G0 B0 *\r
-*\r
-%FSLAX23Y23*%\r
-%MOIN*%\r
-%ADD11C,0.010*%\r
-%ADD12C,0.025*%\r
-%ADD13C,0.045*%\r
-%ADD14C,0.040*%\r
-%ADD15C,0.001*%\r
-%ADD16C,0.120*%\r
-%ADD17C,0.150*%\r
-%ADD18C,0.020*%\r
-%ADD19R,0.060X0.060*%\r
-%ADD20R,0.090X0.090*%\r
-%ADD21C,0.060*%\r
-%ADD22C,0.090*%\r
-%ADD23C,0.008*%\r
-%ADD24C,0.080*%\r
-%ADD25C,0.110*%\r
-%ADD26C,0.148*%\r
-%ADD27C,0.178*%\r
-%ADD28R,0.080X0.080*%\r
-%ADD29R,0.110X0.110*%\r
-%ADD30R,0.070X0.070*%\r
-%ADD31R,0.100X0.100*%\r
-%ADD32C,0.070*%\r
-%ADD33C,0.100*%\r
-%ADD34C,0.016*%\r
-%ADD35C,0.015*%\r
-%IPPOS*%\r
-G01*\r
-%LNsolder*%\r
-%LPD*%\r
-G04 LayerGroup: 1 *\r
-G04 Layer: "solder" (1) *\r
-G54D11*X900Y2490D02*X825D01*\r
-X905Y2495D02*X900Y2490D01*\r
-X1220Y2495D02*X905D01*\r
-X900Y2290D02*X825D01*\r
-X910Y2300D02*X900Y2290D01*\r
-X1075Y2300D02*X910D01*\r
-X4675Y1250D02*X5825D01*\r
-X4650Y1225D02*X4675Y1250D01*\r
-X4600Y1225D02*X4650D01*\r
-X4575Y1250D02*X4600Y1225D01*\r
-X3500Y1250D02*X4575D01*\r
-X3050Y3250D02*X2750D01*\r
-X3025Y1550D02*X3000Y1525D01*\r
-X3375Y1550D02*X3025D01*\r
-X3225Y2125D02*X2575D01*\r
-X3300Y2050D02*X3225Y2125D01*\r
-X2575Y1600D02*X2100D01*\r
-X2025Y1275D02*X2200D01*\r
-X3150Y1600D02*X3500D01*\r
-X3300Y3300D02*X2850D01*\r
-X2750Y1600D02*X3150D01*\r
-X2700Y1550D02*X2750Y1600D01*\r
-X2375Y3050D02*X2425Y3000D01*\r
-X1900Y3050D02*X2375D01*\r
-X2650Y3000D02*X2700Y3050D01*\r
-X2425Y3000D02*X2650D01*\r
-X1800Y2775D02*X2425D01*\r
-X2700Y2750D02*X2750Y2800D01*\r
-X2450Y2750D02*X2700D01*\r
-X2425Y2775D02*X2450Y2750D01*\r
-X1700Y2675D02*X2800D01*\r
-X1600Y3100D02*X3000D01*\r
-X1550Y2850D02*X2900D01*\r
-X1450Y2725D02*X2950D01*\r
-D02*X3225D01*\r
-X2900Y2850D02*X3100D01*\r
-X2850Y2900D02*X3000D01*\r
-X2600Y3050D02*X2450D01*\r
-X2650Y2800D02*X2500D01*\r
-X2550Y2900D02*X2650D01*\r
-X5350Y2375D02*X2625D01*\r
-X6475Y2975D02*X6525Y2925D01*\r
-X1150Y2975D02*X6475D01*\r
-X6200Y3575D02*X3100D01*\r
-X6200D03*\r
-X6150Y2800D02*X2950D01*\r
-X6150Y3225D02*X6225D01*\r
-X6100Y3175D02*X6150Y3225D01*\r
-X5925Y3175D02*X6100D01*\r
-X5875Y3225D02*X5925Y3175D01*\r
-X6000Y3475D02*X5975Y3450D01*\r
-X6475Y3475D02*X6000D01*\r
-X6525Y3425D02*X6475Y3475D01*\r
-X5925Y3750D02*X6225D01*\r
-X5875Y3800D02*X5925Y3750D01*\r
-X5875Y3825D02*Y3800D01*\r
-X6000Y3900D02*X6475D01*\r
-X5975Y3875D02*X6000Y3900D01*\r
-X5975Y3825D02*Y3875D01*\r
-G54D12*X6400Y3700D02*X5175D01*\r
-X6425Y3675D02*X6400Y3700D01*\r
-X6425Y3625D02*Y3675D01*\r
-G54D11*X3100Y3575D02*X3050Y3525D01*\r
-G54D12*X6325Y3625D02*X4075D01*\r
-X5675Y3025D02*X6325D01*\r
-X6225Y3075D02*X6475D01*\r
-Y3175D02*X6525Y3125D01*\r
-X6375Y3175D02*X6475D01*\r
-X775Y175D02*X1275D01*\r
-G54D13*X4900Y400D02*Y475D01*\r
-G54D11*X3400Y1200D02*X3425D01*\r
-G54D14*X6525Y525D02*X6325D01*\r
-G54D12*X6475Y3575D02*X6525Y3525D01*\r
-X6375Y3575D02*X6475D01*\r
-X6325Y3625D02*X6375Y3575D01*\r
-G54D13*X5900Y1900D02*X5925Y1875D01*\r
-X4950Y1900D02*X5900D01*\r
-X5925Y1325D02*X4950D01*\r
-X6125Y1425D02*X6325D01*\r
-Y925D02*X3950D01*\r
-X6325Y825D02*X5400D01*\r
-X6325Y1225D02*X6125D01*\r
-X6325Y1325D02*X5925D01*\r
-X5400Y1025D02*X6025D01*\r
-X6325Y1125D02*X6075D01*\r
-D02*X6025Y1175D01*\r
-Y1500D02*X5400D01*\r
-G54D11*X3350Y1250D02*X3400Y1200D01*\r
-X3425D02*X3475Y1250D01*\r
-D02*X3500D01*\r
-X3000Y2325D02*X4850D01*\r
-X2525Y1225D02*X2550Y1250D01*\r
-X4100Y1025D02*X4075Y1050D01*\r
-D02*X3300D01*\r
-X2550Y1250D02*X3350D01*\r
-X3300Y1050D02*X3275D01*\r
-G54D13*X5500Y500D02*X4150D01*\r
-X6300D02*X5700D01*\r
-X6325Y525D02*X6300Y500D01*\r
-X6525Y1525D02*X6325D01*\r
-X6525Y1425D02*X6325D01*\r
-X6525Y1325D02*X6325D01*\r
-X6525Y1225D02*X6325D01*\r
-X6525Y1125D02*X6325D01*\r
-X6525Y1025D02*X6325D01*\r
-X6525Y925D02*X6325D01*\r
-X6525Y825D02*X6325D01*\r
-G54D12*X6375Y3375D02*X6475D01*\r
-D02*X6525Y3325D01*\r
-X6375Y3375D02*X4025D01*\r
-X6325Y3425D02*Y3375D01*\r
-X5175Y3225D02*X5775D01*\r
-X6425Y3325D02*X6375Y3275D01*\r
-D02*X6225D01*\r
-D02*X6175D01*\r
-D02*X6125Y3325D01*\r
-D02*X5800D01*\r
-D02*X5775Y3300D01*\r
-D02*Y3225D01*\r
-X6375Y3175D02*X6175D01*\r
-D02*X6150D01*\r
-D02*X6125Y3150D01*\r
-D02*X4025D01*\r
-X4475Y3275D02*Y3150D01*\r
-X4025D02*X1400D01*\r
-X1750Y2575D02*X1850D01*\r
-X1800Y2475D02*X1925D01*\r
-X1800Y2575D02*Y2475D01*\r
-X3950Y925D02*X3225D01*\r
-X2400Y1650D02*X3225D01*\r
-G54D11*X2000Y1550D02*X2700D01*\r
-G54D12*X2400Y1650D02*X1400D01*\r
-G54D14*X6275Y675D02*X6325Y625D01*\r
-Y725D02*X6275Y675D01*\r
-G54D12*X1725Y1200D02*X1300D01*\r
-G54D15*X6750Y115D02*X450D01*\r
-G54D12*X575Y2480D02*Y1710D01*\r
-G54D15*X6750Y4050D02*Y115D01*\r
-G54D12*X570Y1715D02*X560Y1705D01*\r
-X735Y1205D02*X685Y1255D01*\r
-X6075Y3100D02*X4225D01*\r
-X5100Y2475D02*X5300D01*\r
-X5200Y2575D02*Y2475D01*\r
-X5150Y2575D02*X5250D01*\r
-X6225Y3075D02*X6100D01*\r
-D02*X6075Y3100D01*\r
-X4225D02*X3150D01*\r
-X3975Y3225D02*Y3150D01*\r
-X6325Y3225D02*Y3175D01*\r
-G54D15*X450Y4050D02*X6750D01*\r
-G54D12*X4000Y3925D02*X4425D01*\r
-D02*X4475Y3875D01*\r
-X3900Y1200D02*X4575D01*\r
-G54D11*X2900Y1450D02*X4800D01*\r
-G54D12*X3000Y1125D02*X3250D01*\r
-X2125Y175D02*X3275D01*\r
-X3000Y1125D02*X2925D01*\r
-D02*X2850Y1050D01*\r
-D02*X2050D01*\r
-D02*X2025D01*\r
-G54D11*X3600Y2100D02*X3625Y2125D01*\r
-X3600Y2050D02*Y2100D01*\r
-X3625Y2125D02*X4300D01*\r
-G54D12*X3250Y1125D02*X3825D01*\r
-D02*X3900Y1200D01*\r
-X3325Y1175D02*Y1125D01*\r
-X1275Y175D02*X2125D01*\r
-G54D14*X6225Y675D02*X6275D01*\r
-G54D11*X550Y800D02*X1050D01*\r
-G54D12*X1375Y375D02*X1725D01*\r
-X1150Y1300D02*X1300D01*\r
-X2975Y375D02*Y300D01*\r
-X1725D02*Y350D01*\r
-X3175Y375D02*Y300D01*\r
-X2325Y375D02*Y300D01*\r
-X4150Y500D02*Y300D01*\r
-D02*X1725D01*\r
-G54D11*X905Y1045D02*X755D01*\r
-G54D12*X4000Y3925D02*X3400D01*\r
-D02*X3350Y3875D01*\r
-X3550D02*Y3925D01*\r
-X3975Y3825D02*Y3925D01*\r
-G54D11*X6150Y3950D02*X5575D01*\r
-X5025D02*X4675D01*\r
-X5275Y3875D02*X5075D01*\r
-D02*Y3825D01*\r
-X4400Y3875D02*X4375D01*\r
-D02*X4175D01*\r
-D02*Y3825D01*\r
-X4475Y3800D02*X4400Y3875D01*\r
-X5375Y3475D02*X5425Y3525D01*\r
-D02*X5550D01*\r
-D02*X5775D01*\r
-X5825Y2000D02*X5450D01*\r
-X4175Y3525D02*Y3425D01*\r
-D02*X5575D01*\r
-D02*Y3475D01*\r
-X5550Y2750D02*X4175D01*\r
-Y3025D02*X4475D01*\r
-X5775Y2925D02*X5375D01*\r
-D02*Y2875D01*\r
-Y3025D02*X5075D01*\r
-X6100Y2675D02*X5475D01*\r
-X5125Y3300D02*X4675D01*\r
-D02*Y3275D01*\r
-X4875Y3025D02*X4725D01*\r
-X4775Y3525D02*X4500D01*\r
-D02*X4475Y3500D01*\r
-D02*Y3475D01*\r
-X4025Y1750D02*X4200D01*\r
-X3700D02*X3750Y1800D01*\r
-D02*X4250D01*\r
-D02*X4300Y1750D01*\r
-X3700Y1500D02*X3800D01*\r
-X5225Y1725D02*X5575D01*\r
-X3800Y1500D02*Y1550D01*\r
-D02*X3925Y1675D01*\r
-D02*X5175D01*\r
-D02*X5225Y1725D01*\r
-X2800Y1525D02*X3000D01*\r
-X2975Y675D02*X3175D01*\r
-G54D12*X2725Y575D02*X2775D01*\r
-G54D11*X3550Y250D02*X2525D01*\r
-X1825D02*X2525D01*\r
-X950Y1650D02*X1150D01*\r
-G54D12*X825Y2600D02*X570D01*\r
-X575Y2480D02*Y2600D01*\r
-G54D11*X1100Y425D02*X2575D01*\r
-D02*X2625Y375D01*\r
-X2025D02*Y425D01*\r
-G54D12*X2125Y575D02*X2325D01*\r
-G54D11*X1925Y500D02*X2425D01*\r
-X1950Y3525D02*X875D01*\r
-X2000Y3475D02*X975D01*\r
-X2050Y3275D02*X975D01*\r
-X2100Y3425D02*X875D01*\r
-X6375Y2375D02*X5350D01*\r
-G54D12*X2200Y1850D02*X2400D01*\r
-G54D11*X3000Y1975D02*X2150D01*\r
-X3100Y1925D02*X2250D01*\r
-X2525Y2175D02*X3150D01*\r
-X2250Y2150D02*X2500D01*\r
-D02*X2525Y2175D01*\r
-X1500Y2225D02*X2975D01*\r
-D02*X3250D01*\r
-X2925Y1875D02*X2500D01*\r
-D02*X2475D01*\r
-D02*X2450Y1900D01*\r
-D02*X2325D01*\r
-D02*X2300Y1875D01*\r
-D02*X2250D01*\r
-D02*X2200Y1925D01*\r
-D02*X1700D01*\r
-X2100Y1800D02*X2675D01*\r
-D02*X2700Y1825D01*\r
-D02*X3875D01*\r
-D02*X3900Y1850D01*\r
-X2575Y1325D02*X3850D01*\r
-X1550Y1275D02*X1925D01*\r
-D02*X1975Y1325D01*\r
-D02*X2250D01*\r
-D02*X2300Y1275D01*\r
-D02*X3400D01*\r
-X2300Y2275D02*X2450D01*\r
-X2275Y3200D02*X2550D01*\r
-X2500Y2475D02*X2425Y2400D01*\r
-X1900Y2350D02*X2475D01*\r
-D02*X2500Y2375D01*\r
-X2425Y2400D02*X1800D01*\r
-G54D12*X2500Y1450D02*X2550Y1400D01*\r
-D02*X3325D01*\r
-X4575Y1200D02*X4700D01*\r
-G54D11*X3400Y1275D02*X4625D01*\r
-X3375Y1550D02*X3575D01*\r
-D02*X3600Y1575D01*\r
-X3650Y1900D02*X3500D01*\r
-G54D12*X2775Y575D02*X2975D01*\r
-G54D11*X2425Y500D02*X3750D01*\r
-X1075Y2625D02*X4450D01*\r
-D02*Y2575D01*\r
-X2200Y2325D02*X2900D01*\r
-D02*X2950Y2275D01*\r
-D02*X4500D01*\r
-X1075Y2300D02*X1275D01*\r
-D02*X2175D01*\r
-D02*X2200Y2325D01*\r
-X4025Y1000D02*X2225D01*\r
-X4075Y1650D02*X4025Y1600D01*\r
-X5300Y1650D02*X4075D01*\r
-X1375Y675D02*X1725D01*\r
-X1825D02*X1925D01*\r
-X2325D02*X2375Y625D01*\r
-D02*X2400D01*\r
-D02*X3125D01*\r
-D02*X3175Y675D01*\r
-X2975D02*Y625D01*\r
-X2425Y675D02*X2525D01*\r
-X2625Y575D02*X2675Y525D01*\r
-X3225D02*X3250Y550D01*\r
-D02*X3275Y575D01*\r
-X2675Y525D02*X3225D01*\r
-X4000Y1850D02*X4200D01*\r
-Y1950D02*X4050D01*\r
-X4200Y2050D02*X4100D01*\r
-X4150Y1375D02*X3475D01*\r
-D02*X3450Y1350D01*\r
-D02*X2725D01*\r
-D02*X2700Y1375D01*\r
-D02*X2475D01*\r
-D02*X2450Y1400D01*\r
-D02*X1050D01*\r
-X1275Y675D02*Y725D01*\r
-D02*X5200D01*\r
-Y1500D02*X5400D01*\r
-X2025Y675D02*Y725D01*\r
-X2100Y875D02*X5700D01*\r
-Y1650D02*X5825D01*\r
-X5300Y825D02*X5275Y850D01*\r
-D02*X2875D01*\r
-D02*X2825Y800D01*\r
-X5375Y1025D02*X4100D01*\r
-G54D13*X6325Y725D02*Y625D01*\r
-Y675D02*X4050D01*\r
-G54D14*X6325Y625D02*X6525D01*\r
-D02*Y725D01*\r
-D02*X6325D01*\r
-Y700D02*X6525D01*\r
-X6325Y675D02*X6525D01*\r
-X6325Y650D02*X6525D01*\r
-G54D12*X1300Y1205D02*X735D01*\r
-G54D15*X450Y115D02*Y4050D01*\r
-G54D12*X685Y1255D02*X585D01*\r
-D02*X550Y1220D01*\r
-G54D11*Y800D02*X495D01*\r
-G54D12*X1290Y1555D02*X870D01*\r
-D02*X815Y1610D01*\r
-G54D11*X580Y1595D02*X645Y1530D01*\r
-D02*X760D01*\r
-G04 Text: Fernando Pessutto *\r
-G54D23*X800Y3925D02*Y3965D01*\r
-Y3925D02*X820D01*\r
-X800Y3945D02*X815D01*\r
-X838Y3965D02*X853D01*\r
-X833Y3960D02*X838Y3965D01*\r
-X833Y3950D02*Y3960D01*\r
-Y3950D02*X838Y3945D01*\r
-D02*X848D01*\r
-D02*X853Y3950D01*\r
-X833Y3955D02*X853D01*\r
-D02*Y3950D01*\r
-X871D02*Y3965D01*\r
-Y3950D02*X876Y3945D01*\r
-D02*X886D01*\r
-X866D02*X871Y3950D01*\r
-X904D02*Y3965D01*\r
-Y3950D02*X909Y3945D01*\r
-D02*X914D01*\r
-D02*X919Y3950D01*\r
-D02*Y3965D01*\r
-X899Y3945D02*X904Y3950D01*\r
-X947Y3945D02*X952Y3950D01*\r
-X937Y3945D02*X947D01*\r
-X932Y3950D02*X937Y3945D01*\r
-X932Y3950D02*Y3960D01*\r
-D02*X937Y3965D01*\r
-X952Y3945D02*Y3960D01*\r
-D02*X957Y3965D01*\r
-X937D02*X947D01*\r
-D02*X952Y3960D01*\r
-X975Y3950D02*Y3965D01*\r
-Y3950D02*X980Y3945D01*\r
-D02*X985D01*\r
-D02*X990Y3950D01*\r
-D02*Y3965D01*\r
-X970Y3945D02*X975Y3950D01*\r
-X1023Y3925D02*Y3965D01*\r
-X1018D02*X1023Y3960D01*\r
-X1008Y3965D02*X1018D01*\r
-X1003Y3960D02*X1008Y3965D01*\r
-X1003Y3950D02*Y3960D01*\r
-Y3950D02*X1008Y3945D01*\r
-D02*X1018D01*\r
-D02*X1023Y3950D01*\r
-X1036D02*Y3960D01*\r
-Y3950D02*X1041Y3945D01*\r
-D02*X1051D01*\r
-D02*X1056Y3950D01*\r
-D02*Y3960D01*\r
-X1051Y3965D02*X1056Y3960D01*\r
-X1041Y3965D02*X1051D01*\r
-X1036Y3960D02*X1041Y3965D01*\r
-X1092Y3925D02*Y3965D01*\r
-X1087Y3925D02*X1107D01*\r
-D02*X1112Y3930D01*\r
-D02*Y3940D01*\r
-X1107Y3945D02*X1112Y3940D01*\r
-X1092Y3945D02*X1107D01*\r
-X1130Y3965D02*X1145D01*\r
-X1125Y3960D02*X1130Y3965D01*\r
-X1125Y3950D02*Y3960D01*\r
-Y3950D02*X1130Y3945D01*\r
-D02*X1140D01*\r
-D02*X1145Y3950D01*\r
-X1125Y3955D02*X1145D01*\r
-D02*Y3950D01*\r
-X1163Y3965D02*X1178D01*\r
-D02*X1183Y3960D01*\r
-X1178Y3955D02*X1183Y3960D01*\r
-X1163Y3955D02*X1178D01*\r
-X1158Y3950D02*X1163Y3955D01*\r
-X1158Y3950D02*X1163Y3945D01*\r
-D02*X1178D01*\r
-D02*X1183Y3950D01*\r
-X1158Y3960D02*X1163Y3965D01*\r
-X1201D02*X1216D01*\r
-D02*X1221Y3960D01*\r
-X1216Y3955D02*X1221Y3960D01*\r
-X1201Y3955D02*X1216D01*\r
-X1196Y3950D02*X1201Y3955D01*\r
-X1196Y3950D02*X1201Y3945D01*\r
-D02*X1216D01*\r
-D02*X1221Y3950D01*\r
-X1196Y3960D02*X1201Y3965D01*\r
-X1234Y3945D02*Y3960D01*\r
-D02*X1239Y3965D01*\r
-D02*X1249D01*\r
-D02*X1254Y3960D01*\r
-Y3945D02*Y3960D01*\r
-X1272Y3925D02*Y3960D01*\r
-D02*X1277Y3965D01*\r
-X1267Y3940D02*X1277D01*\r
-X1293Y3925D02*Y3960D01*\r
-D02*X1298Y3965D01*\r
-X1288Y3940D02*X1298D01*\r
-X1309Y3950D02*Y3960D01*\r
-Y3950D02*X1314Y3945D01*\r
-D02*X1324D01*\r
-D02*X1329Y3950D01*\r
-D02*Y3960D01*\r
-X1324Y3965D02*X1329Y3960D01*\r
-X1314Y3965D02*X1324D01*\r
-X1309Y3960D02*X1314Y3965D01*\r
-G04 Text: (C) 2003 Walter Fetter Lages *\r
-X800Y3885D02*X805Y3890D01*\r
-X800Y3855D02*X805Y3850D01*\r
-X800Y3855D02*Y3885D01*\r
-X823Y3890D02*X838D01*\r
-X818Y3885D02*X823Y3890D01*\r
-X818Y3855D02*Y3885D01*\r
-Y3855D02*X823Y3850D01*\r
-D02*X838D01*\r
-X851D02*X856Y3855D01*\r
-D02*Y3885D01*\r
-X851Y3890D02*X856Y3885D01*\r
-X887Y3855D02*X892Y3850D01*\r
-D02*X907D01*\r
-D02*X912Y3855D01*\r
-D02*Y3865D01*\r
-X887Y3890D02*X912Y3865D01*\r
-X887Y3890D02*X912D01*\r
-X925Y3885D02*X930Y3890D01*\r
-X925Y3855D02*Y3885D01*\r
-Y3855D02*X930Y3850D01*\r
-D02*X940D01*\r
-D02*X945Y3855D01*\r
-D02*Y3885D01*\r
-X940Y3890D02*X945Y3885D01*\r
-X930Y3890D02*X940D01*\r
-X925Y3880D02*X945Y3860D01*\r
-X958Y3885D02*X963Y3890D01*\r
-X958Y3855D02*Y3885D01*\r
-Y3855D02*X963Y3850D01*\r
-D02*X973D01*\r
-D02*X978Y3855D01*\r
-D02*Y3885D01*\r
-X973Y3890D02*X978Y3885D01*\r
-X963Y3890D02*X973D01*\r
-X958Y3880D02*X978Y3860D01*\r
-X991Y3855D02*X996Y3850D01*\r
-D02*X1006D01*\r
-D02*X1011Y3855D01*\r
-D02*Y3885D01*\r
-X1006Y3890D02*X1011Y3885D01*\r
-X996Y3890D02*X1006D01*\r
-X991Y3885D02*X996Y3890D01*\r
-Y3870D02*X1011D01*\r
-X1042Y3850D02*Y3890D01*\r
-D02*X1057Y3875D01*\r
-D02*X1072Y3890D01*\r
-Y3850D02*Y3890D01*\r
-X1100Y3870D02*X1105Y3875D01*\r
-X1090Y3870D02*X1100D01*\r
-X1085Y3875D02*X1090Y3870D01*\r
-X1085Y3875D02*Y3885D01*\r
-D02*X1090Y3890D01*\r
-X1105Y3870D02*Y3885D01*\r
-D02*X1110Y3890D01*\r
-X1090D02*X1100D01*\r
-D02*X1105Y3885D01*\r
-X1123Y3850D02*Y3885D01*\r
-D02*X1128Y3890D01*\r
-X1144Y3850D02*Y3885D01*\r
-D02*X1149Y3890D01*\r
-X1139Y3865D02*X1149D01*\r
-X1165Y3890D02*X1180D01*\r
-X1160Y3885D02*X1165Y3890D01*\r
-X1160Y3875D02*Y3885D01*\r
-Y3875D02*X1165Y3870D01*\r
-D02*X1175D01*\r
-D02*X1180Y3875D01*\r
-X1160Y3880D02*X1180D01*\r
-D02*Y3875D01*\r
-X1198D02*Y3890D01*\r
-Y3875D02*X1203Y3870D01*\r
-D02*X1213D01*\r
-X1193D02*X1198Y3875D01*\r
-X1244Y3850D02*Y3890D01*\r
-Y3850D02*X1264D01*\r
-X1244Y3870D02*X1259D01*\r
-X1282Y3890D02*X1297D01*\r
-X1277Y3885D02*X1282Y3890D01*\r
-X1277Y3875D02*Y3885D01*\r
-Y3875D02*X1282Y3870D01*\r
-D02*X1292D01*\r
-D02*X1297Y3875D01*\r
-X1277Y3880D02*X1297D01*\r
-D02*Y3875D01*\r
-X1315Y3850D02*Y3885D01*\r
-D02*X1320Y3890D01*\r
-X1310Y3865D02*X1320D01*\r
-X1336Y3850D02*Y3885D01*\r
-D02*X1341Y3890D01*\r
-X1331Y3865D02*X1341D01*\r
-X1357Y3890D02*X1372D01*\r
-X1352Y3885D02*X1357Y3890D01*\r
-X1352Y3875D02*Y3885D01*\r
-Y3875D02*X1357Y3870D01*\r
-D02*X1367D01*\r
-D02*X1372Y3875D01*\r
-X1352Y3880D02*X1372D01*\r
-D02*Y3875D01*\r
-X1390D02*Y3890D01*\r
-Y3875D02*X1395Y3870D01*\r
-D02*X1405D01*\r
-X1385D02*X1390Y3875D01*\r
-X1436Y3850D02*Y3890D01*\r
-D02*X1456D01*\r
-X1484Y3870D02*X1489Y3875D01*\r
-X1474Y3870D02*X1484D01*\r
-X1469Y3875D02*X1474Y3870D01*\r
-X1469Y3875D02*Y3885D01*\r
-D02*X1474Y3890D01*\r
-X1489Y3870D02*Y3885D01*\r
-D02*X1494Y3890D01*\r
-X1474D02*X1484D01*\r
-D02*X1489Y3885D01*\r
-X1522Y3870D02*X1527Y3875D01*\r
-X1512Y3870D02*X1522D01*\r
-X1507Y3875D02*X1512Y3870D01*\r
-X1507Y3875D02*Y3885D01*\r
-D02*X1512Y3890D01*\r
-D02*X1522D01*\r
-D02*X1527Y3885D01*\r
-X1507Y3900D02*X1512Y3905D01*\r
-D02*X1522D01*\r
-D02*X1527Y3900D01*\r
-Y3870D02*Y3900D01*\r
-X1545Y3890D02*X1560D01*\r
-X1540Y3885D02*X1545Y3890D01*\r
-X1540Y3875D02*Y3885D01*\r
-Y3875D02*X1545Y3870D01*\r
-D02*X1555D01*\r
-D02*X1560Y3875D01*\r
-X1540Y3880D02*X1560D01*\r
-D02*Y3875D01*\r
-X1578Y3890D02*X1593D01*\r
-D02*X1598Y3885D01*\r
-X1593Y3880D02*X1598Y3885D01*\r
-X1578Y3880D02*X1593D01*\r
-X1573Y3875D02*X1578Y3880D01*\r
-X1573Y3875D02*X1578Y3870D01*\r
-D02*X1593D01*\r
-D02*X1598Y3875D01*\r
-X1573Y3885D02*X1578Y3890D01*\r
-G04 Text: AIC-1.1.0 *\r
-X800Y3780D02*Y3815D01*\r
-Y3780D02*X805Y3775D01*\r
-D02*X820D01*\r
-D02*X825Y3780D01*\r
-D02*Y3815D01*\r
-X800Y3795D02*X825D01*\r
-X838Y3775D02*X848D01*\r
-X843D02*Y3815D01*\r
-X838D02*X848D01*\r
-X866D02*X881D01*\r
-X861Y3810D02*X866Y3815D01*\r
-X861Y3780D02*Y3810D01*\r
-Y3780D02*X866Y3775D01*\r
-D02*X881D01*\r
-X894Y3795D02*X914D01*\r
-X932Y3815D02*X942D01*\r
-X937Y3775D02*Y3815D01*\r
-X927Y3785D02*X937Y3775D01*\r
-X955Y3815D02*X960D01*\r
-X978D02*X988D01*\r
-X983Y3775D02*Y3815D01*\r
-X973Y3785D02*X983Y3775D01*\r
-X1001Y3815D02*X1006D01*\r
-X1019Y3810D02*X1024Y3815D01*\r
-X1019Y3780D02*Y3810D01*\r
-Y3780D02*X1024Y3775D01*\r
-D02*X1034D01*\r
-D02*X1039Y3780D01*\r
-D02*Y3810D01*\r
-X1034Y3815D02*X1039Y3810D01*\r
-X1024Y3815D02*X1034D01*\r
-X1019Y3805D02*X1039Y3785D01*\r
-G04 Text: SOLDER *\r
-X820Y4000D02*X825Y4005D01*\r
-X805Y4000D02*X820D01*\r
-X800Y4005D02*X805Y4000D01*\r
-X800Y4005D02*Y4015D01*\r
-D02*X805Y4020D01*\r
-D02*X820D01*\r
-D02*X825Y4025D01*\r
-D02*Y4035D01*\r
-X820Y4040D02*X825Y4035D01*\r
-X805Y4040D02*X820D01*\r
-X800Y4035D02*X805Y4040D01*\r
-X838Y4005D02*Y4035D01*\r
-Y4005D02*X843Y4000D01*\r
-D02*X853D01*\r
-D02*X858Y4005D01*\r
-D02*Y4035D01*\r
-X853Y4040D02*X858Y4035D01*\r
-X843Y4040D02*X853D01*\r
-X838Y4035D02*X843Y4040D01*\r
-X871Y4000D02*Y4040D01*\r
-D02*X891D01*\r
-X909Y4000D02*Y4040D01*\r
-X924Y4000D02*X929Y4005D01*\r
-D02*Y4035D01*\r
-X924Y4040D02*X929Y4035D01*\r
-X904Y4040D02*X924D01*\r
-X904Y4000D02*X924D01*\r
-X942Y4020D02*X957D01*\r
-X942Y4040D02*X962D01*\r
-X942Y4000D02*Y4040D01*\r
-Y4000D02*X962D01*\r
-X975D02*X995D01*\r
-D02*X1000Y4005D01*\r
-D02*Y4015D01*\r
-X995Y4020D02*X1000Y4015D01*\r
-X980Y4020D02*X995D01*\r
-X980Y4000D02*Y4040D01*\r
-Y4020D02*X1000Y4040D01*\r
-G54D16*X575Y3825D03*\r
-Y338D03*\r
-X6625Y3825D03*\r
-Y338D03*\r
-G54D19*X1155Y1045D03*\r
-G54D21*X755D03*\r
-G54D19*X1725Y375D03*\r
-G54D21*X1825D03*\r
-X1925D03*\r
-X2025D03*\r
-X2125D03*\r
-X2225D03*\r
-X2325D03*\r
-X2425D03*\r
-X2525D03*\r
-X2625D03*\r
-X2725D03*\r
-X2825D03*\r
-Y675D03*\r
-X2725D03*\r
-X2625D03*\r
-X2525D03*\r
-X2425D03*\r
-X2325D03*\r
-X2225D03*\r
-X2125D03*\r
-X2025D03*\r
-X1925D03*\r
-X1825D03*\r
-X1725D03*\r
-G54D19*X1375Y375D03*\r
-G54D21*X1275D03*\r
-G54D19*X5400Y2475D03*\r
-G54D21*X5350Y2575D03*\r
-X5300Y2475D03*\r
-X5250Y2575D03*\r
-X5200Y2475D03*\r
-X5150Y2575D03*\r
-X5100Y2475D03*\r
-X5050Y2575D03*\r
-X5000Y2475D03*\r
-X4950Y2575D03*\r
-X4900Y2475D03*\r
-X4850Y2575D03*\r
-X4800Y2475D03*\r
-X4750Y2575D03*\r
-X4700Y2475D03*\r
-X4650Y2575D03*\r
-X4600Y2475D03*\r
-X4550Y2575D03*\r
-X4500Y2475D03*\r
-X4450Y2575D03*\r
-X4400Y2475D03*\r
-X4350Y2575D03*\r
-X4300Y2475D03*\r
-X4250Y2575D03*\r
-X4200Y2475D03*\r
-X4150Y2575D03*\r
-X4100Y2475D03*\r
-X4050Y2575D03*\r
-X4000Y2475D03*\r
-X3950Y2575D03*\r
-X3900Y2475D03*\r
-X3850Y2575D03*\r
-X3800Y2475D03*\r
-X3750Y2575D03*\r
-X3700Y2475D03*\r
-X3650Y2575D03*\r
-X3400Y2475D03*\r
-X3350Y2575D03*\r
-X3300Y2475D03*\r
-X3250Y2575D03*\r
-X3200Y2475D03*\r
-X3150Y2575D03*\r
-X3100Y2475D03*\r
-X3050Y2575D03*\r
-X3000Y2475D03*\r
-X2950Y2575D03*\r
-X2900Y2475D03*\r
-X2850Y2575D03*\r
-X2800Y2475D03*\r
-X2750Y2575D03*\r
-X2700Y2475D03*\r
-X2650Y2575D03*\r
-X2600Y2475D03*\r
-X2550Y2575D03*\r
-X2500Y2475D03*\r
-X2450Y2575D03*\r
-X2400Y2475D03*\r
-X2350Y2575D03*\r
-X2300Y2475D03*\r
-X2250Y2575D03*\r
-X2200Y2475D03*\r
-X2150Y2575D03*\r
-X2100Y2475D03*\r
-X2050Y2575D03*\r
-X2000Y2475D03*\r
-X1950Y2575D03*\r
-X1900Y2475D03*\r
-X1850Y2575D03*\r
-X1800Y2475D03*\r
-X1750Y2575D03*\r
-X1700Y2475D03*\r
-X1650Y2575D03*\r
-G54D24*X5730Y2525D03*\r
-G54D16*X3525D03*\r
-X1325D03*\r
-G54D19*X1375Y675D03*\r
-G54D21*X1275D03*\r
-G54D19*X3175D03*\r
-G54D21*X3275D03*\r
-G54D19*X3600Y1200D03*\r
-G54D21*X3700D03*\r
-X3800D03*\r
-X3900D03*\r
-Y1500D03*\r
-X3800D03*\r
-X3700D03*\r
-X3600D03*\r
-G54D19*X875Y3525D03*\r
-G54D21*X975Y3475D03*\r
-X875Y3425D03*\r
-X975Y3375D03*\r
-X875Y3325D03*\r
-X975Y3275D03*\r
-X875Y3225D03*\r
-X975Y3175D03*\r
-G54D26*X625Y3575D03*\r
-Y3124D03*\r
-G54D24*X745Y3655D03*\r
-Y3044D03*\r
-G54D19*X3225Y1200D03*\r
-G54D21*X3325D03*\r
-G54D19*X5775Y3525D03*\r
-G54D21*X5875D03*\r
-X5975D03*\r
-X6075D03*\r
-Y3825D03*\r
-X5975D03*\r
-X5875D03*\r
-X5775D03*\r
-G54D28*X5825Y2000D03*\r
-G54D24*X5925D03*\r
-X6025D03*\r
-G54D19*X5775Y2925D03*\r
-G54D21*X5875D03*\r
-X5975D03*\r
-X6075D03*\r
-Y3225D03*\r
-X5975D03*\r
-X5875D03*\r
-X5775D03*\r
-G54D19*X5625Y2225D03*\r
-G54D21*X5925D03*\r
-G54D28*X5825Y1175D03*\r
-G54D24*X5925D03*\r
-X6025D03*\r
-G54D30*X550Y1405D03*\r
-G54D32*Y1228D03*\r
-X648Y1454D03*\r
-Y1178D03*\r
-G54D19*X4750Y800D03*\r
-G54D21*X4900D03*\r
-G54D19*X3000Y1125D03*\r
-G54D21*Y1525D03*\r
-G54D19*X4475Y3475D03*\r
-G54D21*Y3875D03*\r
-G54D19*X3325Y1500D03*\r
-G54D21*X3225D03*\r
-G54D19*X6525Y3625D03*\r
-G54D21*Y3525D03*\r
-Y3425D03*\r
-Y3325D03*\r
-Y3225D03*\r
-Y3125D03*\r
-Y3025D03*\r
-Y2925D03*\r
-Y2825D03*\r
-Y2725D03*\r
-Y2625D03*\r
-Y2525D03*\r
-Y2425D03*\r
-Y2325D03*\r
-Y2225D03*\r
-Y2125D03*\r
-Y2025D03*\r
-Y1925D03*\r
-Y1825D03*\r
-Y1725D03*\r
-Y1625D03*\r
-Y1525D03*\r
-Y1425D03*\r
-Y1325D03*\r
-Y1225D03*\r
-Y1125D03*\r
-Y1025D03*\r
-Y925D03*\r
-Y825D03*\r
-Y725D03*\r
-Y625D03*\r
-Y525D03*\r
-X6425Y3625D03*\r
-Y3525D03*\r
-Y3425D03*\r
-Y3325D03*\r
-Y3225D03*\r
-Y3125D03*\r
-Y3025D03*\r
-Y2925D03*\r
-Y2825D03*\r
-Y2725D03*\r
-Y2625D03*\r
-Y2525D03*\r
-Y2425D03*\r
-Y2325D03*\r
-Y2225D03*\r
-Y2125D03*\r
-Y2025D03*\r
-Y1925D03*\r
-Y1825D03*\r
-Y1725D03*\r
-Y1625D03*\r
-Y1525D03*\r
-Y1425D03*\r
-Y1325D03*\r
-Y1225D03*\r
-Y1125D03*\r
-Y1025D03*\r
-Y925D03*\r
-Y825D03*\r
-Y725D03*\r
-Y625D03*\r
-Y525D03*\r
-X6325Y3625D03*\r
-Y3525D03*\r
-Y3425D03*\r
-Y3325D03*\r
-Y3225D03*\r
-Y3125D03*\r
-Y3025D03*\r
-Y2925D03*\r
-Y2825D03*\r
-Y2725D03*\r
-Y2625D03*\r
-Y2525D03*\r
-Y2425D03*\r
-Y2325D03*\r
-Y2225D03*\r
-Y2125D03*\r
-Y2025D03*\r
-Y1925D03*\r
-Y1825D03*\r
-Y1725D03*\r
-Y1625D03*\r
-Y1525D03*\r
-Y1425D03*\r
-Y1325D03*\r
-Y1225D03*\r
-Y1125D03*\r
-Y1025D03*\r
-Y925D03*\r
-Y825D03*\r
-Y725D03*\r
-Y625D03*\r
-Y525D03*\r
-G54D16*X6625Y325D03*\r
-Y3825D03*\r
-G54D28*X5300Y1175D03*\r
-G54D24*X5400D03*\r
-X5500D03*\r
-G54D19*X4900Y400D03*\r
-G54D21*X4750D03*\r
-G54D19*X1160Y1300D03*\r
-G54D21*X760D03*\r
-G54D19*X2800Y1525D03*\r
-G54D21*Y1125D03*\r
-G54D28*X5700Y500D03*\r
-G54D24*X5600D03*\r
-X5500D03*\r
-G54D30*X4950Y1325D03*\r
-G54D32*X4700D03*\r
-G54D19*X1725Y900D03*\r
-G54D21*X1825D03*\r
-X1925D03*\r
-X2025D03*\r
-Y1200D03*\r
-X1925D03*\r
-X1825D03*\r
-X1725D03*\r
-G54D30*X1050Y800D03*\r
-G54D32*X1150D03*\r
-G54D19*X3550Y3475D03*\r
-G54D21*Y3875D03*\r
-G54D19*X5350Y2000D03*\r
-G54D21*X5450D03*\r
-G54D28*X5825Y1650D03*\r
-G54D24*X5925D03*\r
-X6025D03*\r
-G54D19*X850Y800D03*\r
-G54D21*Y500D03*\r
-G54D30*X4950Y1900D03*\r
-G54D32*X4700D03*\r
-G54D19*X815Y1705D03*\r
-G54D21*Y1605D03*\r
-G54D16*X775Y2860D03*\r
-Y1920D03*\r
-G54D32*X825Y2590D03*\r
-X725Y2540D03*\r
-X825Y2490D03*\r
-X725Y2440D03*\r
-X825Y2390D03*\r
-X725Y2340D03*\r
-X825Y2290D03*\r
-X725Y2240D03*\r
-G54D30*X825Y2190D03*\r
-G54D19*X2800Y1750D03*\r
-G54D21*X2900D03*\r
-X3000D03*\r
-X3100D03*\r
-X3200D03*\r
-X3300D03*\r
-X3400D03*\r
-X3500D03*\r
-X3600D03*\r
-X3700D03*\r
-X3800D03*\r
-X3900D03*\r
-Y2050D03*\r
-X3800D03*\r
-X3700D03*\r
-X3600D03*\r
-X3500D03*\r
-X3400D03*\r
-X3300D03*\r
-X3200D03*\r
-X3100D03*\r
-X3000D03*\r
-X2900D03*\r
-X2800D03*\r
-G54D19*X1400Y1450D03*\r
-G54D21*X1500D03*\r
-X1600D03*\r
-X1700D03*\r
-X1800D03*\r
-X1900D03*\r
-X2000D03*\r
-X2100D03*\r
-X2200D03*\r
-X2300D03*\r
-X2400D03*\r
-X2500D03*\r
-Y2050D03*\r
-X2400D03*\r
-X2300D03*\r
-X2200D03*\r
-X2100D03*\r
-X2000D03*\r
-X1900D03*\r
-X1800D03*\r
-X1700D03*\r
-X1600D03*\r
-X1500D03*\r
-X1400D03*\r
-G54D30*X4200D03*\r
-G54D32*X4300D03*\r
-X4200Y1950D03*\r
-X4300D03*\r
-X4200Y1850D03*\r
-X4300D03*\r
-X4200Y1750D03*\r
-X4300D03*\r
-G54D19*X3175Y375D03*\r
-G54D21*X3275D03*\r
-G54D19*X2450Y3525D03*\r
-G54D21*X2550D03*\r
-X2650D03*\r
-X2750D03*\r
-X2850D03*\r
-X2950D03*\r
-X3050D03*\r
-X3150D03*\r
-Y3825D03*\r
-X3050D03*\r
-X2950D03*\r
-X2850D03*\r
-X2750D03*\r
-X2650D03*\r
-X2550D03*\r
-X2450D03*\r
-G54D28*X5300Y1650D03*\r
-G54D24*X5400D03*\r
-X5500D03*\r
-G54D19*X575Y1705D03*\r
-G54D21*Y1605D03*\r
-G54D19*X1575Y675D03*\r
-G54D21*Y375D03*\r
-G54D19*X5575Y3475D03*\r
-G54D21*Y3875D03*\r
-G54D19*X3975Y3525D03*\r
-G54D21*X4075D03*\r
-X4175D03*\r
-X4275D03*\r
-Y3825D03*\r
-X4175D03*\r
-X4075D03*\r
-X3975D03*\r
-G54D19*X4875Y2925D03*\r
-G54D21*X4975D03*\r
-X5075D03*\r
-X5175D03*\r
-Y3225D03*\r
-X5075D03*\r
-X4975D03*\r
-X4875D03*\r
-G54D19*X5375Y2875D03*\r
-G54D21*Y3275D03*\r
-G54D19*X4675Y2875D03*\r
-G54D21*Y3275D03*\r
-G54D19*Y3475D03*\r
-G54D21*Y3875D03*\r
-G54D19*X4875Y3525D03*\r
-G54D21*X4975D03*\r
-X5075D03*\r
-X5175D03*\r
-Y3825D03*\r
-X5075D03*\r
-X4975D03*\r
-X4875D03*\r
-G54D19*X5375Y3475D03*\r
-G54D21*Y3875D03*\r
-G54D19*X5575Y2875D03*\r
-G54D21*Y3275D03*\r
-G54D19*X3975Y2925D03*\r
-G54D21*X4075D03*\r
-X4175D03*\r
-X4275D03*\r
-Y3225D03*\r
-X4175D03*\r
-X4075D03*\r
-X3975D03*\r
-G54D19*X4475Y2875D03*\r
-G54D21*Y3275D03*\r
-G54D28*X4150Y500D03*\r
-G54D24*X4050D03*\r
-X3950D03*\r
-G54D19*X2975Y675D03*\r
-G54D21*Y375D03*\r
-G54D19*X3350Y3475D03*\r
-G54D21*Y3875D03*\r
-X4750Y675D03*\r
-X4900D03*\r
-X5600D03*\r
-X6025Y1500D03*\r
-X5400D03*\r
-Y1025D03*\r
-X6025D03*\r
-X5925Y1325D03*\r
-X6125Y1225D03*\r
-X5400Y825D03*\r
-X3950Y925D03*\r
-X4750D03*\r
-X6225Y675D03*\r
-X6125Y1425D03*\r
-X5925Y1875D03*\r
-X4625Y675D03*\r
-X5625Y1900D03*\r
-X6225Y3075D03*\r
-X6475D03*\r
-X5675Y3025D03*\r
-X5975Y3625D03*\r
-X5375D03*\r
-X4875D03*\r
-X5175Y3700D03*\r
-X5775D03*\r
-X4025Y3375D03*\r
-X4875D03*\r
-X5375D03*\r
-X5925D03*\r
-X4975Y3150D03*\r
-X1400D03*\r
-X1750D03*\r
-X2375D03*\r
-X3225Y925D03*\r
-X3275Y175D03*\r
-X2400Y1650D03*\r
-X2700D03*\r
-X1400D03*\r
-X1300Y1300D03*\r
-Y1200D03*\r
-G54D14*X2525Y1225D03*\r
-G54D21*X4275Y3100D03*\r
-X5250D03*\r
-X3150D03*\r
-X4475Y3150D03*\r
-X2025Y1050D03*\r
-X1275Y175D03*\r
-X2125D03*\r
-X2725D03*\r
-X3600Y925D03*\r
-X775Y175D03*\r
-G54D14*X4875Y3025D03*\r
-X6200Y3575D03*\r
-X6225Y3225D03*\r
-X5375Y3025D03*\r
-X6375Y2375D03*\r
-X2625D03*\r
-X5975Y3450D03*\r
-G54D21*X4075Y3625D03*\r
-G54D14*X2050Y3275D03*\r
-X4025Y1750D03*\r
-X2950Y2800D03*\r
-X3350Y3575D03*\r
-X5275Y3875D03*\r
-X6150Y3950D03*\r
-X4775Y3525D03*\r
-X6225Y3750D03*\r
-X6475Y3900D03*\r
-X5575Y3950D03*\r
-X5025D03*\r
-X5475Y2675D03*\r
-X6100D03*\r
-X6150Y2800D03*\r
-X5550Y2750D03*\r
-X1950Y3525D03*\r
-X2425Y500D03*\r
-X2100Y3425D03*\r
-X1150Y2975D03*\r
-X5075Y3025D03*\r
-X4175Y2750D03*\r
-X2000Y3475D03*\r
-X5125Y3300D03*\r
-X5575Y1725D03*\r
-X4475Y3800D03*\r
-X3550Y2800D03*\r
-G54D21*X2725Y575D03*\r
-G54D14*X950Y1650D03*\r
-X1150D03*\r
-X5825Y1250D03*\r
-X1100Y425D03*\r
-X1825Y250D03*\r
-X2525D03*\r
-G54D21*X2125Y575D03*\r
-X2325D03*\r
-G54D14*X1925Y500D03*\r
-X4175Y3025D03*\r
-X4475D03*\r
-X4725D03*\r
-X4675Y3950D03*\r
-X2550Y2900D03*\r
-X2650D03*\r
-Y2800D03*\r
-X2500D03*\r
-X2600Y3050D03*\r
-X2450D03*\r
-X2850Y2900D03*\r
-X3000D03*\r
-X2900Y2850D03*\r
-X3100D03*\r
-X2950Y2725D03*\r
-X3225D03*\r
-X1450D03*\r
-X1550Y2850D03*\r
-X1600Y3100D03*\r
-X3000D03*\r
-X1700Y2675D03*\r
-X2800D03*\r
-X1800Y2775D03*\r
-X2750Y2800D03*\r
-X1900Y3050D03*\r
-X2700D03*\r
-X2000Y1550D03*\r
-X2700D03*\r
-G54D21*X3225Y1650D03*\r
-G54D14*X3500Y1600D03*\r
-X2025Y1275D03*\r
-X2200D03*\r
-X2575Y1600D03*\r
-X2100D03*\r
-X2575Y2125D03*\r
-G54D21*X2200Y1850D03*\r
-X2400D03*\r
-G54D14*X3000Y1975D03*\r
-X2150D03*\r
-X3100Y1925D03*\r
-X2250D03*\r
-Y2150D03*\r
-X3150Y2175D03*\r
-X1500Y2225D03*\r
-X3250D03*\r
-X2350D03*\r
-X3600Y1575D03*\r
-X2925Y1875D03*\r
-X1700Y1925D03*\r
-X2100Y1800D03*\r
-X3900Y1850D03*\r
-X2575Y1325D03*\r
-X3850D03*\r
-X1550Y1275D03*\r
-X3400D03*\r
-X2300Y2275D03*\r
-X2450D03*\r
-X2275Y3200D03*\r
-X2550D03*\r
-X2500Y2375D03*\r
-X1900Y2350D03*\r
-X1800Y2400D03*\r
-X4300Y2125D03*\r
-G54D21*X3325Y1400D03*\r
-G54D14*X2900Y1450D03*\r
-X4800D03*\r
-G54D21*X4700Y1200D03*\r
-G54D14*X4625Y1275D03*\r
-X3000Y2325D03*\r
-X4850D03*\r
-X3050Y3250D03*\r
-X2750D03*\r
-X3300Y3300D03*\r
-X2850D03*\r
-X3500Y1900D03*\r
-X3650D03*\r
-X3550Y250D03*\r
-G54D21*X2975Y575D03*\r
-G54D14*X3750Y500D03*\r
-X1075Y2625D03*\r
-X1220Y2495D03*\r
-X4500Y2275D03*\r
-X2625Y575D03*\r
-X3275D03*\r
-X4000Y1850D03*\r
-X4050Y1950D03*\r
-X4100Y2050D03*\r
-X1050Y1400D03*\r
-X4150Y1375D03*\r
-X4025Y1600D03*\r
-X2225Y1000D03*\r
-X4025D03*\r
-X5200Y1500D03*\r
-Y725D03*\r
-X2100Y875D03*\r
-X5700D03*\r
-Y1650D03*\r
-X5300Y825D03*\r
-X2825Y800D03*\r
-X3275Y1050D03*\r
-X495Y800D03*\r
-G54D21*X1300Y1550D03*\r
-G54D14*X765Y1530D03*\r
-X905Y1045D03*\r
-G54D21*X5925Y500D03*\r
-X4050Y675D03*\r
-D02*\r
-M02*\r
+++ /dev/null
-G04 Title: (unknown), layergroup #2 *\r
-G04 Creator: pcb 1.6.3 *\r
-G04 CreationDate: Mon Mar 31 19:59:34 2003 UTC *\r
-G04 For: fetter *\r
-G04 Format: Gerber/RS-274X *\r
-G04 PCB-Dimensions: 7100 4100 *\r
-G04 PCB-Coordinate-Origin: lower left *\r
-G04 Color: R0 G0 B0 *\r
-*\r
-%FSLAX23Y23*%\r
-%MOIN*%\r
-%ADD11C,0.010*%\r
-%ADD12C,0.025*%\r
-%ADD13C,0.045*%\r
-%ADD14C,0.040*%\r
-%ADD15C,0.001*%\r
-%ADD16C,0.120*%\r
-%ADD17C,0.150*%\r
-%ADD18C,0.020*%\r
-%ADD19R,0.060X0.060*%\r
-%ADD20R,0.090X0.090*%\r
-%ADD21C,0.060*%\r
-%ADD22C,0.090*%\r
-%ADD23C,0.008*%\r
-%ADD24C,0.080*%\r
-%ADD25C,0.110*%\r
-%ADD26C,0.148*%\r
-%ADD27C,0.178*%\r
-%ADD28R,0.080X0.080*%\r
-%ADD29R,0.110X0.110*%\r
-%ADD30R,0.070X0.070*%\r
-%ADD31R,0.100X0.100*%\r
-%ADD32C,0.070*%\r
-%ADD33C,0.100*%\r
-%ADD34C,0.016*%\r
-%ADD35C,0.015*%\r
-%IPPOS*%\r
-G01*\r
-%LNcomponent*%\r
-%LPD*%\r
-G04 LayerGroup: 2 *\r
-G04 Layer: "component" (4) *\r
-G54D11*X965Y2390D02*X825D01*\r
-X1050Y2475D02*X965Y2390D01*\r
-G54D12*X700Y950D02*Y250D01*\r
-Y1400D02*X725Y1425D01*\r
-X700Y1250D02*Y1400D01*\r
-X725Y1225D02*X700Y1250D01*\r
-X725Y1125D02*Y1225D01*\r
-X700Y1100D02*X725Y1125D01*\r
-X700Y950D02*Y1100D01*\r
-G54D15*X450Y4050D02*X6750D01*\r
-G54D11*X3850Y1700D02*Y1325D01*\r
-X3650Y1425D02*Y1900D01*\r
-X3700Y1375D02*X3650Y1425D01*\r
-X3700Y1200D02*Y1375D01*\r
-X3600Y1600D02*Y1575D01*\r
-Y1750D02*Y1600D01*\r
-X2600Y2475D02*X2575Y2450D01*\r
-X2100Y1600D02*Y1450D01*\r
-X2575Y2100D02*Y1600D01*\r
-Y2450D02*Y2100D01*\r
-X3500Y1600D02*Y1750D01*\r
-G54D12*X3225Y1650D02*Y1500D01*\r
-G54D11*X2650Y2425D02*Y2575D01*\r
-X2700Y2375D02*X2650Y2425D01*\r
-X2700Y2325D02*Y2375D01*\r
-X2650Y2275D02*X2700Y2325D01*\r
-X2650Y1600D02*Y2275D01*\r
-X2700Y1550D02*X2650Y1600D01*\r
-X2000Y1450D02*Y1550D01*\r
-X1900Y2550D02*Y3050D01*\r
-X1925Y2525D02*X1900Y2550D01*\r
-X1950Y2500D02*X1925Y2525D01*\r
-X1950Y1600D02*Y2500D01*\r
-X1900Y1550D02*X1950Y1600D01*\r
-X1900Y1450D02*Y1550D01*\r
-X1800Y2550D02*Y2775D01*\r
-X1850Y2500D02*X1800Y2550D01*\r
-X1850Y1600D02*Y2500D01*\r
-X1800Y1550D02*X1850Y1600D01*\r
-X1800Y1450D02*Y1550D01*\r
-X1700Y2550D02*Y2675D01*\r
-X1750Y2500D02*X1700Y2550D01*\r
-X1750Y1600D02*Y2500D01*\r
-X1700Y1550D02*X1750Y1600D01*\r
-X1700Y1450D02*Y1550D01*\r
-X1600Y2450D02*Y3100D01*\r
-X1625Y2425D02*X1600Y2450D01*\r
-X1650Y2400D02*X1625Y2425D01*\r
-X1650Y1600D02*Y2400D01*\r
-X1600Y1550D02*X1650Y1600D01*\r
-X1600Y1450D02*Y1550D01*\r
-X1550Y1600D02*Y2850D01*\r
-X1500Y1550D02*X1550Y1600D01*\r
-X1500Y1450D02*Y1550D01*\r
-X1400Y1450D02*Y1550D01*\r
-X815Y1700D02*X905Y1610D01*\r
-D02*Y1045D01*\r
-X1400Y1550D02*X1450Y1600D01*\r
-X3225Y2725D02*Y3750D01*\r
-X2950Y2575D02*Y2725D01*\r
-X3225Y3750D02*X3150Y3825D01*\r
-X2900Y2475D02*Y2850D01*\r
-X3100Y3775D02*X3050Y3825D01*\r
-X3100Y2850D02*Y3775D01*\r
-X3000D02*X2950Y3825D01*\r
-X3000Y2900D02*Y3775D01*\r
-X2850Y2575D02*Y2900D01*\r
-X2800Y2475D02*Y3150D01*\r
-X2900Y3775D02*X2850Y3825D01*\r
-X2900Y3250D02*Y3775D01*\r
-X2800Y3150D02*X2900Y3250D01*\r
-X2800Y3775D02*X2750Y3825D01*\r
-X2800Y3200D02*Y3775D01*\r
-X2750Y3150D02*X2800Y3200D01*\r
-X2750Y2575D02*Y3150D01*\r
-X2700Y2475D02*Y3775D01*\r
-D02*X2650Y3825D01*\r
-X2450Y3050D02*Y3525D01*\r
-X2600Y2475D02*Y3050D01*\r
-X2650Y2575D02*Y2800D01*\r
-X2500Y3775D02*X2550Y3825D01*\r
-X2500Y3750D02*Y3775D01*\r
-Y2800D02*Y3750D01*\r
-X2650Y2900D02*Y3525D01*\r
-X2550Y2575D02*Y2900D01*\r
-G54D13*X6025Y1325D02*X6125Y1225D01*\r
-X6025Y1500D02*Y1325D01*\r
-Y1175D02*Y1025D01*\r
-X5400Y1500D02*Y1650D01*\r
-Y1175D02*Y1025D01*\r
-X6025Y1650D02*Y1500D01*\r
-X5500Y1650D02*Y1175D01*\r
-X5600Y500D02*Y675D01*\r
-X4900Y800D02*Y675D01*\r
-X4750Y400D02*Y675D01*\r
-X4050D02*Y500D01*\r
-X5925Y1650D02*Y500D01*\r
-G54D12*X4025Y3375D02*Y2975D01*\r
-D02*X4075Y2925D01*\r
-X4875Y3225D02*Y3375D01*\r
-X5375Y3275D02*Y3375D01*\r
-X5975Y2925D02*X5925Y2975D01*\r
-D02*Y3375D01*\r
-X5875Y2925D02*X5825Y2975D01*\r
-D02*Y3075D01*\r
-D02*Y3175D01*\r
-D02*X5775Y3225D01*\r
-X4975Y3525D02*Y3350D01*\r
-Y3150D02*Y2925D01*\r
-D02*Y2700D01*\r
-D02*X5000Y2675D01*\r
-D02*Y2475D01*\r
-X4975Y3350D02*X4925Y3300D01*\r
-D02*Y3175D01*\r
-D02*X4975Y3125D01*\r
-X2425Y3825D02*X2375Y3775D01*\r
-D02*Y3150D01*\r
-G54D11*X765Y1295D02*X760Y1290D01*\r
-G54D12*X1750Y2575D02*Y3150D01*\r
-X2450Y3825D02*X2425D01*\r
-X3225Y925D02*Y1500D01*\r
-X3275Y375D02*Y175D01*\r
-X2200Y2050D02*Y1850D01*\r
-G54D13*X5400Y825D02*Y600D01*\r
-G54D12*X2400Y1650D02*Y1450D01*\r
-X2775Y2050D02*X2700Y1975D01*\r
-D02*Y1650D01*\r
-X2800Y2050D02*X2775D01*\r
-X1400Y1650D02*Y2050D01*\r
-X1300Y1550D02*X1400Y1650D01*\r
-G54D11*X1100Y1000D02*X1150Y1050D01*\r
-G54D12*X1300Y1350D02*Y1550D01*\r
-X4275Y3225D02*Y3100D01*\r
-X5250Y2575D02*Y3100D01*\r
-X3150D02*Y3525D01*\r
-X4275Y3825D02*X4325D01*\r
-D02*X4350Y3800D01*\r
-D02*Y3300D01*\r
-D02*X4275Y3225D01*\r
-X4475Y3250D02*Y3150D01*\r
-X3900Y3750D02*X3975Y3825D01*\r
-Y3225D02*X3900Y3300D01*\r
-D02*Y3750D01*\r
-X5500Y1650D02*Y1850D01*\r
-D02*X5350Y2000D01*\r
-X3325Y1500D02*Y1200D01*\r
-X3900Y1750D02*Y1500D01*\r
-D02*Y1200D01*\r
-X2025Y1050D02*Y875D01*\r
-X1275Y175D02*Y375D01*\r
-X2125D02*Y175D01*\r
-X2725Y375D02*Y175D01*\r
-X3600Y1500D02*Y1200D01*\r
-D02*Y925D01*\r
-X3325Y1200D02*X3375Y1150D01*\r
-D02*Y450D01*\r
-D02*X3300Y375D01*\r
-D02*X3275D01*\r
-X2125Y575D02*Y675D01*\r
-G54D11*X2225D02*Y375D01*\r
-G54D12*X2725Y675D02*Y625D01*\r
-G54D11*X5575Y1875D02*X5450Y2000D01*\r
-X495Y1350D02*Y800D01*\r
-G54D15*X450Y115D02*Y4050D01*\r
-X6750D02*Y115D01*\r
-G54D12*X725Y1425D02*Y1500D01*\r
-D02*X700Y1525D01*\r
-D02*Y1575D01*\r
-G54D11*X3550Y3475D02*Y2800D01*\r
-X3350Y3475D02*Y3575D01*\r
-X6075Y3525D02*X6150Y3600D01*\r
-D02*Y3950D01*\r
-X5575D02*Y3875D01*\r
-X4675Y3950D02*Y3875D01*\r
-X5075Y3525D02*Y3625D01*\r
-D02*X5025Y3675D01*\r
-D02*Y3950D01*\r
-X5375Y3475D02*X5275Y3575D01*\r
-D02*Y3875D01*\r
-X4475Y3475D02*Y3800D01*\r
-X5575Y2875D02*X5550Y2850D01*\r
-D02*Y2750D01*\r
-X4175D02*Y2925D01*\r
-Y3225D02*Y3025D01*\r
-X4475D02*Y2875D01*\r
-X5375D02*Y3025D01*\r
-X5075D02*Y3225D01*\r
-X5575Y3175D02*Y3275D01*\r
-X4300Y2050D02*Y1750D01*\r
-X6075Y2925D02*X6100Y2900D01*\r
-D02*Y2675D01*\r
-X5475D02*Y2975D01*\r
-D02*X5525Y3025D01*\r
-D02*Y3100D01*\r
-D02*X5575Y3150D01*\r
-D02*Y3175D01*\r
-X5125Y3200D02*Y3225D01*\r
-D02*Y3300D01*\r
-X5075Y2925D02*X5175Y3025D01*\r
-D02*Y3150D01*\r
-D02*X5125Y3200D01*\r
-X4925Y2675D02*Y3000D01*\r
-X4950Y2575D02*Y2650D01*\r
-X4925Y3000D02*X4900Y3025D01*\r
-D02*X4875D01*\r
-X4725D02*Y3150D01*\r
-D02*X4750Y3175D01*\r
-D02*Y3375D01*\r
-D02*X4675Y3450D01*\r
-D02*Y3475D01*\r
-X4950Y2650D02*X4925Y2675D01*\r
-X4775Y2750D02*Y3525D01*\r
-X4900Y2475D02*Y2625D01*\r
-D02*X4775Y2750D01*\r
-X4750Y2575D02*Y2675D01*\r
-D02*X4675Y2750D01*\r
-D02*Y2875D01*\r
-X4700Y2675D02*X4575Y2800D01*\r
-D02*Y2875D01*\r
-D02*X4475D01*\r
-X4700Y2475D02*Y2675D01*\r
-X4100Y2050D02*Y2150D01*\r
-Y2475D02*Y2300D01*\r
-D02*Y2150D01*\r
-X4050Y2575D02*Y2150D01*\r
-D02*Y2100D01*\r
-X4000Y2050D02*Y1850D01*\r
-Y2475D02*Y2050D01*\r
-X4050Y1950D02*Y2100D01*\r
-X3950Y2575D02*Y1825D01*\r
-D02*X4025Y1750D01*\r
-X5575Y1725D02*Y1875D01*\r
-G54D12*X2725Y625D02*Y575D01*\r
-G54D11*X950Y1575D02*Y1650D01*\r
-X1150D02*Y1775D01*\r
-Y800D02*X1225Y875D01*\r
-D02*Y2375D01*\r
-X2025Y1200D02*Y1275D01*\r
-X2200D02*Y1450D01*\r
-X2800Y1950D02*X2900Y2050D01*\r
-X2800Y1750D02*Y1950D01*\r
-X1100Y1000D02*Y425D01*\r
-G54D12*X700Y250D02*X775Y175D01*\r
-G54D11*X1050Y2475D02*X1075Y2500D01*\r
-X1825Y375D02*Y250D01*\r
-X2525D02*Y375D01*\r
-G54D12*X2325D02*Y575D01*\r
-G54D11*X1925Y375D02*Y500D01*\r
-X2425D02*Y375D01*\r
-X1950Y2575D02*Y3525D01*\r
-X2000Y2475D02*Y3475D01*\r
-X2050Y2575D02*Y3275D01*\r
-X2100Y2475D02*Y3425D01*\r
-G54D13*X5500Y775D02*X5600Y675D01*\r
-X5500Y1175D02*Y775D01*\r
-G54D11*X2625Y1275D02*X2775Y1125D01*\r
-X2625Y2375D02*Y1275D01*\r
-X6375Y2975D02*Y2375D01*\r
-X6425Y3025D02*X6375Y2975D01*\r
-X2825Y675D02*Y375D01*\r
-X950Y650D02*Y1575D01*\r
-X850Y550D02*X950Y650D01*\r
-X850Y500D02*Y550D01*\r
-X1150Y1775D02*Y2975D01*\r
-G54D12*X4075Y3625D02*Y3525D01*\r
-G54D11*X6150Y3375D02*Y3475D01*\r
-X6375Y3375D02*X6150D01*\r
-X6375Y3275D02*Y3375D01*\r
-X6475Y3275D02*X6375D01*\r
-X6525Y3225D02*X6475Y3275D01*\r
-X6150Y3475D02*X6200Y3575D01*\r
-X2950Y2800D02*Y3525D01*\r
-X6150Y3125D02*Y2800D01*\r
-X6325Y3125D02*X6150D01*\r
-X6225Y3225D02*X6325Y3325D01*\r
-X5975Y3450D02*Y3225D01*\r
-X6225Y3750D02*Y3625D01*\r
-D02*X6325Y3525D01*\r
-X6475Y3675D02*X6525Y3625D01*\r
-X6475Y3900D02*Y3675D01*\r
-G54D12*X5875Y3600D02*X5775Y3700D01*\r
-X5875Y3525D02*Y3600D01*\r
-X5775Y3825D02*Y3700D01*\r
-X5175Y3825D02*Y3700D01*\r
-X4875Y3825D02*Y3625D01*\r
-X5375Y3875D02*Y3625D01*\r
-X5975Y3525D02*Y3625D01*\r
-X5675Y2800D02*Y3025D01*\r
-X5625Y2750D02*X5675Y2800D01*\r
-X5625Y2225D02*Y2750D01*\r
-G54D14*X6025Y2000D02*X6200D01*\r
-X6225Y1800D02*Y3075D01*\r
-G54D12*X6425Y3225D02*Y3125D01*\r
-Y3425D02*Y3325D01*\r
-Y3625D02*Y3525D01*\r
-G54D13*X5925Y2225D02*Y2000D01*\r
-X5625Y2225D02*Y1900D01*\r
-X4625Y925D02*Y675D01*\r
-X4700Y1000D02*X4625Y925D01*\r
-X4700Y1325D02*Y1000D01*\r
-Y1900D02*Y1325D01*\r
-X5925Y1875D02*Y1650D01*\r
-X6125Y1775D02*Y1425D01*\r
-X5925Y1975D02*X6125Y1775D01*\r
-X5925Y2000D02*Y1975D01*\r
-X6325Y1525D02*X6225D01*\r
-G54D12*X6425Y3125D02*X6525Y3025D01*\r
-G54D13*X6225Y1025D02*Y1800D01*\r
-Y1025D02*Y675D01*\r
-X6325Y1025D02*X6225D01*\r
-X4750Y800D02*Y925D01*\r
-X3950D02*Y500D01*\r
-X5400Y600D02*X5500Y500D01*\r
-G54D12*X2400Y1650D02*Y1825D01*\r
-G54D11*X2200Y1450D02*Y1725D01*\r
-D02*X2300Y1825D01*\r
-D02*Y2050D01*\r
-Y1450D02*Y1750D01*\r
-D02*X2325Y1775D01*\r
-D02*Y1875D01*\r
-D02*X2400Y1950D01*\r
-D02*Y2050D01*\r
-X1950Y1550D02*Y1350D01*\r
-D02*X2025Y1275D01*\r
-X2000Y2050D02*Y1600D01*\r
-X3000Y1750D02*Y1975D01*\r
-X2200Y2475D02*Y2150D01*\r
-X2250Y2100D02*Y1925D01*\r
-X3100Y1750D02*Y1925D01*\r
-X2200Y2150D02*X2250Y2100D01*\r
-Y2575D02*Y2150D01*\r
-X3150Y2175D02*Y1800D01*\r
-D02*X3200Y1750D01*\r
-X1500Y2050D02*Y2225D01*\r
-X3250D02*Y1800D01*\r
-D02*X3300Y1750D01*\r
-X2350Y2575D02*Y2225D01*\r
-X2925Y1975D02*Y1875D01*\r
-X1700Y1925D02*Y2050D01*\r
-X3000D02*X2925Y1975D01*\r
-X2000Y1600D02*X1950Y1550D01*\r
-X3900Y1850D02*Y2050D01*\r
-X2150Y1975D02*Y2575D01*\r
-X2100Y2050D02*Y1800D01*\r
-X2500Y1550D02*X2575Y1475D01*\r
-D02*Y1325D01*\r
-X3300Y2550D02*Y3300D01*\r
-X3250Y2500D02*X3300Y2550D01*\r
-X2500Y2050D02*Y1550D01*\r
-X1600Y2050D02*Y1600D01*\r
-D02*X1550Y1550D01*\r
-D02*Y1275D01*\r
-X3400D02*Y1750D01*\r
-X2400Y3025D02*X2275Y3150D01*\r
-D02*Y3200D01*\r
-X2550D02*Y3525D01*\r
-X2300Y2050D02*Y2275D01*\r
-X2450D02*Y2500D01*\r
-D02*X2425Y2525D01*\r
-D02*X2400Y2550D01*\r
-D02*Y3025D01*\r
-X2550Y2425D02*X2500Y2375D01*\r
-X1900Y2350D02*Y2050D01*\r
-X2550Y2575D02*Y2425D01*\r
-X1800Y2400D02*Y2050D01*\r
-X4300Y2125D02*Y2450D01*\r
-X2900Y1750D02*Y1450D01*\r
-X4800D02*Y2475D01*\r
-X4650Y1950D02*Y2575D01*\r
-X4625Y1275D02*Y1925D01*\r
-D02*X4650Y1950D01*\r
-X4850Y2325D02*Y2575D01*\r
-X3000Y2475D02*Y2325D01*\r
-X3100Y2050D02*Y2350D01*\r
-D02*X3050Y2400D01*\r
-D02*Y2475D01*\r
-D02*Y2500D01*\r
-D02*X3000Y2550D01*\r
-D02*Y2625D01*\r
-D02*Y2700D01*\r
-D02*X3050Y2750D01*\r
-D02*Y3250D01*\r
-X2750D02*Y3525D01*\r
-X2850Y3300D02*Y3525D01*\r
-X3200Y2050D02*Y2375D01*\r
-D02*X3250Y2425D01*\r
-D02*Y2500D01*\r
-X3800Y1750D02*X3850Y1700D01*\r
-X3500Y1900D02*Y2050D01*\r
-X3700D02*X3550Y1900D01*\r
-D02*Y1875D01*\r
-D02*Y250D01*\r
-G54D12*X2975Y575D02*Y375D01*\r
-G54D11*X3750Y2000D02*X3800Y2050D01*\r
-X3750Y500D02*Y2000D01*\r
-X1225Y2490D02*X1220Y2495D01*\r
-X2525Y675D02*Y1225D01*\r
-X1225Y2375D02*Y2490D01*\r
-X1075Y2500D02*Y2625D01*\r
-X4500Y2275D02*Y2475D01*\r
-X2625Y675D02*Y575D01*\r
-X3275D02*Y675D01*\r
-X4150Y2425D02*Y1375D01*\r
-X4200Y2475D02*X4150Y2425D01*\r
-X1050Y1400D02*Y800D01*\r
-X2225Y1000D02*Y675D01*\r
-X4025Y1600D02*Y1000D01*\r
-X5200Y725D02*Y1500D01*\r
-X1925Y675D02*X2100Y850D01*\r
-D02*Y875D01*\r
-X5700D02*Y1650D01*\r
-X5300Y1175D02*Y825D01*\r
-X2825Y800D02*Y675D01*\r
-X3275Y1050D02*Y675D01*\r
-X5825Y1250D02*Y1175D01*\r
-G54D12*X1300Y1370D02*Y1195D01*\r
-D02*X1305Y1190D01*\r
-G54D11*X550Y1405D02*X495Y1350D01*\r
-G54D15*X6750Y115D02*X450D01*\r
-G54D12*X575Y1705D02*X700Y1580D01*\r
-G54D11*X765Y1530D02*Y1295D01*\r
-G54D12*X1400Y2050D02*Y2450D01*\r
-D02*X1425Y2475D01*\r
-D02*Y2575D01*\r
-D02*X1400Y2600D01*\r
-D02*Y3150D01*\r
-G54D11*X1450Y1600D02*Y2425D01*\r
-D02*X1475Y2450D01*\r
-D02*Y2700D01*\r
-D02*X1450Y2725D01*\r
-G04 Text: Fernando Pessutto *\r
-G54D23*X1025Y3800D02*Y3760D01*\r
-Y3800D02*X1045D01*\r
-X1025Y3780D02*X1040D01*\r
-X1063Y3760D02*X1078D01*\r
-X1058Y3765D02*X1063Y3760D01*\r
-X1058Y3775D02*Y3765D01*\r
-Y3775D02*X1063Y3780D01*\r
-D02*X1073D01*\r
-D02*X1078Y3775D01*\r
-X1058Y3770D02*X1078D01*\r
-D02*Y3775D01*\r
-X1096D02*Y3760D01*\r
-Y3775D02*X1101Y3780D01*\r
-D02*X1111D01*\r
-X1091D02*X1096Y3775D01*\r
-X1129D02*Y3760D01*\r
-Y3775D02*X1134Y3780D01*\r
-D02*X1139D01*\r
-D02*X1144Y3775D01*\r
-D02*Y3760D01*\r
-X1124Y3780D02*X1129Y3775D01*\r
-X1172Y3780D02*X1177Y3775D01*\r
-X1162Y3780D02*X1172D01*\r
-X1157Y3775D02*X1162Y3780D01*\r
-X1157Y3775D02*Y3765D01*\r
-D02*X1162Y3760D01*\r
-X1177Y3780D02*Y3765D01*\r
-D02*X1182Y3760D01*\r
-X1162D02*X1172D01*\r
-D02*X1177Y3765D01*\r
-X1200Y3775D02*Y3760D01*\r
-Y3775D02*X1205Y3780D01*\r
-D02*X1210D01*\r
-D02*X1215Y3775D01*\r
-D02*Y3760D01*\r
-X1195Y3780D02*X1200Y3775D01*\r
-X1248Y3800D02*Y3760D01*\r
-X1243D02*X1248Y3765D01*\r
-X1233Y3760D02*X1243D01*\r
-X1228Y3765D02*X1233Y3760D01*\r
-X1228Y3775D02*Y3765D01*\r
-Y3775D02*X1233Y3780D01*\r
-D02*X1243D01*\r
-D02*X1248Y3775D01*\r
-X1261D02*Y3765D01*\r
-Y3775D02*X1266Y3780D01*\r
-D02*X1276D01*\r
-D02*X1281Y3775D01*\r
-D02*Y3765D01*\r
-X1276Y3760D02*X1281Y3765D01*\r
-X1266Y3760D02*X1276D01*\r
-X1261Y3765D02*X1266Y3760D01*\r
-X1317Y3800D02*Y3760D01*\r
-X1312Y3800D02*X1332D01*\r
-D02*X1337Y3795D01*\r
-D02*Y3785D01*\r
-X1332Y3780D02*X1337Y3785D01*\r
-X1317Y3780D02*X1332D01*\r
-X1355Y3760D02*X1370D01*\r
-X1350Y3765D02*X1355Y3760D01*\r
-X1350Y3775D02*Y3765D01*\r
-Y3775D02*X1355Y3780D01*\r
-D02*X1365D01*\r
-D02*X1370Y3775D01*\r
-X1350Y3770D02*X1370D01*\r
-D02*Y3775D01*\r
-X1388Y3760D02*X1403D01*\r
-D02*X1408Y3765D01*\r
-X1403Y3770D02*X1408Y3765D01*\r
-X1388Y3770D02*X1403D01*\r
-X1383Y3775D02*X1388Y3770D01*\r
-X1383Y3775D02*X1388Y3780D01*\r
-D02*X1403D01*\r
-D02*X1408Y3775D01*\r
-X1383Y3765D02*X1388Y3760D01*\r
-X1426D02*X1441D01*\r
-D02*X1446Y3765D01*\r
-X1441Y3770D02*X1446Y3765D01*\r
-X1426Y3770D02*X1441D01*\r
-X1421Y3775D02*X1426Y3770D01*\r
-X1421Y3775D02*X1426Y3780D01*\r
-D02*X1441D01*\r
-D02*X1446Y3775D01*\r
-X1421Y3765D02*X1426Y3760D01*\r
-X1459Y3780D02*Y3765D01*\r
-D02*X1464Y3760D01*\r
-D02*X1474D01*\r
-D02*X1479Y3765D01*\r
-Y3780D02*Y3765D01*\r
-X1497Y3800D02*Y3765D01*\r
-D02*X1502Y3760D01*\r
-X1492Y3785D02*X1502D01*\r
-X1518Y3800D02*Y3765D01*\r
-D02*X1523Y3760D01*\r
-X1513Y3785D02*X1523D01*\r
-X1534Y3775D02*Y3765D01*\r
-Y3775D02*X1539Y3780D01*\r
-D02*X1549D01*\r
-D02*X1554Y3775D01*\r
-D02*Y3765D01*\r
-X1549Y3760D02*X1554Y3765D01*\r
-X1539Y3760D02*X1549D01*\r
-X1534Y3765D02*X1539Y3760D01*\r
-G04 Text: (c) 2003 Walter Fetter Lages *\r
-X775Y3840D02*X780Y3835D01*\r
-X775Y3870D02*X780Y3875D01*\r
-X775Y3870D02*Y3840D01*\r
-X798Y3855D02*X813D01*\r
-X793Y3850D02*X798Y3855D01*\r
-X793Y3850D02*Y3840D01*\r
-D02*X798Y3835D01*\r
-D02*X813D01*\r
-X826Y3875D02*X831Y3870D01*\r
-D02*Y3840D01*\r
-X826Y3835D02*X831Y3840D01*\r
-X862Y3870D02*X867Y3875D01*\r
-D02*X882D01*\r
-D02*X887Y3870D01*\r
-D02*Y3860D01*\r
-X862Y3835D02*X887Y3860D01*\r
-X862Y3835D02*X887D01*\r
-X900Y3840D02*X905Y3835D01*\r
-X900Y3870D02*Y3840D01*\r
-Y3870D02*X905Y3875D01*\r
-D02*X915D01*\r
-D02*X920Y3870D01*\r
-D02*Y3840D01*\r
-X915Y3835D02*X920Y3840D01*\r
-X905Y3835D02*X915D01*\r
-X900Y3845D02*X920Y3865D01*\r
-X933Y3840D02*X938Y3835D01*\r
-X933Y3870D02*Y3840D01*\r
-Y3870D02*X938Y3875D01*\r
-D02*X948D01*\r
-D02*X953Y3870D01*\r
-D02*Y3840D01*\r
-X948Y3835D02*X953Y3840D01*\r
-X938Y3835D02*X948D01*\r
-X933Y3845D02*X953Y3865D01*\r
-X966Y3870D02*X971Y3875D01*\r
-D02*X981D01*\r
-D02*X986Y3870D01*\r
-D02*Y3840D01*\r
-X981Y3835D02*X986Y3840D01*\r
-X971Y3835D02*X981D01*\r
-X966Y3840D02*X971Y3835D01*\r
-Y3855D02*X986D01*\r
-X1017Y3875D02*Y3835D01*\r
-D02*X1032Y3850D01*\r
-D02*X1047Y3835D01*\r
-Y3875D02*Y3835D01*\r
-X1075Y3855D02*X1080Y3850D01*\r
-X1065Y3855D02*X1075D01*\r
-X1060Y3850D02*X1065Y3855D01*\r
-X1060Y3850D02*Y3840D01*\r
-D02*X1065Y3835D01*\r
-X1080Y3855D02*Y3840D01*\r
-D02*X1085Y3835D01*\r
-X1065D02*X1075D01*\r
-D02*X1080Y3840D01*\r
-X1098Y3875D02*Y3840D01*\r
-D02*X1103Y3835D01*\r
-X1119Y3875D02*Y3840D01*\r
-D02*X1124Y3835D01*\r
-X1114Y3860D02*X1124D01*\r
-X1140Y3835D02*X1155D01*\r
-X1135Y3840D02*X1140Y3835D01*\r
-X1135Y3850D02*Y3840D01*\r
-Y3850D02*X1140Y3855D01*\r
-D02*X1150D01*\r
-D02*X1155Y3850D01*\r
-X1135Y3845D02*X1155D01*\r
-D02*Y3850D01*\r
-X1173D02*Y3835D01*\r
-Y3850D02*X1178Y3855D01*\r
-D02*X1188D01*\r
-X1168D02*X1173Y3850D01*\r
-X1219Y3875D02*Y3835D01*\r
-Y3875D02*X1239D01*\r
-X1219Y3855D02*X1234D01*\r
-X1257Y3835D02*X1272D01*\r
-X1252Y3840D02*X1257Y3835D01*\r
-X1252Y3850D02*Y3840D01*\r
-Y3850D02*X1257Y3855D01*\r
-D02*X1267D01*\r
-D02*X1272Y3850D01*\r
-X1252Y3845D02*X1272D01*\r
-D02*Y3850D01*\r
-X1290Y3875D02*Y3840D01*\r
-D02*X1295Y3835D01*\r
-X1285Y3860D02*X1295D01*\r
-X1311Y3875D02*Y3840D01*\r
-D02*X1316Y3835D01*\r
-X1306Y3860D02*X1316D01*\r
-X1332Y3835D02*X1347D01*\r
-X1327Y3840D02*X1332Y3835D01*\r
-X1327Y3850D02*Y3840D01*\r
-Y3850D02*X1332Y3855D01*\r
-D02*X1342D01*\r
-D02*X1347Y3850D01*\r
-X1327Y3845D02*X1347D01*\r
-D02*Y3850D01*\r
-X1365D02*Y3835D01*\r
-Y3850D02*X1370Y3855D01*\r
-D02*X1380D01*\r
-X1360D02*X1365Y3850D01*\r
-X1411Y3875D02*Y3835D01*\r
-D02*X1431D01*\r
-X1459Y3855D02*X1464Y3850D01*\r
-X1449Y3855D02*X1459D01*\r
-X1444Y3850D02*X1449Y3855D01*\r
-X1444Y3850D02*Y3840D01*\r
-D02*X1449Y3835D01*\r
-X1464Y3855D02*Y3840D01*\r
-D02*X1469Y3835D01*\r
-X1449D02*X1459D01*\r
-D02*X1464Y3840D01*\r
-X1497Y3855D02*X1502Y3850D01*\r
-X1487Y3855D02*X1497D01*\r
-X1482Y3850D02*X1487Y3855D01*\r
-X1482Y3850D02*Y3840D01*\r
-D02*X1487Y3835D01*\r
-D02*X1497D01*\r
-D02*X1502Y3840D01*\r
-X1482Y3825D02*X1487Y3820D01*\r
-D02*X1497D01*\r
-D02*X1502Y3825D01*\r
-Y3855D02*Y3825D01*\r
-X1520Y3835D02*X1535D01*\r
-X1515Y3840D02*X1520Y3835D01*\r
-X1515Y3850D02*Y3840D01*\r
-Y3850D02*X1520Y3855D01*\r
-D02*X1530D01*\r
-D02*X1535Y3850D01*\r
-X1515Y3845D02*X1535D01*\r
-D02*Y3850D01*\r
-X1553Y3835D02*X1568D01*\r
-D02*X1573Y3840D01*\r
-X1568Y3845D02*X1573Y3840D01*\r
-X1553Y3845D02*X1568D01*\r
-X1548Y3850D02*X1553Y3845D01*\r
-X1548Y3850D02*X1553Y3855D01*\r
-D02*X1568D01*\r
-D02*X1573Y3850D01*\r
-X1548Y3840D02*X1553Y3835D01*\r
-G04 Text: AIC-1.1.0 *\r
-X775Y3945D02*Y3910D01*\r
-Y3945D02*X780Y3950D01*\r
-D02*X795D01*\r
-D02*X800Y3945D01*\r
-D02*Y3910D01*\r
-X775Y3930D02*X800D01*\r
-X813Y3950D02*X823D01*\r
-X818D02*Y3910D01*\r
-X813D02*X823D01*\r
-X841D02*X856D01*\r
-X836Y3915D02*X841Y3910D01*\r
-X836Y3945D02*Y3915D01*\r
-Y3945D02*X841Y3950D01*\r
-D02*X856D01*\r
-X869Y3930D02*X889D01*\r
-X907Y3910D02*X917D01*\r
-X912Y3950D02*Y3910D01*\r
-X902Y3940D02*X912Y3950D01*\r
-X930Y3910D02*X935D01*\r
-X953D02*X963D01*\r
-X958Y3950D02*Y3910D01*\r
-X948Y3940D02*X958Y3950D01*\r
-X976Y3910D02*X981D01*\r
-X994Y3915D02*X999Y3910D01*\r
-X994Y3945D02*Y3915D01*\r
-Y3945D02*X999Y3950D01*\r
-D02*X1009D01*\r
-D02*X1014Y3945D01*\r
-D02*Y3915D01*\r
-X1009Y3910D02*X1014Y3915D01*\r
-X999Y3910D02*X1009D01*\r
-X994Y3920D02*X1014Y3940D01*\r
-G04 Text: COMPONENT *\r
-X780Y3985D02*X795D01*\r
-X775Y3990D02*X780Y3985D01*\r
-X775Y4020D02*Y3990D01*\r
-Y4020D02*X780Y4025D01*\r
-D02*X795D01*\r
-X808Y4020D02*Y3990D01*\r
-Y4020D02*X813Y4025D01*\r
-D02*X823D01*\r
-D02*X828Y4020D01*\r
-D02*Y3990D01*\r
-X823Y3985D02*X828Y3990D01*\r
-X813Y3985D02*X823D01*\r
-X808Y3990D02*X813Y3985D01*\r
-X841Y4025D02*Y3985D01*\r
-Y4025D02*X856Y4010D01*\r
-D02*X871Y4025D01*\r
-D02*Y3985D01*\r
-X889Y4025D02*Y3985D01*\r
-X884Y4025D02*X904D01*\r
-D02*X909Y4020D01*\r
-D02*Y4010D01*\r
-X904Y4005D02*X909Y4010D01*\r
-X889Y4005D02*X904D01*\r
-X922Y4020D02*Y3990D01*\r
-Y4020D02*X927Y4025D01*\r
-D02*X937D01*\r
-D02*X942Y4020D01*\r
-D02*Y3990D01*\r
-X937Y3985D02*X942Y3990D01*\r
-X927Y3985D02*X937D01*\r
-X922Y3990D02*X927Y3985D01*\r
-X955Y4025D02*Y3985D01*\r
-Y4025D02*Y4020D01*\r
-D02*X980Y3995D01*\r
-Y4025D02*Y3985D01*\r
-X993Y4005D02*X1008D01*\r
-X993Y3985D02*X1013D01*\r
-X993Y4025D02*Y3985D01*\r
-Y4025D02*X1013D01*\r
-X1026D02*Y3985D01*\r
-Y4025D02*Y4020D01*\r
-D02*X1051Y3995D01*\r
-Y4025D02*Y3985D01*\r
-X1064Y4025D02*X1084D01*\r
-X1074D02*Y3985D01*\r
-G54D16*X575Y3825D03*\r
-Y338D03*\r
-X6625Y3825D03*\r
-Y338D03*\r
-G54D19*X1155Y1045D03*\r
-G54D21*X755D03*\r
-G54D19*X1725Y375D03*\r
-G54D21*X1825D03*\r
-X1925D03*\r
-X2025D03*\r
-X2125D03*\r
-X2225D03*\r
-X2325D03*\r
-X2425D03*\r
-X2525D03*\r
-X2625D03*\r
-X2725D03*\r
-X2825D03*\r
-Y675D03*\r
-X2725D03*\r
-X2625D03*\r
-X2525D03*\r
-X2425D03*\r
-X2325D03*\r
-X2225D03*\r
-X2125D03*\r
-X2025D03*\r
-X1925D03*\r
-X1825D03*\r
-X1725D03*\r
-G54D19*X1375Y375D03*\r
-G54D21*X1275D03*\r
-G54D19*X5400Y2475D03*\r
-G54D21*X5350Y2575D03*\r
-X5300Y2475D03*\r
-X5250Y2575D03*\r
-X5200Y2475D03*\r
-X5150Y2575D03*\r
-X5100Y2475D03*\r
-X5050Y2575D03*\r
-X5000Y2475D03*\r
-X4950Y2575D03*\r
-X4900Y2475D03*\r
-X4850Y2575D03*\r
-X4800Y2475D03*\r
-X4750Y2575D03*\r
-X4700Y2475D03*\r
-X4650Y2575D03*\r
-X4600Y2475D03*\r
-X4550Y2575D03*\r
-X4500Y2475D03*\r
-X4450Y2575D03*\r
-X4400Y2475D03*\r
-X4350Y2575D03*\r
-X4300Y2475D03*\r
-X4250Y2575D03*\r
-X4200Y2475D03*\r
-X4150Y2575D03*\r
-X4100Y2475D03*\r
-X4050Y2575D03*\r
-X4000Y2475D03*\r
-X3950Y2575D03*\r
-X3900Y2475D03*\r
-X3850Y2575D03*\r
-X3800Y2475D03*\r
-X3750Y2575D03*\r
-X3700Y2475D03*\r
-X3650Y2575D03*\r
-X3400Y2475D03*\r
-X3350Y2575D03*\r
-X3300Y2475D03*\r
-X3250Y2575D03*\r
-X3200Y2475D03*\r
-X3150Y2575D03*\r
-X3100Y2475D03*\r
-X3050Y2575D03*\r
-X3000Y2475D03*\r
-X2950Y2575D03*\r
-X2900Y2475D03*\r
-X2850Y2575D03*\r
-X2800Y2475D03*\r
-X2750Y2575D03*\r
-X2700Y2475D03*\r
-X2650Y2575D03*\r
-X2600Y2475D03*\r
-X2550Y2575D03*\r
-X2500Y2475D03*\r
-X2450Y2575D03*\r
-X2400Y2475D03*\r
-X2350Y2575D03*\r
-X2300Y2475D03*\r
-X2250Y2575D03*\r
-X2200Y2475D03*\r
-X2150Y2575D03*\r
-X2100Y2475D03*\r
-X2050Y2575D03*\r
-X2000Y2475D03*\r
-X1950Y2575D03*\r
-X1900Y2475D03*\r
-X1850Y2575D03*\r
-X1800Y2475D03*\r
-X1750Y2575D03*\r
-X1700Y2475D03*\r
-X1650Y2575D03*\r
-G54D24*X5730Y2525D03*\r
-G54D16*X3525D03*\r
-X1325D03*\r
-G54D19*X1375Y675D03*\r
-G54D21*X1275D03*\r
-G54D19*X3175D03*\r
-G54D21*X3275D03*\r
-G54D19*X3600Y1200D03*\r
-G54D21*X3700D03*\r
-X3800D03*\r
-X3900D03*\r
-Y1500D03*\r
-X3800D03*\r
-X3700D03*\r
-X3600D03*\r
-G54D19*X875Y3525D03*\r
-G54D21*X975Y3475D03*\r
-X875Y3425D03*\r
-X975Y3375D03*\r
-X875Y3325D03*\r
-X975Y3275D03*\r
-X875Y3225D03*\r
-X975Y3175D03*\r
-G54D26*X625Y3575D03*\r
-Y3124D03*\r
-G54D24*X745Y3655D03*\r
-Y3044D03*\r
-G54D19*X3225Y1200D03*\r
-G54D21*X3325D03*\r
-G54D19*X5775Y3525D03*\r
-G54D21*X5875D03*\r
-X5975D03*\r
-X6075D03*\r
-Y3825D03*\r
-X5975D03*\r
-X5875D03*\r
-X5775D03*\r
-G54D28*X5825Y2000D03*\r
-G54D24*X5925D03*\r
-X6025D03*\r
-G54D19*X5775Y2925D03*\r
-G54D21*X5875D03*\r
-X5975D03*\r
-X6075D03*\r
-Y3225D03*\r
-X5975D03*\r
-X5875D03*\r
-X5775D03*\r
-G54D19*X5625Y2225D03*\r
-G54D21*X5925D03*\r
-G54D28*X5825Y1175D03*\r
-G54D24*X5925D03*\r
-X6025D03*\r
-G54D30*X550Y1405D03*\r
-G54D32*Y1228D03*\r
-X648Y1454D03*\r
-Y1178D03*\r
-G54D19*X4750Y800D03*\r
-G54D21*X4900D03*\r
-G54D19*X3000Y1125D03*\r
-G54D21*Y1525D03*\r
-G54D19*X4475Y3475D03*\r
-G54D21*Y3875D03*\r
-G54D19*X3325Y1500D03*\r
-G54D21*X3225D03*\r
-G54D19*X6525Y3625D03*\r
-G54D21*Y3525D03*\r
-Y3425D03*\r
-Y3325D03*\r
-Y3225D03*\r
-Y3125D03*\r
-Y3025D03*\r
-Y2925D03*\r
-Y2825D03*\r
-Y2725D03*\r
-Y2625D03*\r
-Y2525D03*\r
-Y2425D03*\r
-Y2325D03*\r
-Y2225D03*\r
-Y2125D03*\r
-Y2025D03*\r
-Y1925D03*\r
-Y1825D03*\r
-Y1725D03*\r
-Y1625D03*\r
-Y1525D03*\r
-Y1425D03*\r
-Y1325D03*\r
-Y1225D03*\r
-Y1125D03*\r
-Y1025D03*\r
-Y925D03*\r
-Y825D03*\r
-Y725D03*\r
-Y625D03*\r
-Y525D03*\r
-X6425Y3625D03*\r
-Y3525D03*\r
-Y3425D03*\r
-Y3325D03*\r
-Y3225D03*\r
-Y3125D03*\r
-Y3025D03*\r
-Y2925D03*\r
-Y2825D03*\r
-Y2725D03*\r
-Y2625D03*\r
-Y2525D03*\r
-Y2425D03*\r
-Y2325D03*\r
-Y2225D03*\r
-Y2125D03*\r
-Y2025D03*\r
-Y1925D03*\r
-Y1825D03*\r
-Y1725D03*\r
-Y1625D03*\r
-Y1525D03*\r
-Y1425D03*\r
-Y1325D03*\r
-Y1225D03*\r
-Y1125D03*\r
-Y1025D03*\r
-Y925D03*\r
-Y825D03*\r
-Y725D03*\r
-Y625D03*\r
-Y525D03*\r
-X6325Y3625D03*\r
-Y3525D03*\r
-Y3425D03*\r
-Y3325D03*\r
-Y3225D03*\r
-Y3125D03*\r
-Y3025D03*\r
-Y2925D03*\r
-Y2825D03*\r
-Y2725D03*\r
-Y2625D03*\r
-Y2525D03*\r
-Y2425D03*\r
-Y2325D03*\r
-Y2225D03*\r
-Y2125D03*\r
-Y2025D03*\r
-Y1925D03*\r
-Y1825D03*\r
-Y1725D03*\r
-Y1625D03*\r
-Y1525D03*\r
-Y1425D03*\r
-Y1325D03*\r
-Y1225D03*\r
-Y1125D03*\r
-Y1025D03*\r
-Y925D03*\r
-Y825D03*\r
-Y725D03*\r
-Y625D03*\r
-Y525D03*\r
-G54D16*X6625Y325D03*\r
-Y3825D03*\r
-G54D28*X5300Y1175D03*\r
-G54D24*X5400D03*\r
-X5500D03*\r
-G54D19*X4900Y400D03*\r
-G54D21*X4750D03*\r
-G54D19*X1160Y1300D03*\r
-G54D21*X760D03*\r
-G54D19*X2800Y1525D03*\r
-G54D21*Y1125D03*\r
-G54D28*X5700Y500D03*\r
-G54D24*X5600D03*\r
-X5500D03*\r
-G54D30*X4950Y1325D03*\r
-G54D32*X4700D03*\r
-G54D19*X1725Y900D03*\r
-G54D21*X1825D03*\r
-X1925D03*\r
-X2025D03*\r
-Y1200D03*\r
-X1925D03*\r
-X1825D03*\r
-X1725D03*\r
-G54D30*X1050Y800D03*\r
-G54D32*X1150D03*\r
-G54D19*X3550Y3475D03*\r
-G54D21*Y3875D03*\r
-G54D19*X5350Y2000D03*\r
-G54D21*X5450D03*\r
-G54D28*X5825Y1650D03*\r
-G54D24*X5925D03*\r
-X6025D03*\r
-G54D19*X850Y800D03*\r
-G54D21*Y500D03*\r
-G54D30*X4950Y1900D03*\r
-G54D32*X4700D03*\r
-G54D19*X815Y1705D03*\r
-G54D21*Y1605D03*\r
-G54D16*X775Y2860D03*\r
-Y1920D03*\r
-G54D32*X825Y2590D03*\r
-X725Y2540D03*\r
-X825Y2490D03*\r
-X725Y2440D03*\r
-X825Y2390D03*\r
-X725Y2340D03*\r
-X825Y2290D03*\r
-X725Y2240D03*\r
-G54D30*X825Y2190D03*\r
-G54D19*X2800Y1750D03*\r
-G54D21*X2900D03*\r
-X3000D03*\r
-X3100D03*\r
-X3200D03*\r
-X3300D03*\r
-X3400D03*\r
-X3500D03*\r
-X3600D03*\r
-X3700D03*\r
-X3800D03*\r
-X3900D03*\r
-Y2050D03*\r
-X3800D03*\r
-X3700D03*\r
-X3600D03*\r
-X3500D03*\r
-X3400D03*\r
-X3300D03*\r
-X3200D03*\r
-X3100D03*\r
-X3000D03*\r
-X2900D03*\r
-X2800D03*\r
-G54D19*X1400Y1450D03*\r
-G54D21*X1500D03*\r
-X1600D03*\r
-X1700D03*\r
-X1800D03*\r
-X1900D03*\r
-X2000D03*\r
-X2100D03*\r
-X2200D03*\r
-X2300D03*\r
-X2400D03*\r
-X2500D03*\r
-Y2050D03*\r
-X2400D03*\r
-X2300D03*\r
-X2200D03*\r
-X2100D03*\r
-X2000D03*\r
-X1900D03*\r
-X1800D03*\r
-X1700D03*\r
-X1600D03*\r
-X1500D03*\r
-X1400D03*\r
-G54D30*X4200D03*\r
-G54D32*X4300D03*\r
-X4200Y1950D03*\r
-X4300D03*\r
-X4200Y1850D03*\r
-X4300D03*\r
-X4200Y1750D03*\r
-X4300D03*\r
-G54D19*X3175Y375D03*\r
-G54D21*X3275D03*\r
-G54D19*X2450Y3525D03*\r
-G54D21*X2550D03*\r
-X2650D03*\r
-X2750D03*\r
-X2850D03*\r
-X2950D03*\r
-X3050D03*\r
-X3150D03*\r
-Y3825D03*\r
-X3050D03*\r
-X2950D03*\r
-X2850D03*\r
-X2750D03*\r
-X2650D03*\r
-X2550D03*\r
-X2450D03*\r
-G54D28*X5300Y1650D03*\r
-G54D24*X5400D03*\r
-X5500D03*\r
-G54D19*X575Y1705D03*\r
-G54D21*Y1605D03*\r
-G54D19*X1575Y675D03*\r
-G54D21*Y375D03*\r
-G54D19*X5575Y3475D03*\r
-G54D21*Y3875D03*\r
-G54D19*X3975Y3525D03*\r
-G54D21*X4075D03*\r
-X4175D03*\r
-X4275D03*\r
-Y3825D03*\r
-X4175D03*\r
-X4075D03*\r
-X3975D03*\r
-G54D19*X4875Y2925D03*\r
-G54D21*X4975D03*\r
-X5075D03*\r
-X5175D03*\r
-Y3225D03*\r
-X5075D03*\r
-X4975D03*\r
-X4875D03*\r
-G54D19*X5375Y2875D03*\r
-G54D21*Y3275D03*\r
-G54D19*X4675Y2875D03*\r
-G54D21*Y3275D03*\r
-G54D19*Y3475D03*\r
-G54D21*Y3875D03*\r
-G54D19*X4875Y3525D03*\r
-G54D21*X4975D03*\r
-X5075D03*\r
-X5175D03*\r
-Y3825D03*\r
-X5075D03*\r
-X4975D03*\r
-X4875D03*\r
-G54D19*X5375Y3475D03*\r
-G54D21*Y3875D03*\r
-G54D19*X5575Y2875D03*\r
-G54D21*Y3275D03*\r
-G54D19*X3975Y2925D03*\r
-G54D21*X4075D03*\r
-X4175D03*\r
-X4275D03*\r
-Y3225D03*\r
-X4175D03*\r
-X4075D03*\r
-X3975D03*\r
-G54D19*X4475Y2875D03*\r
-G54D21*Y3275D03*\r
-G54D28*X4150Y500D03*\r
-G54D24*X4050D03*\r
-X3950D03*\r
-G54D19*X2975Y675D03*\r
-G54D21*Y375D03*\r
-G54D19*X3350Y3475D03*\r
-G54D21*Y3875D03*\r
-X4750Y675D03*\r
-X4900D03*\r
-X5600D03*\r
-X6025Y1500D03*\r
-X5400D03*\r
-Y1025D03*\r
-X6025D03*\r
-X5925Y1325D03*\r
-X6125Y1225D03*\r
-X5400Y825D03*\r
-X3950Y925D03*\r
-X4750D03*\r
-X6225Y675D03*\r
-X6125Y1425D03*\r
-X5925Y1875D03*\r
-X4625Y675D03*\r
-X5625Y1900D03*\r
-X6225Y3075D03*\r
-X6475D03*\r
-X5675Y3025D03*\r
-X5975Y3625D03*\r
-X5375D03*\r
-X4875D03*\r
-X5175Y3700D03*\r
-X5775D03*\r
-X4025Y3375D03*\r
-X4875D03*\r
-X5375D03*\r
-X5925D03*\r
-X4975Y3150D03*\r
-X1400D03*\r
-X1750D03*\r
-X2375D03*\r
-X3225Y925D03*\r
-X3275Y175D03*\r
-X2400Y1650D03*\r
-X2700D03*\r
-X1400D03*\r
-X1300Y1300D03*\r
-Y1200D03*\r
-G54D14*X2525Y1225D03*\r
-G54D21*X4275Y3100D03*\r
-X5250D03*\r
-X3150D03*\r
-X4475Y3150D03*\r
-X2025Y1050D03*\r
-X1275Y175D03*\r
-X2125D03*\r
-X2725D03*\r
-X3600Y925D03*\r
-X775Y175D03*\r
-G54D14*X4875Y3025D03*\r
-X6200Y3575D03*\r
-X6225Y3225D03*\r
-X5375Y3025D03*\r
-X6375Y2375D03*\r
-X2625D03*\r
-X5975Y3450D03*\r
-G54D21*X4075Y3625D03*\r
-G54D14*X2050Y3275D03*\r
-X4025Y1750D03*\r
-X2950Y2800D03*\r
-X3350Y3575D03*\r
-X5275Y3875D03*\r
-X6150Y3950D03*\r
-X4775Y3525D03*\r
-X6225Y3750D03*\r
-X6475Y3900D03*\r
-X5575Y3950D03*\r
-X5025D03*\r
-X5475Y2675D03*\r
-X6100D03*\r
-X6150Y2800D03*\r
-X5550Y2750D03*\r
-X1950Y3525D03*\r
-X2425Y500D03*\r
-X2100Y3425D03*\r
-X1150Y2975D03*\r
-X5075Y3025D03*\r
-X4175Y2750D03*\r
-X2000Y3475D03*\r
-X5125Y3300D03*\r
-X5575Y1725D03*\r
-X4475Y3800D03*\r
-X3550Y2800D03*\r
-G54D21*X2725Y575D03*\r
-G54D14*X950Y1650D03*\r
-X1150D03*\r
-X5825Y1250D03*\r
-X1100Y425D03*\r
-X1825Y250D03*\r
-X2525D03*\r
-G54D21*X2125Y575D03*\r
-X2325D03*\r
-G54D14*X1925Y500D03*\r
-X4175Y3025D03*\r
-X4475D03*\r
-X4725D03*\r
-X4675Y3950D03*\r
-X2550Y2900D03*\r
-X2650D03*\r
-Y2800D03*\r
-X2500D03*\r
-X2600Y3050D03*\r
-X2450D03*\r
-X2850Y2900D03*\r
-X3000D03*\r
-X2900Y2850D03*\r
-X3100D03*\r
-X2950Y2725D03*\r
-X3225D03*\r
-X1450D03*\r
-X1550Y2850D03*\r
-X1600Y3100D03*\r
-X3000D03*\r
-X1700Y2675D03*\r
-X2800D03*\r
-X1800Y2775D03*\r
-X2750Y2800D03*\r
-X1900Y3050D03*\r
-X2700D03*\r
-X2000Y1550D03*\r
-X2700D03*\r
-G54D21*X3225Y1650D03*\r
-G54D14*X3500Y1600D03*\r
-X2025Y1275D03*\r
-X2200D03*\r
-X2575Y1600D03*\r
-X2100D03*\r
-X2575Y2125D03*\r
-G54D21*X2200Y1850D03*\r
-X2400D03*\r
-G54D14*X3000Y1975D03*\r
-X2150D03*\r
-X3100Y1925D03*\r
-X2250D03*\r
-Y2150D03*\r
-X3150Y2175D03*\r
-X1500Y2225D03*\r
-X3250D03*\r
-X2350D03*\r
-X3600Y1575D03*\r
-X2925Y1875D03*\r
-X1700Y1925D03*\r
-X2100Y1800D03*\r
-X3900Y1850D03*\r
-X2575Y1325D03*\r
-X3850D03*\r
-X1550Y1275D03*\r
-X3400D03*\r
-X2300Y2275D03*\r
-X2450D03*\r
-X2275Y3200D03*\r
-X2550D03*\r
-X2500Y2375D03*\r
-X1900Y2350D03*\r
-X1800Y2400D03*\r
-X4300Y2125D03*\r
-G54D21*X3325Y1400D03*\r
-G54D14*X2900Y1450D03*\r
-X4800D03*\r
-G54D21*X4700Y1200D03*\r
-G54D14*X4625Y1275D03*\r
-X3000Y2325D03*\r
-X4850D03*\r
-X3050Y3250D03*\r
-X2750D03*\r
-X3300Y3300D03*\r
-X2850D03*\r
-X3500Y1900D03*\r
-X3650D03*\r
-X3550Y250D03*\r
-G54D21*X2975Y575D03*\r
-G54D14*X3750Y500D03*\r
-X1075Y2625D03*\r
-X1220Y2495D03*\r
-X4500Y2275D03*\r
-X2625Y575D03*\r
-X3275D03*\r
-X4000Y1850D03*\r
-X4050Y1950D03*\r
-X4100Y2050D03*\r
-X1050Y1400D03*\r
-X4150Y1375D03*\r
-X4025Y1600D03*\r
-X2225Y1000D03*\r
-X4025D03*\r
-X5200Y1500D03*\r
-Y725D03*\r
-X2100Y875D03*\r
-X5700D03*\r
-Y1650D03*\r
-X5300Y825D03*\r
-X2825Y800D03*\r
-X3275Y1050D03*\r
-X495Y800D03*\r
-G54D21*X1300Y1550D03*\r
-G54D14*X765Y1530D03*\r
-X905Y1045D03*\r
-G54D21*X5925Y500D03*\r
-X4050Y675D03*\r
-D02*\r
-M02*\r
+++ /dev/null
-G04 Title: (unknown), layergroup #3 *\r
-G04 Creator: pcb 1.6.3 *\r
-G04 CreationDate: Mon Mar 31 19:59:34 2003 UTC *\r
-G04 For: fetter *\r
-G04 Format: Gerber/RS-274X *\r
-G04 PCB-Dimensions: 7100 4100 *\r
-G04 PCB-Coordinate-Origin: lower left *\r
-G04 Color: R0 G0 B0 *\r
-*\r
-%FSLAX23Y23*%\r
-%MOIN*%\r
-%ADD11C,0.010*%\r
-%ADD12C,0.025*%\r
-%ADD13C,0.045*%\r
-%ADD14C,0.040*%\r
-%ADD15C,0.001*%\r
-%ADD16C,0.120*%\r
-%ADD17C,0.150*%\r
-%ADD18C,0.020*%\r
-%ADD19R,0.060X0.060*%\r
-%ADD20R,0.090X0.090*%\r
-%ADD21C,0.060*%\r
-%ADD22C,0.090*%\r
-%ADD23C,0.008*%\r
-%ADD24C,0.080*%\r
-%ADD25C,0.110*%\r
-%ADD26C,0.148*%\r
-%ADD27C,0.178*%\r
-%ADD28R,0.080X0.080*%\r
-%ADD29R,0.110X0.110*%\r
-%ADD30R,0.070X0.070*%\r
-%ADD31R,0.100X0.100*%\r
-%ADD32C,0.070*%\r
-%ADD33C,0.100*%\r
-%ADD34C,0.016*%\r
-%ADD35C,0.015*%\r
-%IPPOS*%\r
-G01*\r
-G54D16*X575Y3825D03*\r
-Y338D03*\r
-X6625Y3825D03*\r
-Y338D03*\r
-G54D19*X1155Y1045D03*\r
-G54D21*X755D03*\r
-G54D19*X1725Y375D03*\r
-G54D21*X1825D03*\r
-X1925D03*\r
-X2025D03*\r
-X2125D03*\r
-X2225D03*\r
-X2325D03*\r
-X2425D03*\r
-X2525D03*\r
-X2625D03*\r
-X2725D03*\r
-X2825D03*\r
-Y675D03*\r
-X2725D03*\r
-X2625D03*\r
-X2525D03*\r
-X2425D03*\r
-X2325D03*\r
-X2225D03*\r
-X2125D03*\r
-X2025D03*\r
-X1925D03*\r
-X1825D03*\r
-X1725D03*\r
-G54D19*X1375Y375D03*\r
-G54D21*X1275D03*\r
-G54D19*X5400Y2475D03*\r
-G54D21*X5350Y2575D03*\r
-X5300Y2475D03*\r
-X5250Y2575D03*\r
-X5200Y2475D03*\r
-X5150Y2575D03*\r
-X5100Y2475D03*\r
-X5050Y2575D03*\r
-X5000Y2475D03*\r
-X4950Y2575D03*\r
-X4900Y2475D03*\r
-X4850Y2575D03*\r
-X4800Y2475D03*\r
-X4750Y2575D03*\r
-X4700Y2475D03*\r
-X4650Y2575D03*\r
-X4600Y2475D03*\r
-X4550Y2575D03*\r
-X4500Y2475D03*\r
-X4450Y2575D03*\r
-X4400Y2475D03*\r
-X4350Y2575D03*\r
-X4300Y2475D03*\r
-X4250Y2575D03*\r
-X4200Y2475D03*\r
-X4150Y2575D03*\r
-X4100Y2475D03*\r
-X4050Y2575D03*\r
-X4000Y2475D03*\r
-X3950Y2575D03*\r
-X3900Y2475D03*\r
-X3850Y2575D03*\r
-X3800Y2475D03*\r
-X3750Y2575D03*\r
-X3700Y2475D03*\r
-X3650Y2575D03*\r
-X3400Y2475D03*\r
-X3350Y2575D03*\r
-X3300Y2475D03*\r
-X3250Y2575D03*\r
-X3200Y2475D03*\r
-X3150Y2575D03*\r
-X3100Y2475D03*\r
-X3050Y2575D03*\r
-X3000Y2475D03*\r
-X2950Y2575D03*\r
-X2900Y2475D03*\r
-X2850Y2575D03*\r
-X2800Y2475D03*\r
-X2750Y2575D03*\r
-X2700Y2475D03*\r
-X2650Y2575D03*\r
-X2600Y2475D03*\r
-X2550Y2575D03*\r
-X2500Y2475D03*\r
-X2450Y2575D03*\r
-X2400Y2475D03*\r
-X2350Y2575D03*\r
-X2300Y2475D03*\r
-X2250Y2575D03*\r
-X2200Y2475D03*\r
-X2150Y2575D03*\r
-X2100Y2475D03*\r
-X2050Y2575D03*\r
-X2000Y2475D03*\r
-X1950Y2575D03*\r
-X1900Y2475D03*\r
-X1850Y2575D03*\r
-X1800Y2475D03*\r
-X1750Y2575D03*\r
-X1700Y2475D03*\r
-X1650Y2575D03*\r
-G54D24*X5730Y2525D03*\r
-G54D16*X3525D03*\r
-X1325D03*\r
-G54D19*X1375Y675D03*\r
-G54D21*X1275D03*\r
-G54D19*X3175D03*\r
-G54D21*X3275D03*\r
-G54D19*X3600Y1200D03*\r
-G54D21*X3700D03*\r
-X3800D03*\r
-X3900D03*\r
-Y1500D03*\r
-X3800D03*\r
-X3700D03*\r
-X3600D03*\r
-G54D19*X875Y3525D03*\r
-G54D21*X975Y3475D03*\r
-X875Y3425D03*\r
-X975Y3375D03*\r
-X875Y3325D03*\r
-X975Y3275D03*\r
-X875Y3225D03*\r
-X975Y3175D03*\r
-G54D26*X625Y3575D03*\r
-Y3124D03*\r
-G54D24*X745Y3655D03*\r
-Y3044D03*\r
-G54D19*X3225Y1200D03*\r
-G54D21*X3325D03*\r
-G54D19*X5775Y3525D03*\r
-G54D21*X5875D03*\r
-X5975D03*\r
-X6075D03*\r
-Y3825D03*\r
-X5975D03*\r
-X5875D03*\r
-X5775D03*\r
-G54D28*X5825Y2000D03*\r
-G54D24*X5925D03*\r
-X6025D03*\r
-G54D19*X5775Y2925D03*\r
-G54D21*X5875D03*\r
-X5975D03*\r
-X6075D03*\r
-Y3225D03*\r
-X5975D03*\r
-X5875D03*\r
-X5775D03*\r
-G54D19*X5625Y2225D03*\r
-G54D21*X5925D03*\r
-G54D28*X5825Y1175D03*\r
-G54D24*X5925D03*\r
-X6025D03*\r
-G54D30*X550Y1405D03*\r
-G54D32*Y1228D03*\r
-X648Y1454D03*\r
-Y1178D03*\r
-G54D19*X4750Y800D03*\r
-G54D21*X4900D03*\r
-G54D19*X3000Y1125D03*\r
-G54D21*Y1525D03*\r
-G54D19*X4475Y3475D03*\r
-G54D21*Y3875D03*\r
-G54D19*X3325Y1500D03*\r
-G54D21*X3225D03*\r
-G54D19*X6525Y3625D03*\r
-G54D21*Y3525D03*\r
-Y3425D03*\r
-Y3325D03*\r
-Y3225D03*\r
-Y3125D03*\r
-Y3025D03*\r
-Y2925D03*\r
-Y2825D03*\r
-Y2725D03*\r
-Y2625D03*\r
-Y2525D03*\r
-Y2425D03*\r
-Y2325D03*\r
-Y2225D03*\r
-Y2125D03*\r
-Y2025D03*\r
-Y1925D03*\r
-Y1825D03*\r
-Y1725D03*\r
-Y1625D03*\r
-Y1525D03*\r
-Y1425D03*\r
-Y1325D03*\r
-Y1225D03*\r
-Y1125D03*\r
-Y1025D03*\r
-Y925D03*\r
-Y825D03*\r
-Y725D03*\r
-Y625D03*\r
-Y525D03*\r
-X6425Y3625D03*\r
-Y3525D03*\r
-Y3425D03*\r
-Y3325D03*\r
-Y3225D03*\r
-Y3125D03*\r
-Y3025D03*\r
-Y2925D03*\r
-Y2825D03*\r
-Y2725D03*\r
-Y2625D03*\r
-Y2525D03*\r
-Y2425D03*\r
-Y2325D03*\r
-Y2225D03*\r
-Y2125D03*\r
-Y2025D03*\r
-Y1925D03*\r
-Y1825D03*\r
-Y1725D03*\r
-Y1625D03*\r
-Y1525D03*\r
-Y1425D03*\r
-Y1325D03*\r
-Y1225D03*\r
-Y1125D03*\r
-Y1025D03*\r
-Y925D03*\r
-Y825D03*\r
-Y725D03*\r
-Y625D03*\r
-Y525D03*\r
-X6325Y3625D03*\r
-Y3525D03*\r
-Y3425D03*\r
-Y3325D03*\r
-Y3225D03*\r
-Y3125D03*\r
-Y3025D03*\r
-Y2925D03*\r
-Y2825D03*\r
-Y2725D03*\r
-Y2625D03*\r
-Y2525D03*\r
-Y2425D03*\r
-Y2325D03*\r
-Y2225D03*\r
-Y2125D03*\r
-Y2025D03*\r
-Y1925D03*\r
-Y1825D03*\r
-Y1725D03*\r
-Y1625D03*\r
-Y1525D03*\r
-Y1425D03*\r
-Y1325D03*\r
-Y1225D03*\r
-Y1125D03*\r
-Y1025D03*\r
-Y925D03*\r
-Y825D03*\r
-Y725D03*\r
-Y625D03*\r
-Y525D03*\r
-G54D16*X6625Y325D03*\r
-Y3825D03*\r
-G54D28*X5300Y1175D03*\r
-G54D24*X5400D03*\r
-X5500D03*\r
-G54D19*X4900Y400D03*\r
-G54D21*X4750D03*\r
-G54D19*X1160Y1300D03*\r
-G54D21*X760D03*\r
-G54D19*X2800Y1525D03*\r
-G54D21*Y1125D03*\r
-G54D28*X5700Y500D03*\r
-G54D24*X5600D03*\r
-X5500D03*\r
-G54D30*X4950Y1325D03*\r
-G54D32*X4700D03*\r
-G54D19*X1725Y900D03*\r
-G54D21*X1825D03*\r
-X1925D03*\r
-X2025D03*\r
-Y1200D03*\r
-X1925D03*\r
-X1825D03*\r
-X1725D03*\r
-G54D30*X1050Y800D03*\r
-G54D32*X1150D03*\r
-G54D19*X3550Y3475D03*\r
-G54D21*Y3875D03*\r
-G54D19*X5350Y2000D03*\r
-G54D21*X5450D03*\r
-G54D28*X5825Y1650D03*\r
-G54D24*X5925D03*\r
-X6025D03*\r
-G54D19*X850Y800D03*\r
-G54D21*Y500D03*\r
-G54D30*X4950Y1900D03*\r
-G54D32*X4700D03*\r
-G54D19*X815Y1705D03*\r
-G54D21*Y1605D03*\r
-G54D16*X775Y2860D03*\r
-Y1920D03*\r
-G54D32*X825Y2590D03*\r
-X725Y2540D03*\r
-X825Y2490D03*\r
-X725Y2440D03*\r
-X825Y2390D03*\r
-X725Y2340D03*\r
-X825Y2290D03*\r
-X725Y2240D03*\r
-G54D30*X825Y2190D03*\r
-G54D19*X2800Y1750D03*\r
-G54D21*X2900D03*\r
-X3000D03*\r
-X3100D03*\r
-X3200D03*\r
-X3300D03*\r
-X3400D03*\r
-X3500D03*\r
-X3600D03*\r
-X3700D03*\r
-X3800D03*\r
-X3900D03*\r
-Y2050D03*\r
-X3800D03*\r
-X3700D03*\r
-X3600D03*\r
-X3500D03*\r
-X3400D03*\r
-X3300D03*\r
-X3200D03*\r
-X3100D03*\r
-X3000D03*\r
-X2900D03*\r
-X2800D03*\r
-G54D19*X1400Y1450D03*\r
-G54D21*X1500D03*\r
-X1600D03*\r
-X1700D03*\r
-X1800D03*\r
-X1900D03*\r
-X2000D03*\r
-X2100D03*\r
-X2200D03*\r
-X2300D03*\r
-X2400D03*\r
-X2500D03*\r
-Y2050D03*\r
-X2400D03*\r
-X2300D03*\r
-X2200D03*\r
-X2100D03*\r
-X2000D03*\r
-X1900D03*\r
-X1800D03*\r
-X1700D03*\r
-X1600D03*\r
-X1500D03*\r
-X1400D03*\r
-G54D30*X4200D03*\r
-G54D32*X4300D03*\r
-X4200Y1950D03*\r
-X4300D03*\r
-X4200Y1850D03*\r
-X4300D03*\r
-X4200Y1750D03*\r
-X4300D03*\r
-G54D19*X3175Y375D03*\r
-G54D21*X3275D03*\r
-G54D19*X2450Y3525D03*\r
-G54D21*X2550D03*\r
-X2650D03*\r
-X2750D03*\r
-X2850D03*\r
-X2950D03*\r
-X3050D03*\r
-X3150D03*\r
-Y3825D03*\r
-X3050D03*\r
-X2950D03*\r
-X2850D03*\r
-X2750D03*\r
-X2650D03*\r
-X2550D03*\r
-X2450D03*\r
-G54D28*X5300Y1650D03*\r
-G54D24*X5400D03*\r
-X5500D03*\r
-G54D19*X575Y1705D03*\r
-G54D21*Y1605D03*\r
-G54D19*X1575Y675D03*\r
-G54D21*Y375D03*\r
-G54D19*X5575Y3475D03*\r
-G54D21*Y3875D03*\r
-G54D19*X3975Y3525D03*\r
-G54D21*X4075D03*\r
-X4175D03*\r
-X4275D03*\r
-Y3825D03*\r
-X4175D03*\r
-X4075D03*\r
-X3975D03*\r
-G54D19*X4875Y2925D03*\r
-G54D21*X4975D03*\r
-X5075D03*\r
-X5175D03*\r
-Y3225D03*\r
-X5075D03*\r
-X4975D03*\r
-X4875D03*\r
-G54D19*X5375Y2875D03*\r
-G54D21*Y3275D03*\r
-G54D19*X4675Y2875D03*\r
-G54D21*Y3275D03*\r
-G54D19*Y3475D03*\r
-G54D21*Y3875D03*\r
-G54D19*X4875Y3525D03*\r
-G54D21*X4975D03*\r
-X5075D03*\r
-X5175D03*\r
-Y3825D03*\r
-X5075D03*\r
-X4975D03*\r
-X4875D03*\r
-G54D19*X5375Y3475D03*\r
-G54D21*Y3875D03*\r
-G54D19*X5575Y2875D03*\r
-G54D21*Y3275D03*\r
-G54D19*X3975Y2925D03*\r
-G54D21*X4075D03*\r
-X4175D03*\r
-X4275D03*\r
-Y3225D03*\r
-X4175D03*\r
-X4075D03*\r
-X3975D03*\r
-G54D19*X4475Y2875D03*\r
-G54D21*Y3275D03*\r
-G54D28*X4150Y500D03*\r
-G54D24*X4050D03*\r
-X3950D03*\r
-G54D19*X2975Y675D03*\r
-G54D21*Y375D03*\r
-G54D19*X3350Y3475D03*\r
-G54D21*Y3875D03*\r
-X4750Y675D03*\r
-X4900D03*\r
-X5600D03*\r
-X6025Y1500D03*\r
-X5400D03*\r
-Y1025D03*\r
-X6025D03*\r
-X5925Y1325D03*\r
-X6125Y1225D03*\r
-X5400Y825D03*\r
-X3950Y925D03*\r
-X4750D03*\r
-X6225Y675D03*\r
-X6125Y1425D03*\r
-X5925Y1875D03*\r
-X4625Y675D03*\r
-X5625Y1900D03*\r
-X6225Y3075D03*\r
-X6475D03*\r
-X5675Y3025D03*\r
-X5975Y3625D03*\r
-X5375D03*\r
-X4875D03*\r
-X5175Y3700D03*\r
-X5775D03*\r
-X4025Y3375D03*\r
-X4875D03*\r
-X5375D03*\r
-X5925D03*\r
-X4975Y3150D03*\r
-X1400D03*\r
-X1750D03*\r
-X2375D03*\r
-X3225Y925D03*\r
-X3275Y175D03*\r
-X2400Y1650D03*\r
-X2700D03*\r
-X1400D03*\r
-X1300Y1300D03*\r
-Y1200D03*\r
-G54D14*X2525Y1225D03*\r
-G54D21*X4275Y3100D03*\r
-X5250D03*\r
-X3150D03*\r
-X4475Y3150D03*\r
-X2025Y1050D03*\r
-X1275Y175D03*\r
-X2125D03*\r
-X2725D03*\r
-X3600Y925D03*\r
-X775Y175D03*\r
-G54D14*X4875Y3025D03*\r
-X6200Y3575D03*\r
-X6225Y3225D03*\r
-X5375Y3025D03*\r
-X6375Y2375D03*\r
-X2625D03*\r
-X5975Y3450D03*\r
-G54D21*X4075Y3625D03*\r
-G54D14*X2050Y3275D03*\r
-X4025Y1750D03*\r
-X2950Y2800D03*\r
-X3350Y3575D03*\r
-X5275Y3875D03*\r
-X6150Y3950D03*\r
-X4775Y3525D03*\r
-X6225Y3750D03*\r
-X6475Y3900D03*\r
-X5575Y3950D03*\r
-X5025D03*\r
-X5475Y2675D03*\r
-X6100D03*\r
-X6150Y2800D03*\r
-X5550Y2750D03*\r
-X1950Y3525D03*\r
-X2425Y500D03*\r
-X2100Y3425D03*\r
-X1150Y2975D03*\r
-X5075Y3025D03*\r
-X4175Y2750D03*\r
-X2000Y3475D03*\r
-X5125Y3300D03*\r
-X5575Y1725D03*\r
-X4475Y3800D03*\r
-X3550Y2800D03*\r
-G54D21*X2725Y575D03*\r
-G54D14*X950Y1650D03*\r
-X1150D03*\r
-X5825Y1250D03*\r
-X1100Y425D03*\r
-X1825Y250D03*\r
-X2525D03*\r
-G54D21*X2125Y575D03*\r
-X2325D03*\r
-G54D14*X1925Y500D03*\r
-X4175Y3025D03*\r
-X4475D03*\r
-X4725D03*\r
-X4675Y3950D03*\r
-X2550Y2900D03*\r
-X2650D03*\r
-Y2800D03*\r
-X2500D03*\r
-X2600Y3050D03*\r
-X2450D03*\r
-X2850Y2900D03*\r
-X3000D03*\r
-X2900Y2850D03*\r
-X3100D03*\r
-X2950Y2725D03*\r
-X3225D03*\r
-X1450D03*\r
-X1550Y2850D03*\r
-X1600Y3100D03*\r
-X3000D03*\r
-X1700Y2675D03*\r
-X2800D03*\r
-X1800Y2775D03*\r
-X2750Y2800D03*\r
-X1900Y3050D03*\r
-X2700D03*\r
-X2000Y1550D03*\r
-X2700D03*\r
-G54D21*X3225Y1650D03*\r
-G54D14*X3500Y1600D03*\r
-X2025Y1275D03*\r
-X2200D03*\r
-X2575Y1600D03*\r
-X2100D03*\r
-X2575Y2125D03*\r
-G54D21*X2200Y1850D03*\r
-X2400D03*\r
-G54D14*X3000Y1975D03*\r
-X2150D03*\r
-X3100Y1925D03*\r
-X2250D03*\r
-Y2150D03*\r
-X3150Y2175D03*\r
-X1500Y2225D03*\r
-X3250D03*\r
-X2350D03*\r
-X3600Y1575D03*\r
-X2925Y1875D03*\r
-X1700Y1925D03*\r
-X2100Y1800D03*\r
-X3900Y1850D03*\r
-X2575Y1325D03*\r
-X3850D03*\r
-X1550Y1275D03*\r
-X3400D03*\r
-X2300Y2275D03*\r
-X2450D03*\r
-X2275Y3200D03*\r
-X2550D03*\r
-X2500Y2375D03*\r
-X1900Y2350D03*\r
-X1800Y2400D03*\r
-X4300Y2125D03*\r
-G54D21*X3325Y1400D03*\r
-G54D14*X2900Y1450D03*\r
-X4800D03*\r
-G54D21*X4700Y1200D03*\r
-G54D14*X4625Y1275D03*\r
-X3000Y2325D03*\r
-X4850D03*\r
-X3050Y3250D03*\r
-X2750D03*\r
-X3300Y3300D03*\r
-X2850D03*\r
-X3500Y1900D03*\r
-X3650D03*\r
-X3550Y250D03*\r
-G54D21*X2975Y575D03*\r
-G54D14*X3750Y500D03*\r
-X1075Y2625D03*\r
-X1220Y2495D03*\r
-X4500Y2275D03*\r
-X2625Y575D03*\r
-X3275D03*\r
-X4000Y1850D03*\r
-X4050Y1950D03*\r
-X4100Y2050D03*\r
-X1050Y1400D03*\r
-X4150Y1375D03*\r
-X4025Y1600D03*\r
-X2225Y1000D03*\r
-X4025D03*\r
-X5200Y1500D03*\r
-Y725D03*\r
-X2100Y875D03*\r
-X5700D03*\r
-Y1650D03*\r
-X5300Y825D03*\r
-X2825Y800D03*\r
-X3275Y1050D03*\r
-X495Y800D03*\r
-G54D21*X1300Y1550D03*\r
-G54D14*X765Y1530D03*\r
-X905Y1045D03*\r
-G54D21*X5925Y500D03*\r
-X4050Y675D03*\r
-D02*\r
-M02*\r
+++ /dev/null
-G04 Title: (unknown), layergroup #4 *\r
-G04 Creator: pcb 1.6.3 *\r
-G04 CreationDate: Mon Mar 31 19:59:34 2003 UTC *\r
-G04 For: fetter *\r
-G04 Format: Gerber/RS-274X *\r
-G04 PCB-Dimensions: 7100 4100 *\r
-G04 PCB-Coordinate-Origin: lower left *\r
-G04 Color: R0 G0 B0 *\r
-*\r
-%FSLAX23Y23*%\r
-%MOIN*%\r
-%ADD11C,0.010*%\r
-%ADD12C,0.025*%\r
-%ADD13C,0.045*%\r
-%ADD14C,0.040*%\r
-%ADD15C,0.001*%\r
-%ADD16C,0.120*%\r
-%ADD17C,0.150*%\r
-%ADD18C,0.020*%\r
-%ADD19R,0.060X0.060*%\r
-%ADD20R,0.090X0.090*%\r
-%ADD21C,0.060*%\r
-%ADD22C,0.090*%\r
-%ADD23C,0.008*%\r
-%ADD24C,0.080*%\r
-%ADD25C,0.110*%\r
-%ADD26C,0.148*%\r
-%ADD27C,0.178*%\r
-%ADD28R,0.080X0.080*%\r
-%ADD29R,0.110X0.110*%\r
-%ADD30R,0.070X0.070*%\r
-%ADD31R,0.100X0.100*%\r
-%ADD32C,0.070*%\r
-%ADD33C,0.100*%\r
-%ADD34C,0.016*%\r
-%ADD35C,0.015*%\r
-%IPPOS*%\r
-G01*\r
-G54D16*X575Y3825D03*\r
-Y338D03*\r
-X6625Y3825D03*\r
-Y338D03*\r
-G54D19*X1155Y1045D03*\r
-G54D21*X755D03*\r
-G54D19*X1725Y375D03*\r
-G54D21*X1825D03*\r
-X1925D03*\r
-X2025D03*\r
-X2125D03*\r
-X2225D03*\r
-X2325D03*\r
-X2425D03*\r
-X2525D03*\r
-X2625D03*\r
-X2725D03*\r
-X2825D03*\r
-Y675D03*\r
-X2725D03*\r
-X2625D03*\r
-X2525D03*\r
-X2425D03*\r
-X2325D03*\r
-X2225D03*\r
-X2125D03*\r
-X2025D03*\r
-X1925D03*\r
-X1825D03*\r
-X1725D03*\r
-G54D19*X1375Y375D03*\r
-G54D21*X1275D03*\r
-G54D19*X5400Y2475D03*\r
-G54D21*X5350Y2575D03*\r
-X5300Y2475D03*\r
-X5250Y2575D03*\r
-X5200Y2475D03*\r
-X5150Y2575D03*\r
-X5100Y2475D03*\r
-X5050Y2575D03*\r
-X5000Y2475D03*\r
-X4950Y2575D03*\r
-X4900Y2475D03*\r
-X4850Y2575D03*\r
-X4800Y2475D03*\r
-X4750Y2575D03*\r
-X4700Y2475D03*\r
-X4650Y2575D03*\r
-X4600Y2475D03*\r
-X4550Y2575D03*\r
-X4500Y2475D03*\r
-X4450Y2575D03*\r
-X4400Y2475D03*\r
-X4350Y2575D03*\r
-X4300Y2475D03*\r
-X4250Y2575D03*\r
-X4200Y2475D03*\r
-X4150Y2575D03*\r
-X4100Y2475D03*\r
-X4050Y2575D03*\r
-X4000Y2475D03*\r
-X3950Y2575D03*\r
-X3900Y2475D03*\r
-X3850Y2575D03*\r
-X3800Y2475D03*\r
-X3750Y2575D03*\r
-X3700Y2475D03*\r
-X3650Y2575D03*\r
-X3400Y2475D03*\r
-X3350Y2575D03*\r
-X3300Y2475D03*\r
-X3250Y2575D03*\r
-X3200Y2475D03*\r
-X3150Y2575D03*\r
-X3100Y2475D03*\r
-X3050Y2575D03*\r
-X3000Y2475D03*\r
-X2950Y2575D03*\r
-X2900Y2475D03*\r
-X2850Y2575D03*\r
-X2800Y2475D03*\r
-X2750Y2575D03*\r
-X2700Y2475D03*\r
-X2650Y2575D03*\r
-X2600Y2475D03*\r
-X2550Y2575D03*\r
-X2500Y2475D03*\r
-X2450Y2575D03*\r
-X2400Y2475D03*\r
-X2350Y2575D03*\r
-X2300Y2475D03*\r
-X2250Y2575D03*\r
-X2200Y2475D03*\r
-X2150Y2575D03*\r
-X2100Y2475D03*\r
-X2050Y2575D03*\r
-X2000Y2475D03*\r
-X1950Y2575D03*\r
-X1900Y2475D03*\r
-X1850Y2575D03*\r
-X1800Y2475D03*\r
-X1750Y2575D03*\r
-X1700Y2475D03*\r
-X1650Y2575D03*\r
-G54D24*X5730Y2525D03*\r
-G54D16*X3525D03*\r
-X1325D03*\r
-G54D19*X1375Y675D03*\r
-G54D21*X1275D03*\r
-G54D19*X3175D03*\r
-G54D21*X3275D03*\r
-G54D19*X3600Y1200D03*\r
-G54D21*X3700D03*\r
-X3800D03*\r
-X3900D03*\r
-Y1500D03*\r
-X3800D03*\r
-X3700D03*\r
-X3600D03*\r
-G54D19*X875Y3525D03*\r
-G54D21*X975Y3475D03*\r
-X875Y3425D03*\r
-X975Y3375D03*\r
-X875Y3325D03*\r
-X975Y3275D03*\r
-X875Y3225D03*\r
-X975Y3175D03*\r
-G54D26*X625Y3575D03*\r
-Y3124D03*\r
-G54D24*X745Y3655D03*\r
-Y3044D03*\r
-G54D19*X3225Y1200D03*\r
-G54D21*X3325D03*\r
-G54D19*X5775Y3525D03*\r
-G54D21*X5875D03*\r
-X5975D03*\r
-X6075D03*\r
-Y3825D03*\r
-X5975D03*\r
-X5875D03*\r
-X5775D03*\r
-G54D28*X5825Y2000D03*\r
-G54D24*X5925D03*\r
-X6025D03*\r
-G54D19*X5775Y2925D03*\r
-G54D21*X5875D03*\r
-X5975D03*\r
-X6075D03*\r
-Y3225D03*\r
-X5975D03*\r
-X5875D03*\r
-X5775D03*\r
-G54D19*X5625Y2225D03*\r
-G54D21*X5925D03*\r
-G54D28*X5825Y1175D03*\r
-G54D24*X5925D03*\r
-X6025D03*\r
-G54D30*X550Y1405D03*\r
-G54D32*Y1228D03*\r
-X648Y1454D03*\r
-Y1178D03*\r
-G54D19*X4750Y800D03*\r
-G54D21*X4900D03*\r
-G54D19*X3000Y1125D03*\r
-G54D21*Y1525D03*\r
-G54D19*X4475Y3475D03*\r
-G54D21*Y3875D03*\r
-G54D19*X3325Y1500D03*\r
-G54D21*X3225D03*\r
-G54D19*X6525Y3625D03*\r
-G54D21*Y3525D03*\r
-Y3425D03*\r
-Y3325D03*\r
-Y3225D03*\r
-Y3125D03*\r
-Y3025D03*\r
-Y2925D03*\r
-Y2825D03*\r
-Y2725D03*\r
-Y2625D03*\r
-Y2525D03*\r
-Y2425D03*\r
-Y2325D03*\r
-Y2225D03*\r
-Y2125D03*\r
-Y2025D03*\r
-Y1925D03*\r
-Y1825D03*\r
-Y1725D03*\r
-Y1625D03*\r
-Y1525D03*\r
-Y1425D03*\r
-Y1325D03*\r
-Y1225D03*\r
-Y1125D03*\r
-Y1025D03*\r
-Y925D03*\r
-Y825D03*\r
-Y725D03*\r
-Y625D03*\r
-Y525D03*\r
-X6425Y3625D03*\r
-Y3525D03*\r
-Y3425D03*\r
-Y3325D03*\r
-Y3225D03*\r
-Y3125D03*\r
-Y3025D03*\r
-Y2925D03*\r
-Y2825D03*\r
-Y2725D03*\r
-Y2625D03*\r
-Y2525D03*\r
-Y2425D03*\r
-Y2325D03*\r
-Y2225D03*\r
-Y2125D03*\r
-Y2025D03*\r
-Y1925D03*\r
-Y1825D03*\r
-Y1725D03*\r
-Y1625D03*\r
-Y1525D03*\r
-Y1425D03*\r
-Y1325D03*\r
-Y1225D03*\r
-Y1125D03*\r
-Y1025D03*\r
-Y925D03*\r
-Y825D03*\r
-Y725D03*\r
-Y625D03*\r
-Y525D03*\r
-X6325Y3625D03*\r
-Y3525D03*\r
-Y3425D03*\r
-Y3325D03*\r
-Y3225D03*\r
-Y3125D03*\r
-Y3025D03*\r
-Y2925D03*\r
-Y2825D03*\r
-Y2725D03*\r
-Y2625D03*\r
-Y2525D03*\r
-Y2425D03*\r
-Y2325D03*\r
-Y2225D03*\r
-Y2125D03*\r
-Y2025D03*\r
-Y1925D03*\r
-Y1825D03*\r
-Y1725D03*\r
-Y1625D03*\r
-Y1525D03*\r
-Y1425D03*\r
-Y1325D03*\r
-Y1225D03*\r
-Y1125D03*\r
-Y1025D03*\r
-Y925D03*\r
-Y825D03*\r
-Y725D03*\r
-Y625D03*\r
-Y525D03*\r
-G54D16*X6625Y325D03*\r
-Y3825D03*\r
-G54D28*X5300Y1175D03*\r
-G54D24*X5400D03*\r
-X5500D03*\r
-G54D19*X4900Y400D03*\r
-G54D21*X4750D03*\r
-G54D19*X1160Y1300D03*\r
-G54D21*X760D03*\r
-G54D19*X2800Y1525D03*\r
-G54D21*Y1125D03*\r
-G54D28*X5700Y500D03*\r
-G54D24*X5600D03*\r
-X5500D03*\r
-G54D30*X4950Y1325D03*\r
-G54D32*X4700D03*\r
-G54D19*X1725Y900D03*\r
-G54D21*X1825D03*\r
-X1925D03*\r
-X2025D03*\r
-Y1200D03*\r
-X1925D03*\r
-X1825D03*\r
-X1725D03*\r
-G54D30*X1050Y800D03*\r
-G54D32*X1150D03*\r
-G54D19*X3550Y3475D03*\r
-G54D21*Y3875D03*\r
-G54D19*X5350Y2000D03*\r
-G54D21*X5450D03*\r
-G54D28*X5825Y1650D03*\r
-G54D24*X5925D03*\r
-X6025D03*\r
-G54D19*X850Y800D03*\r
-G54D21*Y500D03*\r
-G54D30*X4950Y1900D03*\r
-G54D32*X4700D03*\r
-G54D19*X815Y1705D03*\r
-G54D21*Y1605D03*\r
-G54D16*X775Y2860D03*\r
-Y1920D03*\r
-G54D32*X825Y2590D03*\r
-X725Y2540D03*\r
-X825Y2490D03*\r
-X725Y2440D03*\r
-X825Y2390D03*\r
-X725Y2340D03*\r
-X825Y2290D03*\r
-X725Y2240D03*\r
-G54D30*X825Y2190D03*\r
-G54D19*X2800Y1750D03*\r
-G54D21*X2900D03*\r
-X3000D03*\r
-X3100D03*\r
-X3200D03*\r
-X3300D03*\r
-X3400D03*\r
-X3500D03*\r
-X3600D03*\r
-X3700D03*\r
-X3800D03*\r
-X3900D03*\r
-Y2050D03*\r
-X3800D03*\r
-X3700D03*\r
-X3600D03*\r
-X3500D03*\r
-X3400D03*\r
-X3300D03*\r
-X3200D03*\r
-X3100D03*\r
-X3000D03*\r
-X2900D03*\r
-X2800D03*\r
-G54D19*X1400Y1450D03*\r
-G54D21*X1500D03*\r
-X1600D03*\r
-X1700D03*\r
-X1800D03*\r
-X1900D03*\r
-X2000D03*\r
-X2100D03*\r
-X2200D03*\r
-X2300D03*\r
-X2400D03*\r
-X2500D03*\r
-Y2050D03*\r
-X2400D03*\r
-X2300D03*\r
-X2200D03*\r
-X2100D03*\r
-X2000D03*\r
-X1900D03*\r
-X1800D03*\r
-X1700D03*\r
-X1600D03*\r
-X1500D03*\r
-X1400D03*\r
-G54D30*X4200D03*\r
-G54D32*X4300D03*\r
-X4200Y1950D03*\r
-X4300D03*\r
-X4200Y1850D03*\r
-X4300D03*\r
-X4200Y1750D03*\r
-X4300D03*\r
-G54D19*X3175Y375D03*\r
-G54D21*X3275D03*\r
-G54D19*X2450Y3525D03*\r
-G54D21*X2550D03*\r
-X2650D03*\r
-X2750D03*\r
-X2850D03*\r
-X2950D03*\r
-X3050D03*\r
-X3150D03*\r
-Y3825D03*\r
-X3050D03*\r
-X2950D03*\r
-X2850D03*\r
-X2750D03*\r
-X2650D03*\r
-X2550D03*\r
-X2450D03*\r
-G54D28*X5300Y1650D03*\r
-G54D24*X5400D03*\r
-X5500D03*\r
-G54D19*X575Y1705D03*\r
-G54D21*Y1605D03*\r
-G54D19*X1575Y675D03*\r
-G54D21*Y375D03*\r
-G54D19*X5575Y3475D03*\r
-G54D21*Y3875D03*\r
-G54D19*X3975Y3525D03*\r
-G54D21*X4075D03*\r
-X4175D03*\r
-X4275D03*\r
-Y3825D03*\r
-X4175D03*\r
-X4075D03*\r
-X3975D03*\r
-G54D19*X4875Y2925D03*\r
-G54D21*X4975D03*\r
-X5075D03*\r
-X5175D03*\r
-Y3225D03*\r
-X5075D03*\r
-X4975D03*\r
-X4875D03*\r
-G54D19*X5375Y2875D03*\r
-G54D21*Y3275D03*\r
-G54D19*X4675Y2875D03*\r
-G54D21*Y3275D03*\r
-G54D19*Y3475D03*\r
-G54D21*Y3875D03*\r
-G54D19*X4875Y3525D03*\r
-G54D21*X4975D03*\r
-X5075D03*\r
-X5175D03*\r
-Y3825D03*\r
-X5075D03*\r
-X4975D03*\r
-X4875D03*\r
-G54D19*X5375Y3475D03*\r
-G54D21*Y3875D03*\r
-G54D19*X5575Y2875D03*\r
-G54D21*Y3275D03*\r
-G54D19*X3975Y2925D03*\r
-G54D21*X4075D03*\r
-X4175D03*\r
-X4275D03*\r
-Y3225D03*\r
-X4175D03*\r
-X4075D03*\r
-X3975D03*\r
-G54D19*X4475Y2875D03*\r
-G54D21*Y3275D03*\r
-G54D28*X4150Y500D03*\r
-G54D24*X4050D03*\r
-X3950D03*\r
-G54D19*X2975Y675D03*\r
-G54D21*Y375D03*\r
-G54D19*X3350Y3475D03*\r
-G54D21*Y3875D03*\r
-X4750Y675D03*\r
-X4900D03*\r
-X5600D03*\r
-X6025Y1500D03*\r
-X5400D03*\r
-Y1025D03*\r
-X6025D03*\r
-X5925Y1325D03*\r
-X6125Y1225D03*\r
-X5400Y825D03*\r
-X3950Y925D03*\r
-X4750D03*\r
-X6225Y675D03*\r
-X6125Y1425D03*\r
-X5925Y1875D03*\r
-X4625Y675D03*\r
-X5625Y1900D03*\r
-X6225Y3075D03*\r
-X6475D03*\r
-X5675Y3025D03*\r
-X5975Y3625D03*\r
-X5375D03*\r
-X4875D03*\r
-X5175Y3700D03*\r
-X5775D03*\r
-X4025Y3375D03*\r
-X4875D03*\r
-X5375D03*\r
-X5925D03*\r
-X4975Y3150D03*\r
-X1400D03*\r
-X1750D03*\r
-X2375D03*\r
-X3225Y925D03*\r
-X3275Y175D03*\r
-X2400Y1650D03*\r
-X2700D03*\r
-X1400D03*\r
-X1300Y1300D03*\r
-Y1200D03*\r
-G54D14*X2525Y1225D03*\r
-G54D21*X4275Y3100D03*\r
-X5250D03*\r
-X3150D03*\r
-X4475Y3150D03*\r
-X2025Y1050D03*\r
-X1275Y175D03*\r
-X2125D03*\r
-X2725D03*\r
-X3600Y925D03*\r
-X775Y175D03*\r
-G54D14*X4875Y3025D03*\r
-X6200Y3575D03*\r
-X6225Y3225D03*\r
-X5375Y3025D03*\r
-X6375Y2375D03*\r
-X2625D03*\r
-X5975Y3450D03*\r
-G54D21*X4075Y3625D03*\r
-G54D14*X2050Y3275D03*\r
-X4025Y1750D03*\r
-X2950Y2800D03*\r
-X3350Y3575D03*\r
-X5275Y3875D03*\r
-X6150Y3950D03*\r
-X4775Y3525D03*\r
-X6225Y3750D03*\r
-X6475Y3900D03*\r
-X5575Y3950D03*\r
-X5025D03*\r
-X5475Y2675D03*\r
-X6100D03*\r
-X6150Y2800D03*\r
-X5550Y2750D03*\r
-X1950Y3525D03*\r
-X2425Y500D03*\r
-X2100Y3425D03*\r
-X1150Y2975D03*\r
-X5075Y3025D03*\r
-X4175Y2750D03*\r
-X2000Y3475D03*\r
-X5125Y3300D03*\r
-X5575Y1725D03*\r
-X4475Y3800D03*\r
-X3550Y2800D03*\r
-G54D21*X2725Y575D03*\r
-G54D14*X950Y1650D03*\r
-X1150D03*\r
-X5825Y1250D03*\r
-X1100Y425D03*\r
-X1825Y250D03*\r
-X2525D03*\r
-G54D21*X2125Y575D03*\r
-X2325D03*\r
-G54D14*X1925Y500D03*\r
-X4175Y3025D03*\r
-X4475D03*\r
-X4725D03*\r
-X4675Y3950D03*\r
-X2550Y2900D03*\r
-X2650D03*\r
-Y2800D03*\r
-X2500D03*\r
-X2600Y3050D03*\r
-X2450D03*\r
-X2850Y2900D03*\r
-X3000D03*\r
-X2900Y2850D03*\r
-X3100D03*\r
-X2950Y2725D03*\r
-X3225D03*\r
-X1450D03*\r
-X1550Y2850D03*\r
-X1600Y3100D03*\r
-X3000D03*\r
-X1700Y2675D03*\r
-X2800D03*\r
-X1800Y2775D03*\r
-X2750Y2800D03*\r
-X1900Y3050D03*\r
-X2700D03*\r
-X2000Y1550D03*\r
-X2700D03*\r
-G54D21*X3225Y1650D03*\r
-G54D14*X3500Y1600D03*\r
-X2025Y1275D03*\r
-X2200D03*\r
-X2575Y1600D03*\r
-X2100D03*\r
-X2575Y2125D03*\r
-G54D21*X2200Y1850D03*\r
-X2400D03*\r
-G54D14*X3000Y1975D03*\r
-X2150D03*\r
-X3100Y1925D03*\r
-X2250D03*\r
-Y2150D03*\r
-X3150Y2175D03*\r
-X1500Y2225D03*\r
-X3250D03*\r
-X2350D03*\r
-X3600Y1575D03*\r
-X2925Y1875D03*\r
-X1700Y1925D03*\r
-X2100Y1800D03*\r
-X3900Y1850D03*\r
-X2575Y1325D03*\r
-X3850D03*\r
-X1550Y1275D03*\r
-X3400D03*\r
-X2300Y2275D03*\r
-X2450D03*\r
-X2275Y3200D03*\r
-X2550D03*\r
-X2500Y2375D03*\r
-X1900Y2350D03*\r
-X1800Y2400D03*\r
-X4300Y2125D03*\r
-G54D21*X3325Y1400D03*\r
-G54D14*X2900Y1450D03*\r
-X4800D03*\r
-G54D21*X4700Y1200D03*\r
-G54D14*X4625Y1275D03*\r
-X3000Y2325D03*\r
-X4850D03*\r
-X3050Y3250D03*\r
-X2750D03*\r
-X3300Y3300D03*\r
-X2850D03*\r
-X3500Y1900D03*\r
-X3650D03*\r
-X3550Y250D03*\r
-G54D21*X2975Y575D03*\r
-G54D14*X3750Y500D03*\r
-X1075Y2625D03*\r
-X1220Y2495D03*\r
-X4500Y2275D03*\r
-X2625Y575D03*\r
-X3275D03*\r
-X4000Y1850D03*\r
-X4050Y1950D03*\r
-X4100Y2050D03*\r
-X1050Y1400D03*\r
-X4150Y1375D03*\r
-X4025Y1600D03*\r
-X2225Y1000D03*\r
-X4025D03*\r
-X5200Y1500D03*\r
-Y725D03*\r
-X2100Y875D03*\r
-X5700D03*\r
-Y1650D03*\r
-X5300Y825D03*\r
-X2825Y800D03*\r
-X3275Y1050D03*\r
-X495Y800D03*\r
-G54D21*X1300Y1550D03*\r
-G54D14*X765Y1530D03*\r
-X905Y1045D03*\r
-G54D21*X5925Y500D03*\r
-X4050Y675D03*\r
-D02*\r
-M02*\r
+++ /dev/null
-# release: pcb 1.6.3
-# date: Sun Feb 2 23:20:13 2003
-# user: fetter (Walter Fetter Lages,,,)
-# host: diehard.home
-
-PCB("" 7000 4100)
-
-Grid(25 0 0)
-Cursor(25 125 3)
-Flags(0x000000d0)
-Groups("1,2,3,s:4,5,6,c:7:8:")
-Styles("Signal,10,40,20:Power,25,60,35:Fat,40,60,35:Skinny,8,36,20")
-
-Symbol(' ' 18)
-(
-)
-Symbol('!' 12)
-(
- SymbolLine(0 35 0 40 8)
- SymbolLine(0 0 0 25 8)
-)
-Symbol('"' 12)
-(
- SymbolLine(0 0 0 10 8)
- SymbolLine(10 0 10 10 8)
-)
-Symbol('#' 12)
-(
- SymbolLine(0 25 20 25 8)
- SymbolLine(0 15 20 15 8)
- SymbolLine(15 10 15 30 8)
- SymbolLine(5 10 5 30 8)
-)
-Symbol('$' 12)
-(
- SymbolLine(15 5 20 10 8)
- SymbolLine(5 5 15 5 8)
- SymbolLine(0 10 5 5 8)
- SymbolLine(0 10 0 15 8)
- SymbolLine(0 15 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 30 8)
- SymbolLine(15 35 20 30 8)
- SymbolLine(5 35 15 35 8)
- SymbolLine(0 30 5 35 8)
- SymbolLine(10 0 10 40 8)
-)
-Symbol('%' 12)
-(
- SymbolLine(0 5 0 10 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 10 0 8)
- SymbolLine(10 0 15 5 8)
- SymbolLine(15 5 15 10 8)
- SymbolLine(10 15 15 10 8)
- SymbolLine(5 15 10 15 8)
- SymbolLine(0 10 5 15 8)
- SymbolLine(0 40 40 0 8)
- SymbolLine(35 40 40 35 8)
- SymbolLine(40 30 40 35 8)
- SymbolLine(35 25 40 30 8)
- SymbolLine(30 25 35 25 8)
- SymbolLine(25 30 30 25 8)
- SymbolLine(25 30 25 35 8)
- SymbolLine(25 35 30 40 8)
- SymbolLine(30 40 35 40 8)
-)
-Symbol('&' 12)
-(
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 5 0 15 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 25 15 10 8)
- SymbolLine(5 40 10 40 8)
- SymbolLine(10 40 20 30 8)
- SymbolLine(0 15 25 40 8)
- SymbolLine(5 0 10 0 8)
- SymbolLine(10 0 15 5 8)
- SymbolLine(15 5 15 10 8)
- SymbolLine(0 25 0 35 8)
-)
-Symbol(''' 12)
-(
- SymbolLine(0 10 10 0 8)
-)
-Symbol('(' 12)
-(
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 5 0 35 8)
-)
-Symbol(')' 12)
-(
- SymbolLine(0 0 5 5 8)
- SymbolLine(5 5 5 35 8)
- SymbolLine(0 40 5 35 8)
-)
-Symbol('*' 12)
-(
- SymbolLine(0 10 20 30 8)
- SymbolLine(0 30 20 10 8)
- SymbolLine(0 20 20 20 8)
- SymbolLine(10 10 10 30 8)
-)
-Symbol('+' 12)
-(
- SymbolLine(0 20 20 20 8)
- SymbolLine(10 10 10 30 8)
-)
-Symbol(',' 12)
-(
- SymbolLine(0 50 10 40 8)
-)
-Symbol('-' 12)
-(
- SymbolLine(0 20 20 20 8)
-)
-Symbol('.' 12)
-(
- SymbolLine(0 40 5 40 8)
-)
-Symbol('/' 12)
-(
- SymbolLine(0 35 30 5 8)
-)
-Symbol('0' 12)
-(
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 30 20 10 8)
-)
-Symbol('1' 12)
-(
- SymbolLine(5 40 15 40 8)
- SymbolLine(10 0 10 40 8)
- SymbolLine(0 10 10 0 8)
-)
-Symbol('2' 12)
-(
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 20 0 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 15 8)
- SymbolLine(0 40 25 15 8)
- SymbolLine(0 40 25 40 8)
-)
-Symbol('3' 12)
-(
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 20 20 20 8)
-)
-Symbol('4' 12)
-(
- SymbolLine(0 20 20 0 8)
- SymbolLine(0 20 25 20 8)
- SymbolLine(20 0 20 40 8)
-)
-Symbol('5' 12)
-(
- SymbolLine(0 0 20 0 8)
- SymbolLine(0 0 0 20 8)
- SymbolLine(0 20 5 15 8)
- SymbolLine(5 15 15 15 8)
- SymbolLine(15 15 20 20 8)
- SymbolLine(20 20 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
-)
-Symbol('6' 12)
-(
- SymbolLine(15 0 20 5 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(0 20 15 20 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(20 25 20 35 8)
-)
-Symbol('7' 12)
-(
- SymbolLine(0 40 25 15 8)
- SymbolLine(25 0 25 15 8)
- SymbolLine(0 0 25 0 8)
-)
-Symbol('8' 12)
-(
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 15 5 20 8)
- SymbolLine(0 5 0 15 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 15 8)
- SymbolLine(15 20 20 15 8)
-)
-Symbol('9' 12)
-(
- SymbolLine(0 40 20 20 8)
- SymbolLine(20 5 20 20 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 5 0 15 8)
- SymbolLine(0 15 5 20 8)
- SymbolLine(5 20 20 20 8)
-)
-Symbol(':' 12)
-(
- SymbolLine(0 15 5 15 8)
- SymbolLine(0 25 5 25 8)
-)
-Symbol(';' 12)
-(
- SymbolLine(0 40 10 30 8)
- SymbolLine(10 15 10 20 8)
-)
-Symbol('<' 12)
-(
- SymbolLine(0 20 10 10 8)
- SymbolLine(0 20 10 30 8)
-)
-Symbol('=' 12)
-(
- SymbolLine(0 15 20 15 8)
- SymbolLine(0 25 20 25 8)
-)
-Symbol('>' 12)
-(
- SymbolLine(0 10 10 20 8)
- SymbolLine(0 30 10 20 8)
-)
-Symbol('?' 12)
-(
- SymbolLine(10 20 10 25 8)
- SymbolLine(10 35 10 40 8)
- SymbolLine(0 5 0 10 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 10 8)
- SymbolLine(10 20 20 10 8)
-)
-Symbol('A' 12)
-(
- SymbolLine(0 5 0 40 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 20 0 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 40 8)
- SymbolLine(0 20 25 20 8)
-)
-Symbol('B' 12)
-(
- SymbolLine(0 40 20 40 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(25 25 25 35 8)
- SymbolLine(20 20 25 25 8)
- SymbolLine(5 20 20 20 8)
- SymbolLine(5 0 5 40 8)
- SymbolLine(0 0 20 0 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 15 8)
- SymbolLine(20 20 25 15 8)
-)
-Symbol('C' 12)
-(
- SymbolLine(5 40 20 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 20 0 8)
-)
-Symbol('D' 12)
-(
- SymbolLine(5 0 5 40 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 35 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(0 40 20 40 8)
- SymbolLine(0 0 20 0 8)
-)
-Symbol('E' 12)
-(
- SymbolLine(0 20 15 20 8)
- SymbolLine(0 40 20 40 8)
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 0 20 0 8)
-)
-Symbol('F' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 0 20 0 8)
- SymbolLine(0 20 15 20 8)
-)
-Symbol('G' 12)
-(
- SymbolLine(20 0 25 5 8)
- SymbolLine(5 0 20 0 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 20 40 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(25 25 25 35 8)
- SymbolLine(20 20 25 25 8)
- SymbolLine(10 20 20 20 8)
-)
-Symbol('H' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(25 0 25 40 8)
- SymbolLine(0 20 25 20 8)
-)
-Symbol('I' 12)
-(
- SymbolLine(0 0 10 0 8)
- SymbolLine(5 0 5 40 8)
- SymbolLine(0 40 10 40 8)
-)
-Symbol('J' 12)
-(
- SymbolLine(0 0 15 0 8)
- SymbolLine(15 0 15 35 8)
- SymbolLine(10 40 15 35 8)
- SymbolLine(5 40 10 40 8)
- SymbolLine(0 35 5 40 8)
-)
-Symbol('K' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 20 20 0 8)
- SymbolLine(0 20 20 40 8)
-)
-Symbol('L' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 40 20 40 8)
-)
-Symbol('M' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 0 15 15 8)
- SymbolLine(15 15 30 0 8)
- SymbolLine(30 0 30 40 8)
-)
-Symbol('N' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 0 0 5 8)
- SymbolLine(0 5 25 30 8)
- SymbolLine(25 0 25 40 8)
-)
-Symbol('O' 12)
-(
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
-)
-Symbol('P' 12)
-(
- SymbolLine(5 0 5 40 8)
- SymbolLine(0 0 20 0 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 15 8)
- SymbolLine(20 20 25 15 8)
- SymbolLine(5 20 20 20 8)
-)
-Symbol('Q' 12)
-(
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(10 30 20 40 8)
-)
-Symbol('R' 12)
-(
- SymbolLine(0 0 20 0 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 15 8)
- SymbolLine(20 20 25 15 8)
- SymbolLine(5 20 20 20 8)
- SymbolLine(5 0 5 40 8)
- SymbolLine(5 20 25 40 8)
-)
-Symbol('S' 12)
-(
- SymbolLine(20 0 25 5 8)
- SymbolLine(5 0 20 0 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 5 0 15 8)
- SymbolLine(0 15 5 20 8)
- SymbolLine(5 20 20 20 8)
- SymbolLine(20 20 25 25 8)
- SymbolLine(25 25 25 35 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(5 40 20 40 8)
- SymbolLine(0 35 5 40 8)
-)
-Symbol('T' 12)
-(
- SymbolLine(0 0 20 0 8)
- SymbolLine(10 0 10 40 8)
-)
-Symbol('U' 12)
-(
- SymbolLine(0 0 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(20 0 20 35 8)
-)
-Symbol('V' 12)
-(
- SymbolLine(0 0 0 30 8)
- SymbolLine(0 30 10 40 8)
- SymbolLine(10 40 20 30 8)
- SymbolLine(20 0 20 30 8)
-)
-Symbol('W' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 40 15 25 8)
- SymbolLine(15 25 30 40 8)
- SymbolLine(30 0 30 40 8)
-)
-Symbol('X' 12)
-(
- SymbolLine(0 0 0 5 8)
- SymbolLine(0 5 25 30 8)
- SymbolLine(25 30 25 40 8)
- SymbolLine(0 30 0 40 8)
- SymbolLine(0 30 25 5 8)
- SymbolLine(25 0 25 5 8)
-)
-Symbol('Y' 12)
-(
- SymbolLine(0 0 0 5 8)
- SymbolLine(0 5 10 15 8)
- SymbolLine(10 15 20 5 8)
- SymbolLine(20 0 20 5 8)
- SymbolLine(10 15 10 40 8)
-)
-Symbol('Z' 12)
-(
- SymbolLine(0 0 25 0 8)
- SymbolLine(25 0 25 5 8)
- SymbolLine(0 30 25 5 8)
- SymbolLine(0 30 0 40 8)
- SymbolLine(0 40 25 40 8)
-)
-Symbol('[' 12)
-(
- SymbolLine(0 0 5 0 8)
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 40 5 40 8)
-)
-Symbol('\' 12)
-(
- SymbolLine(0 5 30 35 8)
-)
-Symbol(']' 12)
-(
- SymbolLine(0 0 5 0 8)
- SymbolLine(5 0 5 40 8)
- SymbolLine(0 40 5 40 8)
-)
-Symbol('^' 12)
-(
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 10 5 8)
-)
-Symbol('_' 12)
-(
- SymbolLine(0 40 20 40 8)
-)
-Symbol('a' 12)
-(
- SymbolLine(15 20 20 25 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(20 20 20 35 8)
- SymbolLine(20 35 25 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
-)
-Symbol('b' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(20 25 20 35 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(0 25 5 20 8)
-)
-Symbol('c' 12)
-(
- SymbolLine(5 20 20 20 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 20 40 8)
-)
-Symbol('d' 12)
-(
- SymbolLine(20 0 20 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
-)
-Symbol('e' 12)
-(
- SymbolLine(5 40 20 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(0 30 20 30 8)
- SymbolLine(20 30 20 25 8)
-)
-Symbol('f' 10)
-(
- SymbolLine(5 5 5 40 8)
- SymbolLine(5 5 10 0 8)
- SymbolLine(10 0 15 0 8)
- SymbolLine(0 20 10 20 8)
-)
-Symbol('g' 12)
-(
- SymbolLine(15 20 20 25 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(0 50 5 55 8)
- SymbolLine(5 55 15 55 8)
- SymbolLine(15 55 20 50 8)
- SymbolLine(20 20 20 50 8)
-)
-Symbol('h' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 40 8)
-)
-Symbol('i' 10)
-(
- SymbolLine(0 10 0 15 8)
- SymbolLine(0 25 0 40 8)
-)
-Symbol('j' 10)
-(
- SymbolLine(5 10 5 15 8)
- SymbolLine(5 25 5 50 8)
- SymbolLine(0 55 5 50 8)
-)
-Symbol('k' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 25 15 40 8)
- SymbolLine(0 25 10 15 8)
-)
-Symbol('l' 10)
-(
- SymbolLine(0 0 0 35 8)
- SymbolLine(0 35 5 40 8)
-)
-Symbol('m' 12)
-(
- SymbolLine(5 25 5 40 8)
- SymbolLine(5 25 10 20 8)
- SymbolLine(10 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 40 8)
- SymbolLine(20 25 25 20 8)
- SymbolLine(25 20 30 20 8)
- SymbolLine(30 20 35 25 8)
- SymbolLine(35 25 35 40 8)
- SymbolLine(0 20 5 25 8)
-)
-Symbol('n' 12)
-(
- SymbolLine(5 25 5 40 8)
- SymbolLine(5 25 10 20 8)
- SymbolLine(10 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 40 8)
- SymbolLine(0 20 5 25 8)
-)
-Symbol('o' 12)
-(
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
-)
-Symbol('p' 12)
-(
- SymbolLine(5 25 5 55 8)
- SymbolLine(0 20 5 25 8)
- SymbolLine(5 25 10 20 8)
- SymbolLine(10 20 20 20 8)
- SymbolLine(20 20 25 25 8)
- SymbolLine(25 25 25 35 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(10 40 20 40 8)
- SymbolLine(5 35 10 40 8)
-)
-Symbol('q' 12)
-(
- SymbolLine(20 25 20 55 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
-)
-Symbol('r' 12)
-(
- SymbolLine(5 25 5 40 8)
- SymbolLine(5 25 10 20 8)
- SymbolLine(10 20 20 20 8)
- SymbolLine(0 20 5 25 8)
-)
-Symbol('s' 12)
-(
- SymbolLine(5 40 20 40 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(20 30 25 35 8)
- SymbolLine(5 30 20 30 8)
- SymbolLine(0 25 5 30 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 20 20 8)
- SymbolLine(20 20 25 25 8)
- SymbolLine(0 35 5 40 8)
-)
-Symbol('t' 10)
-(
- SymbolLine(5 0 5 35 8)
- SymbolLine(5 35 10 40 8)
- SymbolLine(0 15 10 15 8)
-)
-Symbol('u' 12)
-(
- SymbolLine(0 20 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(20 20 20 35 8)
-)
-Symbol('v' 12)
-(
- SymbolLine(0 20 0 30 8)
- SymbolLine(0 30 10 40 8)
- SymbolLine(10 40 20 30 8)
- SymbolLine(20 20 20 30 8)
-)
-Symbol('w' 12)
-(
- SymbolLine(0 20 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 10 40 8)
- SymbolLine(10 40 15 35 8)
- SymbolLine(15 20 15 35 8)
- SymbolLine(15 35 20 40 8)
- SymbolLine(20 40 25 40 8)
- SymbolLine(25 40 30 35 8)
- SymbolLine(30 20 30 35 8)
-)
-Symbol('x' 12)
-(
- SymbolLine(0 20 20 40 8)
- SymbolLine(0 40 20 20 8)
-)
-Symbol('y' 12)
-(
- SymbolLine(0 20 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(20 20 20 50 8)
- SymbolLine(15 55 20 50 8)
- SymbolLine(5 55 15 55 8)
- SymbolLine(0 50 5 55 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
-)
-Symbol('z' 12)
-(
- SymbolLine(0 20 20 20 8)
- SymbolLine(0 40 20 20 8)
- SymbolLine(0 40 20 40 8)
-)
-Symbol('{' 12)
-(
- SymbolLine(5 5 10 0 8)
- SymbolLine(5 5 5 15 8)
- SymbolLine(0 20 5 15 8)
- SymbolLine(0 20 5 25 8)
- SymbolLine(5 25 5 35 8)
- SymbolLine(5 35 10 40 8)
-)
-Symbol('|' 12)
-(
- SymbolLine(0 0 0 40 8)
-)
-Symbol('}' 12)
-(
- SymbolLine(0 0 5 5 8)
- SymbolLine(5 5 5 15 8)
- SymbolLine(5 15 10 20 8)
- SymbolLine(5 25 10 20 8)
- SymbolLine(5 25 5 35 8)
- SymbolLine(0 40 5 35 8)
-)
-Symbol('~' 12)
-(
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 10 20 8)
- SymbolLine(10 20 15 25 8)
- SymbolLine(15 25 20 25 8)
- SymbolLine(20 25 25 20 8)
-)
-
-Element(0x00000000 "R 0.25W" "R14" "2k7" 3480 505 1 100 0x00000000)
-(
- Pin(3500 625 50 20 "1" "1" 0x00000101)
- Pin(3500 225 50 20 "2" "2" 0x00000001)
- ElementLine (3500 325 3500 225 20)
- ElementLine (3500 625 3500 525 20)
- ElementLine (3550 525 3450 525 20)
- ElementLine (3550 325 3550 525 20)
- ElementLine (3450 325 3550 325 20)
- ElementLine (3450 525 3450 325 20)
- Mark (3500 625)
-)
-
-Element(0x00000000 "R 0.25W" "R13" "2k7" 3280 505 1 100 0x00000000)
-(
- Pin(3300 625 50 20 "1" "1" 0x00000101)
- Pin(3300 225 50 20 "2" "2" 0x00000001)
- ElementLine (3300 325 3300 225 20)
- ElementLine (3300 625 3300 525 20)
- ElementLine (3350 525 3250 525 20)
- ElementLine (3350 325 3350 525 20)
- ElementLine (3250 325 3350 325 20)
- ElementLine (3250 525 3250 325 20)
- Mark (3300 625)
-)
-
-Element(0x00000000 "diode" "D2" "1N4148" 2975 3645 3 100 0x00000000)
-(
- Pin(2925 3425 50 20 "1" "1" 0x00000101)
- Pin(2925 3725 50 20 "2" "2" 0x00000001)
- ElementLine (2925 3425 2925 3525 10)
- ElementLine (2925 3625 2925 3725 10)
- ElementLine (2925 3525 2975 3625 10)
- ElementLine (2975 3625 2875 3625 10)
- ElementLine (2875 3625 2925 3525 10)
- ElementLine (2975 3525 2875 3525 10)
- Mark (2925 3425)
-)
-
-Element(0x00000000 "+5V 1.5A voltage regulator" "U2" "7805" 4200 3790 2 100 0x00000000)
-(
- Pin(4100 3600 80 20 "In" "1" 0x00000101)
- Pin(4000 3600 80 20 "Com" "2" 0x00000001)
- Pin(3900 3600 80 20 "Out" "3" 0x00000001)
- ElementLine (4200 3720 3800 3720 20)
- ElementLine (3800 3720 3800 3540 20)
- ElementLine (3800 3540 4200 3540 20)
- ElementLine (4200 3540 4200 3720 20)
- ElementLine (4200 3720 3800 3720 20)
- ElementLine (3800 3720 3800 3660 20)
- ElementLine (3800 3660 4200 3660 20)
- ElementLine (4200 3660 4200 3720 20)
- ElementLine (4070 3720 4070 3660 10)
- ElementLine (3930 3720 3930 3660 10)
- Mark (4100 3600)
-)
-
-Element(0x00000000 "R 0.25W" "R7" "2k2" 4405 1105 1 100 0x00000000)
-(
- Pin(4425 1225 50 20 "1" "1" 0x00000101)
- Pin(4425 825 50 20 "2" "2" 0x00000001)
- ElementLine (4425 925 4425 825 20)
- ElementLine (4425 1225 4425 1125 20)
- ElementLine (4475 1125 4375 1125 20)
- ElementLine (4475 925 4475 1125 20)
- ElementLine (4375 925 4475 925 20)
- ElementLine (4375 1125 4375 925 20)
- Mark (4425 1225)
-)
-
-Element(0x00000000 "optical coupling device" "U15" "6N136" 3975 1005 0 100 0x00000000)
-(
- Pin(3925 1175 60 28 "NC" "1" 0x00000101)
- Pin(4025 1175 60 28 "A+" "2" 0x00000001)
- Pin(4125 1175 60 28 "K-" "3" 0x00000001)
- Pin(4225 1175 60 28 "NC" "4" 0x00000001)
- Pin(4225 875 60 28 "Gnd" "5" 0x00000001)
- Pin(4125 875 60 28 "Out" "6" 0x00000001)
- Pin(4025 875 60 28 "En" "7" 0x00000001)
- Pin(3925 875 60 28 "Vcc" "8" 0x00000001)
- ElementLine (3875 1225 4275 1225 10)
- ElementLine (4275 1225 4275 825 10)
- ElementLine (4275 825 3875 825 10)
- ElementLine (3875 1225 3875 1075 10)
- ElementLine (3875 975 3875 825 10)
- ElementArc (3875 1025 50 50 90 180 10)
- Mark (3925 1175)
-)
-
-Element(0x00000000 "R 0.25W" "R8" "390" 5505 1105 1 100 0x00000000)
-(
- Pin(5525 1225 50 20 "1" "1" 0x00000101)
- Pin(5525 825 50 20 "2" "2" 0x00000001)
- ElementLine (5525 925 5525 825 20)
- ElementLine (5525 1225 5525 1125 20)
- ElementLine (5575 1125 5475 1125 20)
- ElementLine (5575 925 5575 1125 20)
- ElementLine (5475 925 5575 925 20)
- ElementLine (5475 1125 5475 925 20)
- Mark (5525 1225)
-)
-
-Element(0x00000000 "R 0.25W" "R1" "390" 5305 505 1 100 0x00000000)
-(
- Pin(5325 625 50 20 "1" "1" 0x00000101)
- Pin(5325 225 50 20 "2" "2" 0x00000001)
- ElementLine (5325 325 5325 225 20)
- ElementLine (5325 625 5325 525 20)
- ElementLine (5375 525 5275 525 20)
- ElementLine (5375 325 5375 525 20)
- ElementLine (5275 325 5375 325 20)
- ElementLine (5275 525 5275 325 20)
- Mark (5325 625)
-)
-
-Element(0x00000000 "optical coupling device" "U12" "6N136" 4875 405 0 100 0x00000000)
-(
- Pin(4825 575 60 28 "NC" "1" 0x00000101)
- Pin(4925 575 60 28 "A+" "2" 0x00000001)
- Pin(5025 575 60 28 "K-" "3" 0x00000001)
- Pin(5125 575 60 28 "NC" "4" 0x00000001)
- Pin(5125 275 60 28 "Gnd" "5" 0x00000001)
- Pin(5025 275 60 28 "Out" "6" 0x00000001)
- Pin(4925 275 60 28 "En" "7" 0x00000001)
- Pin(4825 275 60 28 "Vcc" "8" 0x00000001)
- ElementLine (4775 625 5175 625 10)
- ElementLine (5175 625 5175 225 10)
- ElementLine (5175 225 4775 225 10)
- ElementLine (4775 625 4775 475 10)
- ElementLine (4775 375 4775 225 10)
- ElementArc (4775 425 50 50 90 180 10)
- Mark (4825 575)
-)
-
-Element(0x00000000 "R 0.25W" "R2" "2k2" 4605 505 1 100 0x00000000)
-(
- Pin(4625 625 50 20 "1" "1" 0x00000101)
- Pin(4625 225 50 20 "2" "2" 0x00000001)
- ElementLine (4625 325 4625 225 20)
- ElementLine (4625 625 4625 525 20)
- ElementLine (4675 525 4575 525 20)
- ElementLine (4675 325 4675 525 20)
- ElementLine (4575 325 4675 325 20)
- ElementLine (4575 525 4575 325 20)
- Mark (4625 625)
-)
-
-Element(0x00000000 "R 0.25W" "R6" "2k2" 4605 1105 1 100 0x00000000)
-(
- Pin(4625 1225 50 20 "1" "1" 0x00000101)
- Pin(4625 825 50 20 "2" "2" 0x00000001)
- ElementLine (4625 925 4625 825 20)
- ElementLine (4625 1225 4625 1125 20)
- ElementLine (4675 1125 4575 1125 20)
- ElementLine (4675 925 4675 1125 20)
- ElementLine (4575 925 4675 925 20)
- ElementLine (4575 1125 4575 925 20)
- Mark (4625 1225)
-)
-
-Element(0x00000000 "R 0.25W" "R5" "390" 5305 1105 1 100 0x00000000)
-(
- Pin(5325 1225 50 20 "1" "1" 0x00000101)
- Pin(5325 825 50 20 "2" "2" 0x00000001)
- ElementLine (5325 925 5325 825 20)
- ElementLine (5325 1225 5325 1125 20)
- ElementLine (5375 1125 5275 1125 20)
- ElementLine (5375 925 5375 1125 20)
- ElementLine (5275 925 5375 925 20)
- ElementLine (5275 1125 5275 925 20)
- Mark (5325 1225)
-)
-
-Element(0x00000000 "optical coupling device" "U14" "6N136" 4875 1005 0 100 0x00000000)
-(
- Pin(4825 1175 60 28 "NC" "1" 0x00000101)
- Pin(4925 1175 60 28 "A+" "2" 0x00000001)
- Pin(5025 1175 60 28 "K-" "3" 0x00000001)
- Pin(5125 1175 60 28 "NC" "4" 0x00000001)
- Pin(5125 875 60 28 "Gnd" "5" 0x00000001)
- Pin(5025 875 60 28 "Out" "6" 0x00000001)
- Pin(4925 875 60 28 "En" "7" 0x00000001)
- Pin(4825 875 60 28 "Vcc" "8" 0x00000001)
- ElementLine (4775 1225 5175 1225 10)
- ElementLine (5175 1225 5175 825 10)
- ElementLine (5175 825 4775 825 10)
- ElementLine (4775 1225 4775 1075 10)
- ElementLine (4775 975 4775 825 10)
- ElementArc (4775 1025 50 50 90 180 10)
- Mark (4825 1175)
-)
-
-Element(0x00000000 "optical coupling device" "U13" "6N136" 3975 405 0 100 0x00000000)
-(
- Pin(3925 575 60 28 "NC" "1" 0x00000101)
- Pin(4025 575 60 28 "A+" "2" 0x00000001)
- Pin(4125 575 60 28 "K-" "3" 0x00000001)
- Pin(4225 575 60 28 "NC" "4" 0x00000001)
- Pin(4225 275 60 28 "Gnd" "5" 0x00000001)
- Pin(4125 275 60 28 "Out" "6" 0x00000001)
- Pin(4025 275 60 28 "En" "7" 0x00000001)
- Pin(3925 275 60 28 "Vcc" "8" 0x00000001)
- ElementLine (3875 625 4275 625 10)
- ElementLine (4275 625 4275 225 10)
- ElementLine (4275 225 3875 225 10)
- ElementLine (3875 625 3875 475 10)
- ElementLine (3875 375 3875 225 10)
- ElementArc (3875 425 50 50 90 180 10)
- Mark (3925 575)
-)
-
-Element(0x00000000 "R 0.25W" "R4" "390" 5505 505 1 100 0x00000000)
-(
- Pin(5525 625 50 20 "1" "1" 0x00000101)
- Pin(5525 225 50 20 "2" "2" 0x00000001)
- ElementLine (5525 325 5525 225 20)
- ElementLine (5525 625 5525 525 20)
- ElementLine (5575 525 5475 525 20)
- ElementLine (5575 325 5575 525 20)
- ElementLine (5475 325 5575 325 20)
- ElementLine (5475 525 5475 325 20)
- Mark (5525 625)
-)
-
-Element(0x00000000 "diode" "D1" "1N4148" 1575 3645 3 100 0x00000000)
-(
- Pin(1525 3425 50 20 "1" "1" 0x00000101)
- Pin(1525 3725 50 20 "2" "2" 0x00000001)
- ElementLine (1525 3425 1525 3525 10)
- ElementLine (1525 3625 1525 3725 10)
- ElementLine (1525 3525 1575 3625 10)
- ElementLine (1575 3625 1475 3625 10)
- ElementLine (1475 3625 1525 3525 10)
- ElementLine (1575 3525 1475 3525 10)
- Mark (1525 3425)
-)
-
-Element(0x00000000 "LED 5mm" "D9" "Red" 475 2845 0 100 0x00000000)
-(
- Pin(525 2925 60 20 "-" "1" 0x00000101)
- Pin(525 3025 60 20 "+" "2" 0x00000001)
- ElementArc (525 2975 50 50 0 360 15)
- ElementArc (525 2975 70 70 0 360 10)
- Mark (525 2925)
-)
-
-Element(0x00000000 "IRF1010N" "Q2" "IRF1010N" 5150 2260 0 100 0x00000000)
-(
- Pin(5250 2450 80 20 "G" "1" 0x00000101)
- Pin(5350 2450 80 20 "D" "2" 0x00000001)
- Pin(5450 2450 80 20 "S" "3" 0x00000001)
- ElementLine (5420 2330 5420 2390 10)
- ElementLine (5280 2330 5280 2390 10)
- ElementLine (5150 2390 5150 2330 20)
- ElementLine (5550 2390 5150 2390 20)
- ElementLine (5550 2330 5550 2390 20)
- ElementLine (5150 2330 5550 2330 20)
- ElementLine (5150 2510 5150 2330 20)
- ElementLine (5550 2510 5150 2510 20)
- ElementLine (5550 2330 5550 2510 20)
- ElementLine (5150 2330 5550 2330 20)
- Mark (5250 2450)
-)
-
-Element(0x00000000 "generic" "U7" "HCTL-2016" 2450 405 0 100 0x00000000)
-(
- Pin(2400 575 60 28 "1" "1" 0x00000101)
- Pin(2500 575 60 28 "2" "2" 0x00000001)
- Pin(2600 575 60 28 "3" "3" 0x00000001)
- Pin(2700 575 60 28 "4" "4" 0x00000001)
- Pin(2800 575 60 28 "5" "5" 0x00000001)
- Pin(2900 575 60 28 "6" "6" 0x00000001)
- Pin(3000 575 60 28 "7" "7" 0x00000001)
- Pin(3100 575 60 28 "8" "8" 0x00000001)
- Pin(3100 275 60 28 "9" "9" 0x00000001)
- Pin(3000 275 60 28 "10" "10" 0x00000001)
- Pin(2900 275 60 28 "11" "11" 0x00000001)
- Pin(2800 275 60 28 "12" "12" 0x00000001)
- Pin(2700 275 60 28 "13" "13" 0x00000001)
- Pin(2600 275 60 28 "14" "14" 0x00000001)
- Pin(2500 275 60 28 "15" "15" 0x00000001)
- Pin(2400 275 60 28 "16" "16" 0x00000001)
- ElementLine (2350 625 3150 625 10)
- ElementLine (3150 625 3150 225 10)
- ElementLine (3150 225 2350 225 10)
- ElementLine (2350 625 2350 475 10)
- ElementLine (2350 375 2350 225 10)
- ElementArc (2350 425 50 50 90 180 10)
- Mark (2400 575)
-)
-
-Element(0x00000000 "capacitor_radial" "C4" "10uFx25V" 3275 3625 0 100 0x00000000)
-(
- Pin(3125 3725 60 20 "1" "1" 0x00000101)
- Pin(3225 3725 60 20 "2" "2" 0x00000001)
- ElementArc (3175 3725 100 100 0 360 10)
- Mark (3125 3725)
-)
-
-Element(0x00000000 "connector 2x4 pins" "JP1" "ADDRESS" 4360 2000 3 100 0x00000000)
-(
- Pin(4150 2050 60 30 "1" "1" 0x00000101)
- Pin(4250 2050 60 30 "2" "2" 0x00000001)
- Pin(4150 2150 60 30 "3" "3" 0x00000001)
- Pin(4250 2150 60 30 "4" "4" 0x00000001)
- Pin(4150 2250 60 30 "5" "5" 0x00000001)
- Pin(4250 2250 60 30 "6" "6" 0x00000001)
- Pin(4150 2350 60 30 "7" "7" 0x00000001)
- Pin(4250 2350 60 30 "8" "8" 0x00000001)
- ElementLine (4200 2100 4200 2000 10)
- ElementLine (4100 2100 4200 2100 10)
- ElementLine (4300 2000 4100 2000 20)
- ElementLine (4300 2400 4300 2000 20)
- ElementLine (4100 2400 4300 2400 20)
- ElementLine (4100 2000 4100 2400 20)
- Mark (4150 2050)
-)
-
-Element(0x00000000 "generic" "U6" "8254" 1400 2330 0 100 0x00000000)
-(
- Pin(1350 2650 60 28 "1" "1" 0x00000101)
- Pin(1450 2650 60 28 "2" "2" 0x00000001)
- Pin(1550 2650 60 28 "3" "3" 0x00000001)
- Pin(1650 2650 60 28 "4" "4" 0x00000001)
- Pin(1750 2650 60 28 "5" "5" 0x00000001)
- Pin(1850 2650 60 28 "6" "6" 0x00000001)
- Pin(1950 2650 60 28 "7" "7" 0x00000001)
- Pin(2050 2650 60 28 "8" "8" 0x00000001)
- Pin(2150 2650 60 28 "9" "9" 0x00000001)
- Pin(2250 2650 60 28 "10" "10" 0x00000001)
- Pin(2350 2650 60 28 "11" "11" 0x00000001)
- Pin(2450 2650 60 28 "12" "12" 0x00000001)
- Pin(2450 2050 60 28 "13" "13" 0x00000001)
- Pin(2350 2050 60 28 "14" "14" 0x00000001)
- Pin(2250 2050 60 28 "15" "15" 0x00000001)
- Pin(2150 2050 60 28 "16" "16" 0x00000001)
- Pin(2050 2050 60 28 "17" "17" 0x00000001)
- Pin(1950 2050 60 28 "18" "18" 0x00000001)
- Pin(1850 2050 60 28 "19" "19" 0x00000001)
- Pin(1750 2050 60 28 "20" "20" 0x00000001)
- Pin(1650 2050 60 28 "21" "21" 0x00000001)
- Pin(1550 2050 60 28 "22" "22" 0x00000001)
- Pin(1450 2050 60 28 "23" "23" 0x00000001)
- Pin(1350 2050 60 28 "24" "24" 0x00000001)
- ElementLine (1300 2700 2500 2700 10)
- ElementLine (2500 2700 2500 2000 10)
- ElementLine (2500 2000 1300 2000 10)
- ElementLine (1300 2700 1300 2400 10)
- ElementLine (1300 2300 1300 2000 10)
- ElementArc (1300 2350 50 50 90 180 10)
- Mark (1350 2650)
-)
-
-Element(0x00000000 "generic PAL replacement" "U8" "GAL22V10" 2800 2180 0 100 0x00000000)
-(
- Pin(2750 2350 60 28 "CLK/I1" "1" 0x00000101)
- Pin(2850 2350 60 28 "I2" "2" 0x00000001)
- Pin(2950 2350 60 28 "I3" "3" 0x00000001)
- Pin(3050 2350 60 28 "I4" "4" 0x00000001)
- Pin(3150 2350 60 28 "I5" "5" 0x00000001)
- Pin(3250 2350 60 28 "I6" "6" 0x00000001)
- Pin(3350 2350 60 28 "I7" "7" 0x00000001)
- Pin(3450 2350 60 28 "I8" "8" 0x00000001)
- Pin(3550 2350 60 28 "I9" "9" 0x00000001)
- Pin(3650 2350 60 28 "I10" "10" 0x00000001)
- Pin(3750 2350 60 28 "I11" "11" 0x00000001)
- Pin(3850 2350 60 28 "Gnd" "12" 0x00000001)
- Pin(3850 2050 60 28 "I12" "13" 0x00000001)
- Pin(3750 2050 60 28 "I/O/Qj" "14" 0x00000001)
- Pin(3650 2050 60 28 "I/O/Qi" "15" 0x00000001)
- Pin(3550 2050 60 28 "I/O/Qh" "16" 0x00000001)
- Pin(3450 2050 60 28 "I/O/Qg" "17" 0x00000001)
- Pin(3350 2050 60 28 "I/O/Qf" "18" 0x00000001)
- Pin(3250 2050 60 28 "I/O/Qe" "19" 0x00000001)
- Pin(3150 2050 60 28 "I/O/Qd" "20" 0x00000001)
- Pin(3050 2050 60 28 "I/O/Qc" "21" 0x00000001)
- Pin(2950 2050 60 28 "I/O/Qb" "22" 0x00000001)
- Pin(2850 2050 60 28 "I/O/Qa" "23" 0x00000001)
- Pin(2750 2050 60 28 "Vcc" "24" 0x00000001)
- ElementLine (2700 2400 3900 2400 10)
- ElementLine (3900 2400 3900 2000 10)
- ElementLine (3900 2000 2700 2000 10)
- ElementLine (2700 2400 2700 2250 10)
- ElementLine (2700 2150 2700 2000 10)
- ElementArc (2700 2200 50 50 90 180 10)
- Mark (2750 2350)
-)
-
-Element(0x00000000 "LED 5mm" "D10" "Green" 475 2570 0 100 0x00000000)
-(
- Pin(525 2650 60 20 "-" "1" 0x00000101)
- Pin(525 2750 60 20 "+" "2" 0x00000001)
- ElementArc (525 2700 70 70 0 360 10)
- ElementArc (525 2700 50 50 0 360 15)
- Mark (525 2650)
-)
-
-Element(0x00000000 "Push-button, tactile, right angle, 466mils actuator" "S1" "MJTP1236_D" 598 3389 0 100 0x00000000)
-(
- Pin(500 3300 59 39 "1" "1" 0x00000101)
- Pin(500 3477 59 39 "2" "2" 0x00000001)
- Pin(598 3251 71 51 "C1" "C1" 0x00000001)
- Pin(598 3527 71 51 "C2" "C2" 0x00000001)
- ElementLine (658 3251 400 3251 20)
- ElementLine (400 3251 400 3527 20)
- ElementLine (400 3527 658 3527 20)
- ElementLine (538 3527 538 3251 20)
- ElementLine (400 3320 34 3330 20)
- ElementLine (34 3330 34 3448 20)
- ElementLine (34 3448 400 3458 20)
- Mark (500 3300)
-)
-
-Element(0x00000000 "capacitor_radial" "C7" "1000uFx35V" 4525 2450 2 100 0x00000000)
-(
- Pin(4900 2200 60 20 "1" "1" 0x00000101)
- Pin(4650 2200 60 20 "2" "2" 0x00000001)
- ElementArc (4775 2200 250 250 180 360 10)
- Mark (4900 2200)
-)
-
-Element(0x00000000 "diode" "D3" "1N4007" 850 3520 3 100 0x00000000)
-(
- Pin(800 3300 50 20 "1" "1" 0x00000101)
- Pin(800 3600 50 20 "2" "2" 0x00000001)
- ElementLine (850 3400 750 3400 10)
- ElementLine (750 3500 800 3400 10)
- ElementLine (850 3500 750 3500 10)
- ElementLine (800 3400 850 3500 10)
- ElementLine (800 3500 800 3600 10)
- ElementLine (800 3300 800 3400 10)
- Mark (800 3300)
-)
-
-Element(0x00000000 "IRF1010N" "Q1" "IRF1010N" 5675 2260 0 100 0x00000000)
-(
- Pin(5775 2450 80 20 "G" "1" 0x00000101)
- Pin(5875 2450 80 20 "D" "2" 0x00000001)
- Pin(5975 2450 80 20 "S" "3" 0x00000001)
- ElementLine (5945 2330 5945 2390 10)
- ElementLine (5805 2330 5805 2390 10)
- ElementLine (5675 2390 5675 2330 20)
- ElementLine (6075 2390 5675 2390 20)
- ElementLine (6075 2330 6075 2390 20)
- ElementLine (5675 2330 6075 2330 20)
- ElementLine (5675 2510 5675 2330 20)
- ElementLine (6075 2510 5675 2510 20)
- ElementLine (6075 2330 6075 2510 20)
- ElementLine (5675 2330 6075 2330 20)
- Mark (5775 2450)
-)
-
-Element(0x00000000 "capacitor_radial" "C11" "2.2nF" 5450 2000 0 100 0x00000000)
-(
- Pin(5300 2100 60 20 "1" "1" 0x00000101)
- Pin(5400 2100 60 20 "2" "2" 0x00000001)
- ElementArc (5350 2100 100 100 0 360 10)
- Mark (5300 2100)
-)
-
-Element(0x00000000 "DIN 41612C-96 male" "J15" "DIN41612C96_male" 6575 3455 1 200 0x00000000)
-(
- Pin(6475 475 60 30 "a1" "A1" 0x00000101)
- Pin(6475 575 60 30 "a2" "A2" 0x00000001)
- Pin(6475 675 60 30 "a3" "A3" 0x00000001)
- Pin(6475 775 60 30 "a4" "A4" 0x00000001)
- Pin(6475 875 60 30 "a5" "A5" 0x00000001)
- Pin(6475 975 60 30 "a6" "A6" 0x00000001)
- Pin(6475 1075 60 30 "a7" "A7" 0x00000001)
- Pin(6475 1175 60 30 "a8" "A8" 0x00000001)
- Pin(6475 1275 60 30 "a9" "A9" 0x00000001)
- Pin(6475 1375 60 30 "a10" "A10" 0x00000001)
- Pin(6475 1475 60 30 "a11" "A11" 0x00000001)
- Pin(6475 1575 60 30 "a12" "A12" 0x00000001)
- Pin(6475 1675 60 30 "a13" "A13" 0x00000001)
- Pin(6475 1775 60 30 "a14" "A14" 0x00000001)
- Pin(6475 1875 60 30 "a15" "A15" 0x00000001)
- Pin(6475 1975 60 30 "a16" "A16" 0x00000001)
- Pin(6475 2075 60 30 "a17" "A17" 0x00000001)
- Pin(6475 2175 60 30 "a18" "A18" 0x00000001)
- Pin(6475 2275 60 30 "a19" "A19" 0x00000001)
- Pin(6475 2375 60 30 "a20" "A20" 0x00000001)
- Pin(6475 2475 60 30 "a21" "A21" 0x00000001)
- Pin(6475 2575 60 30 "a22" "A22" 0x00000001)
- Pin(6475 2675 60 30 "a23" "A23" 0x00000001)
- Pin(6475 2775 60 30 "a24" "A24" 0x00000001)
- Pin(6475 2875 60 30 "a25" "A25" 0x00000001)
- Pin(6475 2975 60 30 "a26" "A26" 0x00000001)
- Pin(6475 3075 60 30 "a27" "A27" 0x00000001)
- Pin(6475 3175 60 30 "a28" "A28" 0x00000001)
- Pin(6475 3275 60 30 "a29" "A29" 0x00000001)
- Pin(6475 3375 60 30 "a30" "A30" 0x00000001)
- Pin(6475 3475 60 30 "a31" "A31" 0x00000001)
- Pin(6475 3575 60 30 "a32" "A32" 0x00000001)
- Pin(6375 475 60 30 "b1" "B1" 0x00000001)
- Pin(6375 575 60 30 "b2" "B2" 0x00000001)
- Pin(6375 675 60 30 "b3" "B3" 0x00000001)
- Pin(6375 775 60 30 "b4" "B4" 0x00000001)
- Pin(6375 875 60 30 "b5" "B5" 0x00000001)
- Pin(6375 975 60 30 "b6" "B6" 0x00000001)
- Pin(6375 1075 60 30 "b7" "B7" 0x00000001)
- Pin(6375 1175 60 30 "b8" "B8" 0x00000001)
- Pin(6375 1275 60 30 "b9" "B9" 0x00000001)
- Pin(6375 1375 60 30 "b10" "B10" 0x00000001)
- Pin(6375 1475 60 30 "b11" "B11" 0x00000001)
- Pin(6375 1575 60 30 "b12" "B12" 0x00000001)
- Pin(6375 1675 60 30 "b13" "B13" 0x00000001)
- Pin(6375 1775 60 30 "b14" "B14" 0x00000001)
- Pin(6375 1875 60 30 "b15" "B15" 0x00000001)
- Pin(6375 1975 60 30 "b16" "B16" 0x00000001)
- Pin(6375 2075 60 30 "b17" "B17" 0x00000001)
- Pin(6375 2175 60 30 "b18" "B18" 0x00000001)
- Pin(6375 2275 60 30 "b19" "B19" 0x00000001)
- Pin(6375 2375 60 30 "b20" "B20" 0x00000001)
- Pin(6375 2475 60 30 "b21" "B21" 0x00000001)
- Pin(6375 2575 60 30 "b22" "B22" 0x00000001)
- Pin(6375 2675 60 30 "b23" "B23" 0x00000001)
- Pin(6375 2775 60 30 "b24" "B24" 0x00000001)
- Pin(6375 2875 60 30 "b25" "B25" 0x00000001)
- Pin(6375 2975 60 30 "b26" "B26" 0x00000001)
- Pin(6375 3075 60 30 "b27" "B27" 0x00000001)
- Pin(6375 3175 60 30 "b28" "B28" 0x00000001)
- Pin(6375 3275 60 30 "b29" "B29" 0x00000001)
- Pin(6375 3375 60 30 "b30" "B30" 0x00000001)
- Pin(6375 3475 60 30 "b31" "B31" 0x00000001)
- Pin(6375 3575 60 30 "b32" "B32" 0x00000001)
- Pin(6275 475 60 30 "c1" "C1" 0x00000001)
- Pin(6275 575 60 30 "c2" "C2" 0x00000001)
- Pin(6275 675 60 30 "c3" "C3" 0x00000001)
- Pin(6275 775 60 30 "c4" "C4" 0x00000001)
- Pin(6275 875 60 30 "c5" "C5" 0x00000001)
- Pin(6275 975 60 30 "c6" "C6" 0x00000001)
- Pin(6275 1075 60 30 "c7" "C7" 0x00000001)
- Pin(6275 1175 60 30 "c8" "C8" 0x00000001)
- Pin(6275 1275 60 30 "c9" "C9" 0x00000001)
- Pin(6275 1375 60 30 "c10" "C10" 0x00000001)
- Pin(6275 1475 60 30 "c11" "C11" 0x00000001)
- Pin(6275 1575 60 30 "c12" "C12" 0x00000001)
- Pin(6275 1675 60 30 "c13" "C13" 0x00000001)
- Pin(6275 1775 60 30 "c14" "C14" 0x00000001)
- Pin(6275 1875 60 30 "c15" "C15" 0x00000001)
- Pin(6275 1975 60 30 "c16" "C16" 0x00000001)
- Pin(6275 2075 60 30 "c17" "C17" 0x00000001)
- Pin(6275 2175 60 30 "c18" "C18" 0x00000001)
- Pin(6275 2275 60 30 "c19" "C19" 0x00000001)
- Pin(6275 2375 60 30 "c20" "C20" 0x00000001)
- Pin(6275 2475 60 30 "c21" "C21" 0x00000001)
- Pin(6275 2575 60 30 "c22" "C22" 0x00000001)
- Pin(6275 2675 60 30 "c23" "C23" 0x00000001)
- Pin(6275 2775 60 30 "c24" "C24" 0x00000001)
- Pin(6275 2875 60 30 "c25" "C25" 0x00000001)
- Pin(6275 2975 60 30 "c26" "C26" 0x00000001)
- Pin(6275 3075 60 30 "c27" "C27" 0x00000001)
- Pin(6275 3175 60 30 "c28" "C28" 0x00000001)
- Pin(6275 3275 60 30 "c29" "C29" 0x00000001)
- Pin(6275 3375 60 30 "c30" "C30" 0x00000001)
- Pin(6275 3475 60 30 "c31" "C31" 0x00000001)
- Pin(6275 3575 60 30 "c32" "C32" 0x00000001)
- Pin(6575 3775 120 80 "M1" "M1" 0x00000001)
- Pin(6575 275 120 80 "M2" "M2" 0x00000001)
- ElementLine (6275 3575 6550 3575 40)
- ElementLine (6275 3475 6550 3475 40)
- ElementLine (6275 3375 6550 3375 40)
- ElementLine (6275 3275 6550 3275 40)
- ElementLine (6275 3175 6550 3175 40)
- ElementLine (6275 3075 6550 3075 40)
- ElementLine (6275 2975 6550 2975 40)
- ElementLine (6275 2875 6550 2875 40)
- ElementLine (6275 2775 6550 2775 40)
- ElementLine (6275 2675 6550 2675 40)
- ElementLine (6275 2575 6550 2575 40)
- ElementLine (6275 2475 6550 2475 40)
- ElementLine (6275 2375 6550 2375 40)
- ElementLine (6275 2275 6550 2275 40)
- ElementLine (6275 2175 6550 2175 40)
- ElementLine (6275 2075 6550 2075 40)
- ElementLine (6275 1975 6550 1975 40)
- ElementLine (6275 1875 6550 1875 40)
- ElementLine (6275 1775 6550 1775 40)
- ElementLine (6275 1675 6550 1675 40)
- ElementLine (6275 1575 6550 1575 40)
- ElementLine (6275 1475 6550 1475 40)
- ElementLine (6275 1375 6550 1375 40)
- ElementLine (6275 1275 6550 1275 40)
- ElementLine (6275 1175 6550 1175 40)
- ElementLine (6275 1075 6550 1075 40)
- ElementLine (6275 975 6550 975 40)
- ElementLine (6275 875 6550 875 40)
- ElementLine (6275 775 6550 775 40)
- ElementLine (6275 675 6550 675 40)
- ElementLine (6275 575 6550 575 40)
- ElementLine (6275 475 6550 475 40)
- ElementLine (6475 3875 6475 3655 20)
- ElementLine (6475 3655 6570 3655 20)
- ElementLine (6570 3655 6795 3655 10)
- ElementLine (6795 3655 6795 3775 10)
- ElementLine (6795 3775 6795 3875 20)
- ElementLine (6795 3875 6475 3875 20)
- ElementLine (6475 395 6475 175 20)
- ElementLine (6475 175 6795 175 20)
- ElementLine (6795 175 6795 275 20)
- ElementLine (6795 275 6795 395 10)
- ElementLine (6795 395 6570 395 10)
- ElementLine (6570 395 6475 395 20)
- ElementLine (6570 3655 6570 395 20)
- ElementLine (6795 3775 6975 3775 20)
- ElementLine (6975 3775 6975 275 20)
- ElementLine (6975 275 6795 275 20)
- Mark (6475 475)
-)
-
-Element(0x00000000 "connector 2x1 pins" "JP2" "XRESET" 1210 3250 3 100 0x00000000)
-(
- Pin(1000 3300 60 30 "1" "1" 0x00000101)
- Pin(1100 3300 60 30 "2" "2" 0x00000001)
- ElementLine (950 3250 950 3350 20)
- ElementLine (950 3350 1150 3350 20)
- ElementLine (1150 3350 1150 3250 20)
- ElementLine (1150 3250 950 3250 20)
- ElementLine (950 3350 1050 3350 10)
- ElementLine (1050 3350 1050 3250 10)
- Mark (1000 3300)
-)
-
-Element(0x00000000 "generic" "U11" "10MHz" 1725 3030 0 100 0x00000000)
-(
- Pin(1675 3200 60 28 "1" "1" 0x00000101)
- Pin(1775 3200 60 28 "2" "2" 0x00000001)
- Pin(1875 3200 60 28 "3" "3" 0x00000001)
- Pin(1975 3200 60 28 "4" "4" 0x00000001)
- Pin(1975 2900 60 28 "5" "5" 0x00000001)
- Pin(1875 2900 60 28 "6" "6" 0x00000001)
- Pin(1775 2900 60 28 "7" "7" 0x00000001)
- Pin(1675 2900 60 28 "8" "8" 0x00000001)
- ElementLine (1625 3250 2025 3250 10)
- ElementLine (2025 3250 2025 2850 10)
- ElementLine (2025 2850 1625 2850 10)
- ElementLine (1625 3250 1625 3100 10)
- ElementLine (1625 3000 1625 2850 10)
- ElementArc (1625 3050 50 50 90 180 10)
- Mark (1675 3200)
-)
-
-Element(0x00000000 "capacitor_radial" "C8" "1000uFx35V" 4525 3025 2 100 0x00000000)
-(
- Pin(4900 2775 60 20 "1" "1" 0x00000101)
- Pin(4650 2775 60 20 "2" "2" 0x00000001)
- ElementArc (4775 2775 250 250 180 360 10)
- Mark (4900 2775)
-)
-
-Element(0x00000000 "+12V 1.5A voltage regulator" "U3" "7812" 5750 3790 2 100 0x00000000)
-(
- Pin(5650 3600 80 20 "In" "1" 0x00000101)
- Pin(5550 3600 80 20 "Com" "2" 0x00000001)
- Pin(5450 3600 80 20 "Out" "3" 0x00000001)
- ElementLine (5750 3720 5350 3720 20)
- ElementLine (5350 3720 5350 3540 20)
- ElementLine (5350 3540 5750 3540 20)
- ElementLine (5750 3540 5750 3720 20)
- ElementLine (5750 3720 5350 3720 20)
- ElementLine (5350 3720 5350 3660 20)
- ElementLine (5350 3660 5750 3660 20)
- ElementLine (5750 3660 5750 3720 20)
- ElementLine (5620 3720 5620 3660 10)
- ElementLine (5480 3720 5480 3660 10)
- Mark (5650 3600)
-)
-
-Element(0x00000000 "R 0.25W" "R9" "10k" 2770 2695 3 100 0x00000000)
-(
- Pin(2750 2575 50 20 "1" "1" 0x00000101)
- Pin(2750 2975 50 20 "2" "2" 0x00000001)
- ElementLine (2750 2875 2750 2975 20)
- ElementLine (2750 2575 2750 2675 20)
- ElementLine (2700 2675 2800 2675 20)
- ElementLine (2700 2875 2700 2675 20)
- ElementLine (2800 2875 2700 2875 20)
- ElementLine (2800 2675 2800 2875 20)
- Mark (2750 2575)
-)
-
-Element(0x00000000 "E22 standing" "" "E22" 5550 3525 2 100 0x00000000)
-(
- ElementLine (5325 3200 5325 3750 20)
- ElementLine (5275 3200 5325 3200 20)
- ElementLine (5275 3750 5275 3200 20)
- ElementLine (5075 3750 5275 3750 20)
- ElementLine (5075 3200 5075 3750 20)
- ElementLine (5025 3200 5075 3200 20)
- ElementLine (5025 3850 5025 3200 20)
- ElementLine (5775 3750 5325 3750 20)
- ElementLine (5775 3200 5775 3750 20)
- ElementLine (5825 3200 5775 3200 20)
- ElementLine (5825 3750 5825 3200 20)
- ElementLine (6025 3750 5825 3750 20)
- ElementLine (6025 3200 6025 3750 20)
- ElementLine (6075 3200 6025 3200 20)
- ElementLine (6075 3850 6075 3200 20)
- ElementLine (6075 3850 5025 3850 20)
- Mark (6075 3850)
-)
-
-Element(0x00000000 "R 0.25W" "R11" "330" 980 2945 2 100 0x00000000)
-(
- Pin(1100 2925 50 20 "1" "1" 0x00000101)
- Pin(700 2925 50 20 "2" "2" 0x00000001)
- ElementLine (1000 2975 800 2975 20)
- ElementLine (800 2975 800 2875 20)
- ElementLine (800 2875 1000 2875 20)
- ElementLine (1000 2875 1000 2975 20)
- ElementLine (1100 2925 1000 2925 20)
- ElementLine (800 2925 700 2925 20)
- Mark (1100 2925)
-)
-
-Element(0x00000000 "capacitor_radial" "C1" "100uFx25V" 4625 3850 2 100 0x00000000)
-(
- Pin(4850 3700 60 20 "1" "1" 0x00000101)
- Pin(4700 3700 60 20 "2" "2" 0x00000001)
- ElementArc (4775 3700 150 150 180 360 10)
- Mark (4850 3700)
-)
-
-Element(0x00000000 "IRF1010N" "Q4" "IRF1010N" 5150 2735 0 100 0x00000000)
-(
- Pin(5250 2925 80 20 "G" "1" 0x00000101)
- Pin(5350 2925 80 20 "D" "2" 0x00000001)
- Pin(5450 2925 80 20 "S" "3" 0x00000001)
- ElementLine (5420 2805 5420 2865 10)
- ElementLine (5280 2805 5280 2865 10)
- ElementLine (5150 2865 5150 2805 20)
- ElementLine (5550 2865 5150 2865 20)
- ElementLine (5550 2805 5550 2865 20)
- ElementLine (5150 2805 5550 2805 20)
- ElementLine (5150 2985 5150 2805 20)
- ElementLine (5550 2985 5150 2985 20)
- ElementLine (5550 2805 5550 2985 20)
- ElementLine (5150 2805 5550 2805 20)
- Mark (5250 2925)
-)
-
-Element(0x00000000 "SUB-D female 9 pins" "J9" "DB9_female" 500 1555 3 100 0x00000000)
-(
- Pin(850 1355 120 100 "C1" "C1" 0x00000001)
- Pin(850 2295 120 100 "C1" "C1" 0x00000001)
- Pin(900 1625 60 20 "5" "5" 0x00000001)
- Pin(800 1675 60 20 "9" "9" 0x00000001)
- Pin(900 1725 60 20 "4" "4" 0x00000001)
- Pin(800 1775 60 20 "8" "8" 0x00000001)
- Pin(900 1825 60 20 "3" "3" 0x00000001)
- Pin(800 1875 60 20 "7" "7" 0x00000001)
- Pin(900 1925 60 20 "2" "2" 0x00000001)
- Pin(800 1975 60 20 "6" "6" 0x00000001)
- Pin(900 2025 60 20 "1" "1" 0x00000101)
- ElementLine (390 1235 420 1235 10)
- ElementLine (420 1235 420 2415 10)
- ElementLine (420 2415 390 2415 10)
- ElementLine (390 2415 390 1235 10)
- ElementLine (390 1295 420 1295 10)
- ElementLine (390 1415 420 1415 10)
- ElementLine (390 2355 420 2355 10)
- ElementLine (390 2235 420 2235 10)
- ElementLine (120 1525 390 1525 20)
- ElementLine (390 1525 390 2125 10)
- ElementLine (390 2125 120 2125 20)
- ElementLine (120 2125 120 1525 20)
- ElementLine (420 1465 620 1465 20)
- ElementLine (620 1465 620 2185 20)
- ElementLine (620 2185 420 2185 20)
- ElementLine (420 2185 420 1465 10)
- ElementLine (900 1625 620 1625 20)
- ElementLine (800 1675 620 1675 20)
- ElementLine (900 1725 620 1725 20)
- ElementLine (800 1775 620 1775 20)
- ElementLine (900 1825 620 1825 20)
- ElementLine (800 1875 620 1875 20)
- ElementLine (900 1925 620 1925 20)
- ElementLine (800 1975 620 1975 20)
- ElementLine (900 2025 620 2025 20)
- Mark (900 1625)
-)
-
-Element(0x00000000 "capacitor_radial" "C9" "220nF" 3125 2700 2 100 0x00000000)
-(
- Pin(3275 2600 60 20 "1" "1" 0x00000101)
- Pin(3175 2600 60 20 "2" "2" 0x00000001)
- ElementArc (3225 2600 100 100 180 360 10)
- Mark (3275 2600)
-)
-
-Element(0x00000000 "R 0.25W" "R3" "2k2" 4405 505 1 100 0x00000000)
-(
- Pin(4425 625 50 20 "1" "1" 0x00000101)
- Pin(4425 225 50 20 "2" "2" 0x00000001)
- ElementLine (4425 325 4425 225 20)
- ElementLine (4425 625 4425 525 20)
- ElementLine (4475 525 4375 525 20)
- ElementLine (4475 325 4475 525 20)
- ElementLine (4375 325 4475 325 20)
- ElementLine (4375 525 4375 325 20)
- Mark (4425 625)
-)
-
-Element(0x00000000 "R 0.25W" "R10" "1k5" 2930 2855 1 100 0x00000000)
-(
- Pin(2950 2975 50 20 "1" "1" 0x00000101)
- Pin(2950 2575 50 20 "2" "2" 0x00000001)
- ElementLine (2950 2675 2950 2575 20)
- ElementLine (2950 2975 2950 2875 20)
- ElementLine (3000 2875 2900 2875 20)
- ElementLine (3000 2675 3000 2875 20)
- ElementLine (2900 2675 3000 2675 20)
- ElementLine (2900 2875 2900 2675 20)
- Mark (2950 2975)
-)
-
-Element(0x00000000 "capacitor_radial" "C2" "100uFx16V" 4925 3150 0 100 0x00000000)
-(
- Pin(4700 3300 60 20 "1" "1" 0x00000101)
- Pin(4850 3300 60 20 "2" "2" 0x00000001)
- ElementArc (4775 3300 150 150 0 360 10)
- Mark (4700 3300)
-)
-
-Element(0x00000000 "E22 standing" "" "E22" 4000 3525 2 100 0x00000000)
-(
- ElementLine (3775 3200 3775 3750 20)
- ElementLine (3725 3200 3775 3200 20)
- ElementLine (3725 3750 3725 3200 20)
- ElementLine (3525 3750 3725 3750 20)
- ElementLine (3525 3200 3525 3750 20)
- ElementLine (3475 3200 3525 3200 20)
- ElementLine (3475 3850 3475 3200 20)
- ElementLine (4225 3750 3775 3750 20)
- ElementLine (4225 3200 4225 3750 20)
- ElementLine (4275 3200 4225 3200 20)
- ElementLine (4275 3750 4275 3200 20)
- ElementLine (4475 3750 4275 3750 20)
- ElementLine (4475 3200 4475 3750 20)
- ElementLine (4525 3200 4475 3200 20)
- ElementLine (4525 3850 4525 3200 20)
- ElementLine (4525 3850 3475 3850 20)
- Mark (4525 3850)
-)
-
-Element(0x00000000 "R 0.25W" "R12" "1k2" 980 2770 2 100 0x00000000)
-(
- Pin(1100 2750 50 20 "1" "1" 0x00000101)
- Pin(700 2750 50 20 "2" "2" 0x00000001)
- ElementLine (800 2750 700 2750 20)
- ElementLine (1100 2750 1000 2750 20)
- ElementLine (1000 2700 1000 2800 20)
- ElementLine (800 2700 1000 2700 20)
- ElementLine (800 2800 800 2700 20)
- ElementLine (1000 2800 800 2800 20)
- Mark (1100 2750)
-)
-
-Element(0x00000000 "IRF1010N" "Q3" "IRF1010N" 5675 2735 0 100 0x00000000)
-(
- Pin(5775 2925 80 20 "G" "1" 0x00000101)
- Pin(5875 2925 80 20 "D" "2" 0x00000001)
- Pin(5975 2925 80 20 "S" "3" 0x00000001)
- ElementLine (5945 2805 5945 2865 10)
- ElementLine (5805 2805 5805 2865 10)
- ElementLine (5675 2865 5675 2805 20)
- ElementLine (6075 2865 5675 2865 20)
- ElementLine (6075 2805 6075 2865 20)
- ElementLine (5675 2805 6075 2805 20)
- ElementLine (5675 2985 5675 2805 20)
- ElementLine (6075 2985 5675 2985 20)
- ElementLine (6075 2805 6075 2985 20)
- ElementLine (5675 2805 6075 2805 20)
- Mark (5775 2925)
-)
-
-Element(0x00000000 "diode" "D7" "1N4007" 5795 1825 0 100 0x00000000)
-(
- Pin(5575 1875 50 20 "1" "1" 0x00000101)
- Pin(5875 1875 50 20 "2" "2" 0x00000001)
- ElementLine (5675 1825 5675 1925 10)
- ElementLine (5775 1925 5675 1875 10)
- ElementLine (5775 1825 5775 1925 10)
- ElementLine (5675 1875 5775 1825 10)
- ElementLine (5775 1875 5875 1875 10)
- ElementLine (5575 1875 5675 1875 10)
- Mark (5575 1875)
-)
-
-Element(0x00000000 "optical coupling device" "U5" "6N136" 5775 1005 0 100 0x00000000)
-(
- Pin(5725 1175 60 28 "NC" "1" 0x00000101)
- Pin(5825 1175 60 28 "A+" "2" 0x00000001)
- Pin(5925 1175 60 28 "K-" "3" 0x00000001)
- Pin(6025 1175 60 28 "NC" "4" 0x00000001)
- Pin(6025 875 60 28 "Gnd" "5" 0x00000001)
- Pin(5925 875 60 28 "Out" "6" 0x00000001)
- Pin(5825 875 60 28 "En" "7" 0x00000001)
- Pin(5725 875 60 28 "Vcc" "8" 0x00000001)
- ElementLine (5675 1225 6075 1225 10)
- ElementLine (6075 1225 6075 825 10)
- ElementLine (6075 825 5675 825 10)
- ElementLine (5675 1225 5675 1075 10)
- ElementLine (5675 975 5675 825 10)
- ElementArc (5675 1025 50 50 90 180 10)
- Mark (5725 1175)
-)
-
-Element(0x00000000 "IRLZ24N" "Q5" "IRLZ24N" 5675 1910 0 100 0x00000000)
-(
- Pin(5775 2100 80 20 "G" "1" 0x00000101)
- Pin(5875 2100 80 20 "D" "2" 0x00000001)
- Pin(5975 2100 80 20 "S" "3" 0x00000001)
- ElementLine (5945 1980 5945 2040 10)
- ElementLine (5805 1980 5805 2040 10)
- ElementLine (5675 2040 5675 1980 20)
- ElementLine (6075 2040 5675 2040 20)
- ElementLine (6075 1980 6075 2040 20)
- ElementLine (5675 1980 6075 1980 20)
- ElementLine (5675 2160 5675 1980 20)
- ElementLine (6075 2160 5675 2160 20)
- ElementLine (6075 1980 6075 2160 20)
- ElementLine (5675 1980 6075 1980 20)
- Mark (5775 2100)
-)
-
-Element(0x00000000 "optical coupling device" "U4" "6N136" 5775 405 0 100 0x00000000)
-(
- Pin(5725 575 60 28 "NC" "1" 0x00000101)
- Pin(5825 575 60 28 "A+" "2" 0x00000001)
- Pin(5925 575 60 28 "K-" "3" 0x00000001)
- Pin(6025 575 60 28 "NC" "4" 0x00000001)
- Pin(6025 275 60 28 "Gnd" "5" 0x00000001)
- Pin(5925 275 60 28 "Out" "6" 0x00000001)
- Pin(5825 275 60 28 "En" "7" 0x00000001)
- Pin(5725 275 60 28 "Vcc" "8" 0x00000001)
- ElementLine (5675 625 6075 625 10)
- ElementLine (6075 625 6075 225 10)
- ElementLine (6075 225 5675 225 10)
- ElementLine (5675 625 5675 475 10)
- ElementLine (5675 375 5675 225 10)
- ElementArc (5675 425 50 50 90 180 10)
- Mark (5725 575)
-)
-
-Element(0x00000000 "capacitor_radial" "C10" "4.7uFx16V" 3325 2800 0 100 0x00000000)
-(
- Pin(3175 2900 60 20 "1" "1" 0x00000101)
- Pin(3275 2900 60 20 "2" "2" 0x00000001)
- ElementArc (3225 2900 100 100 0 360 10)
- Mark (3175 2900)
-)
-
-Element(0x00000000 "shielded" "J2" "RJ 45" 1250 1128 2 100 0x00000000)
-(
- Pin(1075 575 60 30 "1" "1" 0x00000101)
- Pin(1175 625 60 30 "2" "2" 0x00000001)
- Pin(1075 675 60 30 "3" "3" 0x00000001)
- Pin(1175 725 60 30 "4" "4" 0x00000001)
- Pin(1075 775 60 30 "5" "5" 0x00000001)
- Pin(1175 825 60 30 "6" "6" 0x00000001)
- Pin(1075 875 60 30 "7" "7" 0x00000001)
- Pin(1175 925 60 30 "8" "8" 0x00000001)
- Pin(825 525 148 128 "C1" "9" 0x00000001)
- Pin(825 976 148 128 "C1" "10" 0x00000001)
- Pin(945 445 82 62 "C1" "11" 0x00000001)
- Pin(945 1056 82 62 "C1" "12" 0x00000001)
- ElementLine (1250 1068 1250 433 20)
- ElementLine (400 1068 1250 1068 20)
- ElementLine (400 433 400 1068 20)
- ElementLine (1250 433 400 433 20)
- Mark (1075 575)
-)
-
-Element(0x00000000 "generic" "U10" "MAX4429" 3600 2730 0 100 0x00000000)
-(
- Pin(3550 2900 60 28 "1" "1" 0x00000101)
- Pin(3650 2900 60 28 "2" "2" 0x00000001)
- Pin(3750 2900 60 28 "3" "3" 0x00000001)
- Pin(3850 2900 60 28 "4" "4" 0x00000001)
- Pin(3850 2600 60 28 "5" "5" 0x00000001)
- Pin(3750 2600 60 28 "6" "6" 0x00000001)
- Pin(3650 2600 60 28 "7" "7" 0x00000001)
- Pin(3550 2600 60 28 "8" "8" 0x00000001)
- ElementLine (3500 2950 3900 2950 10)
- ElementLine (3900 2950 3900 2550 10)
- ElementLine (3900 2550 3500 2550 10)
- ElementLine (3500 2950 3500 2800 10)
- ElementLine (3500 2700 3500 2550 10)
- ElementArc (3500 2750 50 50 90 180 10)
- Mark (3550 2900)
-)
-
-Element(0x00000000 "capacitor_radial" "C6" "1uFx25V" 3275 3325 0 100 0x00000000)
-(
- Pin(3125 3425 60 20 "1" "1" 0x00000101)
- Pin(3225 3425 60 20 "2" "2" 0x00000001)
- ElementArc (3175 3425 100 100 0 360 10)
- Mark (3125 3425)
-)
-
-Element(0x00000000 "capacitor_radial" "C5" "1uFx25V" 1175 3525 2 100 0x00000000)
-(
- Pin(1325 3425 60 20 "1" "1" 0x00000101)
- Pin(1225 3425 60 20 "2" "2" 0x00000001)
- ElementArc (1275 3425 100 100 180 360 10)
- Mark (1325 3425)
-)
-
-Element(0x00000000 "vertical, 95 mils center pole" "U1" "TINIm#90-RevD" 5750 1760 2 100 0x00000000)
-(
- Pin(5350 1625 60 30 "1" "1" 0x00000101)
- Pin(5300 1525 60 30 "2" "2" 0x00000001)
- Pin(5250 1625 60 30 "3" "3" 0x00000001)
- Pin(5200 1525 60 30 "4" "4" 0x00000001)
- Pin(5150 1625 60 30 "5" "5" 0x00000001)
- Pin(5100 1525 60 30 "6" "6" 0x00000001)
- Pin(5050 1625 60 30 "7" "7" 0x00000001)
- Pin(5000 1525 60 30 "8" "8" 0x00000001)
- Pin(4950 1625 60 30 "9" "9" 0x00000001)
- Pin(4900 1525 60 30 "10" "10" 0x00000001)
- Pin(4850 1625 60 30 "11" "11" 0x00000001)
- Pin(4800 1525 60 30 "12" "12" 0x00000001)
- Pin(4750 1625 60 30 "13" "13" 0x00000001)
- Pin(4700 1525 60 30 "14" "14" 0x00000001)
- Pin(4650 1625 60 30 "15" "15" 0x00000001)
- Pin(4600 1525 60 30 "16" "16" 0x00000001)
- Pin(4550 1625 60 30 "17" "17" 0x00000001)
- Pin(4500 1525 60 30 "18" "18" 0x00000001)
- Pin(4450 1625 60 30 "19" "19" 0x00000001)
- Pin(4400 1525 60 30 "20" "20" 0x00000001)
- Pin(4350 1625 60 30 "21" "21" 0x00000001)
- Pin(4300 1525 60 30 "22" "22" 0x00000001)
- Pin(4250 1625 60 30 "23" "23" 0x00000001)
- Pin(4200 1525 60 30 "24" "24" 0x00000001)
- Pin(4150 1625 60 30 "25" "25" 0x00000001)
- Pin(4100 1525 60 30 "26" "26" 0x00000001)
- Pin(4050 1625 60 30 "27" "27" 0x00000001)
- Pin(4000 1525 60 30 "28" "28" 0x00000001)
- Pin(3950 1625 60 30 "29" "29" 0x00000001)
- Pin(3900 1525 60 30 "30" "30" 0x00000001)
- Pin(3850 1625 60 30 "31" "31" 0x00000001)
- Pin(3800 1525 60 30 "32" "32" 0x00000001)
- Pin(3750 1625 60 30 "33" "33" 0x00000001)
- Pin(3700 1525 60 30 "34" "34" 0x00000001)
- Pin(3650 1625 60 30 "35" "35" 0x00000001)
- Pin(3600 1525 60 30 "36" "36" 0x00000001)
- Pin(3350 1625 60 30 "37" "37" 0x00000001)
- Pin(3300 1525 60 30 "38" "38" 0x00000001)
- Pin(3250 1625 60 30 "39" "39" 0x00000001)
- Pin(3200 1525 60 30 "40" "40" 0x00000001)
- Pin(3150 1625 60 30 "41" "41" 0x00000001)
- Pin(3100 1525 60 30 "42" "42" 0x00000001)
- Pin(3050 1625 60 30 "43" "43" 0x00000001)
- Pin(3000 1525 60 30 "44" "44" 0x00000001)
- Pin(2950 1625 60 30 "45" "45" 0x00000001)
- Pin(2900 1525 60 30 "46" "46" 0x00000001)
- Pin(2850 1625 60 30 "47" "47" 0x00000001)
- Pin(2800 1525 60 30 "48" "48" 0x00000001)
- Pin(2750 1625 60 30 "49" "49" 0x00000001)
- Pin(2700 1525 60 30 "50" "50" 0x00000001)
- Pin(2650 1625 60 30 "51" "51" 0x00000001)
- Pin(2600 1525 60 30 "52" "52" 0x00000001)
- Pin(2550 1625 60 30 "53" "53" 0x00000001)
- Pin(2500 1525 60 30 "54" "54" 0x00000001)
- Pin(2450 1625 60 30 "55" "55" 0x00000001)
- Pin(2400 1525 60 30 "56" "56" 0x00000001)
- Pin(2350 1625 60 30 "57" "57" 0x00000001)
- Pin(2300 1525 60 30 "58" "58" 0x00000001)
- Pin(2250 1625 60 30 "59" "59" 0x00000001)
- Pin(2200 1525 60 30 "60" "60" 0x00000001)
- Pin(2150 1625 60 30 "61" "61" 0x00000001)
- Pin(2100 1525 60 30 "62" "62" 0x00000001)
- Pin(2050 1625 60 30 "63" "63" 0x00000001)
- Pin(2000 1525 60 30 "64" "64" 0x00000001)
- Pin(1950 1625 60 30 "65" "65" 0x00000001)
- Pin(1900 1525 60 30 "66" "66" 0x00000001)
- Pin(1850 1625 60 30 "67" "67" 0x00000001)
- Pin(1800 1525 60 30 "68" "68" 0x00000001)
- Pin(1750 1625 60 30 "69" "69" 0x00000001)
- Pin(1700 1525 60 30 "70" "70" 0x00000001)
- Pin(1650 1625 60 30 "71" "71" 0x00000001)
- Pin(1600 1525 60 30 "72" "72" 0x00000001)
- Pin(5680 1575 84 64 "C1" "73" 0x00000001)
- Pin(3475 1575 115 95 "0" "74" 0x00000001)
- Pin(1275 1575 115 95 "C1" "75" 0x00000001)
- ElementLine (5750 1410 1200 1410 20)
- ElementLine (1200 1410 1200 1700 20)
- ElementLine (1200 1700 5750 1700 20)
- ElementLine (5750 1700 5750 1410 20)
- Mark (5350 1625)
-)
-
-Element(0x00000000 "capacitor_radial" "C3" "10uFx25V" 1175 3825 2 100 0x00000000)
-(
- Pin(1325 3725 60 20 "1" "1" 0x00000101)
- Pin(1225 3725 60 20 "2" "2" 0x00000001)
- ElementArc (1275 3725 100 100 180 360 10)
- Mark (1325 3725)
-)
-
-Element(0x00000000 "generic" "U9" "LT1162" 1725 3555 0 100 0x00000000)
-(
- Pin(1675 3725 60 28 "1" "1" 0x00000101)
- Pin(1775 3725 60 28 "2" "2" 0x00000001)
- Pin(1875 3725 60 28 "3" "3" 0x00000001)
- Pin(1975 3725 60 28 "4" "4" 0x00000001)
- Pin(2075 3725 60 28 "5" "5" 0x00000001)
- Pin(2175 3725 60 28 "6" "6" 0x00000001)
- Pin(2275 3725 60 28 "7" "7" 0x00000001)
- Pin(2375 3725 60 28 "8" "8" 0x00000001)
- Pin(2475 3725 60 28 "9" "9" 0x00000001)
- Pin(2575 3725 60 28 "10" "10" 0x00000001)
- Pin(2675 3725 60 28 "11" "11" 0x00000001)
- Pin(2775 3725 60 28 "12" "12" 0x00000001)
- Pin(2775 3425 60 28 "13" "13" 0x00000001)
- Pin(2675 3425 60 28 "14" "14" 0x00000001)
- Pin(2575 3425 60 28 "15" "15" 0x00000001)
- Pin(2475 3425 60 28 "16" "16" 0x00000001)
- Pin(2375 3425 60 28 "17" "17" 0x00000001)
- Pin(2275 3425 60 28 "18" "18" 0x00000001)
- Pin(2175 3425 60 28 "19" "19" 0x00000001)
- Pin(2075 3425 60 28 "20" "20" 0x00000001)
- Pin(1975 3425 60 28 "21" "21" 0x00000001)
- Pin(1875 3425 60 28 "22" "22" 0x00000001)
- Pin(1775 3425 60 28 "23" "23" 0x00000001)
- Pin(1675 3425 60 28 "24" "24" 0x00000001)
- ElementLine (1625 3775 2825 3775 10)
- ElementLine (2825 3775 2825 3375 10)
- ElementLine (2825 3375 1625 3375 10)
- ElementLine (1625 3775 1625 3625 10)
- ElementLine (1625 3525 1625 3375 10)
- ElementArc (1625 3575 50 50 90 180 10)
- Mark (1675 3725)
-)
-
-Element(0x00000000 "eurocard1" "" "EUROCARD1" 6760 50 3 100 0x00000000)
-(
- Pin(525 275 120 80 "M1" "1" 0x00000001)
- Pin(525 3762 120 80 "M2" "2" 0x00000001)
- Pin(6575 275 120 80 "M3" "3" 0x00000001)
- Pin(6575 3762 120 80 "M4" "4" 0x00000001)
- ElementLine (400 50 400 3987 20)
- ElementLine (400 3987 6700 3987 20)
- ElementLine (6700 3987 6700 50 20)
- ElementLine (6700 50 400 50 20)
- Mark (400 50)
-)
-Layer(1 "solder")
-(
-)
-Layer(2 "GND-sldr")
-(
-)
-Layer(3 "Vcc-sldr")
-(
-)
-Layer(4 "component")
-(
-)
-Layer(5 "GND-comp")
-(
-)
-Layer(6 "Vcc-comp")
-(
-)
-Layer(7 "unused")
-(
-)
-Layer(8 "unused")
-(
-)
+++ /dev/null
-# release: pcb 1.6.3
-# date: Sun Feb 2 23:13:37 2003
-# user: fetter (Walter Fetter Lages,,,)
-# host: diehard.home
-
-PCB("" 7000 4100)
-
-Grid(25 0 0)
-Cursor(25 625 3)
-Flags(0x000000d0)
-Groups("1,2,3,s:4,5,6,c:7:8:")
-Styles("Signal,10,40,20:Power,25,60,35:Fat,40,60,35:Skinny,8,36,20")
-
-Symbol(' ' 18)
-(
-)
-Symbol('!' 12)
-(
- SymbolLine(0 35 0 40 8)
- SymbolLine(0 0 0 25 8)
-)
-Symbol('"' 12)
-(
- SymbolLine(0 0 0 10 8)
- SymbolLine(10 0 10 10 8)
-)
-Symbol('#' 12)
-(
- SymbolLine(0 25 20 25 8)
- SymbolLine(0 15 20 15 8)
- SymbolLine(15 10 15 30 8)
- SymbolLine(5 10 5 30 8)
-)
-Symbol('$' 12)
-(
- SymbolLine(15 5 20 10 8)
- SymbolLine(5 5 15 5 8)
- SymbolLine(0 10 5 5 8)
- SymbolLine(0 10 0 15 8)
- SymbolLine(0 15 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 30 8)
- SymbolLine(15 35 20 30 8)
- SymbolLine(5 35 15 35 8)
- SymbolLine(0 30 5 35 8)
- SymbolLine(10 0 10 40 8)
-)
-Symbol('%' 12)
-(
- SymbolLine(0 5 0 10 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 10 0 8)
- SymbolLine(10 0 15 5 8)
- SymbolLine(15 5 15 10 8)
- SymbolLine(10 15 15 10 8)
- SymbolLine(5 15 10 15 8)
- SymbolLine(0 10 5 15 8)
- SymbolLine(0 40 40 0 8)
- SymbolLine(35 40 40 35 8)
- SymbolLine(40 30 40 35 8)
- SymbolLine(35 25 40 30 8)
- SymbolLine(30 25 35 25 8)
- SymbolLine(25 30 30 25 8)
- SymbolLine(25 30 25 35 8)
- SymbolLine(25 35 30 40 8)
- SymbolLine(30 40 35 40 8)
-)
-Symbol('&' 12)
-(
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 5 0 15 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 25 15 10 8)
- SymbolLine(5 40 10 40 8)
- SymbolLine(10 40 20 30 8)
- SymbolLine(0 15 25 40 8)
- SymbolLine(5 0 10 0 8)
- SymbolLine(10 0 15 5 8)
- SymbolLine(15 5 15 10 8)
- SymbolLine(0 25 0 35 8)
-)
-Symbol(''' 12)
-(
- SymbolLine(0 10 10 0 8)
-)
-Symbol('(' 12)
-(
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 5 0 35 8)
-)
-Symbol(')' 12)
-(
- SymbolLine(0 0 5 5 8)
- SymbolLine(5 5 5 35 8)
- SymbolLine(0 40 5 35 8)
-)
-Symbol('*' 12)
-(
- SymbolLine(0 10 20 30 8)
- SymbolLine(0 30 20 10 8)
- SymbolLine(0 20 20 20 8)
- SymbolLine(10 10 10 30 8)
-)
-Symbol('+' 12)
-(
- SymbolLine(0 20 20 20 8)
- SymbolLine(10 10 10 30 8)
-)
-Symbol(',' 12)
-(
- SymbolLine(0 50 10 40 8)
-)
-Symbol('-' 12)
-(
- SymbolLine(0 20 20 20 8)
-)
-Symbol('.' 12)
-(
- SymbolLine(0 40 5 40 8)
-)
-Symbol('/' 12)
-(
- SymbolLine(0 35 30 5 8)
-)
-Symbol('0' 12)
-(
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 30 20 10 8)
-)
-Symbol('1' 12)
-(
- SymbolLine(5 40 15 40 8)
- SymbolLine(10 0 10 40 8)
- SymbolLine(0 10 10 0 8)
-)
-Symbol('2' 12)
-(
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 20 0 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 15 8)
- SymbolLine(0 40 25 15 8)
- SymbolLine(0 40 25 40 8)
-)
-Symbol('3' 12)
-(
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 20 20 20 8)
-)
-Symbol('4' 12)
-(
- SymbolLine(0 20 20 0 8)
- SymbolLine(0 20 25 20 8)
- SymbolLine(20 0 20 40 8)
-)
-Symbol('5' 12)
-(
- SymbolLine(0 0 20 0 8)
- SymbolLine(0 0 0 20 8)
- SymbolLine(0 20 5 15 8)
- SymbolLine(5 15 15 15 8)
- SymbolLine(15 15 20 20 8)
- SymbolLine(20 20 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
-)
-Symbol('6' 12)
-(
- SymbolLine(15 0 20 5 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(0 20 15 20 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(20 25 20 35 8)
-)
-Symbol('7' 12)
-(
- SymbolLine(0 40 25 15 8)
- SymbolLine(25 0 25 15 8)
- SymbolLine(0 0 25 0 8)
-)
-Symbol('8' 12)
-(
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 15 5 20 8)
- SymbolLine(0 5 0 15 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 15 8)
- SymbolLine(15 20 20 15 8)
-)
-Symbol('9' 12)
-(
- SymbolLine(0 40 20 20 8)
- SymbolLine(20 5 20 20 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 5 0 15 8)
- SymbolLine(0 15 5 20 8)
- SymbolLine(5 20 20 20 8)
-)
-Symbol(':' 12)
-(
- SymbolLine(0 15 5 15 8)
- SymbolLine(0 25 5 25 8)
-)
-Symbol(';' 12)
-(
- SymbolLine(0 40 10 30 8)
- SymbolLine(10 15 10 20 8)
-)
-Symbol('<' 12)
-(
- SymbolLine(0 20 10 10 8)
- SymbolLine(0 20 10 30 8)
-)
-Symbol('=' 12)
-(
- SymbolLine(0 15 20 15 8)
- SymbolLine(0 25 20 25 8)
-)
-Symbol('>' 12)
-(
- SymbolLine(0 10 10 20 8)
- SymbolLine(0 30 10 20 8)
-)
-Symbol('?' 12)
-(
- SymbolLine(10 20 10 25 8)
- SymbolLine(10 35 10 40 8)
- SymbolLine(0 5 0 10 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 10 8)
- SymbolLine(10 20 20 10 8)
-)
-Symbol('A' 12)
-(
- SymbolLine(0 5 0 40 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 20 0 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 40 8)
- SymbolLine(0 20 25 20 8)
-)
-Symbol('B' 12)
-(
- SymbolLine(0 40 20 40 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(25 25 25 35 8)
- SymbolLine(20 20 25 25 8)
- SymbolLine(5 20 20 20 8)
- SymbolLine(5 0 5 40 8)
- SymbolLine(0 0 20 0 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 15 8)
- SymbolLine(20 20 25 15 8)
-)
-Symbol('C' 12)
-(
- SymbolLine(5 40 20 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 20 0 8)
-)
-Symbol('D' 12)
-(
- SymbolLine(5 0 5 40 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 35 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(0 40 20 40 8)
- SymbolLine(0 0 20 0 8)
-)
-Symbol('E' 12)
-(
- SymbolLine(0 20 15 20 8)
- SymbolLine(0 40 20 40 8)
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 0 20 0 8)
-)
-Symbol('F' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 0 20 0 8)
- SymbolLine(0 20 15 20 8)
-)
-Symbol('G' 12)
-(
- SymbolLine(20 0 25 5 8)
- SymbolLine(5 0 20 0 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 20 40 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(25 25 25 35 8)
- SymbolLine(20 20 25 25 8)
- SymbolLine(10 20 20 20 8)
-)
-Symbol('H' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(25 0 25 40 8)
- SymbolLine(0 20 25 20 8)
-)
-Symbol('I' 12)
-(
- SymbolLine(0 0 10 0 8)
- SymbolLine(5 0 5 40 8)
- SymbolLine(0 40 10 40 8)
-)
-Symbol('J' 12)
-(
- SymbolLine(0 0 15 0 8)
- SymbolLine(15 0 15 35 8)
- SymbolLine(10 40 15 35 8)
- SymbolLine(5 40 10 40 8)
- SymbolLine(0 35 5 40 8)
-)
-Symbol('K' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 20 20 0 8)
- SymbolLine(0 20 20 40 8)
-)
-Symbol('L' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 40 20 40 8)
-)
-Symbol('M' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 0 15 15 8)
- SymbolLine(15 15 30 0 8)
- SymbolLine(30 0 30 40 8)
-)
-Symbol('N' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 0 0 5 8)
- SymbolLine(0 5 25 30 8)
- SymbolLine(25 0 25 40 8)
-)
-Symbol('O' 12)
-(
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
-)
-Symbol('P' 12)
-(
- SymbolLine(5 0 5 40 8)
- SymbolLine(0 0 20 0 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 15 8)
- SymbolLine(20 20 25 15 8)
- SymbolLine(5 20 20 20 8)
-)
-Symbol('Q' 12)
-(
- SymbolLine(0 5 0 35 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 15 0 8)
- SymbolLine(15 0 20 5 8)
- SymbolLine(20 5 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(10 30 20 40 8)
-)
-Symbol('R' 12)
-(
- SymbolLine(0 0 20 0 8)
- SymbolLine(20 0 25 5 8)
- SymbolLine(25 5 25 15 8)
- SymbolLine(20 20 25 15 8)
- SymbolLine(5 20 20 20 8)
- SymbolLine(5 0 5 40 8)
- SymbolLine(5 20 25 40 8)
-)
-Symbol('S' 12)
-(
- SymbolLine(20 0 25 5 8)
- SymbolLine(5 0 20 0 8)
- SymbolLine(0 5 5 0 8)
- SymbolLine(0 5 0 15 8)
- SymbolLine(0 15 5 20 8)
- SymbolLine(5 20 20 20 8)
- SymbolLine(20 20 25 25 8)
- SymbolLine(25 25 25 35 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(5 40 20 40 8)
- SymbolLine(0 35 5 40 8)
-)
-Symbol('T' 12)
-(
- SymbolLine(0 0 20 0 8)
- SymbolLine(10 0 10 40 8)
-)
-Symbol('U' 12)
-(
- SymbolLine(0 0 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(20 0 20 35 8)
-)
-Symbol('V' 12)
-(
- SymbolLine(0 0 0 30 8)
- SymbolLine(0 30 10 40 8)
- SymbolLine(10 40 20 30 8)
- SymbolLine(20 0 20 30 8)
-)
-Symbol('W' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 40 15 25 8)
- SymbolLine(15 25 30 40 8)
- SymbolLine(30 0 30 40 8)
-)
-Symbol('X' 12)
-(
- SymbolLine(0 0 0 5 8)
- SymbolLine(0 5 25 30 8)
- SymbolLine(25 30 25 40 8)
- SymbolLine(0 30 0 40 8)
- SymbolLine(0 30 25 5 8)
- SymbolLine(25 0 25 5 8)
-)
-Symbol('Y' 12)
-(
- SymbolLine(0 0 0 5 8)
- SymbolLine(0 5 10 15 8)
- SymbolLine(10 15 20 5 8)
- SymbolLine(20 0 20 5 8)
- SymbolLine(10 15 10 40 8)
-)
-Symbol('Z' 12)
-(
- SymbolLine(0 0 25 0 8)
- SymbolLine(25 0 25 5 8)
- SymbolLine(0 30 25 5 8)
- SymbolLine(0 30 0 40 8)
- SymbolLine(0 40 25 40 8)
-)
-Symbol('[' 12)
-(
- SymbolLine(0 0 5 0 8)
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 40 5 40 8)
-)
-Symbol('\' 12)
-(
- SymbolLine(0 5 30 35 8)
-)
-Symbol(']' 12)
-(
- SymbolLine(0 0 5 0 8)
- SymbolLine(5 0 5 40 8)
- SymbolLine(0 40 5 40 8)
-)
-Symbol('^' 12)
-(
- SymbolLine(0 5 5 0 8)
- SymbolLine(5 0 10 5 8)
-)
-Symbol('_' 12)
-(
- SymbolLine(0 40 20 40 8)
-)
-Symbol('a' 12)
-(
- SymbolLine(15 20 20 25 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(20 20 20 35 8)
- SymbolLine(20 35 25 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
-)
-Symbol('b' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(20 25 20 35 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(0 25 5 20 8)
-)
-Symbol('c' 12)
-(
- SymbolLine(5 20 20 20 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 20 40 8)
-)
-Symbol('d' 12)
-(
- SymbolLine(20 0 20 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
-)
-Symbol('e' 12)
-(
- SymbolLine(5 40 20 40 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(0 30 20 30 8)
- SymbolLine(20 30 20 25 8)
-)
-Symbol('f' 10)
-(
- SymbolLine(5 5 5 40 8)
- SymbolLine(5 5 10 0 8)
- SymbolLine(10 0 15 0 8)
- SymbolLine(0 20 10 20 8)
-)
-Symbol('g' 12)
-(
- SymbolLine(15 20 20 25 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(0 50 5 55 8)
- SymbolLine(5 55 15 55 8)
- SymbolLine(15 55 20 50 8)
- SymbolLine(20 20 20 50 8)
-)
-Symbol('h' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 40 8)
-)
-Symbol('i' 10)
-(
- SymbolLine(0 10 0 15 8)
- SymbolLine(0 25 0 40 8)
-)
-Symbol('j' 10)
-(
- SymbolLine(5 10 5 15 8)
- SymbolLine(5 25 5 50 8)
- SymbolLine(0 55 5 50 8)
-)
-Symbol('k' 12)
-(
- SymbolLine(0 0 0 40 8)
- SymbolLine(0 25 15 40 8)
- SymbolLine(0 25 10 15 8)
-)
-Symbol('l' 10)
-(
- SymbolLine(0 0 0 35 8)
- SymbolLine(0 35 5 40 8)
-)
-Symbol('m' 12)
-(
- SymbolLine(5 25 5 40 8)
- SymbolLine(5 25 10 20 8)
- SymbolLine(10 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 40 8)
- SymbolLine(20 25 25 20 8)
- SymbolLine(25 20 30 20 8)
- SymbolLine(30 20 35 25 8)
- SymbolLine(35 25 35 40 8)
- SymbolLine(0 20 5 25 8)
-)
-Symbol('n' 12)
-(
- SymbolLine(5 25 5 40 8)
- SymbolLine(5 25 10 20 8)
- SymbolLine(10 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 40 8)
- SymbolLine(0 20 5 25 8)
-)
-Symbol('o' 12)
-(
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(20 25 20 35 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(0 35 5 40 8)
-)
-Symbol('p' 12)
-(
- SymbolLine(5 25 5 55 8)
- SymbolLine(0 20 5 25 8)
- SymbolLine(5 25 10 20 8)
- SymbolLine(10 20 20 20 8)
- SymbolLine(20 20 25 25 8)
- SymbolLine(25 25 25 35 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(10 40 20 40 8)
- SymbolLine(5 35 10 40 8)
-)
-Symbol('q' 12)
-(
- SymbolLine(20 25 20 55 8)
- SymbolLine(15 20 20 25 8)
- SymbolLine(5 20 15 20 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(0 25 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
-)
-Symbol('r' 12)
-(
- SymbolLine(5 25 5 40 8)
- SymbolLine(5 25 10 20 8)
- SymbolLine(10 20 20 20 8)
- SymbolLine(0 20 5 25 8)
-)
-Symbol('s' 12)
-(
- SymbolLine(5 40 20 40 8)
- SymbolLine(20 40 25 35 8)
- SymbolLine(20 30 25 35 8)
- SymbolLine(5 30 20 30 8)
- SymbolLine(0 25 5 30 8)
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 20 20 8)
- SymbolLine(20 20 25 25 8)
- SymbolLine(0 35 5 40 8)
-)
-Symbol('t' 10)
-(
- SymbolLine(5 0 5 35 8)
- SymbolLine(5 35 10 40 8)
- SymbolLine(0 15 10 15 8)
-)
-Symbol('u' 12)
-(
- SymbolLine(0 20 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
- SymbolLine(20 20 20 35 8)
-)
-Symbol('v' 12)
-(
- SymbolLine(0 20 0 30 8)
- SymbolLine(0 30 10 40 8)
- SymbolLine(10 40 20 30 8)
- SymbolLine(20 20 20 30 8)
-)
-Symbol('w' 12)
-(
- SymbolLine(0 20 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(5 40 10 40 8)
- SymbolLine(10 40 15 35 8)
- SymbolLine(15 20 15 35 8)
- SymbolLine(15 35 20 40 8)
- SymbolLine(20 40 25 40 8)
- SymbolLine(25 40 30 35 8)
- SymbolLine(30 20 30 35 8)
-)
-Symbol('x' 12)
-(
- SymbolLine(0 20 20 40 8)
- SymbolLine(0 40 20 20 8)
-)
-Symbol('y' 12)
-(
- SymbolLine(0 20 0 35 8)
- SymbolLine(0 35 5 40 8)
- SymbolLine(20 20 20 50 8)
- SymbolLine(15 55 20 50 8)
- SymbolLine(5 55 15 55 8)
- SymbolLine(0 50 5 55 8)
- SymbolLine(5 40 15 40 8)
- SymbolLine(15 40 20 35 8)
-)
-Symbol('z' 12)
-(
- SymbolLine(0 20 20 20 8)
- SymbolLine(0 40 20 20 8)
- SymbolLine(0 40 20 40 8)
-)
-Symbol('{' 12)
-(
- SymbolLine(5 5 10 0 8)
- SymbolLine(5 5 5 15 8)
- SymbolLine(0 20 5 15 8)
- SymbolLine(0 20 5 25 8)
- SymbolLine(5 25 5 35 8)
- SymbolLine(5 35 10 40 8)
-)
-Symbol('|' 12)
-(
- SymbolLine(0 0 0 40 8)
-)
-Symbol('}' 12)
-(
- SymbolLine(0 0 5 5 8)
- SymbolLine(5 5 5 15 8)
- SymbolLine(5 15 10 20 8)
- SymbolLine(5 25 10 20 8)
- SymbolLine(5 25 5 35 8)
- SymbolLine(0 40 5 35 8)
-)
-Symbol('~' 12)
-(
- SymbolLine(0 25 5 20 8)
- SymbolLine(5 20 10 20 8)
- SymbolLine(10 20 15 25 8)
- SymbolLine(15 25 20 25 8)
- SymbolLine(20 25 25 20 8)
-)
-Via(5875 3600 60 35 "" 0x00000002)
-Via(4000 3425 60 35 "" 0x00000002)
-Via(4700 3425 60 35 "" 0x00000002)
-Via(4850 3425 60 35 "" 0x00000002)
-Via(5550 3425 60 35 "" 0x00000002)
-Via(5975 2600 60 35 "" 0x00000002)
-Via(5350 2600 60 35 "" 0x00000002)
-Via(5350 3075 60 35 "" 0x00000002)
-Via(5975 3075 60 35 "" 0x00000002)
-Via(5875 2775 60 35 "" 0x00000002)
-Via(6075 2875 60 35 "" 0x00000002)
-Via(5350 3275 60 35 "" 0x00000002)
-Via(3900 3175 60 35 "" 0x00000002)
-Via(4700 3175 60 35 "" 0x00000002)
-Via(6175 3425 60 35 "" 0x00000002)
-Via(6075 2675 60 35 "" 0x00000002)
-Via(5875 2225 60 35 "" 0x00000002)
-Via(4575 3425 60 35 "" 0x00000002)
-Via(5575 2200 60 35 "" 0x00000002)
-Via(6175 1025 60 35 "" 0x00000002)
-Via(6425 1025 60 35 "" 0x00000002)
-Via(5625 1075 60 35 "" 0x00000002)
-Via(5925 475 60 35 "" 0x00000002)
-Via(5325 475 60 35 "" 0x00000002)
-Via(4825 475 60 35 "" 0x00000002)
-Via(5125 400 60 35 "" 0x00000002)
-Via(5725 400 60 35 "" 0x00000002)
-Via(3975 725 60 35 "" 0x00000002)
-Via(4825 725 60 35 "" 0x00000002)
-Via(5325 725 60 35 "" 0x00000002)
-Via(5875 725 60 35 "" 0x00000002)
-Via(4925 950 60 35 "" 0x00000002)
-Via(1350 950 60 35 "" 0x00000002)
-Via(1700 950 60 35 "" 0x00000002)
-Via(2325 950 60 35 "" 0x00000002)
-Via(3175 3175 60 35 "" 0x00000002)
-Via(3225 3925 60 35 "" 0x00000002)
-Via(2350 2450 60 35 "" 0x00000002)
-Via(2650 2450 60 35 "" 0x00000002)
-Via(1350 2450 60 35 "" 0x00000002)
-Via(1250 3025 60 35 "" 0x00000002)
-Via(1250 2900 60 35 "" 0x00000002)
-Via(1250 2750 60 35 "" 0x00000002)
-Via(4225 1000 60 35 "" 0x00000002)
-Via(5200 1000 60 35 "" 0x00000002)
-Via(3100 1000 60 35 "" 0x00000002)
-Via(4425 950 60 35 "" 0x00000002)
-Via(1975 3050 60 35 "" 0x00000002)
-Via(1225 3925 60 35 "" 0x00000002)
-Via(2075 3925 60 35 "" 0x00000002)
-Via(2675 3925 60 35 "" 0x00000002)
-Via(3550 3175 60 35 "" 0x00000002)
-Via(725 3925 60 35 "" 0x00000002)
-Via(6425 200 60 28 "" 0x00000002)
-Via(6175 350 60 28 "" 0x00000002)
-Via(5925 650 60 28 "" 0x00000002)
-Via(6175 875 60 28 "" 0x00000002)
-Via(6100 1300 60 28 "" 0x00000002)
-Via(2900 1300 60 28 "" 0x00000002)
-Via(6150 525 60 28 "" 0x00000002)
-Via(4025 475 60 28 "" 0x00000002)
-Via(1100 1125 60 28 "" 0x00000002)
-Via(2575 1725 60 28 "" 0x00000002)
-Via(6325 1725 60 28 "" 0x00000002)
-Via(3500 1300 60 28 "" 0x00000002)
-Via(3300 525 60 28 "" 0x00000002)
-
-Element(0x00000000 "eurocard1" "" "EUROCARD1" 6760 50 3 100 0x00000000)
-(
- Pin(525 275 120 80 "M1" "1" 0x00000001)
- Pin(525 3762 120 80 "M2" "2" 0x00000001)
- Pin(6575 275 120 80 "M3" "3" 0x00000001)
- Pin(6575 3762 120 80 "M4" "4" 0x00000001)
- ElementLine (6700 50 400 50 20)
- ElementLine (6700 3987 6700 50 20)
- ElementLine (400 3987 6700 3987 20)
- ElementLine (400 50 400 3987 20)
- Mark (400 50)
-)
-
-Element(0x00000000 "generic" "U9" "LT1162" 1725 3555 0 100 0x00000000)
-(
- Pin(1675 3725 60 28 "1" "1" 0x00000101)
- Pin(1775 3725 60 28 "2" "2" 0x00000001)
- Pin(1875 3725 60 28 "3" "3" 0x00000001)
- Pin(1975 3725 60 28 "4" "4" 0x00000001)
- Pin(2075 3725 60 28 "5" "5" 0x00000001)
- Pin(2175 3725 60 28 "6" "6" 0x00000001)
- Pin(2275 3725 60 28 "7" "7" 0x00000001)
- Pin(2375 3725 60 28 "8" "8" 0x00000001)
- Pin(2475 3725 60 28 "9" "9" 0x00000001)
- Pin(2575 3725 60 28 "10" "10" 0x00000001)
- Pin(2675 3725 60 28 "11" "11" 0x00000001)
- Pin(2775 3725 60 28 "12" "12" 0x00000001)
- Pin(2775 3425 60 28 "13" "13" 0x00000001)
- Pin(2675 3425 60 28 "14" "14" 0x00000001)
- Pin(2575 3425 60 28 "15" "15" 0x00000001)
- Pin(2475 3425 60 28 "16" "16" 0x00000001)
- Pin(2375 3425 60 28 "17" "17" 0x00000001)
- Pin(2275 3425 60 28 "18" "18" 0x00000001)
- Pin(2175 3425 60 28 "19" "19" 0x00000001)
- Pin(2075 3425 60 28 "20" "20" 0x00000001)
- Pin(1975 3425 60 28 "21" "21" 0x00000001)
- Pin(1875 3425 60 28 "22" "22" 0x00000001)
- Pin(1775 3425 60 28 "23" "23" 0x00000001)
- Pin(1675 3425 60 28 "24" "24" 0x00000001)
- ElementLine (1625 3525 1625 3375 10)
- ElementLine (1625 3775 1625 3625 10)
- ElementLine (2825 3375 1625 3375 10)
- ElementLine (2825 3775 2825 3375 10)
- ElementLine (1625 3775 2825 3775 10)
- ElementArc (1625 3575 50 50 90 180 10)
- Mark (1675 3725)
-)
-
-Element(0x00000000 "capacitor_radial" "C3" "10uFx25V" 1175 3825 2 100 0x00000000)
-(
- Pin(1325 3725 60 20 "1" "1" 0x00000101)
- Pin(1225 3725 60 20 "2" "2" 0x00000001)
- ElementArc (1275 3725 100 100 180 360 10)
- Mark (1325 3725)
-)
-
-Element(0x00000000 "vertical, 95 mils center pole" "U1" "TINIm#90-RevD" 5750 1760 2 100 0x00000000)
-(
- Pin(5350 1625 60 30 "1" "1" 0x00000101)
- Pin(5300 1525 60 30 "2" "2" 0x00000001)
- Pin(5250 1625 60 30 "3" "3" 0x00000001)
- Pin(5200 1525 60 30 "4" "4" 0x00000001)
- Pin(5150 1625 60 30 "5" "5" 0x00000001)
- Pin(5100 1525 60 30 "6" "6" 0x00000001)
- Pin(5050 1625 60 30 "7" "7" 0x00000001)
- Pin(5000 1525 60 30 "8" "8" 0x00000001)
- Pin(4950 1625 60 30 "9" "9" 0x00000001)
- Pin(4900 1525 60 30 "10" "10" 0x00000001)
- Pin(4850 1625 60 30 "11" "11" 0x00000001)
- Pin(4800 1525 60 30 "12" "12" 0x00000001)
- Pin(4750 1625 60 30 "13" "13" 0x00000001)
- Pin(4700 1525 60 30 "14" "14" 0x00000001)
- Pin(4650 1625 60 30 "15" "15" 0x00000001)
- Pin(4600 1525 60 30 "16" "16" 0x00000001)
- Pin(4550 1625 60 30 "17" "17" 0x00000001)
- Pin(4500 1525 60 30 "18" "18" 0x00000001)
- Pin(4450 1625 60 30 "19" "19" 0x00000001)
- Pin(4400 1525 60 30 "20" "20" 0x00000001)
- Pin(4350 1625 60 30 "21" "21" 0x00000001)
- Pin(4300 1525 60 30 "22" "22" 0x00000001)
- Pin(4250 1625 60 30 "23" "23" 0x00000001)
- Pin(4200 1525 60 30 "24" "24" 0x00000001)
- Pin(4150 1625 60 30 "25" "25" 0x00000001)
- Pin(4100 1525 60 30 "26" "26" 0x00000001)
- Pin(4050 1625 60 30 "27" "27" 0x00000001)
- Pin(4000 1525 60 30 "28" "28" 0x00000001)
- Pin(3950 1625 60 30 "29" "29" 0x00000001)
- Pin(3900 1525 60 30 "30" "30" 0x00000001)
- Pin(3850 1625 60 30 "31" "31" 0x00000001)
- Pin(3800 1525 60 30 "32" "32" 0x00000001)
- Pin(3750 1625 60 30 "33" "33" 0x00000001)
- Pin(3700 1525 60 30 "34" "34" 0x00000001)
- Pin(3650 1625 60 30 "35" "35" 0x00000001)
- Pin(3600 1525 60 30 "36" "36" 0x00000001)
- Pin(3350 1625 60 30 "37" "37" 0x00000001)
- Pin(3300 1525 60 30 "38" "38" 0x00000001)
- Pin(3250 1625 60 30 "39" "39" 0x00000001)
- Pin(3200 1525 60 30 "40" "40" 0x00000001)
- Pin(3150 1625 60 30 "41" "41" 0x00000001)
- Pin(3100 1525 60 30 "42" "42" 0x00000001)
- Pin(3050 1625 60 30 "43" "43" 0x00000001)
- Pin(3000 1525 60 30 "44" "44" 0x00000001)
- Pin(2950 1625 60 30 "45" "45" 0x00000001)
- Pin(2900 1525 60 30 "46" "46" 0x00000001)
- Pin(2850 1625 60 30 "47" "47" 0x00000001)
- Pin(2800 1525 60 30 "48" "48" 0x00000001)
- Pin(2750 1625 60 30 "49" "49" 0x00000001)
- Pin(2700 1525 60 30 "50" "50" 0x00000001)
- Pin(2650 1625 60 30 "51" "51" 0x00000001)
- Pin(2600 1525 60 30 "52" "52" 0x00000001)
- Pin(2550 1625 60 30 "53" "53" 0x00000001)
- Pin(2500 1525 60 30 "54" "54" 0x00000001)
- Pin(2450 1625 60 30 "55" "55" 0x00000001)
- Pin(2400 1525 60 30 "56" "56" 0x00000001)
- Pin(2350 1625 60 30 "57" "57" 0x00000001)
- Pin(2300 1525 60 30 "58" "58" 0x00000001)
- Pin(2250 1625 60 30 "59" "59" 0x00000001)
- Pin(2200 1525 60 30 "60" "60" 0x00000001)
- Pin(2150 1625 60 30 "61" "61" 0x00000001)
- Pin(2100 1525 60 30 "62" "62" 0x00000001)
- Pin(2050 1625 60 30 "63" "63" 0x00000001)
- Pin(2000 1525 60 30 "64" "64" 0x00000001)
- Pin(1950 1625 60 30 "65" "65" 0x00000001)
- Pin(1900 1525 60 30 "66" "66" 0x00000001)
- Pin(1850 1625 60 30 "67" "67" 0x00000001)
- Pin(1800 1525 60 30 "68" "68" 0x00000001)
- Pin(1750 1625 60 30 "69" "69" 0x00000001)
- Pin(1700 1525 60 30 "70" "70" 0x00000001)
- Pin(1650 1625 60 30 "71" "71" 0x00000001)
- Pin(1600 1525 60 30 "72" "72" 0x00000001)
- Pin(5680 1575 84 64 "C1" "73" 0x00000001)
- Pin(3475 1575 115 95 "0" "74" 0x00000001)
- Pin(1275 1575 115 95 "C1" "75" 0x00000001)
- ElementLine (5750 1700 5750 1410 20)
- ElementLine (1200 1700 5750 1700 20)
- ElementLine (1200 1410 1200 1700 20)
- ElementLine (5750 1410 1200 1410 20)
- Mark (5350 1625)
-)
-
-Element(0x00000000 "capacitor_radial" "C5" "1uFx25V" 1175 3525 2 100 0x00000000)
-(
- Pin(1325 3425 60 20 "1" "1" 0x00000101)
- Pin(1225 3425 60 20 "2" "2" 0x00000001)
- ElementArc (1275 3425 100 100 180 360 10)
- Mark (1325 3425)
-)
-
-Element(0x00000000 "capacitor_radial" "C6" "1uFx25V" 3275 3325 0 100 0x00000000)
-(
- Pin(3125 3425 60 20 "1" "1" 0x00000101)
- Pin(3225 3425 60 20 "2" "2" 0x00000001)
- ElementArc (3175 3425 100 100 0 360 10)
- Mark (3125 3425)
-)
-
-Element(0x00000000 "generic" "U10" "MAX4429" 3600 2730 0 100 0x00000000)
-(
- Pin(3550 2900 60 28 "1" "1" 0x00000101)
- Pin(3650 2900 60 28 "2" "2" 0x00000001)
- Pin(3750 2900 60 28 "3" "3" 0x00000001)
- Pin(3850 2900 60 28 "4" "4" 0x00000001)
- Pin(3850 2600 60 28 "5" "5" 0x00000001)
- Pin(3750 2600 60 28 "6" "6" 0x00000001)
- Pin(3650 2600 60 28 "7" "7" 0x00000001)
- Pin(3550 2600 60 28 "8" "8" 0x00000001)
- ElementLine (3500 2700 3500 2550 10)
- ElementLine (3500 2950 3500 2800 10)
- ElementLine (3900 2550 3500 2550 10)
- ElementLine (3900 2950 3900 2550 10)
- ElementLine (3500 2950 3900 2950 10)
- ElementArc (3500 2750 50 50 90 180 10)
- Mark (3550 2900)
-)
-
-Element(0x00000000 "shielded" "J2" "RJ 45" 1250 1128 2 100 0x00000000)
-(
- Pin(1075 575 60 30 "1" "1" 0x00000101)
- Pin(1175 625 60 30 "2" "2" 0x00000001)
- Pin(1075 675 60 30 "3" "3" 0x00000001)
- Pin(1175 725 60 30 "4" "4" 0x00000001)
- Pin(1075 775 60 30 "5" "5" 0x00000001)
- Pin(1175 825 60 30 "6" "6" 0x00000001)
- Pin(1075 875 60 30 "7" "7" 0x00000001)
- Pin(1175 925 60 30 "8" "8" 0x00000001)
- Pin(825 525 148 128 "C1" "9" 0x00000001)
- Pin(825 976 148 128 "C1" "10" 0x00000001)
- Pin(945 445 82 62 "C1" "11" 0x00000001)
- Pin(945 1056 82 62 "C1" "12" 0x00000001)
- ElementLine (1250 433 400 433 20)
- ElementLine (400 433 400 1068 20)
- ElementLine (400 1068 1250 1068 20)
- ElementLine (1250 1068 1250 433 20)
- Mark (1075 575)
-)
-
-Element(0x00000000 "capacitor_radial" "C10" "4.7uFx16V" 3325 2800 0 100 0x00000000)
-(
- Pin(3175 2900 60 20 "1" "1" 0x00000101)
- Pin(3275 2900 60 20 "2" "2" 0x00000001)
- ElementArc (3225 2900 100 100 0 360 10)
- Mark (3175 2900)
-)
-
-Element(0x00000000 "optical coupling device" "U4" "6N136" 5775 405 0 100 0x00000000)
-(
- Pin(5725 575 60 28 "NC" "1" 0x00000101)
- Pin(5825 575 60 28 "A+" "2" 0x00000001)
- Pin(5925 575 60 28 "K-" "3" 0x00000001)
- Pin(6025 575 60 28 "NC" "4" 0x00000001)
- Pin(6025 275 60 28 "Gnd" "5" 0x00000001)
- Pin(5925 275 60 28 "Out" "6" 0x00000001)
- Pin(5825 275 60 28 "En" "7" 0x00000001)
- Pin(5725 275 60 28 "Vcc" "8" 0x00000001)
- ElementLine (5675 375 5675 225 10)
- ElementLine (5675 625 5675 475 10)
- ElementLine (6075 225 5675 225 10)
- ElementLine (6075 625 6075 225 10)
- ElementLine (5675 625 6075 625 10)
- ElementArc (5675 425 50 50 90 180 10)
- Mark (5725 575)
-)
-
-Element(0x00000000 "IRLZ24N" "Q5" "IRLZ24N" 5675 1910 0 100 0x00000000)
-(
- Pin(5775 2100 80 20 "G" "1" 0x00000101)
- Pin(5875 2100 80 20 "D" "2" 0x00000001)
- Pin(5975 2100 80 20 "S" "3" 0x00000001)
- ElementLine (5675 1980 6075 1980 20)
- ElementLine (6075 1980 6075 2160 20)
- ElementLine (6075 2160 5675 2160 20)
- ElementLine (5675 2160 5675 1980 20)
- ElementLine (5675 1980 6075 1980 20)
- ElementLine (6075 1980 6075 2040 20)
- ElementLine (6075 2040 5675 2040 20)
- ElementLine (5675 2040 5675 1980 20)
- ElementLine (5805 1980 5805 2040 10)
- ElementLine (5945 1980 5945 2040 10)
- Mark (5775 2100)
-)
-
-Element(0x00000000 "optical coupling device" "U5" "6N136" 5775 1005 0 100 0x00000000)
-(
- Pin(5725 1175 60 28 "NC" "1" 0x00000101)
- Pin(5825 1175 60 28 "A+" "2" 0x00000001)
- Pin(5925 1175 60 28 "K-" "3" 0x00000001)
- Pin(6025 1175 60 28 "NC" "4" 0x00000001)
- Pin(6025 875 60 28 "Gnd" "5" 0x00000001)
- Pin(5925 875 60 28 "Out" "6" 0x00000001)
- Pin(5825 875 60 28 "En" "7" 0x00000001)
- Pin(5725 875 60 28 "Vcc" "8" 0x00000001)
- ElementLine (5675 975 5675 825 10)
- ElementLine (5675 1225 5675 1075 10)
- ElementLine (6075 825 5675 825 10)
- ElementLine (6075 1225 6075 825 10)
- ElementLine (5675 1225 6075 1225 10)
- ElementArc (5675 1025 50 50 90 180 10)
- Mark (5725 1175)
-)
-
-Element(0x00000000 "diode" "D7" "1N4007" 5795 1825 0 100 0x00000000)
-(
- Pin(5575 1875 50 20 "1" "1" 0x00000101)
- Pin(5875 1875 50 20 "2" "2" 0x00000001)
- ElementLine (5575 1875 5675 1875 10)
- ElementLine (5775 1875 5875 1875 10)
- ElementLine (5675 1875 5775 1825 10)
- ElementLine (5775 1825 5775 1925 10)
- ElementLine (5775 1925 5675 1875 10)
- ElementLine (5675 1825 5675 1925 10)
- Mark (5575 1875)
-)
-
-Element(0x00000000 "IRF1010N" "Q3" "IRF1010N" 5675 2735 0 100 0x00000000)
-(
- Pin(5775 2925 80 20 "G" "1" 0x00000101)
- Pin(5875 2925 80 20 "D" "2" 0x00000001)
- Pin(5975 2925 80 20 "S" "3" 0x00000001)
- ElementLine (5675 2805 6075 2805 20)
- ElementLine (6075 2805 6075 2985 20)
- ElementLine (6075 2985 5675 2985 20)
- ElementLine (5675 2985 5675 2805 20)
- ElementLine (5675 2805 6075 2805 20)
- ElementLine (6075 2805 6075 2865 20)
- ElementLine (6075 2865 5675 2865 20)
- ElementLine (5675 2865 5675 2805 20)
- ElementLine (5805 2805 5805 2865 10)
- ElementLine (5945 2805 5945 2865 10)
- Mark (5775 2925)
-)
-
-Element(0x00000000 "R 0.25W" "R12" "1k2" 980 2770 2 100 0x00000000)
-(
- Pin(1100 2750 50 20 "1" "1" 0x00000101)
- Pin(700 2750 50 20 "2" "2" 0x00000001)
- ElementLine (1000 2800 800 2800 20)
- ElementLine (800 2800 800 2700 20)
- ElementLine (800 2700 1000 2700 20)
- ElementLine (1000 2700 1000 2800 20)
- ElementLine (1100 2750 1000 2750 20)
- ElementLine (800 2750 700 2750 20)
- Mark (1100 2750)
-)
-
-Element(0x00000000 "E22 standing" "" "E22" 4000 3525 2 100 0x00000000)
-(
- ElementLine (4525 3850 3475 3850 20)
- ElementLine (4525 3850 4525 3200 20)
- ElementLine (4525 3200 4475 3200 20)
- ElementLine (4475 3200 4475 3750 20)
- ElementLine (4475 3750 4275 3750 20)
- ElementLine (4275 3750 4275 3200 20)
- ElementLine (4275 3200 4225 3200 20)
- ElementLine (4225 3200 4225 3750 20)
- ElementLine (4225 3750 3775 3750 20)
- ElementLine (3475 3850 3475 3200 20)
- ElementLine (3475 3200 3525 3200 20)
- ElementLine (3525 3200 3525 3750 20)
- ElementLine (3525 3750 3725 3750 20)
- ElementLine (3725 3750 3725 3200 20)
- ElementLine (3725 3200 3775 3200 20)
- ElementLine (3775 3200 3775 3750 20)
- Mark (4525 3850)
-)
-
-Element(0x00000000 "capacitor_radial" "C2" "100uFx16V" 4925 3150 0 100 0x00000000)
-(
- Pin(4700 3300 60 20 "1" "1" 0x00000101)
- Pin(4850 3300 60 20 "2" "2" 0x00000001)
- ElementArc (4775 3300 150 150 0 360 10)
- Mark (4700 3300)
-)
-
-Element(0x00000000 "R 0.25W" "R10" "1k5" 2930 2855 1 100 0x00000000)
-(
- Pin(2950 2975 50 20 "1" "1" 0x00000101)
- Pin(2950 2575 50 20 "2" "2" 0x00000001)
- ElementLine (2900 2875 2900 2675 20)
- ElementLine (2900 2675 3000 2675 20)
- ElementLine (3000 2675 3000 2875 20)
- ElementLine (3000 2875 2900 2875 20)
- ElementLine (2950 2975 2950 2875 20)
- ElementLine (2950 2675 2950 2575 20)
- Mark (2950 2975)
-)
-
-Element(0x00000000 "R 0.25W" "R3" "2k2" 4405 505 1 100 0x00000000)
-(
- Pin(4425 625 50 20 "1" "1" 0x00000101)
- Pin(4425 225 50 20 "2" "2" 0x00000001)
- ElementLine (4375 525 4375 325 20)
- ElementLine (4375 325 4475 325 20)
- ElementLine (4475 325 4475 525 20)
- ElementLine (4475 525 4375 525 20)
- ElementLine (4425 625 4425 525 20)
- ElementLine (4425 325 4425 225 20)
- Mark (4425 625)
-)
-
-Element(0x00000000 "capacitor_radial" "C9" "220nF" 3125 2700 2 100 0x00000000)
-(
- Pin(3275 2600 60 20 "1" "1" 0x00000101)
- Pin(3175 2600 60 20 "2" "2" 0x00000001)
- ElementArc (3225 2600 100 100 180 360 10)
- Mark (3275 2600)
-)
-
-Element(0x00000000 "SUB-D female 9 pins" "J9" "DB9_female" 500 1555 3 100 0x00000000)
-(
- Pin(850 1355 120 100 "C1" "C1" 0x00000001)
- Pin(850 2295 120 100 "C1" "C1" 0x00000001)
- Pin(900 1625 60 20 "5" "5" 0x00000001)
- Pin(800 1675 60 20 "9" "9" 0x00000001)
- Pin(900 1725 60 20 "4" "4" 0x00000001)
- Pin(800 1775 60 20 "8" "8" 0x00000001)
- Pin(900 1825 60 20 "3" "3" 0x00000001)
- Pin(800 1875 60 20 "7" "7" 0x00000001)
- Pin(900 1925 60 20 "2" "2" 0x00000001)
- Pin(800 1975 60 20 "6" "6" 0x00000001)
- Pin(900 2025 60 20 "1" "1" 0x00000101)
- ElementLine (900 2025 620 2025 20)
- ElementLine (800 1975 620 1975 20)
- ElementLine (900 1925 620 1925 20)
- ElementLine (800 1875 620 1875 20)
- ElementLine (900 1825 620 1825 20)
- ElementLine (800 1775 620 1775 20)
- ElementLine (900 1725 620 1725 20)
- ElementLine (800 1675 620 1675 20)
- ElementLine (900 1625 620 1625 20)
- ElementLine (420 2185 420 1465 10)
- ElementLine (620 2185 420 2185 20)
- ElementLine (620 1465 620 2185 20)
- ElementLine (420 1465 620 1465 20)
- ElementLine (120 2125 120 1525 20)
- ElementLine (390 2125 120 2125 20)
- ElementLine (390 1525 390 2125 10)
- ElementLine (120 1525 390 1525 20)
- ElementLine (390 2235 420 2235 10)
- ElementLine (390 2355 420 2355 10)
- ElementLine (390 1415 420 1415 10)
- ElementLine (390 1295 420 1295 10)
- ElementLine (390 2415 390 1235 10)
- ElementLine (420 2415 390 2415 10)
- ElementLine (420 1235 420 2415 10)
- ElementLine (390 1235 420 1235 10)
- Mark (900 1625)
-)
-
-Element(0x00000000 "IRF1010N" "Q4" "IRF1010N" 5150 2735 0 100 0x00000000)
-(
- Pin(5250 2925 80 20 "G" "1" 0x00000101)
- Pin(5350 2925 80 20 "D" "2" 0x00000001)
- Pin(5450 2925 80 20 "S" "3" 0x00000001)
- ElementLine (5150 2805 5550 2805 20)
- ElementLine (5550 2805 5550 2985 20)
- ElementLine (5550 2985 5150 2985 20)
- ElementLine (5150 2985 5150 2805 20)
- ElementLine (5150 2805 5550 2805 20)
- ElementLine (5550 2805 5550 2865 20)
- ElementLine (5550 2865 5150 2865 20)
- ElementLine (5150 2865 5150 2805 20)
- ElementLine (5280 2805 5280 2865 10)
- ElementLine (5420 2805 5420 2865 10)
- Mark (5250 2925)
-)
-
-Element(0x00000000 "capacitor_radial" "C1" "100uFx25V" 4625 3850 2 100 0x00000000)
-(
- Pin(4850 3700 60 20 "1" "1" 0x00000101)
- Pin(4700 3700 60 20 "2" "2" 0x00000001)
- ElementArc (4775 3700 150 150 180 360 10)
- Mark (4850 3700)
-)
-
-Element(0x00000000 "R 0.25W" "R11" "330" 980 2945 2 100 0x00000000)
-(
- Pin(1100 2925 50 20 "1" "1" 0x00000101)
- Pin(700 2925 50 20 "2" "2" 0x00000001)
- ElementLine (800 2925 700 2925 20)
- ElementLine (1100 2925 1000 2925 20)
- ElementLine (1000 2875 1000 2975 20)
- ElementLine (800 2875 1000 2875 20)
- ElementLine (800 2975 800 2875 20)
- ElementLine (1000 2975 800 2975 20)
- Mark (1100 2925)
-)
-
-Element(0x00000000 "E22 standing" "" "E22" 5550 3525 2 100 0x00000000)
-(
- ElementLine (6075 3850 5025 3850 20)
- ElementLine (6075 3850 6075 3200 20)
- ElementLine (6075 3200 6025 3200 20)
- ElementLine (6025 3200 6025 3750 20)
- ElementLine (6025 3750 5825 3750 20)
- ElementLine (5825 3750 5825 3200 20)
- ElementLine (5825 3200 5775 3200 20)
- ElementLine (5775 3200 5775 3750 20)
- ElementLine (5775 3750 5325 3750 20)
- ElementLine (5025 3850 5025 3200 20)
- ElementLine (5025 3200 5075 3200 20)
- ElementLine (5075 3200 5075 3750 20)
- ElementLine (5075 3750 5275 3750 20)
- ElementLine (5275 3750 5275 3200 20)
- ElementLine (5275 3200 5325 3200 20)
- ElementLine (5325 3200 5325 3750 20)
- Mark (6075 3850)
-)
-
-Element(0x00000000 "R 0.25W" "R9" "10k" 2770 2695 3 100 0x00000000)
-(
- Pin(2750 2575 50 20 "1" "1" 0x00000101)
- Pin(2750 2975 50 20 "2" "2" 0x00000001)
- ElementLine (2800 2675 2800 2875 20)
- ElementLine (2800 2875 2700 2875 20)
- ElementLine (2700 2875 2700 2675 20)
- ElementLine (2700 2675 2800 2675 20)
- ElementLine (2750 2575 2750 2675 20)
- ElementLine (2750 2875 2750 2975 20)
- Mark (2750 2575)
-)
-
-Element(0x00000000 "+12V 1.5A voltage regulator" "U3" "7812" 5750 3790 2 100 0x00000000)
-(
- Pin(5650 3600 80 20 "In" "1" 0x00000101)
- Pin(5550 3600 80 20 "Com" "2" 0x00000001)
- Pin(5450 3600 80 20 "Out" "3" 0x00000001)
- ElementLine (5480 3720 5480 3660 10)
- ElementLine (5620 3720 5620 3660 10)
- ElementLine (5750 3660 5750 3720 20)
- ElementLine (5350 3660 5750 3660 20)
- ElementLine (5350 3720 5350 3660 20)
- ElementLine (5750 3720 5350 3720 20)
- ElementLine (5750 3540 5750 3720 20)
- ElementLine (5350 3540 5750 3540 20)
- ElementLine (5350 3720 5350 3540 20)
- ElementLine (5750 3720 5350 3720 20)
- Mark (5650 3600)
-)
-
-Element(0x00000000 "capacitor_radial" "C8" "1000uFx35V" 4525 3025 2 100 0x00000000)
-(
- Pin(4900 2775 60 20 "1" "1" 0x00000101)
- Pin(4650 2775 60 20 "2" "2" 0x00000001)
- ElementArc (4775 2775 250 250 180 360 10)
- Mark (4900 2775)
-)
-
-Element(0x00000000 "generic" "U11" "10MHz" 1725 3030 0 100 0x00000000)
-(
- Pin(1675 3200 60 28 "1" "1" 0x00000101)
- Pin(1775 3200 60 28 "2" "2" 0x00000001)
- Pin(1875 3200 60 28 "3" "3" 0x00000001)
- Pin(1975 3200 60 28 "4" "4" 0x00000001)
- Pin(1975 2900 60 28 "5" "5" 0x00000001)
- Pin(1875 2900 60 28 "6" "6" 0x00000001)
- Pin(1775 2900 60 28 "7" "7" 0x00000001)
- Pin(1675 2900 60 28 "8" "8" 0x00000001)
- ElementLine (1625 3000 1625 2850 10)
- ElementLine (1625 3250 1625 3100 10)
- ElementLine (2025 2850 1625 2850 10)
- ElementLine (2025 3250 2025 2850 10)
- ElementLine (1625 3250 2025 3250 10)
- ElementArc (1625 3050 50 50 90 180 10)
- Mark (1675 3200)
-)
-
-Element(0x00000000 "connector 2x1 pins" "JP2" "XRESET" 1210 3250 3 100 0x00000000)
-(
- Pin(1000 3300 60 30 "1" "1" 0x00000101)
- Pin(1100 3300 60 30 "2" "2" 0x00000001)
- ElementLine (1050 3350 1050 3250 10)
- ElementLine (950 3350 1050 3350 10)
- ElementLine (1150 3250 950 3250 20)
- ElementLine (1150 3350 1150 3250 20)
- ElementLine (950 3350 1150 3350 20)
- ElementLine (950 3250 950 3350 20)
- Mark (1000 3300)
-)
-
-Element(0x00000000 "DIN 41612C-96 male" "J15" "DIN41612C96_male" 6575 3455 1 200 0x00000000)
-(
- Pin(6475 475 60 30 "a1" "A1" 0x00000101)
- Pin(6475 575 60 30 "a2" "A2" 0x00000001)
- Pin(6475 675 60 30 "a3" "A3" 0x00000001)
- Pin(6475 775 60 30 "a4" "A4" 0x00000001)
- Pin(6475 875 60 30 "a5" "A5" 0x00000001)
- Pin(6475 975 60 30 "a6" "A6" 0x00000001)
- Pin(6475 1075 60 30 "a7" "A7" 0x00000001)
- Pin(6475 1175 60 30 "a8" "A8" 0x00000001)
- Pin(6475 1275 60 30 "a9" "A9" 0x00000001)
- Pin(6475 1375 60 30 "a10" "A10" 0x00000001)
- Pin(6475 1475 60 30 "a11" "A11" 0x00000001)
- Pin(6475 1575 60 30 "a12" "A12" 0x00000001)
- Pin(6475 1675 60 30 "a13" "A13" 0x00000001)
- Pin(6475 1775 60 30 "a14" "A14" 0x00000001)
- Pin(6475 1875 60 30 "a15" "A15" 0x00000001)
- Pin(6475 1975 60 30 "a16" "A16" 0x00000001)
- Pin(6475 2075 60 30 "a17" "A17" 0x00000001)
- Pin(6475 2175 60 30 "a18" "A18" 0x00000001)
- Pin(6475 2275 60 30 "a19" "A19" 0x00000001)
- Pin(6475 2375 60 30 "a20" "A20" 0x00000001)
- Pin(6475 2475 60 30 "a21" "A21" 0x00000001)
- Pin(6475 2575 60 30 "a22" "A22" 0x00000001)
- Pin(6475 2675 60 30 "a23" "A23" 0x00000001)
- Pin(6475 2775 60 30 "a24" "A24" 0x00000001)
- Pin(6475 2875 60 30 "a25" "A25" 0x00000001)
- Pin(6475 2975 60 30 "a26" "A26" 0x00000001)
- Pin(6475 3075 60 30 "a27" "A27" 0x00000001)
- Pin(6475 3175 60 30 "a28" "A28" 0x00000001)
- Pin(6475 3275 60 30 "a29" "A29" 0x00000001)
- Pin(6475 3375 60 30 "a30" "A30" 0x01000001)
- Pin(6475 3475 60 30 "a31" "A31" 0x01000001)
- Pin(6475 3575 60 30 "a32" "A32" 0x00000001)
- Pin(6375 475 60 30 "b1" "B1" 0x00000001)
- Pin(6375 575 60 30 "b2" "B2" 0x00000001)
- Pin(6375 675 60 30 "b3" "B3" 0x00000001)
- Pin(6375 775 60 30 "b4" "B4" 0x00000001)
- Pin(6375 875 60 30 "b5" "B5" 0x00000001)
- Pin(6375 975 60 30 "b6" "B6" 0x00000001)
- Pin(6375 1075 60 30 "b7" "B7" 0x00000001)
- Pin(6375 1175 60 30 "b8" "B8" 0x00000001)
- Pin(6375 1275 60 30 "b9" "B9" 0x00000001)
- Pin(6375 1375 60 30 "b10" "B10" 0x00000001)
- Pin(6375 1475 60 30 "b11" "B11" 0x00000001)
- Pin(6375 1575 60 30 "b12" "B12" 0x00000001)
- Pin(6375 1675 60 30 "b13" "B13" 0x00000001)
- Pin(6375 1775 60 30 "b14" "B14" 0x00000001)
- Pin(6375 1875 60 30 "b15" "B15" 0x00000001)
- Pin(6375 1975 60 30 "b16" "B16" 0x00000001)
- Pin(6375 2075 60 30 "b17" "B17" 0x00000001)
- Pin(6375 2175 60 30 "b18" "B18" 0x00000001)
- Pin(6375 2275 60 30 "b19" "B19" 0x00000001)
- Pin(6375 2375 60 30 "b20" "B20" 0x00000001)
- Pin(6375 2475 60 30 "b21" "B21" 0x00000001)
- Pin(6375 2575 60 30 "b22" "B22" 0x00000001)
- Pin(6375 2675 60 30 "b23" "B23" 0x00000001)
- Pin(6375 2775 60 30 "b24" "B24" 0x00000001)
- Pin(6375 2875 60 30 "b25" "B25" 0x00000001)
- Pin(6375 2975 60 30 "b26" "B26" 0x00000001)
- Pin(6375 3075 60 30 "b27" "B27" 0x00000001)
- Pin(6375 3175 60 30 "b28" "B28" 0x00000001)
- Pin(6375 3275 60 30 "b29" "B29" 0x00000001)
- Pin(6375 3375 60 30 "b30" "B30" 0x01000001)
- Pin(6375 3475 60 30 "b31" "B31" 0x01000001)
- Pin(6375 3575 60 30 "b32" "B32" 0x00000001)
- Pin(6275 475 60 30 "c1" "C1" 0x00000001)
- Pin(6275 575 60 30 "c2" "C2" 0x00000001)
- Pin(6275 675 60 30 "c3" "C3" 0x00000001)
- Pin(6275 775 60 30 "c4" "C4" 0x00000001)
- Pin(6275 875 60 30 "c5" "C5" 0x00000001)
- Pin(6275 975 60 30 "c6" "C6" 0x00000001)
- Pin(6275 1075 60 30 "c7" "C7" 0x00000001)
- Pin(6275 1175 60 30 "c8" "C8" 0x00000001)
- Pin(6275 1275 60 30 "c9" "C9" 0x00000001)
- Pin(6275 1375 60 30 "c10" "C10" 0x00000001)
- Pin(6275 1475 60 30 "c11" "C11" 0x00000001)
- Pin(6275 1575 60 30 "c12" "C12" 0x00000001)
- Pin(6275 1675 60 30 "c13" "C13" 0x00000001)
- Pin(6275 1775 60 30 "c14" "C14" 0x00000001)
- Pin(6275 1875 60 30 "c15" "C15" 0x00000001)
- Pin(6275 1975 60 30 "c16" "C16" 0x00000001)
- Pin(6275 2075 60 30 "c17" "C17" 0x00000001)
- Pin(6275 2175 60 30 "c18" "C18" 0x00000001)
- Pin(6275 2275 60 30 "c19" "C19" 0x00000001)
- Pin(6275 2375 60 30 "c20" "C20" 0x00000001)
- Pin(6275 2475 60 30 "c21" "C21" 0x00000001)
- Pin(6275 2575 60 30 "c22" "C22" 0x00000001)
- Pin(6275 2675 60 30 "c23" "C23" 0x00000001)
- Pin(6275 2775 60 30 "c24" "C24" 0x00000001)
- Pin(6275 2875 60 30 "c25" "C25" 0x00000001)
- Pin(6275 2975 60 30 "c26" "C26" 0x00000001)
- Pin(6275 3075 60 30 "c27" "C27" 0x00000001)
- Pin(6275 3175 60 30 "c28" "C28" 0x00000001)
- Pin(6275 3275 60 30 "c29" "C29" 0x00000001)
- Pin(6275 3375 60 30 "c30" "C30" 0x01000001)
- Pin(6275 3475 60 30 "c31" "C31" 0x01000001)
- Pin(6275 3575 60 30 "c32" "C32" 0x00000001)
- Pin(6575 3775 120 80 "M1" "M1" 0x00000001)
- Pin(6575 275 120 80 "M2" "M2" 0x00000001)
- ElementLine (6975 275 6795 275 20)
- ElementLine (6975 3775 6975 275 20)
- ElementLine (6795 3775 6975 3775 20)
- ElementLine (6570 3655 6570 395 20)
- ElementLine (6570 395 6475 395 20)
- ElementLine (6795 395 6570 395 10)
- ElementLine (6795 275 6795 395 10)
- ElementLine (6795 175 6795 275 20)
- ElementLine (6475 175 6795 175 20)
- ElementLine (6475 395 6475 175 20)
- ElementLine (6795 3875 6475 3875 20)
- ElementLine (6795 3775 6795 3875 20)
- ElementLine (6795 3655 6795 3775 10)
- ElementLine (6570 3655 6795 3655 10)
- ElementLine (6475 3655 6570 3655 20)
- ElementLine (6475 3875 6475 3655 20)
- ElementLine (6275 475 6550 475 40)
- ElementLine (6275 575 6550 575 40)
- ElementLine (6275 675 6550 675 40)
- ElementLine (6275 775 6550 775 40)
- ElementLine (6275 875 6550 875 40)
- ElementLine (6275 975 6550 975 40)
- ElementLine (6275 1075 6550 1075 40)
- ElementLine (6275 1175 6550 1175 40)
- ElementLine (6275 1275 6550 1275 40)
- ElementLine (6275 1375 6550 1375 40)
- ElementLine (6275 1475 6550 1475 40)
- ElementLine (6275 1575 6550 1575 40)
- ElementLine (6275 1675 6550 1675 40)
- ElementLine (6275 1775 6550 1775 40)
- ElementLine (6275 1875 6550 1875 40)
- ElementLine (6275 1975 6550 1975 40)
- ElementLine (6275 2075 6550 2075 40)
- ElementLine (6275 2175 6550 2175 40)
- ElementLine (6275 2275 6550 2275 40)
- ElementLine (6275 2375 6550 2375 40)
- ElementLine (6275 2475 6550 2475 40)
- ElementLine (6275 2575 6550 2575 40)
- ElementLine (6275 2675 6550 2675 40)
- ElementLine (6275 2775 6550 2775 40)
- ElementLine (6275 2875 6550 2875 40)
- ElementLine (6275 2975 6550 2975 40)
- ElementLine (6275 3075 6550 3075 40)
- ElementLine (6275 3175 6550 3175 40)
- ElementLine (6275 3275 6550 3275 40)
- ElementLine (6275 3375 6550 3375 40)
- ElementLine (6275 3475 6550 3475 40)
- ElementLine (6275 3575 6550 3575 40)
- Mark (6475 475)
-)
-
-Element(0x00000000 "capacitor_radial" "C11" "2.2nF" 5450 2000 0 100 0x00000000)
-(
- Pin(5300 2100 60 20 "1" "1" 0x00000101)
- Pin(5400 2100 60 20 "2" "2" 0x00000001)
- ElementArc (5350 2100 100 100 0 360 10)
- Mark (5300 2100)
-)
-
-Element(0x00000000 "IRF1010N" "Q1" "IRF1010N" 5675 2260 0 100 0x00000000)
-(
- Pin(5775 2450 80 20 "G" "1" 0x00000101)
- Pin(5875 2450 80 20 "D" "2" 0x00000001)
- Pin(5975 2450 80 20 "S" "3" 0x00000001)
- ElementLine (5675 2330 6075 2330 20)
- ElementLine (6075 2330 6075 2510 20)
- ElementLine (6075 2510 5675 2510 20)
- ElementLine (5675 2510 5675 2330 20)
- ElementLine (5675 2330 6075 2330 20)
- ElementLine (6075 2330 6075 2390 20)
- ElementLine (6075 2390 5675 2390 20)
- ElementLine (5675 2390 5675 2330 20)
- ElementLine (5805 2330 5805 2390 10)
- ElementLine (5945 2330 5945 2390 10)
- Mark (5775 2450)
-)
-
-Element(0x00000000 "diode" "D3" "1N4007" 850 3520 3 100 0x00000000)
-(
- Pin(800 3300 50 20 "1" "1" 0x00000101)
- Pin(800 3600 50 20 "2" "2" 0x00000001)
- ElementLine (800 3300 800 3400 10)
- ElementLine (800 3500 800 3600 10)
- ElementLine (800 3400 850 3500 10)
- ElementLine (850 3500 750 3500 10)
- ElementLine (750 3500 800 3400 10)
- ElementLine (850 3400 750 3400 10)
- Mark (800 3300)
-)
-
-Element(0x00000000 "capacitor_radial" "C7" "1000uFx35V" 4525 2450 2 100 0x00000000)
-(
- Pin(4900 2200 60 20 "1" "1" 0x00000101)
- Pin(4650 2200 60 20 "2" "2" 0x00000001)
- ElementArc (4775 2200 250 250 180 360 10)
- Mark (4900 2200)
-)
-
-Element(0x00000000 "Push-button, tactile, right angle, 466mils actuator" "S1" "MJTP1236_D" 598 3389 0 100 0x00000000)
-(
- Pin(500 3300 59 39 "1" "1" 0x00000101)
- Pin(500 3477 59 39 "2" "2" 0x00000001)
- Pin(598 3251 71 51 "C1" "C1" 0x00000001)
- Pin(598 3527 71 51 "C2" "C2" 0x00000001)
- ElementLine (34 3448 400 3458 20)
- ElementLine (34 3330 34 3448 20)
- ElementLine (400 3320 34 3330 20)
- ElementLine (538 3527 538 3251 20)
- ElementLine (400 3527 658 3527 20)
- ElementLine (400 3251 400 3527 20)
- ElementLine (658 3251 400 3251 20)
- Mark (500 3300)
-)
-
-Element(0x00000000 "LED 5mm" "D10" "Green" 475 2570 0 100 0x00000000)
-(
- Pin(525 2650 60 20 "-" "1" 0x00000101)
- Pin(525 2750 60 20 "+" "2" 0x00000001)
- ElementArc (525 2700 50 50 0 360 15)
- ElementArc (525 2700 70 70 0 360 10)
- Mark (525 2650)
-)
-
-Element(0x00000000 "generic PAL replacement" "U8" "GAL22V10" 2800 2180 0 100 0x00000000)
-(
- Pin(2750 2350 60 28 "CLK/I1" "1" 0x00000101)
- Pin(2850 2350 60 28 "I2" "2" 0x00000001)
- Pin(2950 2350 60 28 "I3" "3" 0x00000001)
- Pin(3050 2350 60 28 "I4" "4" 0x00000001)
- Pin(3150 2350 60 28 "I5" "5" 0x00000001)
- Pin(3250 2350 60 28 "I6" "6" 0x00000001)
- Pin(3350 2350 60 28 "I7" "7" 0x00000001)
- Pin(3450 2350 60 28 "I8" "8" 0x00000001)
- Pin(3550 2350 60 28 "I9" "9" 0x00000001)
- Pin(3650 2350 60 28 "I10" "10" 0x00000001)
- Pin(3750 2350 60 28 "I11" "11" 0x00000001)
- Pin(3850 2350 60 28 "Gnd" "12" 0x00000001)
- Pin(3850 2050 60 28 "I12" "13" 0x00000001)
- Pin(3750 2050 60 28 "I/O/Qj" "14" 0x00000001)
- Pin(3650 2050 60 28 "I/O/Qi" "15" 0x00000001)
- Pin(3550 2050 60 28 "I/O/Qh" "16" 0x00000001)
- Pin(3450 2050 60 28 "I/O/Qg" "17" 0x00000001)
- Pin(3350 2050 60 28 "I/O/Qf" "18" 0x00000001)
- Pin(3250 2050 60 28 "I/O/Qe" "19" 0x00000001)
- Pin(3150 2050 60 28 "I/O/Qd" "20" 0x00000001)
- Pin(3050 2050 60 28 "I/O/Qc" "21" 0x00000001)
- Pin(2950 2050 60 28 "I/O/Qb" "22" 0x00000001)
- Pin(2850 2050 60 28 "I/O/Qa" "23" 0x00000001)
- Pin(2750 2050 60 28 "Vcc" "24" 0x00000001)
- ElementLine (2700 2150 2700 2000 10)
- ElementLine (2700 2400 2700 2250 10)
- ElementLine (3900 2000 2700 2000 10)
- ElementLine (3900 2400 3900 2000 10)
- ElementLine (2700 2400 3900 2400 10)
- ElementArc (2700 2200 50 50 90 180 10)
- Mark (2750 2350)
-)
-
-Element(0x00000000 "generic" "U6" "8254" 1400 2330 0 100 0x00000000)
-(
- Pin(1350 2650 60 28 "1" "1" 0x00000101)
- Pin(1450 2650 60 28 "2" "2" 0x00000001)
- Pin(1550 2650 60 28 "3" "3" 0x00000001)
- Pin(1650 2650 60 28 "4" "4" 0x00000001)
- Pin(1750 2650 60 28 "5" "5" 0x00000001)
- Pin(1850 2650 60 28 "6" "6" 0x00000001)
- Pin(1950 2650 60 28 "7" "7" 0x00000001)
- Pin(2050 2650 60 28 "8" "8" 0x00000001)
- Pin(2150 2650 60 28 "9" "9" 0x00000001)
- Pin(2250 2650 60 28 "10" "10" 0x00000001)
- Pin(2350 2650 60 28 "11" "11" 0x00000001)
- Pin(2450 2650 60 28 "12" "12" 0x00000001)
- Pin(2450 2050 60 28 "13" "13" 0x00000001)
- Pin(2350 2050 60 28 "14" "14" 0x00000001)
- Pin(2250 2050 60 28 "15" "15" 0x00000001)
- Pin(2150 2050 60 28 "16" "16" 0x00000001)
- Pin(2050 2050 60 28 "17" "17" 0x00000001)
- Pin(1950 2050 60 28 "18" "18" 0x00000001)
- Pin(1850 2050 60 28 "19" "19" 0x00000001)
- Pin(1750 2050 60 28 "20" "20" 0x00000001)
- Pin(1650 2050 60 28 "21" "21" 0x00000001)
- Pin(1550 2050 60 28 "22" "22" 0x00000001)
- Pin(1450 2050 60 28 "23" "23" 0x00000001)
- Pin(1350 2050 60 28 "24" "24" 0x00000001)
- ElementLine (1300 2300 1300 2000 10)
- ElementLine (1300 2700 1300 2400 10)
- ElementLine (2500 2000 1300 2000 10)
- ElementLine (2500 2700 2500 2000 10)
- ElementLine (1300 2700 2500 2700 10)
- ElementArc (1300 2350 50 50 90 180 10)
- Mark (1350 2650)
-)
-
-Element(0x00000000 "connector 2x4 pins" "JP1" "ADDRESS" 4360 2000 3 100 0x00000000)
-(
- Pin(4150 2050 60 30 "1" "1" 0x00000101)
- Pin(4250 2050 60 30 "2" "2" 0x00000001)
- Pin(4150 2150 60 30 "3" "3" 0x00000001)
- Pin(4250 2150 60 30 "4" "4" 0x00000001)
- Pin(4150 2250 60 30 "5" "5" 0x00000001)
- Pin(4250 2250 60 30 "6" "6" 0x00000001)
- Pin(4150 2350 60 30 "7" "7" 0x00000001)
- Pin(4250 2350 60 30 "8" "8" 0x00000001)
- ElementLine (4100 2000 4100 2400 20)
- ElementLine (4100 2400 4300 2400 20)
- ElementLine (4300 2400 4300 2000 20)
- ElementLine (4300 2000 4100 2000 20)
- ElementLine (4100 2100 4200 2100 10)
- ElementLine (4200 2100 4200 2000 10)
- Mark (4150 2050)
-)
-
-Element(0x00000000 "capacitor_radial" "C4" "10uFx25V" 3275 3625 0 100 0x00000000)
-(
- Pin(3125 3725 60 20 "1" "1" 0x00000101)
- Pin(3225 3725 60 20 "2" "2" 0x00000001)
- ElementArc (3175 3725 100 100 0 360 10)
- Mark (3125 3725)
-)
-
-Element(0x00000000 "generic" "U7" "HCTL-2016" 2450 405 0 100 0x00000000)
-(
- Pin(2400 575 60 28 "1" "1" 0x00000101)
- Pin(2500 575 60 28 "2" "2" 0x00000001)
- Pin(2600 575 60 28 "3" "3" 0x00000001)
- Pin(2700 575 60 28 "4" "4" 0x00000001)
- Pin(2800 575 60 28 "5" "5" 0x00000001)
- Pin(2900 575 60 28 "6" "6" 0x00000001)
- Pin(3000 575 60 28 "7" "7" 0x00000001)
- Pin(3100 575 60 28 "8" "8" 0x00000001)
- Pin(3100 275 60 28 "9" "9" 0x00000001)
- Pin(3000 275 60 28 "10" "10" 0x00000001)
- Pin(2900 275 60 28 "11" "11" 0x00000001)
- Pin(2800 275 60 28 "12" "12" 0x00000001)
- Pin(2700 275 60 28 "13" "13" 0x00000001)
- Pin(2600 275 60 28 "14" "14" 0x00000001)
- Pin(2500 275 60 28 "15" "15" 0x00000001)
- Pin(2400 275 60 28 "16" "16" 0x00000001)
- ElementLine (2350 375 2350 225 10)
- ElementLine (2350 625 2350 475 10)
- ElementLine (3150 225 2350 225 10)
- ElementLine (3150 625 3150 225 10)
- ElementLine (2350 625 3150 625 10)
- ElementArc (2350 425 50 50 90 180 10)
- Mark (2400 575)
-)
-
-Element(0x00000000 "IRF1010N" "Q2" "IRF1010N" 5150 2260 0 100 0x00000000)
-(
- Pin(5250 2450 80 20 "G" "1" 0x00000101)
- Pin(5350 2450 80 20 "D" "2" 0x00000001)
- Pin(5450 2450 80 20 "S" "3" 0x00000001)
- ElementLine (5150 2330 5550 2330 20)
- ElementLine (5550 2330 5550 2510 20)
- ElementLine (5550 2510 5150 2510 20)
- ElementLine (5150 2510 5150 2330 20)
- ElementLine (5150 2330 5550 2330 20)
- ElementLine (5550 2330 5550 2390 20)
- ElementLine (5550 2390 5150 2390 20)
- ElementLine (5150 2390 5150 2330 20)
- ElementLine (5280 2330 5280 2390 10)
- ElementLine (5420 2330 5420 2390 10)
- Mark (5250 2450)
-)
-
-Element(0x00000000 "LED 5mm" "D9" "Red" 475 2845 0 100 0x00000000)
-(
- Pin(525 2925 60 20 "-" "1" 0x00000101)
- Pin(525 3025 60 20 "+" "2" 0x00000001)
- ElementArc (525 2975 70 70 0 360 10)
- ElementArc (525 2975 50 50 0 360 15)
- Mark (525 2925)
-)
-
-Element(0x00000000 "diode" "D1" "1N4148" 1575 3645 3 100 0x00000000)
-(
- Pin(1525 3425 50 20 "1" "1" 0x00000101)
- Pin(1525 3725 50 20 "2" "2" 0x00000001)
- ElementLine (1575 3525 1475 3525 10)
- ElementLine (1475 3625 1525 3525 10)
- ElementLine (1575 3625 1475 3625 10)
- ElementLine (1525 3525 1575 3625 10)
- ElementLine (1525 3625 1525 3725 10)
- ElementLine (1525 3425 1525 3525 10)
- Mark (1525 3425)
-)
-
-Element(0x00000000 "R 0.25W" "R4" "390" 5505 505 1 100 0x00000000)
-(
- Pin(5525 625 50 20 "1" "1" 0x00000101)
- Pin(5525 225 50 20 "2" "2" 0x00000001)
- ElementLine (5475 525 5475 325 20)
- ElementLine (5475 325 5575 325 20)
- ElementLine (5575 325 5575 525 20)
- ElementLine (5575 525 5475 525 20)
- ElementLine (5525 625 5525 525 20)
- ElementLine (5525 325 5525 225 20)
- Mark (5525 625)
-)
-
-Element(0x00000000 "optical coupling device" "U13" "6N136" 3975 405 0 100 0x00000000)
-(
- Pin(3925 575 60 28 "NC" "1" 0x00000101)
- Pin(4025 575 60 28 "A+" "2" 0x00000001)
- Pin(4125 575 60 28 "K-" "3" 0x00000001)
- Pin(4225 575 60 28 "NC" "4" 0x00000001)
- Pin(4225 275 60 28 "Gnd" "5" 0x00000001)
- Pin(4125 275 60 28 "Out" "6" 0x00000001)
- Pin(4025 275 60 28 "En" "7" 0x00000001)
- Pin(3925 275 60 28 "Vcc" "8" 0x00000001)
- ElementLine (3875 375 3875 225 10)
- ElementLine (3875 625 3875 475 10)
- ElementLine (4275 225 3875 225 10)
- ElementLine (4275 625 4275 225 10)
- ElementLine (3875 625 4275 625 10)
- ElementArc (3875 425 50 50 90 180 10)
- Mark (3925 575)
-)
-
-Element(0x00000000 "optical coupling device" "U14" "6N136" 4875 1005 0 100 0x00000000)
-(
- Pin(4825 1175 60 28 "NC" "1" 0x00000101)
- Pin(4925 1175 60 28 "A+" "2" 0x00000001)
- Pin(5025 1175 60 28 "K-" "3" 0x00000001)
- Pin(5125 1175 60 28 "NC" "4" 0x00000001)
- Pin(5125 875 60 28 "Gnd" "5" 0x00000001)
- Pin(5025 875 60 28 "Out" "6" 0x00000001)
- Pin(4925 875 60 28 "En" "7" 0x00000001)
- Pin(4825 875 60 28 "Vcc" "8" 0x00000001)
- ElementLine (4775 975 4775 825 10)
- ElementLine (4775 1225 4775 1075 10)
- ElementLine (5175 825 4775 825 10)
- ElementLine (5175 1225 5175 825 10)
- ElementLine (4775 1225 5175 1225 10)
- ElementArc (4775 1025 50 50 90 180 10)
- Mark (4825 1175)
-)
-
-Element(0x00000000 "R 0.25W" "R5" "390" 5305 1105 1 100 0x00000000)
-(
- Pin(5325 1225 50 20 "1" "1" 0x00000101)
- Pin(5325 825 50 20 "2" "2" 0x00000001)
- ElementLine (5275 1125 5275 925 20)
- ElementLine (5275 925 5375 925 20)
- ElementLine (5375 925 5375 1125 20)
- ElementLine (5375 1125 5275 1125 20)
- ElementLine (5325 1225 5325 1125 20)
- ElementLine (5325 925 5325 825 20)
- Mark (5325 1225)
-)
-
-Element(0x00000000 "R 0.25W" "R6" "2k2" 4605 1105 1 100 0x00000000)
-(
- Pin(4625 1225 50 20 "1" "1" 0x00000101)
- Pin(4625 825 50 20 "2" "2" 0x00000001)
- ElementLine (4575 1125 4575 925 20)
- ElementLine (4575 925 4675 925 20)
- ElementLine (4675 925 4675 1125 20)
- ElementLine (4675 1125 4575 1125 20)
- ElementLine (4625 1225 4625 1125 20)
- ElementLine (4625 925 4625 825 20)
- Mark (4625 1225)
-)
-
-Element(0x00000000 "R 0.25W" "R2" "2k2" 4605 505 1 100 0x00000000)
-(
- Pin(4625 625 50 20 "1" "1" 0x00000101)
- Pin(4625 225 50 20 "2" "2" 0x00000001)
- ElementLine (4575 525 4575 325 20)
- ElementLine (4575 325 4675 325 20)
- ElementLine (4675 325 4675 525 20)
- ElementLine (4675 525 4575 525 20)
- ElementLine (4625 625 4625 525 20)
- ElementLine (4625 325 4625 225 20)
- Mark (4625 625)
-)
-
-Element(0x00000000 "optical coupling device" "U12" "6N136" 4875 405 0 100 0x00000000)
-(
- Pin(4825 575 60 28 "NC" "1" 0x00000101)
- Pin(4925 575 60 28 "A+" "2" 0x00000001)
- Pin(5025 575 60 28 "K-" "3" 0x00000001)
- Pin(5125 575 60 28 "NC" "4" 0x00000001)
- Pin(5125 275 60 28 "Gnd" "5" 0x00000001)
- Pin(5025 275 60 28 "Out" "6" 0x00000001)
- Pin(4925 275 60 28 "En" "7" 0x00000001)
- Pin(4825 275 60 28 "Vcc" "8" 0x00000001)
- ElementLine (4775 375 4775 225 10)
- ElementLine (4775 625 4775 475 10)
- ElementLine (5175 225 4775 225 10)
- ElementLine (5175 625 5175 225 10)
- ElementLine (4775 625 5175 625 10)
- ElementArc (4775 425 50 50 90 180 10)
- Mark (4825 575)
-)
-
-Element(0x00000000 "R 0.25W" "R1" "390" 5305 505 1 100 0x00000000)
-(
- Pin(5325 625 50 20 "1" "1" 0x00000101)
- Pin(5325 225 50 20 "2" "2" 0x00000001)
- ElementLine (5275 525 5275 325 20)
- ElementLine (5275 325 5375 325 20)
- ElementLine (5375 325 5375 525 20)
- ElementLine (5375 525 5275 525 20)
- ElementLine (5325 625 5325 525 20)
- ElementLine (5325 325 5325 225 20)
- Mark (5325 625)
-)
-
-Element(0x00000000 "R 0.25W" "R8" "390" 5505 1105 1 100 0x00000000)
-(
- Pin(5525 1225 50 20 "1" "1" 0x00000101)
- Pin(5525 825 50 20 "2" "2" 0x00000001)
- ElementLine (5475 1125 5475 925 20)
- ElementLine (5475 925 5575 925 20)
- ElementLine (5575 925 5575 1125 20)
- ElementLine (5575 1125 5475 1125 20)
- ElementLine (5525 1225 5525 1125 20)
- ElementLine (5525 925 5525 825 20)
- Mark (5525 1225)
-)
-
-Element(0x00000000 "optical coupling device" "U15" "6N136" 3975 1005 0 100 0x00000000)
-(
- Pin(3925 1175 60 28 "NC" "1" 0x00000101)
- Pin(4025 1175 60 28 "A+" "2" 0x00000001)
- Pin(4125 1175 60 28 "K-" "3" 0x00000001)
- Pin(4225 1175 60 28 "NC" "4" 0x00000001)
- Pin(4225 875 60 28 "Gnd" "5" 0x00000001)
- Pin(4125 875 60 28 "Out" "6" 0x00000001)
- Pin(4025 875 60 28 "En" "7" 0x00000001)
- Pin(3925 875 60 28 "Vcc" "8" 0x00000001)
- ElementLine (3875 975 3875 825 10)
- ElementLine (3875 1225 3875 1075 10)
- ElementLine (4275 825 3875 825 10)
- ElementLine (4275 1225 4275 825 10)
- ElementLine (3875 1225 4275 1225 10)
- ElementArc (3875 1025 50 50 90 180 10)
- Mark (3925 1175)
-)
-
-Element(0x00000000 "R 0.25W" "R7" "2k2" 4405 1105 1 100 0x00000000)
-(
- Pin(4425 1225 50 20 "1" "1" 0x00000101)
- Pin(4425 825 50 20 "2" "2" 0x00000001)
- ElementLine (4375 1125 4375 925 20)
- ElementLine (4375 925 4475 925 20)
- ElementLine (4475 925 4475 1125 20)
- ElementLine (4475 1125 4375 1125 20)
- ElementLine (4425 1225 4425 1125 20)
- ElementLine (4425 925 4425 825 20)
- Mark (4425 1225)
-)
-
-Element(0x00000000 "+5V 1.5A voltage regulator" "U2" "7805" 4200 3790 2 100 0x00000000)
-(
- Pin(4100 3600 80 20 "In" "1" 0x00000101)
- Pin(4000 3600 80 20 "Com" "2" 0x00000001)
- Pin(3900 3600 80 20 "Out" "3" 0x00000001)
- ElementLine (3930 3720 3930 3660 10)
- ElementLine (4070 3720 4070 3660 10)
- ElementLine (4200 3660 4200 3720 20)
- ElementLine (3800 3660 4200 3660 20)
- ElementLine (3800 3720 3800 3660 20)
- ElementLine (4200 3720 3800 3720 20)
- ElementLine (4200 3540 4200 3720 20)
- ElementLine (3800 3540 4200 3540 20)
- ElementLine (3800 3720 3800 3540 20)
- ElementLine (4200 3720 3800 3720 20)
- Mark (4100 3600)
-)
-
-Element(0x00000000 "diode" "D2" "1N4148" 2975 3645 3 100 0x00000000)
-(
- Pin(2925 3425 50 20 "1" "1" 0x00000101)
- Pin(2925 3725 50 20 "2" "2" 0x00000001)
- ElementLine (2975 3525 2875 3525 10)
- ElementLine (2875 3625 2925 3525 10)
- ElementLine (2975 3625 2875 3625 10)
- ElementLine (2925 3525 2975 3625 10)
- ElementLine (2925 3625 2925 3725 10)
- ElementLine (2925 3425 2925 3525 10)
- Mark (2925 3425)
-)
-
-Element(0x00000000 "R 0.25W" "R13" "2k7" 3280 505 1 100 0x00000000)
-(
- Pin(3300 625 50 20 "1" "1" 0x00000101)
- Pin(3300 225 50 20 "2" "2" 0x00000001)
- ElementLine (3250 525 3250 325 20)
- ElementLine (3250 325 3350 325 20)
- ElementLine (3350 325 3350 525 20)
- ElementLine (3350 525 3250 525 20)
- ElementLine (3300 625 3300 525 20)
- ElementLine (3300 325 3300 225 20)
- Mark (3300 625)
-)
-
-Element(0x00000000 "R 0.25W" "R14" "2k7" 3480 505 1 100 0x00000000)
-(
- Pin(3500 625 50 20 "1" "1" 0x00000101)
- Pin(3500 225 50 20 "2" "2" 0x00000001)
- ElementLine (3450 525 3450 325 20)
- ElementLine (3450 325 3550 325 20)
- ElementLine (3550 325 3550 525 20)
- ElementLine (3550 525 3450 525 20)
- ElementLine (3500 625 3500 525 20)
- ElementLine (3500 325 3500 225 20)
- Mark (3500 625)
-)
-Layer(1 "solder")
-(
- Line(6325 1725 5300 1725 10 0x00000000)
- Line(5300 1725 2575 1725 10 0x00000000)
- Line(6425 1125 6475 1175 10 0x00000000)
- Line(1100 1125 6425 1125 10 0x00000000)
- Line(6150 525 3050 525 10 0x00000000)
- Line(6150 525 6150 525 10 0x00000000)
- Line(6100 1300 2900 1300 10 0x00000000)
- Line(6100 875 6175 875 10 0x00000000)
- Line(6050 925 6100 875 10 0x00000000)
- Line(5875 925 6050 925 10 0x00000000)
- Line(5825 875 5875 925 10 0x00000000)
- Line(5950 625 5925 650 10 0x00000000)
- Line(6425 625 5950 625 10 0x00000000)
- Line(6475 675 6425 625 10 0x00000000)
- Line(5875 350 6175 350 10 0x00000000)
- Line(5825 300 5875 350 10 0x00000000)
- Line(5825 275 5825 300 10 0x00000000)
- Line(5950 200 6425 200 10 0x00000000)
- Line(5925 225 5950 200 10 0x00000000)
- Line(5925 275 5925 225 10 0x00000000)
- Line(6350 400 5125 400 25 0x00000000)
- Line(6375 425 6350 400 25 0x00000000)
- Line(6375 475 6375 425 25 0x00000000)
- Line(3050 525 3000 575 10 0x00000000)
- Line(6275 475 4025 475 25 0x00000000)
- Line(5625 1075 6275 1075 25 0x00000000)
- Line(6175 1025 6425 1025 25 0x00000000)
- Line(6425 925 6475 975 25 0x00000000)
- Line(6325 925 6425 925 25 0x00000000)
- Line(725 3925 1225 3925 25 0x00000000)
- Line(4850 3700 4850 3625 45 0x00000000)
- Line(6375 3375 6475 3475 45 0x00000000)
- Line(6475 3575 6275 3575 40 0x00000000)
- Line(6425 525 6475 575 25 0x00000000)
- Line(6325 525 6425 525 25 0x00000000)
- Line(6275 475 6325 525 25 0x00000000)
- Line(5850 2200 5875 2225 45 0x00000000)
- Line(4900 2200 5850 2200 45 0x00000000)
- Line(5875 2775 4900 2775 45 0x00000000)
- Line(6075 2675 6275 2675 45 0x00000000)
- Line(6275 3175 3900 3175 45 0x00000000)
- Line(6275 3275 5350 3275 45 0x00000000)
- Line(6275 2875 6075 2875 45 0x00000000)
- Line(6275 2775 5875 2775 45 0x00000000)
- Line(5350 3075 5975 3075 45 0x00000000)
- Line(6275 2975 6025 2975 45 0x00000000)
- Line(6025 2975 5975 2925 45 0x00000000)
- Line(5975 2600 5350 2600 45 0x00000000)
- Line(6275 3425 4000 3425 45 0x00000000)
- Line(6375 3475 6475 3375 45 0x00000000)
- Line(6275 3375 6375 3475 45 0x00000000)
- Line(6375 3375 6275 3475 45 0x00000000)
- Line(6375 3475 6375 3375 45 0x00000000)
- Line(6275 3375 6275 3475 45 0x00000000)
- Line(6475 3375 6275 3375 45 0x00000000)
- Line(6475 3475 6475 3375 45 0x00000000)
- Line(6275 3475 6475 3475 45 0x00000000)
- Line(5450 3600 4100 3600 45 0x00000000)
- Line(6250 3600 5650 3600 45 0x00000000)
- Line(6275 3575 6250 3600 45 0x00000000)
- Line(6475 2575 6275 2575 45 0x00000000)
- Line(6475 2675 6275 2675 45 0x00000000)
- Line(6475 2775 6275 2775 45 0x00000000)
- Line(6475 2875 6275 2875 45 0x00000000)
- Line(6475 2975 6275 2975 45 0x00000000)
- Line(6475 3075 6275 3075 45 0x00000000)
- Line(6475 3175 6275 3175 45 0x00000000)
- Line(6475 3275 6275 3275 45 0x00000000)
- Line(6325 725 6425 725 25 0x00000000)
- Line(6425 725 6475 775 25 0x00000000)
- Line(6325 725 3975 725 25 0x00000000)
- Line(6275 675 6275 725 25 0x00000000)
- Line(5125 875 5725 875 25 0x00000000)
- Line(6375 775 6325 825 25 0x00000000)
- Line(6325 825 6175 825 25 0x00000000)
- Line(6175 825 6125 825 25 0x00000000)
- Line(6125 825 6075 775 25 0x00000000)
- Line(6075 775 5750 775 25 0x00000000)
- Line(5750 775 5725 800 25 0x00000000)
- Line(5725 800 5725 875 25 0x00000000)
- Line(6325 925 6125 925 25 0x00000000)
- Line(6125 925 6100 925 25 0x00000000)
- Line(6100 925 6075 950 25 0x00000000)
- Line(6075 950 3975 950 25 0x00000000)
- Line(4425 825 4425 950 25 0x00000000)
- Line(3975 950 1350 950 25 0x00000000)
- Line(1700 1525 1800 1525 25 0x00000000)
- Line(1750 1625 1875 1625 25 0x00000000)
- Line(1750 1525 1750 1625 25 0x00000000)
- Line(3900 3175 3175 3175 25 0x00000000)
- Line(2350 2450 3025 2450 25 0x00000000)
- Line(3025 2450 3175 2600 25 0x00000000)
- Line(2350 2450 1350 2450 25 0x00000000)
- Line(1125 3025 1250 3025 25 0x00000000)
- Line(1100 2750 1250 2750 25 0x00000000)
- Line(1675 2900 1250 2900 25 0x00000000)
- Line(525 3025 1125 3025 25 0x00000000)
- Line(450 3100 450 3400 25 0x00000000)
- Line(450 3400 450 3425 25 0x00000000)
- Line(450 3425 500 3475 25 0x00000000)
- Line(525 3025 450 3100 25 0x00000000)
- Line(6025 1000 4175 1000 25 0x00000000)
- Line(5050 1625 5250 1625 25 0x00000000)
- Line(5150 1525 5150 1625 25 0x00000000)
- Line(5100 1525 5200 1525 25 0x00000000)
- Line(6175 1025 6050 1025 25 0x00000000)
- Line(6050 1025 6025 1000 25 0x00000000)
- Line(4175 1000 3100 1000 25 0x00000000)
- Line(3925 875 3925 950 25 0x00000000)
- Line(6275 875 6275 925 25 0x00000000)
- Line(525 1625 525 2650 25 0x00000000)
- Line(3950 175 4375 175 25 0x00000000)
- Line(4375 175 4425 225 25 0x00000000)
- Line(3850 2900 4525 2900 25 0x00000000)
- Line(4525 2900 4650 2775 25 0x00000000)
- Line(2950 2975 3200 2975 25 0x00000000)
- Line(2075 3925 3225 3925 25 0x00000000)
- Line(2950 2975 2875 2975 25 0x00000000)
- Line(2875 2975 2800 3050 25 0x00000000)
- Line(2800 3050 2000 3050 25 0x00000000)
- Line(2000 3050 1975 3050 25 0x00000000)
- Line(2500 2700 3175 2700 25 0x00000000)
- Line(2450 2650 2500 2700 25 0x00000000)
- Line(3175 2700 3275 2600 25 0x00000000)
- Line(3200 2975 3775 2975 25 0x00000000)
- Line(3775 2975 3850 2900 25 0x00000000)
- Line(3275 2925 3275 2975 25 0x00000000)
- Line(1225 3925 2075 3925 25 0x00000000)
- Line(525 2925 700 2925 10 0x00000000)
- Line(500 3300 1000 3300 10 0x00000000)
- Line(1325 3725 1675 3725 25 0x00000000)
- Line(525 2750 700 2750 10 0x00000000)
- Line(2925 3725 2925 3800 25 0x00000000)
- Line(1675 3800 1675 3750 25 0x00000000)
- Line(3125 3725 3125 3800 25 0x00000000)
- Line(2275 3725 2275 3800 25 0x00000000)
- Line(4100 3600 4100 3800 25 0x00000000)
- Line(4100 3800 1675 3800 25 0x00000000)
- Line(900 1625 525 1625 25 0x00000000)
- Line(3950 175 3350 175 25 0x00000000)
- Line(3350 175 3300 225 25 0x00000000)
- Line(3500 225 3500 175 25 0x00000000)
- Line(3925 275 3925 175 25 0x00000000)
- Polygon(0x00000010)
- (
- (6275 3475) (6475 3475) (6475 3375) (6275 3375)
- )
-)
-Layer(2 "GND-sldr")
-(
-)
-Layer(3 "Vcc-sldr")
-(
-)
-Layer(4 "component")
-(
- Line(2575 2825 2725 2975 10 0x00000000)
- Line(2575 1725 2575 2825 10 0x00000000)
- Line(6325 1125 6325 1725 10 0x00000000)
- Line(6375 1075 6325 1125 10 0x00000000)
- Line(900 2525 1100 2325 10 0x00000000)
- Line(900 3450 900 2525 10 0x00000000)
- Line(800 3550 900 3450 10 0x00000000)
- Line(800 3600 800 3550 10 0x00000000)
- Line(1100 2325 1100 1125 10 0x00000000)
- Line(4025 475 4025 575 25 0x00000000)
- Line(6100 725 6100 625 10 0x00000000)
- Line(6325 725 6100 725 10 0x00000000)
- Line(6325 825 6325 725 10 0x00000000)
- Line(6425 825 6325 825 10 0x00000000)
- Line(6475 875 6425 825 10 0x00000000)
- Line(6100 625 6150 525 10 0x00000000)
- Line(2900 1300 2900 575 10 0x00000000)
- Line(6100 975 6100 1300 10 0x00000000)
- Line(6275 975 6100 975 10 0x00000000)
- Line(6175 875 6275 775 10 0x00000000)
- Line(5925 650 5925 875 10 0x00000000)
- Line(6175 350 6175 475 10 0x00000000)
- Line(6175 475 6275 575 10 0x00000000)
- Line(6425 425 6475 475 10 0x00000000)
- Line(6425 200 6425 425 10 0x00000000)
- Line(5825 500 5725 400 25 0x00000000)
- Line(5825 575 5825 500 25 0x00000000)
- Line(5725 275 5725 400 25 0x00000000)
- Line(5125 275 5125 400 25 0x00000000)
- Line(4825 275 4825 475 25 0x00000000)
- Line(5325 225 5325 475 25 0x00000000)
- Line(5925 575 5925 475 25 0x00000000)
- Line(5625 1300 5625 1075 25 0x00000000)
- Line(5575 1350 5625 1300 25 0x00000000)
- Line(5575 1875 5575 1350 25 0x00000000)
- Line(5975 2100 6150 2100 40 0x00000000)
- Line(6175 2300 6175 1025 40 0x00000000)
- Line(6375 875 6375 975 25 0x00000000)
- Line(6375 675 6375 775 25 0x00000000)
- Line(6375 475 6375 575 25 0x00000000)
- Line(5875 1875 5875 2100 45 0x00000000)
- Line(5575 1875 5575 2200 45 0x00000000)
- Line(4575 3175 4575 3425 45 0x00000000)
- Line(4650 3100 4575 3175 45 0x00000000)
- Line(4650 2775 4650 3100 45 0x00000000)
- Line(4650 2200 4650 2775 45 0x00000000)
- Line(5875 2225 5875 2450 45 0x00000000)
- Line(6075 2325 6075 2675 45 0x00000000)
- Line(5875 2125 6075 2325 45 0x00000000)
- Line(5875 2100 5875 2125 45 0x00000000)
- Line(6275 2575 6175 2575 45 0x00000000)
- Line(6375 975 6475 1075 25 0x00000000)
- Line(6175 3075 6175 2300 45 0x00000000)
- Line(6175 3075 6175 3425 45 0x00000000)
- Line(6275 3075 6175 3075 45 0x00000000)
- Line(4700 3300 4700 3175 45 0x00000000)
- Line(3900 3175 3900 3600 45 0x00000000)
- Line(5350 3500 5450 3600 45 0x00000000)
- Line(5350 3275 5350 3500 45 0x00000000)
- Line(5450 3325 5550 3425 45 0x00000000)
- Line(5450 2925 5450 3325 45 0x00000000)
- Line(5975 2775 6075 2875 45 0x00000000)
- Line(5975 2600 5975 2775 45 0x00000000)
- Line(5975 2925 5975 3075 45 0x00000000)
- Line(5350 2600 5350 2450 45 0x00000000)
- Line(5350 2925 5350 3075 45 0x00000000)
- Line(5975 2450 5975 2600 45 0x00000000)
- Line(5450 2450 5450 2925 45 0x00000000)
- Line(5550 3600 5550 3425 45 0x00000000)
- Line(4850 3300 4850 3425 45 0x00000000)
- Line(4700 3700 4700 3425 45 0x00000000)
- Line(4000 3425 4000 3600 45 0x00000000)
- Line(5875 2450 5875 3600 45 0x00000000)
- Line(3975 725 3975 1125 25 0x00000000)
- Line(3975 1125 4025 1175 25 0x00000000)
- Line(4825 875 4825 725 25 0x00000000)
- Line(5325 825 5325 725 25 0x00000000)
- Line(5925 1175 5875 1125 25 0x00000000)
- Line(5875 1125 5875 725 25 0x00000000)
- Line(5825 1175 5775 1125 25 0x00000000)
- Line(5775 1125 5775 1025 25 0x00000000)
- Line(5775 1025 5775 925 25 0x00000000)
- Line(5775 925 5725 875 25 0x00000000)
- Line(4925 575 4925 750 25 0x00000000)
- Line(4925 950 4925 1175 25 0x00000000)
- Line(4925 1175 4925 1400 25 0x00000000)
- Line(4925 1400 4950 1425 25 0x00000000)
- Line(4950 1425 4950 1625 25 0x00000000)
- Line(4925 750 4875 800 25 0x00000000)
- Line(4875 800 4875 925 25 0x00000000)
- Line(4875 925 4925 975 25 0x00000000)
- Line(2375 275 2325 325 25 0x00000000)
- Line(2325 325 2325 950 25 0x00000000)
- Line(1350 950 1350 2050 25 0x00000000)
- Line(1700 1525 1700 950 25 0x00000000)
- Line(2400 275 2375 275 25 0x00000000)
- Line(3175 3175 3175 2600 25 0x00000000)
- Line(3225 3725 3225 3925 25 0x00000000)
- Line(2150 2050 2150 2250 25 0x00000000)
- Line(2150 2250 2350 2450 25 0x00000000)
- Line(2350 2450 2350 2650 25 0x00000000)
- Line(2725 2050 2650 2125 25 0x00000000)
- Line(2650 2125 2650 2450 25 0x00000000)
- Line(2750 2050 2725 2050 25 0x00000000)
- Line(1350 2450 1350 2050 25 0x00000000)
- Line(1250 2550 1350 2450 25 0x00000000)
- Line(1250 3025 1250 2750 25 0x00000000)
- Line(1250 2750 1250 2550 25 0x00000000)
- Line(4225 875 4225 1000 25 0x00000000)
- Line(5200 1525 5200 1000 25 0x00000000)
- Line(3100 1000 3100 575 25 0x00000000)
- Line(4225 275 4275 275 25 0x00000000)
- Line(4275 275 4300 300 25 0x00000000)
- Line(4300 300 4300 800 25 0x00000000)
- Line(4300 800 4225 875 25 0x00000000)
- Line(4425 850 4425 950 25 0x00000000)
- Line(3850 350 3925 275 25 0x00000000)
- Line(3925 875 3850 800 25 0x00000000)
- Line(3850 800 3850 350 25 0x00000000)
- Line(5450 2450 5450 2250 25 0x00000000)
- Line(5450 2250 5300 2100 25 0x00000000)
- Line(3275 2600 3275 2900 25 0x00000000)
- Line(3850 2350 3850 2600 25 0x00000000)
- Line(3850 2600 3850 2900 25 0x00000000)
- Line(1975 3050 1975 3225 25 0x00000000)
- Line(1225 3925 1225 3725 25 0x00000000)
- Line(2075 3725 2075 3925 25 0x00000000)
- Line(2675 3725 2675 3925 25 0x00000000)
- Line(3550 2600 3550 2900 25 0x00000000)
- Line(3550 2900 3550 3175 25 0x00000000)
- Line(3275 2900 3325 2950 25 0x00000000)
- Line(3325 2950 3325 3650 25 0x00000000)
- Line(3325 3650 3250 3725 25 0x00000000)
- Line(3250 3725 3225 3725 25 0x00000000)
- Line(2075 3425 2275 3625 25 0x00000000)
- Line(2275 3625 2275 3725 25 0x00000000)
- Line(2675 3425 2675 3475 25 0x00000000)
- Line(2675 3475 2925 3725 25 0x00000000)
- Line(525 2650 650 2775 25 0x00000000)
- Line(650 2775 650 2800 25 0x00000000)
- Line(650 2800 650 3150 25 0x00000000)
- Line(650 3150 725 3225 25 0x00000000)
- Line(725 3225 725 3275 25 0x00000000)
- Line(725 3275 725 3925 25 0x00000000)
- Line(3500 625 3500 1300 10 0x00000000)
- Line(3300 625 3300 525 10 0x00000000)
-)
-Layer(5 "GND-comp")
-(
-)
-Layer(6 "Vcc-comp")
-(
-)
-Layer(7 "unused")
-(
-)
-Layer(8 "unused")
-(
-)
+++ /dev/null
-G04 Title: (unknown), solder mask solder side *\r
-G04 Creator: pcb 1.6.3 *\r
-G04 CreationDate: Mon Mar 31 19:59:34 2003 UTC *\r
-G04 For: fetter *\r
-G04 Format: Gerber/RS-274X *\r
-G04 PCB-Dimensions: 7100 4100 *\r
-G04 PCB-Coordinate-Origin: lower left *\r
-G04 Color: R0 G0 B0 *\r
-*\r
-%FSLAX23Y23*%\r
-%MOIN*%\r
-%ADD11C,0.010*%\r
-%ADD12C,0.025*%\r
-%ADD13C,0.045*%\r
-%ADD14C,0.040*%\r
-%ADD15C,0.001*%\r
-%ADD16C,0.120*%\r
-%ADD17C,0.150*%\r
-%ADD18C,0.020*%\r
-%ADD19R,0.060X0.060*%\r
-%ADD20R,0.090X0.090*%\r
-%ADD21C,0.060*%\r
-%ADD22C,0.090*%\r
-%ADD23C,0.008*%\r
-%ADD24C,0.080*%\r
-%ADD25C,0.110*%\r
-%ADD26C,0.148*%\r
-%ADD27C,0.178*%\r
-%ADD28R,0.080X0.080*%\r
-%ADD29R,0.110X0.110*%\r
-%ADD30R,0.070X0.070*%\r
-%ADD31R,0.100X0.100*%\r
-%ADD32C,0.070*%\r
-%ADD33C,0.100*%\r
-%ADD34C,0.016*%\r
-%ADD35C,0.015*%\r
-%IPNEG*%\r
-G01*\r
-G54D17*X575Y3825D03*\r
-Y338D03*\r
-X6625Y3825D03*\r
-Y338D03*\r
-G54D20*X1155Y1045D03*\r
-G54D22*X755D03*\r
-G54D20*X1725Y375D03*\r
-G54D22*X1825D03*\r
-X1925D03*\r
-X2025D03*\r
-X2125D03*\r
-X2225D03*\r
-X2325D03*\r
-X2425D03*\r
-X2525D03*\r
-X2625D03*\r
-X2725D03*\r
-X2825D03*\r
-Y675D03*\r
-X2725D03*\r
-X2625D03*\r
-X2525D03*\r
-X2425D03*\r
-X2325D03*\r
-X2225D03*\r
-X2125D03*\r
-X2025D03*\r
-X1925D03*\r
-X1825D03*\r
-X1725D03*\r
-G54D20*X1375Y375D03*\r
-G54D22*X1275D03*\r
-G54D20*X5400Y2475D03*\r
-G54D22*X5350Y2575D03*\r
-X5300Y2475D03*\r
-X5250Y2575D03*\r
-X5200Y2475D03*\r
-X5150Y2575D03*\r
-X5100Y2475D03*\r
-X5050Y2575D03*\r
-X5000Y2475D03*\r
-X4950Y2575D03*\r
-X4900Y2475D03*\r
-X4850Y2575D03*\r
-X4800Y2475D03*\r
-X4750Y2575D03*\r
-X4700Y2475D03*\r
-X4650Y2575D03*\r
-X4600Y2475D03*\r
-X4550Y2575D03*\r
-X4500Y2475D03*\r
-X4450Y2575D03*\r
-X4400Y2475D03*\r
-X4350Y2575D03*\r
-X4300Y2475D03*\r
-X4250Y2575D03*\r
-X4200Y2475D03*\r
-X4150Y2575D03*\r
-X4100Y2475D03*\r
-X4050Y2575D03*\r
-X4000Y2475D03*\r
-X3950Y2575D03*\r
-X3900Y2475D03*\r
-X3850Y2575D03*\r
-X3800Y2475D03*\r
-X3750Y2575D03*\r
-X3700Y2475D03*\r
-X3650Y2575D03*\r
-X3400Y2475D03*\r
-X3350Y2575D03*\r
-X3300Y2475D03*\r
-X3250Y2575D03*\r
-X3200Y2475D03*\r
-X3150Y2575D03*\r
-X3100Y2475D03*\r
-X3050Y2575D03*\r
-X3000Y2475D03*\r
-X2950Y2575D03*\r
-X2900Y2475D03*\r
-X2850Y2575D03*\r
-X2800Y2475D03*\r
-X2750Y2575D03*\r
-X2700Y2475D03*\r
-X2650Y2575D03*\r
-X2600Y2475D03*\r
-X2550Y2575D03*\r
-X2500Y2475D03*\r
-X2450Y2575D03*\r
-X2400Y2475D03*\r
-X2350Y2575D03*\r
-X2300Y2475D03*\r
-X2250Y2575D03*\r
-X2200Y2475D03*\r
-X2150Y2575D03*\r
-X2100Y2475D03*\r
-X2050Y2575D03*\r
-X2000Y2475D03*\r
-X1950Y2575D03*\r
-X1900Y2475D03*\r
-X1850Y2575D03*\r
-X1800Y2475D03*\r
-X1750Y2575D03*\r
-X1700Y2475D03*\r
-X1650Y2575D03*\r
-G54D25*X5730Y2525D03*\r
-G54D17*X3525D03*\r
-X1325D03*\r
-G54D20*X1375Y675D03*\r
-G54D22*X1275D03*\r
-G54D20*X3175D03*\r
-G54D22*X3275D03*\r
-G54D20*X3600Y1200D03*\r
-G54D22*X3700D03*\r
-X3800D03*\r
-X3900D03*\r
-Y1500D03*\r
-X3800D03*\r
-X3700D03*\r
-X3600D03*\r
-G54D20*X875Y3525D03*\r
-G54D22*X975Y3475D03*\r
-X875Y3425D03*\r
-X975Y3375D03*\r
-X875Y3325D03*\r
-X975Y3275D03*\r
-X875Y3225D03*\r
-X975Y3175D03*\r
-G54D27*X625Y3575D03*\r
-Y3124D03*\r
-G54D25*X745Y3655D03*\r
-Y3044D03*\r
-G54D20*X3225Y1200D03*\r
-G54D22*X3325D03*\r
-G54D20*X5775Y3525D03*\r
-G54D22*X5875D03*\r
-X5975D03*\r
-X6075D03*\r
-Y3825D03*\r
-X5975D03*\r
-X5875D03*\r
-X5775D03*\r
-G54D29*X5825Y2000D03*\r
-G54D25*X5925D03*\r
-X6025D03*\r
-G54D20*X5775Y2925D03*\r
-G54D22*X5875D03*\r
-X5975D03*\r
-X6075D03*\r
-Y3225D03*\r
-X5975D03*\r
-X5875D03*\r
-X5775D03*\r
-G54D20*X5625Y2225D03*\r
-G54D22*X5925D03*\r
-G54D29*X5825Y1175D03*\r
-G54D25*X5925D03*\r
-X6025D03*\r
-G54D31*X550Y1405D03*\r
-G54D33*Y1228D03*\r
-X648Y1454D03*\r
-Y1178D03*\r
-G54D20*X4750Y800D03*\r
-G54D22*X4900D03*\r
-G54D20*X3000Y1125D03*\r
-G54D22*Y1525D03*\r
-G54D20*X4475Y3475D03*\r
-G54D22*Y3875D03*\r
-G54D20*X3325Y1500D03*\r
-G54D22*X3225D03*\r
-G54D20*X6525Y3625D03*\r
-G54D22*Y3525D03*\r
-Y3425D03*\r
-Y3325D03*\r
-Y3225D03*\r
-Y3125D03*\r
-Y3025D03*\r
-Y2925D03*\r
-Y2825D03*\r
-Y2725D03*\r
-Y2625D03*\r
-Y2525D03*\r
-Y2425D03*\r
-Y2325D03*\r
-Y2225D03*\r
-Y2125D03*\r
-Y2025D03*\r
-Y1925D03*\r
-Y1825D03*\r
-Y1725D03*\r
-Y1625D03*\r
-Y1525D03*\r
-Y1425D03*\r
-Y1325D03*\r
-Y1225D03*\r
-Y1125D03*\r
-Y1025D03*\r
-Y925D03*\r
-Y825D03*\r
-Y725D03*\r
-Y625D03*\r
-Y525D03*\r
-X6425Y3625D03*\r
-Y3525D03*\r
-Y3425D03*\r
-Y3325D03*\r
-Y3225D03*\r
-Y3125D03*\r
-Y3025D03*\r
-Y2925D03*\r
-Y2825D03*\r
-Y2725D03*\r
-Y2625D03*\r
-Y2525D03*\r
-Y2425D03*\r
-Y2325D03*\r
-Y2225D03*\r
-Y2125D03*\r
-Y2025D03*\r
-Y1925D03*\r
-Y1825D03*\r
-Y1725D03*\r
-Y1625D03*\r
-Y1525D03*\r
-Y1425D03*\r
-Y1325D03*\r
-Y1225D03*\r
-Y1125D03*\r
-Y1025D03*\r
-Y925D03*\r
-Y825D03*\r
-Y725D03*\r
-Y625D03*\r
-Y525D03*\r
-X6325Y3625D03*\r
-Y3525D03*\r
-Y3425D03*\r
-Y3325D03*\r
-Y3225D03*\r
-Y3125D03*\r
-Y3025D03*\r
-Y2925D03*\r
-Y2825D03*\r
-Y2725D03*\r
-Y2625D03*\r
-Y2525D03*\r
-Y2425D03*\r
-Y2325D03*\r
-Y2225D03*\r
-Y2125D03*\r
-Y2025D03*\r
-Y1925D03*\r
-Y1825D03*\r
-Y1725D03*\r
-Y1625D03*\r
-Y1525D03*\r
-Y1425D03*\r
-Y1325D03*\r
-Y1225D03*\r
-Y1125D03*\r
-Y1025D03*\r
-Y925D03*\r
-Y825D03*\r
-Y725D03*\r
-Y625D03*\r
-Y525D03*\r
-G54D17*X6625Y325D03*\r
-Y3825D03*\r
-G54D29*X5300Y1175D03*\r
-G54D25*X5400D03*\r
-X5500D03*\r
-G54D20*X4900Y400D03*\r
-G54D22*X4750D03*\r
-G54D20*X1160Y1300D03*\r
-G54D22*X760D03*\r
-G54D20*X2800Y1525D03*\r
-G54D22*Y1125D03*\r
-G54D29*X5700Y500D03*\r
-G54D25*X5600D03*\r
-X5500D03*\r
-G54D31*X4950Y1325D03*\r
-G54D33*X4700D03*\r
-G54D20*X1725Y900D03*\r
-G54D22*X1825D03*\r
-X1925D03*\r
-X2025D03*\r
-Y1200D03*\r
-X1925D03*\r
-X1825D03*\r
-X1725D03*\r
-G54D31*X1050Y800D03*\r
-G54D33*X1150D03*\r
-G54D20*X3550Y3475D03*\r
-G54D22*Y3875D03*\r
-G54D20*X5350Y2000D03*\r
-G54D22*X5450D03*\r
-G54D29*X5825Y1650D03*\r
-G54D25*X5925D03*\r
-X6025D03*\r
-G54D20*X850Y800D03*\r
-G54D22*Y500D03*\r
-G54D31*X4950Y1900D03*\r
-G54D33*X4700D03*\r
-G54D20*X815Y1705D03*\r
-G54D22*Y1605D03*\r
-G54D17*X775Y2860D03*\r
-Y1920D03*\r
-G54D33*X825Y2590D03*\r
-X725Y2540D03*\r
-X825Y2490D03*\r
-X725Y2440D03*\r
-X825Y2390D03*\r
-X725Y2340D03*\r
-X825Y2290D03*\r
-X725Y2240D03*\r
-G54D31*X825Y2190D03*\r
-G54D20*X2800Y1750D03*\r
-G54D22*X2900D03*\r
-X3000D03*\r
-X3100D03*\r
-X3200D03*\r
-X3300D03*\r
-X3400D03*\r
-X3500D03*\r
-X3600D03*\r
-X3700D03*\r
-X3800D03*\r
-X3900D03*\r
-Y2050D03*\r
-X3800D03*\r
-X3700D03*\r
-X3600D03*\r
-X3500D03*\r
-X3400D03*\r
-X3300D03*\r
-X3200D03*\r
-X3100D03*\r
-X3000D03*\r
-X2900D03*\r
-X2800D03*\r
-G54D20*X1400Y1450D03*\r
-G54D22*X1500D03*\r
-X1600D03*\r
-X1700D03*\r
-X1800D03*\r
-X1900D03*\r
-X2000D03*\r
-X2100D03*\r
-X2200D03*\r
-X2300D03*\r
-X2400D03*\r
-X2500D03*\r
-Y2050D03*\r
-X2400D03*\r
-X2300D03*\r
-X2200D03*\r
-X2100D03*\r
-X2000D03*\r
-X1900D03*\r
-X1800D03*\r
-X1700D03*\r
-X1600D03*\r
-X1500D03*\r
-X1400D03*\r
-G54D31*X4200D03*\r
-G54D33*X4300D03*\r
-X4200Y1950D03*\r
-X4300D03*\r
-X4200Y1850D03*\r
-X4300D03*\r
-X4200Y1750D03*\r
-X4300D03*\r
-G54D20*X3175Y375D03*\r
-G54D22*X3275D03*\r
-G54D20*X2450Y3525D03*\r
-G54D22*X2550D03*\r
-X2650D03*\r
-X2750D03*\r
-X2850D03*\r
-X2950D03*\r
-X3050D03*\r
-X3150D03*\r
-Y3825D03*\r
-X3050D03*\r
-X2950D03*\r
-X2850D03*\r
-X2750D03*\r
-X2650D03*\r
-X2550D03*\r
-X2450D03*\r
-G54D29*X5300Y1650D03*\r
-G54D25*X5400D03*\r
-X5500D03*\r
-G54D20*X575Y1705D03*\r
-G54D22*Y1605D03*\r
-G54D20*X1575Y675D03*\r
-G54D22*Y375D03*\r
-G54D20*X5575Y3475D03*\r
-G54D22*Y3875D03*\r
-G54D20*X3975Y3525D03*\r
-G54D22*X4075D03*\r
-X4175D03*\r
-X4275D03*\r
-Y3825D03*\r
-X4175D03*\r
-X4075D03*\r
-X3975D03*\r
-G54D20*X4875Y2925D03*\r
-G54D22*X4975D03*\r
-X5075D03*\r
-X5175D03*\r
-Y3225D03*\r
-X5075D03*\r
-X4975D03*\r
-X4875D03*\r
-G54D20*X5375Y2875D03*\r
-G54D22*Y3275D03*\r
-G54D20*X4675Y2875D03*\r
-G54D22*Y3275D03*\r
-G54D20*Y3475D03*\r
-G54D22*Y3875D03*\r
-G54D20*X4875Y3525D03*\r
-G54D22*X4975D03*\r
-X5075D03*\r
-X5175D03*\r
-Y3825D03*\r
-X5075D03*\r
-X4975D03*\r
-X4875D03*\r
-G54D20*X5375Y3475D03*\r
-G54D22*Y3875D03*\r
-G54D20*X5575Y2875D03*\r
-G54D22*Y3275D03*\r
-G54D20*X3975Y2925D03*\r
-G54D22*X4075D03*\r
-X4175D03*\r
-X4275D03*\r
-Y3225D03*\r
-X4175D03*\r
-X4075D03*\r
-X3975D03*\r
-G54D20*X4475Y2875D03*\r
-G54D22*Y3275D03*\r
-G54D29*X4150Y500D03*\r
-G54D25*X4050D03*\r
-X3950D03*\r
-G54D20*X2975Y675D03*\r
-G54D22*Y375D03*\r
-G54D20*X3350Y3475D03*\r
-G54D22*Y3875D03*\r
-X4750Y675D03*\r
-X4900D03*\r
-X5600D03*\r
-X6025Y1500D03*\r
-X5400D03*\r
-Y1025D03*\r
-X6025D03*\r
-X5925Y1325D03*\r
-X6125Y1225D03*\r
-X5400Y825D03*\r
-X3950Y925D03*\r
-X4750D03*\r
-X6225Y675D03*\r
-X6125Y1425D03*\r
-X5925Y1875D03*\r
-X4625Y675D03*\r
-X5625Y1900D03*\r
-X6225Y3075D03*\r
-X6475D03*\r
-X5675Y3025D03*\r
-X5975Y3625D03*\r
-X5375D03*\r
-X4875D03*\r
-X5175Y3700D03*\r
-X5775D03*\r
-X4025Y3375D03*\r
-X4875D03*\r
-X5375D03*\r
-X5925D03*\r
-X4975Y3150D03*\r
-X1400D03*\r
-X1750D03*\r
-X2375D03*\r
-X3225Y925D03*\r
-X3275Y175D03*\r
-X2400Y1650D03*\r
-X2700D03*\r
-X1400D03*\r
-X1300Y1300D03*\r
-Y1200D03*\r
-G54D32*X2525Y1225D03*\r
-G54D22*X4275Y3100D03*\r
-X5250D03*\r
-X3150D03*\r
-X4475Y3150D03*\r
-X2025Y1050D03*\r
-X1275Y175D03*\r
-X2125D03*\r
-X2725D03*\r
-X3600Y925D03*\r
-X775Y175D03*\r
-G54D32*X4875Y3025D03*\r
-X6200Y3575D03*\r
-X6225Y3225D03*\r
-X5375Y3025D03*\r
-X6375Y2375D03*\r
-X2625D03*\r
-X5975Y3450D03*\r
-G54D22*X4075Y3625D03*\r
-G54D32*X2050Y3275D03*\r
-X4025Y1750D03*\r
-X2950Y2800D03*\r
-X3350Y3575D03*\r
-X5275Y3875D03*\r
-X6150Y3950D03*\r
-X4775Y3525D03*\r
-X6225Y3750D03*\r
-X6475Y3900D03*\r
-X5575Y3950D03*\r
-X5025D03*\r
-X5475Y2675D03*\r
-X6100D03*\r
-X6150Y2800D03*\r
-X5550Y2750D03*\r
-X1950Y3525D03*\r
-X2425Y500D03*\r
-X2100Y3425D03*\r
-X1150Y2975D03*\r
-X5075Y3025D03*\r
-X4175Y2750D03*\r
-X2000Y3475D03*\r
-X5125Y3300D03*\r
-X5575Y1725D03*\r
-X4475Y3800D03*\r
-X3550Y2800D03*\r
-G54D22*X2725Y575D03*\r
-G54D32*X950Y1650D03*\r
-X1150D03*\r
-X5825Y1250D03*\r
-X1100Y425D03*\r
-X1825Y250D03*\r
-X2525D03*\r
-G54D22*X2125Y575D03*\r
-X2325D03*\r
-G54D32*X1925Y500D03*\r
-X4175Y3025D03*\r
-X4475D03*\r
-X4725D03*\r
-X4675Y3950D03*\r
-X2550Y2900D03*\r
-X2650D03*\r
-Y2800D03*\r
-X2500D03*\r
-X2600Y3050D03*\r
-X2450D03*\r
-X2850Y2900D03*\r
-X3000D03*\r
-X2900Y2850D03*\r
-X3100D03*\r
-X2950Y2725D03*\r
-X3225D03*\r
-X1450D03*\r
-X1550Y2850D03*\r
-X1600Y3100D03*\r
-X3000D03*\r
-X1700Y2675D03*\r
-X2800D03*\r
-X1800Y2775D03*\r
-X2750Y2800D03*\r
-X1900Y3050D03*\r
-X2700D03*\r
-X2000Y1550D03*\r
-X2700D03*\r
-G54D22*X3225Y1650D03*\r
-G54D32*X3500Y1600D03*\r
-X2025Y1275D03*\r
-X2200D03*\r
-X2575Y1600D03*\r
-X2100D03*\r
-X2575Y2125D03*\r
-G54D22*X2200Y1850D03*\r
-X2400D03*\r
-G54D32*X3000Y1975D03*\r
-X2150D03*\r
-X3100Y1925D03*\r
-X2250D03*\r
-Y2150D03*\r
-X3150Y2175D03*\r
-X1500Y2225D03*\r
-X3250D03*\r
-X2350D03*\r
-X3600Y1575D03*\r
-X2925Y1875D03*\r
-X1700Y1925D03*\r
-X2100Y1800D03*\r
-X3900Y1850D03*\r
-X2575Y1325D03*\r
-X3850D03*\r
-X1550Y1275D03*\r
-X3400D03*\r
-X2300Y2275D03*\r
-X2450D03*\r
-X2275Y3200D03*\r
-X2550D03*\r
-X2500Y2375D03*\r
-X1900Y2350D03*\r
-X1800Y2400D03*\r
-X4300Y2125D03*\r
-G54D22*X3325Y1400D03*\r
-G54D32*X2900Y1450D03*\r
-X4800D03*\r
-G54D22*X4700Y1200D03*\r
-G54D32*X4625Y1275D03*\r
-X3000Y2325D03*\r
-X4850D03*\r
-X3050Y3250D03*\r
-X2750D03*\r
-X3300Y3300D03*\r
-X2850D03*\r
-X3500Y1900D03*\r
-X3650D03*\r
-X3550Y250D03*\r
-G54D22*X2975Y575D03*\r
-G54D32*X3750Y500D03*\r
-X1075Y2625D03*\r
-X1220Y2495D03*\r
-X4500Y2275D03*\r
-X2625Y575D03*\r
-X3275D03*\r
-X4000Y1850D03*\r
-X4050Y1950D03*\r
-X4100Y2050D03*\r
-X1050Y1400D03*\r
-X4150Y1375D03*\r
-X4025Y1600D03*\r
-X2225Y1000D03*\r
-X4025D03*\r
-X5200Y1500D03*\r
-Y725D03*\r
-X2100Y875D03*\r
-X5700D03*\r
-Y1650D03*\r
-X5300Y825D03*\r
-X2825Y800D03*\r
-X3275Y1050D03*\r
-X495Y800D03*\r
-G54D22*X1300Y1550D03*\r
-G54D32*X765Y1530D03*\r
-X905Y1045D03*\r
-G54D22*X5925Y500D03*\r
-X4050Y675D03*\r
-D02*\r
-M02*\r
+++ /dev/null
-G04 Title: (unknown), silkscreen solder side *\r
-G04 Creator: pcb 1.6.3 *\r
-G04 CreationDate: Mon Mar 31 19:59:34 2003 UTC *\r
-G04 For: fetter *\r
-G04 Format: Gerber/RS-274X *\r
-G04 PCB-Dimensions: 7100 4100 *\r
-G04 PCB-Coordinate-Origin: lower left *\r
-G04 Color: R0 G0 B0 *\r
-*\r
-%FSLAX23Y23*%\r
-%MOIN*%\r
-%ADD11C,0.010*%\r
-%ADD12C,0.025*%\r
-%ADD13C,0.045*%\r
-%ADD14C,0.040*%\r
-%ADD15C,0.001*%\r
-%ADD16C,0.120*%\r
-%ADD17C,0.150*%\r
-%ADD18C,0.020*%\r
-%ADD19R,0.060X0.060*%\r
-%ADD20R,0.090X0.090*%\r
-%ADD21C,0.060*%\r
-%ADD22C,0.090*%\r
-%ADD23C,0.008*%\r
-%ADD24C,0.080*%\r
-%ADD25C,0.110*%\r
-%ADD26C,0.148*%\r
-%ADD27C,0.178*%\r
-%ADD28R,0.080X0.080*%\r
-%ADD29R,0.110X0.110*%\r
-%ADD30R,0.070X0.070*%\r
-%ADD31R,0.100X0.100*%\r
-%ADD32C,0.070*%\r
-%ADD33C,0.100*%\r
-%ADD34C,0.016*%\r
-%ADD35C,0.015*%\r
-%IPPOS*%\r
-G01*\r
-D02*\r
-M02*\r
+++ /dev/null
-v 20030223
-C 3400 72000 0 0 0 title-A2.sym
-T 20100 72400 9 10 1 0 0 0
-aicconn.sch
-T 20300 72100 9 10 1 0 0 0
-3
-T 21700 72100 9 10 1 0 0 0
-3
-T 19800 72700 9 10 1 0 0 0
-Actuator Interface Card - Edge Connector
-T 23600 72400 9 10 1 0 0 0
-1.1.0
-T 21500 73200 9 10 1 0 0 0
-Universidade Federal do Rio Grande do Sul
-T 21700 73000 9 10 1 0 0 0
-Departamento de Engenharia Eletrica
-T 23600 72100 9 8 1 0 0 0
-Walter Fetter Lages & Fernando Pessutto
-C 12400 74100 1 0 0 DIN41612C96-2.sym
-{
-T 13000 87100 5 10 1 1 0 0
-description=DIN 41612C-96
-T 15900 87100 5 10 1 1 0 6
-refdes=J15
-}
-C 11800 86700 1 0 1 io-1.sym
-{
-T 10900 86800 5 10 1 1 0 7
-value=CANL0
-T 11800 86700 5 10 0 1 0 0
-net=CANL0:1
-}
-C 17000 86100 1 0 0 io-1.sym
-{
-T 17900 86200 5 10 1 1 0 1
-value=CANH0
-T 17000 86100 5 10 0 1 0 0
-net=CANH0:1
-}
-N 11800 86000 12600 86000 4
-N 11800 86800 12600 86800 4
-N 17000 86200 16200 86200 4
-N 17000 85400 16200 85400 4
-C 11800 85900 1 0 1 io-1.sym
-{
-T 10900 86000 5 10 1 1 0 7
-value=CANL1
-T 11800 85900 5 10 0 1 0 0
-net=CANL1:1
-}
-C 17000 85300 1 0 0 io-1.sym
-{
-T 17900 85400 5 10 1 1 0 1
-value=CANH1
-T 17000 85300 5 10 0 1 0 0
-net=CANH1:1
-}
-C 11800 85100 1 0 1 output-2.sym
-{
-T 10900 85200 5 10 1 1 0 7
-value=CHA
-T 11800 85100 5 10 0 1 0 0
-net=CHA:1
-}
-N 12600 85200 11800 85200 4
-C 17000 84500 1 0 0 output-2.sym
-{
-T 17900 84600 5 10 1 1 0 1
-value=CHB
-T 17000 84500 5 10 0 1 0 6
-net=CHB:1
-}
-N 16200 84600 17000 84600 4
-C 17000 84300 1 0 0 output-2.sym
-{
-T 17900 84400 5 10 1 1 0 1
-value=INDEX
-T 17000 84300 5 10 0 1 0 0
-net=INDEX:1
-}
-N 17000 84400 16200 84400 4
-N 16200 85000 17000 85000 4
-N 11800 84800 12600 84800 4
-N 11800 86400 12600 86400 4
-N 11800 85600 12600 85600 4
-N 16200 86600 17000 86600 4
-N 17000 85800 16200 85800 4
-N 11800 84400 12600 84400 4
-N 16200 86800 17000 86800 4
-N 17000 86400 16200 86400 4
-N 16200 86000 17000 86000 4
-N 17000 85600 16200 85600 4
-N 16200 85200 17000 85200 4
-N 17000 84800 16200 84800 4
-N 17000 84200 16200 84200 4
-C 17000 76300 1 0 0 passive-1.sym
-{
-T 17900 76400 5 10 1 1 0 1
-value=GND
-T 17000 76300 5 10 0 1 0 0
-net=GND:1
-}
-C 17000 76100 1 0 0 passive-1.sym
-{
-T 17900 76200 5 10 1 1 0 1
-value=GND
-T 17000 76100 5 10 0 1 0 0
-net=GND:1
-}
-N 16200 78400 17000 78400 4
-N 17000 78200 16200 78200 4
-N 16200 76400 17000 76400 4
-N 17000 76200 16200 76200 4
-N 16200 74800 17000 74800 4
-N 17000 74600 16200 74600 4
-N 17000 77600 16200 77600 4
-N 17000 77400 16200 77400 4
-N 17000 74200 16200 74200 4
-N 17000 74400 16200 74400 4
-C 17000 75500 1 0 0 passive-1.sym
-{
-T 17900 75600 5 10 1 1 0 1
-value=+12V
-T 17000 75500 5 10 0 1 0 0
-net=+12V:1
-}
-C 17000 75300 1 0 0 passive-1.sym
-{
-T 17900 75400 5 10 1 1 0 1
-value=+12V
-T 17000 75300 5 10 0 1 0 0
-net=+12V:1
-}
-N 17000 75600 16200 75600 4
-N 17000 75400 16200 75400 4
-C 17000 75900 1 0 0 passive-1.sym
-{
-T 17900 76000 5 10 1 1 0 1
-value=Vcc
-T 17000 75900 5 10 0 1 0 0
-net=Vcc:1
-}
-C 17000 75700 1 0 0 passive-1.sym
-{
-T 17900 75800 5 10 1 1 0 1
-value=Vcc
-T 17000 75700 5 10 0 1 0 0
-net=Vcc:1
-}
-N 17000 76000 16200 76000 4
-N 17000 75800 16200 75800 4
-C 17000 75100 1 0 0 passive-1.sym
-{
-T 17900 75200 5 10 1 1 0 1
-value=GND
-T 17000 75100 5 10 0 1 0 0
-net=GND:1
-}
-C 17000 74900 1 0 0 passive-1.sym
-{
-T 17900 75000 5 10 1 1 0 1
-value=GND
-T 17000 74900 5 10 0 1 0 0
-net=GND:1
-}
-N 16200 75200 17000 75200 4
-N 17000 75000 16200 75000 4
-C 18400 77900 1 0 1 input-2.sym
-{
-T 17900 78000 5 10 1 1 0 1
-value=/RELEASE
-T 18400 77900 5 10 0 1 0 0
-net=/RELEASE:1
-}
-C 18400 77700 1 0 1 input-2.sym
-{
-T 17900 77800 5 10 1 1 0 1
-value=/RELEASE
-T 18400 77700 5 10 0 1 0 0
-net=/RELEASE:1
-}
-N 16200 78000 17000 78000 4
-N 17000 77800 16200 77800 4
-N 16200 77200 17000 77200 4
-C 18400 77100 1 0 1 input-2.sym
-{
-T 17900 77200 5 10 1 1 0 1
-value=MOTOR+
-T 18400 77100 5 10 0 1 0 0
-net=MOTOR+:1
-}
-C 18400 76900 1 0 1 input-2.sym
-{
-T 17900 77000 5 10 1 1 0 1
-value=MOTOR+
-T 18400 76900 5 10 0 1 0 0
-net=MOTOR+:1
-}
-N 16200 77000 17000 77000 4
-C 18400 76700 1 0 1 input-2.sym
-{
-T 17900 76800 5 10 1 1 0 1
-value=MOTOR-
-T 18400 76700 5 10 0 1 0 0
-net=MOTOR-:1
-}
-N 16200 76800 17000 76800 4
-C 18400 76500 1 0 1 input-2.sym
-{
-T 17900 76600 5 10 1 1 0 1
-value=MOTOR-
-T 18400 76500 5 10 0 1 0 0
-net=MOTOR-:1
-}
-N 16200 76600 17000 76600 4
-C 17000 74500 1 0 0 output-2.sym
-{
-T 17900 74600 5 10 1 1 0 1
-value=GND
-T 17000 74500 5 10 0 1 0 0
-net=GND:1
-}
-C 17000 74700 1 0 0 output-2.sym
-{
-T 17900 74800 5 10 1 1 0 1
-value=GND
-T 17000 74700 5 10 0 1 0 0
-net=GND:1
-}
-C 17000 74300 1 0 0 output-2.sym
-{
-T 17900 74400 5 10 1 1 0 1
-value=+24V
-T 17000 74300 5 10 0 1 0 0
-net=+24V:1
-}
-C 17000 74100 1 0 0 output-2.sym
-{
-T 17900 74200 5 10 1 1 0 1
-value=+24V
-T 17000 74100 5 10 0 1 0 0
-net=+24V:1
-}
-C 18400 78300 1 0 1 input-2.sym
-{
-T 17900 78400 5 10 1 1 0 1
-value=GND
-T 18400 78300 5 10 0 1 0 0
-net=GND:1
-}
-C 18400 78100 1 0 1 input-2.sym
-{
-T 17900 78200 5 10 1 1 0 1
-value=GND
-T 18400 78100 5 10 0 1 0 0
-net=GND:1
-}
-C 18400 77500 1 0 1 input-2.sym
-{
-T 17900 77600 5 10 1 1 0 1
-value=+24V
-T 18400 77500 5 10 0 1 0 0
-net=+24V:1
-}
-C 18400 77300 1 0 1 input-2.sym
-{
-T 17900 77400 5 10 1 1 0 1
-value=+24V
-T 18400 77300 5 10 0 1 0 0
-net=+24V:1
-}
-C 18400 85100 1 0 1 input-2.sym
-{
-T 17900 85200 5 10 1 1 0 1
-value=GND
-T 18400 85100 5 10 0 1 0 0
-net=GND:1
-}
-C 18400 84700 1 0 1 input-2.sym
-{
-T 17900 84800 5 10 1 1 0 1
-value=GND
-T 18400 84700 5 10 0 1 0 0
-net=GND:1
-}
-C 18400 84900 1 0 1 input-2.sym
-{
-T 17900 85000 5 10 1 1 0 1
-value=Vcc
-T 18400 84900 5 10 0 1 0 0
-net=Vcc:1
-}
-C 18400 84100 1 0 1 input-2.sym
-{
-T 17900 84200 5 10 1 1 0 1
-value=+24V
-T 18400 84100 5 10 0 1 0 0
-net=+24V:1
-}
-C 17000 86300 1 0 0 output-2.sym
-{
-T 17900 86400 5 10 1 1 0 1
-value=GNDCAN0
-T 17000 86300 5 10 0 1 0 6
-net=GNDCAN0:1
-}
-C 17000 86700 1 0 0 output-2.sym
-{
-T 17900 86800 5 10 1 1 0 1
-value=GNDCAN0
-T 17000 86700 5 10 0 1 0 6
-net=GNDCAN0:1
-}
-C 17000 86500 1 0 0 output-2.sym
-{
-T 17900 86600 5 10 1 1 0 1
-value=VCAN0
-T 17000 86500 5 10 0 1 0 6
-net=VCAN0:1
-}
-C 17000 85900 1 0 0 output-2.sym
-{
-T 17900 86000 5 10 1 1 0 1
-value=GNDCAN1
-T 17000 85900 5 10 0 1 0 6
-net=GNDCAN1:1
-}
-C 17000 85700 1 0 0 output-2.sym
-{
-T 17900 85800 5 10 1 1 0 1
-value=VCAN1
-T 17000 85700 5 10 0 1 0 6
-net=VCAN1:1
-}
-C 17000 85500 1 0 0 output-2.sym
-{
-T 17900 85600 5 10 1 1 0 1
-value=GNDCAN1
-T 17000 85500 5 10 0 1 0 6
-net=GNDCAN1:1
-}
-C 11800 86300 1 0 1 output-2.sym
-{
-T 10900 86400 5 10 1 1 0 7
-value=VCAN0
-T 11800 86300 5 10 0 1 0 0
-net=VCAN0:1
-}
-C 11800 85500 1 0 1 output-2.sym
-{
-T 10900 85600 5 10 1 1 0 7
-value=VCAN1
-T 11800 85500 5 10 0 1 0 0
-net=VCAN1:1
-}
-C 10400 84700 1 0 0 input-2.sym
-{
-T 10900 84800 5 10 1 1 0 7
-value=Vcc
-T 10400 84700 5 10 0 1 0 6
-net=Vcc:1
-}
-C 10400 84300 1 0 0 input-2.sym
-{
-T 10900 84400 5 10 1 1 0 7
-value=GND
-T 10400 84300 5 10 0 1 0 6
-net=GND:1
-}
-C 10400 78300 1 0 0 input-2.sym
-{
-T 10900 78400 5 10 1 1 0 7
-value=GND
-T 10400 78300 5 10 0 1 0 6
-net=GND:1
-}
-N 12600 78400 11800 78400 4
-C 10400 77900 1 0 0 input-2.sym
-{
-T 10900 78000 5 10 1 1 0 7
-value=/RELEASE
-T 10400 77900 5 10 0 1 0 6
-net=/RELEASE:1
-}
-N 12600 78000 11800 78000 4
-C 10400 77500 1 0 0 input-2.sym
-{
-T 10900 77600 5 10 1 1 0 7
-value=+24V
-T 10400 77500 5 10 0 1 0 6
-net=+24V:1
-}
-N 11800 77600 12600 77600 4
-C 10400 77100 1 0 0 input-2.sym
-{
-T 10900 77200 5 10 1 1 0 7
-value=MOTOR+
-T 10400 77100 5 10 0 1 0 6
-net=MOTOR+:1
-}
-N 12600 77200 11800 77200 4
-C 10400 76700 1 0 0 input-2.sym
-{
-T 10900 76800 5 10 1 1 0 7
-value=MOTOR-
-T 10400 76700 5 10 0 1 0 6
-net=MOTOR-:1
-}
-N 12600 76800 11800 76800 4
-C 11800 76300 1 0 1 passive-1.sym
-{
-T 10900 76400 5 10 1 1 0 7
-value=GND
-T 11800 76300 5 10 0 1 0 6
-net=GND:1
-}
-N 12600 76400 11800 76400 4
-C 11800 75900 1 0 1 passive-1.sym
-{
-T 10900 76000 5 10 1 1 0 7
-value=Vcc
-T 11800 75900 5 10 0 1 0 6
-net=Vcc:1
-}
-N 11800 76000 12600 76000 4
-C 11800 75500 1 0 1 passive-1.sym
-{
-T 10900 75600 5 10 1 1 0 7
-value=+12V
-T 11800 75500 5 10 0 1 0 6
-net=+12V:1
-}
-N 11800 75600 12600 75600 4
-C 11800 75100 1 0 1 passive-1.sym
-{
-T 10900 75200 5 10 1 1 0 7
-value=GND
-T 11800 75100 5 10 0 1 0 6
-net=GND:1
-}
-N 12600 75200 11800 75200 4
-C 11800 74700 1 0 1 output-2.sym
-{
-T 10900 74800 5 10 1 1 0 7
-value=GND
-T 11800 74700 5 10 0 1 0 6
-net=GND:1
-}
-N 12600 74800 11800 74800 4
-C 11800 74300 1 0 1 output-2.sym
-{
-T 10900 74400 5 10 1 1 0 7
-value=+24V
-T 11800 74300 5 10 0 1 0 6
-net=+24V:1
-}
-N 11800 74400 12600 74400 4
-C 11800 83900 1 0 1 output-2.sym
-{
-T 10900 84000 5 10 1 1 0 7
-value=RESET
-T 11800 83900 5 10 0 1 0 0
-net=RESET:1
-}
-N 12600 84000 11800 84000 4
--- /dev/null
+v 20100214 2
+C 1000 73500 0 0 0 title-A2.sym
+N 18300 87300 18600 87300 4
+N 18300 84100 18600 84100 4
+C 18500 83800 1 0 0 gnd-1.sym
+N 13600 84900 13900 84900 4
+C 13500 84600 1 0 0 gnd-1.sym
+C 5300 78300 1 0 0 lm7805-1.sym
+{
+T 6600 79300 5 10 1 1 0 6 1
+refdes=U1
+T 5300 78300 5 10 0 1 0 0 1
+footprint=TO220W
+}
+C 6000 77000 1 0 0 gnd-1.sym
+N 6100 78300 6100 77300 4
+C 3000 78800 1 270 0 capacitor-4.sym
+{
+T 2700 78500 5 10 1 1 0 0 1
+refdes=C1
+T 2300 78100 5 10 1 1 0 0 1
+value=47uFx16V
+T 3000 78800 5 10 0 0 0 0 1
+footprint=RCY100P
+T 4100 78600 5 10 0 0 270 0 1
+device=POLARIZED_CAPACITOR
+T 3700 78600 5 10 0 0 270 0 1
+symversion=0.1
+}
+C 5000 77900 1 90 0 capacitor-1.sym
+{
+T 5400 78600 5 10 1 1 180 0 1
+refdes=C2
+T 4900 78100 5 10 1 1 0 0 1
+value=100nF
+T 5000 77900 5 10 0 0 0 0 1
+footprint=RCI200
+T 4300 78100 5 10 0 0 90 0 1
+device=CAPACITOR
+T 4100 78100 5 10 0 0 90 0 1
+symversion=0.1
+}
+C 10200 79000 1 180 0 resistor-1.sym
+{
+T 9600 79100 5 10 1 1 0 0 1
+refdes=R1
+T 9600 78600 5 10 1 1 0 0 1
+value=470
+T 10200 79000 5 10 0 1 0 0 1
+footprint=ACY400
+}
+C 10500 77900 1 270 1 led-3.sym
+{
+T 11050 78550 5 10 1 1 180 6 1
+refdes=D1
+T 11000 78000 5 10 1 1 0 0 1
+value=RED
+T 10500 77900 5 10 0 1 0 0 1
+footprint=LED5
+}
+N 3200 78800 3200 79400 4
+N 4800 78800 4800 78900 4
+C 4700 77000 1 0 0 gnd-1.sym
+N 9300 78900 6900 78900 4
+N 7500 78800 7500 78900 4
+N 8500 78800 8500 78900 4
+C 7300 78800 1 270 0 capacitor-4.sym
+{
+T 7000 78500 5 10 1 1 0 0 1
+refdes=C3
+T 6600 78100 5 10 1 1 0 0 1
+value=47uFx16V
+T 7300 78800 5 10 0 0 0 0 1
+footprint=RCY100P
+T 8400 78600 5 10 0 0 270 0 1
+device=POLARIZED_CAPACITOR
+T 8000 78600 5 10 0 0 270 0 1
+symversion=0.1
+}
+C 8700 77900 1 90 0 capacitor-1.sym
+{
+T 9100 78600 5 10 1 1 180 0 1
+refdes=C4
+T 8600 78100 5 10 1 1 0 0 1
+value=100nF
+T 8700 77900 5 10 0 0 0 0 1
+footprint=RCI200
+T 8000 78100 5 10 0 0 90 0 1
+device=CAPACITOR
+T 7800 78100 5 10 0 0 90 0 1
+symversion=0.1
+}
+C 8400 77000 1 0 0 gnd-1.sym
+C 7400 77000 1 0 0 gnd-1.sym
+C 10600 77000 1 0 0 gnd-1.sym
+N 10200 78900 10700 78900 4
+N 10700 78900 10700 78800 4
+N 8500 79400 8500 78900 4
+C 6400 86500 1 0 0 gnd-1.sym
+C 8600 87600 1 0 0 resistor-1.sym
+{
+T 9000 87900 5 10 1 1 0 0 1
+refdes=R2
+T 9000 87400 5 10 1 1 0 0 1
+value=2k2
+T 8600 87600 5 10 0 1 0 0 1
+footprint=ACY400
+}
+C 8200 87700 1 90 0 resistor-1.sym
+{
+T 8800 88500 5 10 1 1 180 0 1
+refdes=R3
+T 8300 88100 5 10 1 1 0 0 1
+value=10k
+T 8200 87700 5 10 0 1 0 0 1
+footprint=ACY400
+}
+N 7600 87700 8600 87700 4
+N 8100 87700 8100 87000 4
+N 8100 87000 7600 87000 4
+N 6500 87700 6600 87700 4
+N 6500 86800 6500 87700 4
+C 10800 84200 1 0 0 osc-2.sym
+{
+T 11300 84900 5 10 1 1 0 0 1
+device=OSC
+T 10600 84900 5 10 1 1 0 0 1
+refdes=U2
+T 11000 84000 5 10 1 1 0 0 1
+value=6MHz
+}
+N 12000 84500 13900 84500 4
+{
+T 12100 84600 5 10 1 1 0 0 1
+netname=CLOCK
+}
+N 9500 87700 13900 87700 4
+C 11000 86000 1 0 0 input-2.sym
+{
+T 11500 86100 5 10 1 1 0 7 1
+value=REFPOS
+T 11000 86000 5 10 0 1 0 0 1
+net=REFPOS:1
+}
+N 12400 86100 13900 86100 4
+C 7300 85200 1 0 0 input-2.sym
+{
+T 7800 85300 5 10 1 1 0 7 1
+value=CHB
+T 7300 85200 5 10 0 1 0 0 1
+net=CHB:1
+}
+C 7300 85600 1 0 0 input-2.sym
+{
+T 7800 85700 5 10 1 1 0 7 1
+value=CHA
+T 7300 85600 5 10 0 1 0 0 1
+net=CHA:1
+}
+N 8700 85700 13900 85700 4
+N 8700 85300 13900 85300 4
+C 9700 85900 1 90 0 resistor-1.sym
+{
+T 10300 86700 5 10 1 1 180 0 1
+refdes=R4
+T 9800 86200 5 10 1 1 0 0 1
+value=2k7
+T 9700 85900 5 10 0 1 0 0 1
+footprint=ACY400
+}
+C 9100 85900 1 90 0 resistor-1.sym
+{
+T 8900 86700 5 10 1 1 180 0 1
+refdes=R5
+T 8500 86200 5 10 1 1 0 0 1
+value=2k7
+T 9100 85900 5 10 0 1 0 0 1
+footprint=ACY400
+}
+N 9600 85900 9600 85300 4
+N 9000 85900 9000 85700 4
+N 9000 86800 9600 86800 4
+T 17800 73600 9 10 1 0 0 0 1
+1
+T 19300 73600 9 10 1 0 0 0 1
+2
+T 19100 74700 9 10 1 0 0 0 1
+Universidade Federal do Rio Grande do Sul
+T 19300 74500 9 10 1 0 0 0 1
+Departamento de Engenharia Eletrica
+N 18300 86900 22100 86900 4
+N 18300 86500 22100 86500 4
+N 12400 86500 13900 86500 4
+C 20900 85400 1 90 0 resistor-1.sym
+{
+T 21400 86100 5 10 1 1 180 0 1
+refdes=R6
+T 21300 85800 5 10 1 1 180 0 1
+value=470
+T 20900 85400 5 10 0 1 0 0 1
+footprint=ACY400
+}
+C 21000 84500 1 90 0 led-3.sym
+{
+T 21550 85150 5 10 1 1 180 0 1
+refdes=D2
+T 21600 84700 5 10 1 1 180 0 1
+value=GREEN
+T 21000 84500 5 10 0 1 0 0 1
+footprint=LED5
+}
+C 20700 84200 1 0 0 gnd-1.sym
+C 22100 85400 1 90 0 resistor-1.sym
+{
+T 22600 86100 5 10 1 1 180 0 1
+refdes=R7
+T 22500 85800 5 10 1 1 180 0 1
+value=470
+T 22100 85400 5 10 0 1 0 0 1
+footprint=ACY400
+}
+C 22200 84500 1 90 0 led-3.sym
+{
+T 22750 85150 5 10 1 1 180 0 1
+refdes=D3
+T 22800 84700 5 10 1 1 180 0 1
+value=GREEN
+T 22200 84500 5 10 0 1 0 0 1
+footprint=LED5
+}
+C 21900 84200 1 0 0 gnd-1.sym
+C 3000 79400 1 0 0 12V-plus-1.sym
+C 8300 79400 1 0 0 5V-plus-1.sym
+{
+T 8300 79400 5 10 0 1 0 0 1
+net=+5V:1
+}
+C 7900 88600 1 0 0 5V-plus-1.sym
+C 9100 86800 1 0 0 5V-plus-1.sym
+N 13600 82900 13900 82900 4
+C 13400 82900 1 0 0 5V-plus-1.sym
+C 18400 84500 1 0 0 5V-plus-1.sym
+N 18300 87700 18800 87700 4
+N 18800 87700 18800 88300 4
+C 18600 88300 1 0 0 5V-plus-1.sym
+N 13000 87300 13900 87300 4
+T 18100 74200 9 10 1 0 0 0 1
+Actuador Interface Card - dsPIC & RS232 & CAN Interfaces
+T 17300 73900 9 10 1 0 0 0 1
+aicpic.sch
+T 21200 73900 9 10 1 0 0 0 1
+2.2.0
+T 22200 73600 9 6 1 0 0 0 3
+Walter Fetter Lages
+Diego Caberlon Santini
+Rodrigo Daniel Trevizan
+C 9400 82900 1 0 0 gnd-1.sym
+C 2200 81100 1 0 0 DB9-1.sym
+{
+T 2100 84100 5 10 1 1 0 0 1
+refdes=J1
+T 2500 84400 5 10 1 1 0 0 1
+value=MALE
+T 2200 81100 5 10 0 1 0 0 1
+footprint=DB9M
+}
+N 3400 81400 3900 81400 4
+N 3900 81400 3900 81000 4
+C 4000 80700 1 0 1 gnd-1.sym
+C 18400 78900 1 270 1 resistor-1.sym
+{
+T 18100 79600 5 10 1 1 180 6 1
+refdes=R8
+T 18300 79200 5 10 1 1 0 6 1
+value=2k2
+T 18400 78900 5 10 0 1 0 0 1
+footprint=ACY400
+}
+C 18700 79800 1 0 1 generic-power.sym
+{
+T 18900 80100 5 10 0 1 0 6 1
+net=VCAN:1
+T 18500 80100 5 10 1 1 0 6 1
+value=VCAN
+}
+N 21200 76400 21500 76400 4
+N 21500 76400 21500 76300 4
+C 21600 76000 1 0 1 gnd-1.sym
+C 19200 77400 1 0 1 generic-power.sym
+{
+T 19400 77700 5 10 0 1 0 6 1
+net=VCAN:1
+T 19200 77700 5 10 1 1 0 6 1
+value=VCAN
+}
+N 17500 77300 17500 77200 4
+N 16100 78100 15000 78100 4
+C 18100 77300 1 0 1 PCA82C250-1.sym
+{
+T 16900 77400 5 10 1 1 0 6 1
+device=PCA82C250
+T 17800 79300 5 10 1 1 0 6 1
+refdes=U3
+}
+N 17200 77000 17200 77300 4
+C 17000 77000 1 180 1 generic-power.sym
+{
+T 17700 76600 5 10 0 1 0 6 1
+net=GNDCAN:1
+T 17500 76600 5 10 1 1 0 6 1
+value=GNDCAN
+}
+C 18700 78600 1 180 1 generic-power.sym
+{
+T 19400 78100 5 10 0 1 0 6 1
+net=GNDCAN:1
+T 19200 78200 5 10 1 1 0 6 1
+value=GNDCAN
+}
+N 19600 78600 18900 78600 4
+C 22500 78800 1 0 1 resistor-1.sym
+{
+T 22400 79100 5 10 1 1 0 6 1
+refdes=R9
+T 22300 78600 5 10 1 1 0 6 1
+value=390
+T 22500 78800 5 10 0 1 0 0 1
+footprint=ACY400
+}
+N 19600 78900 18100 78900 4
+N 19300 79500 19300 79800 4
+N 19300 79800 17100 79800 4
+N 17100 79800 17100 79500 4
+C 19200 76600 1 0 1 resistor-1.sym
+{
+T 18900 76900 5 10 1 1 0 6 1
+refdes=R10
+T 18900 76400 5 10 1 1 0 6 1
+value=390
+T 19200 76600 5 10 0 1 0 0 1
+footprint=ACY400
+}
+N 19200 77000 19000 77000 4
+N 19000 77000 19000 77400 4
+N 18300 76700 18300 78600 4
+N 18300 78600 18100 78600 4
+C 23000 77400 1 180 0 resistor-1.sym
+{
+T 22400 77500 5 10 1 1 0 0 1
+refdes=R11
+T 22400 77000 5 10 1 1 0 0 1
+value=2k2
+T 23000 77400 5 10 0 1 180 6 1
+footprint=ACY400
+}
+C 21600 78300 1 0 1 6n137-1.sym
+{
+T 21300 79900 5 10 1 1 0 6 1
+device=6N137
+T 20400 79900 5 10 1 1 0 6 1
+refdes=U4
+}
+C 19200 76100 1 0 0 6n137-1.sym
+{
+T 19500 77700 5 10 1 1 0 0 1
+device=6N137
+T 20400 77700 5 10 1 1 0 0 1
+refdes=U5
+}
+N 17500 77200 17200 77200 4
+N 16100 78700 15000 78700 4
+C 15000 78600 1 0 1 io-1.sym
+{
+T 14100 78700 5 10 1 1 0 7 1
+value=CANH
+T 15000 78600 5 10 0 1 0 6 1
+net=CANH:1
+}
+C 15000 78000 1 0 1 io-1.sym
+{
+T 14100 78100 5 10 1 1 0 7 1
+value=CANL
+T 15000 78000 5 10 0 1 0 6 1
+net=CANL:1
+}
+C 6200 81100 1 0 0 max232-2.sym
+{
+T 7900 84600 5 10 1 1 0 6 1
+refdes=U6
+}
+N 6200 82200 4900 82200 4
+{
+T 5700 82200 5 10 1 1 0 0 1
+netname=RX
+}
+C 9300 84400 1 0 0 5V-plus-1.sym
+N 9500 84200 9500 84400 4
+N 9100 84200 9500 84200 4
+N 9500 83200 9500 83400 4
+N 9100 83400 9500 83400 4
+N 5300 84200 5300 83800 4
+N 5300 83800 6200 83800 4
+N 5300 83400 5300 83000 4
+N 5300 83000 6200 83000 4
+C 21800 79600 1 0 1 5V-plus-1.sym
+N 21600 79200 21600 79600 4
+C 21400 77400 1 0 1 5V-plus-1.sym
+N 4500 82300 4500 81400 4
+N 4500 81400 6200 81400 4
+{
+T 5700 81400 5 10 1 1 0 0 1
+netname=CTS
+}
+N 3400 82600 6200 82600 4
+{
+T 5700 82600 5 10 1 1 0 0 1
+netname=TX
+}
+N 4900 82200 4900 83200 4
+N 4900 83200 3400 83200 4
+N 4500 82300 3400 82300 4
+N 6200 81800 4700 81800 4
+{
+T 5700 81800 5 10 1 1 0 0 1
+netname=RTS
+}
+N 4700 81800 4700 82900 4
+N 4700 82900 3400 82900 4
+C 13900 82300 1 0 0 dsPIC30F4012-DIP-1.sym
+{
+T 17400 88000 5 10 1 1 0 0 1
+refdes=U7
+T 14400 88000 5 10 1 1 0 0 1
+device=dsPIC30F4012
+T 14200 89100 5 10 0 1 0 0 1
+symversion=0.1
+}
+N 3200 78900 5300 78900 4
+C 2700 77300 1 180 0 generic-power.sym
+{
+T 2500 77050 5 10 0 1 180 3 1
+net=PGND:1
+T 2300 76900 5 10 1 1 0 0 1
+value=PGND
+}
+C 4500 77900 1 180 0 capacitor-1.sym
+{
+T 3900 78000 5 10 1 1 0 0 1
+refdes=C6
+T 4400 77400 5 10 1 1 180 0 1
+value=2.2nF
+T 4500 77900 5 10 0 0 0 0 1
+footprint=RCI200
+T 4300 77200 5 10 0 0 180 0 1
+device=CAPACITOR
+T 4300 77000 5 10 0 0 180 0 1
+symversion=0.1
+}
+N 3600 77700 3200 77700 4
+N 4500 77700 4800 77700 4
+N 4800 77300 4800 77900 4
+N 3200 77900 3200 77300 4
+C 3100 77000 1 0 0 gnd-1.sym
+N 2500 77300 3200 77300 4
+N 20800 86300 20800 86900 4
+N 22000 86300 22000 86500 4
+N 6700 87000 6500 87000 4
+N 18300 83300 22700 83300 4
+N 22700 83300 22700 78900 4
+N 22700 78900 22500 78900 4
+N 18300 83700 23200 83700 4
+N 23200 76700 23200 83700 4
+N 10800 83700 13900 83700 4
+N 10800 83700 10800 82600 4
+N 10800 82600 8200 82600 4
+N 11200 83300 13900 83300 4
+N 11200 83300 11200 82200 4
+N 11200 82200 8200 82200 4
+N 8200 81800 13000 81800 4
+N 13000 81800 13000 87300 4
+N 8200 81400 13300 81400 4
+N 13300 81400 13300 86900 4
+N 13300 86900 13900 86900 4
+N 18300 84500 18600 84500 4
+N 7500 77900 7500 77300 4
+N 8500 77900 8500 77300 4
+N 10700 77900 10700 77300 4
+C 4400 74700 1 90 0 capacitor-1.sym
+{
+T 4800 75400 5 10 1 1 180 0 1
+refdes=C8
+T 4300 74900 5 10 1 1 0 0 1
+value=100nF
+T 4400 74700 5 10 0 0 0 0 1
+footprint=RCI200
+T 3700 74900 5 10 0 0 90 0 1
+device=CAPACITOR
+T 3500 74900 5 10 0 0 90 0 1
+symversion=0.1
+}
+C 5500 74700 1 90 0 capacitor-1.sym
+{
+T 5900 75400 5 10 1 1 180 0 1
+refdes=C9
+T 5400 74900 5 10 1 1 0 0 1
+value=100nF
+T 5500 74700 5 10 0 0 0 0 1
+footprint=RCI200
+T 4800 74900 5 10 0 0 90 0 1
+device=CAPACITOR
+T 4600 74900 5 10 0 0 90 0 1
+symversion=0.1
+}
+C 4000 75600 1 0 0 5V-plus-1.sym
+{
+T 4000 75600 5 10 0 1 0 0 1
+net=Vcc:1
+}
+C 4100 74400 1 0 0 gnd-1.sym
+C 6600 87700 1 0 0 switch-pushbutton-no-1.sym
+{
+T 6900 88000 5 10 1 1 0 0 1
+refdes=S1
+T 7000 88300 5 10 0 0 0 0 1
+device=SWITCH_PUSHBUTTON_NO
+}
+C 9100 84400 1 180 0 capacitor-4.sym
+{
+T 8500 84500 5 10 1 1 0 0 1
+refdes=C10
+T 9100 84400 5 10 0 0 0 0 1
+footprint=RCY100P
+T 8200 83800 5 10 1 1 0 0 1
+value=1uFx16V
+T 8900 83300 5 10 0 0 180 0 1
+device=POLARIZED_CAPACITOR
+T 8900 83700 5 10 0 0 180 0 1
+symversion=0.1
+}
+C 5300 84000 1 0 0 capacitor-4.sym
+{
+T 6100 84600 5 10 1 1 180 0 1
+refdes=C11
+T 5300 84000 5 10 0 0 0 0 1
+footprint=RCY100P
+T 4700 84200 5 10 1 1 0 0 1
+value=1uFx16V
+T 5500 85100 5 10 0 0 0 0 1
+device=POLARIZED_CAPACITOR
+T 5500 84700 5 10 0 0 0 0 1
+symversion=0.1
+}
+C 5300 83200 1 0 0 capacitor-4.sym
+{
+T 6000 83200 5 10 1 1 180 0 1
+refdes=C12
+T 5300 83200 5 10 0 0 0 0 1
+footprint=RCY100P
+T 4700 83400 5 10 1 1 0 0 1
+value=1uFx16V
+T 5500 84300 5 10 0 0 0 0 1
+device=POLARIZED_CAPACITOR
+T 5500 83900 5 10 0 0 0 0 1
+symversion=0.1
+}
+C 8200 83200 1 0 0 capacitor-4.sym
+{
+T 9200 83600 5 10 1 1 180 0 1
+refdes=C13
+T 8200 83200 5 10 0 0 0 0 1
+footprint=RCY100P
+T 8200 83000 5 10 1 1 0 0 1
+value=1uFx16V
+T 8400 84300 5 10 0 0 0 0 1
+device=POLARIZED_CAPACITOR
+T 8400 83900 5 10 0 0 0 0 1
+symversion=0.1
+}
+C 7300 79400 1 0 0 vcc-1.sym
+{
+T 7300 79400 5 10 0 1 0 0 1
+net=Vcc:1
+}
+N 7500 78900 7500 79400 4
+C 22100 86800 1 0 0 output-2.sym
+{
+T 23000 87000 5 10 0 0 0 0 1
+net=DRVA:1
+T 23000 86900 5 10 1 1 0 1 1
+value=DRVA
+}
+C 22100 86400 1 0 0 output-2.sym
+{
+T 23000 86600 5 10 0 0 0 0 1
+net=DRVB:1
+T 23000 86500 5 10 1 1 0 1 1
+value=DRVB
+}
+C 12400 86600 1 180 0 output-2.sym
+{
+T 11500 86400 5 10 0 0 180 0 1
+net=BRAKE:1
+T 11500 86500 5 10 1 1 180 1 1
+value=BRAKE
+}
+C 7600 74700 1 90 0 capacitor-1.sym
+{
+T 8000 75400 5 10 1 1 180 0 1
+refdes=C14
+T 7500 74900 5 10 1 1 0 0 1
+value=100nF
+T 7600 74700 5 10 0 0 0 0 1
+footprint=RCI200
+T 6900 74900 5 10 0 0 90 0 1
+device=CAPACITOR
+T 6700 74900 5 10 0 0 90 0 1
+symversion=0.1
+}
+C 8600 74700 1 90 0 capacitor-1.sym
+{
+T 9000 75400 5 10 1 1 180 0 1
+refdes=C15
+T 8500 74900 5 10 1 1 0 0 1
+value=100nF
+T 8600 74700 5 10 0 0 0 0 1
+footprint=RCI200
+T 7900 74900 5 10 0 0 90 0 1
+device=CAPACITOR
+T 7700 74900 5 10 0 0 90 0 1
+symversion=0.1
+}
+C 8100 75600 1 0 1 generic-power.sym
+{
+T 8300 75900 5 10 0 1 0 6 1
+net=VCAN:1
+T 8100 75900 5 10 1 1 0 6 1
+value=VCAN
+}
+C 7700 74700 1 180 1 generic-power.sym
+{
+T 8400 74200 5 10 0 1 0 6 1
+net=GNDCAN:1
+T 8200 74300 5 10 1 1 0 6 1
+value=GNDCAN
+}
+N 3200 75600 5300 75600 4
+N 5300 74700 3200 74700 4
+N 7400 75600 8400 75600 4
+N 8400 74700 7400 74700 4
+C 3000 75600 1 270 0 capacitor-4.sym
+{
+T 2700 75300 5 10 1 1 0 0 1
+refdes=C7
+T 2300 74900 5 10 1 1 0 0 1
+value=1uFx16V
+T 3000 75600 5 10 0 1 0 0 1
+footprint=RCY100P
+T 4100 75400 5 10 0 0 270 0 1
+device=POLARIZED_CAPACITOR
+T 3700 75400 5 10 0 0 270 0 1
+symversion=0.1
+}
+C 7600 87200 1 180 0 capacitor-4.sym
+{
+T 7100 87300 5 10 1 1 0 0 1
+refdes=C5
+T 6800 86600 5 10 1 1 0 0 1
+value=1uFx16V
+T 7600 87200 5 10 0 1 270 0 1
+footprint=RCY100P
+T 7400 86100 5 10 0 0 180 0 1
+device=POLARIZED_CAPACITOR
+T 7400 86500 5 10 0 0 180 0 1
+symversion=0.1
+}
+N 18900 84000 22100 84000 4
+C 22100 83900 1 0 0 output-2.sym
+{
+T 23000 84100 5 10 0 0 0 0 1
+net=/SD:1
+T 23000 84000 5 10 1 1 0 1 1
+value=/SD
+}
+N 18300 85300 18900 85300 4
+N 18900 85300 18900 84000 4
+N 21200 77300 22100 77300 4
+N 21200 76700 23200 76700 4
+N 19300 79500 19600 79500 4
+N 19600 79500 19600 79200 4
+N 21200 77000 21200 77400 4
+N 23000 77300 23200 77300 4
+C 19600 85400 1 90 0 capacitor-1.sym
+{
+T 19300 86100 5 10 1 1 180 0 1
+refdes=C26
+T 18900 85600 5 10 1 1 0 0 1
+value=2.2nF
+T 18900 85600 5 10 0 0 90 0 1
+device=CAPACITOR
+T 18700 85600 5 10 0 0 90 0 1
+symversion=0.1
+}
+C 20400 85400 1 90 0 capacitor-1.sym
+{
+T 20100 86100 5 10 1 1 180 0 1
+refdes=C27
+T 19700 85600 5 10 1 1 0 0 1
+value=2.2nF
+T 19700 85600 5 10 0 0 90 0 1
+device=CAPACITOR
+T 19500 85600 5 10 0 0 90 0 1
+symversion=0.1
+}
+N 19400 86900 19400 86300 4
+N 20200 86500 20200 86300 4
+C 19300 85100 1 0 0 gnd-1.sym
+C 20100 85100 1 0 0 gnd-1.sym
+C 18500 87000 1 0 0 gnd-1.sym
-v 20030901
-C 43000 63100 1 0 0 resistor-1.sym
+v 20100214 2
+T 17800 73600 9 10 1 0 0 0 1
+2
+T 19300 73600 9 10 1 0 0 0 1
+2
+T 19100 74700 9 10 1 0 0 0 1
+Universidade Federal do Rio Grande do Sul
+T 19300 74500 9 10 1 0 0 0 1
+Departamento de Engenharia Eletrica
+C 18400 76000 1 0 0 DIN41612C96-2.sym
{
-T 43200 63400 5 10 1 1 0 0
-refdes=R9
-T 43300 62900 5 10 1 1 0 0
-value=10k
+T 21900 89000 5 10 1 1 0 6 1
+refdes=J2
+T 18400 76000 5 10 0 1 0 0 1
+description=DIN 41612C-96
+T 18400 75800 5 10 1 1 0 0 1
+footprint=DIN41612C96M
}
-C 43100 62100 1 90 0 resistor-1.sym
+C 18600 88600 1 0 1 io-1.sym
{
-T 43500 62600 5 10 1 1 180 0
-refdes=R10
-T 42500 62500 5 10 1 1 0 0
-value=1k5
+T 17700 88700 5 10 1 1 0 7 1
+value=CANL
+T 18600 88600 5 10 0 1 0 0 1
+net=CANL:1
}
-N 43000 63000 43000 63200 4
-C 42900 61800 1 0 0 gnd-1.sym
-N 43500 65500 43500 65300 4
-N 43500 65300 43800 65300 4
-N 43800 65500 43800 65300 4
-C 43700 65000 1 0 0 gnd-1.sym
-N 43800 67700 43800 67800 4
-N 43800 67800 43500 67800 4
-N 43500 67700 43500 69400 4
-C 45200 69400 1 270 0 capacitor-2.sym
-{
-T 45700 68900 5 10 1 1 0 0
-refdes=C10
-T 45700 68700 5 10 1 1 0 0
-value=4.7uFx16V
+C 22200 88000 1 0 0 io-1.sym
+{
+T 23100 88100 5 10 1 1 0 1 1
+value=CANH
+T 22200 88000 5 10 0 1 0 0 1
+net=CANH:1
}
-N 43500 69400 45400 69400 4
-C 44200 68200 1 0 0 gnd-1.sym
-C 45300 68200 1 0 0 gnd-1.sym
-N 45100 66900 45100 66300 4
-N 45100 66300 44900 66300 4
-C 45600 65700 1 0 0 gnd-1.sym
-N 44900 66900 46300 66900 4
-C 46700 66400 1 0 0 gnd-1.sym
-C 47000 68700 1 90 1 diode-3.sym
-{
-T 47400 68100 5 10 1 1 0 6
-refdes=D7
-T 47200 68500 5 10 1 1 180 6
-value=1N4007
+C 18600 87000 1 0 1 output-2.sym
+{
+T 17700 87100 5 10 1 1 0 7 1
+value=CHA
+T 18600 87000 5 10 0 1 0 0 1
+net=CHA:1
}
-N 46800 67800 46800 67500 4
-N 46800 68700 46800 69400 4
-C 46600 69400 1 0 0 generic-power.sym
+C 22200 86400 1 0 0 output-2.sym
{
-T 46500 70000 5 10 0 1 0 0
-net=+24V:1
-T 46600 69700 5 10 1 1 0 0
-value=+24V
+T 23100 86500 5 10 1 1 0 1 1
+value=CHB
+T 22200 86400 5 10 0 1 0 6 1
+net=CHB:1
}
-C 47100 75600 1 0 1 diode-3.sym
+C 22200 86200 1 0 0 output-2.sym
{
-T 46900 76100 5 10 1 1 0 6
-refdes=D1
-T 46500 76100 5 10 1 1 0 6
-value=1N4148
+T 23100 86300 5 10 1 1 0 1 1
+value=INDEX
+T 22200 86200 5 10 0 1 0 0 1
+net=INDEX:1
}
-N 48200 75100 48700 75100 4
-N 48700 75100 48700 75800 4
-N 48700 75800 47100 75800 4
-C 48500 75100 1 270 0 capacitor-2.sym
-{
-T 49000 74600 5 10 1 1 0 0
-refdes=C5
-T 49000 74400 5 10 1 1 0 0
-value=1uFx25V
-}
-N 48700 73600 48700 74200 4
-C 46100 71500 1 0 0 gnd-1.sym
-C 43600 74200 1 90 0 resistor-1.sym
-{
-T 43300 74700 5 10 1 1 180 0
-refdes=R11
-T 43000 74400 5 10 1 1 0 0
-value=330
-}
-N 44100 75800 46200 75800 4
-C 43900 75800 1 270 0 capacitor-2.sym
-{
-T 44400 75300 5 10 1 1 0 0
-refdes=C3
-T 44200 75000 5 10 1 1 0 0
-value=10uFx25V
-}
-C 44000 74600 1 0 0 gnd-1.sym
-C 43900 75800 1 0 0 12V-plus-1.sym
-C 56900 71500 1 0 0 gnd-1.sym
-C 56000 75600 1 0 0 diode-3.sym
-{
-T 56100 76100 5 10 1 1 0 0
-refdes=D2
-T 56600 76100 5 10 1 1 0 0
-value=1N4148
+C 22200 78200 1 0 0 passive-1.sym
+{
+T 23100 78300 5 10 1 1 0 1 1
+value=GND
+T 22200 78200 5 10 0 1 0 0 1
+net=GND:1
}
-C 59500 75800 1 90 1 capacitor-2.sym
-{
-T 59000 75300 5 10 1 1 0 6
-refdes=C4
-T 59000 75100 5 10 1 1 0 6
-value=10uFx25V
-}
-C 59200 74600 1 0 0 gnd-1.sym
-C 59100 75800 1 0 0 12V-plus-1.sym
-C 54700 75100 1 90 1 capacitor-2.sym
-{
-T 54100 74600 5 10 1 1 0 6
-refdes=C6
-T 54100 74400 5 10 1 1 0 6
-value=1uFx25V
-}
-N 50000 73500 50000 73700 4
-N 53300 73700 53300 73500 4
-C 49900 72400 1 0 0 gnd-1.sym
-C 53200 72400 1 0 0 gnd-1.sym
-N 50000 74500 50000 75300 4
-N 53300 74500 53300 75300 4
-C 49800 75300 1 0 0 generic-power.sym
-{
-T 49700 75900 5 10 0 1 0 0
-net=+24V:1
-T 49800 75600 5 10 1 1 0 0
-value=+24V
-}
-C 53100 75300 1 0 0 generic-power.sym
-{
-T 53000 75600 5 10 0 1 0 0
-net=+24V:1
-T 53100 75600 5 10 1 1 0 0
-value=+24V
-}
-N 50000 75300 50600 75300 4
-N 53300 75300 52700 75300 4
-C 50400 75300 1 270 0 capacitor-2.sym
-{
-T 50900 74800 5 10 1 1 0 0
-refdes=C7
-T 50700 74500 5 10 1 1 0 0
-value=1000uFx35V
-}
-C 52500 75300 1 270 0 capacitor-2.sym
-{
-T 52100 74800 5 10 1 1 0 0
-refdes=C8
-T 51500 75000 5 10 1 1 0 0
-value=1000uFx35V
-}
-C 50500 74100 1 0 0 gnd-1.sym
-C 52600 74100 1 0 0 gnd-1.sym
-C 45300 71800 1 0 0 lt1162-1.sym
-{
-T 47300 71900 5 10 1 1 0 0
-device=LT1162
-T 47600 75500 5 10 1 1 0 0
-refdes=U9
-T 45300 71800 5 10 0 0 0 0
-slot=1
+C 22200 78000 1 0 0 passive-1.sym
+{
+T 23100 78100 5 10 1 1 0 1 1
+value=GND
+T 22200 78000 5 10 0 1 0 0 1
+net=GND:1
}
-C 42900 65500 1 0 0 max4429-1.sym
+C 22200 77800 1 0 0 passive-1.sym
{
-T 44100 65600 5 10 1 1 0 0
-device=MAX4429
-T 44200 67500 5 10 1 1 0 0
-refdes=U10
+T 23100 77900 5 10 1 1 0 1 1
+value=+5V
+T 22200 77800 5 10 0 1 0 0 1
+net=+5V:1
}
-N 42900 63200 43000 63200 4
-T 57200 61000 9 10 1 0 0 0
-Actuator Interface Card - Power Driver & CAN Interface
-T 57000 60700 9 10 1 0 0 0
-aicpower.sch
-T 57300 60400 9 10 1 0 0 0
-2
-T 58600 60400 9 10 1 0 0 0
-3
-N 43500 74200 45300 74200 4
-N 42900 73600 45300 73600 4
-N 42900 73000 45300 73000 4
-N 48200 72700 48200 73000 4
-C 40200 60300 0 0 0 title-A2.sym
-C 57900 71800 1 0 1 lt1162-1.sym
-{
-T 55900 71900 5 10 1 1 0 6
-device=LT1162
-T 57500 75500 5 10 1 1 0 6
-refdes=U9
-T 57900 71800 5 10 0 0 0 0
-slot=2
-}
-N 55000 72700 55000 73000 4
-N 54500 74200 54500 73600 4
-N 54500 75100 55000 75100 4
-N 57900 74800 57900 75800 4
-N 45300 74800 45300 75800 4
-N 54500 75800 56000 75800 4
-N 54500 75100 54500 75800 4
-N 56900 75800 59300 75800 4
-N 57900 73000 57900 71000 4
-N 57900 71000 45000 71000 4
-N 45000 71000 45000 73600 4
-N 57900 73600 58300 73600 4
-N 58300 73600 58300 70700 4
-N 58300 70700 44800 70700 4
-N 44800 70700 44800 73000 4
-N 43500 70200 58800 70200 4
-N 58800 70200 58800 74200 4
-N 58800 74200 57900 74200 4
-N 48200 73600 50000 73600 4
-N 55000 73600 53300 73600 4
-N 48200 73900 48200 74500 4
-N 48200 73900 49500 73900 4
-N 49500 72900 48200 72900 4
-N 55000 73900 55000 74500 4
-N 55000 73900 53800 73900 4
-N 53800 72900 55000 72900 4
-C 55500 68600 1 90 0 resistor-1.sym
-{
-T 56000 69100 5 10 1 1 180 0
-refdes=R1
-T 55500 68600 5 10 1 1 0 0
-value=2k2
-}
-C 55200 69500 1 0 0 generic-power.sym
-{
-T 55000 69800 5 10 0 1 0 0
-net=VCAN0:1
-T 55100 69800 5 10 1 1 0 0
-value=VCAN0
-}
-N 53100 66300 52800 66300 4
-N 52800 66300 52800 66200 4
-C 52700 65900 1 0 0 gnd-1.sym
-C 55100 67100 1 0 0 generic-power.sym
-{
-T 54900 67400 5 10 0 1 0 0
-net=VCAN0:1
-T 55000 67400 5 10 1 1 0 0
-value=VCAN0
-}
-N 56800 67000 56800 66900 4
-N 58200 67800 59300 67800 4
-C 56200 67000 1 0 0 PCA82C250-1.sym
-{
-T 57400 67100 5 10 1 1 0 0
-device=PCA82C250
-T 56600 69000 5 10 1 1 0 0
-refdes=U4
-}
-N 57100 66700 57100 67000 4
-C 57300 66700 1 180 0 generic-power.sym
-{
-T 56600 66300 5 10 0 1 0 0
-net=GNDCAN0:1
-T 56600 66300 5 10 1 1 0 0
-value=GNDCAN0
-}
-C 55600 68300 1 180 0 generic-power.sym
-{
-T 54900 67800 5 10 0 1 0 0
-net=GNDCAN0:1
-T 54900 67900 5 10 1 1 0 0
-value=GNDCAN0
-}
-N 55100 68300 55400 68300 4
-N 53100 66600 52200 66600 4
-N 53100 69000 53100 68900 4
-C 52200 68500 1 0 0 resistor-1.sym
-{
-T 52400 68800 5 10 1 1 0 0
-refdes=R2
-T 52400 68300 5 10 1 1 0 0
-value=390
-}
-N 55100 68600 56200 68600 4
-N 55100 69200 55100 69500 4
-N 55100 69500 57200 69500 4
-N 57200 69500 57200 69200 4
-C 55100 66500 1 0 0 resistor-1.sym
-{
-T 55500 66800 5 10 1 1 0 0
-refdes=R4
-T 55400 66300 5 10 1 1 0 0
-value=390
-}
-N 55100 66900 55300 66900 4
-N 55300 66900 55300 67100 4
-N 56000 66600 56000 68300 4
-N 56000 68300 56200 68300 4
-C 52200 67100 1 0 0 resistor-1.sym
-{
-T 52400 67400 5 10 1 1 0 0
-refdes=R3
-T 52400 66900 5 10 1 1 0 0
-value=2k2
-}
-N 52200 67200 52200 66600 4
-N 53100 67300 53100 67200 4
-C 55500 64300 1 90 0 resistor-1.sym
-{
-T 56000 64800 5 10 1 1 180 0
-refdes=R5
-T 55500 64300 5 10 1 1 0 0
-value=2k2
-}
-C 55200 65200 1 0 0 generic-power.sym
-{
-T 55000 65500 5 10 0 1 0 0
-net=VCAN1:1
-T 55100 65500 5 10 1 1 0 0
-value=VCAN1
-}
-N 53100 62000 52800 62000 4
-N 52800 62000 52800 61900 4
-C 52700 61600 1 0 0 gnd-1.sym
-C 55100 62800 1 0 0 generic-power.sym
-{
-T 54900 63100 5 10 0 1 0 0
-net=VCAN1:1
-T 55000 63100 5 10 1 1 0 0
-value=VCAN1
-}
-N 56800 62700 56800 62600 4
-N 58200 63500 59300 63500 4
-C 56200 62700 1 0 0 PCA82C250-1.sym
-{
-T 57400 62800 5 10 1 1 0 0
-device=PCA82C250
-T 56600 64700 5 10 1 1 0 0
-refdes=U5
-}
-N 57100 62400 57100 62700 4
-C 57300 62400 1 180 0 generic-power.sym
-{
-T 56600 62000 5 10 0 1 0 0
-net=GNDCAN1:1
-T 56600 62000 5 10 1 1 0 0
-value=GNDCAN1
-}
-C 55600 64000 1 180 0 generic-power.sym
-{
-T 54900 63500 5 10 0 1 0 0
-net=GNDCAN1:1
-T 54900 63600 5 10 1 1 0 0
-value=GNDCAN1
-}
-N 55100 64000 55400 64000 4
-N 53100 62300 52200 62300 4
-N 53100 64700 53100 64600 4
-C 52200 64200 1 0 0 resistor-1.sym
-{
-T 52400 64500 5 10 1 1 0 0
-refdes=R6
-T 52400 64000 5 10 1 1 0 0
-value=390
-}
-N 55100 64300 56200 64300 4
-N 55100 64900 55100 65200 4
-N 55100 65200 57200 65200 4
-N 57200 65200 57200 64900 4
-C 55100 62200 1 0 0 resistor-1.sym
-{
-T 55500 62500 5 10 1 1 0 0
-refdes=R8
-T 55400 62000 5 10 1 1 0 0
-value=390
-}
-N 55100 62600 55300 62600 4
-N 55300 62600 55300 62800 4
-N 56000 62300 56000 64000 4
-N 56000 64000 56200 64000 4
-C 52200 62800 1 0 0 resistor-1.sym
-{
-T 52400 63100 5 10 1 1 0 0
-refdes=R7
-T 52400 62600 5 10 1 1 0 0
-value=2k2
-}
-N 52200 62900 52200 62300 4
-N 53100 63000 53100 62900 4
-T 60400 60700 9 10 1 0 0 0
-1.3.0
-C 44500 68500 1 90 0 capacitor-1.sym
-{
-T 44600 68800 5 10 1 1 0 0
-refdes=C9
-T 44500 68500 5 10 1 1 0 0
-value=220nF
-}
-C 45900 66000 1 90 0 capacitor-1.sym
-{
-T 46000 66300 5 10 1 1 0 0
-refdes=C11
-T 45900 66000 5 10 1 1 0 0
-value=2.2nF
-}
-C 53100 68000 1 0 0 6n137-1.sym
-{
-T 53400 69600 5 10 1 1 0 0
-device=6N137
-T 54600 69600 5 10 1 1 0 0
-refdes=U12
-}
-C 53100 63700 1 0 0 6n137-1.sym
-{
-T 53400 65300 5 10 1 1 0 0
-device=6N137
-T 54600 65300 5 10 1 1 0 0
-refdes=U14
-}
-C 55100 61700 1 0 1 6n137-1.sym
-{
-T 54800 63300 5 10 1 1 0 6
-device=6N137
-T 53600 63300 5 10 1 1 0 6
-refdes=U15
-}
-C 55100 66000 1 0 1 6n137-1.sym
-{
-T 54800 67600 5 10 1 1 0 6
-device=6N137
-T 53600 67600 5 10 1 1 0 6
-refdes=U13
-}
-T 58100 61500 9 10 1 0 0 0
-Universidade Federal do Rio Grande do Sul
-T 58300 61300 9 10 1 0 0 0
-Departamento de Engenharia Eletrica
-C 42900 63100 1 0 1 output-2.sym
+C 22200 77600 1 0 0 passive-1.sym
{
-T 42000 63200 5 10 1 1 0 7
-value=REFPOS
-T 42900 63100 5 10 0 1 0 0
-net=REFPOS:1
+T 23100 77700 5 10 1 1 0 1 1
+value=+5V
+T 22200 77600 5 10 0 1 0 0 1
+net=+5V:1
}
-C 41500 66500 1 0 0 input-2.sym
+C 22200 77000 1 0 0 passive-1.sym
{
-T 42000 66600 5 10 1 1 0 7
-value=BRAKE
-T 41500 66500 5 10 0 1 0 0
-net=BRAKE:1
+T 23100 77100 5 10 1 1 0 1 1
+value=GND
+T 22200 77000 5 10 0 1 0 0 1
+net=GND:1
}
-C 41500 73500 1 0 0 input-2.sym
+C 22200 76800 1 0 0 passive-1.sym
{
-T 42000 73600 5 10 1 1 0 7
-value=DRVA
-T 41500 73500 5 10 0 1 0 0
-net=DRVA:1
+T 23100 76900 5 10 1 1 0 1 1
+value=GND
+T 22200 76800 5 10 0 1 0 0 1
+net=GND:1
}
-C 41500 72900 1 0 0 input-2.sym
+C 23600 79800 1 0 1 input-2.sym
{
-T 42000 73000 5 10 1 1 0 7
-value=DRVB
-T 41500 72900 5 10 0 1 0 0
-net=DRVB:1
+T 23100 79900 5 10 1 1 0 1 1
+value=/RELEASE
+T 23600 79800 5 10 0 1 0 0 1
+net=/RELEASE:1
}
-C 50800 68500 1 0 0 input-2.sym
+C 23600 79600 1 0 1 input-2.sym
{
-T 51300 68600 5 10 1 1 0 7
-value=CAN0TX
-T 50800 68500 5 10 0 1 0 0
-net=CAN0TX:1
+T 23100 79700 5 10 1 1 0 1 1
+value=/RELEASE
+T 23600 79600 5 10 0 1 0 0 1
+net=/RELEASE:1
}
-C 50800 64200 1 0 0 input-2.sym
+C 23600 79000 1 0 1 input-2.sym
{
-T 51300 64300 5 10 1 1 0 7
-value=CAN1TX
-T 50800 64200 5 10 0 1 0 0
-net=CAN1TX:1
+T 23100 79100 5 10 1 1 0 1 1
+value=MOTOR+
+T 23600 79000 5 10 0 1 0 0 1
+net=MOTOR+:1
}
-C 52200 66500 1 0 1 output-2.sym
+C 23600 78800 1 0 1 input-2.sym
{
-T 51300 66600 5 10 1 1 0 7
-value=CAN0RX
-T 52200 66500 5 10 0 1 0 0
-net=CAN0RX:1
+T 23100 78900 5 10 1 1 0 1 1
+value=MOTOR+
+T 23600 78800 5 10 0 1 0 0 1
+net=MOTOR+:1
}
-C 52200 62200 1 0 1 output-2.sym
+C 23600 78600 1 0 1 input-2.sym
{
-T 51300 62300 5 10 1 1 0 7
-value=CAN1RX
-T 52200 62200 5 10 0 1 0 0
-net=CAN1RX:1
+T 23100 78700 5 10 1 1 0 1 1
+value=MOTOR-
+T 23600 78600 5 10 0 1 0 0 1
+net=MOTOR-:1
}
-T 60400 60400 9 9 1 0 0 0
-Walter Fetter Lages & Fernando Pessutto
-N 56800 66900 57100 66900 4
-N 56800 62600 57100 62600 4
-N 58200 68400 59300 68400 4
-N 58200 64100 59300 64100 4
-C 59300 68300 1 0 0 io-1.sym
+C 23600 78400 1 0 1 input-2.sym
{
-T 60200 68400 5 10 1 1 0 1
-value=CANH0
-T 59300 68300 5 10 0 1 0 0
-net=CANH0:1
+T 23100 78500 5 10 1 1 0 1 1
+value=MOTOR-
+T 23600 78400 5 10 0 1 0 0 1
+net=MOTOR-:1
}
-C 59300 67700 1 0 0 io-1.sym
+C 22200 76400 1 0 0 output-2.sym
{
-T 60200 67800 5 10 1 1 0 1
-value=CANL0
-T 59300 67700 5 10 0 1 0 0
-net=CANL0:1
+T 23100 76500 5 10 1 1 0 1 1
+value=GND
+T 22200 76400 5 10 0 1 0 0 1
+net=GND:1
}
-C 59300 64000 1 0 0 io-1.sym
+C 22200 76600 1 0 0 output-2.sym
{
-T 60200 64100 5 10 1 1 0 1
-value=CANH1
-T 59300 64000 5 10 0 1 0 0
-net=CANH1:1
+T 23100 76700 5 10 1 1 0 1 1
+value=GND
+T 22200 76600 5 10 0 1 0 0 1
+net=GND:1
}
-C 59300 63400 1 0 0 io-1.sym
+C 22200 76200 1 0 0 output-2.sym
{
-T 60200 63500 5 10 1 1 0 1
-value=CANL1
-T 59300 63400 5 10 0 1 0 0
-net=CANL1:1
+T 23100 76300 5 10 1 1 0 1 1
+value=Vpp
+T 22200 76200 5 10 0 1 0 0 1
+net=Vpp:1
}
-C 45300 63100 1 0 1 input-2.sym
+C 22200 76000 1 0 0 output-2.sym
{
-T 44800 63200 5 10 1 1 0 1
-value=INDEX
-T 45300 63100 5 10 0 1 0 0
-net=INDEX:1
+T 23100 76100 5 10 1 1 0 1 1
+value=Vpp
+T 22200 76000 5 10 0 1 0 0 1
+net=Vpp:1
+}
+C 23600 80200 1 0 1 input-2.sym
+{
+T 23100 80300 5 10 1 1 0 1 1
+value=GND
+T 23600 80200 5 10 0 1 0 0 1
+net=GND:1
+}
+C 23600 80000 1 0 1 input-2.sym
+{
+T 23100 80100 5 10 1 1 0 1 1
+value=GND
+T 23600 80000 5 10 0 1 0 0 1
+net=GND:1
+}
+C 23600 79400 1 0 1 input-2.sym
+{
+T 23100 79500 5 10 1 1 0 1 1
+value=Vpp
+T 23600 79400 5 10 0 1 0 0 1
+net=Vpp:1
+}
+C 23600 79200 1 0 1 input-2.sym
+{
+T 23100 79300 5 10 1 1 0 1 1
+value=Vpp
+T 23600 79200 5 10 0 1 0 0 1
+net=Vpp:1
+}
+C 23600 87000 1 0 1 input-2.sym
+{
+T 23100 87100 5 10 1 1 0 1 1
+value=GND
+T 23600 87000 5 10 0 1 0 0 1
+net=GND:1
+}
+C 23600 86600 1 0 1 input-2.sym
+{
+T 23100 86700 5 10 1 1 0 1 1
+value=GND
+T 23600 86600 5 10 0 1 0 0 1
+net=GND:1
+}
+C 23600 86800 1 0 1 input-2.sym
+{
+T 23100 86900 5 10 1 1 0 1 1
+value=+5V
+T 23600 86800 5 10 0 1 0 0 1
+net=+5V:1
+}
+C 23600 86000 1 0 1 input-2.sym
+{
+T 23100 86100 5 10 1 1 0 1 1
+value=Vpp
+T 23600 86000 5 10 0 1 0 0 1
+net=Vpp:1
}
-N 46800 67800 48200 67800 4
-C 48200 67700 1 0 0 output-2.sym
+C 22200 88200 1 0 0 output-2.sym
{
-T 49100 67800 5 10 1 1 0 1
+T 23100 88300 5 10 1 1 0 1 1
+value=GNDCAN
+T 22200 88200 5 10 0 1 0 6 1
+net=GNDCAN:1
+}
+C 22200 88600 1 0 0 output-2.sym
+{
+T 23100 88700 5 10 1 1 0 1 1
+value=GNDCAN
+T 22200 88600 5 10 0 1 0 6 1
+net=GNDCAN:1
+}
+C 22200 88400 1 0 0 output-2.sym
+{
+T 23100 88500 5 10 1 1 0 1 1
+value=VCAN
+T 22200 88400 5 10 0 1 0 6 1
+net=VCAN:1
+}
+C 18600 88200 1 0 1 output-2.sym
+{
+T 17700 88300 5 10 1 1 0 7 1
+value=VCAN
+T 18600 88200 5 10 0 1 0 0 1
+net=VCAN:1
+}
+C 17200 86600 1 0 0 input-2.sym
+{
+T 17700 86700 5 10 1 1 0 7 1
+value=+5V
+T 17200 86600 5 10 0 1 0 6 1
+net=+5V:1
+}
+C 17200 86200 1 0 0 input-2.sym
+{
+T 17700 86300 5 10 1 1 0 7 1
+value=GND
+T 17200 86200 5 10 0 1 0 6 1
+net=GND:1
+}
+C 17200 80200 1 0 0 input-2.sym
+{
+T 17700 80300 5 10 1 1 0 7 1
+value=GND
+T 17200 80200 5 10 0 1 0 6 1
+net=GND:1
+}
+C 17200 79800 1 0 0 input-2.sym
+{
+T 17700 79900 5 10 1 1 0 7 1
value=/RELEASE
-T 48200 67700 5 10 0 1 0 0
+T 17200 79800 5 10 0 1 0 6 1
net=/RELEASE:1
}
-C 43300 76000 1 0 0 vcc-1.sym
-C 43300 69400 1 0 0 vcc-1.sym
-C 52900 69000 1 0 0 vcc-1.sym
-C 52900 67300 1 0 0 vcc-1.sym
-C 52900 64700 1 0 0 vcc-1.sym
-C 52900 63000 1 0 0 vcc-1.sym
-C 50000 73500 1 0 0 output-2.sym
+C 17200 79400 1 0 0 input-2.sym
{
-T 50900 73700 5 10 0 0 0 0
-net=MOTOR+:1
-T 50800 73500 5 10 1 1 0 1
+T 17700 79500 5 10 1 1 0 7 1
+value=Vpp
+T 17200 79400 5 10 0 1 0 6 1
+net=Vpp:1
+}
+C 17200 79000 1 0 0 input-2.sym
+{
+T 17700 79100 5 10 1 1 0 7 1
value=MOTOR+
+T 17200 79000 5 10 0 1 0 6 1
+net=MOTOR+:1
}
-C 53300 73500 1 0 1 output-2.sym
+C 17200 78600 1 0 0 input-2.sym
{
-T 52400 73700 5 10 0 0 0 6
-net=MOTOR-:1
-T 52500 73500 5 10 1 1 0 7
+T 17700 78700 5 10 1 1 0 7 1
value=MOTOR-
+T 17200 78600 5 10 0 1 0 6 1
+net=MOTOR-:1
}
-N 43500 70200 43500 74200 4
-C 49500 73700 1 0 0 IRF1010N-1.sym
+C 18600 78200 1 0 1 passive-1.sym
{
-T 50100 73900 5 10 1 1 0 0
-device=IRF1010N
-T 50100 74300 5 10 1 1 0 0
+T 17700 78300 5 10 1 1 0 7 1
+value=GND
+T 18600 78200 5 10 0 1 0 6 1
+net=GND:1
+}
+C 18600 77800 1 0 1 passive-1.sym
+{
+T 17700 77900 5 10 1 1 0 7 1
+value=+5V
+T 18600 77800 5 10 0 1 0 6 1
+net=+5V:1
+}
+C 18600 77000 1 0 1 passive-1.sym
+{
+T 17700 77100 5 10 1 1 0 7 1
+value=GND
+T 18600 77000 5 10 0 1 0 6 1
+net=GND:1
+}
+C 18600 76600 1 0 1 output-2.sym
+{
+T 17700 76700 5 10 1 1 0 7 1
+value=GND
+T 18600 76600 5 10 0 1 0 6 1
+net=GND:1
+}
+C 18600 76200 1 0 1 output-2.sym
+{
+T 17700 76300 5 10 1 1 0 7 1
+value=Vpp
+T 18600 76200 5 10 0 1 0 6 1
+net=Vpp:1
+}
+T 18300 74200 9 10 1 0 0 0 1
+Actuador Interface Card - Power Drive & Edge Connector
+T 17300 73900 9 10 1 0 0 0 1
+aicpower.sch
+T 21200 73900 9 10 1 0 0 0 1
+2.2.0
+T 22200 73600 9 6 1 0 0 0 3
+Walter Fetter Lages
+Diego Caberlon Santini
+Rodrigo Daniel Trevizan
+C 1000 73500 0 0 0 title-A2.sym
+C 4300 77200 1 0 0 resistor-1.sym
+{
+T 4600 77500 5 10 1 1 0 0 1
+refdes=R12
+T 4300 77200 5 10 0 1 0 0 1
+footprint=ACY400
+T 4600 77000 5 10 1 1 0 0 1
+value=10k
+}
+C 4000 76000 1 90 0 resistor-1.sym
+{
+T 4600 76600 5 10 1 1 180 0 1
+refdes=R13
+T 4000 76000 5 10 0 1 0 0 1
+footprint=ACY400
+T 4100 76200 5 10 1 1 0 0 1
+value=1k5
+}
+C 3800 75700 1 0 0 gnd-1.sym
+C 3500 77200 1 0 1 output-2.sym
+{
+T 2600 77300 5 10 1 1 0 7 1
+value=REFPOS
+T 3500 77200 5 10 0 1 0 0 1
+net=REFPOS:1
+}
+C 6600 77200 1 0 1 input-2.sym
+{
+T 6100 77300 5 10 1 1 0 1 1
+value=INDEX
+T 6600 77200 5 10 0 1 0 0 1
+net=INDEX:1
+}
+N 9900 78400 9900 78500 4
+N 9900 78500 9600 78500 4
+N 9600 78400 9600 80100 4
+C 11100 80100 1 270 0 capacitor-4.sym
+{
+T 11600 79800 5 10 1 1 0 0 1
+refdes=C16
+T 11100 80100 5 10 0 1 0 0 1
+footprint=RCY100P
+T 11400 79400 5 10 1 1 0 0 1
+value=4.7uFx16V
+T 12200 79900 5 10 0 0 270 0 1
+device=POLARIZED_CAPACITOR
+T 11800 79900 5 10 0 0 270 0 1
+symversion=0.1
+}
+N 9600 80100 11300 80100 4
+C 10100 78900 1 0 0 gnd-1.sym
+C 11200 78900 1 0 0 gnd-1.sym
+N 11200 77600 11200 77000 4
+N 11200 77000 11000 77000 4
+N 11000 77600 12400 77600 4
+C 10400 79200 1 90 0 capacitor-1.sym
+{
+T 10400 79800 5 10 1 1 0 0 1
+refdes=C17
+T 10400 79400 5 10 1 1 0 0 1
+value=100nF
+T 10400 79200 5 10 0 0 0 0 1
+footprint=RCI200
+T 9700 79400 5 10 0 0 90 0 1
+device=CAPACITOR
+T 9500 79400 5 10 0 0 90 0 1
+symversion=0.1
+}
+C 14300 78400 1 0 0 output-2.sym
+{
+T 15200 78500 5 10 1 1 0 1 1
+value=/RELEASE
+T 14300 78400 5 10 0 1 0 0 1
+net=/RELEASE:1
+}
+C 12400 77400 1 0 0 IRLZ24N-1.sym
+{
+T 13100 77600 5 10 1 1 0 0 1
+device=IRFB52N15D
+T 13100 77900 5 10 1 1 0 0 1
refdes=Q1
+T 12400 77400 5 10 0 0 0 0 1
+footprint=TO220W
}
-C 49500 72700 1 0 0 IRF1010N-1.sym
+N 12900 78500 14300 78500 4
+C 13100 78900 1 90 0 diode-1.sym
{
-T 50100 72900 5 10 1 1 0 0
-device=IRF1010N
-T 50100 73300 5 10 1 1 0 0
+T 13500 80000 5 10 1 1 180 0 1
+refdes=D4
+T 13000 79600 5 10 1 1 0 0 1
+value=1N4007
+T 13100 78900 5 10 0 0 0 0 1
+footprint=ALF400
+}
+N 12900 78200 12900 78900 4
+N 12900 80100 12900 79800 4
+C 3800 87300 1 0 0 12V-plus-1.sym
+C 7800 87300 1 270 0 capacitor-4.sym
+{
+T 8300 87100 5 10 1 1 0 0 1
+refdes=C18
+T 7800 87400 5 10 0 1 0 0 1
+footprint=RCY400P
+T 8100 86500 5 10 1 1 0 0 1
+value=470uFx200V
+T 8900 87100 5 10 0 0 270 0 1
+device=POLARIZED_CAPACITOR
+T 8500 87100 5 10 0 0 270 0 1
+symversion=0.1
+}
+N 7600 87300 8000 87300 4
+C 2500 87300 1 270 0 capacitor-4.sym
+{
+T 2200 87100 5 10 1 1 0 0 1
+refdes=C19
+T 2400 87300 5 10 0 1 0 0 1
+footprint=RCY100P
+T 1700 86600 5 10 1 1 0 0 1
+value=10uFx16V
+T 3600 87100 5 10 0 0 270 0 1
+device=POLARIZED_CAPACITOR
+T 3200 87100 5 10 0 0 270 0 1
+symversion=0.1
+}
+C 2600 86100 1 0 0 gnd-1.sym
+C 3100 86100 1 0 0 gnd-1.sym
+C 3400 86400 1 90 0 capacitor-1.sym
+{
+T 3400 87100 5 10 1 1 0 0 1
+refdes=C20
+T 3300 86600 5 10 1 1 0 0 1
+value=100nF
+T 3300 86400 5 10 0 0 0 0 1
+footprint=RCI200
+T 2700 86600 5 10 0 0 90 0 1
+device=CAPACITOR
+T 2500 86600 5 10 0 0 90 0 1
+symversion=0.1
+}
+C 7100 84300 1 0 0 IRLZ24N-1.sym
+{
+T 7700 84500 5 10 1 1 0 0 1
+device=IRFB52N15D
+T 7700 84800 5 10 1 1 0 0 1
refdes=Q2
+T 6900 84300 5 10 0 0 0 0 1
+footprint=TO220W
}
-C 53800 73700 1 0 1 IRF1010N-1.sym
+C 7100 83100 1 0 0 IRLZ24N-1.sym
{
-T 53200 73900 5 10 1 1 0 6
-device=IRF1010N
-T 53200 74300 5 10 1 1 0 6
+T 7700 83300 5 10 1 1 0 0 1
+device=IRFB52N15D
+T 7700 83600 5 10 1 1 0 0 1
refdes=Q3
+T 7100 83100 5 10 0 0 0 0 1
+footprint=TO220W
}
-C 53800 72700 1 0 1 IRF1010N-1.sym
+N 7600 84300 7600 83900 4
+N 7600 85100 7600 87300 4
+C 3400 81700 1 0 0 gnd-1.sym
+N 7600 83100 7600 82000 4
+C 7700 83800 1 0 0 output-2.sym
{
-T 53200 72900 5 10 1 1 0 6
-device=IRF1010N
-T 53200 73300 5 10 1 1 0 6
+T 8600 83900 5 10 1 1 0 1 1
+value=MOTOR+
+T 7700 83800 5 10 0 1 0 0 1
+net=MOTOR+:1
+}
+N 3500 77300 4300 77300 4
+N 3900 76900 3900 77300 4
+C 12700 80100 1 0 0 generic-power.sym
+{
+T 12900 80350 5 10 0 1 0 3 1
+net=Vpp:1
+T 12700 80400 5 10 1 1 0 0 1
+value=Vpp
+}
+N 9600 76200 9600 76000 4
+N 9600 76000 9900 76000 4
+N 9900 76200 9900 76000 4
+C 9800 75700 1 0 0 gnd-1.sym
+C 9000 76200 1 0 0 max4429-1.sym
+{
+T 10200 76300 5 10 1 1 0 0 1
+device=MAX4429
+T 10300 78200 5 10 1 1 0 0 1
+refdes=U8
+T 9000 76200 5 10 0 1 0 0 1
+footprint=DIP8
+}
+C 13100 76700 1 180 0 generic-power.sym
+{
+T 12900 76450 5 10 0 1 180 3 1
+net=PGND:1
+T 12700 76300 5 10 1 1 0 0 1
+value=PGND
+}
+N 12900 76700 12900 77400 4
+C 18600 77400 1 0 1 output-2.sym
+{
+T 17700 77500 5 10 1 1 0 7 1
+value=+12V
+T 18600 77400 5 10 0 1 0 6 1
+net=+12V:1
+}
+C 22200 77600 1 180 1 output-2.sym
+{
+T 23100 77500 5 10 1 1 180 7 1
+value=+12V
+T 22200 77600 5 10 0 1 180 6 1
+net=+12V:1
+}
+C 22200 77400 1 180 1 output-2.sym
+{
+T 23100 77300 5 10 1 1 180 7 1
+value=+12V
+T 22200 77400 5 10 0 1 180 6 1
+net=+12V:1
+}
+C 7800 82000 1 180 0 generic-power.sym
+{
+T 7600 81950 5 10 0 1 180 3 1
+net=PGND:1
+T 7300 81600 5 10 1 1 0 0 1
+value=PGND
+}
+C 8200 86400 1 180 0 generic-power.sym
+{
+T 8000 86150 5 10 0 1 180 3 1
+net=PGND:1
+T 7800 86000 5 10 1 1 0 0 1
+value=PGND
+}
+C 7400 87300 1 0 0 generic-power.sym
+{
+T 7600 87550 5 10 0 1 0 3 1
+net=Vpp:1
+T 7500 87600 5 10 1 1 0 0 1
+value=Vpp
+}
+N 5500 83900 7700 83900 4
+C 15100 87300 1 0 1 12V-plus-1.sym
+C 11100 87300 1 90 1 capacitor-4.sym
+{
+T 10600 87100 5 10 1 1 0 6 1
+refdes=C22
+T 11100 87300 5 10 0 1 0 0 1
+footprint=RCY400P
+T 9600 86500 5 10 1 1 0 0 1
+value=470uFx200V
+T 10000 87100 5 10 0 0 90 6 1
+device=POLARIZED_CAPACITOR
+T 10400 87100 5 10 0 0 90 6 1
+symversion=0.1
+}
+N 11300 87300 10900 87300 4
+C 16000 87300 1 270 0 capacitor-4.sym
+{
+T 16400 87100 5 10 1 1 0 0 1
+refdes=C23
+T 16000 87300 5 10 0 1 0 0 1
+footprint=RCY100P
+T 16400 86600 5 10 1 1 0 0 1
+value=10uFx16V
+T 17100 87100 5 10 0 0 270 0 1
+device=POLARIZED_CAPACITOR
+T 16700 87100 5 10 0 0 270 0 1
+symversion=0.1
+}
+C 16300 86100 1 0 1 gnd-1.sym
+C 15600 86100 1 0 0 gnd-1.sym
+C 15900 86400 1 90 0 capacitor-1.sym
+{
+T 15200 87100 5 10 1 1 0 0 1
+refdes=C24
+T 15100 86600 5 10 1 1 0 0 1
+value=100nF
+T 15900 86400 5 10 0 0 0 0 1
+footprint=RCI200
+T 15200 86600 5 10 0 0 90 0 1
+device=CAPACITOR
+T 15000 86600 5 10 0 0 90 0 1
+symversion=0.1
+}
+N 11300 85100 11300 87300 4
+C 10700 86400 1 180 1 generic-power.sym
+{
+T 10900 86150 5 10 0 1 180 3 1
+net=PGND:1
+T 11100 86000 5 10 1 1 0 6 1
+value=PGND
+}
+C 11500 87300 1 0 1 generic-power.sym
+{
+T 11300 87550 5 10 0 1 0 3 1
+net=Vpp:1
+T 11400 87600 5 10 1 1 0 6 1
+value=Vpp
+}
+C 11800 84300 1 0 1 IRLZ24N-1.sym
+{
+T 11200 84500 5 10 1 1 0 6 1
+device=IRFB52N15D
+T 11200 84800 5 10 1 1 0 6 1
refdes=Q4
+T 11800 84300 5 10 0 0 0 0 1
+footprint=TO220W
}
-C 46300 66700 1 0 0 IRLZ24N-1.sym
+C 11800 83100 1 0 1 IRLZ24N-1.sym
{
-T 46900 66900 5 10 1 1 0 0
-device=IRLZ24N
-T 46900 67300 5 10 1 1 0 0
+T 11200 83300 5 10 1 1 0 6 1
+device=IRFB52N15D
+T 11200 83600 5 10 1 1 0 6 1
refdes=Q5
+T 11800 83100 5 10 0 0 0 0 1
+footprint=TO220W
}
-C 43700 75100 1 90 0 led-3.sym
+N 11300 84300 11300 83900 4
+N 11300 83100 11300 82000 4
+C 11200 83800 1 0 1 output-2.sym
{
-T 42950 75650 5 10 1 1 0 0
+T 10400 83900 5 10 1 1 0 7 1
+value=MOTOR-
+T 11200 83800 5 10 0 1 0 6 1
+net=MOTOR-:1
+}
+C 11100 82000 1 180 1 generic-power.sym
+{
+T 11300 81750 5 10 0 1 180 3 1
+net=PGND:1
+T 11500 81600 5 10 1 1 0 6 1
+value=PGND
+}
+N 11200 83900 13400 83900 4
+C 15500 81700 1 0 1 gnd-1.sym
+C 1200 84800 1 0 0 input-2.sym
+{
+T 1200 85000 5 10 0 0 0 0 1
+net=DRVA:1
+T 1800 84900 5 10 1 1 0 7 1
+value=DRVA
+}
+C 17700 84800 1 0 1 input-2.sym
+{
+T 17700 85000 5 10 0 0 0 6 1
+net=DRVB:1
+T 17200 84900 5 10 1 1 0 1 1
+value=DRVB
+}
+C 7600 77200 1 0 0 input-2.sym
+{
+T 7600 77400 5 10 0 0 0 0 1
+net=BRAKE:1
+T 8100 77300 5 10 1 1 0 7 1
+value=BRAKE
+}
+C 6000 87300 1 90 1 capacitor-4.sym
+{
+T 6300 87100 5 10 1 1 0 6 1
+refdes=C21
+T 6000 87300 5 10 0 1 0 6 1
+footprint=RCY100P
+T 6800 86700 5 10 1 1 0 6 1
+value=1uFx16V
+T 4900 87100 5 10 0 0 90 6 1
+device=POLARIZED_CAPACITOR
+T 5300 87100 5 10 0 0 90 6 1
+symversion=0.1
+}
+C 4300 87100 1 0 0 diode-1.sym
+{
+T 4600 87600 5 10 1 1 0 0 1
+refdes=D5
+T 4300 86900 5 10 1 1 0 0 1
+value=1N4007
+T 4300 87100 5 10 0 1 0 0 1
+footprint=ALF400
+}
+N 2700 87300 4300 87300 4
+N 5200 87300 5800 87300 4
+N 5500 87300 5500 85100 4
+N 5500 84500 6000 84500 4
+N 6000 83300 5500 83300 4
+C 12900 87300 1 270 0 capacitor-4.sym
+{
+T 12600 87100 5 10 1 1 0 0 1
+refdes=C25
+T 12900 87300 5 10 0 1 0 0 1
+footprint=RCY100P
+T 12100 86700 5 10 1 1 0 0 1
+value=1uFx16V
+T 14000 87100 5 10 0 0 270 0 1
+device=POLARIZED_CAPACITOR
+T 13600 87100 5 10 0 0 270 0 1
+symversion=0.1
+}
+N 13400 83300 12900 83300 4
+N 12900 84500 13400 84500 4
+N 13100 86400 13100 83900 4
+N 13400 87300 13400 85100 4
+C 14600 87100 1 0 1 diode-1.sym
+{
+T 14300 87600 5 10 1 1 0 6 1
+refdes=D6
+T 14600 86900 5 10 1 1 0 6 1
+value=1N4007
+T 14600 87100 5 10 0 1 0 0 1
+footprint=ALF400
+}
+N 13100 87300 13700 87300 4
+C 9400 80100 1 0 0 12V-plus-1.sym
+N 5800 83900 5800 86400 4
+C 1200 84000 1 0 0 input-2.sym
+{
+T 1700 84100 5 10 1 1 0 7 1
+value=/SD
+T 1200 84000 5 10 0 1 0 6 1
+net=/SD:1
+}
+C 16600 82200 1 90 0 resistor-1.sym
+{
+T 16400 82800 5 10 1 1 180 0 1
+refdes=R15
+T 16200 82300 5 10 1 1 0 0 1
+value=0
+}
+C 2500 82200 1 90 0 resistor-1.sym
+{
+T 2900 82900 5 10 1 1 180 0 1
+refdes=R14
+T 2500 82400 5 10 1 1 0 0 1
+value=0
+}
+N 14400 82000 16500 82000 4
+N 15400 82000 15400 82400 4
+N 14400 82000 14400 82400 4
+N 2400 82000 4500 82000 4
+N 4500 82000 4500 82400 4
+N 3500 82000 3500 82400 4
+{
+T 1500 82200 5 10 0 1 0 0 1
+footprint=DIP14
+}
+N 16500 83100 16500 83300 4
+N 2400 83300 2400 83100 4
+N 14900 86000 14900 87300 4
+N 4000 86000 4000 87300 4
+N 16300 83300 16500 83300 4
+N 2600 83300 2400 83300 4
+C 2600 82400 1 0 0 irs21094-1.sym
+{
+T 4300 85800 5 10 1 1 0 0 1
+device=IRS21094
+T 3000 85800 5 10 1 1 0 0 1
+refdes=U9
+}
+C 16300 82400 1 0 1 irs21094-1.sym
+{
+T 14700 85800 5 10 1 1 0 6 1
+device=IRS21094
+T 16000 85800 5 10 1 1 0 6 1
+refdes=U10
+}
+C 12000 83200 1 0 0 resistor-1.sym
+{
+T 12200 83500 5 10 1 1 0 0 1
+refdes=R19
+T 12200 83000 5 10 1 1 0 0 1
+value=68
+}
+C 6000 84400 1 0 0 resistor-1.sym
+{
+T 6300 84700 5 10 1 1 0 0 1
+refdes=R16
+T 6300 84200 5 10 1 1 0 0 1
+value=68
+}
+C 6000 83200 1 0 0 resistor-1.sym
+{
+T 6300 83500 5 10 1 1 0 0 1
+refdes=R17
+T 6300 83000 5 10 1 1 0 0 1
+value=68
+}
+C 12000 84400 1 0 0 resistor-1.sym
+{
+T 12200 84700 5 10 1 1 0 0 1
+refdes=R18
+T 12200 84200 5 10 1 1 0 0 1
+value=68
+}
+C 12000 82500 1 180 1 diode-1.sym
+{
+T 12300 82700 5 10 1 1 180 6 1
+refdes=D10
+T 12100 82000 5 10 1 1 180 6 1
+value=1N4148
+T 12000 82500 5 10 0 1 180 0 1
+footprint=ALF400
+}
+C 12000 85700 1 180 1 diode-1.sym
+{
+T 12300 86000 5 10 1 1 180 6 1
refdes=D9
-T 42900 76000 5 10 1 1 180 6
-value=Red
+T 12100 85200 5 10 1 1 180 6 1
+value=1N4148
+T 12000 85700 5 10 0 1 180 0 1
+footprint=ALF400
+}
+C 6900 82100 1 0 1 diode-1.sym
+{
+T 6600 82600 5 10 1 1 0 6 1
+refdes=D8
+T 6900 81900 5 10 1 1 0 6 1
+value=1N4148
+T 6900 82100 5 10 0 1 0 0 1
+footprint=ALF400
}
+C 6900 85300 1 0 1 diode-1.sym
+{
+T 6600 85900 5 10 1 1 0 6 1
+refdes=D7
+T 6800 85100 5 10 1 1 0 6 1
+value=1N4148
+T 6900 85300 5 10 0 1 0 0 1
+footprint=ALF400
+}
+N 14600 87300 16200 87300 4
+N 6900 85500 6900 84500 4
+N 6000 85500 6000 84500 4
+N 6900 82300 6900 83300 4
+N 6000 82300 6000 83300 4
+N 12000 85500 12000 84500 4
+N 12900 85500 12900 84500 4
+N 12900 82300 12900 83300 4
+N 12000 82300 12000 83300 4
+N 6900 84500 7100 84500 4
+N 6900 83300 7100 83300 4
+N 11800 83300 12000 83300 4
+N 11800 84500 12000 84500 4
+C 17700 84000 1 0 1 input-2.sym
+{
+T 17200 84100 5 10 1 1 0 1 1
+value=/SD
+T 17700 84000 5 10 0 1 0 0 1
+net=/SD:1
+}
+N 2400 82000 2400 82200 4
+N 16500 82000 16500 82200 4
+++ /dev/null
-v 20030223
-C 7600 76000 1 0 0 TINIm390-RevD.sym
-{
-T 8050 87950 5 10 1 1 0 0
-device=TINIm390-RevD
-T 9500 88000 5 10 1 1 0 0
-refdes=U1
-}
-C 4300 82500 1 0 0 DB9-1.sym
-{
-T 5200 86100 5 10 1 1 0 0
-refdes=J9
-T 4800 85700 5 10 1 1 0 6
-value=FEMALE
-}
-C 3600 78700 1 0 0 connector8-1.sym
-{
-T 3900 81600 5 10 1 1 0 0
-refdes=J2
-T 4100 81300 5 10 1 1 0 6
-value=RJ45
-}
-C 14800 73500 1 0 0 lm7805-1.sym
-{
-T 16200 74500 5 10 1 1 0 6
-refdes=U2
-}
-C 12400 73500 1 0 0 lm7812-1.sym
-{
-T 13800 74500 5 10 1 1 0 6
-refdes=U3
-}
-C 15500 73200 1 0 0 gnd-1.sym
-C 13100 73200 1 0 0 gnd-1.sym
-C 14100 74300 1 0 0 12V-plus-1.sym
-C 12200 74300 1 0 0 generic-power.sym
-{
-T 12100 74600 5 10 0 1 0 0
-net=+24V:1
-T 12200 74600 5 10 1 1 0 0
-value=+24V
-}
-N 14300 74300 14300 74100 4
-C 16500 74100 1 270 0 capacitor-2.sym
-{
-T 17000 73600 5 10 1 1 0 0
-refdes=C2
-T 17000 73300 5 10 1 1 0 0
-value=100uFx16V
-}
-C 14100 74100 1 270 0 capacitor-2.sym
-{
-T 14600 73600 5 10 1 1 0 0
-refdes=C1
-T 14500 73300 5 10 1 1 0 0
-value=100uFx25V
-}
-C 16600 72900 1 0 0 gnd-1.sym
-C 14200 72900 1 0 0 gnd-1.sym
-C 5600 82500 1 0 1 gnd-1.sym
-N 9800 87600 10500 87600 4
-{
-T 10200 87600 5 10 1 1 0 0
-netname=D0
-}
-N 9800 87300 10500 87300 4
-{
-T 10200 87300 5 10 1 1 0 0
-netname=D1
-}
-N 10500 87300 10700 87500 4
-N 9800 87000 10500 87000 4
-{
-T 10200 87000 5 10 1 1 0 0
-netname=D2
-}
-N 10500 87000 10700 87200 4
-N 9800 86700 10500 86700 4
-{
-T 10200 86700 5 10 1 1 0 0
-netname=D3
-}
-N 10500 86700 10700 86900 4
-N 9800 86400 10500 86400 4
-{
-T 10200 86400 5 10 1 1 0 0
-netname=D4
-}
-N 10500 86400 10700 86600 4
-N 9800 86100 10500 86100 4
-{
-T 10200 86100 5 10 1 1 0 0
-netname=D5
-}
-N 10500 86100 10700 86300 4
-N 9800 85800 10500 85800 4
-{
-T 10200 85800 5 10 1 1 0 0
-netname=D6
-}
-N 10500 85800 10700 86000 4
-N 9800 85500 10500 85500 4
-{
-T 10200 85500 5 10 1 1 0 0
-netname=D7
-}
-N 10500 85500 10700 85700 4
-N 7700 77100 6800 77100 4
-{
-T 7000 77100 5 10 1 1 0 0
-netname=FLASH
-}
-N 7700 76800 6800 76800 4
-{
-T 7000 76800 5 10 1 1 0 0
-netname=FLASH
-}
-N 6800 78300 7700 78300 4
-N 7700 80400 5300 80400 4
-{
-T 6400 80400 5 10 1 1 0 0
-netname=ETH3
-}
-N 7700 80700 5300 80700 4
-{
-T 6400 80700 5 10 1 1 0 0
-netname=ETH2
-}
-N 7700 81000 5300 81000 4
-{
-T 6400 81000 5 10 1 1 0 0
-netname=ETH1
-}
-N 7700 84000 5500 84000 4
-{
-T 6800 84000 5 10 1 1 0 0
-netname=RX232
-}
-N 7700 84300 6100 84300 4
-{
-T 6800 84300 5 10 1 1 0 0
-netname=TX232
-}
-N 10700 78700 10200 78700 4
-N 10200 78700 10200 78600 4
-N 10200 78600 9800 78600 4
-N 9800 78300 10700 78300 4
-N 10700 77900 10200 77900 4
-N 10200 77900 10200 78000 4
-N 10200 78000 9800 78000 4
-N 9800 77700 10200 77700 4
-N 10200 77700 10200 77500 4
-N 10200 77500 10700 77500 4
-C 10700 78900 1 180 1 header8-2.sym
-{
-T 11300 77200 5 10 1 1 180 6
-refdes=JP1
-T 10700 79000 5 10 1 1 0 0
-value=ADDRESS SELECTION
-}
-N 6100 84300 6100 84600 4
-N 6100 84600 5500 84600 4
-N 5700 80100 7700 80100 4
-{
-T 6400 80100 5 10 1 1 0 0
-netname=ETH6
-}
-N 5700 80100 5700 79500 4
-N 5700 79500 5300 79500 4
-N 12100 78700 12300 78700 4
-N 12300 78700 12300 77500 4
-N 12100 77900 12300 77900 4
-N 12100 78300 12300 78300 4
-N 6800 77100 6800 76800 4
-C 3400 72000 0 0 0 title-A2.sym
-N 15800 85100 16700 85100 4
-{
-T 15900 85100 5 10 1 1 0 0
-netname=TRINT
-}
-N 15800 83800 16600 83800 4
-{
-T 15900 83800 5 10 1 1 0 0
-netname=PWM
-}
-N 13200 84800 12100 84800 4
-N 15800 84800 17400 84800 4
-N 15800 84100 16900 84100 4
-N 16900 84100 16900 83100 4
-N 16900 83100 12400 83100 4
-N 12400 84500 13200 84500 4
-N 15800 84400 18100 84400 4
-N 18100 82900 18100 85400 4
-N 19200 79500 18600 79500 4
-N 18600 79500 18600 80300 4
-N 21200 79200 22400 79200 4
-{
-T 21300 79200 5 10 1 1 0 0
-netname=/CSPWM
-}
-N 21200 78900 22600 78900 4
-{
-T 21300 78900 5 10 1 1 0 0
-netname=/ERD
-}
-N 21200 78300 26300 78300 4
-{
-T 21300 78300 5 10 1 1 0 0
-netname=D0
-}
-N 21200 79500 22300 79500 4
-{
-T 21300 79500 5 10 1 1 0 0
-netname=/CSLATCH
-}
-N 22300 79500 22300 80300 4
-N 18600 80300 22300 80300 4
-N 19200 77400 18200 77400 4
-{
-T 18500 77400 5 10 1 1 0 0
-netname=D1
-}
-N 12300 87400 12100 87600 4
-N 12300 87100 12100 87300 4
-N 12300 86800 12100 87000 4
-N 12300 86500 12100 86700 4
-N 12300 86200 12100 86400 4
-N 12300 85900 12100 86100 4
-N 12300 85600 12100 85800 4
-N 12300 85300 12100 85500 4
-N 12300 87400 13200 87400 4
-{
-T 12600 87400 5 10 1 1 0 0
-netname=D7
-}
-N 13200 87100 12300 87100 4
-{
-T 12600 87100 5 10 1 1 0 0
-netname=D6
-}
-N 12300 86800 13200 86800 4
-{
-T 12600 86800 5 10 1 1 0 0
-netname=D5
-}
-N 12300 86200 13200 86200 4
-{
-T 12600 86200 5 10 1 1 0 0
-netname=D3
-}
-N 13200 85900 12300 85900 4
-{
-T 12600 85900 5 10 1 1 0 0
-netname=D2
-}
-N 13200 85600 12300 85600 4
-{
-T 12600 85600 5 10 1 1 0 0
-netname=D1
-}
-N 12300 85300 13200 85300 4
-{
-T 12600 85300 5 10 1 1 0 0
-netname=D0
-}
-N 25600 86600 26300 86600 4
-{
-T 26100 86600 5 10 1 1 0 6
-netname=D0
-}
-N 25600 86300 26300 86300 4
-{
-T 26100 86300 5 10 1 1 0 6
-netname=D1
-}
-N 25600 86000 26300 86000 4
-{
-T 26100 86000 5 10 1 1 0 6
-netname=D2
-}
-N 25600 85700 26300 85700 4
-{
-T 26100 85700 5 10 1 1 0 6
-netname=D3
-}
-N 25600 85100 26300 85100 4
-{
-T 26100 85100 5 10 1 1 0 6
-netname=D5
-}
-N 25600 84800 26300 84800 4
-{
-T 26100 84800 5 10 1 1 0 6
-netname=D6
-}
-N 25600 84500 26300 84500 4
-{
-T 26100 84500 5 10 1 1 0 6
-netname=D7
-}
-N 26300 85100 26500 85300 4
-N 26300 85400 26500 85600 4
-N 26300 85700 26500 85900 4
-N 26300 86000 26500 86200 4
-N 26300 86300 26500 86500 4
-N 26300 86600 26500 86800 4
-N 26300 84800 26500 85000 4
-N 26300 84500 26500 84700 4
-T 18700 79500 9 10 1 0 0 0
-CLK
-C 13100 83500 1 0 0 gnd-1.sym
-C 13200 83400 1 0 0 8254-1.sym
-{
-T 15500 87800 5 10 1 1 0 6
-refdes=U6
-}
-N 12300 86500 13200 86500 4
-{
-T 12600 86500 5 10 1 1 0 0
-netname=D4
-}
-N 25600 85400 26300 85400 4
-{
-T 26100 85400 5 10 1 1 0 6
-netname=D4
-}
-C 23600 84200 1 0 0 HCTL-2016-1.sym
-{
-T 24000 87000 5 10 1 1 0 0
-device=HCTL-2016
-T 24000 87200 5 10 1 1 0 0
-refdes=U7
-}
-N 12400 84500 12400 83100 4
-N 12100 84800 12100 82900 4
-N 21000 84500 23600 84500 4
-N 21000 84800 23600 84800 4
-N 10500 87600 10700 87800 4
-U 10700 88400 15100 88400 10 0
-U 15100 88400 20900 88400 10 0
-U 20900 88400 26500 88400 10 0
-N 9800 84900 10500 84900 4
-{
-T 10100 84900 5 10 1 1 0 0
-netname=A0
-}
-N 9800 84600 10500 84600 4
-{
-T 10100 84600 5 10 1 1 0 0
-netname=A1
-}
-N 10500 84600 10700 84800 4
-N 9800 84300 10500 84300 4
-{
-T 10100 84300 5 10 1 1 0 0
-netname=A2
-}
-N 10500 84300 10700 84500 4
-N 9800 84000 10500 84000 4
-{
-T 10100 84000 5 10 1 1 0 0
-netname=A3
-}
-N 10500 84000 10700 84200 4
-N 9800 83700 10500 83700 4
-{
-T 10100 83700 5 10 1 1 0 0
-netname=A4
-}
-N 10500 83700 10700 83900 4
-N 9800 83400 10500 83400 4
-{
-T 10100 83400 5 10 1 1 0 0
-netname=A5
-}
-N 10500 83400 10700 83600 4
-N 9800 83100 10500 83100 4
-{
-T 10100 83100 5 10 1 1 0 0
-netname=A6
-}
-N 10500 83100 10700 83300 4
-N 9800 82800 10500 82800 4
-{
-T 10100 82800 5 10 1 1 0 0
-netname=A7
-}
-N 10500 82800 10700 83000 4
-N 10500 84900 10700 85100 4
-N 9800 82500 10500 82500 4
-{
-T 10100 82500 5 10 1 1 0 0
-netname=A8
-}
-N 9800 82200 10500 82200 4
-{
-T 10100 82200 5 10 1 1 0 0
-netname=A9
-}
-N 10500 82200 10700 82400 4
-N 9800 81900 10500 81900 4
-{
-T 10100 81900 5 10 1 1 0 0
-netname=A10
-}
-N 10500 81900 10700 82100 4
-N 9800 81600 10500 81600 4
-{
-T 10100 81600 5 10 1 1 0 0
-netname=A11
-}
-N 10500 81600 10700 81800 4
-N 9800 81300 10500 81300 4
-{
-T 10100 81300 5 10 1 1 0 0
-netname=A12
-}
-N 10500 81300 10700 81500 4
-N 9800 81000 10500 81000 4
-{
-T 10100 81000 5 10 1 1 0 0
-netname=A13
-}
-N 10500 81000 10700 81200 4
-N 9800 80700 10500 80700 4
-{
-T 10100 80700 5 10 1 1 0 0
-netname=A14
-}
-N 10500 80700 10700 80900 4
-N 9800 80400 10500 80400 4
-{
-T 10100 80400 5 10 1 1 0 0
-netname=A15
-}
-N 10500 80400 10700 80600 4
-N 10500 82500 10700 82700 4
-N 9800 80100 10500 80100 4
-{
-T 10100 80100 5 10 1 1 0 0
-netname=A16
-}
-N 9800 79800 10500 79800 4
-{
-T 10100 79800 5 10 1 1 0 0
-netname=A17
-}
-N 10500 79800 10700 80000 4
-N 9800 79500 10500 79500 4
-{
-T 10100 79500 5 10 1 1 0 0
-netname=A18
-}
-N 10500 79500 10700 79700 4
-N 9800 79200 10500 79200 4
-{
-T 10100 79200 5 10 1 1 0 0
-netname=A19
-}
-N 10500 79200 10700 79400 4
-N 10500 80100 10700 80300 4
-N 19200 79200 18500 79200 4
-{
-T 18800 79200 5 10 1 1 0 6
-netname=A19
-}
-N 18500 79200 18300 79400 4
-N 19200 78900 18500 78900 4
-{
-T 18800 78900 5 10 1 1 0 6
-netname=A18
-}
-N 18500 78900 18300 79100 4
-N 19200 78600 18500 78600 4
-{
-T 18800 78600 5 10 1 1 0 6
-netname=A17
-}
-N 18500 78600 18300 78800 4
-N 19200 78300 18500 78300 4
-{
-T 18800 78300 5 10 1 1 0 6
-netname=A16
-}
-N 18500 78300 18300 78500 4
-N 15800 86100 18100 86100 4
-{
-T 16100 86100 5 10 1 1 0 0
-netname=A1
-}
-N 15800 85800 18100 85800 4
-{
-T 16100 85800 5 10 1 1 0 0
-netname=A0
-}
-N 18500 86600 23600 86600 4
-{
-T 23100 86600 5 10 1 1 0 0
-netname=A0
-}
-N 12100 82900 18100 82900 4
-N 13300 82300 14500 82300 4
-{
-T 13300 82300 5 10 1 1 0 0
-netname=CLOCK
-}
-N 14500 82300 14500 82900 4
-N 21200 77400 23400 77400 4
-{
-T 21500 77400 5 10 1 1 0 0
-netname=/EXTINT
-}
-N 23400 77400 23400 75100 4
-N 7700 79500 6400 79500 4
-{
-T 6700 79500 5 10 1 1 0 0
-netname=/EXTINT
-}
-N 6400 79500 6400 75100 4
-N 6400 75100 23400 75100 4
-U 18300 81700 10700 81700 10 0
-N 12100 77500 16200 77500 4
-{
-T 12600 77500 5 10 1 1 0 0
-netname=/STROBE
-}
-N 19200 76800 16200 76800 4
-{
-T 18200 76800 5 10 1 1 0 0
-netname=/STROBE
-}
-N 16200 77500 16200 76800 4
-N 18400 86300 23600 86300 4
-{
-T 23400 86300 5 10 1 1 0 6
-netname=CLOCK
-}
-N 18400 86300 18400 85400 4
-N 15800 85400 18400 85400 4
-N 21200 78600 22800 78600 4
-{
-T 21300 78600 5 10 1 1 0 0
-netname=/EWR
-}
-N 15800 86500 22400 86500 4
-{
-T 16100 86500 5 10 1 1 0 0
-netname=/CSPWM
-}
-N 22800 85700 23600 85700 4
-{
-T 23400 85700 5 10 1 1 0 6
-netname=/EWR
-}
-N 22600 86000 23600 86000 4
-{
-T 23400 86000 5 10 1 1 0 6
-netname=/ERD
-}
-N 14900 77700 19200 77700 4
-{
-T 18500 77700 5 10 1 1 0 0
-netname=/RD
-}
-N 9800 76800 14900 76800 4
-{
-T 10100 76800 5 10 1 1 0 0
-netname=/RD
-}
-N 14500 78000 19200 78000 4
-{
-T 18500 78000 5 10 1 1 0 0
-netname=/WR
-}
-N 14500 78000 14500 76500 4
-N 9800 76500 14500 76500 4
-{
-T 10100 76500 5 10 1 1 0 0
-netname=/WR
-}
-N 15800 86800 17600 86800 4
-{
-T 16100 86800 5 10 1 1 0 0
-netname=/RD
-}
-N 15800 87100 17800 87100 4
-{
-T 16100 87100 5 10 1 1 0 0
-netname=/WR
-}
-T 20100 72400 9 10 1 0 0 0
-aictini.sch
-T 20300 72100 9 10 1 0 0 0
-1
-T 21700 72100 9 10 1 0 0 0
-3
-T 19800 72700 9 10 1 0 0 0
-Actuator Interface Card - CPU, PWM, Encoder, RS232 & Ethernet Interfaces
-N 18200 77400 18200 81100 4
-N 15800 87500 16100 87500 4
-N 13000 84200 13200 84200 4
-N 13000 84200 13000 84000 4
-N 13000 84000 12700 84000 4
-N 18200 81100 26300 81100 4
-N 26300 81100 26500 81300 4
-N 26300 78300 26500 78500 4
-N 22800 85700 22800 78600 4
-N 22600 86000 22600 78900 4
-N 22400 79200 22400 86500 4
-N 16600 83800 16600 76500 4
-N 16600 76500 19200 76500 4
-{
-T 18200 76500 5 10 1 1 0 0
-netname=PWM
-}
-N 16700 85100 16700 76200 4
-N 16700 76200 19200 76200 4
-{
-T 18200 76200 5 10 1 1 0 0
-netname=TRINT
-}
-N 17600 86800 17600 77700 4
-N 17800 87100 17800 78000 4
-N 14900 77700 14900 76800 4
-N 18100 85800 18300 86000 4
-N 18100 86100 18300 86300 4
-N 18500 86600 18300 86800 4
-T 23600 72400 9 10 1 0 0 0
-1.1.0
-C 12100 82000 1 0 0 osc-2.sym
-{
-T 12600 82700 5 10 1 1 0 0
-device=OSC
-T 12100 82700 5 10 1 1 0 0
-refdes=U11
-T 12300 81800 5 10 1 1 0 0
-value=10MHz
-}
-C 19200 75900 1 0 0 22V10-DIP-1.sym
-{
-T 19500 79900 5 10 1 1 0 0
-device=22V10
-T 19700 80100 5 10 1 1 0 6
-refdes=U8
-T 19200 75900 5 10 0 1 0 0
-value=GAL
-}
-T 21500 73200 9 10 1 0 0 0
-Universidade Federal do Rio Grande do Sul
-T 21700 73000 9 10 1 0 0 0
-Departamento de Engenharia Eletrica
-C 17800 77000 1 0 0 input-2.sym
-{
-T 18300 77100 5 10 1 1 0 7
-value=REFPOS
-T 17800 77000 5 10 0 1 0 0
-net=REFPOS:1
-}
-C 21200 77600 1 0 0 output-2.sym
-{
-T 22100 77700 5 10 1 1 0 1
-value=BRAKE
-T 21200 77600 5 10 0 1 0 0
-net=BRAKE:1
-}
-C 21200 77000 1 0 0 output-2.sym
-{
-T 22100 77100 5 10 1 1 0 1
-value=DRVA
-T 21200 77000 5 10 0 1 0 0
-net=DRVA:1
-}
-C 21200 76700 1 0 0 output-2.sym
-{
-T 22100 76800 5 10 1 1 0 1
-value=DRVB
-T 21200 76700 5 10 0 1 0 0
-net=DRVB:1
-}
-C 7700 86600 1 0 1 output-2.sym
-{
-T 6800 86700 5 10 1 1 0 7
-value=CAN0TX
-T 7700 86600 5 10 0 1 0 0
-net=CAN0TX:1
-}
-C 7700 85700 1 0 1 output-2.sym
-{
-T 6800 85800 5 10 1 1 0 7
-value=CAN1TX
-T 7700 85700 5 10 0 1 0 0
-net=CAN1TX:1
-}
-C 6300 86300 1 0 0 input-2.sym
-{
-T 6800 86400 5 10 1 1 0 7
-value=CAN0RX
-T 6300 86300 5 10 0 1 0 0
-net=CAN0RX:1
-}
-C 6300 85400 1 0 0 input-2.sym
-{
-T 6800 85500 5 10 1 1 0 7
-value=CAN1RX
-T 6300 85400 5 10 0 1 0 0
-net=CAN1RX:1
-}
-N 12400 74100 12400 74300 4
-N 14000 74100 14800 74100 4
-T 23600 72100 9 8 1 0 0 0
-Walter Fetter Lages & Fernando Pessutto
-C 19600 84700 1 0 0 input-2.sym
-{
-T 20100 84800 5 10 1 1 0 7
-value=CHA
-T 19600 84700 5 10 0 1 0 0
-net=CHA:1
-}
-C 19600 84400 1 0 0 input-2.sym
-{
-T 20100 84500 5 10 1 1 0 7
-value=CHB
-T 19600 84400 5 10 0 1 0 0
-net=CHB:1
-}
-N 16400 74100 17200 74100 4
-N 17200 74100 17200 74400 4
-C 17000 74400 1 0 0 vcc-1.sym
-C 6600 78300 1 0 0 vcc-1.sym
-C 12500 84000 1 0 0 vcc-1.sym
-C 17200 84800 1 0 0 vcc-1.sym
-C 15900 87500 1 0 0 vcc-1.sym
-C 6500 83300 1 90 0 jumper-1.sym
-{
-T 6000 83800 5 10 1 1 180 0
-refdes=JP2
-T 5600 83000 5 10 1 1 0 0
-value=XRESET
-}
-N 6500 83700 7700 83700 4
-{
-T 6800 83700 5 10 1 1 0 0
-netname=DTR232
-}
-C 6500 83100 1 0 0 switch-pushbutton-no-1.sym
-{
-T 6900 83400 5 10 1 1 0 0
-refdes=S1
-T 6700 82900 5 10 1 1 0 0
-value=RESET
-}
-C 7300 83100 1 0 0 vcc-1.sym
-C 17200 74000 1 0 0 resistor-1.sym
-{
-T 17700 74500 5 10 1 1 180 0
-refdes=R12
-T 17400 73800 5 10 1 1 0 0
-value=330
-}
-C 18000 72900 1 0 0 gnd-1.sym
-C 3800 81900 1 0 0 input-2.sym
-{
-T 3800 82100 5 10 0 0 0 0
-net=RESET:1
-T 4300 82000 5 10 1 1 0 7
-value=RESET
-}
-N 6500 82000 6500 83700 4
-C 6100 81800 1 0 1 diode-3.sym
-{
-T 5800 82300 5 10 1 1 0 6
-refdes=D3
-T 6000 81600 5 10 1 1 0 6
-value=1N4148
-}
-N 6500 82000 6100 82000 4
-C 17900 73200 1 270 1 led-3.sym
-{
-T 18450 73750 5 10 1 1 180 6
-refdes=D10
-T 18400 74000 5 10 1 1 180 6
-value=Green
-}
-C 21400 84900 1 90 0 resistor-1.sym
-{
-T 21100 85600 5 10 1 1 180 0
-refdes=R13
-T 20800 85200 5 10 1 1 0 0
-value=2k7
-}
-C 21900 84900 1 90 0 resistor-1.sym
-{
-T 22300 85600 5 10 1 1 180 0
-refdes=R14
-T 22000 85200 5 10 1 1 0 0
-value=2k7
-}
-N 21300 84900 21300 84800 4
-C 21100 85800 1 0 0 vcc-1.sym
-C 21600 85800 1 0 0 vcc-1.sym
-N 21800 84900 21800 84500 4
-U 10700 88400 10700 85600 10 0
-U 12100 85400 12100 88400 10 0
-U 10700 85200 10700 79300 10 0
-U 18300 86900 18300 78400 10 0
-U 26500 88400 26500 81200 10 0
--- /dev/null
+v 20041228 1
+B 400 0 3600 5600 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
+T 300 7600 8 10 0 0 0 0 1
+description=High-Perfomance 16-Bit Digital Signal Controller
+T 3800 5700 5 10 1 1 0 0 1
+refdes=U?
+T 300 7400 8 10 0 0 0 0 1
+numslots=0
+T 300 7200 8 10 0 0 0 0 1
+documentation=http://ww1.microchip.com/downloads/en/DeviceDoc/70135E.pdf
+T 500 5700 9 10 1 1 0 0 1
+device=dsPIC30F4012
+T 300 7000 8 10 0 0 0 0 1
+footprint=DIP28N
+T 300 6800 8 10 0 0 0 0 1
+symversion=0.1
+T 300 6600 8 10 0 0 0 0 1
+author=Walter Fetter Lages <w.fetter@ieee.org> & Diego Caberlon Santini <diegos@ece.ufrgs.br> & Guilherme Strack <guilhermestrack@terra.com.br>
+V 350 5400 52 6 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
+P 0 2200 400 2200 1 0 0
+{
+T 100 2300 5 10 1 1 0 0 1
+pinnumber=9
+T 500 2200 3 10 1 1 0 0 1
+pinlabel=OSC1/CLKI
+T -100 2200 5 10 0 0 0 6 1
+pinseq=9
+T -1200 2200 5 10 0 0 0 6 1
+pintype=clk
+}
+P 0 1800 400 1800 1 0 0
+{
+T 100 1900 5 10 1 1 0 0 1
+pinnumber=10
+T 500 1800 3 10 1 1 0 0 1
+pinlabel=OSC2/RC15
+T -100 1800 5 10 0 0 0 6 1
+pinseq=10
+T -1200 1800 5 10 0 0 0 6 1
+pintype=io
+}
+P 4400 600 4000 600 1 0 0
+{
+T 4100 700 5 10 1 1 0 0 1
+pinnumber=16
+T 3500 600 3 10 1 1 0 0 1
+pinlabel=RE8
+T 4500 600 5 10 0 0 0 0 1
+pinseq=16
+T 5600 600 5 10 0 0 0 0 1
+pintype=io
+}
+P 4400 200 4000 200 1 0 0
+{
+T 4100 300 5 10 1 1 0 0 1
+pinnumber=15
+T 3500 200 3 10 1 1 0 0 1
+pinlabel=RD0
+T 4500 200 5 10 0 0 0 0 1
+pinseq=15
+T 5600 200 5 10 0 0 0 0 1
+pintype=io
+}
+P 4400 2200 4000 2200 1 0 0
+{
+T 4100 2300 5 10 1 1 0 0 1
+pinnumber=20
+T 3500 2200 3 10 1 1 0 0 1
+pinlabel=Vdd
+T 4500 2200 5 10 0 0 0 0 1
+pinseq=20
+T 5600 2200 5 10 0 0 0 0 1
+pintype=pwr
+}
+P 4400 1800 4000 1800 1 0 0
+{
+T 3500 1800 3 10 1 1 0 0 1
+pinlabel=Vss
+T 4100 1900 5 10 1 1 0 0 1
+pinnumber=19
+T 4500 1800 5 10 0 0 0 0 1
+pinseq=19
+T 5600 1800 5 10 0 0 0 0 1
+pintype=pwr
+}
+P 4400 1400 4000 1400 1 0 0
+{
+T 4100 1500 5 10 1 1 0 0 1
+pinnumber=18
+T 3500 1400 3 10 1 1 0 0 1
+pinlabel=RF2
+T 4500 1400 5 10 0 0 0 0 1
+pinseq=18
+T 5600 1400 5 10 0 0 0 0 1
+pintype=io
+}
+P 4400 1000 4000 1000 1 0 0
+{
+T 4100 1100 5 10 1 1 0 0 1
+pinnumber=17
+T 3500 1000 3 10 1 1 0 0 1
+pinlabel=RF3
+T 4500 1000 5 10 0 0 0 0 1
+pinseq=17
+T 5600 1000 5 10 0 0 0 0 1
+pintype=io
+}
+P 4400 3800 4000 3800 1 0 0
+{
+T 4100 3900 5 10 1 1 0 0 1
+pinnumber=24
+T 3500 3800 3 10 1 1 0 0 1
+pinlabel=RE2
+T 4500 3800 5 10 0 0 0 0 1
+pinseq=24
+T 5600 3800 5 10 0 0 0 0 1
+pintype=io
+}
+P 4400 3400 4000 3400 1 0 0
+{
+T 4100 3500 5 10 1 1 0 0 1
+pinnumber=23
+T 3500 3400 3 10 1 1 0 0 1
+pinlabel=RE3
+T 4500 3400 5 10 0 0 0 0 1
+pinseq=23
+T 5600 3400 5 10 0 0 0 0 1
+pintype=io
+}
+P 4400 3000 4000 3000 1 0 0
+{
+T 4100 3100 5 10 1 1 0 0 1
+pinnumber=22
+T 3500 3000 3 10 1 1 0 0 1
+pinlabel=RE4
+T 4500 3000 5 10 0 0 0 0 1
+pinseq=22
+T 5600 3000 5 10 0 0 0 0 1
+pintype=io
+}
+P 4400 2600 4000 2600 1 0 0
+{
+T 4100 2700 5 10 1 1 0 0 1
+pinnumber=21
+T 3500 2600 3 10 1 1 0 0 1
+pinlabel=RE5
+T 4500 2600 5 10 0 0 0 0 1
+pinseq=21
+T 5600 2600 5 10 0 0 0 0 1
+pintype=io
+}
+P 0 200 400 200 1 0 0
+{
+T 100 300 5 10 1 1 0 0 1
+pinnumber=14
+T 500 200 3 10 1 1 0 0 1
+pinlabel=RD1
+T -100 200 5 10 0 0 0 6 1
+pinseq=14
+T -1200 200 5 10 0 0 0 6 1
+pintype=io
+}
+P 0 2600 400 2600 1 0 0
+{
+T 100 2700 5 10 1 1 0 0 1
+pinnumber=8
+T 500 2600 3 10 1 1 0 0 1
+pinlabel=Vss
+T -100 2600 5 10 0 0 0 6 1
+pinseq=8
+T -1200 2600 5 10 0 0 0 6 1
+pintype=pwr
+}
+P 4400 5400 4000 5400 1 0 0
+{
+T 4100 5500 5 10 1 1 0 0 1
+pinnumber=28
+T 3400 5400 3 10 1 1 0 0 1
+pinlabel=AVdd
+T 4500 5400 5 10 0 0 0 0 1
+pinseq=28
+T 5600 5400 5 10 0 0 0 0 1
+pintype=pwr
+}
+P 4400 5000 4000 5000 1 0 0
+{
+T 4100 5100 5 10 1 1 0 0 1
+pinnumber=27
+T 3400 5000 3 10 1 1 0 0 1
+pinlabel=AVss
+T 4500 5000 5 10 0 0 0 0 1
+pinseq=27
+T 5600 5000 5 10 0 0 0 0 1
+pintype=pwr
+}
+P 4400 4600 4000 4600 1 0 0
+{
+T 4100 4700 5 10 1 1 0 0 1
+pinnumber=26
+T 3500 4600 3 10 1 1 0 0 1
+pinlabel=RE0
+T 4500 4600 5 10 0 0 0 0 1
+pinseq=26
+T 5600 4600 5 10 0 0 0 0 1
+pintype=io
+}
+P 4400 4200 4000 4200 1 0 0
+{
+T 4100 4300 5 10 1 1 0 0 1
+pinnumber=25
+T 3500 4200 3 10 1 1 0 0 1
+pinlabel=RE1
+T 4500 4200 5 10 0 0 0 0 1
+pinseq=25
+T 5600 4200 5 10 0 0 0 0 1
+pintype=io
+}
+P 0 5400 300 5400 1 0 0
+{
+T 100 5500 5 10 1 1 0 0 1
+pinnumber=1
+T 500 5400 3 10 1 1 0 0 1
+pinlabel=MCLR
+T -100 5400 5 10 0 0 0 6 1
+pinseq=1
+T -1200 5400 5 10 0 0 0 6 1
+pintype=in
+}
+P 0 5000 400 5000 1 0 0
+{
+T 100 5100 5 10 1 1 0 0 1
+pinnumber=2
+T 500 5000 3 10 1 1 0 0 1
+pinlabel=RB0
+T -100 5000 5 10 0 0 0 6 1
+pinseq=2
+T -1200 5000 5 10 0 0 0 6 1
+pintype=io
+}
+P 0 4600 400 4600 1 0 0
+{
+T 100 4700 5 10 1 1 0 0 1
+pinnumber=3
+T 500 4600 3 10 1 1 0 0 1
+pinlabel=RB1
+T -100 4600 5 10 0 0 0 6 1
+pinseq=3
+T -1200 4600 5 10 0 0 0 6 1
+pintype=io
+}
+P 0 4200 400 4200 1 0 0
+{
+T 100 4300 5 10 1 1 0 0 1
+pinnumber=4
+T 500 4200 3 10 1 1 0 0 1
+pinlabel=RB2
+T -100 4200 5 10 0 0 0 6 1
+pinseq=4
+T -1200 4200 5 10 0 0 0 6 1
+pintype=io
+}
+P 0 3800 400 3800 1 0 0
+{
+T 100 3900 5 10 1 1 0 0 1
+pinnumber=5
+T 500 3800 3 10 1 1 0 0 1
+pinlabel=RB3
+T -100 3800 5 10 0 0 0 6 1
+pinseq=5
+T -1200 3800 5 10 0 0 0 6 1
+pintype=io
+}
+P 0 3400 400 3400 1 0 0
+{
+T 100 3500 5 10 1 1 0 0 1
+pinnumber=6
+T 500 3400 3 10 1 1 0 0 1
+pinlabel=RB4
+T -100 3400 5 10 0 0 0 6 1
+pinseq=6
+T -1200 3400 5 10 0 0 0 6 1
+pintype=io
+}
+P 0 3000 400 3000 1 0 0
+{
+T 100 3100 5 10 1 1 0 0 1
+pinnumber=7
+T 500 3000 3 10 1 1 0 0 1
+pinlabel=RB5
+T -100 3000 5 10 0 0 0 6 1
+pinseq=7
+T -1200 3000 5 10 0 0 0 6 1
+pintype=io
+}
+P 0 1400 400 1400 1 0 0
+{
+T 100 1500 5 10 1 1 0 0 1
+pinnumber=11
+T 500 1400 3 10 1 1 0 0 1
+pinlabel=RC13
+T -100 1400 5 10 0 0 0 6 1
+pinseq=11
+T -1200 1400 5 10 0 0 0 6 1
+pintype=io
+}
+P 0 1000 400 1000 1 0 0
+{
+T 100 1100 5 10 1 1 0 0 1
+pinnumber=12
+T 500 1000 3 10 1 1 0 0 1
+pinlabel=RC14
+T -100 1000 5 10 0 0 0 6 1
+pinseq=12
+T -1200 1000 5 10 0 0 0 6 1
+pintype=io
+}
+P 0 600 400 600 1 0 0
+{
+T 100 700 5 10 1 1 0 0 1
+pinnumber=13
+T 500 600 3 10 1 1 0 0 1
+pinlabel=Vdd
+T -100 600 5 10 0 0 0 6 1
+pinseq=13
+T -1200 600 5 10 0 0 0 6 1
+pintype=pwr
+}
--- /dev/null
+v 20041228 1
+B 300 300 1400 1400 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
+T 300 2900 8 10 0 0 0 0 1
+description=High Speed, High Voltage High Side Gate Driver
+T 1700 1750 8 10 1 1 0 6 1
+refdes=U?
+T 300 2700 8 10 0 0 0 0 1
+numslots=0
+T 300 1750 9 8 1 1 0 0 1
+device=LTC4440
+T 300 2500 8 10 0 0 0 0 1
+footprint=MSOP8
+T 300 2300 8 10 0 0 0 0 1
+symversion=0.1
+T 300 2100 8 10 0 0 0 0 1
+author=Walter Fetter Lages <w.fetter@ieee.org> & Diego Caberlon Santini <diegos@ece.ufrgs.br>
+P 1300 2000 1300 1700 1 0 0
+{
+T 1250 1750 5 8 1 1 0 6 1
+pinnumber=3
+T 1300 1600 3 8 1 1 0 4 1
+pinlabel=Vcc
+T 1300 2100 5 8 0 0 270 7 1
+pinseq=3
+T 1300 2900 5 8 0 0 270 7 1
+pintype=pwr
+}
+P 500 300 500 0 1 0 1
+{
+T 450 250 5 8 1 1 0 8 1
+pinnumber=2
+T 500 400 3 8 1 1 0 4 1
+pinlabel=GND
+T 500 -100 3 8 0 0 90 7 1
+pinseq=2
+T 500 -800 5 8 0 0 90 7 1
+pintype=pwr
+}
+P 900 300 900 0 1 0 1
+{
+T 850 250 5 8 1 1 0 8 1
+pinnumber=4
+T 900 400 3 8 1 1 0 4 1
+pinlabel=GND
+T 900 -100 3 8 0 0 90 7 1
+pinseq=4
+T 900 -800 5 8 0 0 90 7 1
+pintype=pwr
+}
+P 1300 300 1300 0 1 0 1
+{
+T 1250 250 5 8 1 1 0 8 1
+pinnumber=5
+T 1300 400 3 8 1 1 0 4 1
+pinlabel=NC
+T 1300 -100 3 8 0 0 90 7 1
+pinseq=5
+T 1300 -800 5 8 0 0 90 7 1
+pintype=pas
+}
+P 0 1000 300 1000 1 0 0
+{
+T 250 1050 5 8 1 1 0 6 1
+pinnumber=1
+T 350 1000 3 8 1 1 0 1 1
+pinlabel=IN
+T -100 1000 5 8 0 0 0 7 1
+pinseq=1
+T -800 1000 5 8 0 0 0 7 1
+pintype=in
+}
+P 2000 1400 1700 1400 1 0 0
+{
+T 1750 1450 5 8 1 1 0 0 1
+pinnumber=6
+T 1650 1400 3 8 1 1 0 7 1
+pinlabel=BOOST
+T 2100 1400 5 8 0 0 0 1 1
+pinseq=6
+T 2900 1400 5 8 0 0 0 1 1
+pintype=pwr
+}
+P 2000 1000 1700 1000 1 0 0
+{
+T 1750 1050 5 8 1 1 0 0 1
+pinnumber=7
+T 1650 1000 3 8 1 1 0 7 1
+pinlabel=TG
+T 2100 1000 5 8 0 0 0 1 1
+pinseq=7
+T 2900 1000 5 8 0 0 0 1 1
+pintype=pas
+}
+P 2000 600 1700 600 1 0 0
+{
+T 1750 650 5 8 1 1 0 0 1
+pinnumber=8
+T 1650 600 3 8 1 1 0 7 1
+pinlabel=TS
+T 2100 600 5 8 0 0 0 1 1
+pinseq=8
+T 2900 600 5 8 0 0 0 1 1
+pintype=pas
+}
--- /dev/null
+v 20041228 1
+B 300 300 1400 1400 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
+T 300 2900 8 10 0 0 0 0 1
+description=High Speed, High Voltage High Side Gate Driver
+T 1700 1750 8 10 1 1 0 6 1
+refdes=U?
+T 300 2700 8 10 0 0 0 0 1
+numslots=0
+T 300 1750 9 8 1 1 0 0 1
+device=LTC4440
+T 300 2500 8 10 0 0 0 0 1
+footprint=SOT26
+T 300 2300 8 10 0 0 0 0 1
+symversion=0.1
+T 300 2100 8 10 0 0 0 0 1
+author=Walter Fetter Lages <w.fetter@ieee.org> & Diego Caberlon Santini <diegos@ece.ufrgs.br>
+P 1300 2000 1300 1700 1 0 0
+{
+T 1250 1750 5 8 1 1 0 6 1
+pinnumber=1
+T 1300 1600 3 8 1 1 0 4 1
+pinlabel=Vcc
+T 1300 2100 5 8 0 0 270 7 1
+pinseq=1
+T 1300 2900 5 8 0 0 270 7 1
+pintype=pwr
+}
+P 1300 300 1300 0 1 0 1
+{
+T 1250 250 5 8 1 1 0 8 1
+pinnumber=2
+T 1300 400 3 8 1 1 0 4 1
+pinlabel=GND
+T 1300 -100 3 8 0 0 90 7 1
+pinseq=2
+T 1300 -800 5 8 0 0 90 7 1
+pintype=pwr
+}
+P 0 1000 300 1000 1 0 0
+{
+T 250 1050 5 8 1 1 0 6 1
+pinnumber=3
+T 350 1000 3 8 1 1 0 1 1
+pinlabel=IN
+T -100 1000 5 8 0 0 0 7 1
+pinseq=3
+T -800 1000 5 8 0 0 0 7 1
+pintype=in
+}
+P 2000 600 1700 600 1 0 0
+{
+T 1750 650 5 8 1 1 0 0 1
+pinnumber=4
+T 1650 600 3 8 1 1 0 7 1
+pinlabel=TS
+T 2100 600 5 8 0 0 0 1 1
+pinseq=4
+T 2900 600 5 8 0 0 0 1 1
+pintype=pas
+}
+P 2000 1000 1700 1000 1 0 0
+{
+T 1750 1050 5 8 1 1 0 0 1
+pinnumber=5
+T 1650 1000 3 8 1 1 0 7 1
+pinlabel=TG
+T 2100 1000 5 8 0 0 0 1 1
+pinseq=5
+T 2900 1000 5 8 0 0 0 1 1
+pintype=pas
+}
+P 2000 1400 1700 1400 1 0 0
+{
+T 1750 1450 5 8 1 1 0 0 1
+pinnumber=6
+T 1650 1400 3 8 1 1 0 7 1
+pinlabel=BOOST
+T 2100 1400 5 8 0 0 0 1 1
+pinseq=6
+T 2900 1400 5 8 0 0 0 1 1
+pintype=pwr
+}
--- /dev/null
+v 20041228 1
+B 300 300 2300 3300 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
+T 300 3650 9 10 1 1 0 0 1
+device=MAX5062
+T 2600 3650 5 10 1 1 0 6 1
+refdes=U?
+T 300 4300 8 10 0 0 0 0 1
+author=Walter Fetter Lages <w.fetter@ieee.org> & Diego Caberlon Santini <diegos@ece.ufrgs.br>
+T 300 4500 8 10 0 0 0 0 1
+footprint=SO8
+T 300 4700 8 10 0 0 0 0 1
+documentation=http://datasheets.maxim-ic.com/en/ds/MAX5062-MAX5064B.pdf
+T 300 4900 8 10 0 0 0 0 1
+numslots=0
+T 300 5100 8 10 0 0 0 0 1
+description=Half Brigde MOSFET Drivers
+P 0 1600 300 1600 1 0 0
+{
+T 250 1650 5 8 1 1 0 6 1
+pinnumber=5
+T -100 1600 5 8 0 0 0 7 1
+pinseq=5
+T 350 1600 3 8 1 1 0 1 1
+pinlabel=IN_H
+T -800 1600 5 8 0 0 0 7 1
+pintype=in
+}
+P 0 1000 300 1000 1 0 0
+{
+T 250 1050 5 8 1 1 0 6 1
+pinnumber=6
+T -100 1000 5 8 0 0 0 7 1
+pinseq=6
+T 350 1000 3 8 1 1 0 1 1
+pinlabel=IN_L
+T -800 1000 5 8 0 0 0 7 1
+pintype=in
+}
+P 1400 3900 1400 3600 1 0 0
+{
+T 1350 3650 5 8 1 1 0 6 1
+pinnumber=1
+T 1400 4000 5 8 0 0 270 7 1
+pinseq=1
+T 1400 3500 3 8 1 1 0 4 1
+pinlabel=VDD
+T 1400 4700 5 8 0 0 270 7 1
+pintype=pwr
+}
+P 1400 300 1400 0 1 0 1
+{
+T 1350 250 5 8 1 1 0 8 1
+pinnumber=7
+T 1400 -100 5 8 0 0 90 7 1
+pinseq=7
+T 1400 400 3 8 1 1 0 4 1
+pinlabel=GND
+T 1400 -800 5 8 0 0 90 7 1
+pintype=pwr
+}
+P 2900 1000 2600 1000 1 0 0
+{
+T 2650 1050 5 8 1 1 0 0 1
+pinnumber=8
+T 3000 1000 5 8 0 0 0 1 1
+pinseq=8
+T 2550 1000 3 8 1 1 0 7 1
+pinlabel=BL
+T 3700 1000 5 8 0 0 0 1 1
+pintype=out
+}
+P 2900 1600 2600 1600 1 0 0
+{
+T 2650 1650 5 8 1 1 0 0 1
+pinnumber=4
+T 3000 1600 5 8 0 0 0 1 1
+pinseq=4
+T 2550 1600 3 8 1 1 0 7 1
+pinlabel=HS
+T 3700 1600 5 8 0 0 0 1 1
+pintype=pas
+}
+P 2900 2200 2600 2200 1 0 0
+{
+T 2650 2250 5 8 1 1 0 0 1
+pinnumber=3
+T 3000 2200 5 8 0 0 0 1 1
+pinseq=3
+T 2550 2200 3 8 1 1 0 7 1
+pinlabel=DH
+T 3700 2200 5 8 0 0 0 1 1
+pintype=out
+}
+P 2900 3300 2600 3300 1 0 0
+{
+T 2650 3350 5 8 1 1 0 0 1
+pinnumber=2
+T 3000 3300 5 8 0 0 0 1 1
+pinseq=2
+T 2550 3300 3 8 1 1 0 7 1
+pinlabel=BST
+T 3700 3300 5 8 0 0 0 1 1
+pintype=pwr
+}
--- /dev/null
+v 20041228 1
+C 1000 73500 0 0 0 title-A2.sym
+C 9900 82300 1 0 0 dsPIC30F4012-P-1.sym
+{
+T 13700 88400 5 10 1 1 0 0 1
+refdes=U?
+T 10400 88400 5 10 1 1 0 0 1
+device=dsPIC30F4012
+T 10200 89500 5 10 0 0 0 0 1
+symversion=0.1
+}
+N 14300 87300 14600 87300 4
+N 14600 87300 14600 81800 4
+N 14300 84100 14600 84100 4
+C 14500 81500 1 0 0 gnd-1.sym
+N 9600 84300 9600 84900 4
+N 9600 84900 9900 84900 4
+C 9500 84000 1 0 0 gnd-1.sym
+N 9100 82900 9900 82900 4
+N 14300 87700 14400 87700 4
+N 14300 84500 14900 84500 4
+C 4700 75300 1 0 0 lm7805-1.sym
+{
+T 6100 76300 5 10 1 1 0 6 1
+refdes=U?
+}
+C 5400 74600 1 0 0 gnd-1.sym
+N 5500 75300 5500 74900 4
+N 4700 75900 2600 75900 4
+C 2600 75700 1 90 0 generic-power.sym
+{
+T 2100 75950 5 10 0 1 180 3 1
+net=Vdd:1
+T 1900 75900 5 10 1 1 0 0 1
+value=Vdd
+}
+C 3000 75800 1 270 0 capacitor-3.sym
+{
+T 2700 75500 5 10 1 1 0 0 1
+refdes=C?
+T 2500 75200 5 10 1 1 0 0 1
+value=47uF
+}
+C 4400 74900 1 90 0 capacitor-1.sym
+{
+T 4700 75600 5 10 1 1 180 0 1
+refdes=C?
+T 4400 75100 5 10 1 1 0 0 1
+value=0.1uF
+}
+C 9600 76000 1 180 0 resistor-1.sym
+{
+T 9100 76100 5 10 1 1 0 0 1
+refdes=R?
+T 9100 75600 5 10 1 1 0 0 1
+value=1k
+}
+C 9900 74900 1 270 1 led-3.sym
+{
+T 10450 75650 5 10 1 1 180 6 1
+refdes=D?
+T 10600 75200 5 10 1 1 0 0 1
+value=GREEN
+}
+N 3200 75800 3200 75900 4
+N 4200 75800 4200 75900 4
+C 4100 74600 1 0 0 gnd-1.sym
+C 3100 74600 1 0 0 gnd-1.sym
+N 8700 75900 6300 75900 4
+N 6900 75800 6900 75900 4
+N 7900 75800 7900 75900 4
+C 6700 75800 1 270 0 capacitor-3.sym
+{
+T 6400 75500 5 10 1 1 0 0 1
+refdes=C?
+T 6200 75200 5 10 1 1 0 0 1
+value=47uF
+}
+C 8100 74900 1 90 0 capacitor-1.sym
+{
+T 8400 75600 5 10 1 1 180 0 1
+refdes=C?
+T 8100 75100 5 10 1 1 0 0 1
+value=0.1uF
+}
+C 7800 74600 1 0 0 gnd-1.sym
+C 6800 74600 1 0 0 gnd-1.sym
+C 10000 74600 1 0 0 gnd-1.sym
+N 9600 75900 10100 75900 4
+N 10100 75900 10100 75800 4
+N 7900 76400 7900 75900 4
+C 4800 87700 1 0 0 switch-pushbutton-no-1.sym
+{
+T 5200 88100 5 10 1 1 0 0 1
+refdes=S?
+T 5000 87500 5 10 1 1 0 0 1
+value=RESET
+}
+C 4600 86500 1 0 0 gnd-1.sym
+C 6800 87600 1 0 0 resistor-1.sym
+{
+T 7200 87900 5 10 1 1 0 0 1
+refdes=R?
+T 7200 87400 5 10 1 1 0 0 1
+value=2k
+}
+C 4900 86800 1 0 0 capacitor-1.sym
+{
+T 5000 86700 5 10 1 1 0 0 1
+refdes=C?
+T 5500 86700 5 10 1 1 0 0 1
+value=0.1uF
+}
+C 6400 88100 1 90 0 resistor-1.sym
+{
+T 6800 88900 5 10 1 1 180 0 1
+refdes=R?
+T 6600 88500 5 10 1 1 0 0 1
+value=10k
+}
+N 6300 89300 6300 89000 4
+N 6300 88100 6300 87700 4
+N 5800 87700 6800 87700 4
+N 6300 87700 6300 87000 4
+N 6300 87000 5800 87000 4
+N 4900 87000 4700 87000 4
+N 4700 87700 4800 87700 4
+N 4700 86800 4700 87700 4
+C 5400 84200 1 0 0 osc-2.sym
+{
+T 5900 84900 5 10 1 1 0 0 1
+device=OSC
+T 5400 84900 5 10 1 1 0 0 1
+refdes=U?
+T 5500 84000 5 10 1 1 0 0 1
+value=7.5MHz
+}
+N 6600 84500 9900 84500 4
+{
+T 6700 84600 5 10 1 1 0 0 1
+netname=CLOCK
+}
+N 7700 87700 9900 87700 4
+C 7700 86000 1 0 0 input-2.sym
+{
+T 8200 86100 5 10 1 1 0 7 1
+value=REFPOS
+T 7700 86000 5 10 0 1 0 0 1
+net=REFPOS:1
+}
+N 9100 86100 9900 86100 4
+C 6100 89300 1 0 0 generic-power.sym
+{
+T 6300 89750 5 10 0 1 180 3 1
+net=+5V:1
+T 6100 89600 5 10 1 1 0 0 1
+value=+5V
+}
+C 7700 76400 1 0 0 generic-power.sym
+{
+T 7900 76850 5 10 0 1 180 3 1
+net=+5V:1
+T 7700 76700 5 10 1 1 0 0 1
+value=+5V
+}
+C 14400 87900 1 270 0 generic-power.sym
+{
+T 14850 87700 5 10 0 1 90 3 1
+net=+5V:1
+T 14700 87700 5 10 1 1 0 0 1
+value=+5V
+}
+C 14900 84700 1 270 0 generic-power.sym
+{
+T 15350 84500 5 10 0 1 90 3 1
+net=+5V:1
+T 15200 84500 5 10 1 1 0 0 1
+value=+5V
+}
+C 9100 82700 1 90 0 generic-power.sym
+{
+T 8650 82900 5 10 0 1 270 3 1
+net=+5V:1
+T 8800 83000 5 10 1 1 180 0 1
+value=+5V
+}
+C 1000 85200 1 0 0 input-2.sym
+{
+T 1500 85300 5 10 1 1 0 7 1
+value=CHB
+T 1000 85200 5 10 0 1 0 0 1
+net=CHB:1
+}
+C 1000 85600 1 0 0 input-2.sym
+{
+T 1500 85700 5 10 1 1 0 7 1
+value=CHA
+T 1000 85600 5 10 0 1 0 0 1
+net=CHA:1
+}
+N 2400 85700 9900 85700 4
+N 2400 85300 9900 85300 4
+C 3400 85900 1 90 0 resistor-1.sym
+{
+T 3700 86700 5 10 1 1 180 0 1
+refdes=R?
+T 3500 86200 5 10 1 1 0 0 1
+value=2k7
+}
+C 2800 85900 1 90 0 resistor-1.sym
+{
+T 2600 86700 5 10 1 1 180 0 1
+refdes=R?
+T 2200 86200 5 10 1 1 0 0 1
+value=2k7
+}
+C 2800 86800 1 0 0 generic-power.sym
+{
+T 3000 87250 5 10 0 1 180 3 1
+net=+5V:1
+T 2800 87100 5 10 1 1 0 0 1
+value=+5V
+}
+N 3300 85900 3300 85300 4
+N 2700 85900 2700 85700 4
+N 2700 86800 3300 86800 4
+T 17900 73600 9 10 1 0 0 0 1
+1
+T 19300 73600 9 10 1 0 0 0 1
+3
+T 19100 74700 9 10 1 0 0 0 1
+Universidade Federal do Rio Grande do Sul
+T 19300 74500 9 10 1 0 0 0 1
+Departamento de Engenharia Eletrica
+C 15000 86800 1 0 0 output-1.sym
+{
+T 15900 86800 5 10 1 1 0 0 1
+value=DRVA
+T 15000 86800 5 10 0 1 0 0 1
+net=DRVA:1
+}
+C 15000 86400 1 0 0 output-1.sym
+{
+T 15000 86400 5 10 0 1 0 0 1
+net=DRVB:1
+T 15900 86400 5 10 1 1 0 0 1
+value=DRVB
+}
+N 14300 86900 15000 86900 4
+N 14300 86500 15000 86500 4
+C 9100 86600 1 180 0 output-1.sym
+{
+T 8200 86600 5 10 1 1 180 0 1
+value=BRAKE
+T 9100 86600 5 10 0 1 180 0 1
+net=BRAKE:1
+}
+N 9100 86500 9900 86500 4
+C 18900 84000 1 90 0 resistor-1.sym
+{
+T 19300 84700 5 10 1 1 180 0 1
+refdes=R?
+T 19000 84300 5 10 1 1 0 0 1
+value=2k2
+}
+C 18600 84900 1 0 0 generic-power.sym
+{
+T 18400 85200 5 10 0 1 0 0 1
+net=VCAN:1
+T 18500 85200 5 10 1 1 0 0 1
+value=VCAN
+}
+N 16500 81700 16200 81700 4
+N 16200 81700 16200 81600 4
+C 16100 81300 1 0 0 gnd-1.sym
+C 18500 82500 1 0 0 generic-power.sym
+{
+T 18300 82800 5 10 0 1 0 0 1
+net=VCAN:1
+T 18400 82800 5 10 1 1 0 0 1
+value=VCAN
+}
+N 20200 82400 20200 82300 4
+N 21600 83200 22700 83200 4
+C 19600 82400 1 0 0 PCA82C250-1.sym
+{
+T 20800 82500 5 10 1 1 0 0 1
+device=PCA82C250
+T 20000 84400 5 10 1 1 0 0 1
+refdes=U?
+}
+N 20500 82100 20500 82400 4
+C 20700 82100 1 180 0 generic-power.sym
+{
+T 20000 81700 5 10 0 1 0 0 1
+net=GNDCAN:1
+T 20000 81700 5 10 1 1 0 0 1
+value=GNDCAN
+}
+C 19000 83700 1 180 0 generic-power.sym
+{
+T 18300 83200 5 10 0 1 0 0 1
+net=GNDCAN:1
+T 18300 83300 5 10 1 1 0 0 1
+value=GNDCAN
+}
+N 18500 83700 18800 83700 4
+N 16500 82000 15600 82000 4
+N 16500 84400 16500 84300 4
+C 15600 83900 1 0 0 resistor-1.sym
+{
+T 15800 84200 5 10 1 1 0 0 1
+refdes=R?
+T 15800 83700 5 10 1 1 0 0 1
+value=390
+}
+N 18500 84000 19600 84000 4
+N 18500 84600 18500 84900 4
+N 18500 84900 20600 84900 4
+N 20600 84900 20600 84600 4
+C 18500 81900 1 0 0 resistor-1.sym
+{
+T 18900 82200 5 10 1 1 0 0 1
+refdes=R?
+T 18800 81700 5 10 1 1 0 0 1
+value=390
+}
+N 18500 82300 18700 82300 4
+N 18700 82300 18700 82500 4
+N 19400 82000 19400 83700 4
+N 19400 83700 19600 83700 4
+C 15600 82500 1 0 0 resistor-1.sym
+{
+T 15800 82800 5 10 1 1 0 0 1
+refdes=R?
+T 15800 82300 5 10 1 1 0 0 1
+value=2k2
+}
+N 16500 82700 16500 82600 4
+C 16500 83400 1 0 0 6n137-1.sym
+{
+T 16800 85000 5 10 1 1 0 0 1
+device=6N137
+T 17800 85000 5 10 1 1 0 0 1
+refdes=U?
+}
+C 18500 81400 1 0 1 6n137-1.sym
+{
+T 18200 83000 5 10 1 1 0 6 1
+device=6N137
+T 17200 83000 5 10 1 1 0 6 1
+refdes=U?
+}
+N 20200 82300 20500 82300 4
+N 21600 83800 22700 83800 4
+C 22700 83700 1 0 0 io-1.sym
+{
+T 23600 83800 5 10 1 1 0 1 1
+value=CANH
+T 22700 83700 5 10 0 1 0 0 1
+net=CANH:1
+}
+C 22700 83100 1 0 0 io-1.sym
+{
+T 23600 83200 5 10 1 1 0 1 1
+value=CANL
+T 22700 83100 5 10 0 1 0 0 1
+net=CANL:1
+}
+C 16300 84400 1 0 0 generic-power.sym
+{
+T 16500 84850 5 10 0 1 180 3 1
+net=+5V:1
+T 16300 84700 5 10 1 1 0 0 1
+value=+5V
+}
+C 16300 82700 1 0 0 generic-power.sym
+{
+T 16500 83150 5 10 0 1 180 3 1
+net=+5V:1
+T 16300 83000 5 10 1 1 0 0 1
+value=+5V
+}
+C 3400 78800 1 0 0 max232-1.sym
+{
+T 5700 81700 5 10 1 1 0 6 1
+refdes=U?
+}
+C 2900 78800 1 90 0 capacitor-1.sym
+{
+T 2500 79600 5 10 1 1 180 0 1
+refdes=C?
+T 2200 79200 5 10 1 1 0 0 1
+value=1uF
+}
+C 1900 80000 1 90 0 capacitor-1.sym
+{
+T 1500 80800 5 10 1 1 180 0 1
+refdes=C?
+T 1200 80400 5 10 1 1 0 0 1
+value=1uF
+}
+C 3400 81700 1 90 0 capacitor-1.sym
+{
+T 3700 82500 5 10 1 1 180 0 1
+refdes=C?
+T 3500 82100 5 10 1 1 0 0 1
+value=1uF
+}
+C 2500 81100 1 90 0 capacitor-1.sym
+{
+T 2100 81900 5 10 1 1 180 0 1
+refdes=C?
+T 1800 81500 5 10 1 1 0 0 1
+value=1uF
+}
+N 2300 82000 2800 82000 4
+N 2800 82000 2800 81200 4
+N 2800 81200 3400 81200 4
+N 2300 81100 2700 81100 4
+N 2700 81100 2700 80600 4
+N 2700 80600 3400 80600 4
+N 1700 80900 2300 80900 4
+N 2300 80900 2300 80300 4
+N 2300 80300 3400 80300 4
+N 1700 80000 3400 80000 4
+N 3200 81700 3200 80900 4
+N 3200 80900 3400 80900 4
+N 2700 79700 3400 79700 4
+C 2600 78500 1 0 0 gnd-1.sym
+C 9400 78900 1 0 1 DB9-1.sym
+{
+T 9500 81900 5 10 1 1 0 6 1
+refdes=J?
+T 8500 82200 5 10 1 1 0 0 1
+value=FEMALE
+}
+N 8200 81000 6900 81000 4
+N 6900 81000 6900 80600 4
+N 6900 80600 6000 80600 4
+N 8200 80400 6900 80400 4
+N 6900 80400 6900 80300 4
+N 6900 80300 6000 80300 4
+N 8200 79200 7700 79200 4
+N 7700 79200 7700 78800 4
+C 7600 77600 1 0 0 gnd-1.sym
+C 7800 77900 1 90 0 resistor-1.sym
+{
+T 8200 78600 5 10 1 1 180 0 1
+refdes=R?
+T 7900 78200 5 10 1 1 0 0 1
+value=10
+}
+N 8200 79800 7700 79800 4
+N 7700 79800 7700 81300 4
+N 7700 81300 8200 81300 4
+C 3000 82600 1 0 0 generic-power.sym
+{
+T 3200 83050 5 10 0 1 180 3 1
+net=+5V:1
+T 3000 82900 5 10 1 1 0 0 1
+value=+5V
+}
+N 14300 83300 14800 83300 4
+N 14800 83300 14800 84000 4
+N 14800 84000 15600 84000 4
+N 14300 83700 15600 83700 4
+N 15600 82000 15600 83700 4
+N 9900 83700 6500 83700 4
+N 6500 83700 6500 79700 4
+N 6500 79700 6000 79700 4
+N 9900 83300 6700 83300 4
+N 6700 83300 6700 80000 4
+N 6700 80000 6000 80000 4
--- /dev/null
+v 20041228 1
+C 4400 76800 1 0 0 resistor-1.sym
+{
+T 4900 77100 5 10 1 1 0 0 1
+refdes=R?
+T 4900 76600 5 10 1 1 0 0 1
+value=?
+}
+C 4500 75800 1 90 0 resistor-1.sym
+{
+T 4200 76200 5 10 1 1 180 0 1
+refdes=R?
+T 4600 76100 5 10 1 1 0 0 1
+value=?
+}
+N 4400 76700 4400 76900 4
+C 4300 75500 1 0 0 gnd-1.sym
+N 4300 76900 4400 76900 4
+C 4300 76800 1 0 1 output-2.sym
+{
+T 3400 76900 5 10 1 1 0 7 1
+value=REFPOS
+T 4300 76800 5 10 0 1 0 0 1
+net=REFPOS:1
+}
+C 6700 76800 1 0 1 input-2.sym
+{
+T 6200 76900 5 10 1 1 0 1 1
+value=INDEX
+T 6700 76800 5 10 0 1 0 0 1
+net=INDEX:1
+}
+C 1000 73600 1 0 0 title-A2.sym
+N 4900 81500 4900 81300 4
+N 4900 81300 5200 81300 4
+N 5200 81500 5200 81300 4
+C 5100 81000 1 0 0 gnd-1.sym
+N 5200 83700 5200 83800 4
+N 5200 83800 4900 83800 4
+N 4900 83700 4900 85100 4
+C 6600 85100 1 270 0 capacitor-2.sym
+{
+T 7100 84700 5 10 1 1 0 0 1
+refdes=C?
+T 7000 84400 5 10 1 1 0 0 1
+value=4.7uFx16V
+}
+N 4900 85100 6800 85100 4
+C 5600 83900 1 0 0 gnd-1.sym
+C 6700 83900 1 0 0 gnd-1.sym
+N 6500 82900 6500 82300 4
+N 6500 82300 6300 82300 4
+C 7000 81700 1 0 0 gnd-1.sym
+N 6300 82900 8400 82900 4
+C 8800 82400 1 0 0 gnd-1.sym
+C 4300 81500 1 0 0 max4429-1.sym
+{
+T 5500 81600 5 10 1 1 0 0 1
+device=MAX4429
+T 5600 83500 5 10 1 1 0 0 1
+refdes=U?
+}
+C 5900 84200 1 90 0 capacitor-1.sym
+{
+T 6000 84700 5 10 1 1 0 0 1
+refdes=C?
+T 5900 84400 5 10 1 1 0 0 1
+value=220nF
+}
+C 7300 82000 1 90 0 capacitor-1.sym
+{
+T 7400 82500 5 10 1 1 0 0 1
+refdes=C?
+T 7300 82200 5 10 1 1 0 0 1
+value=2.2nF
+}
+C 1600 82500 1 0 0 input-2.sym
+{
+T 2100 82600 5 10 1 1 0 7 1
+value=DRVB
+T 1600 82500 5 10 0 1 0 0 1
+net=DRVB:1
+}
+C 11100 86400 1 0 0 output-2.sym
+{
+T 12000 86500 5 10 1 1 0 1 1
+value=MOTOR+
+T 11100 86400 5 10 0 1 0 0 1
+net=MOTOR+:1
+}
+C 8400 82700 1 0 0 IRLZ24N-1.sym
+{
+T 9100 82900 5 10 1 1 0 0 1
+device=IRF1010N
+T 9000 83300 5 10 1 1 0 0 1
+refdes=Q?
+}
+C 4700 85100 1 0 0 generic-power.sym
+{
+T 4900 85550 5 10 0 1 180 3 1
+net=+5V:1
+T 4700 85400 5 10 1 1 0 0 1
+value=+5V
+}
+N 8900 86500 11100 86500 4
+N 8900 83500 8900 87600 4
+N 11300 74900 11300 74700 4
+N 11300 74700 11600 74700 4
+N 11600 74900 11600 74700 4
+C 11500 74400 1 0 0 gnd-1.sym
+N 11600 77100 11600 77200 4
+N 11600 77200 11300 77200 4
+N 11300 77100 11300 78800 4
+C 13000 78800 1 270 0 capacitor-2.sym
+{
+T 13500 78400 5 10 1 1 0 0 1
+refdes=C?
+T 13400 78100 5 10 1 1 0 0 1
+value=4.7uFx16V
+}
+N 11300 78800 13200 78800 4
+C 12000 77600 1 0 0 gnd-1.sym
+C 13100 77600 1 0 0 gnd-1.sym
+N 12900 76300 12900 75700 4
+N 12900 75700 12700 75700 4
+C 13400 75100 1 0 0 gnd-1.sym
+N 12700 76300 14100 76300 4
+C 14500 75800 1 0 0 gnd-1.sym
+C 10700 74900 1 0 0 max4429-1.sym
+{
+T 11900 75000 5 10 1 1 0 0 1
+device=MAX4429
+T 12000 76900 5 10 1 1 0 0 1
+refdes=U?
+}
+C 12300 77900 1 90 0 capacitor-1.sym
+{
+T 12400 78400 5 10 1 1 0 0 1
+refdes=C?
+T 12300 78100 5 10 1 1 0 0 1
+value=220nF
+}
+C 13700 75400 1 90 0 capacitor-1.sym
+{
+T 13800 75900 5 10 1 1 0 0 1
+refdes=C?
+T 13700 75600 5 10 1 1 0 0 1
+value=2.2nF
+}
+C 9300 75900 1 0 0 input-2.sym
+{
+T 9800 76000 5 10 1 1 0 7 1
+value=BRAKE
+T 9300 75900 5 10 0 1 0 0 1
+net=BRAKE:1
+}
+C 16000 77100 1 0 0 output-2.sym
+{
+T 16900 77200 5 10 1 1 0 1 1
+value=/RELEASE
+T 16000 77100 5 10 0 1 0 0 1
+net=/RELEASE:1
+}
+C 14100 76100 1 0 0 IRLZ24N-1.sym
+{
+T 14800 76300 5 10 1 1 0 0 1
+device=IRLZ24N
+T 14700 76700 5 10 1 1 0 0 1
+refdes=Q?
+}
+C 11100 78800 1 0 0 generic-power.sym
+{
+T 11300 79250 5 10 0 1 180 3 1
+net=+5V:1
+T 11100 79100 5 10 1 1 0 0 1
+value=+5V
+}
+N 14600 77200 16000 77200 4
+C 14800 77600 1 90 0 diode-1.sym
+{
+T 15200 78300 5 10 1 1 180 0 1
+refdes=D?
+T 15000 77900 5 10 1 1 0 0 1
+value=1N4007
+}
+N 14600 76900 14600 77600 4
+C 14400 78800 1 0 0 generic-power.sym
+{
+T 14600 79050 5 10 0 1 0 3 1
+net=+24V:1
+T 14400 79100 5 10 1 1 0 0 1
+value=+24V
+}
+N 14600 78800 14600 78500 4
+T 17900 73700 9 10 1 0 0 0 1
+3
+T 19300 73700 9 10 1 0 0 0 1
+3
+T 19100 74800 9 10 1 0 0 0 1
+Universidade Federal do Rio Grande do Sul
+T 19300 74600 9 10 1 0 0 0 1
+Departamento de Engenharia Eletrica
+C 5400 89100 1 0 0 12V-plus-1.sym
+C 5900 88400 1 0 0 diode-1.sym
+{
+T 6400 88900 5 10 1 1 0 0 1
+refdes=D?
+T 6300 88200 5 10 1 1 0 0 1
+value=1N4148
+}
+C 4300 86000 1 0 0 ltc4440es6-1.sym
+{
+T 6000 87750 5 10 1 1 0 6 1
+refdes=U?
+T 4600 87750 5 8 1 1 0 0 1
+device=LTC4440
+T 4600 88300 5 10 0 0 0 0 1
+symversion=0.1
+}
+N 5600 89100 5600 88000 4
+N 5900 88600 5600 88600 4
+N 6800 88600 7200 88600 4
+N 7200 88600 7200 87400 4
+C 7000 87400 1 270 0 capacitor-3.sym
+{
+T 7500 87100 5 10 1 1 0 0 1
+refdes=C?
+T 7500 86800 5 10 1 1 0 0 1
+value=1uFx25V
+}
+N 6300 87400 7200 87400 4
+N 6300 86500 6300 86600 4
+C 8400 87600 1 0 0 IRLZ24N-1.sym
+{
+T 9100 87800 5 10 1 1 0 0 1
+device=IRF1010N
+T 9000 88200 5 10 1 1 0 0 1
+refdes=Q?
+}
+N 6300 87000 6600 87000 4
+N 6600 87000 6600 87800 4
+N 6600 87800 8400 87800 4
+N 6300 86500 8900 86500 4
+C 5500 85700 1 0 0 gnd-1.sym
+C 8700 89100 1 0 0 generic-power.sym
+{
+T 8900 89350 5 10 0 1 0 3 1
+net=+24V:1
+T 8700 89400 5 10 1 1 0 0 1
+value=+24V
+}
+C 10400 89100 1 270 0 capacitor-3.sym
+{
+T 10900 88800 5 10 1 1 0 0 1
+refdes=C?
+T 10900 88500 5 10 1 1 0 0 1
+value=1000uFx35V
+}
+N 8900 88400 8900 89100 4
+N 8900 89100 10600 89100 4
+C 10500 87900 1 0 0 gnd-1.sym
+C 3700 89100 1 270 0 capacitor-3.sym
+{
+T 4200 88800 5 10 1 1 0 0 1
+refdes=C?
+T 4200 88500 5 10 1 1 0 0 1
+value=10uFx25V
+}
+N 3900 89100 5600 89100 4
+C 3800 87900 1 0 0 gnd-1.sym
+C 1600 86900 1 0 0 input-2.sym
+{
+T 2100 87000 5 10 1 1 0 7 1
+value=DRVA
+T 1600 86900 5 10 0 1 0 0 1
+net=DRVA:1
+}
+N 21500 81500 21500 81300 4
+N 21500 81300 21200 81300 4
+N 21200 81500 21200 81300 4
+C 21300 81000 1 0 1 gnd-1.sym
+N 21200 83700 21200 83800 4
+N 21200 83800 21500 83800 4
+N 21500 83700 21500 85100 4
+C 19800 85100 1 90 1 capacitor-2.sym
+{
+T 19300 84700 5 10 1 1 0 6 1
+refdes=C?
+T 19400 84400 5 10 1 1 0 6 1
+value=4.7uFx16V
+}
+N 21500 85100 19600 85100 4
+C 20800 83900 1 0 1 gnd-1.sym
+C 19700 83900 1 0 1 gnd-1.sym
+N 19900 82900 19900 82300 4
+N 19900 82300 20100 82300 4
+C 19400 81700 1 0 1 gnd-1.sym
+N 20100 82900 18000 82900 4
+C 17600 82400 1 0 1 gnd-1.sym
+C 22100 81500 1 0 1 max4429-1.sym
+{
+T 20900 81600 5 10 1 1 0 6 1
+device=MAX4429
+T 20800 83500 5 10 1 1 0 6 1
+refdes=U?
+}
+C 20500 84200 1 270 1 capacitor-1.sym
+{
+T 20400 84700 5 10 1 1 0 6 1
+refdes=C?
+T 20500 84400 5 10 1 1 0 6 1
+value=220nF
+}
+C 19100 82000 1 270 1 capacitor-1.sym
+{
+T 19000 82500 5 10 1 1 0 6 1
+refdes=C?
+T 19100 82200 5 10 1 1 0 6 1
+value=2.2nF
+}
+C 15300 86400 1 0 1 output-2.sym
+{
+T 14400 86500 5 10 1 1 0 7 1
+value=MOTOR-
+T 15300 86400 5 10 0 1 0 6 1
+net=MOTOR-:1
+}
+C 18000 82700 1 0 1 IRLZ24N-1.sym
+{
+T 17300 82900 5 10 1 1 0 6 1
+device=IRF1010N
+T 17400 83300 5 10 1 1 0 6 1
+refdes=Q?
+}
+C 21700 85100 1 0 1 generic-power.sym
+{
+T 21500 85550 5 10 0 1 180 3 1
+net=+5V:1
+T 21700 85400 5 10 1 1 0 6 1
+value=+5V
+}
+N 17500 86500 15300 86500 4
+N 17500 83500 17500 87600 4
+C 21000 89100 1 0 1 12V-plus-1.sym
+C 20500 88400 1 0 1 diode-1.sym
+{
+T 20000 88900 5 10 1 1 0 6 1
+refdes=D?
+T 20100 88200 5 10 1 1 0 6 1
+value=1N4148
+}
+C 22100 86000 1 0 1 ltc4440es6-1.sym
+{
+T 20400 87750 5 10 1 1 0 0 1
+refdes=U?
+T 21800 87750 5 8 1 1 0 6 1
+device=LTC4440
+T 21800 88300 5 10 0 0 0 6 1
+symversion=0.1
+}
+N 20800 89100 20800 88000 4
+N 20500 88600 20800 88600 4
+N 19600 88600 19200 88600 4
+N 19200 88600 19200 87400 4
+C 19400 87400 1 90 1 capacitor-3.sym
+{
+T 18900 87100 5 10 1 1 0 6 1
+refdes=C?
+T 18900 86800 5 10 1 1 0 6 1
+value=1uFx25V
+}
+N 20100 87400 19200 87400 4
+N 20100 86500 20100 86600 4
+C 18000 87600 1 0 1 IRLZ24N-1.sym
+{
+T 17300 87800 5 10 1 1 0 6 1
+device=IRF1010N
+T 17400 88200 5 10 1 1 0 6 1
+refdes=Q?
+}
+N 20100 87000 19800 87000 4
+N 19800 87000 19800 87800 4
+N 19800 87800 18000 87800 4
+N 20100 86500 17500 86500 4
+C 20900 85700 1 0 1 gnd-1.sym
+C 17700 89100 1 0 1 generic-power.sym
+{
+T 17500 89350 5 10 0 1 0 3 1
+net=+24V:1
+T 17700 89400 5 10 1 1 0 6 1
+value=+24V
+}
+C 16000 89100 1 90 1 capacitor-3.sym
+{
+T 15500 88800 5 10 1 1 0 6 1
+refdes=C?
+T 15500 88500 5 10 1 1 0 6 1
+value=1000uFx35V
+}
+N 17500 88400 17500 89100 4
+N 17500 89100 15800 89100 4
+C 15900 87900 1 0 1 gnd-1.sym
+C 22700 89100 1 90 1 capacitor-3.sym
+{
+T 22200 88800 5 10 1 1 0 6 1
+refdes=C?
+T 22200 88500 5 10 1 1 0 6 1
+value=10uFx25V
+}
+N 22500 89100 20800 89100 4
+C 22600 87900 1 0 1 gnd-1.sym
+N 3000 87000 4300 87000 4
+N 3000 82600 4300 82600 4
+N 4000 87000 4000 80600 4
+N 4000 80600 22500 80600 4
+N 3500 82600 3500 80100 4
+N 22500 80600 22500 82600 4
+N 22500 82600 22100 82600 4
+N 3500 80100 23000 80100 4
+N 23000 80100 23000 87000 4
+N 23000 87000 22100 87000 4
--- /dev/null
+schematics aicpic.sch aicpower.sch
+output-name aic
\ No newline at end of file
--- /dev/null
+all: dspicaictest.hex
+
+dspicaictest.o:dspicaictest.c
+ $(CC) $(CPU) -x c -c $^ $(CCINCDIR) $(CCFLAGS)
+
+
+dspicaictest:dspicaictest.o
+# pic30-elf-gcc $^ -L/usr/pic30-elf/ -Wl --script=$(PWD)/p30f4012.gld -o $@
+# pic30-elf-ld -o $@ --script=$(PWD)/p30f4012.gld -L/usr/pic30-elf/ -lpic30-elf -lc-elf $^
+ $(CC) $(CPU) $^ -o $@ $(CCLIBDIR) -Wl $(CCGLDFILE)
+
+dspicaictest.hex:dspicaictest
+ $(CCBIN2HEX) $^
+clean:
+ rm -f *.o dspicaictest *~
+
+distclean:clean
+ rm -f dspicaictest.hex
\ No newline at end of file
--- /dev/null
+/******************************************************************************\r
+\r
+ Actuator Interface Card\r
+ dsPIC30F4012 test on AIC-2.0.0\r
+ Copyright (C) 2008 Diego Caberlon Santini <diegos@ece.ufrgs.br>\r
+\r
+ This program is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ This program is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with this program; if not, write to the Free Software\r
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
+\r
+ You can also obtain a copy of the GNU General Public License\r
+ at <http://www.gnu.org/licenses>.\r
+\r
+*******************************************************************************\r
+2008.06.12 -> Start dsPIC test to AIC-2.0.0 by Diego Caberlon Santini\r
+*/\r
+\r
+#include <p30f4012.h>\r
+\r
+\r
+/*---------------------------------------------------------------------------*/\r
+_FOSC(EC_PLL16 & CSW_FSCM_OFF);\r
+_FWDT(WDT_OFF);\r
+_FBORPOR(MCLR_EN & RST_IOPIN & PBOR_OFF & PWRT_64);\r
+/*---------------------------------------------------------------------------*/\r
+\r
+/** Wait some time (120ms)\r
+ */\r
+void delay(void)\r
+{\r
+ volatile int x = 0;\r
+ volatile int y = 0;\r
+ for( y=5; y>0; y--){ \r
+ for( x=30002; x>0; x-- ){\r
+ }\r
+ }\r
+}\r
+/*---------------------------------------------------------------------------*/\r
+\r
+/** Blink port RE0\r
+ */\r
+void blinkLed(void)\r
+{\r
+ delay();\r
+ PORTE = PORTE^0x01;\r
+}\r
+/*---------------------------------------------------------------------------*/\r
+\r
+int main(int argc,char *argv[])\r
+{\r
+ TRISE=0x00;\r
+ for(;;)\r
+ blinkLed();\r
+ return 0;\r
+}\r
+/*---------------------------------------------------------------------------*/\r
+\r
+\r
--- /dev/null
+all: dspictest.hex
+
+dspictest.o:dspictest.c
+ $(CC) $(CPU) -x c -c $^ $(CCINCDIR) $(CCFLAGS)
+
+
+dspictest:dspictest.o
+# pic30-elf-gcc $^ -L/usr/pic30-elf/ -Wl --script=$(PWD)/p30f4012.gld -o $@
+# pic30-elf-ld -o $@ --script=$(PWD)/p30f4012.gld -L/usr/pic30-elf/ -lpic30-elf -lc-elf $^
+ $(CC) $(CPU) $^ -o $@ $(CCLIBDIR) -Wl $(CCGLDFILE)
+
+dspictest.hex:dspictest
+ $(CCBIN2HEX) $^
+clean:
+ rm -f *.o dspictest *~
+
+distclean:clean
+ rm -f dspictest.hex
\ No newline at end of file
-/******************************************************************************
-
- Actuator Interface Card
- AIC Encoder Test
- Copyright (C) 2003 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <iostream>
-using namespace std;
-#include <string.h>
-
-#include <aicudp.h>
-#include <aiccan.h>
-
-
-int main(int argc,char *argv[])
-{
- cout << "\nAIC Encoder Test Program\n";
- cout << "Copyright (C) 2003 Walter Fetter Lages <w.fetter@ieee.org>.\n\n";
-
- if((argc < 2) || (argc > 4) ||
- ((argc >= 3) && strcasecmp(argv[1],"-UDP")))
- {
- cout << "USAGE:\t" << argv[0] << " can_id\n";
- cout << "\tor\n\t" << argv[0] << " -UDP aic [status_port]\n";
- return -1;
- }
-
- AIC *aic;
- switch(argc)
- {
- default:
- case 2: aic=new AIC_CAN(atoi(argv[1])); break;
- case 3: aic=new AIC_UDP(argv[2]); break;
- case 4: aic=new AIC_UDP(argv[2],atoi(argv[3])); break;
- }
-
- for(;;)
- {
- cout << "Encoder reading: " << aic->encoder.read() << "rad\n";
- }
- delete aic;
-
- return 0;
-}
+/******************************************************************************\r
+\r
+ Actuator Interface Card\r
+ dsPIC30F4012 testM
+ Copyright (C) 2008 Diego Caberlon Santini <diegos@ece.ufrgs.br>M
+\r
+ This program is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ This program is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with this program; if not, write to the Free Software\r
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
+\r
+ You can also obtain a copy of the GNU General Public License\r
+ at <http://www.gnu.org/licenses>.\r
+\r
+*******************************************************************************\r
+2008.06.10 -> Start dsPIC test by Diego Caberlon Santini\r
+*/\r
+\r
+#include <p30f4012.h>\r
+\r
+\r
+/*---------------------------------------------------------------------------*/\r
+_FOSC(FRC & CSW_FSCM_OFF); //Config OSC to internal RC osc 7.37MHz\r
+_FWDT(WDT_OFF);\r
+_FBORPOR(MCLR_EN & RST_IOPIN & PBOR_OFF & PWRT_64);\r
+/*---------------------------------------------------------------------------*/\r
+\r
+/** Wait some time (120ms)\r
+ */\r
+void delay(void)\r
+{\r
+ volatile int x = 0;\r
+ for( x=30002; x>0; x-- ){\r
+ }\r
+}\r
+/*---------------------------------------------------------------------------*/\r
+\r
+/** Blink port RE0\r
+ */\r
+void blinkLed(void)\r
+{\r
+ delay();\r
+ PORTE = PORTE^0x01;\r
+}\r
+/*---------------------------------------------------------------------------*/\r
+\r
+int main(int argc,char *argv[])\r
+{\r
+ TRISE=0x00;\r
+ for(;;)\r
+ blinkLed();\r
+ return 0;\r
+}\r
+/*---------------------------------------------------------------------------*/\r
+\r
+\r
+++ /dev/null
-all: encodertst
-
-encodertst: encodertst.cpp ../lib/libaic.a
- ${CXX} ${CMPFLAGS} -o encodertst encodertst.cpp ${LDFLAGS}
-
-clean:
- rm -f *~ *.bak *.o
-
-install:
-
-distclean: clean
- rm -f encodertst
--- /dev/null
+/*\r
+ FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.\r
+\r
+ This file is part of the FreeRTOS.org distribution.\r
+\r
+ FreeRTOS.org is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ FreeRTOS.org is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with FreeRTOS.org; if not, write to the Free Software\r
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+\r
+ A special exception to the GPL can be applied should you wish to distribute\r
+ a combined work that includes FreeRTOS.org, without being obliged to provide\r
+ the source code for any proprietary components. See the licensing section \r
+ of http://www.FreeRTOS.org for full details of how and when the exception\r
+ can be applied.\r
+\r
+ ***************************************************************************\r
+\r
+ Please ensure to read the configuration and relevant port sections of the \r
+ online documentation.\r
+\r
+ +++ http://www.FreeRTOS.org +++\r
+ Documentation, latest information, license and contact details. \r
+\r
+ +++ http://www.SafeRTOS.com +++\r
+ A version that is certified for use in safety critical systems.\r
+\r
+ +++ http://www.OpenRTOS.com +++\r
+ Commercial support, development, porting, licensing and training services.\r
+\r
+ ***************************************************************************\r
+ configured for AIC-2.0.0 by Diego Caberlon Santini - 12/06/2008\r
+ ***************************************************************************\r
+*/\r
+\r
+#ifndef FREERTOS_CONFIG_H\r
+#define FREERTOS_CONFIG_H\r
+\r
+#include <p30f4012.h>\r
+\r
+/*-----------------------------------------------------------\r
+ * Application specific definitions.\r
+ *\r
+ * These definitions should be adjusted for your particular hardware and\r
+ * application requirements.\r
+ *\r
+ * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE\r
+ * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. \r
+ *----------------------------------------------------------*/\r
+\r
+#define configUSE_PREEMPTION 1\r
+#define configUSE_IDLE_HOOK 0\r
+#define configUSE_TICK_HOOK 0\r
+#define configTICK_RATE_HZ ( ( portTickType ) 1000 ) /*1 ms*/\r
+#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 24000000 ) /* Fosc / 4 = 24MHz*/\r
+#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 4 )\r
+#define configMINIMAL_STACK_SIZE ( 105 )\r
+#define configTOTAL_HEAP_SIZE ( ( size_t ) 5120/4 )\r
+#define configMAX_TASK_NAME_LEN ( 4 )\r
+#define configUSE_TRACE_FACILITY 0\r
+#define configUSE_16_BIT_TICKS 0 /*32 bits tick count*/\r
+#define configIDLE_SHOULD_YIELD 0\r
+#define configUSE_USE_MUTEXES 0\r
+#define configUSE_RECURSIVE_MUTEXES 0\r
+#define configUSE_COUNTING_SEMAPHORES 0\r
+#define configUSE_ALTERNATIVE_API 0\r
+#define configCHECK_FOR_STACK_OVERFLOW 0\r
+\r
+/* Co-routine definitions. */\r
+#define configUSE_CO_ROUTINES 0\r
+#define configMAX_CO_ROUTINE_PRIORITIES (0 )\r
+\r
+/* Set the following definitions to 1 to include the API function, or zero\r
+to exclude the API function. */\r
+\r
+#define INCLUDE_vTaskPrioritySet 0\r
+#define INCLUDE_uxTaskPriorityGet 0\r
+#define INCLUDE_vTaskDelete 0\r
+#define INCLUDE_vTaskCleanUpResources 0\r
+#define INCLUDE_vTaskSuspend 0\r
+#define INCLUDE_vTaskDelayUntil 1\r
+#define INCLUDE_vTaskDelay 0\r
+\r
+\r
+#define configKERNEL_INTERRUPT_PRIORITY 0x01\r
+\r
+#endif /* FREERTOS_CONFIG_H */\r
--- /dev/null
+CCINCDIR+=-I.
+
+all: freertosAICtest.hex
+
+freertosAICtest.hex:freertosAICtest
+ $(CCBIN2HEX) $^
+
+freertosAICtest:freertosAICtest.o $(OSOBJS)
+ $(CC) $(CPU) $^ -o $@ $(CCLIBDIR) -Wl $(CCGLDFILE)
+
+freertosAICtest.o:freertosAICtest.c
+ $(CC) $(CPU) -x c -c $^ $(CCINCDIR) $(OSINCDIR) $(CCFLAGS) $(OSFLAGS)
+
+$(OSOBJS):$(OSFILES)
+ for i in $(OSFILES); do $(CC) $(CPU) -x c -c $$i $(CCINCDIR) $(OSINCDIR) $(CCFLAGS) $(OSFLAGS) ; done
+
+clean:
+ rm -f *.o freertosAICtest *~
+
+distclean:clean
+ rm -f freertosAICtest.hex
\ No newline at end of file
--- /dev/null
+/******************************************************************************\r
+\r
+ Actuator Interface Card\r
+ FreeRTOS test on AIC-2.0.0\r
+ Copyright (C) 2008 Diego Caberlon Santini <diegos@ece.ufrgs.br>\r
+\r
+ This program is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ This program is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with this program; if not, write to the Free Software\r
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
+\r
+ You can also obtain a copy of the GNU General Public License\r
+ at <http://www.gnu.org/licenses>.\r
+\r
+*******************************************************************************\r
+2008.06.12 -> Start FreeRTOS test to AIC-2.0.0 by Diego Caberlon Santini from Demos apps.\r
+*******************************************************************************\r
+*/\r
+#include <p30f4012.h>\r
+\r
+/* Scheduler includes. */\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+#include "queue.h"\r
+#include "croutine.h"\r
+/*---------------------------------------------------------------------------*/\r
+\r
+#define mainLED_TAKS_STACK_SIZE ( configMINIMAL_STACK_SIZE)\r
+\r
+#define mainLED_TASK_PRIORITY1 ( tskIDLE_PRIORITY + 3 )\r
+\r
+/* The execution period of the check task. */\r
+#define mainLED_TASK_PERIOD1 ( ( portTickType ) 1000 / portTICK_RATE_MS )\r
+\r
+#define mainLED_TASK_PRIORITY2 ( tskIDLE_PRIORITY + 2 )\r
+\r
+/* The execution period of the check task. */\r
+#define mainLED_TASK_PERIOD2 ( ( portTickType ) 2000 / portTICK_RATE_MS )\r
+/*---------------------------------------------------------------------------*/\r
+\r
+_FOSC(EC_PLL16 & CSW_FSCM_OFF);\r
+_FWDT(WDT_OFF);\r
+_FBORPOR(MCLR_EN & RST_IOPIN & PBOR_OFF & PWRT_64);\r
+/*---------------------------------------------------------------------------*/\r
+\r
+/** Blink port RE0 mainLED_TASK_PERIOD1 (1s)\r
+ */\r
+static void vLEDTask1( void *pvParameters );\r
+\r
+/** Blink port RE0 mainLED_TASK_PERIOD2 (2s)\r
+ */\r
+static void vLEDTask2( void *pvParameters );\r
+\r
+/*---------------------------------------------------------------------------*/\r
+\r
+/*\r
+ * Create the demo tasks then start the scheduler.\r
+ */\r
+int main( void )\r
+{\r
+\r
+ TRISE=0x00;\r
+ \r
+ /* Create the test tasks defined within this file. */\r
+ xTaskCreate( vLEDTask1, ( signed portCHAR * ) "LED1", mainLED_TAKS_STACK_SIZE, NULL, mainLED_TASK_PRIORITY1, NULL );\r
+ \r
+ xTaskCreate( vLEDTask2, ( signed portCHAR * ) "LED2", mainLED_TAKS_STACK_SIZE, NULL, mainLED_TASK_PRIORITY2, NULL );\r
+\r
+ /* Finally start the scheduler. */\r
+ vTaskStartScheduler();\r
+\r
+ /* Will only reach here if there is insufficient heap available to start\r
+ the scheduler. */\r
+ return 0;\r
+}\r
+/*---------------------------------------------------------------------------*/\r
+\r
+static void vLEDTask1( void *pvParameters )\r
+{\r
+/* Used to wake the task at the correct frequency. */\r
+portTickType xLastExecutionTime; \r
+\r
+ /* Initialise xLastExecutionTime so the first call to vTaskDelayUntil()\r
+ works correctly. */\r
+ xLastExecutionTime = xTaskGetTickCount();\r
+\r
+ for(;;)\r
+ {\r
+ /* Wait until it is time for the next cycle. */\r
+ vTaskDelayUntil( &xLastExecutionTime, mainLED_TASK_PERIOD1 );\r
+ PORTE = PORTE^0x01;\r
+\r
+ /* Has an error been found in any of the standard demo tasks? */\r
+\r
+ }\r
+}\r
+/*---------------------------------------------------------------------------*/\r
+\r
+static void vLEDTask2( void *pvParameters )\r
+{\r
+ /* Used to wake the task at the correct frequency. */\r
+ portTickType xLastExecutionTime; \r
+\r
+ /* Initialise xLastExecutionTime so the first call to vTaskDelayUntil()\r
+ works correctly. */\r
+ xLastExecutionTime = xTaskGetTickCount();\r
+\r
+ for(;;)\r
+ {\r
+ /* Wait until it is time for the next cycle. */\r
+ vTaskDelayUntil( &xLastExecutionTime, mainLED_TASK_PERIOD2 );\r
+ PORTE = PORTE^0x02;\r
+\r
+ /* Has an error been found in any of the standard demo tasks? */\r
+\r
+ }\r
+}\r
+/*---------------------------------------------------------------------------*/\r
+\r
--- /dev/null
+/*\r
+ FreeRTOS.org V4.7.2 - Copyright (C) 2003-2008 Richard Barry.\r
+\r
+ This file is part of the FreeRTOS.org distribution.\r
+\r
+ FreeRTOS.org is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ FreeRTOS.org is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with FreeRTOS.org; if not, write to the Free Software\r
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+\r
+ A special exception to the GPL can be applied should you wish to distribute\r
+ a combined work that includes FreeRTOS.org, without being obliged to provide\r
+ the source code for any proprietary components. See the licensing section \r
+ of http://www.FreeRTOS.org for full details of how and when the exception\r
+ can be applied.\r
+\r
+ ***************************************************************************\r
+\r
+ Please ensure to read the configuration and relevant port sections of the \r
+ online documentation.\r
+\r
+ +++ http://www.FreeRTOS.org +++\r
+ Documentation, latest information, license and contact details. \r
+\r
+ +++ http://www.SafeRTOS.com +++\r
+ A version that is certified for use in safety critical systems.\r
+\r
+ +++ http://www.OpenRTOS.com +++\r
+ Commercial support, development, porting, licensing and training services.\r
+\r
+ ***************************************************************************\r
+ configured for AIC-2.0.0 by Diego Caberlon Santini - 28/05/2008\r
+ ***************************************************************************\r
+*/\r
+\r
+#ifndef FREERTOS_CONFIG_H\r
+#define FREERTOS_CONFIG_H\r
+\r
+#include <p30f4012.h>\r
+\r
+/*-----------------------------------------------------------\r
+ * Application specific definitions.\r
+ *\r
+ * These definitions should be adjusted for your particular hardware and\r
+ * application requirements.\r
+ *\r
+ * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE\r
+ * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. \r
+ *----------------------------------------------------------*/\r
+\r
+#define configUSE_PREEMPTION 1\r
+#define configUSE_IDLE_HOOK 0\r
+#define configUSE_TICK_HOOK 0\r
+#define configTICK_RATE_HZ ( ( portTickType ) 1000 ) /*1 ms*/\r
+#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 1842500 ) /* Fosc / 4 = 1.8425MHz*/\r
+// #define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 24000000 ) /* Fosc / 4 = 24MHz*/\r
+#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 4 )\r
+#define configMINIMAL_STACK_SIZE ( 105 )\r
+#define configTOTAL_HEAP_SIZE ( ( size_t ) 5120/4 )\r
+#define configMAX_TASK_NAME_LEN ( 4 )\r
+#define configUSE_TRACE_FACILITY 0\r
+#define configUSE_16_BIT_TICKS 0 /*32 bits tick count*/\r
+#define configIDLE_SHOULD_YIELD 0\r
+#define configUSE_USE_MUTEXES 0\r
+#define configUSE_RECURSIVE_MUTEXES 0\r
+#define configUSE_COUNTING_SEMAPHORES 0\r
+#define configUSE_ALTERNATIVE_API 0\r
+#define configCHECK_FOR_STACK_OVERFLOW 0\r
+\r
+/* Co-routine definitions. */\r
+#define configUSE_CO_ROUTINES 0\r
+#define configMAX_CO_ROUTINE_PRIORITIES (0 )\r
+\r
+/* Set the following definitions to 1 to include the API function, or zero\r
+to exclude the API function. */\r
+\r
+#define INCLUDE_vTaskPrioritySet 0\r
+#define INCLUDE_uxTaskPriorityGet 0\r
+#define INCLUDE_vTaskDelete 0\r
+#define INCLUDE_vTaskCleanUpResources 0\r
+#define INCLUDE_vTaskSuspend 0\r
+#define INCLUDE_vTaskDelayUntil 1\r
+#define INCLUDE_vTaskDelay 0\r
+\r
+\r
+#define configKERNEL_INTERRUPT_PRIORITY 0x01\r
+\r
+#endif /* FREERTOS_CONFIG_H */\r
--- /dev/null
+CCINCDIR+=-I.
+
+all: freertostest.hex
+
+freertostest.hex:freertostest
+ $(CCBIN2HEX) $^
+
+freertostest:freertostest.o $(OSOBJS)
+ $(CC) $(CPU) $^ -o $@ $(CCLIBDIR) -Wl $(CCGLDFILE)
+
+freertostest.o:freertostest.c
+ $(CC) $(CPU) -x c -c $^ $(CCINCDIR) $(OSINCDIR) $(CCFLAGS) $(OSFLAGS)
+
+$(OSOBJS):$(OSFILES)
+ for i in $(OSFILES); do $(CC) $(CPU) -x c -c $$i $(CCINCDIR) $(OSINCDIR) $(CCFLAGS) $(OSFLAGS) ; done
+
+clean:
+ rm -f *.o freertostest *~
+
+distclean:clean
+ rm -f freertostest.hex
\ No newline at end of file
--- /dev/null
+/******************************************************************************\r
+\r
+ Actuator Interface Card\r
+ FreeRTOS test\r
+ Copyright (C) 2008 Diego Caberlon Santini <diegos@ece.ufrgs.br>\r
+\r
+ This program is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ This program is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with this program; if not, write to the Free Software\r
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
+\r
+ You can also obtain a copy of the GNU General Public License\r
+ at <http://www.gnu.org/licenses>.\r
+\r
+*******************************************************************************\r
+2008.06.10 -> Start FreeRTOS test by Diego Caberlon Santini from Demos apps.\r
+*******************************************************************************\r
+*/\r
+#include <p30f4012.h>\r
+\r
+/* Scheduler includes. */\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+#include "queue.h"\r
+#include "croutine.h"\r
+/*---------------------------------------------------------------------------*/\r
+\r
+#define mainLED_TAKS_STACK_SIZE ( configMINIMAL_STACK_SIZE)\r
+\r
+#define mainLED_TASK_PRIORITY ( tskIDLE_PRIORITY + 3 )\r
+\r
+/* The execution period of the check task. */\r
+#define mainCHECK_TASK_PERIOD ( ( portTickType ) 5 / portTICK_RATE_MS )\r
+/*---------------------------------------------------------------------------*/\r
+\r
+// _FOSC(EC_PLL16 & CSW_FSCM_OFF);\r
+_FOSC(FRC & CSW_FSCM_OFF);\r
+_FWDT(WDT_OFF);\r
+_FBORPOR(MCLR_EN & RST_IOPIN & PBOR_OFF & PWRT_64);\r
+/*---------------------------------------------------------------------------*/\r
+\r
+/** Blink port RE0 (10ms)\r
+ */\r
+static void vLEDTask( void *pvParameters );\r
+/*---------------------------------------------------------------------------*/\r
+\r
+/*\r
+ * Create the demo tasks then start the scheduler.\r
+ */\r
+int main( void )\r
+{\r
+\r
+ TRISE=0x00;\r
+ \r
+ /* Create the test tasks defined within this file. */\r
+ xTaskCreate( vLEDTask, ( signed portCHAR * ) "LED", mainLED_TAKS_STACK_SIZE, NULL, mainLED_TASK_PRIORITY, NULL );\r
+ \r
+ /* Finally start the scheduler. */\r
+ vTaskStartScheduler();\r
+\r
+ /* Will only reach here if there is insufficient heap available to start\r
+ the scheduler. */\r
+ return 0;\r
+}\r
+/*---------------------------------------------------------------------------*/\r
+\r
+static void vLEDTask( void *pvParameters )\r
+{\r
+/* Used to wake the task at the correct frequency. */\r
+portTickType xLastExecutionTime; \r
+\r
+ /* Initialise xLastExecutionTime so the first call to vTaskDelayUntil()\r
+ works correctly. */\r
+ xLastExecutionTime = xTaskGetTickCount();\r
+\r
+ for( ;; )\r
+ {\r
+ /* Wait until it is time for the next cycle. */\r
+ vTaskDelayUntil( &xLastExecutionTime, mainCHECK_TASK_PERIOD );\r
+ PORTE = PORTE^0x01;\r
+\r
+ /* Has an error been found in any of the standard demo tasks? */\r
+\r
+ }\r
+}\r
+/*---------------------------------------------------------------------------*/\r
+\r
--- /dev/null
+/*\r
+** Linker Script for 30f4012\r
+*/\r
+\r
+OUTPUT_ARCH("30f4012")\r
+EXTERN(__resetPRI)\r
+EXTERN(__resetALT)\r
+\r
+\r
+/*\r
+** Memory Regions\r
+*/\r
+MEMORY\r
+{\r
+ data (a!xr) : ORIGIN = 0x800, LENGTH = 2048\r
+ program (xr) : ORIGIN = 0x100, LENGTH = ((16K * 2) - 0x100)\r
+ reset : ORIGIN = 0, LENGTH = (4)\r
+ ivt : ORIGIN = 0x04, LENGTH = (62 * 2)\r
+ aivt : ORIGIN = 0x84, LENGTH = (62 * 2)\r
+ __FOSC : ORIGIN = 0xF80000, LENGTH = (2)\r
+ __FWDT : ORIGIN = 0xF80002, LENGTH = (2)\r
+ __FBORPOR : ORIGIN = 0xF80004, LENGTH = (2)\r
+ __CONFIG4 : ORIGIN = 0xF80006, LENGTH = (2)\r
+ __CONFIG5 : ORIGIN = 0xF80008, LENGTH = (2)\r
+ __FGS : ORIGIN = 0xF8000A, LENGTH = (2)\r
+ eedata : ORIGIN = 0x7FFC00, LENGTH = (1024)\r
+}\r
+__NO_HANDLES = 1; /* Suppress handles on this device */\r
+\r
+\r
+/*\r
+** Base Memory Addresses - Program Memory\r
+*/\r
+__RESET_BASE = 0; /* Reset Instruction */\r
+__IVT_BASE = 0x04; /* Interrupt Vector Table */\r
+__AIVT_BASE = 0x84; /* Alternate Interrupt Vector Table */\r
+__CODE_BASE = 0x100; /* Handles, User Code, Library Code */\r
+\r
+\r
+/*\r
+** Base Memory Addresses - Data Memory\r
+*/\r
+__SFR_BASE = 0; /* Memory-mapped SFRs */\r
+__DATA_BASE = 0x800; /* X and General Purpose Data Memory */\r
+__YDATA_BASE = 0x0C00; /* Y Data Memory for DSP Instructions */\r
+\r
+\r
+/*\r
+** ==================== Section Map ======================\r
+*/\r
+\r
+SECTIONS\r
+{\r
+\r
+ /*\r
+ ** ================== Program Memory =====================\r
+ */\r
+\r
+ /*\r
+ ** Reset Instruction\r
+ */\r
+ .reset __RESET_BASE :\r
+ {\r
+ SHORT(ABSOLUTE(__reset));\r
+ SHORT(0x04);\r
+ SHORT((ABSOLUTE(__reset) >> 16) & 0x7F);\r
+ SHORT(0);\r
+ } >reset\r
+\r
+\r
+ /*\r
+ ** Interrupt Vector Tables\r
+ **\r
+ ** The primary and alternate tables are loaded\r
+ ** here, between sections .reset and .text.\r
+ ** Vector table source code appears below.\r
+ */\r
+\r
+ /*\r
+ ** User Code and Library Code\r
+ */\r
+ .text __CODE_BASE :\r
+ {\r
+ *(.handle);\r
+ *(.libc) *(.libm) *(.libdsp); /* keep together in this order */\r
+ *(.lib*);\r
+ *(.text);\r
+ } >program\r
+\r
+ /*\r
+ ** User-Defined Section in Program Memory\r
+ **\r
+ ** note: can specify an address using\r
+ ** the following syntax:\r
+ **\r
+ ** usercode 0x1234 :\r
+ ** {\r
+ ** *(usercode);\r
+ ** } >program\r
+ */\r
+ usercode :\r
+ {\r
+ *(usercode);\r
+ } >program\r
+\r
+\r
+ /*\r
+ ** ================ Configuration Memory ================\r
+ */\r
+\r
+\r
+ /*\r
+ ** Configuration Fuses\r
+ */\r
+ __FOSC :\r
+ { *(__FOSC.sec) } >__FOSC\r
+ __FWDT :\r
+ { *(__FWDT.sec) } >__FWDT\r
+ __FBORPOR :\r
+ { *(__FBORPOR.sec) } >__FBORPOR\r
+ __CONFIG4 :\r
+ { *(__CONFIG4.sec) } >__CONFIG4\r
+ __CONFIG5 :\r
+ { *(__CONFIG5.sec) } >__CONFIG5\r
+ __FGS :\r
+ { *(__FGS.sec) } >__FGS\r
+\r
+\r
+ /*\r
+ ** User-Defined Section in Data Flash Memory\r
+ **\r
+ ** note: can specify an address using\r
+ ** the following syntax:\r
+ **\r
+ ** user_eedata 0x7FFC00 :\r
+ ** {\r
+ ** *(user_eedata);\r
+ ** } >eedata\r
+ */\r
+ user_eedata :\r
+ {\r
+ *(user_eedata);\r
+ } >eedata\r
+\r
+\r
+ /*\r
+ ** ==================== Data Memory ===================\r
+ */\r
+\r
+ /* \r
+ ** ICD Debug Exec\r
+ **\r
+ ** This section provides optional storage for\r
+ ** the ICD2 debugger. Define a global symbol\r
+ ** named __ICD2RAM to enable ICD2. This section\r
+ ** must be loaded at data address 0x800.\r
+ */ \r
+ .icd __DATA_BASE (NOLOAD): \r
+ { \r
+ . += (DEFINED (__ICD2RAM) ? 0x50 : 0 ); \r
+ } > data \r
+\r
+\r
+ /*\r
+ ** User-Defined Section in Data Memory\r
+ **\r
+ ** note: can specify an address using\r
+ ** the following syntax:\r
+ **\r
+ ** userdata 0x1234 :\r
+ ** {\r
+ ** *(userdata);\r
+ ** } >data\r
+ */\r
+ userdata :\r
+ {\r
+ *(userdata);\r
+ } >data\r
+\r
+\r
+ /*\r
+ ** ===================== Debug Info ====================\r
+ */\r
+\r
+ .comment 0 : { *(.comment) }\r
+\r
+ /*\r
+ ** DWARF-2\r
+ */\r
+ .debug_info 0 : { *(.debug_info) *(.gnu.linkonce.wi.*) }\r
+ .debug_abbrev 0 : { *(.debug_abbrev) }\r
+ .debug_line 0 : { *(.debug_line) }\r
+ .debug_frame 0 : { *(.debug_frame) }\r
+ .debug_str 0 : { *(.debug_str) }\r
+ .debug_loc 0 : { *(.debug_loc) }\r
+ .debug_macinfo 0 : { *(.debug_macinfo) }\r
+ .debug_pubnames 0 : { *(.debug_pubnames) }\r
+ .debug_ranges 0 : { *(.debug_ranges) }\r
+ .debug_aranges 0 : { *(.debug_aranges) }\r
+\r
+} /* SECTIONS */\r
+\r
+/*\r
+** ================= End of Section Map ================\r
+*/\r
+/*\r
+** Section Map for Interrupt Vector Tables\r
+*/\r
+SECTIONS\r
+{\r
+\r
+/*\r
+** Primary Interrupt Vector Table\r
+*/\r
+.ivt __IVT_BASE :\r
+ {\r
+ LONG(DEFINED(__ReservedTrap0\r
+) ? ABSOLUTE(__ReservedTrap0\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__OscillatorFail\r
+)? ABSOLUTE(__OscillatorFail\r
+):\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__AddressError\r
+) ? ABSOLUTE(__AddressError\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__StackError\r
+) ? ABSOLUTE(__StackError\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__MathError\r
+) ? ABSOLUTE(__MathError\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__ReservedTrap5\r
+) ? ABSOLUTE(__ReservedTrap5\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__ReservedTrap6\r
+) ? ABSOLUTE(__ReservedTrap6\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__ReservedTrap7\r
+) ? ABSOLUTE(__ReservedTrap7\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__INT0Interrupt\r
+) ? ABSOLUTE(__INT0Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__IC1Interrupt\r
+) ? ABSOLUTE(__IC1Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__OC1Interrupt\r
+) ? ABSOLUTE(__OC1Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__T1Interrupt\r
+) ? ABSOLUTE(__T1Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__IC2Interrupt\r
+) ? ABSOLUTE(__IC2Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__OC2Interrupt\r
+) ? ABSOLUTE(__OC2Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__T2Interrupt\r
+) ? ABSOLUTE(__T2Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__T3Interrupt\r
+) ? ABSOLUTE(__T3Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__SPI1Interrupt\r
+) ? ABSOLUTE(__SPI1Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__U1RXInterrupt\r
+) ? ABSOLUTE(__U1RXInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__U1TXInterrupt\r
+) ? ABSOLUTE(__U1TXInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__ADCInterrupt\r
+) ? ABSOLUTE(__ADCInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__NVMInterrupt\r
+) ? ABSOLUTE(__NVMInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__SI2CInterrupt\r
+) ? ABSOLUTE(__SI2CInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__MI2CInterrupt\r
+) ? ABSOLUTE(__MI2CInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__CNInterrupt\r
+) ? ABSOLUTE(__CNInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__INT1Interrupt\r
+) ? ABSOLUTE(__INT1Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__IC7Interrupt\r
+) ? ABSOLUTE(__IC7Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__IC8Interrupt\r
+) ? ABSOLUTE(__IC8Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__OC3Interrupt\r
+) ? ABSOLUTE(__OC3Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__OC4Interrupt\r
+) ? ABSOLUTE(__OC4Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__T4Interrupt\r
+) ? ABSOLUTE(__T4Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__T5Interrupt\r
+) ? ABSOLUTE(__T5Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__INT2Interrupt\r
+) ? ABSOLUTE(__INT2Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__U2RXInterrupt\r
+) ? ABSOLUTE(__U2RXInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__U2TXInterrupt\r
+) ? ABSOLUTE(__U2TXInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__SPI2Interrupt\r
+) ? ABSOLUTE(__SPI2Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__C1Interrupt\r
+) ? ABSOLUTE(__C1Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__IC3Interrupt\r
+) ? ABSOLUTE(__IC3Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__IC4Interrupt\r
+) ? ABSOLUTE(__IC4Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__IC5Interrupt\r
+) ? ABSOLUTE(__IC5Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__IC6Interrupt\r
+) ? ABSOLUTE(__IC6Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__OC5Interrupt\r
+) ? ABSOLUTE(__OC5Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__OC6Interrupt\r
+) ? ABSOLUTE(__OC6Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__OC7Interrupt\r
+) ? ABSOLUTE(__OC7Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__OC8Interrupt\r
+) ? ABSOLUTE(__OC8Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__INT3Interrupt\r
+) ? ABSOLUTE(__INT3Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__INT4Interrupt\r
+) ? ABSOLUTE(__INT4Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__C2Interrupt\r
+) ? ABSOLUTE(__C2Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__PWMInterrupt\r
+) ? ABSOLUTE(__PWMInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__QEIInterrupt\r
+) ? ABSOLUTE(__QEIInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__DCIInterrupt\r
+) ? ABSOLUTE(__DCIInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__LVDInterrupt\r
+) ? ABSOLUTE(__LVDInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__FLTAInterrupt\r
+) ? ABSOLUTE(__FLTAInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__FLTBInterrupt\r
+) ? ABSOLUTE(__FLTBInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__Interrupt45\r
+) ? ABSOLUTE(__Interrupt45\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__Interrupt46\r
+) ? ABSOLUTE(__Interrupt46\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__Interrupt47\r
+) ? ABSOLUTE(__Interrupt47\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__Interrupt48\r
+) ? ABSOLUTE(__Interrupt48\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__Interrupt49\r
+) ? ABSOLUTE(__Interrupt49\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__Interrupt50\r
+) ? ABSOLUTE(__Interrupt50\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__Interrupt51\r
+) ? ABSOLUTE(__Interrupt51\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__Interrupt52\r
+) ? ABSOLUTE(__Interrupt52\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ LONG(DEFINED(__Interrupt53\r
+) ? ABSOLUTE(__Interrupt53\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt));\r
+ } >ivt\r
+\r
+\r
+/*\r
+** Alternate Interrupt Vector Table\r
+*/\r
+.aivt __AIVT_BASE :\r
+ {\r
+ LONG(DEFINED(__AltReservedTrap0\r
+) ? ABSOLUTE(__AltReservedTrap0\r
+) :\r
+ (DEFINED(__ReservedTrap0\r
+) ? ABSOLUTE(__ReservedTrap0\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltOscillatorFail\r
+)? ABSOLUTE(__AltOscillatorFail\r
+):\r
+ (DEFINED(__OscillatorFail\r
+) ? ABSOLUTE(__OscillatorFail\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltAddressError\r
+) ? ABSOLUTE(__AltAddressError\r
+) :\r
+ (DEFINED(__AddressError\r
+) ? ABSOLUTE(__AddressError\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltStackError\r
+) ? ABSOLUTE(__AltStackError\r
+) :\r
+ (DEFINED(__StackError\r
+) ? ABSOLUTE(__StackError\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltMathError\r
+) ? ABSOLUTE(__AltMathError\r
+) :\r
+ (DEFINED(__MathError\r
+) ? ABSOLUTE(__MathError\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltReservedTrap5\r
+) ? ABSOLUTE(__AltReservedTrap5\r
+) :\r
+ (DEFINED(__ReservedTrap5\r
+) ? ABSOLUTE(__ReservedTrap5\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltReservedTrap6\r
+) ? ABSOLUTE(__AltReservedTrap6\r
+) :\r
+ (DEFINED(__ReservedTrap6\r
+) ? ABSOLUTE(__ReservedTrap6\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltReservedTrap7\r
+) ? ABSOLUTE(__AltReservedTrap7\r
+) :\r
+ (DEFINED(__ReservedTrap7\r
+) ? ABSOLUTE(__ReservedTrap7\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltINT0Interrupt\r
+) ? ABSOLUTE(__AltINT0Interrupt\r
+) :\r
+ (DEFINED(__INT0Interrupt\r
+) ? ABSOLUTE(__INT0Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltIC1Interrupt\r
+) ? ABSOLUTE(__AltIC1Interrupt\r
+) :\r
+ (DEFINED(__IC1Interrupt\r
+) ? ABSOLUTE(__IC1Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltOC1Interrupt\r
+) ? ABSOLUTE(__AltOC1Interrupt\r
+) :\r
+ (DEFINED(__OC1Interrupt\r
+) ? ABSOLUTE(__OC1Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltT1Interrupt\r
+) ? ABSOLUTE(__AltT1Interrupt\r
+) :\r
+ (DEFINED(__T1Interrupt\r
+) ? ABSOLUTE(__T1Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltIC2Interrupt\r
+) ? ABSOLUTE(__AltIC2Interrupt\r
+) :\r
+ (DEFINED(__IC2Interrupt\r
+) ? ABSOLUTE(__IC2Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltOC2Interrupt\r
+) ? ABSOLUTE(__AltOC2Interrupt\r
+) :\r
+ (DEFINED(__OC2Interrupt\r
+) ? ABSOLUTE(__OC2Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltT2Interrupt\r
+) ? ABSOLUTE(__AltT2Interrupt\r
+) :\r
+ (DEFINED(__T2Interrupt\r
+) ? ABSOLUTE(__T2Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltT3Interrupt\r
+) ? ABSOLUTE(__AltT3Interrupt\r
+) :\r
+ (DEFINED(__T3Interrupt\r
+) ? ABSOLUTE(__T3Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltSPI1Interrupt\r
+) ? ABSOLUTE(__AltSPI1Interrupt\r
+) :\r
+ (DEFINED(__SPI1Interrupt\r
+) ? ABSOLUTE(__SPI1Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltU1RXInterrupt\r
+) ? ABSOLUTE(__AltU1RXInterrupt\r
+) :\r
+ (DEFINED(__U1RXInterrupt\r
+) ? ABSOLUTE(__U1RXInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltU1TXInterrupt\r
+) ? ABSOLUTE(__AltU1TXInterrupt\r
+) :\r
+ (DEFINED(__U1TXInterrupt\r
+) ? ABSOLUTE(__U1TXInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltADCInterrupt\r
+) ? ABSOLUTE(__AltADCInterrupt\r
+) :\r
+ (DEFINED(__ADCInterrupt\r
+) ? ABSOLUTE(__ADCInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltNVMInterrupt\r
+) ? ABSOLUTE(__AltNVMInterrupt\r
+) :\r
+ (DEFINED(__NVMInterrupt\r
+) ? ABSOLUTE(__NVMInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltSI2CInterrupt\r
+) ? ABSOLUTE(__AltSI2CInterrupt\r
+) :\r
+ (DEFINED(__SI2CInterrupt\r
+) ? ABSOLUTE(__SI2CInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltMI2CInterrupt\r
+) ? ABSOLUTE(__AltMI2CInterrupt\r
+) :\r
+ (DEFINED(__MI2CInterrupt\r
+) ? ABSOLUTE(__MI2CInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltCNInterrupt\r
+) ? ABSOLUTE(__AltCNInterrupt\r
+) :\r
+ (DEFINED(__CNInterrupt\r
+) ? ABSOLUTE(__CNInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltINT1Interrupt\r
+) ? ABSOLUTE(__AltINT1Interrupt\r
+) :\r
+ (DEFINED(__INT1Interrupt\r
+) ? ABSOLUTE(__INT1Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltIC7Interrupt\r
+) ? ABSOLUTE(__AltIC7Interrupt\r
+) :\r
+ (DEFINED(__IC7Interrupt\r
+) ? ABSOLUTE(__IC7Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltIC8Interrupt\r
+) ? ABSOLUTE(__AltIC8Interrupt\r
+) :\r
+ (DEFINED(__IC8Interrupt\r
+) ? ABSOLUTE(__IC8Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltOC3Interrupt\r
+) ? ABSOLUTE(__AltOC3Interrupt\r
+) :\r
+ (DEFINED(__OC3Interrupt\r
+) ? ABSOLUTE(__OC3Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltOC4Interrupt\r
+) ? ABSOLUTE(__AltOC4Interrupt\r
+) :\r
+ (DEFINED(__OC4Interrupt\r
+) ? ABSOLUTE(__OC4Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltT4Interrupt\r
+) ? ABSOLUTE(__AltT4Interrupt\r
+) :\r
+ (DEFINED(__T4Interrupt\r
+) ? ABSOLUTE(__T4Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltT5Interrupt\r
+) ? ABSOLUTE(__AltT5Interrupt\r
+) :\r
+ (DEFINED(__T5Interrupt\r
+) ? ABSOLUTE(__T5Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltINT2Interrupt\r
+) ? ABSOLUTE(__AltINT2Interrupt\r
+) :\r
+ (DEFINED(__INT2Interrupt\r
+) ? ABSOLUTE(__INT2Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltU2RXInterrupt\r
+) ? ABSOLUTE(__AltU2RXInterrupt\r
+) :\r
+ (DEFINED(__U2RXInterrupt\r
+) ? ABSOLUTE(__U2RXInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltU2TXInterrupt\r
+) ? ABSOLUTE(__AltU2TXInterrupt\r
+) :\r
+ (DEFINED(__U2TXInterrupt\r
+) ? ABSOLUTE(__U2TXInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltSPI2Interrupt\r
+) ? ABSOLUTE(__AltSPI2Interrupt\r
+) :\r
+ (DEFINED(__SPI2Interrupt\r
+) ? ABSOLUTE(__SPI2Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltC1Interrupt\r
+) ? ABSOLUTE(__AltC1Interrupt\r
+) :\r
+ (DEFINED(__C1Interrupt\r
+) ? ABSOLUTE(__C1Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltIC3Interrupt\r
+) ? ABSOLUTE(__AltIC3Interrupt\r
+) :\r
+ (DEFINED(__IC3Interrupt\r
+) ? ABSOLUTE(__IC3Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltIC4Interrupt\r
+) ? ABSOLUTE(__AltIC4Interrupt\r
+) :\r
+ (DEFINED(__IC4Interrupt\r
+) ? ABSOLUTE(__IC4Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltIC5Interrupt\r
+) ? ABSOLUTE(__AltIC5Interrupt\r
+) :\r
+ (DEFINED(__IC5Interrupt\r
+) ? ABSOLUTE(__IC5Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltIC6Interrupt\r
+) ? ABSOLUTE(__AltIC6Interrupt\r
+) :\r
+ (DEFINED(__IC6Interrupt\r
+) ? ABSOLUTE(__IC6Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltOC5Interrupt\r
+) ? ABSOLUTE(__AltOC5Interrupt\r
+) :\r
+ (DEFINED(__OC5Interrupt\r
+) ? ABSOLUTE(__OC5Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltOC6Interrupt\r
+) ? ABSOLUTE(__AltOC6Interrupt\r
+) :\r
+ (DEFINED(__OC6Interrupt\r
+) ? ABSOLUTE(__OC6Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltOC7Interrupt\r
+) ? ABSOLUTE(__AltOC7Interrupt\r
+) :\r
+ (DEFINED(__OC7Interrupt\r
+) ? ABSOLUTE(__OC7Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltOC8Interrupt\r
+) ? ABSOLUTE(__AltOC8Interrupt\r
+) :\r
+ (DEFINED(__OC8Interrupt\r
+) ? ABSOLUTE(__OC8Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltINT3Interrupt\r
+) ? ABSOLUTE(__AltINT3Interrupt\r
+) :\r
+ (DEFINED(__INT3Interrupt\r
+) ? ABSOLUTE(__INT3Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltINT4Interrupt\r
+) ? ABSOLUTE(__AltINT4Interrupt\r
+) :\r
+ (DEFINED(__INT4Interrupt\r
+) ? ABSOLUTE(__INT4Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltC2Interrupt\r
+) ? ABSOLUTE(__AltC2Interrupt\r
+) :\r
+ (DEFINED(__C2Interrupt\r
+) ? ABSOLUTE(__C2Interrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltPWMInterrupt\r
+) ? ABSOLUTE(__AltPWMInterrupt\r
+) :\r
+ (DEFINED(__PWMInterrupt\r
+) ? ABSOLUTE(__PWMInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltQEIInterrupt\r
+) ? ABSOLUTE(__AltQEIInterrupt\r
+) :\r
+ (DEFINED(__QEIInterrupt\r
+) ? ABSOLUTE(__QEIInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltDCIInterrupt\r
+) ? ABSOLUTE(__AltDCIInterrupt\r
+) :\r
+ (DEFINED(__DCIInterrupt\r
+) ? ABSOLUTE(__DCIInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltLVDInterrupt\r
+) ? ABSOLUTE(__AltLVDInterrupt\r
+) :\r
+ (DEFINED(__LVDInterrupt\r
+) ? ABSOLUTE(__LVDInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltFLTAInterrupt\r
+) ? ABSOLUTE(__AltFLTAInterrupt\r
+) :\r
+ (DEFINED(__FLTAInterrupt\r
+) ? ABSOLUTE(__FLTAInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltFLTBInterrupt\r
+) ? ABSOLUTE(__AltFLTBInterrupt\r
+) :\r
+ (DEFINED(__FLTBInterrupt\r
+) ? ABSOLUTE(__FLTBInterrupt\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltInterrupt45\r
+) ? ABSOLUTE(__AltInterrupt45\r
+) :\r
+ (DEFINED(__Interrupt45\r
+) ? ABSOLUTE(__Interrupt45\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltInterrupt46\r
+) ? ABSOLUTE(__AltInterrupt46\r
+) :\r
+ (DEFINED(__Interrupt46\r
+) ? ABSOLUTE(__Interrupt46\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltInterrupt47\r
+) ? ABSOLUTE(__AltInterrupt47\r
+) :\r
+ (DEFINED(__Interrupt47\r
+) ? ABSOLUTE(__Interrupt47\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltInterrupt48\r
+) ? ABSOLUTE(__AltInterrupt48\r
+) :\r
+ (DEFINED(__Interrupt48\r
+) ? ABSOLUTE(__Interrupt48\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltInterrupt49\r
+) ? ABSOLUTE(__AltInterrupt49\r
+) :\r
+ (DEFINED(__Interrupt49\r
+) ? ABSOLUTE(__Interrupt49\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltInterrupt50\r
+) ? ABSOLUTE(__AltInterrupt50\r
+) :\r
+ (DEFINED(__Interrupt50\r
+) ? ABSOLUTE(__Interrupt50\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltInterrupt51\r
+) ? ABSOLUTE(__AltInterrupt51\r
+) :\r
+ (DEFINED(__Interrupt51\r
+) ? ABSOLUTE(__Interrupt51\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltInterrupt52\r
+) ? ABSOLUTE(__AltInterrupt52\r
+) :\r
+ (DEFINED(__Interrupt52\r
+) ? ABSOLUTE(__Interrupt52\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ LONG(DEFINED(__AltInterrupt53\r
+) ? ABSOLUTE(__AltInterrupt53\r
+) :\r
+ (DEFINED(__Interrupt53\r
+) ? ABSOLUTE(__Interrupt53\r
+) :\r
+ ABSOLUTE(__DefaultInterrupt)));\r
+ } >aivt\r
+\r
+} /* SECTIONS */\r
+\r
+\r
+/* File Description | Notes:\r
+** =========================\r
+** 1] This file maps special function register(SFR) names used in the datasheet\r
+** to memory locations in the PIC30Fxxxx device. The memory locations are\r
+** byte addresses. The PIC30Fxxxx is a family of byte addressable devices.\r
+** 2] The register names used in this file are taken to match the\r
+** PIC30Fxxxx data sheets as closely as possible.\r
+** 3] SFR address definitions are listed in the ascending order of memory\r
+** addresses and are grouped based on the module they belong to. For e.g.,\r
+** WREG10 is listed before ACCAL, and the Core SFRs are grouped\r
+** separately, prior to the Interrupt Controller SFRs or the General\r
+** Purpose Timer SFRs.\r
+** 4] SFR names exactly match names in the device specific C "header" file\r
+** and the Assembly "include" file. Any changes to names in one of these\r
+** files, calls for similar changes in the other two.\r
+**\r
+* Revision History:\r
+** =================\r
+**-------------------------------------------------------------------------\r
+**Rev: Date: Details: Who:\r
+**-------------------------------------------------------------------------\r
+**1.0 11/29/01 Device linker provides from superset h vasuki\r
+**1.1 13 Dec 2001 Added PMD registers + some changes -do-\r
+**1.2 02 Dec 2002 CAN buffer correction -do-\r
+**1.3 13 Feb 2003 ADCSSLBits/ADPCFGBits Address correction -do-\r
+**1.4 05 May 2003 Initial release of linker scripts for rev -do-\r
+** B silicon with changes in CAN section\r
+**1.6 25 Nov 2003 CAN2 SFR bytes additions h vasuki\r
+**1.7 30 Jul 2004 ADCBUF0-ADCBUFF Address Correction h vasuki\r
+**1.7a 17 Dec 2004 CAN TXERRCNT Address Correction h vasuki\r
+**\r
+**-------------------------------------------------------------------------\r
+**\r
+**\r
+***************************************/\r
+\r
+\r
+/*=========================================================================\r
+** Register Definitions\r
+** (Core and Peripheral Registers in Data Space)\r
+**==========================================================================\r
+**\r
+**==========================================================================\r
+**\r
+** dsPIC Core Register Definitions\r
+**\r
+**=========================================================================*/\r
+ WREG0 = 0x0000;\r
+_WREG0 = 0x0000;\r
+ WREG1 = 0x0002;\r
+_WREG1 = 0x0002;\r
+ WREG2 = 0x0004;\r
+_WREG2 = 0x0004;\r
+ WREG3 = 0x0006;\r
+_WREG3 = 0x0006;\r
+ WREG4 = 0x0008;\r
+_WREG4 = 0x0008;\r
+ WREG5 = 0x000A;\r
+_WREG5 = 0x000A;\r
+ WREG6 = 0x000C;\r
+_WREG6 = 0x000C;\r
+ WREG7 = 0x000E;\r
+_WREG7 = 0x000E;\r
+ WREG8 = 0x0010;\r
+_WREG8 = 0x0010;\r
+ WREG9 = 0x0012;\r
+_WREG9 = 0x0012;\r
+ WREG10 = 0x0014;\r
+_WREG10 = 0x0014;\r
+ WREG11 = 0x0016;\r
+_WREG11 = 0x0016;\r
+ WREG12 = 0x0018;\r
+_WREG12 = 0x0018;\r
+ WREG13 = 0x001A;\r
+_WREG13 = 0x001A;\r
+ WREG14 = 0x001C;\r
+_WREG14 = 0x001C;\r
+ WREG15 = 0x001E;\r
+_WREG15 = 0x001E;\r
+ SPLIM = 0x0020;\r
+_SPLIM = 0x0020;\r
+ ACCAL = 0x0022;\r
+_ACCAL = 0x0022;\r
+ ACCAH = 0x0024;\r
+_ACCAH = 0x0024;\r
+ ACCAU = 0x0026;\r
+_ACCAU = 0x0026;\r
+ ACCBL = 0x0028;\r
+_ACCBL = 0x0028;\r
+ ACCBH = 0x002A;\r
+_ACCBH = 0x002A;\r
+ ACCBU = 0x002C;\r
+_ACCBU = 0x002C;\r
+ PCL = 0x002E;\r
+_PCL = 0x002E;\r
+ PCH = 0x0030;\r
+_PCH = 0x0030;\r
+ TBLPAG = 0x0032;\r
+_TBLPAG = 0x0032;\r
+ PSVPAG = 0x0034;\r
+_PSVPAG = 0x0034;\r
+ RCOUNT = 0x0036;\r
+_RCOUNT = 0x0036;\r
+ DCOUNT = 0x0038;\r
+_DCOUNT = 0x0038;\r
+ DOSTARTL = 0x003A;\r
+_DOSTARTL = 0x003A;\r
+ DOSTARTH = 0x003C;\r
+_DOSTARTH = 0x003C;\r
+ DOENDL = 0x003E;\r
+_DOENDL = 0x003E;\r
+ DOENDH = 0x0040;\r
+_DOENDH = 0x0040;\r
+ SR = 0x0042;\r
+_SR = 0x0042;\r
+ CORCON = 0x0044;\r
+_CORCON = 0x0044;\r
+ MODCON = 0x0046;\r
+_MODCON = 0x0046;\r
+ XMODSRT = 0x0048;\r
+_XMODSRT = 0x0048;\r
+ XMODEND = 0x004A;\r
+_XMODEND = 0x004A;\r
+ YMODSRT = 0x004C;\r
+_YMODSRT = 0x004C;\r
+ YMODEND = 0x004E;\r
+_YMODEND = 0x004E;\r
+ XBREV = 0x0050;\r
+_XBREV = 0x0050;\r
+ DISICNT = 0x0052;\r
+_DISICNT = 0x0052;\r
+\r
+\r
+\r
+/*==========================================================================\r
+**\r
+** Interrupt Controller Register Definitions\r
+**\r
+==========================================================================*/\r
+ INTCON1 = 0x0080;\r
+_INTCON1 = 0x0080;\r
+ INTCON2 = 0x0082;\r
+_INTCON2 = 0x0082;\r
+ IFS0 = 0x0084;\r
+_IFS0 = 0x0084;\r
+ IFS1 = 0x0086;\r
+_IFS1 = 0x0086;\r
+ IFS2 = 0x0088;\r
+_IFS2 = 0x0088;\r
+ IEC0 = 0x008C;\r
+_IEC0 = 0x008C;\r
+ IEC1 = 0x008E;\r
+_IEC1 = 0x008E;\r
+ IEC2 = 0x0090;\r
+_IEC2 = 0x0090;\r
+ IPC0 = 0x0094;\r
+_IPC0 = 0x0094;\r
+ IPC1 = 0x0096;\r
+_IPC1 = 0x0096;\r
+ IPC2 = 0x0098;\r
+_IPC2 = 0x0098;\r
+ IPC3 = 0x009A;\r
+_IPC3 = 0x009A;\r
+ IPC4 = 0x009C;\r
+_IPC4 = 0x009C;\r
+ IPC5 = 0x009E;\r
+_IPC5 = 0x009E;\r
+ IPC6 = 0x00A0;\r
+_IPC6 = 0x00A0;\r
+ IPC9 = 0x00A6;\r
+_IPC9 = 0x00A6;\r
+ IPC10 = 0x00A8;\r
+_IPC10 = 0x00A8;\r
+\r
+\r
+\r
+/*==========================================================================\r
+**\r
+** Input Change Notification Module Register Definitions\r
+**\r
+===========================================================================*/\r
+ CNEN1 = 0x00C0;\r
+_CNEN1 = 0x00C0;\r
+ CNPU1 = 0x00C4;\r
+_CNPU1 = 0x00C4;\r
+\r
+\r
+\r
+/*=========================================================================\r
+**\r
+** Peripheral Register Definitions\r
+**\r
+===========================================================================*/\r
+/*=========================================================================\r
+**\r
+** Timer Module Register Definitions\r
+**\r
+===========================================================================*/\r
+/*--------------Timer 1 Module---------------------------------------------*/\r
+ TMR1 = 0x0100;\r
+_TMR1 = 0x0100;\r
+ PR1 = 0x0102;\r
+_PR1 = 0x0102;\r
+ T1CON = 0x0104;\r
+_T1CON = 0x0104;\r
+\r
+/*--------------Timer2/3 Module--------------------------------------------*/\r
+ TMR2 = 0x0106;\r
+_TMR2 = 0x0106;\r
+ TMR3HLD = 0x0108;\r
+_TMR3HLD = 0x0108;\r
+ TMR3 = 0x010A;\r
+_TMR3 = 0x010A;\r
+ PR2 = 0x010C;\r
+_PR2 = 0x010C;\r
+ PR3 = 0x010E;\r
+_PR3 = 0x010E;\r
+ T2CON = 0x0110;\r
+_T2CON = 0x0110;\r
+ T3CON = 0x0112;\r
+_T3CON = 0x0112;\r
+\r
+/*------------- Timer4/5 Module---------------------------------------------*/\r
+ TMR4 = 0x0114;\r
+_TMR4 = 0x0114;\r
+ TMR5HLD = 0x0116;\r
+_TMR5HLD = 0x0116;\r
+ TMR5 = 0x0118;\r
+_TMR5 = 0x0118;\r
+ PR4 = 0x011A;\r
+_PR4 = 0x011A;\r
+ PR5 = 0x011C;\r
+_PR5 = 0x011C;\r
+ T4CON = 0x011E;\r
+_T4CON = 0x011E;\r
+ T5CON = 0x0120;\r
+_T5CON = 0x0120;\r
+\r
+/*=========================================================================\r
+**\r
+** Quadrature Encoder Interface Module Register Definitions\r
+**\r
+=========================================================================*/\r
+ QEICON = 0x0122;\r
+_QEICON = 0x0122;\r
+ DFLTCON = 0x0124;\r
+_DFLTCON = 0x0124;\r
+ POSCNT = 0x0126;\r
+_POSCNT = 0x0126;\r
+ MAXCNT = 0x0128;\r
+_MAXCNT = 0x0128;\r
+\r
+\r
+/*=========================================================================\r
+**\r
+** Input Capture Module Register Definitions\r
+**\r
+=========================================================================*/\r
+ IC1BUF = 0x0140;\r
+_IC1BUF = 0x0140;\r
+ IC1CON = 0x0142;\r
+_IC1CON = 0x0142;\r
+ IC2BUF = 0x0144;\r
+_IC2BUF = 0x0144;\r
+ IC2CON = 0x0146;\r
+_IC2CON = 0x0146;\r
+ IC7BUF = 0x0158;\r
+_IC7BUF = 0x0158;\r
+ IC7CON = 0x015A;\r
+_IC7CON = 0x015A;\r
+ IC8BUF = 0x015C;\r
+_IC8BUF = 0x015C;\r
+ IC8CON = 0x015E;\r
+_IC8CON = 0x015E;\r
+\r
+\r
+\r
+/*==========================================================================\r
+**\r
+** Output Compare Module Register Definitions\r
+**\r
+===========================================================================*/\r
+ OC1RS = 0x0180;\r
+_OC1RS = 0x0180;\r
+ OC1R = 0x0182;\r
+_OC1R = 0x0182;\r
+ OC1CON = 0x0184;\r
+_OC1CON = 0x0184;\r
+ OC2RS = 0x0186;\r
+_OC2RS = 0x0186;\r
+ OC2R = 0x0188;\r
+_OC2R = 0x0188;\r
+ OC2CON = 0x018A;\r
+_OC2CON = 0x018A;\r
+\r
+\r
+/*=========================================================================\r
+**\r
+** Motor Control PWM Module Register Definitions\r
+**\r
+=========================================================================*/\r
+ PTCON = 0x01C0;\r
+_PTCON = 0x01C0;\r
+ PTMR = 0x01C2;\r
+_PTMR = 0x01C2;\r
+ PTPER = 0x01C4;\r
+_PTPER = 0x01C4;\r
+ SEVTCMP = 0x01C6;\r
+_SEVTCMP = 0x01C6;\r
+ PWMCON1 = 0x01C8;\r
+_PWMCON1 = 0x01C8;\r
+ PWMCON2 = 0x01CA;\r
+_PWMCON2 = 0x01CA;\r
+ DTCON1 = 0x01CC;\r
+_DTCON1 = 0x01CC;\r
+ FLTACON = 0x01D0;\r
+_FLTACON = 0x01D0;\r
+ OVDCON = 0x01D4;\r
+_OVDCON = 0x01D4;\r
+ PDC1 = 0x01D6;\r
+_PDC1 = 0x01D6;\r
+ PDC2 = 0x01D8;\r
+_PDC2 = 0x01D8;\r
+ PDC3 = 0x01DA;\r
+_PDC3 = 0x01DA;\r
+\r
+\r
+\r
+/*=========================================================================\r
+**\r
+** Inter-Integrated Circuit(I2C) Module Register Definitions\r
+**\r
+==========================================================================*/\r
+ I2CRCV = 0x0200;\r
+_I2CRCV = 0x0200;\r
+ I2CTRN = 0x0202;\r
+_I2CTRN = 0x0202;\r
+ I2CBRG = 0x0204;\r
+_I2CBRG = 0x0204;\r
+ I2CCON = 0x0206;\r
+_I2CCON = 0x0206;\r
+ I2CSTAT = 0x0208;\r
+_I2CSTAT = 0x0208;\r
+ I2CADD = 0x020A;\r
+_I2CADD = 0x020A;\r
+\r
+/*==========================================================================\r
+**\r
+** Universal Asynchronous Receiver TransmitterUART Module\r
+** Register Definitions\r
+**\r
+==========================================================================*/\r
+/*------------------UART 1 Module-----------------------------------------*/\r
+ U1MODE = 0x020C;\r
+_U1MODE = 0x020C;\r
+ U1STA = 0x020E;\r
+_U1STA = 0x020E;\r
+ U1TXREG = 0x0210;\r
+_U1TXREG = 0x0210;\r
+ U1RXREG = 0x0212;\r
+_U1RXREG = 0x0212;\r
+ U1BRG = 0x0214;\r
+_U1BRG = 0x0214;\r
+\r
+\r
+/*==========================================================================\r
+**\r
+** Serial Peripheral Interface(SPI) Module Register Definitions\r
+**\r
+==========================================================================*/\r
+/*-----------------SPI 1 Module-------------------------------------------*/\r
+ SPI1STAT = 0x0220;\r
+_SPI1STAT = 0x0220;\r
+ SPI1CON = 0x0222;\r
+_SPI1CON = 0x0222;\r
+ SPI1BUF = 0x0224;\r
+_SPI1BUF = 0x0224;\r
+\r
+\r
+\r
+/*==========================================================================\r
+**\r
+** 10-bit A/D Converter 500 Ksps Module Register Definitions\r
+**\r
+==========================================================================*/\r
+ ADCBUF0 = 0x0280;\r
+_ADCBUF0 = 0x0280;\r
+ ADCBUF1 = 0x0282;\r
+_ADCBUF1 = 0x0282;\r
+ ADCBUF2 = 0x0284;\r
+_ADCBUF2 = 0x0284;\r
+ ADCBUF3 = 0x0286;\r
+_ADCBUF3 = 0x0286;\r
+ ADCBUF4 = 0x0288;\r
+_ADCBUF4 = 0x0288;\r
+ ADCBUF5 = 0x028A;\r
+_ADCBUF5 = 0x028A;\r
+ ADCBUF6 = 0x028C;\r
+_ADCBUF6 = 0x028C;\r
+ ADCBUF7 = 0x028E;\r
+_ADCBUF7 = 0x028E;\r
+ ADCBUF8 = 0x0290;\r
+_ADCBUF8 = 0x0290;\r
+ ADCBUF9 = 0x0292;\r
+_ADCBUF9 = 0x0292;\r
+ ADCBUFA = 0x0294;\r
+_ADCBUFA = 0x0294;\r
+ ADCBUFB = 0x0296;\r
+_ADCBUFB = 0x0296;\r
+ ADCBUFC = 0x0298;\r
+_ADCBUFC = 0x0298;\r
+ ADCBUFD = 0x029A;\r
+_ADCBUFD = 0x029A;\r
+ ADCBUFE = 0x029C;\r
+_ADCBUFE = 0x029C;\r
+ ADCBUFF = 0x029E;\r
+_ADCBUFF = 0x029E;\r
+ ADCON1 = 0x02A0;\r
+_ADCON1 = 0x02A0;\r
+ ADCON2 = 0x02A2;\r
+_ADCON2 = 0x02A2;\r
+ ADCON3 = 0x02A4;\r
+_ADCON3 = 0x02A4;\r
+ ADCHS = 0x02A6;\r
+_ADCHS = 0x02A6;\r
+ ADPCFG = 0x02A8;\r
+_ADPCFG = 0x02A8;\r
+ ADCSSL = 0x02AA;\r
+_ADCSSL = 0x02AA;\r
+\r
+/*==========================================================================\r
+**\r
+** General Purpose I/O Port Register Definitions\r
+**\r
+==========================================================================*/\r
+ TRISB = 0x02C6;\r
+_TRISB = 0x02C6;\r
+ PORTB = 0x02C8;\r
+_PORTB = 0x02C8;\r
+ LATB = 0x02CA;\r
+_LATB = 0x02CA;\r
+\r
+ TRISC = 0x02CC;\r
+_TRISC = 0x02CC;\r
+ PORTC = 0x02CE;\r
+_PORTC = 0x02CE;\r
+ LATC = 0x02D0;\r
+_LATC = 0x02D0;\r
+\r
+ TRISD = 0x02D2;\r
+_TRISD = 0x02D2;\r
+ PORTD = 0x02D4;\r
+_PORTD = 0x02D4;\r
+ LATD = 0x02D6;\r
+_LATD = 0x02D6;\r
+\r
+ TRISE = 0x02D8;\r
+_TRISE = 0x02D8;\r
+ PORTE = 0x02DA;\r
+_PORTE = 0x02DA;\r
+ LATE = 0x02DC;\r
+_LATE = 0x02DC;\r
+\r
+ TRISF = 0x02DE;\r
+\r
+_TRISF = 0x02DE;\r
+ PORTF = 0x02E0;\r
+_PORTF = 0x02E0;\r
+ LATF = 0x02E2;\r
+_LATF = 0x02E2;\r
+\r
+\r
+\r
+/*==========================================================================\r
+**\r
+** Controller Area Network Module Register Definitions\r
+** (for CAN Modules 1 and 2)\r
+==========================================================================*/\r
+\r
+/*==========================================================================\r
+**\r
+** CAN1 register definitions\r
+**\r
+==========================================================================*/\r
+C1RXF0SID = 0x0300;\r
+_C1RXF0SID = 0x0300;\r
+C1RXF0EIDH = 0x0302;\r
+_C1RXF0EIDH = 0x0302;\r
+C1RXF0EIDL = 0x0304;\r
+_C1RXF0EIDL = 0x0304;\r
+C1RXF1SID = 0x0308;\r
+_C1RXF1SID = 0x0308;\r
+C1RXF1EIDH = 0x030A;\r
+_C1RXF1EIDH = 0x030A;\r
+C1RXF1EIDL = 0x030C;\r
+_C1RXF1EIDL = 0x030C;\r
+C1RXF2SID = 0x0310;\r
+_C1RXF2SID = 0x0310;\r
+C1RXF2EIDH = 0x0312;\r
+_C1RXF2EIDH = 0x0312;\r
+C1RXF2EIDL = 0x0314;\r
+_C1RXF2EIDL = 0x0314;\r
+C1RXF3SID = 0x0318;\r
+_C1RXF3SID = 0x0318;\r
+C1RXF3EIDH = 0x031A;\r
+_C1RXF3EIDH = 0x031A;\r
+C1RXF3EIDL = 0x031C;\r
+_C1RXF3EIDL = 0x031C;\r
+C1RXF4SID = 0x0320;\r
+_C1RXF4SID = 0x0320;\r
+C1RXF4EIDH = 0x0322;\r
+_C1RXF4EIDH = 0x0322;\r
+C1RXF4EIDL = 0x0324;\r
+_C1RXF4EIDL = 0x0324;\r
+C1RXF5SID = 0x0328;\r
+_C1RXF5SID = 0x0328;\r
+C1RXF5EIDH = 0x032A;\r
+_C1RXF5EIDH = 0x032A;\r
+C1RXF5EIDL = 0x032C;\r
+_C1RXF5EIDL = 0x032C;\r
+C1RXM0SID = 0x0330;\r
+_C1RXM0SID = 0x0330;\r
+C1RXM0EIDH = 0x0332;\r
+_C1RXM0EIDH = 0x0332;\r
+C1RXM0EIDL = 0x0334;\r
+_C1RXM0EIDL = 0x0334;\r
+C1RXM1SID = 0x0338;\r
+_C1RXM1SID = 0x0338;\r
+C1RXM1EIDH = 0x033A;\r
+_C1RXM1EIDH = 0x033A;\r
+C1RXM1EIDL = 0x033C;\r
+_C1RXM1EIDL = 0x033C;\r
+C1TX2SID = 0x0340;\r
+_C1TX2SID = 0x0340;\r
+C1TX2EID = 0x0342;\r
+_C1TX2EID = 0x0342;\r
+C1TX2DLC = 0x0344;\r
+_C1TX2DLC = 0x0344;\r
+C1TX2B1 = 0x0346;\r
+_C1TX2B1 = 0x0346;\r
+C1TX2B2 = 0x0348;\r
+_C1TX2B2 = 0x0348;\r
+C1TX2B3 = 0x034A;\r
+_C1TX2B3 = 0x034A;\r
+C1TX2B4 = 0x034C;\r
+_C1TX2B4 = 0x034C;\r
+C1TX2CON = 0x034E;\r
+_C1TX2CON = 0x034E;\r
+C1TX1SID = 0x0350;\r
+_C1TX1SID = 0x0350;\r
+C1TX1EID = 0x0352;\r
+_C1TX1EID = 0x0352;\r
+C1TX1DLC = 0x0354;\r
+_C1TX1DLC = 0x0354;\r
+C1TX1B1 = 0x0356;\r
+_C1TX1B1 = 0x0356;\r
+C1TX1B2 = 0x0358;\r
+_C1TX1B2 = 0x0358;\r
+C1TX1B3 = 0x035A;\r
+_C1TX1B3 = 0x035A;\r
+C1TX1B4 = 0x035C;\r
+_C1TX1B4 = 0x035C;\r
+C1TX1CON = 0x035E;\r
+_C1TX1CON = 0x035E;\r
+C1TX0SID = 0x0360;\r
+_C1TX0SID = 0x0360;\r
+C1TX0EID = 0x0362;\r
+_C1TX0EID = 0x0362;\r
+C1TX0DLC = 0x0364;\r
+_C1TX0DLC = 0x0364;\r
+C1TX0B1 = 0x0366;\r
+_C1TX0B1 = 0x0366;\r
+C1TX0B2 = 0x0368;\r
+_C1TX0B2 = 0x0368;\r
+C1TX0B3 = 0x036A;\r
+_C1TX0B3 = 0x036A;\r
+C1TX0B4 = 0x036C;\r
+_C1TX0B4 = 0x036C;\r
+C1TX0CON = 0x036E;\r
+_C1TX0CON = 0x036E;\r
+C1RX1SID = 0x0370;\r
+_C1RX1SID = 0x0370;\r
+C1RX1EID = 0x0372;\r
+_C1RX1EID = 0x0372;\r
+C1RX1DLC = 0x0374;\r
+_C1RX1DLC = 0x0374;\r
+C1RX1B1 = 0x0376;\r
+_C1RX1B1 = 0x0376;\r
+C1RX1B2 = 0x0378;\r
+_C1RX1B2 = 0x0378;\r
+C1RX1B3 = 0x037A;\r
+_C1RX1B3 = 0x037A;\r
+C1RX1B4 = 0x037C;\r
+_C1RX1B4 = 0x037C;\r
+C1RX1CON = 0x037E;\r
+_C1RX1CON = 0x037E;\r
+C1RX0SID = 0x0380;\r
+_C1RX0SID = 0x0380;\r
+C1RX0EID = 0x0382;\r
+_C1RX0EID = 0x0382;\r
+C1RX0DLC = 0x0384;\r
+_C1RX0DLC = 0x0384;\r
+C1RX0B1 = 0x0386;\r
+_C1RX0B1 = 0x0386;\r
+C1RX0B2 = 0x0388;\r
+_C1RX0B2 = 0x0388;\r
+C1RX0B3 = 0x038A;\r
+_C1RX0B3 = 0x038A;\r
+C1RX0B4 = 0x038C;\r
+_C1RX0B4 = 0x038C;\r
+C1RX0CON = 0x038E;\r
+_C1RX0CON = 0x038E;\r
+C1CTRL = 0x0390;\r
+_C1CTRL = 0x0390;\r
+C1CFG1 = 0x0392;\r
+_C1CFG1 = 0x0392;\r
+C1CFG2 = 0x0394;\r
+_C1CFG2 = 0x0394;\r
+C1INTF = 0x0396;\r
+_C1INTF = 0x0396;\r
+C1INTE = 0x0398;\r
+_C1INTE = 0x0398;\r
+C1EC = 0x039A;\r
+_C1EC = 0x039A;\r
+C1RERRCNT = 0x039A;\r
+_C1RERRCNT = 0x039A;\r
+C1TERRCNT = 0x039B;\r
+_C1TERRCNT = 0x039B;\r
+\r
+/*==========================================================================\r
+**\r
+** System Integration Block Registers\r
+**\r
+==========================================================================*/\r
+ RCON = 0x0740;\r
+_RCON = 0x0740;\r
+ OSCCON = 0x0742;\r
+_OSCCON = 0x0742;\r
+\r
+/*==========================================================================\r
+**\r
+** Non Volatile Memory Registers\r
+**\r
+==========================================================================*/\r
+ NVMCON = 0x0760;\r
+_NVMCON = 0x0760;\r
+ NVMADR = 0x0762;\r
+_NVMADR = 0x0762;\r
+ NVMADRU = 0x0764;\r
+_NVMADRU = 0x0764;\r
+ NVMKEY = 0x0766;\r
+_NVMKEY = 0x0766;\r
+\r
+/*==========================================================================\r
+**\r
+** Peripheral Module Disable Registers\r
+**\r
+==========================================================================*/\r
+ PMD1 = 0x0770;\r
+_PMD1 = 0x0770;\r
+ PMD2 = 0x0772;\r
+_PMD2 = 0x0772;\r
+ PMD3 = 0x0774;\r
+_PMD3 = 0x0774;\r
+/*\r
+**End of SFR Definitions required for both C and Assembly files\r
+*/\r
+\r
+\r
+/*=========================================================================\r
+**\r
+**Start of Additional SFR Definitions that are required specifically\r
+**for the C header file.\r
+**\r
+==========================================================================*/\r
+ ACCA = 0x0022;\r
+_ACCA = 0x0022;\r
+ ACCB = 0x0028;\r
+_ACCB = 0x0028;\r
+ SRbits = 0x0042;\r
+_SRbits = 0x0042;\r
+ CORCONbits = 0x0044;\r
+_CORCONbits = 0x0044;\r
+ MODCONbits = 0x0046;\r
+_MODCONbits = 0x0046;\r
+ XBREVbits = 0x0050;\r
+_XBREVbits = 0x0050;\r
+ DISICNTbits = 0x0052;\r
+_DISICNTbits = 0x0052;\r
+ INTCON1bits = 0x0080;\r
+_INTCON1bits = 0x0080;\r
+ INTCON2bits = 0x0082;\r
+_INTCON2bits = 0x0082;\r
+ IFS0bits = 0x0084;\r
+_IFS0bits = 0x0084;\r
+ IFS1bits = 0x0086;\r
+_IFS1bits = 0x0086;\r
+ IFS2bits = 0x0088;\r
+_IFS2bits = 0x0088;\r
+ IEC0bits = 0x008C;\r
+_IEC0bits = 0x008C;\r
+ IEC1bits = 0x008E;\r
+_IEC1bits = 0x008E;\r
+ IEC2bits = 0x0090;\r
+_IEC2bits = 0x0090;\r
+ IPC0bits = 0x0094;\r
+_IPC0bits = 0x0094;\r
+ IPC1bits = 0x0096;\r
+_IPC1bits = 0x0096;\r
+ IPC2bits = 0x0098;\r
+_IPC2bits = 0x0098;\r
+ IPC3bits = 0x009A;\r
+_IPC3bits = 0x009A;\r
+ IPC4bits = 0x009C;\r
+_IPC4bits = 0x009C;\r
+ IPC5bits = 0x009E;\r
+_IPC5bits = 0x009E;\r
+ IPC6bits = 0x00A0;\r
+_IPC6bits = 0x00A0;\r
+ IPC9bits = 0x00A6;\r
+_IPC9bits = 0x00A6;\r
+ IPC10bits = 0x00A8;\r
+_IPC10bits = 0x00A8;\r
+ IPC11bits = 0x00AA;\r
+_IPC11bits = 0x00AA;\r
+ CNEN1bits = 0x00C0;\r
+_CNEN1bits = 0x00C0;\r
+ CNPU1bits = 0x00C4;\r
+_CNPU1bits = 0x00C4;\r
+ T1CONbits = 0x0104;\r
+_T1CONbits = 0x0104;\r
+ T2CONbits = 0x0110;\r
+_T2CONbits = 0x0110;\r
+ T3CONbits = 0x0112;\r
+_T3CONbits = 0x0112;\r
+ T4CONbits = 0x011E;\r
+_T4CONbits = 0x011E;\r
+ T5CONbits = 0x0120;\r
+_T5CONbits = 0x0120;\r
+ QEICONbits = 0x0122;\r
+_QEICONbits = 0x0122;\r
+ DFLTCONbits = 0x0124;\r
+_DFLTCONbits = 0x0124;\r
+ IC1CONbits = 0x0142;\r
+_IC1CONbits = 0x0142;\r
+ IC2CONbits = 0x0146;\r
+_IC2CONbits = 0x0146;\r
+ IC7CONbits = 0x015A;\r
+_IC7CONbits = 0x015A;\r
+ IC8CONbits = 0x015E;\r
+_IC8CONbits = 0x015E;\r
+ OC1CONbits = 0x0184;\r
+_OC1CONbits = 0x0184;\r
+ OC2CONbits = 0x018A;\r
+_OC2CONbits = 0x018A;\r
+ PTCONbits = 0x01C0;\r
+_PTCONbits = 0x01C0;\r
+ PTMRbits = 0x01C2;\r
+_PTMRbits = 0x01C2;\r
+ PTPERbits = 0x01C4;\r
+_PTPERbits = 0x01C4;\r
+ SEVTCMPbits = 0x01C6;\r
+_SEVTCMPbits = 0x01C6;\r
+ PWMCON1bits = 0x01C8;\r
+_PWMCON1bits = 0x01C8;\r
+ PWMCON2bits = 0x01CA;\r
+_PWMCON2bits = 0x01CA;\r
+ DTCON1bits = 0x01CC;\r
+_DTCON1bits = 0x01CC;\r
+ FLTACONbits = 0x01D0;\r
+_FLTACONbits = 0x01D0;\r
+ OVDCONbits = 0x01D4;\r
+_OVDCONbits = 0x01D4;\r
+ I2CRCVbits = 0x0200;\r
+_I2CRCVbits = 0x0200;\r
+ I2CTRNbits = 0x0202;\r
+_I2CTRNbits = 0x0202;\r
+ I2CBRGbits = 0x0204;\r
+_I2CBRGbits = 0x0204;\r
+ I2CCONbits = 0x0206;\r
+_I2CCONbits = 0x0206;\r
+ I2CSTATbits = 0x0208;\r
+_I2CSTATbits = 0x0208;\r
+ I2CADDbits = 0x020A;\r
+_I2CADDbits = 0x020A;\r
+ U1MODEbits = 0x020C;\r
+_U1MODEbits = 0x020C;\r
+ U1STAbits = 0x020E;\r
+_U1STAbits = 0x020E;\r
+ U1TXREGbits = 0x0210;\r
+_U1TXREGbits = 0x0210;\r
+ U1RXREGbits = 0x0212;\r
+_U1RXREGbits = 0x0212;\r
+ SPI1STATbits = 0x0220;\r
+_SPI1STATbits = 0x0220;\r
+ SPI1CONbits = 0x0222;\r
+_SPI1CONbits = 0x0222;\r
+ ADCON1bits = 0x02A0;\r
+_ADCON1bits = 0x02A0;\r
+ ADCON2bits = 0x02A2;\r
+_ADCON2bits = 0x02A2;\r
+ ADCON3bits = 0x02A4;\r
+_ADCON3bits = 0x02A4;\r
+ ADCHSbits = 0x02A6;\r
+_ADCHSbits = 0x02A6;\r
+ ADPCFGbits = 0x02A8;\r
+_ADPCFGbits = 0x02A8;\r
+ ADCSSLbits = 0x02AA;\r
+_ADCSSLbits = 0x02AA;\r
+ TRISBbits = 0x02C6;\r
+_TRISBbits = 0x02C6;\r
+ PORTBbits = 0x02C8;\r
+_PORTBbits = 0x02C8;\r
+ LATBbits = 0x02CA;\r
+_LATBbits = 0x02CA;\r
+ TRISCbits = 0x02CC;\r
+_TRISCbits = 0x02CC;\r
+ PORTCbits = 0x02CE;\r
+_PORTCbits = 0x02CE;\r
+ LATCbits = 0x02D0;\r
+_LATCbits = 0x02D0;\r
+ TRISDbits = 0x02D2;\r
+_TRISDbits = 0x02D2;\r
+ PORTDbits = 0x02D4;\r
+_PORTDbits = 0x02D4;\r
+ LATDbits = 0x02D6;\r
+_LATDbits = 0x02D6;\r
+ TRISEbits = 0x02D8;\r
+_TRISEbits = 0x02D8;\r
+ PORTEbits = 0x02DA;\r
+_PORTEbits = 0x02DA;\r
+ LATEbits = 0x02DC;\r
+_LATEbits = 0x02DC;\r
+ TRISFbits = 0x02DE;\r
+_TRISFbits = 0x02DE;\r
+ PORTFbits = 0x02E0;\r
+_PORTFbits = 0x02E0;\r
+\r
+ LATFbits = 0x02E2;\r
+_LATFbits = 0x02E2;\r
+ C1RXF0SIDbits = 0x0300;\r
+_C1RXF0SIDbits = 0x0300;\r
+ C1RXF0EIDHbits = 0x0302;\r
+_C1RXF0EIDHbits = 0x0302;\r
+ C1RXF0EIDLbits = 0x0304;\r
+_C1RXF0EIDLbits = 0x0304;\r
+ C1RXF1SIDbits = 0x0308;\r
+_C1RXF1SIDbits = 0x0308;\r
+ C1RXF1EIDHbits = 0x030A;\r
+_C1RXF1EIDHbits = 0x030A;\r
+ C1RXF1EIDLbits = 0x030C;\r
+_C1RXF1EIDLbits = 0x030C;\r
+ C1RXF2SIDbits = 0x0310;\r
+_C1RXF2SIDbits = 0x0310;\r
+ C1RXF2EIDHbits = 0x0312;\r
+_C1RXF2EIDHbits = 0x0312;\r
+ C1RXF2EIDLbits = 0x0314;\r
+_C1RXF2EIDLbits = 0x0314;\r
+ C1RXF3SIDbits = 0x0318;\r
+_C1RXF3SIDbits = 0x0318;\r
+ C1RXF3EIDHbits = 0x031A;\r
+_C1RXF3EIDHbits = 0x031A;\r
+ C1RXF3EIDLbits = 0x031C;\r
+_C1RXF3EIDLbits = 0x031C;\r
+ C1RXF4SIDbits = 0x0320;\r
+_C1RXF4SIDbits = 0x0320;\r
+ C1RXF4EIDHbits = 0x0322;\r
+_C1RXF4EIDHbits = 0x0322;\r
+ C1RXF4EIDLbits = 0x0324;\r
+_C1RXF4EIDLbits = 0x0324;\r
+ C1RXF5SIDbits = 0x0328;\r
+_C1RXF5SIDbits = 0x0328;\r
+ C1RXF5EIDHbits = 0x032A;\r
+_C1RXF5EIDHbits = 0x032A;\r
+ C1RXF5EIDLbits = 0x032C;\r
+_C1RXF5EIDLbits = 0x032C;\r
+ C1RXM0SIDbits = 0x0330;\r
+_C1RXM0SIDbits = 0x0330;\r
+ C1RXM0EIDHbits = 0x0332;\r
+_C1RXM0EIDHbits = 0x0332;\r
+ C1RXM0EIDLbits = 0x0334;\r
+_C1RXM0EIDLbits = 0x0334;\r
+ C1RXM1SIDbits = 0x0338;\r
+_C1RXM1SIDbits = 0x0338;\r
+ C1RXM1EIDHbits = 0x033A;\r
+_C1RXM1EIDHbits = 0x033A;\r
+ C1RXM1EIDLbits = 0x033C;\r
+_C1RXM1EIDLbits = 0x033C;\r
+ C1TX2SIDbits = 0x0340;\r
+_C1TX2SIDbits = 0x0340;\r
+ C1TX2EIDbits = 0x0342;\r
+_C1TX2EIDbits = 0x0342;\r
+ C1TX2DLCbits = 0x0344;\r
+_C1TX2DLCbits = 0x0344;\r
+ C1TX2B1bits = 0x0346;\r
+_C1TX2B1bits = 0x0346;\r
+ C1TX2B2bits = 0x0348;\r
+_C1TX2B2bits = 0x0348;\r
+ C1TX2B3bits = 0x034A;\r
+_C1TX2B3bits = 0x034A;\r
+ C1TX2B4bits = 0x034C;\r
+_C1TX2B4bits = 0x034C;\r
+ C1TX2CONbits = 0x034E;\r
+_C1TX2CONbits = 0x034E;\r
+ C1TX1SIDbits = 0x0350;\r
+_C1TX1SIDbits = 0x0350;\r
+ C1TX1EIDbits = 0x0352;\r
+_C1TX1EIDbits = 0x0352;\r
+ C1TX1DLCbits = 0x0354;\r
+_C1TX1DLCbits = 0x0354;\r
+ C1TX1B1bits = 0x0356;\r
+_C1TX1B1bits = 0x0356;\r
+ C1TX1B2bits = 0x0358;\r
+_C1TX1B2bits = 0x0358;\r
+ C1TX1B3bits = 0x035A;\r
+_C1TX1B3bits = 0x035A;\r
+ C1TX1B4bits = 0x035C;\r
+_C1TX1B4bits = 0x035C;\r
+ C1TX1CONbits = 0x035E;\r
+_C1TX1CONbits = 0x035E;\r
+ C1TX0SIDbits = 0x0360;\r
+_C1TX0SIDbits = 0x0360;\r
+ C1TX0EIDbits = 0x0362;\r
+_C1TX0EIDbits = 0x0362;\r
+ C1TX0DLCbits = 0x0364;\r
+_C1TX0DLCbits = 0x0364;\r
+ C1TX0B1bits = 0x0366;\r
+_C1TX0B1bits = 0x0366;\r
+ C1TX0B2bits = 0x0368;\r
+_C1TX0B2bits = 0x0368;\r
+ C1TX0B3bits = 0x036A;\r
+_C1TX0B3bits = 0x036A;\r
+ C1TX0B4bits = 0x036C;\r
+_C1TX0B4bits = 0x036C;\r
+ C1TX0CONbits = 0x036E;\r
+_C1TX0CONbits = 0x036E;\r
+ C1RX1SIDbits = 0x0370;\r
+_C1RX1SIDbits = 0x0370;\r
+ C1RX1EIDbits = 0x0372;\r
+_C1RX1EIDbits = 0x0372;\r
+ C1RX1DLCbits = 0x0374;\r
+_C1RX1DLCbits = 0x0374;\r
+ C1RX1B1bits = 0x0376;\r
+_C1RX1B1bits = 0x0376;\r
+ C1RX1B2bits = 0x0378;\r
+_C1RX1B2bits = 0x0378;\r
+ C1RX1B3bits = 0x037A;\r
+_C1RX1B3bits = 0x037A;\r
+ C1RX1B4bits = 0x037C;\r
+_C1RX1B4bits = 0x037C;\r
+ C1RX1CONbits = 0x037E;\r
+_C1RX1CONbits = 0x037E;\r
+ C1RX0SIDbits = 0x0380;\r
+_C1RX0SIDbits = 0x0380;\r
+ C1RX0EIDbits = 0x0382;\r
+_C1RX0EIDbits = 0x0382;\r
+ C1RX0DLCbits = 0x0384;\r
+_C1RX0DLCbits = 0x0384;\r
+ C1RX0B1bits = 0x0386;\r
+_C1RX0B1bits = 0x0386;\r
+ C1RX0B2bits = 0x0388;\r
+_C1RX0B2bits = 0x0388;\r
+ C1RX0B3bits = 0x038A;\r
+_C1RX0B3bits = 0x038A;\r
+ C1RX0B4bits = 0x038C;\r
+_C1RX0B4bits = 0x038C;\r
+ C1RX0CONbits = 0x038E;\r
+_C1RX0CONbits = 0x038E;\r
+ C1CTRLbits = 0x0390;\r
+_C1CTRLbits = 0x0390;\r
+ C1CFG1bits = 0x0392;\r
+_C1CFG1bits = 0x0392;\r
+ C1CFG2bits = 0x0394;\r
+_C1CFG2bits = 0x0394;\r
+ C1INTFbits = 0x0396;\r
+_C1INTFbits = 0x0396;\r
+ C1INTEbits = 0x0398;\r
+_C1INTEbits = 0x0398;\r
+ C1ECbits = 0x039A;\r
+_C1ECbits = 0x039A;\r
+\r
+ RCONbits = 0x0740;\r
+_RCONbits = 0x0740;\r
+ OSCCONbits = 0x742;\r
+_OSCCONbits = 0x742;\r
+ NVMCONbits = 0x0760;\r
+_NVMCONbits = 0x0760;\r
+ PMD1bits = 0x0770;\r
+_PMD1bits = 0x0770;\r
+ PMD2bits = 0x0772;\r
+_PMD2bits = 0x0772;\r
+ PMD3bits = 0x0774;\r
+_PMD3bits = 0x0774;\r
+/*\r
+**end of SFR definitions required for C header\r
+*/\r
+\r
+/* SFR base address definitions for various peripherals */\r
+\r
+ IC1 = 0x0140;\r
+_IC1 = 0x0140;\r
+ IC2 = 0x0144;\r
+_IC2 = 0x0144;\r
+ IC3 = 0x0148;\r
+_IC3 = 0x0148;\r
+ IC4 = 0x014C;\r
+_IC4 = 0x014C;\r
+\r
+ OC1 = 0x0180;\r
+_OC1 = 0x0180;\r
+ OC2 = 0x0186;\r
+_OC2 = 0x0186;\r
+\r
+ UART1 = 0x020C;\r
+_UART1 = 0x020C;\r
+\r
+ SPI1 = 0x0220;\r
+_SPI1 = 0x0220;\r
+\r
+ CAN1 = 0x0300;\r
+_CAN1 = 0x0300;\r
+\r
+/*=========================================================================\r
+**end of SFR definitions required in Data Space\r
+*========================================================================*/\r
+\r
+++ /dev/null
-/******************************************************************************
- Actuator Interface Card
- Host Interface Library
-
- Copyright (C) 2003..2007 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#ifndef _AIC_H
-#define _AIC_H
-
-/** @file aic.h
- Host Interface Library
- @author Walter Fetter Lages <w.fetter@ieee.org>
-*/
-
-/** @defgroup aichost AIC Host Interface
-@{
-*/
-
-/** Encapsulates functions used to provide communication between host and AIC
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-* @version AIC-1.3.0
-*/
-class AIC_COMM
-{
- public:
-
-/** Sends a command and its arguments to AIC
-* @param command Code of the command to send to AIC
-* @param ... Command arguments
-* @see AIC_COMMAND
-*/
- virtual void send_command(int command,...)=0;
-
-/** Receives a status message from AIC
-* @param status Code of the status sent by AIC
-* @param ... Pointers to status arguments
-* @see AIC_COMMAND
-*/
- virtual int get_status(int status,...)=0;
-
-/** Finalizes an AIC_COMM
-*/
- virtual ~AIC_COMM(void) {};
-
-/** Thrown by AIC errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD { };
-
-/** Thrown by AIC command errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-* @version AIC-1.3.0
-*/
- class BAD_COMMAND: public BAD { };
-
-/** Thrown by AIC send errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-* @version AIC-1.3.0
-*/
- class BAD_SEND: public BAD { };
-
-/** Thrown by AIC receive errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-* @version AIC-1.3.0
-*/
- class BAD_RECEIVE: public BAD { };
-
-};
-
-/** Provices access to the motor driver in an Actuator Interface Card
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-* @version AIC-1.3.0
-*/
-class AIC_MOTOR
-{
-/** Communication channel
-*/
- AIC_COMM *port;
-
- public:
-
-/** Initializes the motor driver
-* @param comm pointer to AIC_COMM object implementing the communication channel
-*/
- AIC_MOTOR(AIC_COMM *comm);
-
-/** Turns the motor driver on
-*/
- void on(void);
-
-/** Turns the motor driver off
-*/
- void off(void);
-
-/** Sets the voltage to be applied by the motor driver
-* @param voltage to be applied by the motor driver
-* @return the duty-cycle of the associated PWM
-*/
- double operator=(double voltage);
-};
-
-/** Provides access to incremental encoder in an Actuator Interface Card
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-* @version AIC-1.3.0
-*/
-class AIC_ENCODER
-{
-/** Communication channel
-*/
- AIC_COMM *port;
-
- public:
-
-/** Initializes encoder, clears the counter on the quadrature decoder chip
-* @param comm pointer to AIC_COMM object implementing the communication channel
-*/
- AIC_ENCODER(AIC_COMM *comm);
-
-/** Reads the displacement of encoder in radians
-* @return the displacement in radians since the last time
-* the encoder was read
-*/
- double read(void);
-
-/** Reads the displacement of encoder in radians and the status of the sync-switch
-* @param index pointer to an int where the sync-switch status is returned
-* @return the displacement in radians since the last time
-* the encoder was read
-*/
- double read(int *index);
-};
-
-/** Provides access to electromagnetic brake in an Actuator Interface Card
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-* @version AIC-1.3.0
-*/
-class AIC_BRAKE
-{
-/** Communication channel
-*/
- AIC_COMM *port;
-
- public:
-
-/** Initializes brake
-* @param comm pointer to AIC_COMM object implementing the communication channel
-*/
- AIC_BRAKE(AIC_COMM *comm);
-
-/** Applies the electromagnetic brake
-*/
- void apply(void);
-
-/** Releases the electromagnetic brake
-*/
- void release(void);
-};
-
-
-/** Provides access to sync-switch in an Actuator Interface Card
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-* @version AIC-1.3.0
-*/
-class AIC_INDEX
-{
-/** Communication channel
-*/
- AIC_COMM *port;
-
- public:
-
-/** Initializes index
-* @param comm pointer to AIC_COMM object implementing the communication channel
-*/
- AIC_INDEX(AIC_COMM *comm);
-
-/** Reads the sync-switch
-* @return the sync-switch state
-*/
- int read(void);
-
-/** Reads the sync-switch and the encoder displacement in radians
-* @param disp pointer to a double where encoder displacement is returned
-* @return the sync-switch state
-*/
- int read(double *disp);
-};
-
-/** Provides access to all devices in an Actuator Interface Card
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-* @version AIC-1.6.1
-*/
-class AIC
-{
- AIC_COMM *port;
-
- public:
-
-/** Motor actuated by AIC
-*/
- AIC_MOTOR motor;
-
-/** Encoder read by AIC
-*/
- AIC_ENCODER encoder;
-
-/** Brake actuaded by AIC
-*/
- AIC_BRAKE brake;
-
-/** Sync-switch read by AIC
-*/
- AIC_INDEX index;
-
-/** Initializes an AIC
-* @param comm pointer to AIC_COMM object implementing the communication channel
-*/
- AIC(AIC_COMM *comm);
-
-/** Finalizes an AIC
-*/
- virtual ~AIC(void) {};
-
-/** Resets an AIC
-* @since AIC-1.6.1
-*/
- void reset(void);
-
-/** Sets the reference for motor controller
-* @param ref reference
-* @since AIC-1.6.1
-*/
- void reference(double ref);
-
-/** Gets AIC busy status
-* @return 1 if AIC is busy, 0 otherwise
-* @since AIC-1.6.1
-* @see AIC_STATUS
-*/
- int busy(void);
-
-/** Sends a command and its arguments to AIC
-* @param command Code of the command to send to AIC
-* @param n size of argument buffer
-* @param buffer pointer to arguments
-* @see AIC_COMMAND
-*/
- void send_command(int command,int n,const void *buffer);
-
-};
-
-/**
-@}
-*/
-#endif
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Host Interface Library
- CAN Communication
- Copyright (C) 2003 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#ifndef _AICCAN_H
-#define _AICCAN_H
-
-#include <canlib.h>
-
-#include <aic.h>
-
-/** @file aiccan.h
- CAN Communication
- @author Walter Fetter Lages <w.fetter@ieee.org>
-*/
-
-/** @addtogroup aichost
-@{
-*/
-
-
-
-/** Implements a CAN communication channel
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-* @version AIC-1.3.0
-*/
-class AIC_CAN:public AIC_COMM, public AIC
-{
- /// AIC CAN identification mask
- const static int AIC_ID_MASK=0x01f; ///< AIC CAN identification mask
-
- const static int AIC_CMD_MASK=0x7e0; ///< AIC CAN command mask
-
- canHandle handle; ///< Handle to a CAN channel
- int aicnumber; ///< Number of aic to communicate
-
- public:
-
-/** Creates a CAN channel to AIC
-* @param aic number of aic to be connected to
-* @param bus CAN bus to use
-*/
- AIC_CAN(int aic,int bus=0);
-
-/** Closes the CAN channel
-*/
- virtual ~AIC_CAN(void);
-
-/** Sends a command and its arguments to AIC
-* @param command Code of the command to send to AIC
-* @param ... Command arguments
-* @see AIC_COMMAND
-*/
- void send_command(int command,...);
-
-/** Receives a status message from AIC
-* @param status Code of the status sent by AIC
-* @param ... Pointers to status arguments
-* @see AIC_COMMAND
-*/
- int get_status(int status,...);
-
-/** Thrown by AIC_CAN errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD:public AIC_COMM::BAD { };
-
-/** Thrown by AIC_CAN open errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD_OPEN:public BAD { };
-
-/** Thrown by AIC_CAN parameters errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD_PARMS:public BAD { };
-
-/** Thrown by AIC_CAN bus on errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD_BUSON:public BAD { };
-
-/** Thrown by AIC_CAN close errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD_CLOSE:public BAD { };
-
-/** Thrown by AIC_CAN send errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD_SEND:public BAD,AIC_COMM::BAD_SEND { };
-
-/** Thrown by AIC_CAN receive errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD_RECEIVE:public BAD,AIC_COMM::BAD_RECEIVE { };
-
-/** Thrown by AIC_CAN command errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD_COMMAND:public BAD,AIC_COMM::BAD_COMMAND { };
-};
-
-/**
-@}
-*/
-#endif
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Host Interface Simulation
- Copyright (C) 2003, 2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#ifndef _AICHOST_H
-#define _AICHOST_H
-
-#include <aicnet.h>
-
-/** @file aichost.h
- AIC Host Interface Simulator
- @author Walter Fetter Lages <w.fetter@ieee.org>
-*/
-
-/** @addtogroup aicsim
-@{
-*/
-
-/** Encapsulates functions used to provide communication between AIC simulator and host
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-* @version AIC-1.5.0
-*/
-class AIC_HOST
-{
-
- protected:
-
- double u; ///< Motor voltage
- double ref; ///< Controller reference
- int status; ///< Current Status
-
- public:
-
-/** AIC simulator status
-*/
- enum STATUS
- {
- MOTOR_ON = 1, ///< Motor is on
- BRAKE_APPLIED = 2 ///< Brake is applied
- };
-
-/** Initializes AIC simulator communication
-*/
- AIC_HOST(void);
-
-/** Closes AIC simulator communication
-*/
- virtual ~AIC_HOST(void);
-
-/** Gets the command code received from host
-* @return command code
-* @see AIC_COMMAND
-*/
- virtual int command(void)=0;
-
-/** Gets the status from AIC simulator
-* @return status code
-* @see STATUS
-*/
- int getstatus(void) const;
-
-/** Send AIC simulator motor displacement and sync-switch status to host
-* @param disp motor displacement in radians
-* @param index sync-switch index
-*/
- virtual void send_status(double disp,int index)=0;
-
-/** Gets the voltage to be applied to motor received with the last command
-* @return voltage
-*/
- double voltage(void) const;
-
-/** Gets the reference for Controller associtated to motor received with the last command
-* @return reference
-* @since AIC-1.6.0
-*/
- double reference(void) const;
-
-/** Thrown by AIC_HOST errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD { };
-
-/** Thrown by AIC_HOST send errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD_SEND: public BAD { };
-
-/** Thrown by AIC_HOST receive errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD_RECEIVE: public BAD { };
-};
-
-/**
-@}
-*/
-
-#endif
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Host Interface Simulation
- CAN Communication
- Copyright (C) 2003, 2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#ifndef _AICHOSTCAN_H
-#define _AICHOSTCAN_H
-
-#include <canlib.h>
-
-#include<aichost.h>
-
-/** @file aichostcan.h
- AIC Simulator CAN Communication
- @author Walter Fetter Lages <w.fetter@ieee.org>
-*/
-
-/** @addtogroup aicsim
-@{
-*/
-
-/** Provides CAN communication between AIC simulator and host
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-* @version AIC-1.3.0
-*/
-class AIC_HOST_CAN:public AIC_HOST
-{
- const static int AIC_ID_MASK=0x01f; ///< AIC CAN identification mask
-
- const static int AIC_CMD_MASK=0x7e0; ///< AIC CAN command mask
-
- canHandle handle; ///< Handle to a CAN channel
- int aicnumber; ///< Number of aic to communicate
-
- public:
-
-/** Creates a CAN channel to host
-* @param aicid number of aic connecting to host
-* @param bus CAN bus to use
-*/
- AIC_HOST_CAN(int aicid,int bus=0);
-
-/** Closes the CAN channel
-*/
- ~AIC_HOST_CAN(void);
-
-/** Gets the command code received from host
-* @return command code
-* @see AIC_COMMAND
-*/
- int command(void);
-
-/** Send AIC simulator motor displacement and sync-switch status to host
-* @param disp motor displacement in radians
-* @param index sync-switch index
-*/
- void send_status(double disp,int index);
-
-
-/** Thrown by AIC_HOST_CAN errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD:public AIC_HOST::BAD { };
-
-/** Thrown by AIC_HOST_CAN open errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD_OPEN:public BAD { };
-
-/** Thrown by AIC_HOST_CAN parameters errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD_PARMS:public BAD { };
-
-/** Thrown by AIC_HOST_CAN bus on errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD_BUSON:public BAD { };
-
-/** Thrown by AIC_HOST_CAN close errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD_CLOSE:public BAD { };
-
-/** Thrown by AIC_HOST_CAN send errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD_SEND:public BAD,AIC_HOST::BAD_SEND { };
-
-/** Thrown by AIC_HOST_CAN receive errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD_RECEIVE:public BAD,AIC_HOST::BAD_RECEIVE { };
-
-};
-
-/**
-@}
-*/
-#endif
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Host Interface Simulation
- UDP Communication
- Copyright (C) 2003, 2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#ifndef _AICHOSTUDP_H
-#define _AICHOSTUDP_H
-
-#include <netinet/in.h>
-
-#include<aichost.h>
-#include <aicnet.h>
-
-/** @file aichostudp.h
- AIC Simulator UDP Communication
- @author Walter Fetter Lages <w.fetter@ieee.org>
-*/
-
-/** @addtogroup aicsim
-@{
-*/
-
-/** Provides UDP communication between AIC simulator and host
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-* @version AIC-1.3.0
-*/
-class AIC_HOST_UDP:public AIC_HOST
-{
- /// socket for receiving command
- struct sockaddr_in cmdaddr;
-
- /// file descriptor for socket command
- int cmdfd;
-
- /// socket for transmitting status signal
- struct sockaddr_in statusaddr;
-
- /// file descriptor for status socket
- int statusfd;
-
- public:
-
-/** Initializes AIC simulator UDP communication
- @param controllername pointer to a string with the name of controller host
- @param statusport UDP port to send status to
- @param cmdport UDP port to bind to receive commands
- @see aicnet.h
-*/
- AIC_HOST_UDP(const char *controllername,int statusport=STATUS_PORT,int cmdport=CMD_PORT);
-
-/** Closes AIC simulator UDP communication
-*/
- ~AIC_HOST_UDP(void);
-
-/** Gets the command code received from host
-* @return command code
-* @see AIC_COMMAND
-*/
- int command(void);
-
-/** Send AIC simulator motor displacement and sync-switch status to host
-* @param disp motor displacement in radians
-* @param index sync-switch index
-*/
- void send_status(double disp,int index);
-
-/** Thrown by AIC_HOST_UDP errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD: public AIC_HOST::BAD { };
-
-/** Thrown by AIC_HOST_UDP socket errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD_SOCKET: public BAD { };
-
-
-/** Thrown by AIC_HOST_UDP bind errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD_BIND: public BAD { };
-};
-
-/**
-@}
-*/
-#endif
+++ /dev/null
-/******************************************************************************
- Actuator Interface Card
- I/O Interface Library
-
- Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#ifndef _AICIO_H
-#define _AICIO_H
-
-/** @file aicio.h
-* I/O Interface Library
-* @author Walter Fetter Lages <w.fetter@ieee.org>
-* @since AIC-1.4.2
-*/
-
-/** @defgroup aicio AIC I/O Interface
-@{
-*/
-
-/** Reference frequency = 10MHz
-*/
-#define REF_FREQ 10e6
-
-/** Default Switching Frequency = 20KHz
-*/
-#define SW_FREQ 20e3
-
-/** H-bridge turn-off delay
-*/
-#define TURNOFF_DELAY 600e-9
-
-/** PWM minimal count value
-*/
-#define MIN_COUNT (unsigned int)(2*TURNOFF_DELAY*REF_FREQ)
-
-/** PWM maximal count value
-*/
-#define MAX_COUNT (unsigned int)(REF_FREQ/SW_FREQ)
-
-/** Initializes brake
-* @param base Base address for on board devices
-* @since AIC-1.4.2
-*/
-extern void brake_initialize(unsigned long base);
-
-/** Applies the electromagnetic brake
-* @since AIC-1.4.2
-*/
-extern void brake_apply(void);
-
-/** Releases the electromagnetic brake
-* @since AIC-1.4.2
-*/
-extern void brake_release(void);
-
-/** Initializes Index
-* @param base Base address for on board devices
-* @since AIC-1.4.2
-*/
-extern void index_initialize(unsigned long base);
-
-/** Reads the sync-switch
-* @return the sync-switch state
-* @since AIC-1.4.2
-*/
-extern unsigned long index_read(void);
-
-/** Sets the frequency of PWM in cycles of 10MHz
-* @param count number of cycles from 10 to 65530. Default
-* value is 500
-* @since AIC-1.4.2
-*/
-extern void pwm_set_count(unsigned int count);
-
-/** Sets the frequency of PWM
-* @param frequency frequency in Hz from 152.60Hz to 1MHz. Default
-* value is 20KHz
-* @since AIC-1.4.2
-*/
-extern void pwm_set_freq(float frequency);
-
-/** Returns the frequency of PWM
-* @return PWM frequency in Hz
-* @since AIC-1.4.2
-*/
-extern float pwm_get_freq(void);
-
-/** PWM initialization
-* @param base Base address for on board devices
-* @param min_count MIN_COUNT
-* @param count frequency of PWM in cycles of 10MHz. Number of cycles
-* from 10 to 65530.
-* @since AIC-1.4.2
-*/
-extern void pwm_initialize(unsigned long base,unsigned int min_count,unsigned int count);
-
-/** Finalizes the PWM
-* @since AIC-1.4.2
-*/
-extern void pwm_finalize(void);
-
-/** Sets the duty-cycle of PWM
-* @param dutycycle to be used by PWM as a float from 0 to 1.0
-* @return the count value programmed to the PWM timer
-* @since AIC-1.4.2
-*/
-extern unsigned long pwm_set_duty_float(float dutycycle);
-
-/** Sets the duty-cycle of PWM
-* @param dutycycle to be used by PWM as a int from 0 to 1000000
-* @return the count value programmed to the PWM timer
-* @since AIC-1.4.2
-*/
-extern unsigned long pwm_set_duty(unsigned long dutycycle);
-
-/** Turns the PWM on
-* @since AIC-1.4.2
-*/
-extern void pwm_on(void);
-
-/** Turns the PWM off
-* @since AIC-1.4.2
-*/
-extern void pwm_off(void);
-
-/** Initializes the motor driver
-* @param base Base address for on board devices
-* @param voltage Motor Voltage
-* @param freq PWM frequency
-* @since AIC-1.5.0
-*/
-extern void motor_initialize(unsigned long base,float voltage,float freq);
-
-/** Finalizes the motor driver
-* @since AIC-1.5.0
-*/
-extern void motor_finalize(void);
-
-/** Turns the motor driver on
-* @since AIC-1.5.0
-*/
-extern void motor_on(void);
-
-/** Turns the motor driver off
-* @since AIC-1.5.0
-*/
-extern void motor_off(void);
-
-/** Sets the voltage to be applied by the motor driver
-* @param voltage to be applied by the motor driver
-* @return the duty-cycle of the associated PWM
-* @since AIC-1.5.0
-*/
-extern float motor_set(float voltage);
-
-/** Clears the counter on the quadrature decoder chip
-* @since AIC-1.5.0
-*/
-extern encoder_clear(void);
-
-/** Initializes Encoder, clears the counter on the quadrature decoder chip
-* @param base Base address for on board devices
-* @param pulses Number of pulses per revolution of the encoder, considering the
-* quadrature decoder
-* @since AIC-1.5.0
-*/
-extern void encoder_initialize(unsigned long base,long pulses);
-
-/** Finalizes Encoder
-* @since AIC-1.5.0
-*/
-extern void encoder_finalize(void);
-
-/** Gets the count on the quadrature decoder chip
-* @return the number of pulses (in 2-complement) since the last time
-* the counter was cleared
-* @since AIC-1.5.0
-*/
-extern long encoder_get_count(void);
-
-/** Gets the count and clears the counter on the quadrature decoder chip
-* @return the number of pulses (in 2-complement) since the last time
-* the counter was cleared
-* @since AIC-1.5.0
-*/
-extern long encoder_get_count_and_clear(void);
-
-/** Reads the counter on the quadrature decoder chip and converts the motion
-* to radians
-* @return the displacement in radians since the last time
-* the encoder was cleared
-* @since AIC-1.5.0
-*/
-extern float encoder_read(void);
-
-/** Reads the counter on the quadrature decoder chip, converts the motion
-* to radians and clears the counter
-* @return the displacement in radians since the last time
-* the encoder was cleared
-* @since AIC-1.5.0
-*/
-extern float encoder_read_and_clear(void);
-
-/** Turns an AIC on
-* @since AIC-1.5.0
-*/
-extern void aic_on(void);
-
-/** Turns an AIC off
-* @since AIC-1.5.0
-*/
-extern void aic_off(void);
-
-/** Initializes an AIC
-* @param base Base address for on board devices
-* @param vm Motor Voltage
-* @param freq PWM frequency
-* @param np Pulses per encoder revolution
-* @since AIC-1.5.0
-*/
-extern void aic_initialize(unsigned long base,float vm,float freq,long np);
-
-/** Finalizes an AIC
-* @since AIC-1.5.0
-*/
-extern void aic_finalize(void);
-
-/**
-@}
-*/
-
-/* Unfortunately the TINI Native target does not support a linker, so all
-functions are inlined */
-#ifndef _MOTOR_C
-#include "../lib/aicio/motor.c"
-#endif
-
-#ifndef _ENCODER_C
-#include "../lib/aicio/encoder.c"
-#endif
-
-#ifndef _AIC_C
-#include "../lib/aicio/aic.c"
-#endif
-
-#endif
+++ /dev/null
-;******************************************************************************
-;
-; Actuator Interface Card
-; Utility Macros
-; Copyright (C) 2004 Walter Fetter Lages <w.fetter@ieee.org>
-;
-; 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 2 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, write to the Free Software
-; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-;
-; You can also obtain a copy of the GNU General Public License
-; at <http://www.gnu.org/licenses>.
-;
-;*******************************************************************************
-
-; store 24 bit data
-; parameters: addr?=address to store data into
-; inputs: dpx:dph:dhl=data to be stored
-; destroy: a
-; outputs: dpx1:dph1:dpl1=addr?
-STORE24 macro param addr?
- mov a,dpx
- orl DPS,#01h
- mov dptr,addr?
- movx @dptr,a
- inc dptr
- mov a,dph
- movx @dptr,a
- inc dptr
- mov a,dpl
- movx @dptr,a
- anl DPS,#0feh
- endm
-
-; load 24 bit data
-; parameters: addr?=address to load data from
-; inputs: none
-; destroy: a
-; outputs: dpx:dph:dpl=loaded data
-; dpx1:dph1:dpl1=addr?
-LOAD24 macro param addr?
- orl DPS,#01h
- mov dptr,addr?
- movx a,@dptr
- inc dptr
- mov dpx,a
- movx a,@dptr
- inc dptr
- mov dph,a
- movx a,@dptr
- mov dpl,a
- anl DPS,#0feh
- endm
-
-; include stretch macros
-
-if(STRETCH > 0)
-$include(aicstretch.inc)
-endif
-if(STRETCH <=0)
-$include(aicnostretch.inc)
-endif
-
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Host Interface Library
- Copyright (C) 2003 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#ifndef _AICNET_H
-#define _AICNET_H
-
-/** @file aicnet.h
- Host Interface Library
- @author Walter Fetter Lages <w.fetter@ieee.org>
-*/
-
-/** @addtogroup aichost
-@{
-*/
-
-/** Default command port
-*/
-#define CMD_PORT 9880
-
-/** Default status port
-*/
-#define STATUS_PORT 9877
-
-/** AIC command codes
-*/
-enum AIC_COMMAND
-{
- AIC_INVALID= 0x00, ///< Invalid command
- AIC_RESET= 0x01, ///< Reset AIC
- AIC_MOTOR_OFF= 0x02, ///< Turns motor off
- AIC_BRAKE_APPLY= 0x03, ///< Aplies brake
- AIC_MOTOR_ACT= 0x10, ///< Actuates motor with given voltage
- AIC_MOTOR_REF= 0x15, ///< Sets the reference for the motor PID
- AIC_STATUS= 0x20, ///< Status identification
- AIC_BRAKE_RELEASE= 0x30, ///< Releases brake
- AIC_MOTOR_ON= 0x31, ///< Turns motor on
- AIC_USER0= 0x3b, ///< User defined command 0
- AIC_USER1= 0x3c, ///< User defined command 1
- AIC_USER2= 0x3d, ///< User defined command 2
- AIC_USER3= 0x3e, ///< User defined command 3
- AIC_NOP= 0x3f ///< No operation
-};
-
-/** AIC status codes
-*/
-enum AIC_STATUS
-{
- AIC_INDEX_ON= 0x01, ///< Index on
- AIC_BUSY= 0x02 ///< AIC is busy
-};
-
-
-#endif
+++ /dev/null
-;******************************************************************************
-;
-; Actuator Interface Card
-; No Stretch Macros
-; Copyright (C) 2004 Walter Fetter Lages <w.fetter@ieee.org>
-;
-; 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 2 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, write to the Free Software
-; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-;
-; You can also obtain a copy of the GNU General Public License
-; at <http://www.gnu.org/licenses>.
-;
-;*******************************************************************************
-
-; set stretch
-; parameters: stretch?=dummy stretch value
-SET_STRETCH macro param stretch?
-; dummy macro
- endm
-
-; restore original stretch value
-; parameters: saved?=dummy stretch value
-RESTORE_STRETCH macro param saved?
-; dummy macro
- endm
+++ /dev/null
-;******************************************************************************
-;
-; Actuator Interface Card
-; PLD Constants
-; Copyright (C) 2004 Walter Fetter Lages <w.fetter@ieee.org>
-;
-; 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 2 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, write to the Free Software
-; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-;
-; You can also obtain a copy of the GNU General Public License
-; at <http://www.gnu.org/licenses>.
-;
-;*******************************************************************************
-
-
-; constants defining addresses for devices in an Actuator Interface Card
-
-PWM equ 80000h ; PWM address
-ENCODER equ 90000h ; Encoder address
-CONTROL equ 0A0000h ; Control register address
-
-; constants for using the control register in an Actuator Interface Card
-
-PWMDISABLE equ 00h ; PWM disable
-PWMENABLE equ 01h ; PWM enable
-BRAKEAPPLY equ 02h ; Apply brake
-BRAKERELEASE equ 03h ; Release brake
-
-; stretch values for memory access
-; 2 -> 4 cycles
-STRETCH equ -2
-STRETCH_MASK equ 0f8h
-
-
-
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card Simulator
- Copyright (C) 2003, 2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#ifndef _AICSIM_H
-#define _AICSIM_H
-
-#include <aic.h>
-
-/** @file aicsim.h
- AIC Simulator
- @author Walter Fetter Lages <w.fetter@ieee.org>
-*/
-
-/** @defgroup aicsim AIC Simulator Interface
-@{
-*/
-
-/** Emulates an AIC
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-* @version AIC-1.3.0
-*/
-class AIC_SIM:public AIC_COMM, public AIC
-{
- int count; ///< Simulated encoder count
-
- public:
-
-/** Initialize AIC simulator
-*/
- AIC_SIM(void);
-
-/** Simulates the execution of an AIC command by logging it to cout
-* @param command Code of the command sent to AIC
-* @param ... Command arguments
-* @see AIC_COMMAND
-*/
- void send_command(int command,...);
-
-/** Simulates the genetration of a status message from an AIC by generating synthetic data
-* @param status Code of the status generated by AIC
-* @param ... Pointers to status arguments
-* @see AIC_COMMAND
-*/
- int get_status(int status,...);
-
-/** Thrown by AIC simulator errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD: public AIC_COMM::BAD { };
-
-/** Thrown by AIC simulator command errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD_COMMAND: public BAD, AIC_COMM::BAD_COMMAND { };
-};
-
-/**
-@}
-*/
-
-#endif
+++ /dev/null
-;******************************************************************************
-;
-; Actuator Interface Card
-; Stretch Macros
-; Copyright (C) 2004 Walter Fetter Lages <w.fetter@ieee.org>
-;
-; 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 2 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, write to the Free Software
-; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-;
-; You can also obtain a copy of the GNU General Public License
-; at <http://www.gnu.org/licenses>.
-;
-;*******************************************************************************
-
-; set stretch
-; parameters: stretch?=stretch value
-; outputs: a=new CKCON
-; r0=old CKCON (including) stretch value
-SET_STRETCH macro param stretch?
- mov a,CKCON
- mov r0,a
- anl a,#STRETCH_MASK
- orl a,#stretch?
- mov CKCON,a
- endm
-
-; restore original stretch value
-; parameters: saved?=stretch value
-RESTORE_STRETCH macro param saved?
- mov CKCON,saved?
- endm
+++ /dev/null
-/******************************************************************************
- Actuator Interface Card
- Host Interface Library
- UDP Communication
-
- Copyright (C) 2003, 2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#ifndef _AICUDP_H
-#define _AICUDP_H
-
-#include <arpa/inet.h>
-#include <aic.h>
-#include <aicnet.h>
-
-/** @file aicudp.h
- UDP Communication
- @author Walter Fetter Lages <w.fetter@ieee.org>
-*/
-
-/** @addtogroup aichost
-@{
-*/
-
-/** Implements an UDP communication channel
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-* @version AIC-1.3.0
-*/
-class AIC_UDP:public AIC_COMM, public AIC
-{
- /// socket for transmitting commands
- struct sockaddr_in cmdaddr;
- /// file descriptor for command socket
- int cmdfd;
-
- /// socket for receiving sensor signal
- struct sockaddr_in stataddr;
- /// file descriptor for status socket
- int statfd;
-
- public:
-
-/** Creates an UDP channel to AIC
-* @param aicname pointer to a string with the name of AIC to be connected to
-* @param statport UDP port used to receive status from AIC
-* @param cmdport UDP port to send commands to
-* @see aicnet.h
-*/
- AIC_UDP(const char *aicname,int statport=STATUS_PORT,int cmdport=CMD_PORT);
-
-/** Closes the UDP channel
-*/
- virtual ~AIC_UDP(void);
-
-/** Sends a command and its arguments to AIC
-* @param command Code of the command to send to AIC
-* @param ... Command arguments
-* @see AIC_COMMAND
-*/
- void send_command(int command,...);
-
-/** Receives a status message from AIC
-* @param status Code of the status sent by AIC
-* @param ... Pointers to status arguments
-* @see AIC_COMMAND
-*/
- int get_status(int status,...);
-
-/** Thrown by AIC_UDP errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD:public AIC_COMM::BAD { };
-
-/** Thrown by AIC_UDP socket errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD_SOCKET:public BAD { };
-
-/** Thrown by AIC_UDP bind errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD_BIND:public BAD { };
-
-/** Thrown by AIC_UDP send errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD_SEND:public BAD,AIC_COMM::BAD_SEND { };
-
-/** Thrown by AIC_UDP receive errors
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
- class BAD_RECEIVE:public BAD,AIC_COMM::BAD_RECEIVE { };
-};
-
-/**
-@}
-*/
-#endif
--- /dev/null
+/******************************************************************************
+
+ Actuator Interface Card
+ Rotation Buffer
+ Copyright (C) 2008 Diego Caberlon Santini <diegos@ece.ufrgs.br>
+
+ 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 2 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, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ You can also obtain a copy of the GNU General Public License
+ at <http://www.gnu.org/licenses>.
+
+*******************************************************************************
+2008.06.13 -> Start by Diego Caberlon Santini
+*/
+#ifndef BUFFER_H
+#define BUFFER_H
+
+/** @file buffer.h
+ * Rotation Buffer
+ * @author Diego Caberlon Santini <diegos@ece.ufrgs.br>
+ */
+
+/** @defgroup buffer Buffer Group
+@{
+ */
+
+/** Max Buffer Size
+ */
+#define BUFFER_SIZE 256
+/******************************************************************************/
+
+/** Buffer body
+ */
+typedef struct buffer_info buffer_info_t;
+struct buffer_info{
+ char buffer[BUFFER_SIZE]; ///< Buffer
+ char *ptr_base; ///< Buffer Base
+ char *ptr_in; ///< Buffer In
+ char *ptr_out; ///< Buffer Out
+ int count; ///< Buffer Count
+};
+
+/******************************************************************************/
+/** Finalizes buffer
+ * @param buffer_ptr Pointer to a buffer
+ */
+void buffer_end(buffer_info_t *buffer_ptr);
+/******************************************************************************/
+/** Get data on buffer
+ * @param buffer_ptr Pointer to a buffer
+ * @param data Pointer to return data
+ * @return 0 OK and -1 to error
+ */
+int buffer_get(buffer_info_t *buffer_ptr, char *data);
+/******************************************************************************/
+/** Puts data on buffer
+ * @param buffer_ptr Pointer to a buffer
+ * @param data Value to put in buffer
+ * @return 0 OK and -1 to error
+ */
+int buffer_put(buffer_info_t *buffer_ptr, char data);
+/******************************************************************************/
+/** Initializes buffer
+ * @param buffer_ptr Pointer to a buffer
+ */
+void buffer_init(buffer_info_t *buffer_ptr);
+/******************************************************************************/
+#endif
+++ /dev/null
-;******************************************************************************
-;
-; Actuator Interface Card
-; 8254 Programmable Interrupt Timer Constants
-; Copyright (C) 2004 Walter Fetter Lages <w.fetter@ieee.org>
-;
-; 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 2 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, write to the Free Software
-; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-;
-; You can also obtain a copy of the GNU General Public License
-; at <http://www.gnu.org/licenses>.
-;
-;*******************************************************************************
-
-
-; 8254 registers
-TIMER0_8254 equ 0h ; timer 0 address
-TIMER1_8254 equ 1h ; timer 1 address
-TIMER2_8254 equ 2h ; timer 2 address
-CTRL_8254 equ 3h ; control/status register
-
-; timer modes
-ONE_SHOT_BIN_8254 equ 32h ; programmable one-shot binary
-RATE_BIN_8254 equ 34h ; rate generator binary
--- /dev/null
+\r
+/*-------------------------------------------------------------------------\r
+ *\r
+ * MPLAB-C30 dsPIC30F4012 processor header\r
+ *\r
+ * (c) Copyright 2005 Microchip Technology, All rights reserved\r
+ *\r
+ * File Description / Notes:\r
+ * =========================\r
+ * 1] This header file defines special function registers (SFR), and useful \r
+ * macros for the dsPIC30Fxxxx Family of Digital Signal\r
+ * Controllers (also referred to as the dsPIC). \r
+ * 2] The register and bit names used in this file match the \r
+ * dsPIC30Fxxxx data sheets as closely as possible. \r
+ * 3] The memory locations of the registers defined in this header file are\r
+ * specified in the respective linker scripts.\r
+ * 4] SFR definitions are listed in the ascending order of memory addresses\r
+ * and are grouped based on the module they belong to. For e.g., WREG10\r
+ * is listed before ACCAL, and the Core SFRs are grouped separately\r
+ * from the Interrupt Controller SFRs or the General Purpose Timer SFRs.\r
+ * \r
+ * Revision History:\r
+ * =================\r
+ * --------------------------------------------------------------------------\r
+ * Rev: Date: Details: Who:\r
+ * --------------------------------------------------------------------------\r
+ * 2.0 23 Apr 2003 New file P Sinha\r
+ * 2.0a 24 Apr 2003 Added CEID bit P Sinha\r
+ * 2.0b 30 Apr 2003 Removed suffix 'B' from device number P Sinha\r
+ * 2.0c 2 May 2003 'H' suffix added to CiRXFnEID/CiRXMnEID P Sinha\r
+ * 2.1 2 Jun 2003 Relocated CANCAP bit to CxCTRL P Sinha\r
+ * 2.2 17 Jun 2003 Renamed CONV bit to DONE P Sinha\r
+ * 2.3 20 Jun 2003 Corrections in Config Fuses comments P Sinha\r
+ * 2.3a 23 Jun 2003 Typos in CAN structure corrected P Sinha\r
+ * 2.3b 5 Aug 2003 Added TUN1-4 bits in OSCCON P Sinha\r
+ * 2.3c 18 Sep 2003 DFLTCON changes P Sinha\r
+ * 2.4 10 Oct 2003 Added macros for data allocation and ISRs P Sinha\r
+ * 2.5 25 Nov 2003 Renamed TUN1-4 bits to TUNF0-3 P Sinha\r
+ * 3.0 30 Mar 2004 Added defines for unique SFR bit names P Sinha\r
+ * 3.1 5 Apr 2004 Added underscore before SFR bit labels P Sinha\r
+ * 3.1a 8 Apr 2004 Added config macros for FRC w/ PLL modes P Sinha\r
+ * 3.2 11 Apr 2004 Enhanced config macro usage examples P Sinha\r
+ * 3.3 14 Apr 2004 Corrected a typo in the _U1RXIE bit label P Sinha\r
+ * 4.0 28 Sep 2004 Changed data allocation macro definitions P Sinha\r
+ * 4.1 22 Dec 2004 Corrected a typo in the _U1RXIE definition P Sinha\r
+ * 4.1a 14 Mar 2005 Removed LVD definitions P Sinha\r
+ * 4.2 4 Apr 2005 Renamed EC_IO to ECIO and ERC_IO to ERCIO P Sinha\r
+ * 4.2a 27 Jun 2005 Fixed typos in comments regarding macros G McCar\r
+ * 4.3 1 Jul 2005 Updated section syntax in config macros P Sinha\r
+ * --------------------------------------------------------------------------\r
+ *\r
+ * ------------------------------------------------------------------------*/\r
+\r
+#ifndef __30F4012_H\r
+#define __30F4012_H\r
+\r
+/* ------------------------- */ \r
+/* Core Register Definitions */\r
+/* ------------------------- */\r
+\r
+/* W registers W0-W15 */\r
+extern volatile unsigned int WREG0 __attribute__((__sfr__,__deprecated__,__unsafe__));\r
+extern volatile unsigned int WREG1 __attribute__((__sfr__,__deprecated__,__unsafe__));\r
+extern volatile unsigned int WREG2 __attribute__((__sfr__,__deprecated__,__unsafe__));\r
+extern volatile unsigned int WREG3 __attribute__((__sfr__,__deprecated__,__unsafe__));\r
+extern volatile unsigned int WREG4 __attribute__((__sfr__,__deprecated__,__unsafe__));\r
+extern volatile unsigned int WREG5 __attribute__((__sfr__,__deprecated__,__unsafe__));\r
+extern volatile unsigned int WREG6 __attribute__((__sfr__,__deprecated__,__unsafe__));\r
+extern volatile unsigned int WREG7 __attribute__((__sfr__,__deprecated__,__unsafe__));\r
+extern volatile unsigned int WREG8 __attribute__((__sfr__,__deprecated__,__unsafe__));\r
+extern volatile unsigned int WREG9 __attribute__((__sfr__,__deprecated__,__unsafe__));\r
+extern volatile unsigned int WREG10 __attribute__((__sfr__,__deprecated__,__unsafe__));\r
+extern volatile unsigned int WREG11 __attribute__((__sfr__,__deprecated__,__unsafe__));\r
+extern volatile unsigned int WREG12 __attribute__((__sfr__,__deprecated__,__unsafe__));\r
+extern volatile unsigned int WREG13 __attribute__((__sfr__,__deprecated__,__unsafe__));\r
+extern volatile unsigned int WREG14 __attribute__((__sfr__,__deprecated__,__unsafe__));\r
+extern volatile unsigned int WREG15 __attribute__((__sfr__,__deprecated__,__unsafe__));\r
+\r
+/* SPLIM: Stack Pointer Limit */\r
+extern volatile unsigned int SPLIM __attribute__((__sfr__));\r
+\r
+/* Alternative access structure for the 40-bit accumulators */\r
+typedef struct tagACC {\r
+ unsigned int L;\r
+ unsigned int H;\r
+ unsigned char U;\r
+} ACC;\r
+\r
+/* Acc A<15:0> */\r
+extern volatile unsigned int ACCAL __attribute__((__sfr__));\r
+\r
+/* Acc A<31:16> */\r
+extern volatile unsigned int ACCAH __attribute__((__sfr__));\r
+\r
+/* Acc A<39:32> */\r
+extern volatile unsigned char ACCAU __attribute__((__sfr__));\r
+\r
+/* Acc A defined as a structure consisting of the 3 parts */\r
+extern volatile ACC ACCA __attribute__((__sfr__));\r
+\r
+/* Acc B<15:0> */\r
+extern volatile unsigned int ACCBL __attribute__((__sfr__));\r
+\r
+/* Acc B<31:16> */\r
+extern volatile unsigned int ACCBH __attribute__((__sfr__));\r
+\r
+/* Acc B<39:32> */\r
+extern volatile unsigned char ACCBU __attribute__((__sfr__));\r
+\r
+/* Acc B defined as a structure consisting of the 3 parts */\r
+extern volatile ACC ACCB __attribute__((__sfr__));\r
+\r
+/* PCL: Program Counter low word */ \r
+extern volatile unsigned int PCL __attribute__((__sfr__));\r
+\r
+/* PCH: Program Counter high byte */\r
+extern volatile unsigned char PCH __attribute__((__sfr__));\r
+\r
+/* TBLPAG: Table Page Register */\r
+extern volatile unsigned char TBLPAG __attribute__((__sfr__));\r
+\r
+/* PSVPAG: Program Space Visibility Page Register */\r
+extern volatile unsigned char PSVPAG __attribute__((__sfr__));\r
+\r
+/* RCOUNT: REPEAT loop count */\r
+extern volatile unsigned int RCOUNT __attribute__((__sfr__));\r
+\r
+/* DCOUNT: DO loop count */\r
+extern volatile unsigned int DCOUNT __attribute__((__sfr__));\r
+\r
+/* DOSTARTL: DO loop start address bits <15:0> */\r
+extern volatile unsigned int DOSTARTL __attribute__((__sfr__));\r
+\r
+/* DOSTARTH: DO loop start address bits <23:16> */\r
+extern volatile unsigned int DOSTARTH __attribute__((__sfr__));\r
+\r
+/* DOENDL: DO loop end address bits <15:0> */\r
+extern volatile unsigned int DOENDL __attribute__((__sfr__));\r
+\r
+/* DOENDH: DO loop end address bits <23:16> */\r
+extern volatile unsigned int DOENDH __attribute__((__sfr__));\r
+\r
+/* SR: Status Register */\r
+extern volatile unsigned int SR __attribute__((__sfr__));\r
+typedef struct tagSRBITS {\r
+ unsigned C :1; /* Carry flag */\r
+ unsigned Z :1; /* Sticky Zero flag */\r
+ unsigned OV :1; /* Overflow flag */ \r
+ unsigned N :1; /* Negative flag */\r
+ unsigned RA :1; /* REPEAT loop active flag */\r
+ unsigned IPL :3; /* CPU Interrupt Priority Level */\r
+ unsigned DC :1; /* Digit Carry flag */\r
+ unsigned DA :1; /* DO loop active flag */\r
+ unsigned SAB :1; /* Combined A/B saturation flag */\r
+ unsigned OAB :1; /* Combined A/B overflow flag */ \r
+ unsigned SB :1; /* Acc B saturation flag */\r
+ unsigned SA :1; /* Acc A saturation flag */\r
+ unsigned OB :1; /* Acc B overflow flag */\r
+ unsigned OA :1; /* Acc A overflow flag */\r
+} SRBITS;\r
+extern volatile SRBITS SRbits __attribute__((__sfr__));\r
+\r
+/* CORCON: CPU Mode control Register */\r
+extern volatile unsigned int CORCON __attribute__((__sfr__));\r
+typedef struct tagCORCONBITS {\r
+ unsigned IF :1; /* Integer/Fractional mode */ \r
+ unsigned RND :1; /* Rounding mode */\r
+ unsigned PSV :1; /* Program Space Visibility enable */\r
+ unsigned IPL3 :1; /* CPU Interrupt Priority Level bit 3 */\r
+ unsigned ACCSAT :1; /* Acc saturation mode */\r
+ unsigned SATDW :1; /* Data space write saturation enable */\r
+ unsigned SATB :1; /* Acc B saturation enable */\r
+ unsigned SATA :1; /* Acc A saturation enable */\r
+ unsigned DL :3; /* DO loop nesting level status */\r
+ unsigned EDT :1; /* Early DO loop termination control */\r
+ unsigned US :1; /* Signed/Unsigned mode */\r
+ unsigned :3;\r
+} CORCONBITS;\r
+extern volatile CORCONBITS CORCONbits __attribute__((__sfr__));\r
+\r
+/* MODCON: Modulo Addressing Control Register */\r
+extern volatile unsigned int MODCON __attribute__((__sfr__));\r
+typedef struct tagMODCONBITS {\r
+ unsigned XWM :4; /* X-RAGU/X-WAGU modulo addressing register select */\r
+ unsigned YWM :4; /* Y-RAGU modulo addressing register select */\r
+ unsigned BWM :4; /* Bit-reversed addressing register select */\r
+ unsigned :2;\r
+ unsigned YMODEN :1; /* Y-RAGU modulo addressing enable */\r
+ unsigned XMODEN :1; /* X-RAGU/X-WAGU modulo addressing enable */\r
+} MODCONBITS;\r
+extern volatile MODCONBITS MODCONbits __attribute__((__sfr__));\r
+\r
+/* XMODSRT: X-RAGU/X-WAGU modulo buffer start address */\r
+extern volatile unsigned int XMODSRT __attribute__((__sfr__));\r
+\r
+/* XMODEND: X-RAGU/X-WAGU modulo buffer end address */\r
+extern volatile unsigned int XMODEND __attribute__((__sfr__));\r
+\r
+/* YMODSRT: Y-RAGU modulo buffer start address */\r
+extern volatile unsigned int YMODSRT __attribute__((__sfr__));\r
+\r
+/* YMODEND: Y-RAGU modulo buffer end address */\r
+extern volatile unsigned int YMODEND __attribute__((__sfr__));\r
+\r
+/* XBREV: X-WAGU Bit-reversed Addressing Control Register */\r
+extern volatile unsigned int XBREV __attribute__((__sfr__));\r
+typedef struct tagXBREVBITS {\r
+ unsigned XB :15; /* Bit-reversed addressing register select */\r
+ unsigned BREN :1; /* Bit-reversed addressing enable */\r
+} XBREVBITS;\r
+extern volatile XBREVBITS XBREVbits __attribute__((__sfr__));\r
+\r
+/* DISICNT: Disable Interrupt Cycle Count */\r
+extern volatile unsigned int DISICNT __attribute__((__sfr__));\r
+typedef struct tagDISICNTBITS {\r
+ unsigned DISICNT:14;\r
+ unsigned :2;\r
+} DISICNTBITS;\r
+extern volatile DISICNTBITS DISICNTbits __attribute__((__sfr__));\r
+\r
+\r
+/* ----------------------------------------- */\r
+/* Interrupt Controller register definitions */\r
+/* ----------------------------------------- */\r
+\r
+/* INTCON1: Interrupt Control Register 1 */\r
+extern volatile unsigned int INTCON1 __attribute__((__sfr__));\r
+typedef struct tagINTCON1BITS {\r
+ unsigned :1;\r
+ unsigned OSCFAIL:1;\r
+ unsigned STKERR :1;\r
+ unsigned ADDRERR:1;\r
+ unsigned MATHERR:1;\r
+ unsigned :3;\r
+ unsigned COVTE :1;\r
+ unsigned OVBTE :1;\r
+ unsigned OVATE :1;\r
+ unsigned :4;\r
+ unsigned NSTDIS :1;\r
+} INTCON1BITS;\r
+extern volatile INTCON1BITS INTCON1bits __attribute__((__sfr__));\r
+\r
+/* INTCON2: Interrupt Control Register 2 */\r
+extern volatile unsigned int INTCON2 __attribute__((__sfr__));\r
+typedef struct tagINTCON2BITS {\r
+ unsigned INT0EP :1;\r
+ unsigned INT1EP :1;\r
+ unsigned INT2EP :1;\r
+ unsigned :11;\r
+ unsigned DISI :1; \r
+ unsigned ALTIVT :1;\r
+} INTCON2BITS;\r
+extern volatile INTCON2BITS INTCON2bits __attribute__((__sfr__));\r
+\r
+/* IFS0: Interrupt Flag Status Register 0 */\r
+extern volatile unsigned int IFS0 __attribute__((__sfr__));\r
+typedef struct tagIFS0BITS {\r
+ unsigned INT0IF :1;\r
+ unsigned IC1IF :1;\r
+ unsigned OC1IF :1;\r
+ unsigned T1IF :1;\r
+ unsigned IC2IF :1;\r
+ unsigned OC2IF :1;\r
+ unsigned T2IF :1;\r
+ unsigned T3IF :1;\r
+ unsigned SPI1IF :1;\r
+ unsigned U1RXIF :1;\r
+ unsigned U1TXIF :1;\r
+ unsigned ADIF :1;\r
+ unsigned NVMIF :1;\r
+ unsigned SI2CIF :1;\r
+ unsigned MI2CIF :1;\r
+ unsigned CNIF :1;\r
+} IFS0BITS;\r
+extern volatile IFS0BITS IFS0bits __attribute__((__sfr__));\r
+\r
+/* IFS1: Interrupt Flag Status Register 1 */\r
+extern volatile unsigned int IFS1 __attribute__((__sfr__));\r
+typedef struct tagIFS1BITS {\r
+ unsigned INT1IF :1;\r
+ unsigned IC7IF :1;\r
+ unsigned IC8IF :1;\r
+ unsigned :2;\r
+ unsigned T4IF :1;\r
+ unsigned T5IF :1;\r
+ unsigned INT2IF :1;\r
+ unsigned :3;\r
+ unsigned C1IF :1;\r
+ unsigned :4;\r
+} IFS1BITS;\r
+extern volatile IFS1BITS IFS1bits __attribute__((__sfr__));\r
+\r
+/* IFS2: Interrupt Flag Status Register 2 */\r
+extern volatile unsigned int IFS2 __attribute__((__sfr__));\r
+typedef struct tagIFS2BITS {\r
+ unsigned :7;\r
+ unsigned PWMIF :1;\r
+ unsigned QEIIF :1;\r
+ unsigned :2;\r
+ unsigned FLTAIF :1;\r
+ unsigned :4;\r
+} IFS2BITS;\r
+extern volatile IFS2BITS IFS2bits __attribute__((__sfr__));\r
+\r
+/* IEC0: Interrupt Enable Control Register 0 */\r
+extern volatile unsigned int IEC0 __attribute__((__sfr__));\r
+typedef struct tagIEC0BITS {\r
+ unsigned INT0IE :1;\r
+ unsigned IC1IE :1;\r
+ unsigned OC1IE :1;\r
+ unsigned T1IE :1;\r
+ unsigned IC2IE :1;\r
+ unsigned OC2IE :1;\r
+ unsigned T2IE :1;\r
+ unsigned T3IE :1;\r
+ unsigned SPI1IE :1;\r
+ unsigned U1RXIE :1;\r
+ unsigned U1TXIE :1;\r
+ unsigned ADIE :1;\r
+ unsigned NVMIE :1;\r
+ unsigned SI2CIE :1;\r
+ unsigned MI2CIE :1;\r
+ unsigned CNIE :1;\r
+} IEC0BITS;\r
+extern volatile IEC0BITS IEC0bits __attribute__((__sfr__));\r
+\r
+/* IEC1: Interrupt Enable Control Register 1 */\r
+extern volatile unsigned int IEC1 __attribute__((__sfr__));\r
+typedef struct tagIEC1BITS {\r
+ unsigned INT1IE :1;\r
+ unsigned IC7IE :1;\r
+ unsigned IC8IE :1;\r
+ unsigned :2;\r
+ unsigned T4IE :1;\r
+ unsigned T5IE :1;\r
+ unsigned INT2IE :1;\r
+ unsigned :3;\r
+ unsigned C1IE :1;\r
+ unsigned :4;\r
+} IEC1BITS;\r
+extern volatile IEC1BITS IEC1bits __attribute__((__sfr__));\r
+\r
+/* IEC2: Interrupt Enable Control Register 2 */\r
+extern volatile unsigned int IEC2 __attribute__((__sfr__));\r
+typedef struct tagIEC2BITS {\r
+ unsigned :7;\r
+ unsigned PWMIE :1;\r
+ unsigned QEIIE :1;\r
+ unsigned :2;\r
+ unsigned FLTAIE :1;\r
+ unsigned :4;\r
+} IEC2BITS;\r
+extern volatile IEC2BITS IEC2bits __attribute__((__sfr__));\r
+\r
+/* IPC0: Interrupt Priority Control Register 0 */\r
+extern volatile unsigned int IPC0 __attribute__((__sfr__));\r
+typedef struct tagIPC0BITS {\r
+ unsigned INT0IP :3;\r
+ unsigned :1;\r
+ unsigned IC1IP :3;\r
+ unsigned :1;\r
+ unsigned OC1IP :3;\r
+ unsigned :1;\r
+ unsigned T1IP :3;\r
+ unsigned :1;\r
+} IPC0BITS;\r
+extern volatile IPC0BITS IPC0bits __attribute__((__sfr__));\r
+\r
+/* IPC1: Interrupt Priority Control Register 1 */\r
+extern volatile unsigned int IPC1 __attribute__((__sfr__));\r
+typedef struct tagIPC1BITS {\r
+ unsigned IC2IP :3;\r
+ unsigned :1;\r
+ unsigned OC2IP :3;\r
+ unsigned :1;\r
+ unsigned T2IP :3;\r
+ unsigned :1;\r
+ unsigned T3IP :3;\r
+ unsigned :1;\r
+} IPC1BITS;\r
+extern volatile IPC1BITS IPC1bits __attribute__((__sfr__));\r
+\r
+/* IPC2: Interrupt Priority Control Register 2 */\r
+extern volatile unsigned int IPC2 __attribute__((__sfr__));\r
+typedef struct tagIPC2BITS {\r
+ unsigned SPI1IP :3;\r
+ unsigned :1;\r
+ unsigned U1RXIP :3;\r
+ unsigned :1;\r
+ unsigned U1TXIP :3;\r
+ unsigned :1;\r
+ unsigned ADIP :3;\r
+ unsigned :1;\r
+} IPC2BITS;\r
+extern volatile IPC2BITS IPC2bits __attribute__((__sfr__));\r
+\r
+/* IPC3: Interrupt Priority Control Register 3 */\r
+extern volatile unsigned int IPC3 __attribute__((__sfr__));\r
+typedef struct tagIPC3BITS {\r
+ unsigned NVMIP :3;\r
+ unsigned :1;\r
+ unsigned SI2CIP :3;\r
+ unsigned :1;\r
+ unsigned MI2CIP :3;\r
+ unsigned :1;\r
+ unsigned CNIP :3;\r
+ unsigned :1;\r
+} IPC3BITS;\r
+extern volatile IPC3BITS IPC3bits __attribute__((__sfr__));\r
+\r
+/* IPC4: Interrupt Priority Control Register 4 */\r
+extern volatile unsigned int IPC4 __attribute__((__sfr__));\r
+typedef struct tagIPC4BITS {\r
+ unsigned INT1IP :3;\r
+ unsigned :1;\r
+ unsigned IC7IP :3;\r
+ unsigned :1;\r
+ unsigned IC8IP :3;\r
+ unsigned :5;\r
+} IPC4BITS;\r
+extern volatile IPC4BITS IPC4bits __attribute__((__sfr__));\r
+\r
+/* IPC5: Interrupt Priority Control Register 5 */\r
+extern volatile unsigned int IPC5 __attribute__((__sfr__));\r
+typedef struct tagIPC5BITS {\r
+ unsigned :4;\r
+ unsigned T4IP :3;\r
+ unsigned :1;\r
+ unsigned T5IP :3;\r
+ unsigned :1;\r
+ unsigned INT2IP :3;\r
+ unsigned :1;\r
+} IPC5BITS;\r
+extern volatile IPC5BITS IPC5bits __attribute__((__sfr__));\r
+\r
+/* IPC6: Interrupt Priority Control Register 6 */\r
+extern volatile unsigned int IPC6 __attribute__((__sfr__));\r
+typedef struct tagIPC6BITS {\r
+ unsigned :12;\r
+ unsigned C1IP :3;\r
+ unsigned :1;\r
+} IPC6BITS;\r
+extern volatile IPC6BITS IPC6bits __attribute__((__sfr__));\r
+\r
+/* IPC9: Interrupt Priority Control Register 9 */\r
+extern volatile unsigned int IPC9 __attribute__((__sfr__));\r
+typedef struct tagIPC9BITS {\r
+ unsigned :12;\r
+ unsigned PWMIP :3;\r
+ unsigned :1;\r
+} IPC9BITS;\r
+extern volatile IPC9BITS IPC9bits __attribute__((__sfr__));\r
+\r
+/* IPC10: Interrupt Priority Control Register 10 */\r
+extern volatile unsigned int IPC10 __attribute__((__sfr__));\r
+typedef struct tagIPC10BITS {\r
+ unsigned QEIIP :3;\r
+ unsigned :9;\r
+ unsigned FLTAIP :3;\r
+ unsigned :1;\r
+} IPC10BITS;\r
+extern volatile IPC10BITS IPC10bits __attribute__((__sfr__));\r
+\r
+/* ---------------------------------------------- */\r
+/* Input Change Notification register definitions */\r
+/* ---------------------------------------------- */\r
+\r
+/* CNEN1: Input Change Notification Interrupt Enable Register 1 */\r
+extern volatile unsigned int CNEN1 __attribute__((__sfr__));\r
+typedef struct tagCNEN1BITS {\r
+ unsigned CN0IE :1;\r
+ unsigned CN1IE :1;\r
+ unsigned CN2IE :1;\r
+ unsigned CN3IE :1;\r
+ unsigned CN4IE :1;\r
+ unsigned CN5IE :1;\r
+ unsigned CN6IE :1;\r
+ unsigned CN7IE :1;\r
+ unsigned :8;\r
+} CNEN1BITS;\r
+extern volatile CNEN1BITS CNEN1bits __attribute__((__sfr__));\r
+\r
+/* CNPU1: Input Change Notification Pullup Enable Register 1 */\r
+extern volatile unsigned int CNPU1 __attribute__((__sfr__));\r
+typedef struct tagCNPU1BITS {\r
+ unsigned CN0PUE :1;\r
+ unsigned CN1PUE :1;\r
+ unsigned CN2PUE :1;\r
+ unsigned CN3PUE :1;\r
+ unsigned CN4PUE :1;\r
+ unsigned CN5PUE :1;\r
+ unsigned CN6PUE :1;\r
+ unsigned CN7PUE :1;\r
+ unsigned :8;\r
+} CNPU1BITS;\r
+extern volatile CNPU1BITS CNPU1bits __attribute__((__sfr__));\r
+\r
+\r
+/* --------------------------- */\r
+/* Timer1 register definitions */\r
+/* --------------------------- */\r
+\r
+/* Generic structure for Timer 1 Control Register */\r
+typedef struct tagTCON_16BIT {\r
+ unsigned :1;\r
+ unsigned TCS :1;\r
+ unsigned TSYNC :1;\r
+ unsigned :1;\r
+ unsigned TCKPS :2;\r
+ unsigned TGATE :1;\r
+ unsigned :6;\r
+ unsigned TSIDL :1;\r
+ unsigned :1;\r
+ unsigned TON :1;\r
+} TCON_16BIT;\r
+\r
+/* TMR1: Timer 1 Count Register */\r
+extern volatile unsigned int TMR1 __attribute__((__sfr__));\r
+\r
+/* PR1: Timer 1 Period Register */\r
+extern volatile unsigned int PR1 __attribute__((__sfr__));\r
+\r
+/* T1CON: Timer 1 Control Register */\r
+extern volatile unsigned int T1CON __attribute__((__sfr__));\r
+extern volatile TCON_16BIT T1CONbits __attribute__((__sfr__));\r
+\r
+/* ----------------------------- */\r
+/* Timer2/3 register definitions */\r
+/* ----------------------------- */\r
+\r
+/* Generic structure for Timer 2 and Timer 4 Control Registers */\r
+typedef struct tagTCON_EVEN {\r
+ unsigned :1;\r
+ unsigned TCS :1;\r
+ unsigned :1;\r
+ unsigned T32 :1;\r
+ unsigned TCKPS :2;\r
+ unsigned TGATE :1;\r
+ unsigned :6;\r
+ unsigned TSIDL :1;\r
+ unsigned :1;\r
+ unsigned TON :1;\r
+} TCON_EVEN;\r
+\r
+/* Generic structure for Timer 3 and Timer 5 Control Registers */\r
+typedef struct tagTCON_ODD {\r
+ unsigned :1;\r
+ unsigned TCS :1;\r
+ unsigned :2;\r
+ unsigned TCKPS :2;\r
+ unsigned TGATE :1;\r
+ unsigned :6;\r
+ unsigned TSIDL :1;\r
+ unsigned :1;\r
+ unsigned TON :1;\r
+} TCON_ODD;\r
+\r
+/* TMR2: Timer 2 Count Register */\r
+extern volatile unsigned int TMR2 __attribute__((__sfr__));\r
+\r
+/* TMR3HLD: Timer 3 Holding Register */\r
+extern volatile unsigned int TMR3HLD __attribute__((__sfr__));\r
+\r
+/* TMR3: Timer 3 Count Register */\r
+extern volatile unsigned int TMR3 __attribute__((__sfr__));\r
+\r
+/* PR2: Timer 2 Period Register */\r
+extern volatile unsigned int PR2 __attribute__((__sfr__));\r
+\r
+/* PR3: Timer 3 Period Register */\r
+extern volatile unsigned int PR3 __attribute__((__sfr__));\r
+\r
+/* T2CON: Timer 2 Control Register */\r
+extern volatile unsigned int T2CON __attribute__((__sfr__));\r
+extern volatile TCON_EVEN T2CONbits __attribute__((__sfr__));\r
+\r
+/* T3CON: Timer 3 Control Register */\r
+extern volatile unsigned int T3CON __attribute__((__sfr__));\r
+extern volatile TCON_ODD T3CONbits __attribute__((__sfr__));\r
+\r
+/* ----------------------------- */\r
+/* Timer4/5 register definitions */\r
+/* ----------------------------- */\r
+\r
+/* TMR4: Timer 4 Count Register */\r
+extern volatile unsigned int TMR4 __attribute__((__sfr__));\r
+\r
+/* TMR5HLD: Timer 5 Holding Register */\r
+extern volatile unsigned int TMR5HLD __attribute__((__sfr__));\r
+\r
+/* TMR5: Timer 5 Count Register */\r
+extern volatile unsigned int TMR5 __attribute__((__sfr__));\r
+\r
+/* PR4: Timer 4 Period Register */\r
+extern volatile unsigned int PR4 __attribute__((__sfr__));\r
+\r
+/* PR5: Timer 5 Period Register */\r
+extern volatile unsigned int PR5 __attribute__((__sfr__));\r
+\r
+/* T4CON: Timer 4 Control Register */\r
+extern volatile unsigned int T4CON __attribute__((__sfr__));\r
+extern volatile TCON_EVEN T4CONbits __attribute__((__sfr__));\r
+\r
+/* T5CON: Timer 5 Control Register */\r
+extern volatile unsigned int T5CON __attribute__((__sfr__));\r
+extern volatile TCON_ODD T5CONbits __attribute__((__sfr__));\r
+\r
+/* ------------------------------------------------- */\r
+/* Quadrature Encoder Interface register definitions */\r
+/* ------------------------------------------------- */\r
+\r
+/* QEICON: QEI Control Register */\r
+extern volatile unsigned int QEICON __attribute__((__sfr__));\r
+typedef struct tagQEICONBITS {\r
+ unsigned UPDN_SRC:1;\r
+ unsigned TQCS :1;\r
+ unsigned POSRES :1;\r
+ unsigned TQCKPS :2;\r
+ unsigned TQGATE :1;\r
+ unsigned PCDOUT :1;\r
+ unsigned SWPAB :1;\r
+ unsigned QEIM :3;\r
+ unsigned UPDN :1;\r
+ unsigned INDX :1;\r
+ unsigned QEISIDL:1;\r
+ unsigned :1;\r
+ unsigned CNTERR :1;\r
+} QEICONBITS;\r
+extern volatile QEICONBITS QEICONbits __attribute__((__sfr__));\r
+\r
+/* DFLTCON: Digital Filter Control Register */\r
+extern volatile unsigned int DFLTCON __attribute__((__sfr__));\r
+typedef struct tagDFLTCONBITS {\r
+ unsigned :4;\r
+ unsigned QECK :3;\r
+ unsigned QEOUT :1;\r
+ unsigned CEID :1;\r
+ unsigned IMV :2;\r
+ unsigned :5;\r
+} DFLTCONBITS;\r
+extern volatile DFLTCONBITS DFLTCONbits __attribute__((__sfr__));\r
+\r
+/* POSCNT: Position Counter Register */\r
+extern volatile unsigned int POSCNT __attribute__((__sfr__));\r
+\r
+/* MAXCNT: Maximum Count Register */\r
+extern volatile unsigned int MAXCNT __attribute__((__sfr__));\r
+\r
+/* ---------------------------------- */\r
+/* Input Capture register definitions */\r
+/* ---------------------------------- */\r
+\r
+/* Generic structure of entire SFR area for each Input Capture module */\r
+typedef struct tagIC {\r
+ unsigned int icxbuf;\r
+ unsigned int icxcon;\r
+} IC, *PIC;\r
+\r
+/* SFR blocks for each Input Capture module */\r
+extern volatile IC IC1 __attribute__((__sfr__));\r
+extern volatile IC IC2 __attribute__((__sfr__));\r
+extern volatile IC IC7 __attribute__((__sfr__));\r
+extern volatile IC IC8 __attribute__((__sfr__));\r
+\r
+/* Generic structure for Input Capture Control Registers */\r
+typedef struct tagICxCONBITS {\r
+ unsigned ICM :3;\r
+ unsigned ICBNE :1;\r
+ unsigned ICOV :1;\r
+ unsigned ICI :2;\r
+ unsigned ICTMR :1;\r
+ unsigned :5;\r
+ unsigned ICSIDL :1;\r
+ unsigned :2;\r
+} ICxCONBITS;\r
+\r
+/* IC1BUF: Input Capture 1 Buffer */\r
+extern volatile unsigned int IC1BUF __attribute__((__sfr__));\r
+\r
+/* IC1CON: Input Capture 1 Control Register */\r
+extern volatile unsigned int IC1CON __attribute__((__sfr__));\r
+extern volatile ICxCONBITS IC1CONbits __attribute__((__sfr__));\r
+\r
+/* IC2BUF: Input Capture 2 Buffer */\r
+extern volatile unsigned int IC2BUF __attribute__((__sfr__));\r
+\r
+/* IC2CON: Input Capture 2 Control Register */\r
+extern volatile unsigned int IC2CON __attribute__((__sfr__));\r
+extern volatile ICxCONBITS IC2CONbits __attribute__((__sfr__));\r
+\r
+/* IC7BUF: Input Capture 7 Buffer */\r
+extern volatile unsigned int IC7BUF __attribute__((__sfr__));\r
+\r
+/* IC7CON: Input Capture 7 Control Register */\r
+extern volatile unsigned int IC7CON __attribute__((__sfr__));\r
+extern volatile ICxCONBITS IC7CONbits __attribute__((__sfr__));\r
+\r
+/* IC8BUF: Input Capture 8 Buffer */\r
+extern volatile unsigned int IC8BUF __attribute__((__sfr__));\r
+\r
+/* IC8CON: Input Capture 8 Control Register */\r
+extern volatile unsigned int IC8CON __attribute__((__sfr__));\r
+extern volatile ICxCONBITS IC8CONbits __attribute__((__sfr__));\r
+\r
+\r
+/* --------------------------------------- */\r
+/* Output Compare/PWM register definitions */\r
+/* --------------------------------------- */\r
+\r
+/* Generic structure of entire SFR area for each Output Compare module */\r
+typedef struct tagOC {\r
+ unsigned int ocxrs;\r
+ unsigned int ocxr;\r
+ unsigned int ocxcon;\r
+} OC, *POC;\r
+\r
+/* SFR blocks for each Output Compare module */\r
+extern volatile OC OC1 __attribute__((__sfr__));\r
+extern volatile OC OC2 __attribute__((__sfr__));\r
+\r
+/* Generic structure for Output Compare Control Registers */\r
+typedef struct tagOCxCONBITS {\r
+ unsigned OCM :3;\r
+ unsigned OCTSEL :1;\r
+ unsigned OCFLT :1;\r
+ unsigned :8;\r
+ unsigned OCSIDL :1;\r
+ unsigned :2;\r
+} OCxCONBITS;\r
+\r
+/* OC1RS: Output Compare 1 Secondary Register */\r
+extern volatile unsigned int OC1RS __attribute__((__sfr__));\r
+\r
+/* OC1R: Output Compare 1 Main Register */\r
+extern volatile unsigned int OC1R __attribute__((__sfr__));\r
+\r
+/* OC1CON: Output Compare 1 Control Register */\r
+extern volatile unsigned int OC1CON __attribute__((__sfr__));\r
+extern volatile OCxCONBITS OC1CONbits __attribute__((__sfr__));\r
+\r
+/* OC2RS: Output Compare 2 Secondary Register */\r
+extern volatile unsigned int OC2RS __attribute__((__sfr__));\r
+\r
+/* OC2R: Output Compare 2 Main Register */\r
+extern volatile unsigned int OC2R __attribute__((__sfr__));\r
+\r
+/* OC2CON: Output Compare 2 Control Register */\r
+extern volatile unsigned int OC2CON __attribute__((__sfr__));\r
+extern volatile OCxCONBITS OC2CONbits __attribute__((__sfr__));\r
+\r
+\r
+/* -------------------------------------- */\r
+/* Motor Control PWM register definitions */\r
+/* -------------------------------------- */\r
+\r
+/* PTCON: PWM Timerbase Control Register */\r
+extern volatile unsigned int PTCON __attribute__((__sfr__));\r
+typedef struct tagPTCONBITS {\r
+ unsigned PTMOD :2;\r
+ unsigned PTCKPS :2;\r
+ unsigned PTOPS :4;\r
+ unsigned :5;\r
+ unsigned PTSIDL :1;\r
+ unsigned :1;\r
+ unsigned PTEN :1;\r
+} PTCONBITS;\r
+extern volatile PTCONBITS PTCONbits __attribute__((__sfr__));\r
+\r
+/* PTMR: PWM Timebase Count Register */\r
+extern volatile unsigned int PTMR __attribute__((__sfr__));\r
+typedef struct tagPTMRBITS {\r
+ unsigned PTMR :15;\r
+ unsigned PTDIR :1;\r
+} PTMRBITS;\r
+extern volatile PTMRBITS PTMRbits __attribute__((__sfr__));\r
+\r
+/* PTPER: PWM Timebase Period Register */\r
+extern volatile unsigned int PTPER __attribute__((__sfr__));\r
+typedef struct tagPTPERBITS {\r
+ unsigned PTPER :15;\r
+ unsigned :1;\r
+} PTPERBITS;\r
+extern volatile PTPERBITS PTPERbits __attribute__((__sfr__));\r
+\r
+/* SEVTCMP: Special Event Compare Count Register */\r
+extern volatile unsigned int SEVTCMP __attribute__((__sfr__));\r
+typedef struct tagSEVTCMPBITS {\r
+ unsigned SEVTCMP:15;\r
+ unsigned SEVTDIR:1;\r
+} SEVTCMPBITS;\r
+extern volatile SEVTCMPBITS SEVTCMPbits __attribute__((__sfr__));\r
+\r
+/* PWMCON1: PWM Control Register 1 */\r
+extern volatile unsigned int PWMCON1 __attribute__((__sfr__));\r
+typedef struct tagPWMCON1BITS {\r
+ unsigned PEN1L :1;\r
+ unsigned PEN2L :1;\r
+ unsigned PEN3L :1;\r
+ unsigned :1;\r
+ unsigned PEN1H :1;\r
+ unsigned PEN2H :1;\r
+ unsigned PEN3H :1;\r
+ unsigned :1;\r
+ unsigned PMOD1 :1;\r
+ unsigned PMOD2 :1;\r
+ unsigned PMOD3 :1;\r
+ unsigned :5;\r
+} PWMCON1BITS;\r
+extern volatile PWMCON1BITS PWMCON1bits __attribute__((__sfr__));\r
+\r
+/* PWMCON2: PWM Control Register 2 */\r
+extern volatile unsigned int PWMCON2 __attribute__((__sfr__));\r
+typedef struct tagPWMCON2BITS {\r
+ unsigned UDIS :1;\r
+ unsigned OSYNC :1;\r
+ unsigned IUE :1; \r
+ unsigned :5;\r
+ unsigned SEVOPS :4;\r
+ unsigned :4;\r
+} PWMCON2BITS;\r
+extern volatile PWMCON2BITS PWMCON2bits __attribute__((__sfr__));\r
+\r
+/* DTCON1: PWM Dead Time Control Register 1 */\r
+extern volatile unsigned int DTCON1 __attribute__((__sfr__));\r
+typedef struct tagDTCON1BITS {\r
+ unsigned DTA :6;\r
+ unsigned DTAPS :2;\r
+ unsigned :8;\r
+} DTCON1BITS;\r
+extern volatile DTCON1BITS DTCON1bits __attribute__((__sfr__));\r
+\r
+/* FLTACON: PWM Fault Input A Control Register */ \r
+extern volatile unsigned int FLTACON __attribute__((__sfr__));\r
+typedef struct tagFLTACONBITS {\r
+ unsigned FAEN1 :1;\r
+ unsigned FAEN2 :1;\r
+ unsigned FAEN3 :1;\r
+ unsigned :4;\r
+ unsigned FLTAM :1;\r
+ unsigned FAOV1L :1;\r
+ unsigned FAOV1H :1;\r
+ unsigned FAOV2L :1;\r
+ unsigned FAOV2H :1;\r
+ unsigned FAOV3L :1;\r
+ unsigned FAOV3H :1;\r
+ unsigned :2;\r
+} FLTACONBITS;\r
+extern volatile FLTACONBITS FLTACONbits __attribute__((__sfr__));\r
+\r
+/* OVDCON: PWM Override Control Register */\r
+extern volatile unsigned int OVDCON __attribute__((__sfr__));\r
+typedef struct tagOVDCONBITS {\r
+ unsigned POUT1L :1;\r
+ unsigned POUT1H :1;\r
+ unsigned POUT2L :1;\r
+ unsigned POUT2H :1;\r
+ unsigned POUT3L :1;\r
+ unsigned POUT3H :1;\r
+ unsigned :2;\r
+ unsigned POVD1L :1;\r
+ unsigned POVD1H :1;\r
+ unsigned POVD2L :1;\r
+ unsigned POVD2H :1;\r
+ unsigned POVD3L :1;\r
+ unsigned POVD3H :1;\r
+ unsigned :2;\r
+} OVDCONBITS;\r
+extern volatile OVDCONBITS OVDCONbits __attribute__((__sfr__));\r
+\r
+/* PDC1: PWM Duty Cycle Register 1 */\r
+extern volatile unsigned int PDC1 __attribute__((__sfr__));\r
+\r
+/* PDC2: PWM Duty Cycle Register 2 */\r
+extern volatile unsigned int PDC2 __attribute__((__sfr__));\r
+\r
+/* PDC3: PWM Duty Cycle Register 3 */\r
+extern volatile unsigned int PDC3 __attribute__((__sfr__));\r
+\r
+\r
+/* ------------------------ */\r
+/* I2C register definitions */\r
+/* ------------------------ */\r
+\r
+/* I2CRCV: I2C Receive Register */\r
+extern volatile unsigned char I2CRCV __attribute__((__sfr__));\r
+typedef struct tagI2CRCVBITS {\r
+ unsigned I2CRCV0:1;\r
+ unsigned I2CRCV1:1;\r
+ unsigned I2CRCV2:1;\r
+ unsigned I2CRCV3:1;\r
+ unsigned I2CRCV4:1;\r
+ unsigned I2CRCV5:1;\r
+ unsigned I2CRCV6:1;\r
+ unsigned I2CRCV7:1;\r
+} I2CRCVBITS;\r
+extern volatile I2CRCVBITS I2CRCVbits __attribute__((__sfr__));\r
+\r
+/* I2CTRN: I2C Transmit Register */\r
+extern volatile unsigned char I2CTRN __attribute__((__sfr__));\r
+typedef struct tagI2CTRNBITS {\r
+ unsigned I2CTRN0:1;\r
+ unsigned I2CTRN1:1;\r
+ unsigned I2CTRN2:1;\r
+ unsigned I2CTRN3:1;\r
+ unsigned I2CTRN4:1;\r
+ unsigned I2CTRN5:1;\r
+ unsigned I2CTRN6:1;\r
+ unsigned I2CTRN7:1;\r
+} I2CTRNBITS;\r
+extern volatile I2CTRNBITS I2CTRNbits __attribute__((__sfr__));\r
+\r
+/* I2CBRG: I2C Baud Rate Generator Register */\r
+extern volatile unsigned int I2CBRG __attribute__((__sfr__));\r
+typedef struct tagI2CBRGBITS {\r
+ unsigned I2CBRG :9;\r
+ unsigned :7;\r
+} I2CBRGBITS;\r
+extern volatile I2CBRGBITS I2CBRGbits __attribute__((__sfr__));\r
+\r
+/* I2CCON: I2C Control Register */\r
+extern volatile unsigned int I2CCON __attribute__((__sfr__));\r
+typedef struct tagI2CCONBITS {\r
+ unsigned SEN :1;\r
+ unsigned RSEN :1;\r
+ unsigned PEN :1;\r
+ unsigned RCEN :1;\r
+ unsigned ACKEN :1;\r
+ unsigned ACKDT :1;\r
+ unsigned STREN :1;\r
+ unsigned GCEN :1;\r
+ unsigned SMEN :1;\r
+ unsigned DISSLW :1;\r
+ unsigned A10M :1;\r
+ unsigned IPMIEN :1;\r
+ unsigned SCLREL :1;\r
+ unsigned I2CSIDL:1;\r
+ unsigned :1;\r
+ unsigned I2CEN :1;\r
+} I2CCONBITS;\r
+extern volatile I2CCONBITS I2CCONbits __attribute__((__sfr__));\r
+\r
+/* I2CSTAT: I2C Status Register */\r
+extern volatile unsigned int I2CSTAT __attribute__((__sfr__));\r
+typedef struct tagI2CSTATBITS {\r
+ unsigned TBF :1;\r
+ unsigned RBF :1;\r
+ unsigned R_W :1;\r
+ unsigned S :1;\r
+ unsigned P :1;\r
+ unsigned D_A :1;\r
+ unsigned I2COV :1;\r
+ unsigned IWCOL :1;\r
+ unsigned ADD10 :1;\r
+ unsigned GCSTAT :1;\r
+ unsigned BCL :1;\r
+ unsigned :3;\r
+ unsigned TRSTAT :1;\r
+ unsigned ACKSTAT:1;\r
+} I2CSTATBITS;\r
+extern volatile I2CSTATBITS I2CSTATbits __attribute__((__sfr__));\r
+\r
+/* I2CADD: I2C Address Register */\r
+extern volatile unsigned int I2CADD __attribute__((__sfr__));\r
+typedef struct tagI2CADDBITS {\r
+ unsigned I2CADD :10;\r
+ unsigned :6;\r
+} I2CADDBITS;\r
+extern volatile I2CADDBITS I2CADDbits __attribute__((__sfr__));\r
+\r
+\r
+/* -------------------------- */\r
+/* UART1 register definitions */\r
+/* -------------------------- */\r
+\r
+/* Generic structure of entire SFR area for each UART module */\r
+typedef struct tagUART {\r
+ unsigned int uxmode;\r
+ unsigned int uxsta;\r
+ unsigned int uxtxreg;\r
+ unsigned int uxrxreg;\r
+ unsigned int uxbrg;\r
+} UART, *PUART;\r
+\r
+/* SFR blocks for each UART module */\r
+extern volatile UART UART1 __attribute__((__sfr__));\r
+\r
+/* Generic structure for UART Mode Registers */\r
+typedef struct tagUxMODEBITS {\r
+ unsigned STSEL :1;\r
+ unsigned PDSEL :2;\r
+ unsigned :2;\r
+ unsigned ABAUD :1;\r
+ unsigned LPBACK :1;\r
+ unsigned WAKE :1;\r
+ unsigned :2;\r
+ unsigned ALTIO :1;\r
+ unsigned :2;\r
+ unsigned USIDL :1;\r
+ unsigned :1;\r
+ unsigned UARTEN :1;\r
+} UxMODEBITS;\r
+\r
+/* Generic structure for UART Status and Control Registers */\r
+typedef struct tagUxSTABITS {\r
+ unsigned URXDA :1;\r
+ unsigned OERR :1;\r
+ unsigned FERR :1;\r
+ unsigned PERR :1;\r
+ unsigned RIDLE :1;\r
+ unsigned ADDEN :1;\r
+ unsigned URXISEL:2;\r
+ unsigned TRMT :1;\r
+ unsigned UTXBF :1;\r
+ unsigned UTXEN :1;\r
+ unsigned UTXBRK :1;\r
+ unsigned :3;\r
+ unsigned UTXISEL:1;\r
+} UxSTABITS; \r
+\r
+/* Generic structure for UART Transmit Registers */\r
+typedef struct tagUxTXREGBITS {\r
+ unsigned UTXREG0:1;\r
+ unsigned UTXREG1:1;\r
+ unsigned UTXREG2:1;\r
+ unsigned UTXREG3:1;\r
+ unsigned UTXREG4:1;\r
+ unsigned UTXREG5:1;\r
+ unsigned UTXREG6:1;\r
+ unsigned UTXREG7:1;\r
+ unsigned UTX8 :1;\r
+ unsigned :7;\r
+} UxTXREGBITS;\r
+\r
+/* Generic structure for UART Receive Registers */\r
+typedef struct tagUxRXREGBITS {\r
+ unsigned URXREG0:1;\r
+ unsigned URXREG1:1;\r
+ unsigned URXREG2:1;\r
+ unsigned URXREG3:1;\r
+ unsigned URXREG4:1;\r
+ unsigned URXREG5:1;\r
+ unsigned URXREG6:1;\r
+ unsigned URXREG7:1;\r
+ unsigned URX8 :1;\r
+ unsigned :7;\r
+} UxRXREGBITS;\r
+\r
+/* U1MODE: UART1 Mode Regsiter */\r
+extern volatile unsigned int U1MODE __attribute__((__sfr__));\r
+extern volatile UxMODEBITS U1MODEbits __attribute__((__sfr__));\r
+\r
+/* U1STA: UART1 Status and Control Register */\r
+extern volatile unsigned int U1STA __attribute__((__sfr__));\r
+extern volatile UxSTABITS U1STAbits __attribute__((__sfr__));\r
+\r
+/* U1TXREG: UART1 Transmit Register */\r
+extern volatile unsigned int U1TXREG __attribute__((__sfr__));\r
+extern volatile UxTXREGBITS U1TXREGbits __attribute__((__sfr__));\r
+\r
+/* U1RXREG: UART1 Receive Register */\r
+extern volatile unsigned int U1RXREG __attribute__((__sfr__));\r
+extern volatile UxRXREGBITS U1RXREGbits __attribute__((__sfr__)); \r
+\r
+/* U1BRG: UART1 Baud Rate Generator Register */\r
+extern volatile unsigned int U1BRG __attribute__((__sfr__));\r
+\r
+\r
+/* ------------------------- */\r
+/* SPI1 register definitions */\r
+/* ------------------------- */\r
+\r
+/* Generic structure of entire SFR area for each SPI module */\r
+typedef struct tagSPI {\r
+ unsigned int spixstat;\r
+ unsigned int spixcon;\r
+ unsigned int spixbuf;\r
+} SPI, *PSPI;\r
+\r
+/* SFR blocks for each SPI module */\r
+extern volatile SPI SPI1 __attribute__((__sfr__));\r
+\r
+/* Generic structure for SPI Status Registers */\r
+typedef struct tagSPIxSTATBITS {\r
+ unsigned SPIRBF :1;\r
+ unsigned SPITBF :1;\r
+ unsigned :4;\r
+ unsigned SPIROV :1;\r
+ unsigned :6;\r
+ unsigned SPISIDL:1;\r
+ unsigned :1;\r
+ unsigned SPIEN :1;\r
+} SPIxSTATBITS;\r
+\r
+/* Generic structure for SPI Control Registers */\r
+typedef struct tagSPIxCONBITS {\r
+ unsigned PPRE :2;\r
+ unsigned SPRE :3;\r
+ unsigned MSTEN :1;\r
+ unsigned CKP :1;\r
+ unsigned SSEN :1;\r
+ unsigned CKE :1;\r
+ unsigned SMP :1;\r
+ unsigned MODE16 :1;\r
+ unsigned DISSDO :1;\r
+ unsigned :1;\r
+ unsigned SPIFSD:1;\r
+ unsigned FRMEN :1;\r
+ unsigned :1;\r
+} SPIxCONBITS;\r
+\r
+/* SPI1STAT: SPI1 Status Register */\r
+extern volatile unsigned int SPI1STAT __attribute__((__sfr__));\r
+extern volatile SPIxSTATBITS SPI1STATbits __attribute__((__sfr__));\r
+\r
+/* SPI1CON: SPI1 Control Register */\r
+extern volatile unsigned int SPI1CON __attribute__((__sfr__));\r
+extern volatile SPIxCONBITS SPI1CONbits __attribute__((__sfr__));\r
+\r
+/* SPI1BUF: SPI1 Buffer */\r
+extern volatile unsigned int SPI1BUF __attribute__((__sfr__));\r
+\r
+\r
+/* ------------------------------------------------------------------ */\r
+/* 10-bit (500 ksps) Analog-to-Digital Converter register definitions */\r
+/* ------------------------------------------------------------------ */\r
+\r
+/* ADC Buffers 0-F */\r
+extern volatile unsigned int ADCBUF0 __attribute__((__sfr__));\r
+extern volatile unsigned int ADCBUF1 __attribute__((__sfr__));\r
+extern volatile unsigned int ADCBUF2 __attribute__((__sfr__));\r
+extern volatile unsigned int ADCBUF3 __attribute__((__sfr__));\r
+extern volatile unsigned int ADCBUF4 __attribute__((__sfr__));\r
+extern volatile unsigned int ADCBUF5 __attribute__((__sfr__));\r
+extern volatile unsigned int ADCBUF6 __attribute__((__sfr__));\r
+extern volatile unsigned int ADCBUF7 __attribute__((__sfr__));\r
+extern volatile unsigned int ADCBUF8 __attribute__((__sfr__));\r
+extern volatile unsigned int ADCBUF9 __attribute__((__sfr__));\r
+extern volatile unsigned int ADCBUFA __attribute__((__sfr__));\r
+extern volatile unsigned int ADCBUFB __attribute__((__sfr__));\r
+extern volatile unsigned int ADCBUFC __attribute__((__sfr__));\r
+extern volatile unsigned int ADCBUFD __attribute__((__sfr__));\r
+extern volatile unsigned int ADCBUFE __attribute__((__sfr__));\r
+extern volatile unsigned int ADCBUFF __attribute__((__sfr__));\r
+\r
+/* ADCON1: ADC Control Register 1 */\r
+extern volatile unsigned int ADCON1 __attribute__((__sfr__));\r
+typedef struct tagADCON1BITS {\r
+ unsigned DONE :1;\r
+ unsigned SAMP :1;\r
+ unsigned ASAM :1;\r
+ unsigned SIMSAM :1;\r
+ unsigned :1;\r
+ unsigned SSRC :3;\r
+ unsigned FORM :2;\r
+ unsigned :3;\r
+ unsigned ADSIDL :1;\r
+ unsigned :1;\r
+ unsigned ADON :1;\r
+} ADCON1BITS;\r
+extern volatile ADCON1BITS ADCON1bits __attribute__((__sfr__));\r
+\r
+/* ADCON2: ADC Control Register 2 */\r
+extern volatile unsigned int ADCON2 __attribute__((__sfr__));\r
+typedef struct tagADCON2BITS {\r
+ unsigned ALTS :1;\r
+ unsigned BUFM :1;\r
+ unsigned SMPI :4;\r
+ unsigned :1;\r
+ unsigned BUFS :1;\r
+ unsigned CHPS :2;\r
+ unsigned CSCNA :1;\r
+ unsigned :2;\r
+ unsigned VCFG :3;\r
+} ADCON2BITS;\r
+extern volatile ADCON2BITS ADCON2bits __attribute__((__sfr__));\r
+\r
+/* ADCON3: ADC Control Register 3 */\r
+extern volatile unsigned int ADCON3 __attribute__((__sfr__));\r
+typedef struct tagADCON3BITS {\r
+ unsigned ADCS :6;\r
+ unsigned :1;\r
+ unsigned ADRC :1;\r
+ unsigned SAMC :5;\r
+ unsigned :3;\r
+} ADCON3BITS;\r
+extern volatile ADCON3BITS ADCON3bits __attribute__((__sfr__));\r
+\r
+/* ADCHS: ADC Input Channel Select Register */\r
+extern volatile unsigned int ADCHS __attribute__((__sfr__));\r
+typedef struct tagADCHSBITS {\r
+ unsigned CH0SA :4;\r
+ unsigned CH0NA :1;\r
+ unsigned CH123SA:1;\r
+ unsigned CH123NA:2;\r
+ unsigned CH0SB :4;\r
+ unsigned CH0NB :1;\r
+ unsigned CH123SB:1;\r
+ unsigned CH123NB:2;\r
+} ADCHSBITS;\r
+extern volatile ADCHSBITS ADCHSbits __attribute__((__sfr__));\r
+\r
+/* ADPCFG: ADC Port Configuration Register */\r
+extern volatile unsigned int ADPCFG __attribute__((__sfr__));\r
+typedef struct tagADPCFGBITS {\r
+ unsigned PCFG0 :1;\r
+ unsigned PCFG1 :1;\r
+ unsigned PCFG2 :1;\r
+ unsigned PCFG3 :1;\r
+ unsigned PCFG4 :1;\r
+ unsigned PCFG5 :1;\r
+ unsigned :10;\r
+} ADPCFGBITS;\r
+extern volatile ADPCFGBITS ADPCFGbits __attribute__((__sfr__));\r
+\r
+/* ADCSSL: ADC Input Scan Select Register */\r
+extern volatile unsigned int ADCSSL __attribute__((__sfr__));\r
+typedef struct tagADCSSLBITS {\r
+ unsigned CSSL0 :1;\r
+ unsigned CSSL1 :1;\r
+ unsigned CSSL2 :1;\r
+ unsigned CSSL3 :1;\r
+ unsigned CSSL4 :1;\r
+ unsigned CSSL5 :1;\r
+ unsigned :10;\r
+} ADCSSLBITS;\r
+extern volatile ADCSSLBITS ADCSSLbits __attribute__((__sfr__));\r
+\r
+\r
+/* ------------------------------ */\r
+/* I/O Ports register definitions */\r
+/* ------------------------------ */\r
+\r
+/* TRISB: Port B Direction Control Register */\r
+extern volatile unsigned int TRISB __attribute__((__sfr__));\r
+typedef struct tagTRISBBITS {\r
+ unsigned TRISB0 :1;\r
+ unsigned TRISB1 :1;\r
+ unsigned TRISB2 :1;\r
+ unsigned TRISB3 :1;\r
+ unsigned TRISB4 :1;\r
+ unsigned TRISB5 :1;\r
+ unsigned :10;\r
+} TRISBBITS;\r
+extern volatile TRISBBITS TRISBbits __attribute__((__sfr__));\r
+\r
+/* PORTB: Port B Pin Register */\r
+extern volatile unsigned int PORTB __attribute__((__sfr__));\r
+typedef struct tagPORTBBITS {\r
+ unsigned RB0 :1;\r
+ unsigned RB1 :1;\r
+ unsigned RB2 :1;\r
+ unsigned RB3 :1;\r
+ unsigned RB4 :1;\r
+ unsigned RB5 :1;\r
+ unsigned :10;\r
+} PORTBBITS;\r
+extern volatile PORTBBITS PORTBbits __attribute__((__sfr__));\r
+\r
+/* LATB: Port B Latch Register */\r
+extern volatile unsigned int LATB __attribute__((__sfr__));\r
+typedef struct tagLATBBITS {\r
+ unsigned LATB0 :1;\r
+ unsigned LATB1 :1;\r
+ unsigned LATB2 :1;\r
+ unsigned LATB3 :1;\r
+ unsigned LATB4 :1;\r
+ unsigned LATB5 :1;\r
+ unsigned :10;\r
+} LATBBITS;\r
+extern volatile LATBBITS LATBbits __attribute__((__sfr__));\r
+\r
+/* TRISC: Port C Direction Control Register */\r
+extern volatile unsigned int TRISC __attribute__((__sfr__));\r
+typedef struct tagTRISCBITS {\r
+ unsigned :13;\r
+ unsigned TRISC13:1;\r
+ unsigned TRISC14:1;\r
+ unsigned TRISC15:1;\r
+} TRISCBITS;\r
+extern volatile TRISCBITS TRISCbits __attribute__((__sfr__));\r
+\r
+/* PORTC: Port C Pin Register */\r
+extern volatile unsigned int PORTC __attribute__((__sfr__));\r
+typedef struct tagPORTCBITS {\r
+ unsigned :13;\r
+ unsigned RC13 :1;\r
+ unsigned RC14 :1;\r
+ unsigned RC15 :1;\r
+} PORTCBITS;\r
+extern volatile PORTCBITS PORTCbits __attribute__((__sfr__));\r
+\r
+/* LATC: Port C Latch Register */\r
+extern volatile unsigned int LATC __attribute__((__sfr__));\r
+typedef struct tagLATCBITS {\r
+ unsigned :13;\r
+ unsigned LATC13 :1;\r
+ unsigned LATC14 :1;\r
+ unsigned LATC15 :1;\r
+} LATCBITS;\r
+extern volatile LATCBITS LATCbits __attribute__((__sfr__));\r
+\r
+/* TRISD: Port D Direction Control Register */\r
+extern volatile unsigned int TRISD __attribute__((__sfr__));\r
+typedef struct tagTRISDBITS {\r
+ unsigned TRISD0 :1;\r
+ unsigned TRISD1 :1;\r
+ unsigned :14;\r
+} TRISDBITS;\r
+extern volatile TRISDBITS TRISDbits __attribute__((__sfr__));\r
+\r
+/* PORTD: Port D Pin Register */\r
+extern volatile unsigned int PORTD __attribute__((__sfr__));\r
+typedef struct tagPORTDBITS {\r
+ unsigned RD0 :1;\r
+ unsigned RD1 :1;\r
+ unsigned :14;\r
+} PORTDBITS;\r
+extern volatile PORTDBITS PORTDbits __attribute__((__sfr__));\r
+\r
+/* LATD: Port D Latch Register */\r
+extern volatile unsigned int LATD __attribute__((__sfr__));\r
+typedef struct tagLATDBITS {\r
+ unsigned LATD0 :1;\r
+ unsigned LATD1 :1;\r
+ unsigned :14;\r
+} LATDBITS;\r
+extern volatile LATDBITS LATDbits __attribute__((__sfr__));\r
+\r
+/* TRISE: Port E Direction Control Register */\r
+extern volatile unsigned int TRISE __attribute__((__sfr__));\r
+typedef struct tagTRISEBITS {\r
+ unsigned TRISE0 :1;\r
+ unsigned TRISE1 :1;\r
+ unsigned TRISE2 :1;\r
+ unsigned TRISE3 :1;\r
+ unsigned TRISE4 :1;\r
+ unsigned TRISE5 :1;\r
+ unsigned :2;\r
+ unsigned TRISE8 :1;\r
+ unsigned :7;\r
+} TRISEBITS;\r
+extern volatile TRISEBITS TRISEbits __attribute__((__sfr__));\r
+\r
+/* PORTE: Port E Pin Register */\r
+extern volatile unsigned int PORTE __attribute__((__sfr__));\r
+typedef struct tagPORTEBITS {\r
+ unsigned RE0 :1;\r
+ unsigned RE1 :1;\r
+ unsigned RE2 :1;\r
+ unsigned RE3 :1;\r
+ unsigned RE4 :1;\r
+ unsigned RE5 :1;\r
+ unsigned :2;\r
+ unsigned RE8 :1;\r
+ unsigned :7;\r
+} PORTEBITS;\r
+extern volatile PORTEBITS PORTEbits __attribute__((__sfr__));\r
+\r
+/* LATE: Port E Latch Register */\r
+extern volatile unsigned int LATE __attribute__((__sfr__));\r
+typedef struct tagLATEBITS {\r
+ unsigned LATE0 :1;\r
+ unsigned LATE1 :1;\r
+ unsigned LATE2 :1;\r
+ unsigned LATE3 :1;\r
+ unsigned LATE4 :1;\r
+ unsigned LATE5 :1;\r
+ unsigned :2;\r
+ unsigned LATE8 :1;\r
+ unsigned :7;\r
+} LATEBITS;\r
+extern volatile LATEBITS LATEbits __attribute__((__sfr__));\r
+\r
+/* TRISF: Port F Direction Control Register */\r
+extern volatile unsigned int TRISF __attribute__((__sfr__));\r
+typedef struct tagTRISFBITS {\r
+ unsigned :2;\r
+ unsigned TRISF2 :1;\r
+ unsigned TRISF3 :1;\r
+ unsigned :12;\r
+} TRISFBITS;\r
+extern volatile TRISFBITS TRISFbits __attribute__((__sfr__));\r
+\r
+/* PORTF: Port F Pin Register */\r
+extern volatile unsigned int PORTF __attribute__((__sfr__));\r
+typedef struct tagPORTFBITS {\r
+ unsigned :2;\r
+ unsigned RF2 :1;\r
+ unsigned RF3 :1;\r
+ unsigned :12;\r
+} PORTFBITS;\r
+extern volatile PORTFBITS PORTFbits __attribute__((__sfr__));\r
+\r
+/* LATF: Port F Latch Register */\r
+extern volatile unsigned int LATF __attribute__((__sfr__));\r
+typedef struct tagLATFBITS {\r
+ unsigned :2;\r
+ unsigned LATF2 :1;\r
+ unsigned LATF3 :1;\r
+ unsigned :12;\r
+} LATFBITS;\r
+extern volatile LATFBITS LATFbits __attribute__((__sfr__));\r
+\r
+\r
+/* ------------------------- */\r
+/* CAN1 register definitions */\r
+/* ------------------------- */\r
+\r
+/* Generic structure of entire SFR area for each CAN module */\r
+typedef struct tagCAN {\r
+ unsigned int cxrxf0sid;\r
+ unsigned int cxrxf0eidh;\r
+ unsigned int cxrxf0eidl;\r
+ unsigned int reserved0;\r
+ unsigned int cxrxf1sid;\r
+ unsigned int cxrxf1eidh;\r
+ unsigned int cxrxf1eidl;\r
+ unsigned int reserved1;\r
+ unsigned int cxrxf2sid;\r
+ unsigned int cxrxf2eidh;\r
+ unsigned int cxrxf2eidl;\r
+ unsigned int reserved2;\r
+ unsigned int cxrxf3sid;\r
+ unsigned int cxrxf3eidh;\r
+ unsigned int cxrxf3eidl;\r
+ unsigned int reserved3;\r
+ unsigned int cxrxf4sid;\r
+ unsigned int cxrxf4eidh;\r
+ unsigned int cxrxf4eidl;\r
+ unsigned int reserved4;\r
+ unsigned int cxrxf5sid;\r
+ unsigned int cxrxf5eidh;\r
+ unsigned int cxrxf5eidl;\r
+ unsigned int reserved5;\r
+ unsigned int cxrxm0sid;\r
+ unsigned int cxrxm0eidh;\r
+ unsigned int cxrxm0eidl;\r
+ unsigned int reserved6;\r
+ unsigned int cxrxm1sid;\r
+ unsigned int cxrxm1eidh;\r
+ unsigned int cxrxm1eidl;\r
+ unsigned int reserved7;\r
+ unsigned int cxtx2sid;\r
+ unsigned int cxtx2eid;\r
+ unsigned int cxtx2dlc; \r
+ unsigned int cxtx2b1;\r
+ unsigned int cxtx2b2;\r
+ unsigned int cxtx2b3;\r
+ unsigned int cxtx2b4;\r
+ unsigned int cxtx2con;\r
+ unsigned int cxtx1sid;\r
+ unsigned int cxtx1eid;\r
+ unsigned int cxtx1dlc; \r
+ unsigned int cxtx1b1;\r
+ unsigned int cxtx1b2;\r
+ unsigned int cxtx1b3;\r
+ unsigned int cxtx1b4;\r
+ unsigned int cxtx1con;\r
+ unsigned int cxtx0sid;\r
+ unsigned int cxtx0eid;\r
+ unsigned int cxtx0dlc; \r
+ unsigned int cxtx0b1;\r
+ unsigned int cxtx0b2;\r
+ unsigned int cxtx0b3;\r
+ unsigned int cxtx0b4;\r
+ unsigned int cxtx0con;\r
+ unsigned int cxrx1sid;\r
+ unsigned int cxrx1eid;\r
+ unsigned int cxrx1dlc;\r
+ unsigned int cxrx1b1;\r
+ unsigned int cxrx1b2;\r
+ unsigned int cxrx1b3;\r
+ unsigned int cxrx1b4;\r
+ unsigned int cxrx1con;\r
+ unsigned int cxrx0sid;\r
+ unsigned int cxrx0eid;\r
+ unsigned int cxrx0dlc;\r
+ unsigned int cxrx0b1;\r
+ unsigned int cxrx0b2;\r
+ unsigned int cxrx0b3;\r
+ unsigned int cxrx0b4;\r
+ unsigned int cxrx0con;\r
+ unsigned int cxctrl;\r
+ unsigned int cxcfg1;\r
+ unsigned int cxcfg2;\r
+ unsigned int cxintf;\r
+ unsigned int cxinte;\r
+ unsigned int cxec;\r
+ unsigned int reserved8[50];\r
+} CAN, *PCAN;\r
+\r
+/* SFR blocks for each CAN module */\r
+extern volatile CAN CAN1 __attribute__((__sfr__));\r
+\r
+/* Generic structure for CAN Receive Filter Standard Identifier Register */\r
+typedef struct tagCxRXFxSIDBITS {\r
+ unsigned EXIDE :1;\r
+ unsigned :1; \r
+ unsigned SID :11;\r
+ unsigned :3;\r
+} CxRXFxSIDBITS;\r
+\r
+/* C1RXF0SID: CAN1 Receive Filter 0 SID Register */\r
+extern volatile unsigned int C1RXF0SID __attribute__((__sfr__));\r
+extern volatile CxRXFxSIDBITS C1RXF0SIDbits __attribute__((__sfr__));\r
+\r
+/* C1RXF0EIDH: CAN1 Receive Filter 0 EIDH Register */\r
+extern volatile unsigned int C1RXF0EIDH __attribute__((__sfr__));\r
+\r
+/* C1RXF0EIDL: CAN1 Receive Filter 0 EIDL Register */\r
+extern volatile unsigned int C1RXF0EIDL __attribute__((__sfr__));\r
+\r
+/* C1RXF1SID: CAN1 Receive Filter 1 SID Register */\r
+extern volatile unsigned int C1RXF1SID __attribute__((__sfr__));\r
+extern volatile CxRXFxSIDBITS C1RXF1SIDbits __attribute__((__sfr__));\r
+\r
+/* C1RXF1EIDH: CAN1 Receive Filter 1 EIDH Register */\r
+extern volatile unsigned int C1RXF1EIDH __attribute__((__sfr__));\r
+\r
+/* C1RXF1EIDL: CAN1 Receive Filter 1 EIDL Register */\r
+extern volatile unsigned int C1RXF1EIDL __attribute__((__sfr__));\r
+\r
+/* C1RXF2SID: CAN1 Receive Filter 2 SID Register */\r
+extern volatile unsigned int C1RXF2SID __attribute__((__sfr__));\r
+extern volatile CxRXFxSIDBITS C1RXF2SIDbits __attribute__((__sfr__));\r
+\r
+/* C1RXF2EIDH: CAN1 Receive Filter 2 EIDH Register */\r
+extern volatile unsigned int C1RXF2EIDH __attribute__((__sfr__));\r
+\r
+/* C1RXF2EIDL: CAN1 Receive Filter 2 EIDL Register */\r
+extern volatile unsigned int C1RXF2EIDL __attribute__((__sfr__));\r
+\r
+/* C1RXF3SID: CAN1 Receive Filter 3 SID Register */\r
+extern volatile unsigned int C1RXF3SID __attribute__((__sfr__));\r
+extern volatile CxRXFxSIDBITS C1RXF3SIDbits __attribute__((__sfr__));\r
+\r
+/* C1RXF3EIDH: CAN1 Receive Filter 3 EIDH Register */\r
+extern volatile unsigned int C1RXF3EIDH __attribute__((__sfr__));\r
+\r
+/* C1RXF3EIDL: CAN1 Receive Filter 3 EIDL Register */\r
+extern volatile unsigned int C1RXF3EIDL __attribute__((__sfr__));\r
+\r
+/* C1RXF4SID: CAN1 Receive Filter 4 SID Register */\r
+extern volatile unsigned int C1RXF4SID __attribute__((__sfr__));\r
+extern volatile CxRXFxSIDBITS C1RXF4SIDbits __attribute__((__sfr__));\r
+\r
+/* C1RXF4EIDH: CAN1 Receive Filter 4 EIDH Register */\r
+extern volatile unsigned int C1RXF4EIDH __attribute__((__sfr__));\r
+\r
+/* C1RXF4EIDL: CAN1 Receive Filter 4 EIDL Register */\r
+extern volatile unsigned int C1RXF4EIDL __attribute__((__sfr__));\r
+\r
+/* C1RXF5SID: CAN1 Receive Filter 5 SID Register */\r
+extern volatile unsigned int C1RXF5SID __attribute__((__sfr__));\r
+extern volatile CxRXFxSIDBITS C1RXF5SIDbits __attribute__((__sfr__));\r
+\r
+/* C1RXF5EIDH: CAN1 Receive Filter 5 EIDH Register */\r
+extern volatile unsigned int C1RXF5EIDH __attribute__((__sfr__)); \r
+\r
+/* C1RXF5EIDL: CAN1 Receive Filter 5 EIDL Register */\r
+extern volatile unsigned int C1RXF5EIDL __attribute__((__sfr__));\r
+\r
+/* Generic structure for CAN Receive Mask Standard Identifier Register */\r
+typedef struct tagCxRXMxSIDBITS {\r
+ unsigned MIDE :1;\r
+ unsigned :1; \r
+ unsigned SID :11;\r
+ unsigned :3;\r
+} CxRXMxSIDBITS;\r
+\r
+/* C1RXM0SID: CAN1 Receive Mask 0 SID Register */\r
+extern volatile unsigned int C1RXM0SID __attribute__((__sfr__));\r
+extern volatile CxRXMxSIDBITS C1RXM0SIDbits __attribute__((__sfr__));\r
+\r
+/* C1RXM0EIDH: CAN1 Receive Mask 0 EIDH Register */\r
+extern volatile unsigned int C1RXM0EIDH __attribute__((__sfr__));\r
+\r
+/* C1RXM0EIDL: CAN1 Receive Mask 0 EIDL Register */\r
+extern volatile unsigned int C1RXM0EIDL __attribute__((__sfr__));\r
+\r
+/* C1RXM1SID: CAN1 Receive Mask 1 SID Register */\r
+extern volatile unsigned int C1RXM1SID __attribute__((__sfr__));\r
+extern volatile CxRXMxSIDBITS C1RXM1SIDbits __attribute__((__sfr__));\r
+\r
+/* C1RXM1EIDH: CAN1 Receive Mask 1 EIDH Register */\r
+extern volatile unsigned int C1RXM1EIDH __attribute__((__sfr__));\r
+\r
+/* C1RXM1EIDL: CAN1 Receive Mask 1 EIDL Register */\r
+extern volatile unsigned int C1RXM1EIDL __attribute__((__sfr__));\r
+\r
+/* Generic structure for CAN Transmit Standard Identifier Register */\r
+typedef struct tagCxTXxSIDBITS {\r
+ unsigned TXIDE :1;\r
+ unsigned SRR :1;\r
+ unsigned SID5_0 :6;\r
+ unsigned :3;\r
+ unsigned SID10_6:5;\r
+} CxTXxSIDBITS;\r
+\r
+/* Generic structure for CAN Transmit Extended Identifier Register */\r
+typedef struct tagCxTXxEIDBITS {\r
+ unsigned EID13_6:8;\r
+ unsigned :4;\r
+ unsigned EID17_14:4;\r
+} CxTXxEIDBITS;\r
+\r
+/* Generic structure for CAN Transmit Data Length Code Register */\r
+typedef struct tagCxTXxDLCBITS {\r
+ unsigned :3;\r
+ unsigned DLC :4;\r
+ unsigned TXRB0 :1;\r
+ unsigned TXRB1 :1;\r
+ unsigned TXRTR :1;\r
+ unsigned EID5_0 :6;\r
+} CxTXxDLCBITS;\r
+\r
+/* Generic structure for CAN Transmit Control Register */\r
+typedef struct tagCxTXxCONBITS {\r
+ unsigned TXPRI :2;\r
+ unsigned :1;\r
+ unsigned TXREQ :1;\r
+ unsigned TXERR :1;\r
+ unsigned TXLARB :1;\r
+ unsigned TXABT :1;\r
+ unsigned :9;\r
+} CxTXxCONBITS;\r
+\r
+/* C1TX2SID: CAN1 Transmit 2 SID Register */\r
+extern volatile unsigned int C1TX2SID __attribute__((__sfr__));\r
+extern volatile CxTXxSIDBITS C1TX2SIDbits __attribute__((__sfr__));\r
+\r
+/* C1TX2EID: CAN1 Transmit 2 EID Register */\r
+extern volatile unsigned int C1TX2EID __attribute__((__sfr__));\r
+extern volatile CxTXxEIDBITS C1TX2EIDbits __attribute__((__sfr__));\r
+\r
+/* C1TX2DLC: CAN1 Transmit 2 DLC Register */\r
+extern volatile unsigned int C1TX2DLC __attribute__((__sfr__));\r
+extern volatile CxTXxDLCBITS C1TX2DLCbits __attribute__((__sfr__));\r
+\r
+/* C1TX2B1: CAN1 Transmit 2 Buffer Word 1 */\r
+extern volatile unsigned int C1TX2B1 __attribute__((__sfr__));\r
+\r
+/* C1TX2B2: CAN1 Transmit 2 Buffer Word 2 */\r
+extern volatile unsigned int C1TX2B2 __attribute__((__sfr__));\r
+\r
+/* C1TX2B3: CAN1 Transmit 2 Buffer Word 3 */\r
+extern volatile unsigned int C1TX2B3 __attribute__((__sfr__));\r
+\r
+/* C1TX2B4: CAN1 Transmit 2 Buffer Word 4 */\r
+extern volatile unsigned int C1TX2B4 __attribute__((__sfr__));\r
+\r
+/* C1TX2CON: CAN1 Transmit 2 Control Register */\r
+extern volatile unsigned int C1TX2CON __attribute__((__sfr__));\r
+extern volatile CxTXxCONBITS C1TX2CONbits __attribute__((__sfr__));\r
+\r
+/* C1TX1SID: CAN1 Transmit 1 SID Register */\r
+extern volatile unsigned int C1TX1SID __attribute__((__sfr__));\r
+extern volatile CxTXxSIDBITS C1TX1SIDbits __attribute__((__sfr__));\r
+\r
+/* C1TX1EID: CAN1 Transmit 1 EID Register */\r
+extern volatile unsigned int C1TX1EID __attribute__((__sfr__));\r
+extern volatile CxTXxEIDBITS C1TX1EIDbits __attribute__((__sfr__));\r
+\r
+/* C1TX1DLC: CAN1 Transmit 1 DLC Register */\r
+extern volatile unsigned int C1TX1DLC __attribute__((__sfr__));\r
+extern volatile CxTXxDLCBITS C1TX1DLCbits __attribute__((__sfr__));\r
+\r
+/* C1TX1B1: CAN1 Transmit 1 Buffer Word 1 */\r
+extern volatile unsigned int C1TX1B1 __attribute__((__sfr__));\r
+\r
+/* C1TX1B2: CAN1 Transmit 1 Buffer Word 2 */\r
+extern volatile unsigned int C1TX1B2 __attribute__((__sfr__));\r
+\r
+/* C1TX1B3: CAN1 Transmit 1 Buffer Word 3 */\r
+extern volatile unsigned int C1TX1B3 __attribute__((__sfr__));\r
+\r
+/* C1TX1B4: CAN1 Transmit 1 Buffer Word 4 */\r
+extern volatile unsigned int C1TX1B4 __attribute__((__sfr__));\r
+\r
+/* C1TX1CON: CAN1 Transmit 1 Control Register */\r
+extern volatile unsigned int C1TX1CON __attribute__((__sfr__));\r
+extern volatile CxTXxCONBITS C1TX1CONbits __attribute__((__sfr__));\r
+\r
+/* C1TX0SID: CAN1 Transmit 0 SID Register */\r
+extern volatile unsigned int C1TX0SID __attribute__((__sfr__));\r
+extern volatile CxTXxSIDBITS C1TX0SIDbits __attribute__((__sfr__));\r
+\r
+/* C1TX0EID: CAN1 Transmit 0 EID Register */\r
+extern volatile unsigned int C1TX0EID __attribute__((__sfr__));\r
+extern volatile CxTXxEIDBITS C1TX0EIDbits __attribute__((__sfr__));\r
+\r
+/* C1TX0DLC: CAN1 Transmit 0 DLC Register */\r
+extern volatile unsigned int C1TX0DLC __attribute__((__sfr__));\r
+extern volatile CxTXxDLCBITS C1TX0DLCbits __attribute__((__sfr__));\r
+\r
+/* C1TX0B1: CAN1 Transmit 0 Buffer Word 1 */\r
+extern volatile unsigned int C1TX0B1 __attribute__((__sfr__));\r
+\r
+/* C1TX0B2: CAN1 Transmit 0 Buffer Word 2 */\r
+extern volatile unsigned int C1TX0B2 __attribute__((__sfr__));\r
+\r
+/* C1TX0B3: CAN1 Transmit 0 Buffer Word 3 */\r
+extern volatile unsigned int C1TX0B3 __attribute__((__sfr__));\r
+\r
+/* C1TX0B4: CAN1 Transmit 0 Buffer Word 4 */\r
+extern volatile unsigned int C1TX0B4 __attribute__((__sfr__));\r
+\r
+/* C1TX0CON: CAN1 Transmit 0 Control Register */\r
+extern volatile unsigned int C1TX0CON __attribute__((__sfr__));\r
+extern volatile CxTXxCONBITS C1TX0CONbits __attribute__((__sfr__));\r
+\r
+/* Generic structure for CAN Receive Standard Identifier Register */\r
+typedef struct tagCxRXxSIDBITS {\r
+ unsigned RXIDE :1;\r
+ unsigned SRR :1;\r
+ unsigned SID :11;\r
+ unsigned :3;\r
+} CxRXxSIDBITS;\r
+\r
+/* Generic structure for CAN Receive Data Length Code Register */\r
+typedef struct tagCxRXxDLCBITS {\r
+ unsigned DLC :4;\r
+ unsigned RXRB0 :1;\r
+ unsigned :3;\r
+ unsigned RXRB1 :1;\r
+ unsigned RXRTR :1;\r
+ unsigned EID5_0 :6;\r
+} CxRXxDLCBITS;\r
+\r
+/* Generic structure for CAN Receive 1 Control Register */\r
+typedef struct tagCxRX1CONBITS {\r
+ unsigned FILHIT :3;\r
+ unsigned RXRTRRO:1;\r
+ unsigned :3;\r
+ unsigned RXFUL :1;\r
+ unsigned :8;\r
+} CxRX1CONBITS;\r
+\r
+/* C1RX1SID: CAN1 Receive 1 SID Register */\r
+extern volatile unsigned int C1RX1SID __attribute__((__sfr__));\r
+extern volatile CxRXxSIDBITS C1RX1SIDbits __attribute__((__sfr__));\r
+\r
+/* C1RX1EID: CAN1 Receive 1 EID Register */\r
+extern volatile unsigned int C1RX1EID __attribute__((__sfr__));\r
+\r
+/* C1RX1DLC: CAN1 Receive 1 DLC Register */\r
+extern volatile unsigned int C1RX1DLC __attribute__((__sfr__));\r
+extern volatile CxRXxDLCBITS C1RX1DLCbits __attribute__((__sfr__));\r
+\r
+/* C1RX1B1: CAN1 Receive 1 Buffer Word 1 */\r
+extern volatile unsigned int C1RX1B1 __attribute__((__sfr__));\r
+\r
+/* C1RX1B2: CAN1 Receive 1 Buffer Word 2 */\r
+extern volatile unsigned int C1RX1B2 __attribute__((__sfr__));\r
+\r
+/* C1RX1B3: CAN1 Receive 1 Buffer Word 3 */\r
+extern volatile unsigned int C1RX1B3 __attribute__((__sfr__));\r
+\r
+/* C1RX1B4: CAN1 Receive 1 Buffer Word 4 */\r
+extern volatile unsigned int C1RX1B4 __attribute__((__sfr__));\r
+\r
+/* C1RX1CON: CAN1 Receive 1 Control Register */\r
+extern volatile unsigned int C1RX1CON __attribute__((__sfr__));\r
+extern volatile CxRX1CONBITS C1RX1CONbits __attribute__((__sfr__));\r
+\r
+/* Generic structure for CAN Receive 0 Control Register */\r
+typedef struct tagCxRX0CONBITS {\r
+ unsigned FILHIT0:1;\r
+ unsigned JTOFF :1;\r
+ unsigned DBEN :1;\r
+ unsigned RXRTRRO:1;\r
+ unsigned :3;\r
+ unsigned RXFUL :1;\r
+ unsigned :8;\r
+} CxRX0CONBITS;\r
+\r
+/* C1RX0SID: CAN1 Receive 0 SID Register */\r
+extern volatile unsigned int C1RX0SID __attribute__((__sfr__));\r
+extern volatile CxRXxSIDBITS C1RX0SIDbits __attribute__((__sfr__));\r
+\r
+/* C1RX0EID: CAN1 Receive 0 EID Register */\r
+extern volatile unsigned int C1RX0EID __attribute__((__sfr__));\r
+\r
+/* C1RX0DLC: CAN1 Receive 0 DLC Register */\r
+extern volatile unsigned int C1RX0DLC __attribute__((__sfr__));\r
+extern volatile CxRXxDLCBITS C1RX0DLCbits __attribute__((__sfr__));\r
+\r
+/* C1RX0B1: CAN1 Receive 0 Buffer Word 1 */\r
+extern volatile unsigned int C1RX0B1 __attribute__((__sfr__));\r
+\r
+/* C1RX0B2: CAN1 Receive 0 Buffer Word 2 */\r
+extern volatile unsigned int C1RX0B2 __attribute__((__sfr__));\r
+\r
+/* C1RX0B3: CAN1 Receive 0 Buffer Word 3 */\r
+extern volatile unsigned int C1RX0B3 __attribute__((__sfr__));\r
+\r
+/* C1RX0B4: CAN1 Receive 0 Buffer Word 4 */\r
+extern volatile unsigned int C1RX0B4 __attribute__((__sfr__));\r
+\r
+/* C1RX0CON: CAN1 Receive 0 Control Register */\r
+extern volatile unsigned int C1RX0CON __attribute__((__sfr__));\r
+extern volatile CxRX0CONBITS C1RX0CONbits __attribute__((__sfr__));\r
+\r
+/* C1CTRL: CAN1 Control Register */\r
+extern volatile unsigned int C1CTRL __attribute__((__sfr__));\r
+typedef struct tagCxCTRLBITS {\r
+ unsigned :1;\r
+ unsigned ICODE :3;\r
+ unsigned :1;\r
+ unsigned OPMODE :3;\r
+ unsigned REQOP :3;\r
+ unsigned CANCKS :1;\r
+ unsigned ABAT :1;\r
+ unsigned CSIDL :1;\r
+ unsigned :1;\r
+ unsigned CANCAP :1;\r
+} CxCTRLBITS;\r
+extern volatile CxCTRLBITS C1CTRLbits __attribute__((__sfr__));\r
+\r
+/* C1CFG1: CAN1 Baud Rate Control Register 1 */\r
+extern volatile unsigned int C1CFG1 __attribute__((__sfr__));\r
+typedef struct tagCxCFG1BITS {\r
+ unsigned BRP :6;\r
+ unsigned SJW :2;\r
+ unsigned :8;\r
+} CxCFG1BITS;\r
+extern volatile CxCFG1BITS C1CFG1bits __attribute__((__sfr__));\r
+\r
+/* C1CFG2: CAN1 Baud Rate Control Register 2 */\r
+extern volatile unsigned int C1CFG2 __attribute__((__sfr__));\r
+typedef struct tagCxCFG2BITS {\r
+ unsigned PRSEG :3;\r
+ unsigned SEG1PH :3;\r
+ unsigned SAM :1;\r
+ unsigned SEG2PHTS:1;\r
+ unsigned SEG2PH :3;\r
+ unsigned :3;\r
+ unsigned WAKFIL :1;\r
+ unsigned :1;\r
+} CxCFG2BITS;\r
+extern volatile CxCFG2BITS C1CFG2bits __attribute__((__sfr__));\r
+\r
+/* C1INTF: CAN1 Interrupt Flag Status Register */\r
+extern volatile unsigned int C1INTF __attribute__((__sfr__));\r
+typedef struct tagCxINTFBITS {\r
+ unsigned RX0IF :1;\r
+ unsigned RX1IF :1;\r
+ unsigned TX0IF :1;\r
+ unsigned TX1IF :1;\r
+ unsigned TX2IF :1;\r
+ unsigned ERRIF :1;\r
+ unsigned WAKIF :1;\r
+ unsigned IVRIF :1;\r
+ unsigned EWARN :1;\r
+ unsigned RXWAR :1;\r
+ unsigned TXWAR :1;\r
+ unsigned RXEP :1;\r
+ unsigned TXEP :1;\r
+ unsigned TXBO :1;\r
+ unsigned RX1OVR :1;\r
+ unsigned RX0OVR :1;\r
+} CxINTFBITS;\r
+extern volatile CxINTFBITS C1INTFbits __attribute__((__sfr__));\r
+\r
+/* C1INTE: CAN1 Interrupt Enable Control Register */\r
+extern volatile unsigned int C1INTE __attribute__((__sfr__));\r
+typedef struct tagCxINTEBITS {\r
+ unsigned RX0IE :1;\r
+ unsigned RX1IE :1;\r
+ unsigned TX0IE :1;\r
+ unsigned TX1IE :1;\r
+ unsigned TX2IE :1;\r
+ unsigned ERRIE :1;\r
+ unsigned WAKIE :1;\r
+ unsigned IVRIE :1;\r
+ unsigned :8;\r
+} CxINTEBITS;\r
+extern volatile CxINTEBITS C1INTEbits __attribute__((__sfr__));\r
+\r
+/* C1EC: CAN1 Error Count Register */\r
+extern volatile unsigned int C1EC __attribute__((__sfr__));\r
+\r
+/* C1RERRCNT: CAN1 Receive Error Count (C1EC low byte) */\r
+extern volatile unsigned char C1RERRCNT __attribute__((__sfr__));\r
+\r
+/* C1TERRCNT: CAN1 Transmit Error Count (C1EC high byte) */\r
+extern volatile unsigned char C1TERRCNT __attribute__((__sfr__));\r
+\r
+\r
+/* --------------------------------------- */\r
+/* System Integration register definitions */\r
+/* --------------------------------------- */\r
+\r
+/* RCON: Reset Control Register */\r
+extern volatile unsigned int RCON __attribute__((__sfr__));\r
+typedef struct tagRCONBITS {\r
+ unsigned POR :1;\r
+ unsigned BOR :1;\r
+ unsigned IDLE :1;\r
+ unsigned SLEEP :1;\r
+ unsigned WDTO :1;\r
+ unsigned SWDTEN :1;\r
+ unsigned SWR :1;\r
+ unsigned EXTR :1;\r
+ unsigned :5;\r
+ unsigned BGST :1;\r
+ unsigned IOPUWR :1;\r
+ unsigned TRAPR :1;\r
+} RCONBITS;\r
+extern volatile RCONBITS RCONbits __attribute__((__sfr__));\r
+\r
+/* OSCCON: Oscillator Control Register */\r
+extern volatile unsigned int OSCCON __attribute__((__sfr__));\r
+typedef struct tagOSCCONBITS {\r
+ unsigned OSWEN :1;\r
+ unsigned LPOSCEN:1;\r
+ unsigned :1;\r
+ unsigned CF :1;\r
+ unsigned :1;\r
+ unsigned LOCK :1;\r
+ unsigned POST :2;\r
+ unsigned NOSC :2;\r
+ unsigned TUN0 :1;\r
+ unsigned TUN1 :1;\r
+ unsigned COSC :2;\r
+ unsigned TUN2 :1;\r
+ unsigned TUN3 :1;\r
+} OSCCONBITS;\r
+extern volatile OSCCONBITS OSCCONbits __attribute__((__sfr__));\r
+\r
+\r
+/* ---------------------------------------- */\r
+/* Non-Volatile Memory register definitions */\r
+/* ---------------------------------------- */\r
+\r
+/* NVMCON: Non-Volatile Memory Control Register */\r
+extern volatile unsigned int NVMCON __attribute__((__sfr__));\r
+typedef struct tagNVMCONBITS {\r
+ unsigned PROGOP :7;\r
+ unsigned :1;\r
+ unsigned TWRI :1;\r
+ unsigned :4;\r
+ unsigned WRERR :1;\r
+ unsigned WREN :1;\r
+ unsigned WR :1;\r
+} NVMCONBITS;\r
+extern volatile NVMCONBITS NVMCONbits __attribute__((__sfr__));\r
+\r
+/* NVM Address bits <15:0> */\r
+extern volatile unsigned int NVMADR __attribute__((__sfr__));\r
+\r
+/* NVM Address bits <23:16> */\r
+extern volatile unsigned char NVMADRU __attribute__((__sfr__));\r
+\r
+/* NVM Key */\r
+extern volatile unsigned char NVMKEY __attribute__((__sfr__));\r
+\r
+\r
+/* ---------------------------------------------- */\r
+/* Peripheral Module Disable register definitions */\r
+/* ---------------------------------------------- */\r
+\r
+/* PMD1: Peripheral Module Disable Register 1 */\r
+extern volatile unsigned int PMD1 __attribute__((__sfr__));\r
+typedef struct tagPMD1BITS {\r
+ unsigned ADCMD :1;\r
+ unsigned C1MD :1;\r
+ unsigned :1;\r
+ unsigned SPI1MD :1;\r
+ unsigned :1;\r
+ unsigned U1MD :1;\r
+ unsigned :1;\r
+ unsigned I2CMD :1;\r
+ unsigned :1;\r
+ unsigned PWMMD :1;\r
+ unsigned QEIMD :1;\r
+ unsigned T1MD :1;\r
+ unsigned T2MD :1;\r
+ unsigned T3MD :1;\r
+ unsigned T4MD :1;\r
+ unsigned T5MD :1;\r
+} PMD1BITS;\r
+extern volatile PMD1BITS PMD1bits __attribute__((__sfr__));\r
+\r
+/* PMD2: Peripheral Module Disable Register 3 */\r
+extern volatile unsigned int PMD2 __attribute__((__sfr__));\r
+typedef struct tagPMD2BITS {\r
+ unsigned OC1MD :1;\r
+ unsigned OC2MD :1;\r
+ unsigned :6;\r
+ unsigned IC1MD :1;\r
+ unsigned IC2MD :1;\r
+ unsigned :4;\r
+ unsigned IC7MD :1;\r
+ unsigned IC8MD :1;\r
+} PMD2BITS;\r
+extern volatile PMD2BITS PMD2bits __attribute__((__sfr__));\r
+\r
+\r
+/* -------------------------------------------- */ \r
+/* Defines for unique SFR bit names */\r
+/* -------------------------------------------- */\r
+\r
+/* SR */\r
+#define _C SRbits.C\r
+#define _Z SRbits.Z\r
+#define _OV SRbits.OV\r
+#define _N SRbits.N\r
+#define _RA SRbits.RA\r
+#define _IPL SRbits.IPL\r
+#define _DC SRbits.DC\r
+#define _DA SRbits.DA\r
+#define _SAB SRbits.SAB\r
+#define _OAB SRbits.OAB\r
+#define _SB SRbits.SB\r
+#define _SA SRbits.SA\r
+#define _OB SRbits.OB\r
+#define _OA SRbits.OA\r
+\r
+/* CORCON */\r
+#define _IF CORCONbits.IF\r
+#define _RND CORCONbits.RND\r
+#define _PSV CORCONbits.PSV\r
+#define _IPL3 CORCONbits.IPL3\r
+#define _ACCSAT CORCONbits.ACCSAT\r
+#define _SATDW CORCONbits.SATDW\r
+#define _SATB CORCONbits.SATB\r
+#define _SATA CORCONbits.SATA\r
+#define _DL CORCONbits.DL\r
+#define _EDT CORCONbits.EDT\r
+#define _US CORCONbits.US\r
+\r
+/* MODCON */\r
+#define _XWM MODCONbits.XWM\r
+#define _YWM MODCONbits.YWM\r
+#define _BWM MODCONbits.BWM\r
+#define _YMODEN MODCONbits.YMODEN\r
+#define _XMODEN MODCONbits.XMODEN\r
+\r
+/* XBREV */\r
+#define _XB XBREVbits.XB\r
+#define _BREN XBREVbits.BREN\r
+\r
+/* INTCON1 */\r
+#define _OSCFAIL INTCON1bits.OSCFAIL\r
+#define _STKERR INTCON1bits.STKERR\r
+#define _ADDRERR INTCON1bits.ADDRERR\r
+#define _MATHERR INTCON1bits.MATHERR\r
+#define _COVTE INTCON1bits.COVTE\r
+#define _OVBTE INTCON1bits.OVBTE\r
+#define _OVATE INTCON1bits.OVATE\r
+#define _NSTDIS INTCON1bits.NSTDIS\r
+\r
+/* INTCON2 */\r
+#define _INT0EP INTCON2bits.INT0EP\r
+#define _INT1EP INTCON2bits.INT1EP\r
+#define _INT2EP INTCON2bits.INT2EP\r
+#define _DISI INTCON2bits.DISI\r
+#define _ALTIVT INTCON2bits.ALTIVT\r
+\r
+/* IFS0 */\r
+#define _INT0IF IFS0bits.INT0IF \r
+#define _IC1IF IFS0bits.IC1IF\r
+#define _OC1IF IFS0bits.OC1IF\r
+#define _T1IF IFS0bits.T1IF\r
+#define _IC2IF IFS0bits.IC2IF\r
+#define _OC2IF IFS0bits.OC2IF\r
+#define _T2IF IFS0bits.T2IF\r
+#define _T3IF IFS0bits.T3IF\r
+#define _SPI1IF IFS0bits.SPI1IF \r
+#define _U1RXIF IFS0bits.U1RXIF\r
+#define _U1TXIF IFS0bits.U1TXIF\r
+#define _ADIF IFS0bits.ADIF\r
+#define _NVMIF IFS0bits.NVMIF\r
+#define _SI2CIF IFS0bits.SI2CIF\r
+#define _MI2CIF IFS0bits.MI2CIF\r
+#define _CNIF IFS0bits.CNIF\r
+\r
+/* IFS1 */\r
+#define _INT1IF IFS1bits.INT1IF \r
+#define _IC7IF IFS1bits.IC7IF\r
+#define _IC8IF IFS1bits.IC8IF\r
+#define _T4IF IFS1bits.T4IF\r
+#define _T5IF IFS1bits.T5IF\r
+#define _INT2IF IFS1bits.INT2IF\r
+#define _C1IF IFS1bits.C1IF\r
+\r
+/* IFS2 */\r
+#define _PWMIF IFS2bits.PWMIF\r
+#define _QEIIF IFS2bits.QEIIF\r
+#define _FLTAIF IFS2bits.FLTAIF \r
+\r
+/* IEC0 */\r
+#define _INT0IE IEC0bits.INT0IE \r
+#define _IC1IE IEC0bits.IC1IE\r
+#define _OC1IE IEC0bits.OC1IE\r
+#define _T1IE IEC0bits.T1IE\r
+#define _IC2IE IEC0bits.IC2IE\r
+#define _OC2IE IEC0bits.OC2IE\r
+#define _T2IE IEC0bits.T2IE\r
+#define _T3IE IEC0bits.T3IE\r
+#define _SPI1IE IEC0bits.SPI1IE \r
+#define _U1RXIE IEC0bits.U1RXIE\r
+#define _U1TXIE IEC0bits.U1TXIE\r
+#define _ADIE IEC0bits.ADIE\r
+#define _NVMIE IEC0bits.NVMIE\r
+#define _SI2CIE IEC0bits.SI2CIE\r
+#define _MI2CIE IEC0bits.MI2CIE\r
+#define _CNIE IEC0bits.CNIE\r
+\r
+/* IEC1 */\r
+#define _INT1IE IEC1bits.INT1IE \r
+#define _IC7IE IEC1bits.IC7IE\r
+#define _IC8IE IEC1bits.IC8IE\r
+#define _T4IE IEC1bits.T4IE\r
+#define _T5IE IEC1bits.T5IE\r
+#define _INT2IE IEC1bits.INT2IE\r
+#define _C1IE IEC1bits.C1IE\r
+\r
+/* IEC2 */\r
+#define _PWMIE IEC2bits.PWMIE\r
+#define _QEIIE IEC2bits.QEIIE\r
+#define _FLTAIE IEC2bits.FLTAIE \r
+\r
+/* IPC0 */\r
+#define _INT0IP IPC0bits.INT0IP \r
+#define _IC1IP IPC0bits.IC1IP\r
+#define _OC1IP IPC0bits.OC1IP\r
+#define _T1IP IPC0bits.T1IP\r
+\r
+/* IPC1 */\r
+#define _IC2IP IPC1bits.IC2IP \r
+#define _OC2IP IPC1bits.OC2IP\r
+#define _T2IP IPC1bits.T2IP\r
+#define _T3IP IPC1bits.T3IP\r
+\r
+/* IPC2 */\r
+#define _SPI1IP IPC2bits.SPI1IP \r
+#define _U1RXIP IPC2bits.U1RXIP\r
+#define _U1TXIP IPC2bits.U1TXIP\r
+#define _ADIP IPC2bits.ADIP\r
+\r
+/* IPC3 */\r
+#define _NVMIP IPC3bits.NVMIP \r
+#define _SI2CIP IPC3bits.SI2CIP\r
+#define _MI2CIP IPC3bits.MI2CIP\r
+#define _CNIP IPC3bits.CNIP\r
+\r
+/* IPC4 */\r
+#define _INT1IP IPC4bits.INT1IP \r
+#define _IC7IP IPC4bits.IC7IP\r
+#define _IC8IP IPC4bits.IC8IP\r
+\r
+/* IPC5 */\r
+#define _T4IP IPC5bits.T4IP\r
+#define _T5IP IPC5bits.T5IP\r
+#define _INT2IP IPC5bits.INT2IP\r
+\r
+/* IPC6 */\r
+#define _C1IP IPC6bits.C1IP\r
+\r
+/* IPC9 */\r
+#define _PWMIP IPC9bits.PWMIP\r
+\r
+/* IPC10 */\r
+#define _QEIIP IPC10bits.QEIIP\r
+#define _FLTAIP IPC10bits.FLTAIP\r
+\r
+/* CNEN1 */\r
+#define _CN0IE CNEN1bits.CN0IE \r
+#define _CN1IE CNEN1bits.CN1IE\r
+#define _CN2IE CNEN1bits.CN2IE\r
+#define _CN3IE CNEN1bits.CN3IE\r
+#define _CN4IE CNEN1bits.CN4IE\r
+#define _CN5IE CNEN1bits.CN5IE\r
+#define _CN6IE CNEN1bits.CN6IE\r
+#define _CN7IE CNEN1bits.CN7IE\r
+\r
+/* CNPU1 */\r
+#define _CN0PUE CNPU1bits.CN0PUE \r
+#define _CN1PUE CNPU1bits.CN1PUE\r
+#define _CN2PUE CNPU1bits.CN2PUE\r
+#define _CN3PUE CNPU1bits.CN3PUE\r
+#define _CN4PUE CNPU1bits.CN4PUE\r
+#define _CN5PUE CNPU1bits.CN5PUE\r
+#define _CN6PUE CNPU1bits.CN6PUE\r
+#define _CN7PUE CNPU1bits.CN7PUE\r
+\r
+/* QEICON */\r
+#define _UPDN_SRC QEICONbits.UPDN_SRC\r
+#define _TQCS QEICONbits.TQCS\r
+#define _POSRES QEICONbits.POSRES\r
+#define _TQCKPS QEICONbits.TQCKPS\r
+#define _TQGATE QEICONbits.TQGATE\r
+#define _PCDOUT QEICONbits.PCDOUT\r
+#define _SWPAB QEICONbits.SWPAB\r
+#define _QEIM QEICONbits.QEIM\r
+#define _UPDN QEICONbits.UPDN\r
+#define _INDX QEICONbits.INDX\r
+#define _QEISIDL QEICONbits.QEISIDL\r
+#define _CNTERR QEICONbits.CNTERR\r
+\r
+/* DFLTCON */\r
+#define _QECK DFLTCONbits.QECK\r
+#define _QEOUT DFLTCONbits.QEOUT\r
+#define _CEID DFLTCONbits.CEID\r
+#define _IMV DFLTCONbits.IMV\r
+\r
+/* PTCON */\r
+#define _PTMOD PTCONbits.PTMOD\r
+#define _PTCKPS PTCONbits.PTCKPS\r
+#define _PTOPS PTCONbits.PTOPS\r
+#define _PTSIDL PTCONbits.PTSIDL\r
+#define _PTEN PTCONbits.PTEN\r
+\r
+/* PTMR */\r
+#define _PTDIR PTMRbits.PTDIR\r
+\r
+/* SEVTCMP */\r
+#define _SEVTDIR SEVTCMPbits.SEVTDIR\r
+\r
+/* PWMCON1 */\r
+#define _PEN1L PWMCON1bits.PEN1L\r
+#define _PEN2L PWMCON1bits.PEN2L\r
+#define _PEN3L PWMCON1bits.PEN3L\r
+#define _PEN1H PWMCON1bits.PEN1H\r
+#define _PEN2H PWMCON1bits.PEN2H\r
+#define _PEN3H PWMCON1bits.PEN3H\r
+#define _PMOD1 PWMCON1bits.PMOD1\r
+#define _PMOD2 PWMCON1bits.PMOD2\r
+#define _PMOD3 PWMCON1bits.PMOD3\r
+\r
+/* PWMCON2 */\r
+#define _UDIS PWMCON2bits.UDIS\r
+#define _OSYNC PWMCON2bits.OSYNC\r
+#define _SEVOPS PWMCON2bits.SEVOPS\r
+\r
+/* DTCON1 */\r
+#define _DTA DTCON1bits.DTA\r
+#define _DTAPS DTCON1bits.DTAPS\r
+\r
+/* FLTACON */\r
+#define _FAEN1 FLTACONbits.FAEN1\r
+#define _FAEN2 FLTACONbits.FAEN2\r
+#define _FAEN3 FLTACONbits.FAEN3\r
+#define _FLTAM FLTACONbits.FLTAM\r
+#define _FAOV1L FLTACONbits.FAOV1L\r
+#define _FAOV1H FLTACONbits.FAOV1H\r
+#define _FAOV2L FLTACONbits.FAOV2L\r
+#define _FAOV2H FLTACONbits.FAOV2H\r
+#define _FAOV3L FLTACONbits.FAOV3L\r
+#define _FAOV3H FLTACONbits.FAOV3H\r
+\r
+/* FLTBCON */\r
+#define _FBEN1 FLTBCONbits.FBEN1\r
+#define _FBEN2 FLTBCONbits.FBEN2\r
+#define _FBEN3 FLTBCONbits.FBEN3\r
+#define _FLTBM FLTBCONbits.FLTBM\r
+#define _FBOV1L FLTBCONbits.FBOV1L\r
+#define _FBOV1H FLTBCONbits.FBOV1H\r
+#define _FBOV2L FLTBCONbits.FBOV2L\r
+#define _FBOV2H FLTBCONbits.FBOV2H\r
+#define _FBOV3L FLTBCONbits.FBOV3L\r
+#define _FBOV3H FLTBCONbits.FBOV3H\r
+\r
+/* OVDCON */\r
+#define _POUT1L OVDCONbits.POUT1L\r
+#define _POUT1H OVDCONbits.POUT1H\r
+#define _POUT2L OVDCONbits.POUT2L\r
+#define _POUT2H OVDCONbits.POUT2H\r
+#define _POUT3L OVDCONbits.POUT3L\r
+#define _POUT3H OVDCONbits.POUT3H\r
+#define _POVD1L OVDCONbits.POVD1L\r
+#define _POVD1H OVDCONbits.POVD1H\r
+#define _POVD2L OVDCONbits.POVD2L\r
+#define _POVD2H OVDCONbits.POVD2H\r
+#define _POVD3L OVDCONbits.POVD3L\r
+#define _POVD3H OVDCONbits.POVD3H\r
+\r
+/* I2CCON */\r
+#define _SEN I2CCONbits.SEN\r
+#define _RSEN I2CCONbits.RSEN\r
+#define _PEN I2CCONbits.PEN\r
+#define _RCEN I2CCONbits.RCEN\r
+#define _ACKEN I2CCONbits.ACKEN\r
+#define _ACKDT I2CCONbits.ACKDT\r
+#define _STREN I2CCONbits.STREN\r
+#define _GCEN I2CCONbits.GCEN\r
+#define _SMEN I2CCONbits.SMEN\r
+#define _DISSLW I2CCONbits.DISSLW\r
+#define _A10M I2CCONbits.A10M\r
+#define _IPMIEN I2CCONbits.IPMIEN\r
+#define _SCLREL I2CCONbits.SCLREL\r
+#define _I2CSIDL I2CCONbits.I2CSIDL\r
+#define _I2CEN I2CCONbits.I2CEN\r
+\r
+/* I2CSTAT */\r
+#define _TBF I2CSTATbits.TBF\r
+#define _RBF I2CSTATbits.RBF\r
+#define _R_W I2CSTATbits.R_W\r
+#define _S I2CSTATbits.S\r
+#define _P I2CSTATbits.P\r
+#define _D_A I2CSTATbits.D_A\r
+#define _I2COV I2CSTATbits.I2COV\r
+#define _IWCOL I2CSTATbits.IWCOL\r
+#define _ADD10 I2CSTATbits.ADD10\r
+#define _GCSTAT I2CSTATbits.GCSTAT\r
+#define _BCL I2CSTATbits.BCL\r
+#define _TRSTAT I2CSTATbits.TRSTAT\r
+#define _ACKSTAT I2CSTATbits.ACKSTAT\r
+\r
+/* ADCON1 */\r
+#define _DONE ADCON1bits.DONE\r
+#define _SAMP ADCON1bits.SAMP\r
+#define _ASAM ADCON1bits.ASAM\r
+#define _SIMSAM ADCON1bits.SIMSAM\r
+#define _SSRC ADCON1bits.SSRC\r
+#define _FORM ADCON1bits.FORM\r
+#define _ADSIDL ADCON1bits.ADSIDL\r
+#define _ADON ADCON1bits.ADON\r
+\r
+/* ADCON2 */\r
+#define _ALTS ADCON2bits.ALTS\r
+#define _BUFM ADCON2bits.BUFM\r
+#define _SMPI ADCON2bits.SMPI\r
+#define _BUFS ADCON2bits.BUFS\r
+#define _CSCNA ADCON2bits.CSCNA\r
+#define _VCFG ADCON2bits.VCFG\r
+\r
+/* ADCON3 */\r
+#define _ADCS ADCON3bits.ADCS\r
+#define _ADRC ADCON3bits.ADRC\r
+#define _SAMC ADCON3bits.SAMC\r
+\r
+/* ADCHS */\r
+#define _CH0SA ADCHSbits.CH0SA\r
+#define _CH0NA ADCHSbits.CH0NA\r
+#define _CH123SA ADCHSbits.CH123SA\r
+#define _CH123NA ADCHSbits.CH123NA\r
+#define _CH0SB ADCHSbits.CH0SB\r
+#define _CH0NB ADCHSbits.CH0NB\r
+#define _CH123SB ADCHSbits.CH123SB\r
+#define _CH123NB ADCHSbits.CH123NB\r
+\r
+/* ADPCFG */\r
+#define _PCFG0 ADPCFGbits.PCFG0\r
+#define _PCFG1 ADPCFGbits.PCFG1\r
+#define _PCFG2 ADPCFGbits.PCFG2\r
+#define _PCFG3 ADPCFGbits.PCFG3\r
+#define _PCFG4 ADPCFGbits.PCFG4\r
+#define _PCFG5 ADPCFGbits.PCFG5\r
+\r
+/* ADCSSL */\r
+#define _CSSL0 ADCSSLbits.CSSL0\r
+#define _CSSL1 ADCSSLbits.CSSL1\r
+#define _CSSL2 ADCSSLbits.CSSL2\r
+#define _CSSL3 ADCSSLbits.CSSL3\r
+#define _CSSL4 ADCSSLbits.CSSL4\r
+#define _CSSL5 ADCSSLbits.CSSL5\r
+\r
+/* TRISB */\r
+#define _TRISB0 TRISBbits.TRISB0\r
+#define _TRISB1 TRISBbits.TRISB1\r
+#define _TRISB2 TRISBbits.TRISB2\r
+#define _TRISB3 TRISBbits.TRISB3\r
+#define _TRISB4 TRISBbits.TRISB4\r
+#define _TRISB5 TRISBbits.TRISB5\r
+\r
+/* PORTB */\r
+#define _RB0 PORTBbits.RB0\r
+#define _RB1 PORTBbits.RB1\r
+#define _RB2 PORTBbits.RB2\r
+#define _RB3 PORTBbits.RB3\r
+#define _RB4 PORTBbits.RB4\r
+#define _RB5 PORTBbits.RB5\r
+\r
+/* LATB */\r
+#define _LATB0 LATBbits.LATB0\r
+#define _LATB1 LATBbits.LATB1\r
+#define _LATB2 LATBbits.LATB2\r
+#define _LATB3 LATBbits.LATB3\r
+#define _LATB4 LATBbits.LATB4\r
+#define _LATB5 LATBbits.LATB5\r
+\r
+/* TRISC */\r
+#define _TRISC13 TRISCbits.TRISC13\r
+#define _TRISC14 TRISCbits.TRISC14\r
+#define _TRISC15 TRISCbits.TRISC15\r
+\r
+/* PORTC */\r
+#define _RC13 PORTCbits.RC13\r
+#define _RC14 PORTCbits.RC14\r
+#define _RC15 PORTCbits.RC15\r
+\r
+/* LATC */\r
+#define _LATC13 LATCbits.LATC13\r
+#define _LATC14 LATCbits.LATC14\r
+#define _LATC15 LATCbits.LATC15\r
+\r
+/* TRISD */\r
+#define _TRISD0 TRISDbits.TRISD0\r
+#define _TRISD1 TRISDbits.TRISD1\r
+\r
+/* PORTD */\r
+#define _RD0 PORTDbits.RD0\r
+#define _RD1 PORTDbits.RD1\r
+\r
+/* LATD */\r
+#define _LATD0 LATDbits.LATD0\r
+#define _LATD1 LATDbits.LATD1\r
+\r
+/* TRISE */\r
+#define _TRISE0 TRISEbits.TRISE0\r
+#define _TRISE1 TRISEbits.TRISE1\r
+#define _TRISE2 TRISEbits.TRISE2\r
+#define _TRISE3 TRISEbits.TRISE3\r
+#define _TRISE4 TRISEbits.TRISE4\r
+#define _TRISE5 TRISEbits.TRISE5\r
+#define _TRISE8 TRISEbits.TRISE8\r
+\r
+/* PORTE */\r
+#define _RE0 PORTEbits.RE0\r
+#define _RE1 PORTEbits.RE1\r
+#define _RE2 PORTEbits.RE2\r
+#define _RE3 PORTEbits.RE3\r
+#define _RE4 PORTEbits.RE4\r
+#define _RE5 PORTEbits.RE5\r
+#define _RE8 PORTEbits.RE8\r
+\r
+/* LATE */\r
+#define _LATE0 LATEbits.LATE0\r
+#define _LATE1 LATEbits.LATE1\r
+#define _LATE2 LATEbits.LATE2\r
+#define _LATE3 LATEbits.LATE3\r
+#define _LATE4 LATEbits.LATE4\r
+#define _LATE5 LATEbits.LATE5\r
+#define _LATE8 LATEbits.LATE8\r
+\r
+/* TRISF */\r
+#define _TRISF2 TRISFbits.TRISF2\r
+#define _TRISF3 TRISFbits.TRISF3\r
+\r
+/* PORTF */\r
+#define _RF2 PORTFbits.RF2\r
+#define _RF3 PORTFbits.RF3\r
+\r
+/* LATF */\r
+#define _LATF2 LATFbits.LATF2\r
+#define _LATF3 LATFbits.LATF3\r
+\r
+/* RCON */\r
+#define _POR RCONbits.POR\r
+#define _BOR RCONbits.BOR\r
+#define _IDLE RCONbits.IDLE\r
+#define _SLEEP RCONbits.SLEEP\r
+#define _WDTO RCONbits.WDTO\r
+#define _SWDTEN RCONbits.SWDTEN\r
+#define _SWR RCONbits.SWR\r
+#define _EXTR RCONbits.EXTR\r
+#define _BGST RCONbits.BGST\r
+#define _IOPUWR RCONbits.IOPUWR\r
+#define _TRAPR RCONbits.TRAPR\r
+\r
+/* OSCCON */\r
+#define _OSWEN OSCCONbits.OSWEN\r
+#define _LPOSCEN OSCCONbits.LPOSCEN\r
+#define _CF OSCCONbits.CF\r
+#define _LOCK OSCCONbits.LOCK\r
+#define _POST OSCCONbits.POST\r
+#define _NOSC OSCCONbits.NOSC\r
+#define _TUN0 OSCCONbits.TUN0\r
+#define _TUN1 OSCCONbits.TUN1\r
+#define _COSC OSCCONbits.COSC\r
+#define _TUN2 OSCCONbits.TUN2\r
+#define _TUN3 OSCCONbits.TUN3\r
+\r
+/* NVMCON */\r
+#define _PROGOP NVMCONbits.PROGOP\r
+#define _TWRI NVMCONbits.TWRI\r
+#define _WRERR NVMCONbits.WRERR\r
+#define _WREN NVMCONbits.WREN\r
+#define _WR NVMCONbits.WR\r
+\r
+/* PMD1 */\r
+#define _ADCMD PMD1bits.ADCMD\r
+#define _C1MD PMD1bits.C1MD\r
+#define _SPI1MD PMD1bits.SPI1MD\r
+#define _U1MD PMD1bits.U1MD\r
+#define _I2CMD PMD1bits.I2CMD\r
+#define _PWMMD PMD1bits.PWMMD\r
+#define _QEIMD PMD1bits.QEIMD\r
+#define _T1MD PMD1bits.T1MD\r
+#define _T2MD PMD1bits.T2MD\r
+#define _T3MD PMD1bits.T3MD\r
+#define _T4MD PMD1bits.T4MD\r
+#define _T5MD PMD1bits.T5MD\r
+\r
+/* PMD2 */\r
+#define _OC1MD PMD2bits.OC1MD\r
+#define _OC2MD PMD2bits.OC2MD\r
+#define _IC1MD PMD2bits.IC1MD\r
+#define _IC2MD PMD2bits.IC2MD\r
+#define _IC7MD PMD2bits.IC7MD\r
+#define _IC8MD PMD2bits.IC8MD\r
+\r
+\r
+/* -------------------------------------------- */ \r
+/* Macros for Device Configuration Registers */\r
+/* -------------------------------------------- */\r
+\r
+/* FOSC */\r
+#define _FOSC(x) __attribute__((section("__FOSC.sec,code"))) int _FOSC = (x);\r
+\r
+#define CSW_FSCM_OFF 0xFFFF\r
+#define CSW_ON_FSCM_OFF 0x7FFF\r
+#define CSW_FSCM_ON 0x3FFF\r
+#define EC 0xFFFB\r
+#define ECIO 0xFFFC\r
+#define EC_PLL4 0xFFFD\r
+#define EC_PLL8 0xFFFE\r
+#define EC_PLL16 0xFFFF\r
+#define ERC 0xFFF9\r
+#define ERCIO 0xFFF8\r
+#define XT 0xFFF4\r
+#define XT_PLL4 0xFFF5\r
+#define XT_PLL8 0xFFF6\r
+#define XT_PLL16 0xFFF7\r
+#define XTL 0xFFF0\r
+#define FRC_PLL4 0xFFF1\r
+#define FRC_PLL8 0xFFFA\r
+#define FRC_PLL16 0xFFF3\r
+#define HS 0xFFF2\r
+#define LP 0xFCFF\r
+#define FRC 0xFDFF\r
+#define LPRC 0xFEFF\r
+\r
+/* FWDT */\r
+#define _FWDT(x) __attribute__((section("__FWDT.sec,code"))) int _FWDT = (x);\r
+\r
+#define WDT_ON 0xFFFF\r
+#define WDT_OFF 0x7FFF\r
+#define WDTPSA_1 0xFFCF\r
+#define WDTPSA_8 0xFFDF\r
+#define WDTPSA_64 0xFFEF\r
+#define WDTPSA_512 0xFFFF\r
+#define WDTPSB_1 0xFFF0\r
+#define WDTPSB_2 0xFFF1\r
+#define WDTPSB_3 0xFFF2\r
+#define WDTPSB_4 0xFFF3\r
+#define WDTPSB_5 0xFFF4\r
+#define WDTPSB_6 0xFFF5\r
+#define WDTPSB_7 0xFFF6\r
+#define WDTPSB_8 0xFFF7\r
+#define WDTPSB_9 0xFFF8\r
+#define WDTPSB_10 0xFFF9\r
+#define WDTPSB_11 0xFFFA\r
+#define WDTPSB_12 0xFFFB\r
+#define WDTPSB_13 0xFFFC\r
+#define WDTPSB_14 0xFFFD\r
+#define WDTPSB_15 0xFFFE\r
+#define WDTPSB_16 0xFFFF\r
+\r
+/* FBORPOR */\r
+#define _FBORPOR(x) __attribute__((section("__FBORPOR.sec,code"))) int _FBORPOR = (x);\r
+\r
+#define MCLR_EN 0xFFFF\r
+#define MCLR_DIS 0x7FFF\r
+#define RST_IOPIN 0xFFFF\r
+#define RST_PWMPIN 0xFBFF\r
+#define PWMxH_ACT_HI 0xFFFF\r
+#define PWMxH_ACT_LO 0xFDFF\r
+#define PWMxL_ACT_HI 0xFFFF\r
+#define PWMxL_ACT_LO 0xFEFF\r
+#define PBOR_ON 0xFFFF\r
+#define PBOR_OFF 0xFF7F\r
+#define BORV_20 0xFFFF\r
+#define BORV_27 0xFFEF\r
+#define BORV_42 0xFFDF\r
+#define BORV_45 0xFFCF\r
+#define PWRT_OFF 0xFFFC\r
+#define PWRT_4 0xFFFD\r
+#define PWRT_16 0xFFFE\r
+#define PWRT_64 0xFFFF\r
+\r
+/* FGS */\r
+#define _FGS(x) __attribute__((section("__FGS.sec,code"))) int _FGS = (x);\r
+\r
+#define CODE_PROT_OFF 0xFFFF\r
+#define CODE_PROT_ON 0xFFFD\r
+\r
+\r
+/* --------------------------------------------------------------------------- \r
+ Setting configuration fuses using macros:\r
+ ==========================================\r
+ Macros are provided which can be used to set configuration fuses:\r
+ For e.g., to set the FOSC fuse using a macro above, the following line of\r
+ code can be pasted before the beginning of the C source code.\r
+\r
+ _FOSC(CSW_FSCM_ON & EC_PLL16);\r
+\r
+ This would enable the external clock with the PLL set to 16x and further,\r
+ enable clock switching and failsafe clock monitoring.\r
+\r
+ Similarly, to set the FBORPOR fuse, paste the following :\r
+\r
+ _FBORPOR(PBOR_ON & BORV_27 & PWRT_ON_64 & MCLR_DIS);\r
+\r
+ This would enable Brown-out Reset at 2.7 Volts and initialize the Power-up\r
+ timer to 64 milliseconds and configure the use of the MCLR pin for I/O.\r
+ Given below, is a complete list of settings valid to each of the fuses:\r
+ (Paste the ones relevant to your application before the beginning of C\r
+ source code.)\r
+\r
+ FOSC:\r
+ ======\r
+ _FOSC(CSW_FSCM_OFF & EC);\r
+ _FOSC(CSW_FSCM_OFF & ECIO);\r
+ _FOSC(CSW_FSCM_OFF & EC_PLL4);\r
+ _FOSC(CSW_FSCM_OFF & EC_PLL8);\r
+ _FOSC(CSW_FSCM_OFF & EC_PLL16);\r
+ _FOSC(CSW_FSCM_OFF & ERC);\r
+ _FOSC(CSW_FSCM_OFF & ERCIO);\r
+ _FOSC(CSW_FSCM_OFF & XT);\r
+ _FOSC(CSW_FSCM_OFF & XT_PLL4);\r
+ _FOSC(CSW_FSCM_OFF & XT_PLL8);\r
+ _FOSC(CSW_FSCM_OFF & XT_PLL16);\r
+ _FOSC(CSW_FSCM_OFF & XTL);\r
+ _FOSC(CSW_FSCM_OFF & FRC_PLL4);\r
+ _FOSC(CSW_FSCM_OFF & FRC_PLL8);\r
+ _FOSC(CSW_FSCM_OFF & FRC_PLL16);\r
+ _FOSC(CSW_FSCM_OFF & HS);\r
+ _FOSC(CSW_FSCM_OFF & LP & EC);\r
+ _FOSC(CSW_FSCM_OFF & LP & ECIO);\r
+ _FOSC(CSW_FSCM_OFF & LP & EC_PLL4);\r
+ _FOSC(CSW_FSCM_OFF & LP & EC_PLL8);\r
+ _FOSC(CSW_FSCM_OFF & LP & EC_PLL16);\r
+ _FOSC(CSW_FSCM_OFF & LP & ERC);\r
+ _FOSC(CSW_FSCM_OFF & LP & ERCIO);\r
+ _FOSC(CSW_FSCM_OFF & LP & XT);\r
+ _FOSC(CSW_FSCM_OFF & LP & XT_PLL4);\r
+ _FOSC(CSW_FSCM_OFF & LP & XT_PLL8);\r
+ _FOSC(CSW_FSCM_OFF & LP & XT_PLL16);\r
+ _FOSC(CSW_FSCM_OFF & LP & XTL);\r
+ _FOSC(CSW_FSCM_OFF & LP & FRC_PLL4);\r
+ _FOSC(CSW_FSCM_OFF & LP & FRC_PLL8);\r
+ _FOSC(CSW_FSCM_OFF & LP & FRC_PLL16);\r
+ _FOSC(CSW_FSCM_OFF & LP & HS);\r
+ _FOSC(CSW_FSCM_OFF & FRC & EC);\r
+ _FOSC(CSW_FSCM_OFF & FRC & ECIO);\r
+ _FOSC(CSW_FSCM_OFF & FRC & EC_PLL4);\r
+ _FOSC(CSW_FSCM_OFF & FRC & EC_PLL8);\r
+ _FOSC(CSW_FSCM_OFF & FRC & EC_PLL16);\r
+ _FOSC(CSW_FSCM_OFF & FRC & ERC);\r
+ _FOSC(CSW_FSCM_OFF & FRC & ERCIO);\r
+ _FOSC(CSW_FSCM_OFF & FRC & XT);\r
+ _FOSC(CSW_FSCM_OFF & FRC & XT_PLL4);\r
+ _FOSC(CSW_FSCM_OFF & FRC & XT_PLL8);\r
+ _FOSC(CSW_FSCM_OFF & FRC & XT_PLL16);\r
+ _FOSC(CSW_FSCM_OFF & FRC & XTL);\r
+ _FOSC(CSW_FSCM_OFF & FRC & FRC_PLL4);\r
+ _FOSC(CSW_FSCM_OFF & FRC & FRC_PLL8);\r
+ _FOSC(CSW_FSCM_OFF & FRC & FRC_PLL16);\r
+ _FOSC(CSW_FSCM_OFF & FRC & HS);\r
+ _FOSC(CSW_FSCM_OFF & LPRC & EC);\r
+ _FOSC(CSW_FSCM_OFF & LPRC & ECIO);\r
+ _FOSC(CSW_FSCM_OFF & LPRC & EC_PLL4);\r
+ _FOSC(CSW_FSCM_OFF & LPRC & EC_PLL8);\r
+ _FOSC(CSW_FSCM_OFF & LPRC & EC_PLL16);\r
+ _FOSC(CSW_FSCM_OFF & LPRC & ERC);\r
+ _FOSC(CSW_FSCM_OFF & LPRC & ERCIO);\r
+ _FOSC(CSW_FSCM_OFF & LPRC & XT);\r
+ _FOSC(CSW_FSCM_OFF & LPRC & XT_PLL4);\r
+ _FOSC(CSW_FSCM_OFF & LPRC & XT_PLL8);\r
+ _FOSC(CSW_FSCM_OFF & LPRC & XT_PLL16);\r
+ _FOSC(CSW_FSCM_OFF & LPRC & XTL);\r
+ _FOSC(CSW_FSCM_OFF & LPRC & FRC_PLL4);\r
+ _FOSC(CSW_FSCM_OFF & LPRC & FRC_PLL8);\r
+ _FOSC(CSW_FSCM_OFF & LPRC & FRC_PLL16);\r
+ _FOSC(CSW_FSCM_OFF & LPRC & HS);\r
+ _FOSC(CSW_ON_FSCM_OFF & EC);\r
+ _FOSC(CSW_ON_FSCM_OFF & ECIO);\r
+ _FOSC(CSW_ON_FSCM_OFF & EC_PLL4);\r
+ _FOSC(CSW_ON_FSCM_OFF & EC_PLL8);\r
+ _FOSC(CSW_ON_FSCM_OFF & EC_PLL16);\r
+ _FOSC(CSW_ON_FSCM_OFF & ERC);\r
+ _FOSC(CSW_ON_FSCM_OFF & ERCIO);\r
+ _FOSC(CSW_ON_FSCM_OFF & XT);\r
+ _FOSC(CSW_ON_FSCM_OFF & XT_PLL4);\r
+ _FOSC(CSW_ON_FSCM_OFF & XT_PLL8);\r
+ _FOSC(CSW_ON_FSCM_OFF & XT_PLL16);\r
+ _FOSC(CSW_ON_FSCM_OFF & XTL);\r
+ _FOSC(CSW_ON_FSCM_OFF & FRC_PLL4);\r
+ _FOSC(CSW_ON_FSCM_OFF & FRC_PLL8);\r
+ _FOSC(CSW_ON_FSCM_OFF & FRC_PLL16);\r
+ _FOSC(CSW_ON_FSCM_OFF & HS);\r
+ _FOSC(CSW_ON_FSCM_OFF & LP & EC);\r
+ _FOSC(CSW_ON_FSCM_OFF & LP & ECIO);\r
+ _FOSC(CSW_ON_FSCM_OFF & LP & EC_PLL4);\r
+ _FOSC(CSW_ON_FSCM_OFF & LP & EC_PLL8);\r
+ _FOSC(CSW_ON_FSCM_OFF & LP & EC_PLL16);\r
+ _FOSC(CSW_ON_FSCM_OFF & LP & ERC);\r
+ _FOSC(CSW_ON_FSCM_OFF & LP & ERCIO);\r
+ _FOSC(CSW_ON_FSCM_OFF & LP & XT);\r
+ _FOSC(CSW_ON_FSCM_OFF & LP & XT_PLL4);\r
+ _FOSC(CSW_ON_FSCM_OFF & LP & XT_PLL8);\r
+ _FOSC(CSW_ON_FSCM_OFF & LP & XT_PLL16);\r
+ _FOSC(CSW_ON_FSCM_OFF & LP & XTL);\r
+ _FOSC(CSW_ON_FSCM_OFF & LP & FRC_PLL4);\r
+ _FOSC(CSW_ON_FSCM_OFF & LP & FRC_PLL8);\r
+ _FOSC(CSW_ON_FSCM_OFF & LP & FRC_PLL16);\r
+ _FOSC(CSW_ON_FSCM_OFF & LP & HS);\r
+ _FOSC(CSW_ON_FSCM_OFF & FRC & EC);\r
+ _FOSC(CSW_ON_FSCM_OFF & FRC & ECIO);\r
+ _FOSC(CSW_ON_FSCM_OFF & FRC & EC_PLL4);\r
+ _FOSC(CSW_ON_FSCM_OFF & FRC & EC_PLL8);\r
+ _FOSC(CSW_ON_FSCM_OFF & FRC & EC_PLL16);\r
+ _FOSC(CSW_ON_FSCM_OFF & FRC & ERC);\r
+ _FOSC(CSW_ON_FSCM_OFF & FRC & ERCIO);\r
+ _FOSC(CSW_ON_FSCM_OFF & FRC & XT);\r
+ _FOSC(CSW_ON_FSCM_OFF & FRC & XT_PLL4);\r
+ _FOSC(CSW_ON_FSCM_OFF & FRC & XT_PLL8);\r
+ _FOSC(CSW_ON_FSCM_OFF & FRC & XT_PLL16);\r
+ _FOSC(CSW_ON_FSCM_OFF & FRC & XTL);\r
+ _FOSC(CSW_ON_FSCM_OFF & FRC & FRC_PLL4);\r
+ _FOSC(CSW_ON_FSCM_OFF & FRC & FRC_PLL8);\r
+ _FOSC(CSW_ON_FSCM_OFF & FRC & FRC_PLL16);\r
+ _FOSC(CSW_ON_FSCM_OFF & FRC & HS);\r
+ _FOSC(CSW_ON_FSCM_OFF & LPRC & EC);\r
+ _FOSC(CSW_ON_FSCM_OFF & LPRC & ECIO);\r
+ _FOSC(CSW_ON_FSCM_OFF & LPRC & EC_PLL4);\r
+ _FOSC(CSW_ON_FSCM_OFF & LPRC & EC_PLL8);\r
+ _FOSC(CSW_ON_FSCM_OFF & LPRC & EC_PLL16);\r
+ _FOSC(CSW_ON_FSCM_OFF & LPRC & ERC);\r
+ _FOSC(CSW_ON_FSCM_OFF & LPRC & ERCIO);\r
+ _FOSC(CSW_ON_FSCM_OFF & LPRC & XT);\r
+ _FOSC(CSW_ON_FSCM_OFF & LPRC & XT_PLL4);\r
+ _FOSC(CSW_ON_FSCM_OFF & LPRC & XT_PLL8);\r
+ _FOSC(CSW_ON_FSCM_OFF & LPRC & XT_PLL16);\r
+ _FOSC(CSW_ON_FSCM_OFF & LPRC & XTL);\r
+ _FOSC(CSW_ON_FSCM_OFF & LPRC & FRC_PLL4);\r
+ _FOSC(CSW_ON_FSCM_OFF & LPRC & FRC_PLL8);\r
+ _FOSC(CSW_ON_FSCM_OFF & LPRC & FRC_PLL16);\r
+ _FOSC(CSW_ON_FSCM_OFF & LPRC & HS);\r
+ _FOSC(CSW_FSCM_ON & EC);\r
+ _FOSC(CSW_FSCM_ON & ECIO);\r
+ _FOSC(CSW_FSCM_ON & EC_PLL4);\r
+ _FOSC(CSW_FSCM_ON & EC_PLL8);\r
+ _FOSC(CSW_FSCM_ON & EC_PLL16);\r
+ _FOSC(CSW_FSCM_ON & ERC);\r
+ _FOSC(CSW_FSCM_ON & ERCIO);\r
+ _FOSC(CSW_FSCM_ON & XT);\r
+ _FOSC(CSW_FSCM_ON & XT_PLL4);\r
+ _FOSC(CSW_FSCM_ON & XT_PLL8);\r
+ _FOSC(CSW_FSCM_ON & XT_PLL16);\r
+ _FOSC(CSW_FSCM_ON & XTL);\r
+ _FOSC(CSW_FSCM_ON & FRC_PLL4);\r
+ _FOSC(CSW_FSCM_ON & FRC_PLL8);\r
+ _FOSC(CSW_FSCM_ON & FRC_PLL16);\r
+ _FOSC(CSW_FSCM_ON & HS);\r
+ _FOSC(CSW_FSCM_ON & LP & EC);\r
+ _FOSC(CSW_FSCM_ON & LP & ECIO);\r
+ _FOSC(CSW_FSCM_ON & LP & EC_PLL4);\r
+ _FOSC(CSW_FSCM_ON & LP & EC_PLL8);\r
+ _FOSC(CSW_FSCM_ON & LP & EC_PLL16);\r
+ _FOSC(CSW_FSCM_ON & LP & ERC);\r
+ _FOSC(CSW_FSCM_ON & LP & ERCIO);\r
+ _FOSC(CSW_FSCM_ON & LP & XT);\r
+ _FOSC(CSW_FSCM_ON & LP & XT_PLL4);\r
+ _FOSC(CSW_FSCM_ON & LP & XT_PLL8);\r
+ _FOSC(CSW_FSCM_ON & LP & XT_PLL16);\r
+ _FOSC(CSW_FSCM_ON & LP & XTL);\r
+ _FOSC(CSW_FSCM_ON & LP & FRC_PLL4);\r
+ _FOSC(CSW_FSCM_ON & LP & FRC_PLL8);\r
+ _FOSC(CSW_FSCM_ON & LP & FRC_PLL16);\r
+ _FOSC(CSW_FSCM_ON & LP & HS);\r
+ _FOSC(CSW_FSCM_ON & FRC & EC);\r
+ _FOSC(CSW_FSCM_ON & FRC & ECIO);\r
+ _FOSC(CSW_FSCM_ON & FRC & EC_PLL4);\r
+ _FOSC(CSW_FSCM_ON & FRC & EC_PLL8);\r
+ _FOSC(CSW_FSCM_ON & FRC & EC_PLL16);\r
+ _FOSC(CSW_FSCM_ON & FRC & ERC);\r
+ _FOSC(CSW_FSCM_ON & FRC & ERCIO);\r
+ _FOSC(CSW_FSCM_ON & FRC & XT);\r
+ _FOSC(CSW_FSCM_ON & FRC & XT_PLL4);\r
+ _FOSC(CSW_FSCM_ON & FRC & XT_PLL8);\r
+ _FOSC(CSW_FSCM_ON & FRC & XT_PLL16);\r
+ _FOSC(CSW_FSCM_ON & FRC & XTL);\r
+ _FOSC(CSW_FSCM_ON & FRC & FRC_PLL4);\r
+ _FOSC(CSW_FSCM_ON & FRC & FRC_PLL8);\r
+ _FOSC(CSW_FSCM_ON & FRC & FRC_PLL16);\r
+ _FOSC(CSW_FSCM_ON & FRC & HS);\r
+ _FOSC(CSW_FSCM_ON & LPRC & EC);\r
+ _FOSC(CSW_FSCM_ON & LPRC & ECIO);\r
+ _FOSC(CSW_FSCM_ON & LPRC & EC_PLL4);\r
+ _FOSC(CSW_FSCM_ON & LPRC & EC_PLL8);\r
+ _FOSC(CSW_FSCM_ON & LPRC & EC_PLL16);\r
+ _FOSC(CSW_FSCM_ON & LPRC & ERC);\r
+ _FOSC(CSW_FSCM_ON & LPRC & ERCIO);\r
+ _FOSC(CSW_FSCM_ON & LPRC & XT);\r
+ _FOSC(CSW_FSCM_ON & LPRC & XT_PLL4);\r
+ _FOSC(CSW_FSCM_ON & LPRC & XT_PLL8);\r
+ _FOSC(CSW_FSCM_ON & LPRC & XT_PLL16);\r
+ _FOSC(CSW_FSCM_ON & LPRC & XTL);\r
+ _FOSC(CSW_FSCM_ON & LPRC & FRC_PLL4);\r
+ _FOSC(CSW_FSCM_ON & LPRC & FRC_PLL8);\r
+ _FOSC(CSW_FSCM_ON & LPRC & FRC_PLL16);\r
+ _FOSC(CSW_FSCM_ON & LPRC & HS);\r
+ FWDT\r
+ =====\r
+ _FWDT(WDT_OFF);\r
+ _FWDT(WDT_ON & WDTPSA_1 & WDTPSB_1);\r
+ _FWDT(WDT_ON & WDTPSA_1 & WDTPSB_2);\r
+ _FWDT(WDT_ON & WDTPSA_1 & WDTPSB_3);\r
+ _FWDT(WDT_ON & WDTPSA_1 & WDTPSB_4);\r
+ _FWDT(WDT_ON & WDTPSA_1 & WDTPSB_5);\r
+ _FWDT(WDT_ON & WDTPSA_1 & WDTPSB_6);\r
+ _FWDT(WDT_ON & WDTPSA_1 & WDTPSB_7);\r
+ _FWDT(WDT_ON & WDTPSA_1 & WDTPSB_8);\r
+ _FWDT(WDT_ON & WDTPSA_1 & WDTPSB_9);\r
+ _FWDT(WDT_ON & WDTPSA_1 & WDTPSB_10);\r
+ _FWDT(WDT_ON & WDTPSA_1 & WDTPSB_11);\r
+ _FWDT(WDT_ON & WDTPSA_1 & WDTPSB_12);\r
+ _FWDT(WDT_ON & WDTPSA_1 & WDTPSB_13);\r
+ _FWDT(WDT_ON & WDTPSA_1 & WDTPSB_14);\r
+ _FWDT(WDT_ON & WDTPSA_1 & WDTPSB_15);\r
+ _FWDT(WDT_ON & WDTPSA_1 & WDTPSB_16);\r
+ _FWDT(WDT_ON & WDTPSA_8 & WDTPSB_1);\r
+ _FWDT(WDT_ON & WDTPSA_8 & WDTPSB_2);\r
+ _FWDT(WDT_ON & WDTPSA_8 & WDTPSB_3);\r
+ _FWDT(WDT_ON & WDTPSA_8 & WDTPSB_4);\r
+ _FWDT(WDT_ON & WDTPSA_8 & WDTPSB_5);\r
+ _FWDT(WDT_ON & WDTPSA_8 & WDTPSB_6);\r
+ _FWDT(WDT_ON & WDTPSA_8 & WDTPSB_7);\r
+ _FWDT(WDT_ON & WDTPSA_8 & WDTPSB_8);\r
+ _FWDT(WDT_ON & WDTPSA_8 & WDTPSB_9);\r
+ _FWDT(WDT_ON & WDTPSA_8 & WDTPSB_10);\r
+ _FWDT(WDT_ON & WDTPSA_8 & WDTPSB_11);\r
+ _FWDT(WDT_ON & WDTPSA_8 & WDTPSB_12);\r
+ _FWDT(WDT_ON & WDTPSA_8 & WDTPSB_13);\r
+ _FWDT(WDT_ON & WDTPSA_8 & WDTPSB_14);\r
+ _FWDT(WDT_ON & WDTPSA_8 & WDTPSB_15);\r
+ _FWDT(WDT_ON & WDTPSA_8 & WDTPSB_16);\r
+ _FWDT(WDT_ON & WDTPSA_64 & WDTPSB_1);\r
+ _FWDT(WDT_ON & WDTPSA_64 & WDTPSB_2);\r
+ _FWDT(WDT_ON & WDTPSA_64 & WDTPSB_3);\r
+ _FWDT(WDT_ON & WDTPSA_64 & WDTPSB_4);\r
+ _FWDT(WDT_ON & WDTPSA_64 & WDTPSB_5);\r
+ _FWDT(WDT_ON & WDTPSA_64 & WDTPSB_6);\r
+ _FWDT(WDT_ON & WDTPSA_64 & WDTPSB_7);\r
+ _FWDT(WDT_ON & WDTPSA_64 & WDTPSB_8);\r
+ _FWDT(WDT_ON & WDTPSA_64 & WDTPSB_9);\r
+ _FWDT(WDT_ON & WDTPSA_64 & WDTPSB_10);\r
+ _FWDT(WDT_ON & WDTPSA_64 & WDTPSB_11);\r
+ _FWDT(WDT_ON & WDTPSA_64 & WDTPSB_12);\r
+ _FWDT(WDT_ON & WDTPSA_64 & WDTPSB_13);\r
+ _FWDT(WDT_ON & WDTPSA_64 & WDTPSB_14);\r
+ _FWDT(WDT_ON & WDTPSA_64 & WDTPSB_15);\r
+ _FWDT(WDT_ON & WDTPSA_64 & WDTPSB_16);\r
+ _FWDT(WDT_ON & WDTPSA_512 & WDTPSB_1);\r
+ _FWDT(WDT_ON & WDTPSA_512 & WDTPSB_2);\r
+ _FWDT(WDT_ON & WDTPSA_512 & WDTPSB_3);\r
+ _FWDT(WDT_ON & WDTPSA_512 & WDTPSB_4);\r
+ _FWDT(WDT_ON & WDTPSA_512 & WDTPSB_5);\r
+ _FWDT(WDT_ON & WDTPSA_512 & WDTPSB_6);\r
+ _FWDT(WDT_ON & WDTPSA_512 & WDTPSB_7);\r
+ _FWDT(WDT_ON & WDTPSA_512 & WDTPSB_8);\r
+ _FWDT(WDT_ON & WDTPSA_512 & WDTPSB_9);\r
+ _FWDT(WDT_ON & WDTPSA_512 & WDTPSB_10);\r
+ _FWDT(WDT_ON & WDTPSA_512 & WDTPSB_11);\r
+ _FWDT(WDT_ON & WDTPSA_512 & WDTPSB_12);\r
+ _FWDT(WDT_ON & WDTPSA_512 & WDTPSB_13);\r
+ _FWDT(WDT_ON & WDTPSA_512 & WDTPSB_14);\r
+ _FWDT(WDT_ON & WDTPSA_512 & WDTPSB_15);\r
+ _FWDT(WDT_ON & WDTPSA_512 & WDTPSB_16);\r
+\r
+ FBORPOR\r
+ ========\r
+ _FBORPOR(PBOR_OFF & MCLR_DIS);\r
+ _FBORPOR(PBOR_OFF & MCLR_EN);\r
+ _FBORPOR(PBOR_ON & BORV_20 & PWRT_OFF & MCLR_DIS);\r
+ _FBORPOR(PBOR_ON & BORV_27 & PWRT_OFF & MCLR_DIS);\r
+ _FBORPOR(PBOR_ON & BORV_42 & PWRT_OFF & MCLR_DIS);\r
+ _FBORPOR(PBOR_ON & BORV_45 & PWRT_OFF & MCLR_DIS);\r
+ _FBORPOR(PBOR_ON & BORV_20 & PWRT_OFF & MCLR_EN);\r
+ _FBORPOR(PBOR_ON & BORV_27 & PWRT_OFF & MCLR_EN);\r
+ _FBORPOR(PBOR_ON & BORV_42 & PWRT_OFF & MCLR_EN);\r
+ _FBORPOR(PBOR_ON & BORV_45 & PWRT_OFF & MCLR_EN);\r
+ _FBORPOR(PBOR_ON & BORV_20 & PWRT_4 & MCLR_DIS);\r
+ _FBORPOR(PBOR_ON & BORV_27 & PWRT_4 & MCLR_DIS);\r
+ _FBORPOR(PBOR_ON & BORV_42 & PWRT_4 & MCLR_DIS);\r
+ _FBORPOR(PBOR_ON & BORV_45 & PWRT_4 & MCLR_DIS);\r
+ _FBORPOR(PBOR_ON & BORV_20 & PWRT_4 & MCLR_EN);\r
+ _FBORPOR(PBOR_ON & BORV_27 & PWRT_4 & MCLR_EN);\r
+ _FBORPOR(PBOR_ON & BORV_42 & PWRT_4 & MCLR_EN);\r
+ _FBORPOR(PBOR_ON & BORV_45 & PWRT_4 & MCLR_EN);\r
+ _FBORPOR(PBOR_ON & BORV_20 & PWRT_16 & MCLR_DIS);\r
+ _FBORPOR(PBOR_ON & BORV_27 & PWRT_16 & MCLR_DIS);\r
+ _FBORPOR(PBOR_ON & BORV_42 & PWRT_16 & MCLR_DIS);\r
+ _FBORPOR(PBOR_ON & BORV_45 & PWRT_16 & MCLR_DIS);\r
+ _FBORPOR(PBOR_ON & BORV_20 & PWRT_16 & MCLR_EN);\r
+ _FBORPOR(PBOR_ON & BORV_27 & PWRT_16 & MCLR_EN);\r
+ _FBORPOR(PBOR_ON & BORV_42 & PWRT_16 & MCLR_EN);\r
+ _FBORPOR(PBOR_ON & BORV_45 & PWRT_16 & MCLR_EN);\r
+ _FBORPOR(PBOR_ON & BORV_20 & PWRT_64 & MCLR_DIS);\r
+ _FBORPOR(PBOR_ON & BORV_27 & PWRT_64 & MCLR_DIS);\r
+ _FBORPOR(PBOR_ON & BORV_42 & PWRT_64 & MCLR_DIS);\r
+ _FBORPOR(PBOR_ON & BORV_45 & PWRT_64 & MCLR_DIS);\r
+ _FBORPOR(PBOR_ON & BORV_20 & PWRT_64 & MCLR_EN);\r
+ _FBORPOR(PBOR_ON & BORV_27 & PWRT_64 & MCLR_EN);\r
+ _FBORPOR(PBOR_ON & BORV_42 & PWRT_64 & MCLR_EN);\r
+ _FBORPOR(PBOR_ON & BORV_45 & PWRT_64 & MCLR_EN);\r
+\r
+ FGS\r
+ ====\r
+ _FGS(CODE_PROT_OFF);\r
+ _FGS(CODE_PROT_ON);\r
+\r
+ ---------------------------------------------------------------------------- */\r
+\r
+\r
+/* -------------------------------------------- */ \r
+/* Some useful macros for inline assembly stuff */\r
+/* -------------------------------------------- */\r
+\r
+#define Nop() {__asm__ volatile ("nop");}\r
+#define ClrWdt() {__asm__ volatile ("clrwdt");}\r
+#define Sleep() {__asm__ volatile ("pwrsav #0");}\r
+#define Idle() {__asm__ volatile ("pwrsav #1");}\r
+\r
+/* ---------------------------------------------------------- */ \r
+/* Some useful macros for allocating data memory */\r
+/* ---------------------------------------------------------- */\r
+\r
+/* The following macros require an argument N that specifies */\r
+/* alignment. N must a power of two, minimum value = 2. */\r
+/* For example, to declare an uninitialized array in X memory */\r
+/* that is aligned to a 32 byte address: */\r
+/* */\r
+/* int _XBSS(32) xbuf[16]; */\r
+/* */\r
+/* To declare an initialized array in data EEPROM without */\r
+/* special alignment: */\r
+/* */\r
+/* int _EEDATA(2) table1[] = {0, 1, 1, 2, 3, 5, 8, 13, 21}; */\r
+/* */\r
+#define _XBSS(N) __attribute__((space(xmemory),aligned(N)))\r
+#define _XDATA(N) __attribute__((space(xmemory),aligned(N)))\r
+#define _YBSS(N) __attribute__((space(ymemory),aligned(N)))\r
+#define _YDATA(N) __attribute__((space(ymemory),aligned(N)))\r
+#define _EEDATA(N) __attribute__((space(eedata),aligned(N)))\r
+\r
+/* The following macros do not require an argument. They can */\r
+/* be used to locate a variable in persistent data memory or */\r
+/* in near data memory. For example, to declare two variables */\r
+/* that retain their values across a device reset: */\r
+/* */\r
+/* int _PERSISTENT var1,var2; */\r
+/* */\r
+#define _PERSISTENT __attribute__((persistent))\r
+#define _NEAR __attribute__((near))\r
+\r
+/* ---------------------------------------------------------- */ \r
+/* Some useful macros for declaring functions */\r
+/* ---------------------------------------------------------- */\r
+\r
+/* The following macros can be used to declare interrupt */\r
+/* service routines (ISRs). For example, to declare an ISR */\r
+/* for the timer1 interrupt: */\r
+/* */\r
+/* void _ISR _T1Interrupt(void); */\r
+/* */\r
+/* To declare an ISR for the SPI1 interrupt with fast */\r
+/* context save: */\r
+/* */\r
+/* void _ISRFAST _SPI1Interrupt(void); */\r
+/* */\r
+/* Note: ISRs will be installed into the interrupt vector */\r
+/* tables automatically if the reserved names listed in the */\r
+/* MPLAB C30 Compiler User's Guide (DS51284) are used. */\r
+/* */\r
+#define _ISR __attribute__((interrupt))\r
+#define _ISRFAST __attribute__((interrupt, shadow))\r
+\r
+/* ---------------------------------------------------------- */\r
+/* Some useful macros for changing the CPU IPL */\r
+/* ---------------------------------------------------------- */\r
+\r
+/* The following macros can be used to modify the current CPU */\r
+/* IPL. The definition of the macro may vary from device to */\r
+/* device. */\r
+/* */\r
+/* To safely set the CPU IPL, use SET_CPU_IPL(ipl); the */\r
+/* valid range of ipl is 0-7, it may be any expression. */\r
+/* */\r
+/* SET_CPU_IPL(7); */\r
+/* */\r
+/* To preserve the current IPL and save it use */\r
+/* SET_AND_SAVE_CPU_IPL(save_to, ipl); the valid range of ipl */\r
+/* is 0-7 and may be any expression, save_to should denote */\r
+/* some temporary storage. */\r
+/* */\r
+/* int old_ipl; */\r
+/* */\r
+/* SET_AND_SAVE_CPU_IPL(old_ipl, 7); */\r
+/* */\r
+/* The IPL can be restored with RESTORE_CPU_IPL(saved_to) */\r
+/* */\r
+/* RESTORE_CPU_IPL(old_ipl); */\r
+\r
+#define SET_CPU_IPL(ipl) { \\r
+ int DISI_save; \\r
+ \\r
+ DISI_save = DISICNT; \\r
+ asm volatile ("disi #0x3FFF"); \\r
+ SRbits.IPL = ipl; \\r
+ DISICNT = DISI_save; } (void) 0;\r
+\r
+#define SET_AND_SAVE_CPU_IPL(save_to, ipl) { \\r
+ save_to = SRbits.IPL; \\r
+ SET_CPU_IPL(ipl); } (void) 0;\r
+\r
+#define RESTORE_CPU_IPL(saved_to) SET_CPU_IPL(saved_to)\r
+\r
+#endif\r
+\r
--- /dev/null
+/******************************************************************************
+
+ Actuator Interface Card
+ Serial Transmit
+ Copyright (C) 2008 Diego Caberlon Santini <diegos@ece.ufrgs.br>
+
+ 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 2 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, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ You can also obtain a copy of the GNU General Public License
+ at <http://www.gnu.org/licenses>.
+
+*******************************************************************************
+2008.06.13 -> Start by Diego Caberlon Santini, for now it is just transmission
+ */
+#ifndef SERIAL_H
+#define SERIAL _H
+
+/** @file serial.h
+ * Serial Function
+ * @author Diego Caberlon Santini <diegos@ece.ufrgs.br>
+ */
+
+/** @defgroup serial Serial Function
+@{
+ */
+
+#include "buffer.h"
+
+/** Max Buffer Size
+ */
+#define SERIAL_SIZE BUFFER_SIZE
+
+/** Buffer to serial
+ */
+static buffer_info_t serial_buffer;
+
+/******************************************************************************/
+/** Finalizes serial
+ */
+void serial_end(void);
+/******************************************************************************/
+/** Transmit data
+ * @param data Pointer to a string
+ * @param size sizeof string
+ * @return 0 OK and -1 to error
+ */
+int serial_write(char *data, int size);
+/******************************************************************************/
+/** Initializes serial with 19200, 8n1, no flux control
+ */
+void serial_init(void);
+/******************************************************************************/
+#endif
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Sputtering Controller Host Interface Library
- Copyright (C) 2007 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <pthread.h>
-
-#include <aicudp.h>
-
-#ifndef _SPUTTERING_H
-#define _SPUTTERING_H
-
-/** @file sputtering.h
- Sputtering Controller Host Interface Library
- @author Walter Fetter Lages <w.fetter@ieee.org>
-*/
-
-/** @defgroup sputhost Sputtering Controller Host Interface
-@{
-*/
-
-
-/** SPUTTERING Controller
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
-class SPUTTERING: public AIC_UDP
-{
- const int SHUTTER;
- pthread_t get_status_th;
- volatile int run;
-
- friend void *get_status(void *arg);
-
- public:
-
-/** Constructs an SPUTTERING
-* @param name pointer to a string with the name of AIC to be connected to
-* @param statport UDP port used to receive status from AIC
-* @see aicnet.h
-* @since AIC-1.6.1
-*/
- SPUTTERING(const char *name,int statport=STATUS_PORT);
-
-/** Destroys an SPUTTERING
-*/
- ~SPUTTERING(void);
-
-/** Opens shutter for specified time
-* @param us time in microseconds
-* @since AIC-1.6.1
-*/
- void shutter(unsigned int us);
-
-/** Resets an SPUTTERING
-* @since AIC-1.6.1
-*/
- void reset(void);
-
-/** Sets the reference for motor controller
-* @param ref reference in rad
-* @since AIC-1.6.1
-*/
- void reference(double ref);
-};
-
-/**
-@}
-*/
-#endif
+++ /dev/null
-all: indextst
-
-indextst: indextst.cpp ../lib/libaic.a
- ${CXX} ${CMPFLAGS} -o indextst indextst.cpp ${LDFLAGS}
-
-clean:
- rm -f *~ *.bak *.o
-
-install:
-
-distclean: clean
- rm -f indextst
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Index Test
- Copyright (C) 2003 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <iostream>
-using namespace std;
-
-#include <string.h>
-
-#include <aicudp.h>
-#include <aiccan.h>
-
-int main(int argc,char *argv[])
-{
- cout << "\nAIC Index Test Program\n";
- cout << "Copyright (C) 2003 Walter Fetter Lages <w.fetter@ieee.org>.\n\n";
-
- if((argc < 2) || (argc > 4) ||
- ((argc >= 3) && strcasecmp(argv[1],"-UDP")))
- {
- cout << "USAGE:\t" << argv[0] << " can_id\n";
- cout << "\tor\n\t" << argv[0] << " -UDP aic [status_port]\n";
- return -1;
- }
-
- AIC *aic;
- switch(argc)
- {
- default:
- case 2: aic=new AIC_CAN(atoi(argv[1])); break;
- case 3: aic=new AIC_UDP(argv[2]); break;
- case 4: aic=new AIC_UDP(argv[2],atoi(argv[3])); break;
- }
-
- for(;;)
- {
- cout << "Index reading: " << aic->index.read() << "\n";
- }
-
- delete aic;
-
- return 0;
-}
+++ /dev/null
-all: jointtst
-
-jointtst: jointtst.cpp ../lib/libaic.a
- ${CXX} ${CMPFLAGS} -o jointtst jointtst.cpp ${LDFLAGS}
-
-clean:
- rm -f *~ *.bak *.o
-
-install:
-
-distclean: clean
- rm -f jointtst
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Robot Joint Test
- Copyright (C) 2003 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <ciostream.h>
-
-#include <stdlib.h>
-#include <string.h>
-
-#include <conio.h>
-#include <math.h>
-
-#include <delay.h>
-
-#include <aicudp.h>
-#include <aiccan.h>
-
-const int ST=1000;
-
-void iter(AIC *aic,int i)
-{
- aic->motor=i;
- gotoxy(1,5);
- cout << "Motor Voltage: " << i << "V\t";
- cout << "Index: " << aic->index.read() << "\t";
- cout << "Encoder: " << aic->encoder.read() << "rad\n";
- delay(ST);
-}
-
-int main(int argc,char *argv[])
-{
- int i;
- int run=1;
-
- clrscr();
- cout << "\nAIC Robot Joint Test Program\n";
- cout << "Copyright (C) 2003 Walter Fetter Lages <w.fetter@ieee.org>.\n\n";
-
- if((argc < 2) || (argc > 4) ||
- ((argc >= 3) && strcasecmp(argv[1],"-UDP")))
- {
- cout << "USAGE:\t" << argv[0] << " can_id\n";
- cout << "\tor\n\t" << argv[0] << " -UDP aic [status_port]\n";
- return -1;
- }
-
- AIC *aic;
- switch(argc)
- {
- default:
- case 2: aic=new AIC_CAN(atoi(argv[1])); break;
- case 3: aic=new AIC_UDP(argv[2]); break;
- case 4: aic=new AIC_UDP(argv[2],atoi(argv[3])); break;
- }
-
- aic->motor.on();
- aic->brake.release();
-
- for(i=0;(i <= 24) && run;i++)
- {
- if(kbhit()) run=0;
- iter(aic,i);
- }
- while(run)
- {
- for(i=24;(i > -24) && run;i--)
- {
- if(kbhit()) run=0;
- iter(aic,i);
- }
- for(i=-24;(i <= 24) && run;i++)
- {
- if(kbhit()) run=0;
- iter(aic,i);
- }
- }
- getch();
-
- aic->motor=0;
- aic->brake.apply();
- aic->motor.off();
-
- delete aic;
-
- clrscr();
- return 0;
-
-}
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
-
- Copyright (C) 2003 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-/** @defgroup aichardware AIC Hardware Interface
-@{
-*/
-
-/** AIC Hardware Interface
-*/
-package br.ufrgs.ece.AIC;
-
-/** Provides access to all devices in an Actuator Interface Card
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
-public class AIC
-{
-
-/** Motor actuated by AIC
-* @see Motor
-*/
- public Motor motor;
-
-/** Encoder read by AIC
-* @see Encoder
-*/
- public Encoder encoder;
-
-
-/** Brake actuaded by AIC
-* @see Brake
-*/
- public Brake brake;
-
-
-/** Sync-switch read by AIC
-* @see Index
-*/
- public Index index;
-
-/** Turns an AIC on
-*/
- public void on()
- {
- motor.on();
- encoder.clear();
- }
-
-/** Turns an AIC off
-*/
- public void off()
- {
- motor.set(0);
- brake.apply();
- motor.off();
- encoder.clear();
- }
-
-/** Initializes an AIC
-* @param base Base address for on board devices
-* @param vm Motor Voltage
-* @param freq PWM frequency
-* @param np Pulses per encoder revolution
-*/
- public AIC(int base,double vm,double freq,int np)
- {
- motor=new Motor(base,vm,freq);
- encoder=new Encoder(base,np);
- brake=new Brake(base);
- index=new Index(base);
- }
-
-/** Finalizes an AIC
-*/
- public void finalize()
- {
- off();
- }
-
-}
-
-/**
-@}
-*/
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Brake Interface
- Copyright (C) 2003,2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-package br.ufrgs.ece.AIC;
-
-/** @addtogroup aichardware
-@{
-*/
-
-/** Provides access to electromagnetic brake in an Actuator Interface Card
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-* @version AIC-1.3.0
-*/
-public final class Brake
-{
-/** True if native library was loaded
-*/
- private static boolean libLoaded=false;
-
-/** Brake native initialization
-* @param base Base address for on board devices
-*/
- private static native void initialize(int base);
-
-/** Initializes Brake. Loads the corresponding native library.
-* @param base Base address for on board devices
-*/
- public Brake(int base)
- {
- if(!libLoaded) System.loadLibrary("brake.tlib");
- libLoaded=true;
-
- initialize(base);
- }
-
-/** Applies the electromagnetic brake
-*/
- public static native void apply();
-
-/** Releases the electromagnetic brake
-*/
- public static native void release();
-
-}
-/**
-@}
-*/
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Control Register Constants
- Copyright (C) 2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-package br.ufrgs.ece.AIC;
-
-/** @addtogroup aichardware
-@{
-*/
-
-/** Provides constants for using the control register in an Actuator Interface Card
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-* @version AIC-1.3.0
-* @since AIC-1.2.0
-* @deprecated
-*/
-public class CtrlRegister
-{
-/** PWM disable
-*/
- public static final int PWMDISABLE=0x00;
-
-/** PWM enable
-*/
- public static final int PWMENABLE=0x01;
-
-/** Apply Brake
-*/
- public static final int BRAKEAPPLY=0x02;
-
-/** Release Brake
-*/
- public static final int BRAKERELEASE=0x03;
-}
-
-/**
-@}
-*/
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Encoder Interface
- Copyright (C) 2003,2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-package br.ufrgs.ece.AIC;
-
-/** @addtogroup aichardware
-@{
-*/
-
-/** Provides access to incremental encoder in an Actuator Interface Card
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-* @version AIC-1.3.0
-*/
-public final class Encoder
-{
-/** True if native library was loaded
-*/
- private static boolean libLoaded=false;
-
-/** Number of pulses per revolution of the encoder, considering the
-* quadrature decoder
-*/
- public final int PULSES;
-
-/** Clears the counter on the quadrature decoder chip
-*/
- public static native void clear();
-
-/** Encoder native initialization, clears the counter on the quadrature decoder chip
-* @param base Base address for on board devices
-*/
- private static native void initialize(int base);
-
-/** Initializes Encoder, clears the counter on the quadrature decoder chip
-* @param base Base address for on board devices
-* @param pulses Number of pulses per revolution of the encoder, considering the
-* quadrature decoder
-*/
- public Encoder(int base,int pulses)
- {
- if(!libLoaded) System.loadLibrary("encoder.tlib");
- libLoaded=true;
-
- PULSES=pulses;
-
- initialize(base);
- }
-
-/** Finalizes Encoder
-*/
- public native void finalize();
-
-/** Gets the count on the quadrature decoder chip
-* @return the number of pulses (in 2-complement) since the last time
-* the counter was cleared
-*/
- public static native int getCount();
-
-/** Gets the count and clears the counter on the quadrature decoder chip
-* @return the number of pulses (in 2-complement) since the last time
-* the counter was cleared
-*/
- public static native int getCountAndClear();
-
-/** Reads the counter on the quadrature decoder chip and converts the motion
-* to radians
-* @return the displacement in radians since the last time
-* the encoder was cleared
-*/
- public double read()
- {
- return ((2*java.lang.Math.PI/PULSES)*getCount());
- }
-
-/** Reads the counter on the quadrature decoder chip, converts the motion
-* to radians and clears the counter
-* @return the displacement in radians since the last time
-* the encoder was cleared
-*/
- public double readAndClear()
- {
- return ((2*java.lang.Math.PI/PULSES)*getCountAndClear());
- }
-
-}
-
-/**
-@}
-*/
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Host Interface
- Copyright (C) 2003 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-package br.ufrgs.ece.AIC;
-
-import java.lang.*;
-
-/** @addtogroup aichardware
-@{
-*/
-
-/** Provides access to host computer through a derived class
-* @see HostCAN
-* @see HostUDP
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
-abstract public class Host
-{
-/** Invalid command
-*/
- public static final int INVALID=0x00;
-
-/** AIC reset command
-*/
- public static final int RESET=0x01;
-
-/** Motor off command
-*/
- public static final int MOTOR_OFF=0x02;
-
-/** Brake apply command
-*/
- public static final int BRAKE_APPLY=0x03;
-
-/** Motor actuate command
-*/
- public static final int MOTOR_ACT=0x10;
-
-/** Motor controller reference command
-*/
- public static final int MOTOR_REF=0x15;
-
-/** Status message identifier
-*/
- public static final int STATUS=0x20;
-
-/** Brake release command
-*/
- public static final int BRAKE_RELEASE=0x30;
-
-/** Motor on command
-*/
- public static final int MOTOR_ON=0x31;
-
-/** User defined command 0
-*/
- public static final int USER0=0x3b;
-
-/** User defined command 1
-*/
- public static final int USER1=0x3c;
-
-/** User defined command 2
-*/
- public static final int USER2=0x3d;
-
-/** User defined command 3
-*/
- public static final int USER3=0x3e;
-
-/** No operation command
-*/
- public static final int NOP=0x3f;
-
-
-/** Index on status
-*/
- public static final int INDEX_ON=0x01;
-
-/** Busy status
-*/
- public static final int BUSY=0x02;
-
-/** Voltage aplied to motors
-*/
- protected double u=0;
-
-/** Reference for controller associated to motors
-*/
- protected double ref=0;
-
-/** Gets command received from host computer
-* @return command code
-* @throws Exception depending on implementation
-*/
- public int command() throws Exception
- {
- byte[] args= new byte[256];
- return command(args,256);
- }
-
-/** Gets command received from host computer and its arguments array
-* @param args command arguments array. args[0] is the length of actual arguments.
-* @param size size of the arguments array
-* @return command code
-* @throws Exception depending on implementation
-* @since AIC-1.6.1
-*/
- abstract public int command(byte[] args,int size) throws Exception;
-
-/** Sends encoder displacement and sync-switch status to host
-* @param disp encoder displacement in rad
-* @param index sync-switch status
-* @throws Exception depending on implementation
-*/
- abstract public void sendStatus(double disp,int index) throws Exception;
-
-/** Sends encoder displacement and sync-switch status to host
-* @param disp encoder displacement in pulses
-* @param index sync-switch status
-* @throws Exception depending on implementation
-*/
- abstract public void sendStatus(int disp,int index) throws Exception;
-
-/** Gets motor voltage
-* @return motor voltage
-*/
- public double voltage()
- {
- return u;
- }
-
-/** Gets controller reference
-* @return controller reference
-* @since AIC-1.6.0
-*/
- public double reference()
- {
- return ref;
- }
-}
-
-/**
-@}
-*/
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Host Interface
- CAN communication
- Copyright (C) 2003 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-package br.ufrgs.ece.AIC;
-
-import com.dalsemi.comm.*;
-import com.dalsemi.system.*;
-import java.lang.*;
-
-/** @addtogroup aichardware
-@{
-*/
-
-/** Provides access host computer through CAN bus
-* @see HostUDP
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
-public class HostCAN extends Host
-{
- /* 125Kbit/s with crystal of 18.432MHz */
- private static final int CAN_DIVISOR = 7;
- private static final int CAN_TSEG1 = 13;
- private static final int CAN_TSEG2 = 7;
- private static final int CAN_SJW = 1;
- private static final int TXCENTER=1;
- private static final int RXCENTER=2;
- private static final int AIC_ID_MASK=0x01f;
- private static final int AIC_CMD_MASK=0x7e0;
-
- private int id;
- private CanBus canbus;
-
-/** Initializes HostCAN
-* @param aicid AIC identification on bus from 1 to 31
-* @param bus CAN bus to use 0 or 1
-* @throws CanBusException on CAN bus errors
-*/
- public HostCAN(int aicid,int bus) throws CanBusException
- {
- u=0;
-
- id=aicid;
-
- canbus = (bus==0)? new CanBus(CanBus.CANBUS0):new CanBus(CanBus.CANBUS1);
- canbus.setBaudRatePrescaler(CAN_DIVISOR);
- canbus.setTSEG1(CAN_TSEG1);
- canbus.setTSEG2(CAN_TSEG2);
- canbus.setSynchronizationJumpWidth(CAN_SJW);
-
- canbus.setMessageCenterTXMode(TXCENTER);
-
- canbus.setMessageCenterRXMode(RXCENTER);
- canbus.set11BitGlobalIDMask(AIC_ID_MASK);
- canbus.setMessageCenterMessageIDMaskEnable(RXCENTER,true);
- canbus.set11BitMessageCenterArbitrationID(RXCENTER,id);
- canbus.setMessageCenterWriteOverEnable(RXCENTER,true);
- canbus.enableMessageCenter(RXCENTER);
-
-// canbus.setMessageCenterRXMode(15);
-// canbus.set11BitMessageCenter15IDMask(0);
-// canbus.set29BitMessageCenter15IDMask(AIC_ID_MASK);
-// canbus.setMessageCenterMessageIDMaskEnable(15,true);
-// canbus.set11BitMessageCenterArbitrationID(15,id);
-// canbus.setMessageCenterWriteOverEnable(15,true);
- canbus.disableMessageCenter(15);
-
- canbus.enableController();
-
- }
-
-/** Initializes HostCAN using CAN bus 0 as default
-* @param aicid AIC identification on bus from 1 to 31
-* @throws CanBusException on CAN bus errors
-*/
- public HostCAN(int aicid) throws CanBusException
- {
- u=0;
-
- id=aicid;
-
- canbus = new CanBus(CanBus.CANBUS0);
- canbus.setBaudRatePrescaler(CAN_DIVISOR);
- canbus.setTSEG1(CAN_TSEG1);
- canbus.setTSEG2(CAN_TSEG2);
- canbus.setSynchronizationJumpWidth(CAN_SJW);
-
- canbus.setMessageCenterTXMode(TXCENTER);
-
- canbus.setMessageCenterRXMode(RXCENTER);
- canbus.set11BitGlobalIDMask(AIC_ID_MASK);
- canbus.setMessageCenterMessageIDMaskEnable(RXCENTER,true);
- canbus.set11BitMessageCenterArbitrationID(RXCENTER,id);
- canbus.setMessageCenterWriteOverEnable(RXCENTER,true);
- canbus.enableMessageCenter(RXCENTER);
-
-// canbus.setMessageCenterRXMode(15);
-// canbus.set11BitMessageCenter15IDMask(0);
-// canbus.set29BitMessageCenter15IDMask(AIC_ID_MASK);
-// canbus.setMessageCenterMessageIDMaskEnable(15,true);
-// canbus.set11BitMessageCenterArbitrationID(15,id);
-// canbus.setMessageCenterWriteOverEnable(15,true);
- canbus.disableMessageCenter(15);
-
- canbus.enableController();
- }
-
-/** Finalizes HostCAN
-* @throws CanBusException on CAN bus errors
-*/
- public void finalize() throws CanBusException
- {
- canbus.close();
- }
-
-/** Gets command received from host computer
-* @param args command arguments array. args[0] is the length of actual arguments.
-* @param size size of the arguments array
-* @return command code
-* @throws CanBusException on CAN bus errors
-*/
- public int command(byte[] args,int size) throws CanBusException
- {
- CanFrame frame = new CanFrame();
-
- canbus.receive(frame);
-
- if(size <= frame.length) args[0]=(byte)(size-1);
- else args[0]=(byte)frame.length;
-
- for(int i=0;i < args[0];i++) args[i+1]=frame.data[i];
-
- int cmd=((frame.ID & AIC_CMD_MASK) >> 5);
-
- switch(cmd)
- {
- case MOTOR_ACT:
- {
- long U=0;
- for(int i=0;i < 8;i++) U=U | ( (((long)frame.data[7-i]) << (i*8)) & (0xffL << (i*8)) );
- u=Double.longBitsToDouble(U);
- break;
- }
- case MOTOR_REF:
- {
- long R=0;
- for(int i=0;i < 8;i++) R=R | ( (((long)frame.data[7-i]) << (i*8)) & (0xffL << (i*8)) );
- ref=Double.longBitsToDouble(R);
- break;
- }
- }
- return cmd;
- }
-
-/** Sends encoder displacement and sync-switch status to host
-* @param disp encoder displacement in rad
-* @param index sync-switch status
-* @throws CanBusException on CAN bus errors
-*/
- public void sendStatus(double disp,int index) throws CanBusException
- {
- int cmd=id | (STATUS << 5);
- byte[] data=new byte[8];
- float f=(float) disp;
-
- int fl=Float.floatToIntBits(f);
-
- for(int i=0;i < 4;i++) data[3-i]=(byte)((fl >> (8*i)) & 0xff);
- for(int i=0;i < 4;i++) data[7-i]=(byte)((index >> (8*i)) & 0xff);
- canbus.sendDataFrame(cmd,false,data);
- }
-
-/** Sends encoder displacement and sync-switch status to host
-* @param disp encoder displacement in pulses
-* @param index sync-switch status
-* @throws CanBusException on CAN bus errors
-*/
- public void sendStatus(int disp,int index) throws CanBusException
- {
- int cmd=id | (STATUS << 5);
- byte[] data=new byte[8];
-
- for(int i=0;i < 4;i++) data[i]=(byte)((disp >> (8*i)) & 0xff);
- for(int i=0;i < 4;i++) data[i+4]=(byte)((index >> (8*i)) & 0xff);
- canbus.sendDataFrame(cmd,false,data);
- }
-
-}
-/**
-@}
-*/
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Host Interface
- UDP communication
- Copyright (C) 2003 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-package br.ufrgs.ece.AIC;
-
-import com.dalsemi.tininet.*;
-import java.net.*;
-import java.lang.*;
-import java.io.*;
-
-/** @addtogroup aichardware
-@{
-*/
-
-/** Provides access host computer through UDP connetion
-* @see HostCAN
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-*/
-public class HostUDP extends Host
-{
- private static final int CMD_PORT=9880;
- private static final int STATUS_PORT=9877;
-
- // socket for receiving command
- private TINIDatagramSocket cmdfd;
-
- // socket for transmitting status signal
- private TINIDatagramSocket statusfd;
- private InetAddress controlleraddr;
- private int statusport;
-
-
-/** Initializes HostUDP
-* @param controllername name of host computer
-* @param statport UDP port on host to send status to
-* @param cmdport UDP port on AIC to receive commands from host
-* @throws UnknownHostException if host is unknown
-* @throws SocketException on socket errors
-*/
- public HostUDP(String controllername,int statport,int cmdport) throws UnknownHostException, SocketException
- {
- u=0;
- ref=0;
- statusport=statport;
-
- controlleraddr=InetAddress.getByName(controllername);
- statusfd=new TINIDatagramSocket();
- cmdfd=new TINIDatagramSocket(cmdport);
- }
-
-/** Initializes HostUDP using default command port numbers
-* @param controllername name of host computer
-* @param statport UDP port on host to send status to
-* @throws UnknownHostException if host is unknown
-* @throws SocketException on socket errors
-*/
- public HostUDP(String controllername,int statport) throws UnknownHostException, SocketException
- {
- u=0;
- ref=0;
- statusport=statport;
-
- controlleraddr=InetAddress.getByName(controllername);
- statusfd=new TINIDatagramSocket();
- cmdfd=new TINIDatagramSocket(CMD_PORT);
- }
-
-/** Initializes HostUDP using default status and command port numbers
-* @param controllername name of host computer
-* @throws UnknownHostException if host is unknown
-* @throws SocketException on socket errors
-*/
- public HostUDP(String controllername) throws UnknownHostException, SocketException
- {
- u=0;
- ref=0;
- statusport=STATUS_PORT;
-
- controlleraddr=InetAddress.getByName(controllername);
- statusfd=new TINIDatagramSocket();
- cmdfd=new TINIDatagramSocket(CMD_PORT);
- }
-
-/** Finalizes HostUDP
-*/
- public void finalize()
- {
- statusfd.close();
- cmdfd.close();
- }
-
-/** Gets command received from host computer
-* @param args command arguments array. args[0] is the length of actual arguments.
-* @param size size of the arguments array
-* @return command code
-* @throws IOException on communication errors
-*/
- public int command(byte[] args,int size) throws IOException
- {
- int s;
- if(size < 256) s=256; else s=size;
-
- DatagramPacket p=new DatagramPacket(args,s);
-
- cmdfd.receive(p);
-
- int cmd=args[0];
- args[0]=(byte)(p.getLength()-1);
-
- switch(cmd)
- {
- case MOTOR_ACT:
- {
- long U=0;
- for(int i=0;i < 8;i++) U=U | ( (((long) args[7-i+1]) << (i*8)) & (0xffL << (i*8)) );
- u=Double.longBitsToDouble(U);
- break;
- }
- case MOTOR_REF:
- {
- long R=0;
- for(int i=0;i < 8;i++) R=R | ( (((long) args[7-i+1]) << (i*8)) & (0xffL << (i*8)) );
- ref=Double.longBitsToDouble(R);
- break;
- }
- }
-
- return cmd;
- }
-
-/** Sends encoder displacement and sync-switch status to host
-* @param disp encoder displacement in rad
-* @param index sync-switch status
-* @throws IOException on communication errors
-*/
- public void sendStatus(double disp,int index) throws IOException
- {
- byte[] buff=new byte[13];
- buff[0]=STATUS;
-
- long dl=Double.doubleToLongBits(disp);
-
- for(int i=0;i < 8;i++) buff[7-i+1]=(byte)((dl >> (8*i)) & 0xff);
- for(int i=0;i < 4;i++) buff[12-i]=(byte)((index >> (8*i)) & 0xff);
-
- DatagramPacket p=new DatagramPacket(buff,13,controlleraddr,statusport);
- statusfd.send(p);
- }
-
-/** Sends encoder displacement and sync-switch status to host
-* @param disp encoder displacement in pulses
-* @param index sync-switch status
-* @throws IOException on communication errors
-*/
- public void sendStatus(int disp,int index) throws IOException
- {
- byte[] buff=new byte[9];
- buff[0]=STATUS;
-
- for(int i=0;i < 4;i++) buff[4-i]=(byte)((disp >> (8*i)) & 0xff);
- for(int i=0;i < 4;i++) buff[8-i]=(byte)((index >> (8*i)) & 0xff);
- DatagramPacket p=new DatagramPacket(buff,9,controlleraddr,statusport);
- statusfd.send(p);
- }
-
-}
-/**
-@}
-*/
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Index Interface
- Copyright (C) 2003,2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-package br.ufrgs.ece.AIC;
-
-/** @addtogroup aichardware
-@{
-*/
-
-/** Provides access to sync-switch in an Actuator Interface Card
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-* @version AIC-1.3.0
-*/
-public final class Index
-{
-/** True if native library was loaded
-*/
- private static boolean libLoaded=false;
-
-/** Index native initialization, clears the counter on the quadrature decoder chip
-* @param base Base address for on board devices
-*/
- private static native void initialize(int base);
-
-/** Initializes Index
-* @param base Base address for on board devices
-*/
- public Index(int base)
- {
- if(!libLoaded) System.loadLibrary("index.tlib");
- libLoaded=true;
-
- initialize(base);
- }
-
-/** Reads the sync-switch
-* @return the sync-switch state
-*/
- public static native boolean read();
-}
-/**
-@}
-*/
-export CLASSPATH:=${CLASSPATH}:.
+all: libdebug.a
-all: AIC.jar libaic.a aicio.mpp.lib
+serial.o:serial.c
+ $(CC) $(CPU) -x c -c $^ $(CCINCDIR) $(CCFLAGS)
-${PKGPATH}/PLD.class: PLD.java
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} -d . PLD.java
+buffer.o:buffer.c
+ $(CC) $(CPU) -x c -c $^ $(CCINCDIR) $(CCFLAGS)
-${PKGPATH}/CtrlRegister.class: CtrlRegister.java
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} -d . CtrlRegister.java
-
-${PKGPATH}/PWM.class: PWM.java
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} -d . PWM.java
-
-${PKGPATH}/Motor.class: Motor.java ${PKGPATH}/PWM.class
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} -d . Motor.java
-
-${PKGPATH}/Encoder.class: Encoder.java
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} -d . Encoder.java
-
-${PKGPATH}/Brake.class: Brake.java
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} -d . Brake.java
-
-${PKGPATH}/Index.class: Index.java
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} -d . Index.java
-
-${PKGPATH}/AIC.class: AIC.java
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} -d . AIC.java
-
-${PKGPATH}/Host.class: Host.java
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} -d . Host.java
-
-${PKGPATH}/HostUDP.class: HostUDP.java
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} -d . HostUDP.java
-
-${PKGPATH}/HostCAN.class: HostCAN.java
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} -d . HostCAN.java
-
-${PKGPATH}/Sputtering.class: Sputtering.java
- ${JAVAC} ${JAVAFLAGS} ${CLASSPATH} -d . Sputtering.java
-
-${ASMINC}/tini.inc: ${NATINC}/tini.inc
- ln -s ${NATINC}/tini.inc ${ASMINC}/tini.inc
-
-${ASMINC}/tinimacro.inc: ${NATINC}/tinimacro.inc
- ln -s ${NATINC}/tinimacro.inc ${ASMINC}/tinimacro.inc
-
-${ASMINC}/ds80c390.inc: ${NATINC}/ds80c390.inc
- ln -s ${NATINC}/ds80c390.inc ${ASMINC}/ds80c390.inc
-
-${ASMINC}/apiequ.inc: ${NATINC}/apiequ.inc
- ln -s ${NATINC}/apiequ.inc ${ASMINC}/apiequ.inc
-
-brake.tlib: brake.mpp
- ${ASM} ${ASMOPT} brake.mpp
-
-brake.mpp: tlib/brake.mpp aicio/brake.mpp
- cat tlib/brake.mpp aicio/brake.mpp > brake.mpp
- echo end >> brake.mpp
-
-tlib/brake.mpp: tlib/brake.a51
- $(MAKE) -C tlib brake.mpp
-
-aicio/brake.mpp: aicio/brake.a51
- $(MAKE) -C aicio brake.mpp
-
-index.tlib: index.mpp
- ${ASM} ${ASMOPT} index.mpp
-
-index.mpp: tlib/index.mpp aicio/index.mpp
- cat tlib/index.mpp aicio/index.mpp > index.mpp
- echo end >> index.mpp
-
-tlib/index.mpp: tlib/index.a51
- $(MAKE) -C tlib index.mpp
-
-aicio/index.mpp: aicio/index.a51
- $(MAKE) -C aicio index.mpp
-
-encoder.tlib: encoder.mpp
- ${ASM} ${ASMOPT} encoder.mpp
-
-encoder.mpp: tlib/encoder.mpp aicio/encoder.mpp
- cat tlib/encoder.mpp aicio/encoder.mpp > encoder.mpp
- echo end >> encoder.mpp
-
-tlib/encoder.mpp: tlib/encoder.a51
- $(MAKE) -C tlib encoder.mpp
+libdebug.a:serial.o buffer.o
+ $(CCAR) -crvs $@ $^
-aicio/encoder.mpp: aicio/encoder.a51
- $(MAKE) -C aicio encoder.mpp
-
-pwm.tlib: pwm.mpp
- ${ASM} ${ASMOPT} pwm.mpp
-
-pwm.mpp: tlib/pwm.mpp aicio/pwm.mpp
- cat tlib/pwm.mpp aicio/pwm.mpp > pwm.mpp
- echo end >> pwm.mpp
-
-tlib/pwm.mpp: tlib/pwm.a51
- $(MAKE) -C tlib pwm.mpp
-
-aicio/pwm.mpp: aicio/pwm.a51
- $(MAKE) -C aicio pwm.mpp
-
-sputtering.tlib: sputtering.mpp
- ${ASM} ${ASMOPT} sputtering.mpp
-
-sputtering.mpp: tlib/sputtering.mpp ${TRTAIPATH}/lib/rtai.mpp.lib aicio.mpp.lib
- cat tlib/sputtering.mpp ${TRTAIPATH}/lib/rtai.mpp.lib aicio.mpp.lib > sputtering.mpp
- echo end >> sputtering.mpp
-
-tlib/sputtering.mpp: tlib/sputtering.c
- $(MAKE) -C tlib sputtering.mpp
-
-AIC.jar: ${PKGPATH}/PLD.class\
- ${PKGPATH}/CtrlRegister.class\
- ${PKGPATH}/PWM.class\
- ${PKGPATH}/Motor.class\
- ${PKGPATH}/Encoder.class\
- ${PKGPATH}/Brake.class\
- ${PKGPATH}/Index.class\
- ${PKGPATH}/AIC.class \
- ${PKGPATH}/Host.class \
- ${PKGPATH}/HostUDP.class \
- ${PKGPATH}/HostCAN.class \
- ${PKGPATH}/Sputtering.class \
- brake.tlib index.tlib encoder.tlib pwm.tlib sputtering.tlib
- jar cf AIC.jar ${PKGPATH} brake.tlib index.tlib encoder.tlib pwm.tlib sputtering.tlib
-
-aic.o: aic.cpp ../include/aic.h
- ${CXX} ${CMPFLAGS} ${INCLUDE} ${CPPINCLUDE} -c aic.cpp
-
-aicudp.o: aicudp.cpp ../include/aic.h ../include/aicnet.h ../include/aicudp.h
- ${CXX} ${CMPFLAGS} ${INCLUDE} ${CPPINCLUDE} -c aicudp.cpp
-
-aiccan.o: aiccan.cpp ../include/aic.h ../include/aicnet.h ../include/aiccan.h
- ${CXX} ${CMPFLAGS} ${INCLUDE} ${CPPINCLUDE} -c aiccan.cpp
-
-aicsim.o: aicsim.cpp ../include/aic.h ../include/aicnet.h ../include/aicsim.h
- ${CXX} ${CMPFLAGS} ${INCLUDE} ${CPPINCLUDE} -c aicsim.cpp
-
-aichost.o: aichost.cpp ../include/aichost.h ../include/aicnet.h
- ${CXX} ${CMPFLAGS} -c aichost.cpp
-
-aichostudp.o: aichostudp.cpp ../include/aichostudp.h ../include/aicnet.h
- ${CXX} ${CMPFLAGS} -c aichostudp.cpp
-
-aichostcan.o: aichostcan.cpp ../include/aichostcan.h ../include/aicnet.h
- ${CXX} ${CMPFLAGS} -c aichostcan.cpp
-
-sputtering.o: sputtering.cpp ../include/aicudp.h ../include/sputtering.h
- ${CXX} ${CMPFLAGS} -c sputtering.cpp
-
-libaic.a: aic.o aicudp.o aiccan.o aicsim.o aichost.o aichostudp.o aichostcan.o sputtering.o
- ar -crvs libaic.a aic.o aicudp.o aiccan.o aicsim.o aichost.o aichostudp.o aichostcan.o sputtering.o
-
-aicio.mpp.lib: aicio/aicio.mpp.lib
- cp aicio/aicio.mpp.lib .
-
-aicio/aicio.mpp.lib: aicio/brake.a51 aicio/index.a51 aicio/pwm.a51 aicio/encoder.a51
- $(MAKE) -C aicio
-
-install:
- install -m 0644 libaic.a ${LIBINST}
- install -m 0644 AIC.jar ${LIBINST}
- install -m 0755 -d ${INCLUDEINST}/cpp
- install -m 0644 ../include/*.h ${INCLUDEINST}/cpp
- $(MAKE) -C tlib install
-
clean:
- rm -rf *.o *~ *.bak *.class ../include/{*.bak,*~} br *.tlib *.mpp ${TINIINC} *.lst
- $(MAKE) -C aicio clean
- $(MAKE) -C tlib clean
-
-distclean: clean
- rm -rf AIC.jar *.a aicio.mpp.lib
- $(MAKE) -C aicio distclean
- $(MAKE) -C tlib distclean
-
-uninstall:
- rm ${LIBINST}/libaic.a
- rm ${LIBINST}/AIC.jar
- rm ${INCLUDEINST}/cpp/aic.h
- rm ${INCLUDEINST}/cpp/aicnet.h
- $(MAKE) -C tlib uninstall
+ rm -f *.o *~
+
+distclean:clean
+ rm -f libdebug.a
\ No newline at end of file
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Motor Interface
- Copyright (C) 2003, 2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-package br.ufrgs.ece.AIC;
-
-/** @addtogroup aichardware
-@{
-*/
-
-/** Provices access to the motor driver in an Actuator Interface Card
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-* @version AIC-1.3.0
-*/
-public class Motor
-{
-
- private double volt2duty;
- private PWM pwm;
-
-/** Initializes the motor driver
-* @param baseadd Base address for on board devices
-* @param voltage Motor Voltage
-* @param freq PWM frequency
-*/
- public Motor(int baseadd,double voltage,double freq)
- {
- volt2duty=0.5/voltage;
-
- pwm=new PWM(baseadd,freq);
- pwm.off();
- }
-
-/** Initializes the motor driver using the default PWM frequency (20KHz)
-* @param baseadd Base address for on board devices
-* @param voltage Motor Voltage
-*/
- public Motor(int baseadd,double voltage)
- {
- volt2duty=0.5/voltage;
-
- pwm=new PWM(baseadd);
- pwm.off();
- }
-
-/** Finalizes the motor driver
-*/
- public void finalize()
- {
- pwm.off();
- }
-
-/** Turns the motor driver on
-*/
- public void on()
- {
- pwm.on();
- };
-
-/** Turns the motor driver off
-*/
- public void off()
- {
- pwm.off();
- };
-
-/** Sets the voltage to be applied by the motor driver
-* @param voltage to be applied by the motor driver
-* @return the duty-cycle of the associated PWM
-*/
- public double set(double voltage)
- {
- int dutycycle=((int)(voltage*volt2duty*1000000))+500000;
- pwm.setDuty(dutycycle);
- return dutycycle;
- };
-};
-
-/**
-@}
-*/
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- PLD Constants
- Copyright (C) 2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-package br.ufrgs.ece.AIC;
-
-/** @addtogroup aichardware
-@{
-*/
-
-/** Provides constants defining addresses for devices in an Actuator Interface Card
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-* @version AIC-1.3.0
-* @since AIC-1.2.0
-* @deprecated
-*/
-public class PLD
-{
-/** PWM address
-* @see PWM
-*/
- public static final int PWM=0x80000;
-
-/** Encoder address
-* @see Encoder
-*/
- public static final int ENCODER=0x90000;
-
-/** Control register address
-* @see CtrlRegister
-*/
- public static final int CONTROL=0xA0000;
-}
-
-/**
-@}
-*/
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- PWM Interface
- Copyright (C) 2003,2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-package br.ufrgs.ece.AIC;
-
-/** @addtogroup aichardware
-@{
-*/
-
-/** Provices access to the PWM in an Actuator Interface Card
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-* @version AIC-1.3.0
-*/
-public final class PWM
-{
-/** True if native library was loaded
-*/
- private static boolean libLoaded=false;
-
-/** Reference frequency = 10MHz
-*/
- public static final double REF_FREQ=10e6;
-
-/** Default Switching Frequency = 20KHz
-*/
- public static final double SW_FREQ=20e3;
-
- private static final double TURNOFF_DELAY=600e-9;
- private static final int MIN_COUNT=(int)(2*TURNOFF_DELAY*REF_FREQ);
- private static final int MAX_COUNT=(int)(REF_FREQ/SW_FREQ);
-
- private int max_count=MAX_COUNT;
-
-/** Sets the frequency of PWM in cycles of 10MHz
-* @param count number of cycles from 10 to 65530. Default
-* value is 500
-* @since AIC-1.3.0
-*/
- public static native void setCount(int count);
-
-/** Sets the frequency of PWM
-* @param frequency frequency in Hz from 152.60Hz to 1MHz. Default
-* value is 20KHz
-*/
- public void setFreq(double frequency)
- {
- max_count=(int)(REF_FREQ/frequency) & 0xffff;
- setCount(max_count);
- }
-
-/** Returns the frequency of PWM
-* @return PWM frequency in Hz
-*/
- public double getFreq()
- {
- return REF_FREQ/max_count;
- }
-
-/** PWM native initialization
-* @param base Base address for on board devices
-* @param min_count MIN_COUNT
-* @param count frequency of PWM in cycles of 10MHz. Number of cycles
-* from 10 to 65530.
-*/
- private static native void initialize(int base,int min_count,int count);
-
-/** Initializes the PWM
-* @param base Base address for on board devices
-* @param freq PWM frequency
-*/
- public PWM(int base,double freq)
- {
- if(!libLoaded) System.loadLibrary("pwm.tlib");
- libLoaded=true;
-
- int count=(int)(REF_FREQ/freq) & 0xffff;
- initialize(base,MIN_COUNT,count);
- }
-
-/** Initializes the PWM using the default PWM frequency (20KHz)
-* @param base Base address for on board devices
-*/
- public PWM(int base)
- {
- if(!libLoaded) System.loadLibrary("pwm.tlib");
- libLoaded=true;
-
- int count=(int)(REF_FREQ/SW_FREQ) & 0xffff;
- initialize(base,MIN_COUNT,count);
- }
-
-/** Finalizes the PWM
-*/
- public native void finalize();
-
-/** Sets the duty-cycle of PWM
-* @param dutycycle to be used by PWM as a double from 0 to 1.0
-* @return the count value programmed to the PWM timer
-*/
- public int setDuty(double dutycycle)
- {
-// if(dutycycle < 0.0) dutycycle=0.0;
-// if(dutycycle > 1.0) dutycycle=1.0;
-// int count=(int)(max_count*(1.0-dutycycle));
-// int count=max_count-(int)(max_count*dutycycle);
-// if(count < MIN_COUNT) count=MIN_COUNT;
-// if(count > max_count-MIN_COUNT) count=max_count-MIN_COUNT;
-
- return setDuty((int)(dutycycle*1000000));
-// return count;
- }
-
-/** Sets the duty-cycle of PWM
-* @param dutycycle to be used by PWM as a int from 0 to 1000000
-* @return the count value programmed to the PWM timer
-*/
- public static native int setDuty(int dutycycle);
-
-/** Turns the PWM on
-*/
- public static native void on();
-
-/** Turns the PWM off
-*/
- public static native void off();
-}
-/**
-@}
-*/
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Sputtering Interface
- Copyright (C) 2007 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-package br.ufrgs.ece.AIC;
-
-/** @addtogroup aicapp
-@{
-*/
-
-/** AIC Sputtering Real Time Interface
-* @author Walter Fetter Lages (w.fetter@ieee.org)
-* @version AIC-1.6.1
-*/
-public final class Sputtering
-{
-/** True if native library was loaded
-*/
- private static boolean libLoaded=false;
-
-/** Initializes Sputtering
-*/
- private static native void initialize();
-
-/** Finalizes Sputtering
-*/
- public native void finalize();
-
-/** Starts a real time PID controller
-* @param period Desired sampling time in us
-* @return Actual sampling time in us
-*/
- public static native int pidStartRealtime(int period);
-
-/** Stops the real time PID controller
-*/
- public static native void pidStopRealtime();
-
-/** Sets PID reference
-* @param reference PID set-point
-*/
- public static native void setReference(float reference);
-
-/** Gets plant output
-* @return Plant output in rad
-*/
- public static native float getOutput();
-
-/** Gets current time
-* @return Current time in ticks
-*/
- public static native int getTime();
-
-/** Unlocks Sputtering usage
-*/
- public static native void unlock();
-
-/** Locks Sputtering usage
-* @return 1 if locked
-*/
- public static native byte lock();
-
-/** Starts real time shutter controller
-* @param period Desired sampling time in us
-* @return Actual sampling time in us
-*/
- public static native int shutterStartRealtime(int period);
-
-/** Stops the real time shutter controller
-*/
- public static native void shutterStopRealtime();
-
-/** Moves motor to home position
-*/
- public static native void findHome();
-
-/** Gets index sensor status
-* @return Index sensor status
-*/
- public static native int getIndex();
-
-/** Opens shutter for specified time
-* @param time Time to keep shutter open in us
-*/
- public static native void openShutter(int time);
-
-/** Constructs a Sputtering objetct
-*/
- public Sputtering()
- {
- if(!libLoaded) System.loadLibrary("sputtering.tlib");
- libLoaded=true;
-
- initialize();
- }
-}
-
-/**
-@}
-*/
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Host Interface Library
- Copyright (C) 2003 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <aic.h>
-#include <aicnet.h>
-
-AIC_MOTOR::AIC_MOTOR(AIC_COMM *comm)
-{
- port=comm;
-}
-
-void AIC_MOTOR::on(void)
-{
- port->send_command(AIC_MOTOR_ON);
-}
-
-void AIC_MOTOR::off(void)
-{
- port->send_command(AIC_MOTOR_OFF);
-}
-
-double AIC_MOTOR::operator=(double voltage)
-{
- port->send_command(AIC_MOTOR_ACT,voltage);
-
- return voltage;
-}
-
-
-AIC_BRAKE::AIC_BRAKE(AIC_COMM *comm)
-{
- port=comm;
-}
-
-void AIC_BRAKE::apply(void)
-{
- port->send_command(AIC_BRAKE_APPLY);
-}
-
-void AIC_BRAKE::release(void)
-{
- port->send_command(AIC_BRAKE_RELEASE);
-}
-
-AIC_ENCODER::AIC_ENCODER(AIC_COMM *comm)
-{
- port=comm;
-}
-
-double AIC_ENCODER::read(int *index)
-{
- double disp;
-
- port->get_status(AIC_STATUS,&disp,index);
-
- return disp;
-}
-
-double AIC_ENCODER::read(void)
-{
- int index;
-
- return read(&index);
-}
-
-AIC_INDEX::AIC_INDEX(AIC_COMM *comm)
-{
- port=comm;
-}
-
-int AIC_INDEX::read(double *disp)
-{
- int index;
-
- port->get_status(AIC_STATUS,disp,&index);
-
- return index;
-}
-
-int AIC_INDEX::read(void)
-{
- double disp;
-
- return read(&disp);
-}
-
-AIC::AIC(AIC_COMM *comm):
-motor(comm),
-encoder(comm),
-brake(comm),
-index(comm)
-{
- port=comm;
-}
-
-void AIC::reset(void)
-{
- port->send_command(AIC_RESET);
-}
-
-void AIC::reference(double ref)
-{
- port->send_command(AIC_MOTOR_REF,ref);
-}
-
-int AIC::busy(void)
-{
- unsigned int status;
- double disp;
-
- port->get_status(AIC_STATUS,&disp,&status);
-
- return (status & AIC_BUSY)? 1:0;
-}
-
-void AIC::send_command(int command,int n,const void *buffer)
-{
- port->send_command(command,n,buffer);
-}
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Host Interface Library
- CAN Communication
- Copyright (C) 2003, 2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <stdarg.h>
-#include <stdio.h>
-
-#include <canlib.h>
-
-#include <aiccan.h>
-#include <aicnet.h>
-
-const static int NCC=32; ///< Number of message buffers
-
-/// Buffer to store received CAN messages
-static struct CAN_CENTER
-{
- int cmd; ///< AIC command
- unsigned char msg[8]; ///< Message
- unsigned int msglen; ///< Message length
-} cc[NCC];
-
-AIC_CAN::AIC_CAN(int aic,int bus):
-AIC(this)
-{
- aicnumber=aic;
- canHandle handle;
- handle=canOpenChannel(bus,canWANT_EXTENDED);
- canStatus status=(canStatus)handle;
- if(status < 0) throw BAD_OPEN();
-
- status=canSetBusParams(handle,BAUD_125K,13,7,1,1,0);
- if(status < 0) throw BAD_PARMS();
-
- status=canBusOn(handle);
- if(status < 0) throw BAD_BUSON();
-
- for(int i=0;i < NCC;i++) cc[i].cmd=0;
-}
-
-
-AIC_CAN::~AIC_CAN(void)
-{
- canStatus status=canClose(handle);
- if(status < 0) throw BAD_CLOSE();
-}
-
-int AIC_CAN::get_status(int status,...)
-{
- long id;
- unsigned char msg[8];
- unsigned int msglen;
- unsigned int flag;
- unsigned long time;
- int cmd;
- long aicid;
-
- do
- {
- if(cc[aicnumber-1].cmd)
- {
- cmd=cc[aicnumber-1].cmd;
- cc[aicnumber-1].cmd=0;
- id=aicnumber & (cmd << 5);
- for(int i=0;i < 8; i++) msg[i]=cc[aicnumber-1].msg[i];
- msglen=cc[aicnumber-1].msglen;
- break;
- }
- else
- {
- do
- {
- canStatus canstatus=canReadWait(handle,&id,msg,&msglen,&flag,&time,-1);
- if(canstatus < 0) throw BAD_RECEIVE();
- } while(!(flag & canMSG_STD));
- cmd=(id & AIC_CMD_MASK) >> 5;
- aicid=id & AIC_ID_MASK;
- if(aicid != aicnumber)
- {
- // Message center with WriteOver
- cc[aicid-1].cmd=cmd;
- for(int i=0;i < 8; i++) cc[aicid-1].msg[i]=msg[i];
- cc[aicid-1].msglen=msglen;
- }
- }
- } while( (aicid != aicnumber) ||
- !(id & AIC_ID_MASK) ||
- (cmd != status) );
-
- switch(cmd)
- {
- case AIC_STATUS:
- {
- float disp;
- for(int i=0;i < 4;i++) *(((unsigned char *)&disp)+i)=msg[3-i];
-
- va_list ap;
- va_start(ap,status);
- double *dp=va_arg(ap,double *);
- *dp=disp;
-
- int *index=va_arg(ap,int *);
- for(int i=0;i < 4;i++) *(((unsigned char *)index)+i)=msg[7-i];
-
- va_end(ap);
-
- break;
- }
- }
- return cmd;
-}
-
-void AIC_CAN::send_command(int command,...)
-{
- unsigned char msg[8];
- unsigned int msglen=8;
-
- long id=aicnumber | (command << 5);
- switch(command)
- {
- case AIC_MOTOR_ON:
- case AIC_MOTOR_OFF:
- case AIC_BRAKE_APPLY:
- case AIC_BRAKE_RELEASE:
- case AIC_RESET:
- {
- msglen=0;
- break;
- }
- case AIC_MOTOR_ACT:
- {
- va_list ap;
- va_start(ap,command);
- double volt=va_arg(ap,double);
- va_end(ap);
- for(int i=0;i < 8;i++) msg[7-i]= *((char *) &volt + i);
- msglen=8;
- break;
- }
- case AIC_USER0:
- case AIC_USER1:
- case AIC_USER2:
- case AIC_USER3:
- {
- va_list ap;
- va_start(ap,command);
- msglen=va_arg(ap,int);
- unsigned char *ptr=msg;
- if(msglen > 0) ptr=va_arg(ap,unsigned char *);
- va_end(ap);
- if(msglen > 8) throw BAD_SEND();
- for(unsigned int i=0;i < msglen;i++) msg[i]=ptr[i];
- break;
- }
- default: throw BAD_COMMAND();
-
- }
-
- unsigned int flag=canMSG_STD;
- canStatus status=canWriteWait(handle,id,msg,msglen,flag,-1);
- if(status < 0) throw BAD_SEND();
-}
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Host Interface Simulation
- Copyright (C) 2003, 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <aichost.h>
-
-AIC_HOST::AIC_HOST(void)
-{
- u=0;
- ref=0;
- status=0;
-}
-
-AIC_HOST::~AIC_HOST(void)
-{
-
-}
-
-
-int AIC_HOST::getstatus(void) const
-{
- return status;
-}
-
-double AIC_HOST::voltage(void) const
-{
- return u;
-}
-
-double AIC_HOST::reference(void) const
-{
- return ref;
-}
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Host Interface Simulation
- CAN Communication
- Copyright (C) 2003, 2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <aichostcan.h>
-
-const static int NCC=32; ///< Number of message buffers
-
-/// Buffer to store received CAN messages
-static struct CAN_CENTER
-{
- int cmd; ///< AIC command
- unsigned char msg[8]; ///< Message
- unsigned int msglen; ///< Message length
-} cc[NCC];
-
-AIC_HOST_CAN::AIC_HOST_CAN(int aic,int bus):
-AIC_HOST()
-{
- aicnumber=aic;
- canHandle handle;
- handle=canOpenChannel(bus,canWANT_EXTENDED);
- canStatus status=(canStatus)handle;
- if(status < 0) throw BAD_OPEN();
-
- status=canSetBusParams(handle,BAUD_125K,13,7,1,1,0);
- if(status < 0) throw BAD_PARMS();
-
- status=canBusOn(handle);
- if(status < 0) throw BAD_BUSON();
-
- for(int i=0;i < NCC;i++) cc[i].cmd=0;
-}
-
-
-AIC_HOST_CAN::~AIC_HOST_CAN(void)
-{
- canStatus status=canClose(handle);
- if(status < 0) throw BAD_CLOSE();
-}
-
-int AIC_HOST_CAN::command(void)
-{
- long id;
- unsigned char msg[8];
- unsigned int msglen;
- unsigned int flag;
- unsigned long time;
- int cmd;
- long aicid;
-
- do
- {
- if(cc[aicnumber-1].cmd)
- {
- cmd=cc[aicnumber-1].cmd;
- cc[aicnumber-1].cmd=0;
- id=aicnumber & (cmd << 5);
- for(int i=0;i < 8; i++) msg[i]=cc[aicnumber-1].msg[i];
- msglen=cc[aicnumber-1].msglen;
- break;
- }
- else
- {
- do
- {
- canStatus status=canReadWait(handle,&id,msg,&msglen,&flag,&time,-1);
- if(status < 0) throw BAD_RECEIVE();
- } while(!(flag & canMSG_STD));
- cmd=id >> 5;
- aicid=id & AIC_ID_MASK;
- if(aicid != aicnumber)
- {
- // Message center with WriteOver
- cc[aicid-1].cmd=cmd;
- for(int i=0;i < 8; i++) cc[aicid-1].msg[i]=msg[i];
- cc[aicid-1].msglen=msglen;
- }
- }
- } while(aicid != aicnumber);
-
- switch(cmd)
- {
- case AIC_MOTOR_ON:
- {
- status|=MOTOR_ON;
- break;
- }
- case AIC_MOTOR_OFF:
- {
- status &= ~MOTOR_ON;
- break;
- }
- case AIC_MOTOR_ACT:
- {
- unsigned char *c=(unsigned char *) &u;
- for(int i=0;i < 8;i++) c[i]=msg[7-i];
- break;
- }
- case AIC_BRAKE_APPLY:
- {
- status|=BRAKE_APPLIED;
- break;
- }
- case AIC_BRAKE_RELEASE:
- {
- status &= ~BRAKE_APPLIED;
- break;
- }
- case AIC_RESET:
- {
- break;
- }
- }
-
- return cmd;
-}
-
-void AIC_HOST_CAN::send_status(double disp,int index)
-{
- unsigned char msg[8];
- float dispf=disp;
- for(int i=0;i < 4;i++) msg[3-i]= *(((unsigned char *) &dispf)+i);
- for(int i=0;i < 4;i++) msg[4+3-i]= *(((unsigned char *) &index)+i);
-
- long id=aicnumber | (AIC_STATUS << 5);
- unsigned int flag=canMSG_STD;
- unsigned int msglen=sizeof(msg);
- canStatus status=canWriteWait(handle,id,msg,msglen,flag,-1);
- if(status < 0) throw BAD_SEND();
-}
-
-
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Host Interface Simulation
- UDP Communication
- Copyright (C) 2003, 2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <arpa/inet.h>
-#include <errno.h>
-#include <iostream>
-using namespace std;
-#include <netdb.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/socket.h>
-
-#include <aichostudp.h>
-
-AIC_HOST_UDP::AIC_HOST_UDP(const char *controllername,int statusport,int cmdport):
-AIC_HOST()
-{
- struct hostent *controllerend=gethostbyname(controllername);
-
- struct in_addr *ptr=(struct in_addr *)controllerend->h_addr;
- if(ptr==NULL)
- {
-#ifdef DEBUG
- cerr << "AIC_HOST::AIC_HOST error: "
- << strerror(errno) << "\n";
-#endif
- throw BAD_SOCKET();
- }
-
- bzero(&statusaddr,sizeof(statusaddr));
- statusaddr.sin_family=AF_INET;
- statusaddr.sin_port=htons(statusport);
- memcpy(&statusaddr.sin_addr,ptr,sizeof(struct in_addr));
-
- if((statusfd=socket(AF_INET,SOCK_DGRAM,0)) < 0)
- {
-#ifdef DEBUG
- cerr << "AIC_HOST::AIC_HOST error: "
- << strerror(errno) << "\n";
-#endif
- throw BAD_SOCKET();
- }
-
- bzero(&cmdaddr,sizeof(cmdaddr));
- cmdaddr.sin_family=AF_INET;
- cmdaddr.sin_addr.s_addr=htonl(INADDR_ANY);
- cmdaddr.sin_port=htons(cmdport);
-
- if((cmdfd=socket(AF_INET,SOCK_DGRAM,0)) < 0)
- {
-#ifdef DEBUG
- cerr << "AIC_HOST::AIC_HOST error: "
- << strerror(errno) << "\n";
-#endif
- throw BAD_SOCKET();
- }
- if((bind(cmdfd,(struct sockaddr *) &cmdaddr,sizeof(cmdaddr))) < 0)
- {
-#ifdef DEBUG
- cerr << "AIC_HOST::AIC_HOST error: "
- << strerror(errno) << "\n";
-#endif
- throw BAD_BIND();
- }
-}
-
-
-AIC_HOST_UDP::~AIC_HOST_UDP(void)
-{
- shutdown(statusfd,SHUT_RDWR);
- shutdown(cmdfd,SHUT_RDWR);
-}
-
-int AIC_HOST_UDP::command(void)
-{
- char buff[32];
- int count;
-
- socklen_t cmdlen=sizeof(cmdaddr);
-
- if((count=recvfrom(cmdfd,buff,32,0,(struct sockaddr *) &cmdaddr,&cmdlen)) <= 0)
- {
-#ifdef DEBUG
- cerr << "AIC_HOST::command error: "
- << strerror(errno) << "\n";
-#endif
- throw BAD_RECEIVE();
- }
-
- int cmd=*buff;
-
- switch(cmd)
- {
- case AIC_MOTOR_ON:
- {
- status|=MOTOR_ON;
- break;
- }
- case AIC_MOTOR_OFF:
- {
- status &= ~MOTOR_ON;
- break;
- }
- case AIC_MOTOR_ACT:
- {
- unsigned char *c=(unsigned char *) &u;
- for(int i=0;i < 8;i++) c[i]=buff[7-i+1];
- break;
- }
- case AIC_BRAKE_APPLY:
- {
- status|=BRAKE_APPLIED;
- break;
- }
- case AIC_BRAKE_RELEASE:
- {
- status &= ~BRAKE_APPLIED;
- break;
- }
- case AIC_RESET:
- {
- break;
- }
- }
-
- return cmd;
-}
-
-void AIC_HOST_UDP::send_status(double disp,int index)
-{
- char buff[32];
-
- buff[0]=AIC_STATUS;
-
- for(int i=0;i < 8;i++) buff[7-i+1]= *(((unsigned char *) &disp)+i);
- for(int i=0;i < 4;i++) buff[8+3-i+1]= *(((unsigned char *) &index)+i);
-
- int count=0;
- if((count=sendto(statusfd,buff,13,0,(struct sockaddr *) &statusaddr,sizeof(statusaddr))) < 0)
- {
-#ifdef DEBUG
- cerr << "AIC_HOST::send_status error: "
- << strerror(errno) << "\n";
-#endif
- throw BAD_SEND();
- }
-}
+++ /dev/null
-ASMINC:=../${ASMINC}
-TINIINC=${ASMINC}/tini.inc ${ASMINC}/tinimacro.inc ${ASMINC}/ds80c390.inc ${ASMINC}/apiequ.inc
-
-all: aicio.mpp.lib
-
-${ASMINC}/tini.inc: ${NATINC}/tini.inc
- ln -s ${NATINC}/tini.inc ${ASMINC}/tini.inc
-
-${ASMINC}/tinimacro.inc: ${NATINC}/tinimacro.inc
- ln -s ${NATINC}/tinimacro.inc ${ASMINC}/tinimacro.inc
-
-${ASMINC}/ds80c390.inc: ${NATINC}/ds80c390.inc
- ln -s ${NATINC}/ds80c390.inc ${ASMINC}/ds80c390.inc
-
-${ASMINC}/apiequ.inc: ${NATINC}/apiequ.inc
- ln -s ${NATINC}/apiequ.inc ${ASMINC}/apiequ.inc
-
-brake.mpp: brake.a51 ${TINIINC} ${ASMINC}/aicpld.inc
- ${ASMMACRO} -I${ASMINC} -e- brake.a51
-
-index.mpp: index.a51 ${TINIINC} ${ASMINC}/aicpld.inc
- ${ASMMACRO} -I${ASMINC} -e- index.a51
-
-encoder.mpp: encoder.a51 ${TINIINC} ${ASMINC}/aicpld.inc
- ${ASMMACRO} -I${ASMINC} -e- encoder.a51
-
-pwm.mpp: pwm.a51 ${TINIINC} ${ASMINC}/aicpld.inc
- ${ASMMACRO} -I${ASMINC} -e- pwm.a51
-
-aicio.mpp.lib: brake.mpp index.mpp pwm.mpp encoder.mpp
- cat brake.mpp index.mpp pwm.mpp encoder.mpp > aicio.mpp.lib
-
-install:
-
-clean:
- rm -rf *.o *~ *.bak *.class ../include/{*.bak,*~} br *.tlib *.mpp ${TINIINC} *.lst
-
-distclean: clean
- rm -rf aicio.mpp.lib
-
-uninstall:
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Real Time Interface
- Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <tmath.h>
-
-#define _AIC_C
-#include <aicio.h>
-
-void aic_on(void)
-{
- motor_on();
- encoder_clear();
-}
-
-void aic_off(void)
-{
- motor_set(0.0);
- brake_apply();
- motor_off();
- encoder_clear();
-}
-
-void aic_initialize(unsigned long base,float vm,float freq,long np)
-{
- motor_initialize(base,vm,freq);
- encoder_initialize(base,np);
- brake_initialize(base);
- index_initialize(base);
-}
-
-void aic_finalize(void)
-{
- aic_off();
-}
-
+++ /dev/null
-;******************************************************************************
-;
-; Actuator Interface Card
-; Brake Functions
-; Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-;
-; 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 2 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, write to the Free Software
-; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-;
-; You can also obtain a copy of the GNU General Public License
-; at <http://www.gnu.org/licenses>.
-;
-;*******************************************************************************
-
-$include(tini.inc)
-$include(ds80c390.inc)
-$include(tinimacro.inc)
-
-$include(aicpld.inc)
-$include(aicmacro.inc)
-
-; data saved in big-endian mode
-; Brake base address
-brake_base: db 0,0,0
-
-; Initializes Brake
-; void brake_initialize(unsigned long base);
-brake_initialize:
- mov r0,dpl ; parameter in b:dpx:dph:dpl
- mov r1,dph ; BUG IN SDCC MANUAL!
- mov r2,dpx
- mov r3,b
-
- mov dptr,#CONTROL ; compute brake address
- lcall Add_Dptr1_24 ; dptr=dptr+R2:R1:R0
-
- STORE24 #brake_base ; store brake address
-
- clr a ; success
- ret
-
-; Applies the electromagnetic brakes
-; void brake_apply(void)
-brake_apply:
- LOAD24 #brake_base ; get brake address
-
- SET_STRETCH STRETCH
-
- ENTER_PCE_SPACE_AND_PUSH_STATE #0
- mov a,#BRAKEAPPLY ; apply brake
- movx @dptr,a
- EXIT_PCE_SPACE_AND_POP_STATE
-
-
- RESTORE_STRETCH r0
-
- clr a ; success
- ret
-
-; Releases the electromagnetic brake
-; void brake_release(void)
-brake_release:
- LOAD24 #brake_base ; get brake address
-
- SET_STRETCH STRETCH
-
- ENTER_PCE_SPACE_AND_PUSH_STATE #0
- mov a,#BRAKERELEASE ; release brake
- movx @dptr,a
- EXIT_PCE_SPACE_AND_POP_STATE
-
- RESTORE_STRETCH r0
-
- clr a ; success
- ret
-
- end
+++ /dev/null
-;******************************************************************************
-;
-; Actuator Interface Card
-; Encoder Functions
-; Copyright (C) 2004, 2005 Walter Fetter Lages <w.fetter@ieee.org>
-;
-; 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 2 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, write to the Free Software
-; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-;
-; You can also obtain a copy of the GNU General Public License
-; at <http://www.gnu.org/licenses>.
-;
-;*******************************************************************************
-
-$include(tini.inc)
-$include(ds80c390.inc)
-$include(tinimacro.inc)
-
-$include(aicpld.inc)
-$include(aicmacro.inc)
-
-_bpx EQU 01Eh ; _bpx (frame pointer) mapped to R8_B3:R7_B3
-_ap EQU 01Dh ; _ap mapped to R6_B3
-
-; data saved in big-endian mode
-; Encoder base address
-encoder_base: db 0,0,0
-encoder_pulses: db 0,0,0,0
-encoder_rad: db 0,0,0,0
-encoder_radok: db 0,0,0,0
-
-; Initializes Encoder
-; void encoder_initialize(unsigned long base,long pulses);
-encoder_initialize:
- push _bpx ; SDCC style preface code
- push _bpx+1
- mov _bpx,sp
- mov _bpx+1,esp
- anl _bpx+1,#3
-
- mov r0,dpl ; parameter in b:dpx:dph:dpl
- mov r1,dph ; BUG IN SDCC MANUAL!
- mov r2,dpx
- mov r3,b
-
- mov dptr,#ENCODER ; compute encoder address
- lcall Add_Dptr1_24 ; dptr=dptr+R2:R1:R0
-
- STORE24 #encoder_base ; store encoder address
-
- SET_STRETCH STRETCH
-
- ENTER_PCE_SPACE_AND_PUSH_STATE #0
- clr a ; clear encoder
- movx @dptr,a
- EXIT_PCE_SPACE_AND_POP_STATE
-
- RESTORE_STRETCH r0
-
- mov a,_bpx
- clr c
- subb a,#8 ; second parameter is base pointer-6
- mov b,a ; point dpx:dptr to it
- mov a,_bpx+1
- subb a,#0
- mov dpx,#40h
- mov dph,a
- mov dpl,b
-
- mov dps,#21h ; store in encoder_pulses
- mov dptr,#encoder_pulses
- movx a,@dptr
- movx @dptr,a
- inc dptr
- inc dptr
- movx a,@dptr
- movx @dptr,a
- mov dps,#0
-
- mov sp,_bpx ; SDCC style epilogue code
- mov esp,_bpx+1
- pop _bpx+1
- pop _bpx
-
- clr a ; sucess
- ret
-
-; Finalizes Encoder
-; void encoder_finalize(void)
-encoder_finalize:
-
- ; fall-through to encoder_clear:
-
-; Clears the counter on the quadrature decoder chip
-; void clear(void)
-encoder_clear:
- LOAD24 #encoder_base ; get encoder address
-
- SET_STRETCH STRETCH
-
- ENTER_PCE_SPACE_AND_PUSH_STATE #0
- clr a
- movx @dptr,a ; clear counter
- EXIT_PCE_SPACE_AND_POP_STATE
-
- RESTORE_STRETCH r0
-
- clr a ; success
- ret
-
-; Gets the count on the quadrature decoder chip
-; return the number of pulses (in 2-complement) since the last time
-; the counter was cleared
-; long encoder_get_count(void)
-encoder_get_count:
- LOAD24 #encoder_base ; get encoder address
-
- SET_STRETCH STRETCH
-
- ENTER_PCE_SPACE_AND_PUSH_STATE #0
- movx a,@dptr ; get count high byte
- mov r1,a ; form count value in R3:R2:R1:R0
-
- rlc a ; sign extension to 32 bits
- clr a ; r1 > 0 extend with 0s
- jnc encoder_posextend
- cpl a ; r1 < 0 extend with 1s
-encoder_posextend:
- mov r2,a ; form count value in R3:R2:R1:R0
- mov r3,a
-
- inc dptr
- movx a,@dptr ; get count low byte
- EXIT_PCE_SPACE_AND_POP_STATE
-
- RESTORE_STRETCH r0
-
- mov r0,a ; form count value in R3:R2:R1:R0
-
- mov dpl,a ; return count in b:dpx:dph:dpl
- mov dph,r1
-
- clr a ; sucess
-
- mov dpx,r2
- mov b,r3
-
- ret
-
-
-; Gets the count and clearsthe counter on the quadrature decoder chip
-; return the number of pulses (in 2-complement) since the last time
-; the counter was cleared
-; long encoder_get_count_and_clear()
-encoder_get_count_and_clear:
- LOAD24 #encoder_base ; get encoder address
-
- SET_STRETCH STRETCH
-
- ENTER_PCE_SPACE_AND_PUSH_STATE #0
- movx a,@dptr ; get count high byte
- mov r1,a ; form count value in R3:R2:R1:R0
-
- rlc a ; sign extension to 32 bits
- clr a ; r1 > 0 extend with 0s
- jnc encoder_posextend1
- cpl a ; r1 < 0 extend with 1s
-encoder_posextend1:
- mov r2,a ; form count value in R3:R2:R1:R0
- mov r3,a
-
- inc dptr
- movx a,@dptr ; get count low byte
- movx @dptr,a ; clear counter
- EXIT_PCE_SPACE_AND_POP_STATE
-
- RESTORE_STRETCH r0
-
- mov r0,a ; form count value in R3:R2:R1:R0
-
- mov dpl,a ; return count in b:dpx:dph:dpl
- mov dph,r1
-
- clr a ; sucess
-
- mov dpx,r2
- mov b,r3
-
- ret
-
- end
-
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Encoder Real Time Interface
- Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <tmath.h>
-
-#define _ENCODER_C
-#include <aicio.h>
-
-extern long encoder_pulses;
-extern float encoder_rad;
-extern int encoder_radok;
-
-static void encoder_setrad(void)
-{
- encoder_rad=2*M_PI/encoder_pulses;
- encoder_radok=1;
-}
-
-float encoder_read(void)
-{
- if(!encoder_radok) encoder_setrad();
- return (encoder_rad*encoder_get_count());
-}
-
-float encoder_read_and_clear(void)
-{
-
- if(!encoder_radok) encoder_setrad();
- return (encoder_rad*encoder_get_count_and_clear());
-}
+++ /dev/null
-;******************************************************************************
-;
-; Actuator Interface Card
-; Index Function
-; Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-;
-; 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 2 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, write to the Free Software
-; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-;
-; You can also obtain a copy of the GNU General Public License
-; at <http://www.gnu.org/licenses>.
-;
-;*******************************************************************************
-
-$include(tini.inc)
-$include(ds80c390.inc)
-$include(tinimacro.inc)
-
-$include(aicpld.inc)
-$include(aicmacro.inc)
-
-; data saved in big-endian mode
-; Index base address
-index_base: db 0,0,0
-
-; Initializes Index
-; void index_initialize(unsigned long base);
-index_initialize:
- mov r0,dpl ; parameter in b:dpx:dph:dpl
- mov r1,dph ; BUG IN SDCC MANUAL!
- mov r2,dpx
- mov r3,b
-
- mov dptr,#CONTROL ; compute index address
- lcall Add_Dptr1_24 ; dptr=dptr+R2:R1:R0
-
- STORE24 #index_base ; store index address
-
- clr a ; success
- ret
-
-; Reads the sync-switch
-; returns the sync-switch state
-; unsigned long index_read(void)
-index_read:
- LOAD24 #index_base ; get index address
-
- SET_STRETCH STRETCH
-
- ENTER_PCE_SPACE_AND_PUSH_STATE #0
- movx a,@dptr ; read index
- EXIT_PCE_SPACE_AND_POP_STATE
-
- RESTORE_STRETCH r0
-
- anl a,#01h
- mov dpl,a ; return value in b:dpx:dph:dpl
- clr a ; BUG IN SDCC MANUAL!
- mov dph,a
- mov dpx,a
- mov b,a
-
- ret
-
- end
-
+++ /dev/null
-;******************************************************************************
-;
-; Actuator Interface Card
-; Motor Real Time Interface
-; Global Variables
-; Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-;
-; 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 2 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, write to the Free Software
-; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-;
-; You can also obtain a copy of the GNU General Public License
-; at <http://www.gnu.org/licenses>.
-;
-;*******************************************************************************/
-
-
-motor_volt2duty: db 0,0,0,0
- end
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Motor Real Time Interface
- Copyright (C) 2005 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <tmath.h>
-
-#define _MOTOR_C
-#include <aicio.h>
-
-volatile float motor_volt2duty;
-
-void motor_globals(void) _naked
-{
- _asm
-motor_volt2duty: db 0,0,0,0
- _endasm;
-}
-
-void motor_initialize(unsigned long baseadd,float voltage,float freq)
-{
- unsigned int count;
-
- motor_volt2duty=0.5/voltage;
- count=((unsigned int) (REF_FREQ/freq)) & 0xffff;
- pwm_initialize(baseadd,MIN_COUNT,count);
- pwm_off();
-}
-
-void motor_finalize(void)
-{
- pwm_off();
-}
-
-void motor_on(void)
-{
- pwm_on();
-}
-
-void motor_off(void)
-{
- pwm_off();
-}
-
-float motor_set(float voltage)
-{
- unsigned long dutycycle;
-
- dutycycle=(((long)(voltage*motor_volt2duty*1000000.0))+500000);
- pwm_set_duty(dutycycle);
- return dutycycle;
-}
-
+++ /dev/null
-;******************************************************************************
-;
-; Actuator Interface Card
-; PWM Functions
-; Copyright (C) 2004, 2007 Walter Fetter Lages <w.fetter@ieee.org>
-; 2007 Diego Caberlon Santini <diegos@ece.ufrgs.br>
-;
-; 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 2 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, write to the Free Software
-; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-;
-; You can also obtain a copy of the GNU General Public License
-; at <http://www.gnu.org/licenses>.
-;
-;*******************************************************************************
-
-$include(tini.inc)
-$include(ds80c390.inc)
-$include(tinimacro.inc)
-
-$include(i8254.inc)
-$include(aicpld.inc)
-$include(aicmacro.inc)
-
-_bpx EQU 01Eh ; _bpx (frame pointer) mapped to R8_B3:R7_B3
-_ap EQU 01Dh ; _ap mapped to R6_B3
-
-; data saved in big-endian mode
-; PWM base address
-pwm_base: db 0,0,0
-
-; PWM frequency in cycles of 10MHz
-pwm_max_count: db 0,0
-
-; minimal value to load in PWM
-pwm_min_count: db 0,0
-
-; Control Register base address
-pwm_ctrl_base: db 0,0,0
-
-; Sets the frequency of PWM in cycles of 10MHz
-; void pwm_set_count(unsigned int count)
-pwm_set_count:
- mov r0,dpl ; parameter in dph:dpl
- mov r1,dph ; BUG IN SDCC MANUAL!
-
- LOAD24 #pwm_base ; get PWM address
-
- mov a,#CTRL_8254 ; compute control register address
- ADD_DPTR_0_A
-
- mov b,r0 ; save parameter LSB
-
- SET_STRETCH STRETCH
-
- ENTER_PCE_SPACE_AND_PUSH_STATE #0
- mov a,#RATE_BIN_8254 ; set timer 0 mode
- movx @dptr,a
-
- mov a,#ONE_SHOT_BIN_8254 ; set timer 1 mode
- orl a,#40h ; select timer 1
- movx @dptr,a
-
-; program timer 0 with count
-
- mov a,DPS ; point dptr to timer 0
- orl DPS,#0c0h ; avoids extern memory access
- inc dptr ; actualy decrement
- inc dptr ; due to DPS value
- inc dptr
- mov DPS,a
-
- mov a,b ; program timer 0 lsB
- movx @dptr,a
- mov r2,a ; save count lsB
-
- mov a,r1 ; program timer 0 msB
- movx @dptr,a
-
- EXIT_PCE_SPACE_AND_POP_STATE
-
- inc DPS ; save count
- mov dptr,#pwm_max_count
- movx @dptr,a ; store count msB
- inc dptr
- mov a,r2 ; store count lsB
- movx @dptr,a
- inc DPS
-
-; program timer 1 with count/2
-
-pwm_duty50: inc dptr ; point dptr to timer 1
-
- mov a,r1 ; compute count/2
- clr c
- rrc a
- mov r1,a
- mov a,b
- rrc a
-
- ENTER_PCE_SPACE_AND_PUSH_STATE #0
- movx @dptr,a ; program timer 1 lsB
- mov a,r1 ; program timer 1 msB
- movx @dptr,a
- EXIT_PCE_SPACE_AND_POP_STATE
-
- RESTORE_STRETCH r0
-
- clr a ; success
- ret
-
-; Initializes PWM
-; void pwm_initialize(unsigned long base,unsigned int min_count,unsigned int count);
-pwm_initialize:
- push _bpx ; SDCC style preface code
- push _bpx+1
- mov _bpx,sp
- mov _bpx+1,esp
- anl _bpx+1,#3
-
-
- mov r0,dpl ; parameter in b:dpx:dph:dpl
- mov r1,dph ; BUG IN SDCC MANUAL!
- mov r2,dpx
- mov r3,b
-
- push R0_B0
- push R1_B0
- push R2_B0
-
- mov dptr,#CONTROL ; compute Control address
- lcall Add_Dptr1_24 ; dptr=dptr+R2:R1:R0
-
- STORE24 #pwm_ctrl_base ; store Control register address
-
- pop R2_B0
- pop R1_B0
- pop R0_B0
-
- mov dptr,#PWM ; compute PWM address
- lcall Add_Dptr1_24 ; dptr=dptr+R2:R1:R0
-
- STORE24 #pwm_base ; store PWM address
-
- mov a,_bpx
- clr c
- subb a,#06 ; second parameter is base pointer-6
- mov b,a ; point dpx:dptr to it
- mov a,_bpx+1
- subb a,#0
- mov dpx,#40h
- mov dph,a
- mov dpl,b
-
- movx a,@dptr ; min_count LSB
- mov b,a
- inc dptr
- movx a,@dptr ; min_count MSB
-
- mov dptr,#pwm_min_count ; stores it
- movx @dptr,a
- inc dptr
- mov a,b
- movx @dptr,a
-
- mov a,_bpx
- clr c
- subb a,#8 ; third parameter is base pointer-8
- mov b,a ; point dpx:dptr to it
- mov a,_bpx+1
- subb a,#0
- mov dpx,#040h
- mov dph,a
- mov dpl,b
-
- movx a,@dptr ; store in dph:dpl
- inc dptr
- mov b,a
- movx a,@dptr
- mov dph,a
- mov dpl,b
-
- mov sp,_bpx ; SDCC style epilogue code
- mov esp,_bpx+1
- pop _bpx+1
- pop _bpx
- ; to fall over max count should be in dph:dpl
- ljmp pwm_set_count ; fall over to native_setCount
-
-
-; Finalizes PWM
-; void finalize(void)
-pwm_finalize:
- LOAD24 #pwm_base ; get pwm address
-
- inc DPS ; get count msB
- mov dptr,#pwm_max_count
- movx a,@dptr
- mov r1,a
- inc dptr ; get count lsB
- movx a,@dptr
- mov b,a
- inc DPS
-
- SET_STRETCH STRETCH
-
- ljmp pwm_duty50 ; fall over to native pwm_set_count
-
-
-; Sets the duty-cycle of PWM
-; unsigned long pwm_set_duty(unsigned long dutycycle)
-pwm_set_duty:
- mov r0,dpl ; parameter in b:dpx:dph:dpl
- mov r1,dph ; BUG IN SDCC MANUAL!
- mov r2,dpx
- mov r3,b
-
- mov a,r3 ; ensures R3:R2:R1:R0 >= 0
- jnb ACC.7,pwm_parmpos
-
- clr a ; forces R3:R2:R1:R0=0
- mov r3,a
- mov r2,a
- mov r1,a
- mov r0,a
- ljmp pwm_parmok
-
-pwm_parmpos: cjne r3,#00,pwm_parmabove ; ensures R3:R2:R1:R0 <= 1000000
- clr c
- mov a,r0 ; 1000000=0f4240h
- subb a,#40h
- mov a,r1
- subb a,#42h
- mov a,r2
- subb a,#0fh
- jc pwm_parmok
-
-pwm_parmabove: mov r3,#00h ; forces R3:R2:R1:R0=1000000
- mov r2,#0fh
- mov r1,#42h
- mov r0,#40h
-
-pwm_parmok:
-
- mov a,r0 ;R3:R2:R1:R0 >>4
- rr a ;R0 >> 4
- rr a
- rr a
- rr a
- anl a,#00Fh ;discard upper 4 bits
- mov r0,a
- mov a,r1 ;R1 >>4
- rr a
- rr a
- rr a
- rr a
- mov r1,a ;save R1 >> 4
- anl a,#0F0h ;discard lower 4 bits
- orl a,r0 ;sets 4 uppers bits in R0
- mov r0,a
- mov a,r1 ;gets R1 >> 4
- anl a,#00Fh ;discard upper 4 bits
- mov r1,a
- mov a,r2 ;R2 >> 4
- rr a
- rr a
- rr a
- rr a
- anl a,#0F0h ;discard lower 4 bits
- orl a,r1
- mov r1,a
-
- ;R1:R0*max_count
- mov dptr, #pwm_max_count ;load max_count in R5:R4
- movx a,@dptr
- mov r5,a
- inc dptr
- movx a,@dptr
- mov r4,a
-
- mov b,a ;R0*R4
- mov a,r0
- mul ab
-
- mov dpl,a ;LOW
- mov a,b ;HIGH
- mov dph,a
-
- mov a,r1 ;R1*R4
- mov b,a
- mov a,r4
- mul ab
-
- add a,dph ;LOW
- mov dph,a
- mov a,b ;HIGH
- addc a,#00 ;R4 is free
- mov dpx,a
-
- mov a,r0 ;R0*R5
- mov b,a
- mov a,r5
- mul ab
-
- add a,dph ;LOW
- mov dph,a
- mov a,dpx ;LOW+1
- addc a,b
- mov dpx,a
- clr a ;HIGH
- addc a,#00h
- mov r4,a ;R0 is free
-
- mov a,r1 ;R1*R5
- mov b,a
- mov a,r5
- mul ab
-
- add a,dpx ;LOW
- mov dpx,a
- mov a,r4 ;HIGH
- addc a,b
- mov b,a ;discard upper bits
-
- mov r0,dpl
- mov r1,dph
- mov r2,dpx
- mov r3,b
-
- ;R3:R2:R1:R0/(1000000/16) 1000000/16=F424h
- ;c -> dpx
- ;x -> r3:r2:r1:r0
- ;y -> dph:dpl = 0xF424
- ;reste -> r7:r6:r5:r4
- ;count -> pilha 1
-
-
- mov a,r7
- push acc
- mov a,r6
- push acc
- clr a ;c=0
- mov dpx,a
- mov dph,#0F4h ;y=0xF424
- mov dpl,#024h
- mov r7,#000h ;reste=0
- mov r6,#000h
- mov r5,#000h
- mov r4,#000h
- mov a,#20h ;count=32
- push acc
-
-pwm_divloop:
- mov a,r3 ;c = ((x >> (8*sizeof(x)-1)) & 1)
- rl a
- anl a,#1
- mov dpx,a
-
- clr c ;x = x << 1;
- mov a,r0
- rlc a
- mov r0,a
- mov a,r1
- rlc a
- mov r1,a
- mov a,r2
- rlc a
- mov r2,a
- mov a,r3
- rlc a
- mov r3,a
- clr c
-
- ;reste <<= 1
- mov a,r4
- rlc a
- mov r4,a
- mov a,r5
- rlc a
- mov r5,a
- mov a,r6
- rlc a
- mov r6,a
- mov a,r7
- rlc a
- mov r7,a
- clr c
-
-
- mov a,dpx ;if (c)
- jz pwn_div_ninc_teste
- mov a,r4
- orl a,#001h ;reste|=1L
- mov r4,a
-
-pwn_div_ninc_teste: ;if (reste >= y)
- mov a,r7
- jnz pwm_div_y_menor_igual
- mov a,r6
- jnz pwm_div_y_menor_igual
- mov a,r5
- cjne a,dph,pwm_div_testa_maior
- mov a,r4
- cjne a,dpl,pwm_div_testa_maior
- clr c
-
-pwm_div_testa_maior:
- jnc pwm_div_y_menor_igual
- ljmp pwm_div_loop_end
-
-pwm_div_y_menor_igual:
- mov a,r4 ;reste -= y;
- clr c
- subb a,dpl
- mov r4,a
- mov a,r5
- subb a,dph
- mov r5,a
- mov a,r6
- subb a,#00h
- mov r6,a
- mov a,r7
- subb a,#00h
- mov r7,a
-
- mov a,r0 ;x |= 1L;
- orl a,#001h
- mov r0,a
-
-pwm_div_loop_end: ;while (--count)
- pop acc
- dec a
- push acc
- jnz pwm_divloop
-
- pop acc
- pop acc
- mov r6,a
- pop acc
- mov r7,a
-
- mov dptr, #pwm_max_count ;load max_count in R5:R4
- movx a,@dptr
- mov r5,a
- inc dptr
- movx a,@dptr
- mov r4,a
-
- clr c ; computes count
-
- mov a,r4
- subb a,r0
- mov r0,a
- mov a,r5
-
- subb a,r1
- mov r1,a
-
- mov dptr,#pwm_min_count ; check if count < min_count
- movx a,@dptr
- mov r3,a
- inc dptr
- movx a,@dptr
- mov r2,a
-
- clr c
- mov a,r0
- subb a,r2
- mov a,r1
- subb a,r3
- jnc pwm_countabove
- mov r0,R2_B0
- mov r1,R3_B0
- ljmp pwm_countok
-
-
-pwm_countabove: clr c ; check if count > max_count-min_count
-
- mov a,r4 ; computes max_count - min_count
- mov a,r4
- subb a,r2
- mov r2,a
- mov a,r5
- subb a,r3
- mov r3,a
-
- clr c
- mov a,r0
- subb a,r2
- mov a,r1
- subb a,r3
- jc pwm_countok
- mov r0,R2_B0
- mov r1,R3_B0
-
-pwm_countok:
-
- LOAD24 #pwm_base ; get PWM address
-
- mov a,#TIMER1_8254 ; compute timer 1 address
- ADD_DPTR_0_A
-
- mov b,r0 ; save count LSB
-
- SET_STRETCH STRETCH
-
- ENTER_PCE_SPACE_AND_PUSH_STATE #0
- mov a,b
- movx @dptr,a ; program timer 1 lsB
- mov a,r1 ; program timer 1 msB
- movx @dptr,a
- EXIT_PCE_SPACE_AND_POP_STATE
-
- RESTORE_STRETCH r0 ; restore original stretch value
-
- mov dpl,b ; return count in b:dbx:dph:dpl
- mov dph,r1
-
- clr a
-
- mov dpx,a
- mov b,a
-
- ret
-
-
-
-; Turns the PWM on
-; void pwm_on(void)
-pwm_on:
- LOAD24 #pwm_ctrl_base ; get control register address
-
- SET_STRETCH STRETCH
-
- ENTER_PCE_SPACE_AND_PUSH_STATE #0
- mov a,#PWMENABLE ; enable PWM
- movx @dptr,a
- EXIT_PCE_SPACE_AND_POP_STATE
-
- RESTORE_STRETCH r0
-
- clr a ; success
- ret
-
-; Turns the PWM off
-; void pwm_off(void)
-pwm_off:
- LOAD24 #pwm_ctrl_base ; get control register address
-
- SET_STRETCH STRETCH
-
- ENTER_PCE_SPACE_AND_PUSH_STATE #0
- mov a,#PWMDISABLE ; disable PWM
- movx @dptr,a
- EXIT_PCE_SPACE_AND_POP_STATE
-
- RESTORE_STRETCH r0
-
- clr a ; success
- ret
-
- end
-
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card Simulator
- Copyright (C) 2003, 2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <errno.h>
-#include <iostream>
-using namespace std;
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <aicnet.h>
-#include <aicsim.h>
-
-AIC_SIM::AIC_SIM(void)
-:AIC(this)
-{
- count=0;
-}
-
-int AIC_SIM::get_status(int status,...)
-{
- switch(status)
- {
- case AIC_STATUS:
- {
- va_list ap;
-
- va_start(ap,status);
- double *disp=va_arg(ap,double *);
- *disp=count*0.5;
-
- int *index=va_arg(ap,int *);
- *index=(count % 4 == 0)? AIC_INDEX_ON:0;
-
- va_end(ap);
-
- break;
- }
- }
- count++;
- return status;
-}
-
-void AIC_SIM::send_command(int command,...)
-{
- switch(command)
- {
- case AIC_MOTOR_ON:
- {
- cout << "AIC Motor ON\t";
- break;
- }
- case AIC_MOTOR_OFF:
- {
- cout << "AIC Motor OFF\t";
- break;
- }
- case AIC_BRAKE_RELEASE:
- {
- cout << "AIC Brake RELEASED\t";
- break;
- }
- case AIC_BRAKE_APPLY:
- {
- cout << "AIC Brake APPLIED\t";
- break;
- }
- case AIC_MOTOR_ACT:
- {
- va_list ap;
- va_start(ap,command);
- double volt=va_arg(ap,double);
- va_end(ap);
- cout << "AIC Motor Voltage=" << volt << "V\t";
- break;
- }
- case AIC_RESET:
- {
- count=0;
- cout << "AIC Reset\t";
- break;
- }
- default:
- {
-#ifdef DEBUG
- cerr << "Command " << command << " unknown by AIC_SIM\n";
-#endif
- throw BAD_COMMAND();
- }
- }
-}
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Host Interface Library
- UDP Communication
- Copyright (C) 2003, 2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-#include <iostream>
-using namespace std;
-
-#include <arpa/inet.h>
-#include <errno.h>
-#include <netdb.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/socket.h>
-
-#include <aicudp.h>
-
-
-AIC_UDP::AIC_UDP(const char *aicname,int statport,int cmdport)
-:AIC(this)
-{
- struct hostent *aicend=gethostbyname(aicname);
-
- struct in_addr *ptr=(struct in_addr *)aicend->h_addr;
- if(ptr==NULL)
- {
-#ifdef DEBUG
- cerr << "AIC_UDP::AIC_UDP error: "
- << strerror(errno) << "\n";
-#endif
- throw BAD_SOCKET();
- }
-
- bzero(&cmdaddr,sizeof(cmdaddr));
- cmdaddr.sin_family=AF_INET;
- cmdaddr.sin_port=htons(cmdport);
- memcpy(&cmdaddr.sin_addr,ptr,sizeof(struct in_addr));
-
- if((cmdfd=socket(AF_INET,SOCK_DGRAM,0)) < 0)
- {
-#ifdef DEBUG
- cerr << "AIC_UDP::AIC_UDP error: "
- << strerror(errno) << "\n";
-#endif
- throw BAD_SOCKET();
- }
-
- bzero(&stataddr,sizeof(stataddr));
- stataddr.sin_family=AF_INET;
- stataddr.sin_addr.s_addr=htonl(INADDR_ANY);
- stataddr.sin_port=htons(statport);
-
- if((statfd=socket(AF_INET,SOCK_DGRAM,0)) < 0)
- {
-#ifdef DEBUG
- cerr << "AIC_UDP::AIC_UDP error: "
- << strerror(errno) << "\n";
-#endif
- throw BAD_SOCKET();
- }
- if((bind(statfd,(struct sockaddr *) &stataddr,sizeof(stataddr))) < 0)
- {
-#ifdef DEBUG
- cerr << "AIC_UDP::AIC_UDP error: "
- << strerror(errno) << "\n";
-#endif
- throw BAD_BIND();
- }
-}
-
-
-AIC_UDP::~AIC_UDP(void)
-{
- shutdown(cmdfd,SHUT_RDWR);
- shutdown(statfd,SHUT_RDWR);
-}
-
-int AIC_UDP::get_status(int status,...)
-{
- char buff[32];
- int count;
-
- socklen_t statlen=sizeof(stataddr);
-
- if((count=recvfrom(statfd,buff,32,0,(struct sockaddr *) &stataddr,&statlen)) <= 0)
- {
-#ifdef DEBUG
- cerr << "AIC_UDP::get_status error: "
- << strerror(errno) << "\n";
-#endif
- throw BAD_RECEIVE();
- }
-
- int cmd=buff[0];
-
- switch(cmd)
- {
- case AIC_STATUS:
- {
- if((count != 13) && (count != 9))
- {
-#ifdef DEBUG
- cerr << "AIC_UDP::get_status error: count = "
- << count << "\n";
-#endif
- throw BAD_RECEIVE();
- }
-
- va_list ap;
- va_start(ap,status);
- double *disp=va_arg(ap,double *);
- if(count == 9)
- {
- int d=0;
- for(int i=0;i < 4;i++) *(((unsigned char *)d)+i)=buff[3-i+1];
- *disp=d;
- }
- else for(int i=0;i < 8;i++) *(((unsigned char *)disp)+i)=buff[7-i+1];
-
- int *index=va_arg(ap,int *);
- for(int i=0;i < 4;i++) *(((unsigned char *)index)+i)=buff[3-i+9];
- va_end(ap);
- break;
- }
- }
-
- return cmd;
-}
-
-void AIC_UDP::send_command(int command,...)
-{
- char buff[32];
- int len=0;
-
- buff[len++]=command;
-
- switch(command)
- {
- case AIC_MOTOR_ON:
- case AIC_MOTOR_OFF:
- case AIC_BRAKE_APPLY:
- case AIC_BRAKE_RELEASE:
- case AIC_RESET:
- {
- break;
- }
- case AIC_MOTOR_ACT:
- {
- va_list ap;
- va_start(ap,command);
- double volt=va_arg(ap,double);
- va_end(ap);
- for(int i=0;i < 8;i++) buff[7-i+len]= *((char *) &volt + i);
- len+=8;
- break;
- }
- case AIC_MOTOR_REF:
- {
- va_list ap;
- va_start(ap,command);
- double ref=va_arg(ap,double);
- va_end(ap);
- for(int i=0;i < 8;i++) buff[7-i+len]= *((char *) &ref + i);
- len+=8;
- break;
- }
- case AIC_USER0:
- case AIC_USER1:
- case AIC_USER2:
- case AIC_USER3:
- {
- va_list ap;
- va_start(ap,command);
- int n=va_arg(ap,int);
- char *ptr;
- if(n > 0)
- {
- ptr=va_arg(ap,char *);
- for(int i=0;i < n;i++) buff[len++]=ptr[i];
- }
- va_end(ap);
- if(n > 31) throw BAD_SEND();
-
- break;
- }
- default: throw BAD_SEND();
- }
-
- if(sendto(cmdfd,buff,len,0,(struct sockaddr *) &cmdaddr,sizeof(cmdaddr)) < 0)
- {
-#ifdef DEBUG
- cerr << "AIC_UDP::send_command error: "
- << strerror(errno) << "\n";
-#endif
- throw BAD_SEND();
- }
-}
--- /dev/null
+/******************************************************************************
+
+ Actuator Interface Card
+ Rotation Buffer
+ Copyright (C) 2008 Diego Caberlon Santini <diegos@ece.ufrgs.br>
+
+ 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 2 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, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ You can also obtain a copy of the GNU General Public License
+ at <http://www.gnu.org/licenses>.
+
+*******************************************************************************
+2008.06.13 -> Start by Diego Caberlon Santini
+*/
+#include <p30f4012.h>
+
+#include "buffer.h"
+
+void buffer_init(buffer_info_t *buffer_ptr)
+{
+ buffer_ptr->ptr_base=buffer_ptr->buffer;
+ buffer_ptr->ptr_in=buffer_ptr->buffer;
+ buffer_ptr->ptr_out=buffer_ptr->buffer;
+ buffer_ptr->count=0;
+}
+
+int buffer_put(buffer_info_t *buffer_ptr, char data)
+{
+ if(buffer_ptr->count == BUFFER_SIZE)
+ return -1;
+
+ *(buffer_ptr->ptr_in)=data;
+ buffer_ptr->count++;
+ buffer_ptr->ptr_in++;
+
+ if(buffer_ptr->ptr_in==buffer_ptr->ptr_base+BUFFER_SIZE)
+ buffer_ptr->ptr_in=buffer_ptr->buffer;
+
+ return 0;
+}
+
+int buffer_get(buffer_info_t *buffer_ptr, char *data)
+{
+ if(buffer_ptr->count == 0)
+ return -1;
+
+ *data=*(buffer_ptr->ptr_out);
+ buffer_ptr->count--;
+ buffer_ptr->ptr_out++;
+
+ if(buffer_ptr->ptr_out==buffer_ptr->ptr_base+BUFFER_SIZE)
+ buffer_ptr->ptr_out=buffer_ptr->buffer;
+
+ return 0;
+}
+
+void buffer_end(buffer_info_t *buffer_ptr)
+{
+}
--- /dev/null
+/******************************************************************************\r
+\r
+ Actuator Interface Card\r
+ Serial Transmit\r
+ Copyright (C) 2008 Diego Caberlon Santini <diegos@ece.ufrgs.br>\r
+\r
+ This program is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ This program is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with this program; if not, write to the Free Software\r
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
+\r
+ You can also obtain a copy of the GNU General Public License\r
+ at <http://www.gnu.org/licenses>.\r
+\r
+*******************************************************************************\r
+2008.06.13 -> Start by Diego Caberlon Santini, for now it is just transmission\r
+ */\r
+\r
+#include <p30f4012.h>\r
+\r
+#include "serial.h"\r
+\r
+/*---------------------------------------------------------------------------*/\r
+void __attribute__((interrupt,auto_psv)) _U1TXInterrupt(void) \r
+{\r
+ char data='\n';\r
+ \r
+ /*put in FIFO while it is not full*/\r
+ while((!U1STAbits.UTXBF) && (serial_buffer.count!=0))\r
+ {\r
+ buffer_get(&serial_buffer,&data);\r
+ U1TXREG=data;\r
+ }\r
+ \r
+ _U1TXIF = 0; //Clear Interrupt Flag\r
+}\r
+\r
+/*---------------------------------------------------------------------------*/\r
+void serial_init()\r
+{\r
+ buffer_init(&serial_buffer);\r
+ \r
+ //step 1 from dsPIC30F reference\r
+ U1BRG=77; /*UART freq is Fcy/(16*(BRG+1)) = 19230Hz*/\r
+\r
+ //step2\r
+ /*config UART MODE*/\r
+ U1MODE&=~(0x07);\r
+ U1MODE|=(0x400);\r
+ \r
+ //step3 \r
+ _U1TXIE=1; /*request interrup*/\r
+ _U1TXIP=1; /*low priority*/\r
+ U1STA|=(0x8000);\r
+ \r
+ //step4\r
+ U1MODE|=(0x8000);\r
+ \r
+ //step5\r
+ U1STA|=(0x0400);\r
+\r
+}\r
+\r
+/*---------------------------------------------------------------------------*/\r
+int serial_write(char *data, int size)\r
+{\r
+ char aux;\r
+ int i;\r
+ \r
+ if(size>SERIAL_SIZE)\r
+ return -1;\r
+ \r
+ for(i=0;i<size;i++)\r
+ if((buffer_put(&serial_buffer,data[i])==-1))\r
+ return -1;\r
+ \r
+ /*if TRMT is empty, put data in it, otherwise interrupt will do it!*/\r
+ if(U1STAbits.TRMT){\r
+ if((buffer_get(&serial_buffer,&aux))!=-1)\r
+ U1TXREG=aux;\r
+ }\r
+ \r
+ return 0;\r
+}\r
+\r
+/*---------------------------------------------------------------------------*/\r
+void serial_end(void)\r
+{\r
+ U1MODE&=~(0x8000); //control is back to TRISTATE\r
+}\r
+\r
+/*---------------------------------------------------------------------------*/\r
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Sputtering Controller Host Interface Library
- Copyright (C) 2007 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <unistd.h>
-#include <sputtering.h>
-
-void *get_status(void *arg)
-{
- double disp;
- int index;
-
-
- SPUTTERING *sputtering=(SPUTTERING *) arg;
-
- while(sputtering->run)
- {
- disp=sputtering->encoder.read(&index);
- usleep(500000);
- }
- pthread_exit(0);
-}
-
-SPUTTERING::SPUTTERING(const char *name,int statusport):
-AIC_UDP(name,statusport),
-SHUTTER(AIC_USER0)
-{
- run=1;
- pthread_create(&get_status_th,NULL,&::get_status,this);
-}
-
-SPUTTERING::~SPUTTERING(void)
-{
- run=0;
- pthread_join(get_status_th,NULL);
-}
-
-void SPUTTERING::reset(void)
-{
- while(busy());
- AIC::reset();
-}
-
-void SPUTTERING::reference(double ref)
-{
- while(busy());
- AIC::reference(ref);
-}
-
-void SPUTTERING::shutter(unsigned int us)
-{
- while(busy());
- send_command(SHUTTER,sizeof(us),&us);
-}
+++ /dev/null
-ASMINC:=../${ASMINC}
-TINIINC=${ASMINC}/tini.inc ${ASMINC}/tinimacro.inc ${ASMINC}/ds80c390.inc ${ASMINC}/apiequ.inc
-
-SDCCINCLUDE+= -I../../include
-export SDCCCMPFLAGS=${SDCCFLAGS} ${SDCCINCLUDE}
-
-all: brake.mpp index.mpp encoder.mpp pwm.mpp sputtering.mpp
-
-${ASMINC}/tini.inc: ${NATINC}/tini.inc
- ln -s ${NATINC}/tini.inc ${ASMINC}/tini.inc
-
-${ASMINC}/tinimacro.inc: ${NATINC}/tinimacro.inc
- ln -s ${NATINC}/tinimacro.inc ${ASMINC}/tinimacro.inc
-
-${ASMINC}/ds80c390.inc: ${NATINC}/ds80c390.inc
- ln -s ${NATINC}/ds80c390.inc ${ASMINC}/ds80c390.inc
-
-${ASMINC}/apiequ.inc: ${NATINC}/apiequ.inc
- ln -s ${NATINC}/apiequ.inc ${ASMINC}/apiequ.inc
-
-brake.mpp: brake.a51 ${TINIINC}
- ${ASMMACRO} -I${ASMINC} -e- brake.a51
-
-index.mpp: index.a51 ${TINIINC}
- ${ASMMACRO} -I${ASMINC} -e- index.a51
-
-encoder.mpp: encoder.a51 ${TINIINC}
- ${ASMMACRO} -I${ASMINC} -e- encoder.a51
-
-pwm.mpp: pwm.a51 ${TINIINC}
- ${ASMMACRO} -I${ASMINC} -e- pwm.a51
-
-sputtering.mpp: sputtering.a51
- ${ASMMACRO} -I${ASMINC} -e- sputtering.a51
-
-sputtering.a51: sputtering.c
- ${SDCC} ${SDCCCMPFLAGS} sputtering.c
-
-install:
-
-clean:
- rm -rf *.o *~ *.bak *.class ../include/{*.bak,*~} br *.tlib *.mpp ${TINIINC} *.lst sputtering.a51
-
-distclean: clean
- rm -rf AIC.jar *.a
-
-uninstall:
+++ /dev/null
-;******************************************************************************
-;
-; Actuator Interface Card
-; Brake Native Methods
-; Copyright (C) 2004, 2005 Walter Fetter Lages <w.fetter@ieee.org>
-;
-; 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 2 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, write to the Free Software
-; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-;
-; You can also obtain a copy of the GNU General Public License
-; at <http://www.gnu.org/licenses>.
-;
-;*******************************************************************************
-
-$include(tini.inc)
-$include(ds80c390.inc)
-$include(tinimacro.inc)
-
-$include(aicpld.inc)
-$include(aicmacro.inc)
-
-; Native library initialization routine
-; This routine must exist
-; This routine must be at offset 0
-; If -f and -p options are used, a390 relocates this routine
-; to another offset
-; Label is meaningless and is not used by Java Sytem.LoadLibrary()
-lib_init:
- clr a ; success
- ret
-
-; Initializes Brake
-; private static native void initialize(int base);
-native_initialize:
- clr a
- lcall Natlib_LoadPrimitive ; get parameter in R3:R2:R1:R0
-
- mov b,r3 ; SDCC parameters in b:dpx:dph:dpl
- mov dpx,r2 ; BUG IN SDCC MANUAL!
- mov dph,r1
- mov dpl,r0
-
- lcall brake_initialize
-
- clr a ; success
- ret
-
-; Applies the electromagnetic brakes
-; public static native void apply()
-native_apply:
-
- lcall brake_apply
-
- clr a ; success
- ret
-
-; Releases the electromagnetic brake
-; public static native void release()
-native_release:
-
- lcall brake_release
-
- clr a ; success
- ret
-
- end
+++ /dev/null
-;******************************************************************************
-;
-; Actuator Interface Card
-; Encoder Native Methods
-; Copyright (C) 2004, 2005 Walter Fetter Lages <w.fetter@ieee.org>
-;
-; 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 2 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, write to the Free Software
-; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-;
-; You can also obtain a copy of the GNU General Public License
-; at <http://www.gnu.org/licenses>.
-;
-;*******************************************************************************
-
-$include(tini.inc)
-$include(ds80c390.inc)
-$include(tinimacro.inc)
-
-$include(aicpld.inc)
-$include(aicmacro.inc)
-
-; Native library initialization routine
-; This routine must exist
-; This routine must be at offset 0
-; If -f and -p options are used, a390 relocates this routine
-; to another offset
-; Label is meaningless and is not used by Java Sytem.LoadLibrary()
-lib_init:
- clr a ; success
- ret
-
-; Initializes Encoder
-; private static native void initialize(int base);
-native_initialize:
- clr a
-
- lcall Natlib_LoadPrimitive ; get parameter in R3:R2:R1:R0
-
- mov b,r3 ; SDCC parameter in b:dpx:dph:dpl
- mov dpx,r2 ; BUG IN SDCC MANUAL!
- mov dph,r1
- mov dpl,r0
-
-
- lcall encoder_initialize
-
- clr a ; sucess
- ret
-
-
-; Finalizes Encoder
-; public native void finalize()
-native_finalize:
- lcall encoder_finalize
-
- clr a ; success
- ret
-
-; Clears the counter on the quadrature decoder chip
-; public void clear()
-native_clear:
- lcall encoder_clear
-
- clr a ; success
- ret
-
-; Gets the count on the quadrature decoder chip
-; return the number of pulses (in 2-complement) since the last time
-; the counter was cleared
-; public static native int getCount()
-native_getCount:
- lcall encoder_get_count ; SDCC returns value in b:dpx:dph:dpl
-
- mov r0,dpl ; java native return value in R3:R2:R1:R0
- mov r1,dph
- mov r2,dpx
- mov r3,b
-
- clr a ; sucess
- ret
-
-
-; Gets the count and clears the counter on the quadrature decoder chip
-; return the number of pulses (in 2-complement) since the last time
-; the counter was cleared
-; public static native int getCountAndClear()
-native_getCountAndClear:
- lcall encoder_get_count_and_clear ; SDCC returns value in b:dpx:dph:dpl
-
- mov r0,dpl ; java native return value in R3:R2:R1:R0
- mov r1,dph
- mov r2,dpx
- mov r3,b
-
- clr a ; sucess
- ret
-
- end
-
+++ /dev/null
-;******************************************************************************
-;
-; Actuator Interface Card
-; Index Native Methods
-; Copyright (C) 2004, 2005 Walter Fetter Lages <w.fetter@ieee.org>
-;
-; 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 2 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, write to the Free Software
-; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-;
-; You can also obtain a copy of the GNU General Public License
-; at <http://www.gnu.org/licenses>.
-;
-;*******************************************************************************
-
-$include(tini.inc)
-$include(ds80c390.inc)
-$include(tinimacro.inc)
-
-$include(aicpld.inc)
-$include(aicmacro.inc)
-
-; Native library initialization routine
-; This routine must exist
-; This routine must be at offset 0
-; If -f and -p options are used, a390 relocates this routine
-; to another offset
-; Label is meaningless and is not used by Java Sytem.LoadLibrary()
-lib_init:
- clr a ; success
- ret
-
-
-; Initializes Index
-; private static final native void initialize(int base);
-native_initialize:
- clr a
- lcall Natlib_LoadPrimitive ; get parameter in R3:R2:R1:R0
-
- mov b,r3 ; SDCC parameters in b:dpx:dph:dpl
- mov dpx,r2 ; BUG IN SDCC MANUAL!
- mov dph,r1
- mov dpl,r0
-
- lcall index_initialize
-
- clr a ; success
- ret
-
-; Reads the sync-switch
-; returns the sync-switch state
-; public static native boolean read()
-native_read:
- lcall index_read ; SDCC returns value in b:dpx:dph:dpl
-
- mov r0,dpl ; java native return value in R3:R2:R1:R0
- mov r1,dph
- mov r2,dpx
- mov r3,b
-
- clr a ; sucess
- ret
-
- end
-
+++ /dev/null
-;******************************************************************************
-;
-; Actuator Interface Card
-; PWM Native Methods
-; Copyright (C) 2004, 2005 Walter Fetter Lages <w.fetter@ieee.org>
-;
-; 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 2 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, write to the Free Software
-; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-;
-; You can also obtain a copy of the GNU General Public License
-; at <http://www.gnu.org/licenses>.
-;
-;*******************************************************************************
-
-$include(tini.inc)
-$include(ds80c390.inc)
-$include(tinimacro.inc)
-
-$include(i8254.inc)
-$include(aicpld.inc)
-$include(aicmacro.inc)
-
-; Native library initialization routine
-; This routine must exist
-; This routine must be at offset 0
-; If -f and -p options are used, a390 relocates this routine
-; to another offset
-; Label is meaningless and is not used by Java Sytem.LoadLibrary()
-lib_init:
- clr a ; success
- ret
-
-; Sets the frequency of PWM in cycles of 10MHz
-; public static native void setCount(int count)
-native_setCount:
- clr a
- lcall Natlib_LoadPrimitive ; get parameter in R3:R2:R1:R0
- ; only the lower 16 bits are usefull
-
- mov dph,r1 ; SDCC parameter in dph:dpl
- mov dpl,r0 ; BUG IN SDCC MANUAL!
-
- lcall pwm_set_count
-
- clr a ; success
- ret
-
-; Initializes PWM
-; private static native void initialize(int base,int min_count,int count);
-native_initialize:
- mov a,#2h
- lcall Natlib_LoadPrimitive ; get third parameter in R3:R2:R1:R0
-
- push R0_B0
- push R1_B0
-
- mov a,#1h
- lcall Natlib_LoadPrimitive ; get second parameter in R3:R2:R1:R0
-
- push R0_B0
- push R1_B0
-
- clr a
- lcall Natlib_LoadPrimitive ; get first parameter in R3:R2:R1:R0
-
- mov b,r3 ; SDCC parameter in b:dpx:dph:dpl
- mov dpx,r2 ; BUG IN SDCC MANUAL!
- mov dph,r1
- mov dpl,r0
-
-
- lcall pwm_initialize
-
- pop ACC ; fix-up stack
- pop ACC
- pop ACC
- pop ACC
-
- clr a ; sucess
- ret
-
-
-; Finalizes PWM
-; public native void finalize()
-native_finalize:
- lcall pwm_finalize
-
- clr a ; sucess
- ret
-
-; Sets the duty-cycle of PWM
-; public static native int setDuty(int dutycycle)
-native_setDuty:
- clr a
- lcall Natlib_LoadPrimitive ; get parameter in R3:R2:R1:R0
-
- mov b,r3 ; SDCC parameter in b:dpx:dph:dpl
- mov dpx,r2 ; BUG IN SDCC MANUAL!
- mov dph,r1
- mov dpl,r0
-
- lcall pwm_set_duty ; SDCC returns value in dph:dpl
-
- mov r0,dpl ; java native return value in R3:R2:R1:R0
- mov r1,dph
- mov r2,dpx
- mov r3,b
-
- clr a ; sucess
- ret
-
-
-; Turns the PWM on
-; public static native void on()
-
-native_on:
- lcall pwm_on
-
- clr a ; sucess
- ret
-
-; Turns the PWM off
-; public static native void off()
-native_off:
- lcall pwm_off
-
- clr a ; sucess
- ret
-
- end
-
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- Sputtering Real Time Module
- Copyright (C) 2007 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <rtai_sched.h>
-#include <pthread.h>
-
-#include <tmath.h>
-
-#include <aicio.h>
-
-#define BASE 0x800000
-
-#define Kp 0.5
-#define Ki 0.000005
-#define Kd 0.00
-
-#define MIN_U -12.0
-#define MAX_U 12.0
-
-#define DEAD_Z 1.0
-
-#define TOL 0.005
-
-static pthread_t pid_th;
-static pthread_t shutter_th;
-static float u;
-static float y;
-static float ref;
-static float e1;
-static float i;
-static long time_count;
-static long time_ref;
-static unsigned char lock;
-
-static void pid_dummy(void) _naked
-{
- _asm
-pid_th: db 0,0,0,0
-shutter_th: db 0,0,0,0
-u: db 0,0,0,0
-y: db 0,0,0,0
-ref: db 0,0,0,0
-e1: db 0,0,0,0
-i: db 0,0,0,0
-time_count: db 0,0,0,0
-time_ref: db 0,0,0,0
-lock: db 0
- _endasm;
-}
-
-/* By now this is not actually a thread as it should be,
- but a function that is called at each timer interrupt */
-void *shutter(void *arg)
-{
- time_count++;
- if(time_count >= time_ref) brake_apply();
-
- return NULL;
-}
-
-/* By now this is not actually a thread as it should be,
- but a function that is called at each timer interrupt */
-void *pid(void *arg)
-{
- float e;
-
- time_count++;
-
- y+=encoder_read_and_clear();
-
- e=ref-y;
-
- i+=Ki*e;
-
- u=Kp*e + i + Kd*(e-e1);
-
- if(u < -TOL) u-=DEAD_Z;
- if(u > TOL) u+=DEAD_Z;
-
- if(u < MIN_U) u=MIN_U;
- if(u > MAX_U) u=MAX_U;
-
- motor_set(u);
-
- e1=e;
-
- return NULL;
-}
-
-
-/* public static native int pidRealtime(int period) */
-long Native_pidStartRealtime(void) _JavaNative
-{
- long period;
- RTIME count;
-
- period = NatLib_LoadInt(0);
- count=micro2count(period);
- start_rt_timer(count);
- pthread_create(&pid_th,NULL,pid,NULL);
-
- time_count=0;
-
- _asm
- clr a
- _endasm;
-
- return period;
-}
-
-/* public static native void pidStopRealtime() */
-void Native_pidStopRealtime(void) _JavaNative
-{
- motor_set(0.0);
-
- pthread_cancel(pid_th);
- stop_rt_timer();
-
- _asm
- clr a
- _endasm;
-}
-
-/* public static native int shutterStartRealtime(int period) */
-long Native_shutterStartRealtime(void) _JavaNative
-{
- long period;
- RTIME count;
-
- period = NatLib_LoadInt(0);
- count=micro2count(period);
- start_rt_timer(count);
- pthread_create(&shutter_th,NULL,shutter,NULL);
-
- time_count=0;
-
- brake_release();
-
- _asm
- clr a
- _endasm;
-
- return period;
-}
-
-/* public static native void shutterStopRealtime() */
-void Native_shutterStopRealtime(void) _JavaNative
-{
-
- pthread_cancel(shutter_th);
- stop_rt_timer();
-
- _asm
- clr a
- _endasm;
-}
-
-
-/* public static native float getOutput() */
-float Native_getOutput(void) _JavaNative
-{
- return y;
-}
-
-long Native_getTime(void) _JavaNative
-{
- return time_count;
-}
-
-long Native_getIndex(void) _JavaNative
-{
- return index_read();
-}
-
-void Native_findHome(void) _JavaNative
-{
- motor_set(2.5);
- while(!(index_read()));
-
- if(index_read()) motor_set(-1.25);
-
- while(!(index_read()));
-
- if(index_read()) motor_set(1.25);
-
- while(!(index_read()));
-
- motor_set(0.0);
-
- encoder_read_and_clear();
-
- y=0;
-
- _asm
- clr a
- _endasm;
-}
-
-void Native_initialize(void) _JavaNative
-{
- aic_initialize(BASE,12.0,20e3,4*2048);
- aic_on();
- motor_set(0.0);
- y=0;
- lock=1;
-
- _asm
- clr a
- _endasm;
-}
-
-void Native_finalize(void) _JavaNative
-{
- aic_off();
-
- aic_finalize();
-
- _asm
- clr a
- _endasm;
-}
-
-
-/* public static native void setReference(float reference) */
-void Native_setReference(void) _JavaNative
-{
- /*
- volatile long ref =NatLib_LoadInt(0);
- ref=*((float *) &ref);
- */
-
- _asm
- clr a
- lcall Natlib_LoadPrimitive ; get parameter in R3:R2:R1:R0
- mov dptr,#ref
- mov a,r0
- movx @dptr,a
- inc dptr
- mov a,r1
- movx @dptr,a
- inc dptr
- mov a,r2
- movx @dptr,a
- inc dptr
- mov a,r3
- movx @dptr,a
- clr a
- _endasm;
-}
-
-
-/* public static native void openShutter(int timeRef) */
-void Native_openShutter(void) _JavaNative
-{
- time_ref = NatLib_LoadInt(0);
-
- _asm
- clr a
- _endasm;
-}
-
-unsigned char Native_lock(void) _JavaNative
-{
- _asm
- mov dptr,#lock
- movx a,@dptr
- djnz ACC,L070185DIE
- movx @dptr,a
- mov r0,#0FFh
- mov r1,#00h
- mov r2,#00h
- mov r3,#00h
- ret
-L070185DIE:
- inc a;
- movx @dptr,a
- clr a;
- _endasm;
- return 0x00;
-}
-
-void Native_unlock(void) _JavaNative
-{
- _asm
- mov dptr,#lock
- movx a,@dptr
- inc a
- movx @dptr,a
- clr a;
- _endasm;
-}
+++ /dev/null
-all: motortst
-
-motortst: motortst.cpp ../lib/libaic.a
- ${CXX} ${CMPFLAGS} -o motortst motortst.cpp ${LDFLAGS}
-
-clean:
- rm -f *~ *.bak *.o
-
-install:
-
-distclean: clean
- rm -f motortst
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Motor Test
- Copyright (C) 2003 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <ciostream.h>
-
-#include <conio.h>
-#include <math.h>
-#include <string.h>
-
-#include <delay.h>
-
-#include <aicudp.h>
-#include <aiccan.h>
-
-const int ST=1000;
-
-void iter(AIC *aic,int i)
-{
- aic->motor=i;
- gotoxy(1,5);
- cout << "Motor Voltage: " << i << "\t\n";
- delay(ST);
-}
-
-int main(int argc,char *argv[])
-{
- int i;
- int run=1;
-
- clrscr();
- cout << "\nAIC Motor Test Program\n";
- cout << "Copyright (C) 2003 Walter Fetter Lages <w.fetter@ieee.org>.\n\n";
-
- if((argc < 2) || (argc > 4) ||
- ((argc >= 3) && strcasecmp(argv[1],"-UDP")))
- {
- cout << "USAGE:\t" << argv[0] << " can_id\n";
- cout << "\tor\n\t" << argv[0] << " -UDP aic [status_port]\n";
- return -1;
- }
-
- AIC *aic;
- switch(argc)
- {
- default:
- case 2: aic=new AIC_CAN(atoi(argv[1])); break;
- case 3: aic=new AIC_UDP(argv[2]); break;
- case 4: aic=new AIC_UDP(argv[2],atoi(argv[3])); break;
- }
-
- aic->motor.on();
- aic->brake.release();
-
- for(i=0;(i <= 24) && run;i++)
- {
- if(kbhit()) run=0;
- iter(aic,i);
- }
- while(run)
- {
- for(i=24;(i > -24) && run;i--)
- {
- if(kbhit()) run=0;
- iter(aic,i);
- }
- for(i=-24;(i <= 24) && run;i++)
- {
- if(kbhit()) run=0;
- iter(aic,i);
- }
- }
- getch();
-
- aic->motor=0;
- aic->brake.apply();
- aic->motor.off();
-
- clrscr();
- return 0;
-
-}
+++ /dev/null
-all: pid .runinfo
-
-pid: pid.cpp ../include/aic.h ../lib/libaic.a
- ${CXX} ${CMPFLAGS} -o pid pid.cpp ${LDFLAGS}
-
-../lib/libaic.a:
- $(MAKE) -C ../lib
-
-clean:
- rm -f *~ *.bak *.o
-
-install:
-
-distclean: clean
- rm -f pid *.dat .runinfo
-
-.runinfo:
- echo "pid:lxrt:./pid;popall:" > .runinfo
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC PID Controller
- Copyright (C) 2003, 2004 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <errno.h>
-#include <iostream>
-using namespace std;
-
-#include <math.h>
-#include <sys/mman.h>
-
-#include <control.h>
-
-#include <aicudp.h>
-#include <aiccan.h>
-
-#include <rtai_lxrt.h>
-
-static inline double ref(double t)
-{
- return M_PI;
-}
-
-int main(int argc,char *argv[])
-{
- if((argc < 2) || (argc > 4) ||
- ((argc >= 3) && strcasecmp(argv[1],"-UDP")))
- {
- cout << "AIC PID Controller\n";
- cout << "Copyright (C) 2003 Walter Fetter Lages <w.fetter@ieee.org>.\n";
- cout << "USAGE:\t" << argv[0] << " can_id\n";
- cout << "\tor\n\t" << argv[0] << " -UDP aic [status_port]\n";
- return -1;
- }
-
- double gain[3]={20,5,10};
-
- const double ST=1; // dummy
- const double TF=2;
-
- AIC *aic;
- try
- {
- switch(argc)
- {
- default:
- case 2: aic=new AIC_CAN(atoi(argv[1])); break;
- case 3: aic=new AIC_UDP(argv[2]); break;
- case 4: aic=new AIC_UDP(argv[2],atoi(argv[3])); break;
- }
- }
- catch(AIC_CAN::BAD_OPEN)
- {
- cerr << "Can't open CAN" << endl;
- return -1;
- }
- catch(AIC_CAN::BAD_PARMS)
- {
- cerr << "Bad CAN parameters" << endl;
- return -1;
- }
- catch(AIC_CAN::BAD_BUSON)
- {
- cerr << "Bad CAN bus" << endl;
- return -1;
- }
- aic->motor.on();
- aic->brake.release();
-
- PID_CONTROLLER pid(gain[0],gain[1],gain[2]);
- pid.saturate(1,-24.0,24.0);
-
- double u=0.0;
- double y=0.0;
-
- int run=1;
-
- unsigned long maintsk_name = nam2num("PID");
- struct sched_param mainsched;
-
- rt_allow_nonroot_hrt();
-
- mainsched.sched_priority = sched_get_priority_max(SCHED_FIFO) - 1;
- if(sched_setscheduler(0,SCHED_FIFO, &mainsched ) == -1 )
- {
- cerr << "Error setting scheduler: " << strerror(errno) << "\n";
- return -1;
- }
-
- mlockall(MCL_CURRENT | MCL_FUTURE);
-
- RT_TASK *maintsk;
- if(!(maintsk = rt_task_init(maintsk_name, 1, 0, 0)))
- {
- cerr << "Can't init master task\n";
- return -1;
- }
-
- rt_set_oneshot_mode();
- int period = (int) nano2count((RTIME)(ST*1e9));
- start_rt_timer(period);
-
- rt_make_hard_real_time();
-
- rt_task_make_periodic(maintsk,rt_get_time(),period);
-
- RTIME t0=rt_get_time_ns();
-
- for(double t=0; t <= TF && run; t=(rt_get_time_ns()-t0)*1e-9)
- {
-
-#ifdef VERBOSE
- cout << t << "\t";
-#endif
-
- y+=aic->encoder.read();
-
- double e=ref(t)-y;
- u=pid.out(e);
-
-// aic->motor=u;
- if(((int)t) % 2) aic->motor=12.0; else aic->motor=-12.0; // test
-
-#ifdef VERBOSE
- cout << "\n";
-#endif
- }
-
- aic->motor=0;
- aic->brake.apply();
- aic->motor.off();
- rt_make_soft_real_time();
- stop_rt_timer();
- rt_task_delete(maintsk);
-
- try
- {
- delete aic;
- }
- catch(AIC_CAN::BAD_CLOSE)
- {
- cerr << "Can't close AIC_CAN" << endl;
- return -2;
- }
-
- return 0;
-}
+++ /dev/null
-PALASM4 PLDSIM - MARKET RELEASE 1.5 (7-10-92)\r
- (C) - COPYRIGHT ADVANCED MICRO DEVICES INC., 1992\r
-\r
-PALASM SIMULATION HISTORY LISTING\r
-\r
-Title : DECODER.PDS Author : Walter Fetter Lag\r
-Pattern : A Company : UFRGS \r
-Revision : 1.0 Date : 10/10/02 \r
-\r
-PAL22V10 \r
-Page : 1 \r
- gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg\r
- CLOCK LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL\r
- A[19] LLLLLLLLLLHHHHHHHHLLLLLLLLHHHHHHHHLLLLLLLLHHHHHHHHLLLLLLLLHH\r
- A[18] LLLLLLHHHHLLLLHHHHLLLLHHHHLLLLHHHHLLLLHHHHLLLLHHHHLLLLHHHHLL\r
- A[17] LLLLHHLLHHLLHHLLHHLLHHLLHHLLHHLLHHLLHHLLHHLLHHLLHHLLHHLLHHLL\r
- A[16] LLLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLH\r
-/WR LLHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHLLLLLLLLLL\r
-/RD LLHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHLLLLLLLLLLLLLLLLHHHHHHHHHH\r
- D1 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL\r
- REFPOS LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLHHHHHHHHHHHHHHHH\r
-/STROBE LLHHHHHHHHHHHHHHHHLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL\r
- PWM LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL\r
- GND LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL\r
- TRINT HLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL\r
- DRVB LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL\r
- DRVA LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL\r
-/EXTINT LHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\r
-/BRAKE HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\r
- PWMEN LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL\r
- D0 ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZHZZZZZZZZZZZZZZZ\r
-/EWR HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHL\r
-/ERD HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHLHHHHHHHHHHHHHHHH\r
-/CSPWM HHHHHHHHHHHHHHHHHHHHHHHHHHLHHHHHHHHHHHHHHHLHHHHHHHHHHHHHHHLH\r
-/CSLATCH HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\r
- VCC HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\r
-\f\r
-PAL22V10 \r
-Page : 2 \r
- gggggggggggc gc gc gc gc ggc g \r
- CLOCK LLLLLLLLLLLHHLLHHLLHHLLHHLLHHLLLHHLL \r
- A[19] HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH \r
- A[18] LLHHHHHLLLLLLLLLLLLLLLLLLLLLLLLLLLLL \r
- A[17] HHLLHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH \r
- A[16] LHLHLHHLLLLLLLLLLLLLLLLLLLLLLLLLLLLL \r
-/WR LLLLLLHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH \r
-/RD HHHHHHHLLHHHHHHHHHHHHHHHHHHHHHHHHHHH \r
- D1 LLLLLLLLLLHHHHHHHHLLLLLLLLLLLLLLLLLL \r
- REFPOS HHHHHHHHLLLLLLLLLLLLLLLLLLLLLLLLLLLL \r
-/STROBE LLLLLLHLLHHHHHHHHHHHHHHHHHHHHHHHHHHH \r
- PWM LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLHLLLLH \r
- GND LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL \r
- TRINT LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL \r
- DRVB LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLH \r
- DRVA LLLLLLLLLLLLLLLLLLLLHHHHLLLLLLLLLHHL \r
-/EXTINT HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH \r
-/BRAKE HHHHHHHHHHHHLLLLHHHHHHHHHHHHHHHHHHHH \r
- PWMEN LLLLLLLLLLLLLLLLLLLLHHHHLLLLLLLLLHHH \r
- D0 ZZZZZZZHLZHHHHLLLLHHHHLLLLLLLLLHHHHH \r
-/EWR HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH \r
-/ERD HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH \r
-/CSPWM HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH \r
-/CSLATCH LHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH \r
- VCC HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH \r
-\f\r
+++ /dev/null
-\r
-PALASM4 PAL ASSEMBLER - MARKET RELEASE 1.5a (8-20-92)\r
- (C) - COPYRIGHT ADVANCED MICRO DEVICES INC., 1992\r
-\r
-\r
-TITLE :DECODER.PDS AUTHOR :Walter Fetter Lages \r
-PATTERN :A COMPANY:UFRGS \r
-REVISION:1.0 DATE :10/10/02 \r
-\r
-\ 2\r
-PAL22V10\r
-DECODER*\r
-QV0084*\r
-QP24*\r
-QF5828*\r
-G0*F0*\r
-L0000 00000000000000000000000000000000000000000000*\r
-L0044 11111111111111111111111111111111111111111111*\r
-L0088 11110111101101111011101111111111111110111111*\r
-L0132 00000000000000000000000000000000000000000000*\r
-L0176 00000000000000000000000000000000000000000000*\r
-L0220 00000000000000000000000000000000000000000000*\r
-L0264 00000000000000000000000000000000000000000000*\r
-L0308 00000000000000000000000000000000000000000000*\r
-L0352 00000000000000000000000000000000000000000000*\r
-L0396 00000000000000000000000000000000000000000000*\r
-L0440 11111111111111111111111111111111111111111111*\r
-L0484 11110111101110111011111111111111111110111111*\r
-L0528 00000000000000000000000000000000000000000000*\r
-L0572 00000000000000000000000000000000000000000000*\r
-L0616 00000000000000000000000000000000000000000000*\r
-L0660 00000000000000000000000000000000000000000000*\r
-L0704 00000000000000000000000000000000000000000000*\r
-L0748 00000000000000000000000000000000000000000000*\r
-L0792 00000000000000000000000000000000000000000000*\r
-L0836 00000000000000000000000000000000000000000000*\r
-L0880 00000000000000000000000000000000000000000000*\r
-L0924 11111111111111111111111111111111111111111111*\r
-L0968 11110111101110110111111110111111111110111111*\r
-L1012 00000000000000000000000000000000000000000000*\r
-L1056 00000000000000000000000000000000000000000000*\r
-L1100 00000000000000000000000000000000000000000000*\r
-L1144 00000000000000000000000000000000000000000000*\r
-L1188 00000000000000000000000000000000000000000000*\r
-L1232 00000000000000000000000000000000000000000000*\r
-L1276 00000000000000000000000000000000000000000000*\r
-L1320 00000000000000000000000000000000000000000000*\r
-L1364 00000000000000000000000000000000000000000000*\r
-L1408 00000000000000000000000000000000000000000000*\r
-L1452 00000000000000000000000000000000000000000000*\r
-L1496 11111111111111111111111111111111111111111111*\r
-L1540 11110111101110110111101111111111111110111111*\r
-L1584 00000000000000000000000000000000000000000000*\r
-L1628 00000000000000000000000000000000000000000000*\r
-L1672 00000000000000000000000000000000000000000000*\r
-L1716 00000000000000000000000000000000000000000000*\r
-L1760 00000000000000000000000000000000000000000000*\r
-L1804 00000000000000000000000000000000000000000000*\r
-L1848 00000000000000000000000000000000000000000000*\r
-L1892 00000000000000000000000000000000000000000000*\r
-L1936 00000000000000000000000000000000000000000000*\r
-L1980 00000000000000000000000000000000000000000000*\r
-L2024 00000000000000000000000000000000000000000000*\r
-L2068 00000000000000000000000000000000000000000000*\r
-L2112 00000000000000000000000000000000000000000000*\r
-L2156 11110111101101111011111110111111111110111111*\r
-L2200 11111111111111111111111111111111011111111111*\r
-L2244 00000000000000000000000000000000000000000000*\r
-L2288 00000000000000000000000000000000000000000000*\r
-L2332 00000000000000000000000000000000000000000000*\r
-L2376 00000000000000000000000000000000000000000000*\r
-L2420 00000000000000000000000000000000000000000000*\r
-L2464 00000000000000000000000000000000000000000000*\r
-L2508 00000000000000000000000000000000000000000000*\r
-L2552 00000000000000000000000000000000000000000000*\r
-L2596 00000000000000000000000000000000000000000000*\r
-L2640 00000000000000000000000000000000000000000000*\r
-L2684 00000000000000000000000000000000000000000000*\r
-L2728 00000000000000000000000000000000000000000000*\r
-L2772 00000000000000000000000000000000000000000000*\r
-L2816 00000000000000000000000000000000000000000000*\r
-L2860 00000000000000000000000000000000000000000000*\r
-L2904 11111111111111111111111111111111111111111111*\r
-L2948 11111111111111111101111111111011111111111111*\r
-L2992 11111111111111111111111011110111111111111111*\r
-L3036 00000000000000000000000000000000000000000000*\r
-L3080 00000000000000000000000000000000000000000000*\r
-L3124 00000000000000000000000000000000000000000000*\r
-L3168 00000000000000000000000000000000000000000000*\r
-L3212 00000000000000000000000000000000000000000000*\r
-L3256 00000000000000000000000000000000000000000000*\r
-L3300 00000000000000000000000000000000000000000000*\r
-L3344 00000000000000000000000000000000000000000000*\r
-L3388 00000000000000000000000000000000000000000000*\r
-L3432 00000000000000000000000000000000000000000000*\r
-L3476 00000000000000000000000000000000000000000000*\r
-L3520 00000000000000000000000000000000000000000000*\r
-L3564 00000000000000000000000000000000000000000000*\r
-L3608 00000000000000000000000000000000000000000000*\r
-L3652 11111111111111111111111111111111111111111111*\r
-L3696 11111111111111111101111111110111111111111111*\r
-L3740 11111111111111111111111111101011111111111111*\r
-L3784 00000000000000000000000000000000000000000000*\r
-L3828 00000000000000000000000000000000000000000000*\r
-L3872 00000000000000000000000000000000000000000000*\r
-L3916 00000000000000000000000000000000000000000000*\r
-L3960 00000000000000000000000000000000000000000000*\r
-L4004 00000000000000000000000000000000000000000000*\r
-L4048 00000000000000000000000000000000000000000000*\r
-L4092 00000000000000000000000000000000000000000000*\r
-L4136 00000000000000000000000000000000000000000000*\r
-L4180 00000000000000000000000000000000000000000000*\r
-L4224 00000000000000000000000000000000000000000000*\r
-L4268 00000000000000000000000000000000000000000000*\r
-L4312 11111111111111111111111111111111111111111111*\r
-L4356 11111111111111111111111111111111111111111101*\r
-L4400 00000000000000000000000000000000000000000000*\r
-L4444 00000000000000000000000000000000000000000000*\r
-L4488 00000000000000000000000000000000000000000000*\r
-L4532 00000000000000000000000000000000000000000000*\r
-L4576 00000000000000000000000000000000000000000000*\r
-L4620 00000000000000000000000000000000000000000000*\r
-L4664 00000000000000000000000000000000000000000000*\r
-L4708 00000000000000000000000000000000000000000000*\r
-L4752 00000000000000000000000000000000000000000000*\r
-L4796 00000000000000000000000000000000000000000000*\r
-L4840 00000000000000000000000000000000000000000000*\r
-L4884 11111111111111111111111111111111111111111111*\r
-L4928 11111111111111111111111011111111111111111011*\r
-L4972 00000000000000000000000000000000000000000000*\r
-L5016 00000000000000000000000000000000000000000000*\r
-L5060 00000000000000000000000000000000000000000000*\r
-L5104 00000000000000000000000000000000000000000000*\r
-L5148 00000000000000000000000000000000000000000000*\r
-L5192 00000000000000000000000000000000000000000000*\r
-L5236 00000000000000000000000000000000000000000000*\r
-L5280 00000000000000000000000000000000000000000000*\r
-L5324 00000000000000000000000000000000000000000000*\r
-L5368 11111111111111111111111111111111111111111111*\r
-L5412 11111111111111111111111011111111111111110111*\r
-L5456 00000000000000000000000000000000000000000000*\r
-L5500 00000000000000000000000000000000000000000000*\r
-L5544 00000000000000000000000000000000000000000000*\r
-L5588 00000000000000000000000000000000000000000000*\r
-L5632 00000000000000000000000000000000000000000000*\r
-L5676 00000000000000000000000000000000000000000000*\r
-L5720 00000000000000000000000000000000000000000000*\r
-L5764 00000000000000000000000000000000000000000000*\r
-L5808 01010101111000011111*\r
-X0*\r
-V0001 XXXXXXXXXXXN1LLLHLZHHHHN*\r
-V0002 XXXXXXXXXXXN0LLHHLZHHHHN*\r
-V0003 X000011XX1XN0LLHHLZHHHHN*\r
-V0004 X000111XX1XN0LLHHLZHHHHN*\r
-V0005 X001011XX1XN0LLHHLZHHHHN*\r
-V0006 X001111XX1XN0LLHHLZHHHHN*\r
-V0007 X010011XX1XN0LLHHLZHHHHN*\r
-V0008 X010111XX1XN0LLHHLZHHHHN*\r
-V0009 X011011XX1XN0LLHHLZHHHHN*\r
-V0010 X011111XX1XN0LLHHLZHHHHN*\r
-V0011 X100011XX1XN0LLHHLZHHHHN*\r
-V0012 X100111XX1XN0LLHHLZHHHHN*\r
-V0013 X101011XX1XN0LLHHLZHHHHN*\r
-V0014 X101111XX1XN0LLHHLZHHHHN*\r
-V0015 X110011XX1XN0LLHHLZHHHHN*\r
-V0016 X110111XX1XN0LLHHLZHHHHN*\r
-V0017 X111011XX1XN0LLHHLZHHHHN*\r
-V0018 X111111XX1XN0LLHHLZHHHHN*\r
-V0019 X000011XX0XN0LLHHLZHHHHN*\r
-V0020 X000111XX0XN0LLHHLZHHHHN*\r
-V0021 X001011XX0XN0LLHHLZHHHHN*\r
-V0022 X001111XX0XN0LLHHLZHHHHN*\r
-V0023 X010011XX0XN0LLHHLZHHHHN*\r
-V0024 X010111XX0XN0LLHHLZHHHHN*\r
-V0025 X011011XX0XN0LLHHLZHHHHN*\r
-V0026 X011111XX0XN0LLHHLZHHHHN*\r
-V0027 X100011XX0XN0LLHHLZHHLHN*\r
-V0028 X100111XX0XN0LLHHLZHHHHN*\r
-V0029 X101011XX0XN0LLHHLZHHHHN*\r
-V0030 X101111XX0XN0LLHHLZHHHHN*\r
-V0031 X110011XX0XN0LLHHLZHHHHN*\r
-V0032 X110111XX0XN0LLHHLZHHHHN*\r
-V0033 X111011XX0XN0LLHHLZHHHHN*\r
-V0034 X111111XX0XN0LLHHLZHHHHN*\r
-V0035 X000010XX0XN0LLHHLZHHHHN*\r
-V0036 X000110XX0XN0LLHHLZHHHHN*\r
-V0037 X001010XX0XN0LLHHLZHHHHN*\r
-V0038 X001110XX0XN0LLHHLZHHHHN*\r
-V0039 X010010XX0XN0LLHHLZHHHHN*\r
-V0040 X010110XX0XN0LLHHLZHHHHN*\r
-V0041 X011010XX0XN0LLHHLZHHHHN*\r
-V0042 X011110XX0XN0LLHHLZHHHHN*\r
-V0043 X100010XX0XN0LLHHLZHHLHN*\r
-V0044 X100110XX0XN0LLHHLZHLHHN*\r
-V0045 X101010X10XN0LLHHLHHHHHN*\r
-V0046 X101110X10XN0LLHHLZHHHHN*\r
-V0047 X110010X10XN0LLHHLZHHHHN*\r
-V0048 X110110X10XN0LLHHLZHHHHN*\r
-V0049 X111010X10XN0LLHHLZHHHHN*\r
-V0050 X111110X10XN0LLHHLZHHHHN*\r
-V0051 X000001X10XN0LLHHLZHHHHN*\r
-V0052 X000101X10XN0LLHHLZHHHHN*\r
-V0053 X001001X10XN0LLHHLZHHHHN*\r
-V0054 X001101X10XN0LLHHLZHHHHN*\r
-V0055 X010001X10XN0LLHHLZHHHHN*\r
-V0056 X010101X10XN0LLHHLZHHHHN*\r
-V0057 X011001X10XN0LLHHLZHHHHN*\r
-V0058 X011101X10XN0LLHHLZHHHHN*\r
-V0059 X100001X10XN0LLHHLZHHLHN*\r
-V0060 X100101X10XN0LLHHLZLHHHN*\r
-V0061 X101001X10XN0LLHHLZHHHLN*\r
-V0062 X101101X10XN0LLHHLZHHHHN*\r
-V0063 X110001X10XN0LLHHLZHHHHN*\r
-V0064 X110101X10XN0LLHHLZHHHHN*\r
-V0065 X111001X10XN0LLHHLZHHHHN*\r
-V0066 X111101X10XN0LLHHLZHHHHN*\r
-V0067 X111111X11XN0LLHHLZHHHHN*\r
-V0068 X101010X10XN0LLHHLHHHHHN*\r
-V0069 X101010X00XN0LLHHLLHHHHN*\r
-V0070 X101011X01XN0LLHHLZHHHHN*\r
-V0071 X101011101XN0LLHHL1HHHHN*\r
-V0072 C101011101XN0LLHLL1HHHHN*\r
-V0073 0101011101XN0LLHLL0HHHHN*\r
-V0074 C101011101XN0LLHHL0HHHHN*\r
-V0075 01010110010N0LLHHL1HHHHN*\r
-V0076 C1010110010N0LHHHH1HHHHN*\r
-V0077 01010110010N0LHHHH0HHHHN*\r
-V0078 C1010110010N0LLHHL0HHHHN*\r
-V0079 01010110010N0LLHHL0HHHHN*\r
-V0080 C1010110010N0LLHHL0HHHHN*\r
-V0081 01010110011N0LLHHL0HHHHN*\r
-V0082 01010110010N0LLHHL1HHHHN*\r
-V0083 C1010110010N0LHHHH1HHHHN*\r
-V0084 01010110011N0HLHHH1HHHHN*\r
-C75EB*\r
-\ 3A8A0\r
+++ /dev/null
-\r
-PALASM4 PAL ASSEMBLER - MARKET RELEASE 1.5a (8-20-92)\r
- (C) - COPYRIGHT ADVANCED MICRO DEVICES INC., 1992\r
-\r
-\r
-TITLE :DECODER.PDS AUTHOR :Walter Fetter Lages \r
-PATTERN :A COMPANY:UFRGS \r
-REVISION:1.0 DATE :10/10/02 \r
-\r
-\ 2\r
-PAL22V10\r
-DECODER*\r
-QP24*\r
-QF5828*\r
-G0*F0*\r
-L0000 00000000000000000000000000000000000000000000*\r
-L0044 11111111111111111111111111111111111111111111*\r
-L0088 11110111101101111011101111111111111110111111*\r
-L0132 00000000000000000000000000000000000000000000*\r
-L0176 00000000000000000000000000000000000000000000*\r
-L0220 00000000000000000000000000000000000000000000*\r
-L0264 00000000000000000000000000000000000000000000*\r
-L0308 00000000000000000000000000000000000000000000*\r
-L0352 00000000000000000000000000000000000000000000*\r
-L0396 00000000000000000000000000000000000000000000*\r
-L0440 11111111111111111111111111111111111111111111*\r
-L0484 11110111101110111011111111111111111110111111*\r
-L0528 00000000000000000000000000000000000000000000*\r
-L0572 00000000000000000000000000000000000000000000*\r
-L0616 00000000000000000000000000000000000000000000*\r
-L0660 00000000000000000000000000000000000000000000*\r
-L0704 00000000000000000000000000000000000000000000*\r
-L0748 00000000000000000000000000000000000000000000*\r
-L0792 00000000000000000000000000000000000000000000*\r
-L0836 00000000000000000000000000000000000000000000*\r
-L0880 00000000000000000000000000000000000000000000*\r
-L0924 11111111111111111111111111111111111111111111*\r
-L0968 11110111101110110111111110111111111110111111*\r
-L1012 00000000000000000000000000000000000000000000*\r
-L1056 00000000000000000000000000000000000000000000*\r
-L1100 00000000000000000000000000000000000000000000*\r
-L1144 00000000000000000000000000000000000000000000*\r
-L1188 00000000000000000000000000000000000000000000*\r
-L1232 00000000000000000000000000000000000000000000*\r
-L1276 00000000000000000000000000000000000000000000*\r
-L1320 00000000000000000000000000000000000000000000*\r
-L1364 00000000000000000000000000000000000000000000*\r
-L1408 00000000000000000000000000000000000000000000*\r
-L1452 00000000000000000000000000000000000000000000*\r
-L1496 11111111111111111111111111111111111111111111*\r
-L1540 11110111101110110111101111111111111110111111*\r
-L1584 00000000000000000000000000000000000000000000*\r
-L1628 00000000000000000000000000000000000000000000*\r
-L1672 00000000000000000000000000000000000000000000*\r
-L1716 00000000000000000000000000000000000000000000*\r
-L1760 00000000000000000000000000000000000000000000*\r
-L1804 00000000000000000000000000000000000000000000*\r
-L1848 00000000000000000000000000000000000000000000*\r
-L1892 00000000000000000000000000000000000000000000*\r
-L1936 00000000000000000000000000000000000000000000*\r
-L1980 00000000000000000000000000000000000000000000*\r
-L2024 00000000000000000000000000000000000000000000*\r
-L2068 00000000000000000000000000000000000000000000*\r
-L2112 00000000000000000000000000000000000000000000*\r
-L2156 11110111101101111011111110111111111110111111*\r
-L2200 11111111111111111111111111111111011111111111*\r
-L2244 00000000000000000000000000000000000000000000*\r
-L2288 00000000000000000000000000000000000000000000*\r
-L2332 00000000000000000000000000000000000000000000*\r
-L2376 00000000000000000000000000000000000000000000*\r
-L2420 00000000000000000000000000000000000000000000*\r
-L2464 00000000000000000000000000000000000000000000*\r
-L2508 00000000000000000000000000000000000000000000*\r
-L2552 00000000000000000000000000000000000000000000*\r
-L2596 00000000000000000000000000000000000000000000*\r
-L2640 00000000000000000000000000000000000000000000*\r
-L2684 00000000000000000000000000000000000000000000*\r
-L2728 00000000000000000000000000000000000000000000*\r
-L2772 00000000000000000000000000000000000000000000*\r
-L2816 00000000000000000000000000000000000000000000*\r
-L2860 00000000000000000000000000000000000000000000*\r
-L2904 11111111111111111111111111111111111111111111*\r
-L2948 11111111111111111101111111111011111111111111*\r
-L2992 11111111111111111111111011110111111111111111*\r
-L3036 00000000000000000000000000000000000000000000*\r
-L3080 00000000000000000000000000000000000000000000*\r
-L3124 00000000000000000000000000000000000000000000*\r
-L3168 00000000000000000000000000000000000000000000*\r
-L3212 00000000000000000000000000000000000000000000*\r
-L3256 00000000000000000000000000000000000000000000*\r
-L3300 00000000000000000000000000000000000000000000*\r
-L3344 00000000000000000000000000000000000000000000*\r
-L3388 00000000000000000000000000000000000000000000*\r
-L3432 00000000000000000000000000000000000000000000*\r
-L3476 00000000000000000000000000000000000000000000*\r
-L3520 00000000000000000000000000000000000000000000*\r
-L3564 00000000000000000000000000000000000000000000*\r
-L3608 00000000000000000000000000000000000000000000*\r
-L3652 11111111111111111111111111111111111111111111*\r
-L3696 11111111111111111101111111110111111111111111*\r
-L3740 11111111111111111111111111101011111111111111*\r
-L3784 00000000000000000000000000000000000000000000*\r
-L3828 00000000000000000000000000000000000000000000*\r
-L3872 00000000000000000000000000000000000000000000*\r
-L3916 00000000000000000000000000000000000000000000*\r
-L3960 00000000000000000000000000000000000000000000*\r
-L4004 00000000000000000000000000000000000000000000*\r
-L4048 00000000000000000000000000000000000000000000*\r
-L4092 00000000000000000000000000000000000000000000*\r
-L4136 00000000000000000000000000000000000000000000*\r
-L4180 00000000000000000000000000000000000000000000*\r
-L4224 00000000000000000000000000000000000000000000*\r
-L4268 00000000000000000000000000000000000000000000*\r
-L4312 11111111111111111111111111111111111111111111*\r
-L4356 11111111111111111111111111111111111111111101*\r
-L4400 00000000000000000000000000000000000000000000*\r
-L4444 00000000000000000000000000000000000000000000*\r
-L4488 00000000000000000000000000000000000000000000*\r
-L4532 00000000000000000000000000000000000000000000*\r
-L4576 00000000000000000000000000000000000000000000*\r
-L4620 00000000000000000000000000000000000000000000*\r
-L4664 00000000000000000000000000000000000000000000*\r
-L4708 00000000000000000000000000000000000000000000*\r
-L4752 00000000000000000000000000000000000000000000*\r
-L4796 00000000000000000000000000000000000000000000*\r
-L4840 00000000000000000000000000000000000000000000*\r
-L4884 11111111111111111111111111111111111111111111*\r
-L4928 11111111111111111111111011111111111111111011*\r
-L4972 00000000000000000000000000000000000000000000*\r
-L5016 00000000000000000000000000000000000000000000*\r
-L5060 00000000000000000000000000000000000000000000*\r
-L5104 00000000000000000000000000000000000000000000*\r
-L5148 00000000000000000000000000000000000000000000*\r
-L5192 00000000000000000000000000000000000000000000*\r
-L5236 00000000000000000000000000000000000000000000*\r
-L5280 00000000000000000000000000000000000000000000*\r
-L5324 00000000000000000000000000000000000000000000*\r
-L5368 11111111111111111111111111111111111111111111*\r
-L5412 11111111111111111111111011111111111111110111*\r
-L5456 00000000000000000000000000000000000000000000*\r
-L5500 00000000000000000000000000000000000000000000*\r
-L5544 00000000000000000000000000000000000000000000*\r
-L5588 00000000000000000000000000000000000000000000*\r
-L5632 00000000000000000000000000000000000000000000*\r
-L5676 00000000000000000000000000000000000000000000*\r
-L5720 00000000000000000000000000000000000000000000*\r
-L5764 00000000000000000000000000000000000000000000*\r
-L5808 01010101111000011111*\r
-C75EB*\r
-\ 3180F\r
+++ /dev/null
-\r
-;PALASM Design Description\r
-\r
-;---------------------------------- Declaration Segment ------------\r
-TITLE DECODER.PDS\r
-PATTERN A\r
-REVISION 1.0\r
-AUTHOR Walter Fetter Lages\r
-COMPANY UFRGS\r
-DATE 10/10/02\r
-\r
-CHIP DECODER PAL22V10\r
-\r
-;---------------------------------- PIN Declarations ---------------\r
-PIN 1 CLOCK ; INPUT\r
-PIN 2..5 A[19..16] ; INPUT\r
-PIN 6 /WR ; INPUT\r
-PIN 7 /RD ; INPUT\r
-PIN 8 D1 ; INPUT\r
-PIN 9 REFPOS ; INPUT\r
-PIN 10 /STROBE ; INPUT\r
-PIN 11 PWM ; INPUT\r
-PIN 12 GND \r
-PIN 13 TRINT ; INPUT\r
-PIN 14 DRVB COMBINATORIAL ; OUTPUT\r
-PIN 15 DRVA COMBINATORIAL ; OUTPUT\r
-PIN 16 /EXTINT COMBINATORIAL ; OUTPUT\r
-PIN 17 /BRAKE REGISTERED ; OUTPUT\r
-PIN 18 PWMEN REGISTERED ; OUTPUT\r
-PIN 19 D0 COMBINATORIAL ; I/O\r
-PIN 20 /EWR COMBINATORIAL ; OUTPUT\r
-PIN 21 /ERD COMBINATORIAL ; OUTPUT\r
-PIN 22 /CSPWM COMBINATORIAL ; OUTPUT\r
-PIN 23 /CSLATCH COMBINATORIAL ; OUTPUT\r
-PIN 24 VCC \r
-\r
-\r
-;----------------------------------- Boolean Equation Segment ------\r
-EQUATIONS\r
-\r
-EXTINT = TRINT\r
-\r
-CSPWM= STROBE * A[19] * /A[18] * /A[17] * /A[16] \r
-ERD= STROBE * RD * A[19] * /A[18] * /A[17] * A[16] \r
-EWR= STROBE * WR * A[19] * /A[18] * /A[17] * A[16] \r
-CSLATCH= STROBE * WR * A[19] * /A[18] * A[17] * /A[16] \r
-\r
-D0.TRST= STROBE * RD * A[19] * /A[18] * A[17] * /A[16]\r
-D0=REFPOS\r
-
-PWMEN=D0 * /D1 + PWMEN * D1\r
-\r
-BRAKE=D0 * D1 + BRAKE * /D1\r
-\r
-DRVA=PWMEN * /PWM\r
-DRVB=PWMEN * PWM\r
-\r
-;----------------------------------- State Segment -----------------\r
-STATE\r
-\r
-CLKF = CLOCK\r
-\r
-;----------------------------------- Simulation Segment ------------\r
-SIMULATION\r
-\r
-; TRINT/EXTINT tests\r
-\r
-TRACE_ON TRINT EXTINT\r
-SETF TRINT\r
-CHECK EXTINT\r
-SETF /TRINT\r
-CHECK /EXTINT\r
-TRACE_OFF\r
-\r
-; Address decoding tests\r
-\r
-TRACE_ON A[19..16] /STROBE /RD /WR /CSPWM /ERD /EWR /CSLATCH D0\r
-\r
-SETF /A[19] /A[18] /A[17] /A[16] /STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] /A[18] /A[17] A[16] /STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] /A[18] A[17] /A[16] /STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] /A[18] A[17] A[16] /STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] A[18] /A[17] /A[16] /STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] A[18] /A[17] A[16] /STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] A[18] A[17] /A[16] /STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] A[18] A[17] A[16] /STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] /A[18] /A[17] /A[16] /STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] /A[18] /A[17] A[16] /STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] /A[18] A[17] /A[16] /STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] /A[18] A[17] A[16] /STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] A[18] /A[17] /A[16] /STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] A[18] /A[17] A[16] /STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] A[18] A[17] /A[16] /STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] A[18] A[17] A[16] /STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-\r
-SETF /A[19] /A[18] /A[17] /A[16] STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] /A[18] /A[17] A[16] STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] /A[18] A[17] /A[16] STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] /A[18] A[17] A[16] STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] A[18] /A[17] /A[16] STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] A[18] /A[17] A[16] STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] A[18] A[17] /A[16] STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] A[18] A[17] A[16] STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] /A[18] /A[17] /A[16] STROBE /RD /WR\r
-CHECK CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] /A[18] /A[17] A[16] STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] /A[18] A[17] /A[16] STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] /A[18] A[17] A[16] STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] A[18] /A[17] /A[16] STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] A[18] /A[17] A[16] STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] A[18] A[17] /A[16] STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] A[18] A[17] A[16] STROBE /RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-\r
-SETF /A[19] /A[18] /A[17] /A[16] STROBE RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] /A[18] /A[17] A[16] STROBE RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] /A[18] A[17] /A[16] STROBE RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] /A[18] A[17] A[16] STROBE RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] A[18] /A[17] /A[16] STROBE RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] A[18] /A[17] A[16] STROBE RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] A[18] A[17] /A[16] STROBE RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] A[18] A[17] A[16] STROBE RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] /A[18] /A[17] /A[16] STROBE RD /WR ; CSPWM active\r
-CHECK CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] /A[18] /A[17] A[16] STROBE RD /WR ; ERD active\r
-CHECK /CSPWM ERD /EWR /CSLATCH ^D0\r
-SETF A[19] /A[18] A[17] /A[16] STROBE RD /WR REFPOS ; DO driving output\r
-CHECK /CSPWM /ERD /EWR /CSLATCH D0\r
-SETF A[19] /A[18] A[17] A[16] STROBE RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] A[18] /A[17] /A[16] STROBE RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] A[18] /A[17] A[16] STROBE RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] A[18] A[17] /A[16] STROBE RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] A[18] A[17] A[16] STROBE RD /WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-\r
-SETF /A[19] /A[18] /A[17] /A[16] STROBE /RD WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] /A[18] /A[17] A[16] STROBE /RD WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] /A[18] A[17] /A[16] STROBE /RD WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] /A[18] A[17] A[16] STROBE /RD WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] A[18] /A[17] /A[16] STROBE /RD WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] A[18] /A[17] A[16] STROBE /RD WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] A[18] A[17] /A[16] STROBE /RD WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /A[19] A[18] A[17] A[16] STROBE /RD WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] /A[18] /A[17] /A[16] STROBE /RD WR\r
-CHECK CSPWM /ERD /EWR /CSLATCH ^D0 ; CSPWM active\r
-SETF A[19] /A[18] /A[17] A[16] STROBE /RD WR\r
-CHECK /CSPWM /ERD EWR /CSLATCH ^D0 ; EWR active\r
-SETF A[19] /A[18] A[17] /A[16] STROBE /RD WR\r
-CHECK /CSPWM /ERD /EWR CSLATCH ^D0 ; CSLATCH active\r
-SETF A[19] /A[18] A[17] A[16] STROBE /RD WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] A[18] /A[17] /A[16] STROBE /RD WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] A[18] /A[17] A[16] STROBE /RD WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] A[18] A[17] /A[16] STROBE /RD WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF A[19] A[18] A[17] A[16] STROBE /RD WR\r
-CHECK /CSPWM /ERD /EWR /CSLATCH ^D0\r
-SETF /STROBE /RD /WR\r
-\r
-TRACE_OFF\r
-\r
-; REFPOS tests\r
-\r
-TRACE_ON A[19..16] /STROBE /RD /WR /CSPWM /ERD /EWR /CSLATCH D0 REFPOS\r
-\r
-SETF A[19] /A[18] A[17] /A[16] STROBE RD /WR REFPOS\r
-CHECK /CSPWM /ERD /EWR /CSLATCH D0\r
-SETF A[19] /A[18] A[17] /A[16] STROBE RD /WR /REFPOS\r
-CHECK /CSPWM /ERD /EWR /CSLATCH /D0 \r
-SETF /STROBE /RD /WR\r
-\r
-TRACE_OFF\r
-\r
-; BRAKE PWMEN tests\r
-\r
-TRACE_ON CLOCK D0 D1 BRAKE PWMEN\r
-\r
-SETF D0 D1\r
-CLOCKF CLOCK\r
-CHECK BRAKE\r /PWMEN
-SETF /D0 D1\r
-CLOCKF CLOCK\r
-CHECK /BRAKE\r /PWMEN
-\r
-SETF D0 /D1 /PWM\r
-CLOCKF CLOCK\r
-CHECK /BRAKE PWMEN DRVA /DRVB\r
-SETF /D0 /D1 /PWM\r
-CLOCKF CLOCK\r
-CHECK /BRAKE /PWMEN /DRVA /DRVB\r
-\r
-TRACE_OFF\r
-\r
-; DRVA/DRVB/PWM tests\r
-\r
-TRACE_ON PWMEN PWM DRVA DRVB\r
-\r
-SETF /PWM\r /D1 /D0
-CLOCKF CLOCK
-CHECK /DRVA /DRVB /PWMEN\r
-SETF PWM\r
-CHECK /DRVA /DRVB /PWMEN\r
-\r
-SETF /PWM\r /D1 D0
-CLOCKF CLOCK
-CHECK DRVA /DRVB PWMEN\r
-SETF PWM\r
-CHECK /DRVA DRVB PWMEN\r
-\r
-TRACE_OFF\r
-\r
-;-------------------------------------------------------------------\r
-\r
-\r
+++ /dev/null
-PALASM4 PLDSIM - MARKET RELEASE 1.5 (7-10-92)\r
- (C) - COPYRIGHT ADVANCED MICRO DEVICES INC., 1992\r
-\r
-PALASM SIMULATION SELECTIVE TRACE LISTING\r
-\r
-Title : DECODER.PDS Author : Walter Fetter Lag\r
-Pattern : A Company : UFRGS \r
-Revision : 1.0 Date : 10/10/02 \r
-\r
-PAL22V10 \r
-Page : 1 \r
-\v\r
- gg \r
- TRINT HL \r
- EXTINT HL \r
-\f\r
-PAL22V10 \r
-Page : 2 \r
-\v\r
- gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg\r
- A[19] LLLLLLLLHHHHHHHHLLLLLLLLHHHHHHHHLLLLLLLLHHHHHHHHLLLLLLLLHHHH\r
- A[18] LLLLHHHHLLLLHHHHLLLLHHHHLLLLHHHHLLLLHHHHLLLLHHHHLLLLHHHHLLLL\r
- A[17] LLHHLLHHLLHHLLHHLLHHLLHHLLHHLLHHLLHHLLHHLLHHLLHHLLHHLLHHLLHH\r
- A[16] LHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLHLH\r
-/STROBE HHHHHHHHHHHHHHHHLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL\r
-/RD HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHLLLLLLLLLLLLLLLLHHHHHHHHHHHH\r
-/WR HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHLLLLLLLLLLLL\r
-/CSPWM HHHHHHHHHHHHHHHHHHHHHHHHLHHHHHHHHHHHHHHHLHHHHHHHHHHHHHHHLHHH\r
-/ERD HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHLHHHHHHHHHHHHHHHHHH\r
-/EWR HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHLHH\r
-/CSLATCH HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHLH\r
- D0 ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZHZZZZZZZZZZZZZZZZZ\r
-\f\r
-PAL22V10 \r
-Page : 3 \r
- ggggg \r
- A[19] HHHHH \r
- A[18] HHHHH \r
- A[17] LLHHH \r
- A[16] LHLHH \r
-/STROBE LLLLH \r
-/RD HHHHH \r
-/WR LLLLH \r
-/CSPWM HHHHH \r
-/ERD HHHHH \r
-/EWR HHHHH \r
-/CSLATCH HHHHH \r
- D0 ZZZZZ \r
-\f\r
-PAL22V10 \r
-Page : 4 \r
-\v\r
- ggg \r
- A[19] HHH \r
- A[18] LLL \r
- A[17] HHH \r
- A[16] LLL \r
-/STROBE LLH \r
-/RD LLH \r
-/WR HHH \r
-/CSPWM HHH \r
-/ERD HHH \r
-/EWR HHH \r
-/CSLATCH HHH \r
- D0 HLZ \r
- REFPOS HLL \r
-\f\r
-PAL22V10 \r
-Page : 5 \r
-\v\r
- gc gc gc gc \r
- CLOCK LHHLLHHLLHHLLHHL \r
- D0 HHHHLLLLHHHHLLLL \r
- D1 HHHHHHHHLLLLLLLL \r
- BRAKE LLHHHHLLLLLLLLLL \r
- PWMEN LLLLLLLLLLHHHHLL \r
-\f\r
-PAL22V10 \r
-Page : 6 \r
-\v\r
- gc ggc g \r
- PWMEN LLLLLLLHHH \r
- PWM LLLLHLLLLH \r
- DRVA LLLLLLLHHL \r
- DRVB LLLLLLLLLH \r
-\f\r
+++ /dev/null
-\r
-PALASM4 PAL ASSEMBLER - MARKET RELEASE 1.5a (8-20-92)\r
- (C) - COPYRIGHT ADVANCED MICRO DEVICES INC., 1992\r
-\r
-\r
-TITLE :DECODER.PDS AUTHOR :Walter Fetter Lages \r
-PATTERN :A COMPANY:UFRGS \r
-REVISION:1.0 DATE :10/10/02 \r
-\r
-PAL22V10\r
-DECODER\r
-\r
- 11 1111 1111 2222 2222 2233 3333 3333 4444 \r
- 0123 4567 8901 2345 6789 0123 4567 8901 2345 6789 0123 \r
-\r
-0 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-\r
-1 ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- \r
-2 ---- X--- -X-- X--- -X-- -X-- ---- ---- ---- -X-- ---- \r
-3 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-4 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-5 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-6 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-7 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-8 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-9 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-\r
-10 ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- \r
-11 ---- X--- -X-- -X-- -X-- ---- ---- ---- ---- -X-- ---- \r
-12 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-13 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-14 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-15 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-16 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-17 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-18 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-19 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-20 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-\r
-21 ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- \r
-22 ---- X--- -X-- -X-- X--- ---- -X-- ---- ---- -X-- ---- \r
-23 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-24 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-25 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-26 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-27 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-28 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-29 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-30 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-31 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-32 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-33 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-\r
-34 ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- \r
-35 ---- X--- -X-- -X-- X--- -X-- ---- ---- ---- -X-- ---- \r
-36 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-37 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-38 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-39 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-40 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-41 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-42 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-43 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-44 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-45 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-46 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-47 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-48 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-\r
-49 ---- X--- -X-- X--- -X-- ---- -X-- ---- ---- -X-- ---- \r
-50 ---- ---- ---- ---- ---- ---- ---- ---- X--- ---- ---- \r
-51 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-52 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-53 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-54 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-55 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-56 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-57 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-58 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-59 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-60 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-61 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-62 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-63 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-64 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-65 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-\r
-66 ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- \r
-67 ---- ---- ---- ---- --X- ---- ---- -X-- ---- ---- ---- \r
-68 ---- ---- ---- ---- ---- ---X ---- X--- ---- ---- ---- \r
-69 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-70 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-71 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-72 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-73 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-74 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-75 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-76 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-77 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-78 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-79 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-80 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-81 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-82 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-\r
-83 ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- \r
-84 ---- ---- ---- ---- --X- ---- ---- X--- ---- ---- ---- \r
-85 ---- ---- ---- ---- ---- ---- ---X -X-- ---- ---- ---- \r
-86 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-87 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-88 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-89 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-90 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-91 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-92 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-93 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-94 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-95 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-96 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-97 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-\r
-98 ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- \r
-99 ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- --X- \r
-100 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-101 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-102 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-103 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-104 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-105 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-106 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-107 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-108 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-109 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-110 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-\r
-111 ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- \r
-112 ---- ---- ---- ---- ---- ---X ---- ---- ---- ---- -X-- \r
-113 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-114 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-115 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-116 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-117 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-118 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-119 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-120 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-121 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-\r
-122 ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- \r
-123 ---- ---- ---- ---- ---- ---X ---- ---- ---- ---- X--- \r
-124 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-125 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-126 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-127 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-128 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-129 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-130 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-\r
-131 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX \r
-\r
- SUMMARY\r
- -------\r
-\r
- OUTPUT PINS: 1111112222\r
- 4567890123\r
- POLARITY FUSES: --XX--XXXX\r
-\r
- OUTPUT PINS: 1111112222\r
- 4567890123\r
- REG BYPASS FUSES: ---XX-----\r
-\r
- TOTAL FUSES BLOWN = 937\r
-\r
+++ /dev/null
-Decoder1.pds NNNNNX\r
-1 223\r
-1 85 DECODER.PDS\r
-1 86 A\r
-1 87 1.0\r
-1 88 Walter Fetter Lages\r
-1 89 UFRGS\r
-1 90 10/10/02\r
--2 -2\r
-1 60\r
-2 1 DECODER\r
-2 166 24\r
-2 1 CLOCK\r
-2 1 A[19]\r
-2 1 A[18]\r
-2 1 A[17]\r
-2 1 A[16]\r
-2 18\r
-3 1 WR\r
-2 18\r
-3 1 RD\r
-2 1 D1\r
-2 1 REFPOS\r
-2 18\r
-3 1 STROBE\r
-2 1 PWM\r
-2 75\r
-2 1 TRINT\r
-2 1 DRVB\r
-3 24\r
-2 1 DRVA\r
-3 24\r
-2 18\r
-3 1 EXTINT\r
-4 24\r
-2 18\r
-3 1 BRAKE\r
-4 10\r
-2 1 PWMEN\r
-3 10\r
-2 1 D0\r
-3 24\r
-2 18\r
-3 1 EWR\r
-4 24\r
-2 18\r
-3 1 ERD\r
-4 24\r
-2 18\r
-3 1 CSPWM\r
-4 24\r
-2 18\r
-3 1 CSLATCH\r
-4 24\r
-2 74\r
-2 73\r
--3 -3\r
-3 65\r
-3 24\r
-4 1 EXTINT\r
-4 1 TRINT\r
-3 24\r
-4 1 CSPWM\r
-4 17\r
-5 1 STROBE\r
-5 17\r
-6 1 A[19]\r
-6 17\r
-7 18\r
-8 1 A[18]\r
-7 17\r
-8 18\r
-9 1 A[17]\r
-8 18\r
-9 1 A[16]\r
-3 24\r
-4 1 ERD\r
-4 17\r
-5 1 STROBE\r
-5 17\r
-6 1 RD\r
-6 17\r
-7 1 A[19]\r
-7 17\r
-8 18\r
-9 1 A[18]\r
-8 17\r
-9 18\r
-10 1 A[17]\r
-9 1 A[16]\r
-3 24\r
-4 1 EWR\r
-4 17\r
-5 1 STROBE\r
-5 17\r
-6 1 WR\r
-6 17\r
-7 1 A[19]\r
-7 17\r
-8 18\r
-9 1 A[18]\r
-8 17\r
-9 18\r
-10 1 A[17]\r
-9 1 A[16]\r
-3 24\r
-4 1 CSLATCH\r
-4 17\r
-5 1 STROBE\r
-5 17\r
-6 1 WR\r
-6 17\r
-7 1 A[19]\r
-7 17\r
-8 18\r
-9 1 A[18]\r
-8 17\r
-9 1 A[17]\r
-9 18\r
-10 1 A[16]\r
-3 24\r
-4 53\r
-5 1 D0\r
-4 17\r
-5 1 STROBE\r
-5 17\r
-6 1 RD\r
-6 17\r
-7 1 A[19]\r
-7 17\r
-8 18\r
-9 1 A[18]\r
-8 17\r
-9 1 A[17]\r
-9 18\r
-10 1 A[16]\r
-3 24\r
-4 1 D0\r
-4 1 REFPOS\r
-3 10\r
-4 1 PWMEN\r
-4 16\r
-5 17\r
-6 1 D0\r
-6 18\r
-7 1 D1\r
-5 17\r
-6 1 PWMEN\r
-6 1 D1\r
-3 10\r
-4 1 BRAKE\r
-4 16\r
-5 17\r
-6 1 D0\r
-6 1 D1\r
-5 17\r
-6 1 BRAKE\r
-6 18\r
-7 1 D1\r
-3 24\r
-4 1 DRVA\r
-4 17\r
-5 1 PWMEN\r
-5 18\r
-6 1 PWM\r
-3 24\r
-4 1 DRVB\r
-4 17\r
-5 1 PWMEN\r
-5 1 PWM\r
--5 -5\r
-4 71\r
-4 45\r
-5 1 TRINT\r
-5 1 EXTINT\r
-4 48\r
-5 1 TRINT\r
-4 47\r
-5 1 EXTINT\r
-4 48\r
-5 18\r
-6 1 TRINT\r
-4 47\r
-5 18\r
-6 1 EXTINT\r
-4 46\r
-4 45\r
-5 1 A[19]\r
-5 1 A[18]\r
-5 1 A[17]\r
-5 1 A[16]\r
-5 18\r
-6 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 18\r
-6 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 1 A[16]\r
-5 18\r
-6 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 18\r
-6 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 1 A[17]\r
-5 1 A[16]\r
-5 18\r
-6 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 18\r
-6 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 1 A[16]\r
-5 18\r
-6 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 1 A[18]\r
-5 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 18\r
-6 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 1 A[18]\r
-5 1 A[17]\r
-5 1 A[16]\r
-5 18\r
-6 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 18\r
-6 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 1 A[16]\r
-5 18\r
-6 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 18\r
-6 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 1 A[17]\r
-5 1 A[16]\r
-5 18\r
-6 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 18\r
-6 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 1 A[16]\r
-5 18\r
-6 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 1 A[18]\r
-5 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 18\r
-6 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 1 A[18]\r
-5 1 A[17]\r
-5 1 A[16]\r
-5 18\r
-6 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 1 A[18]\r
-5 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 1 A[18]\r
-5 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 1 A[18]\r
-5 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 1 A[18]\r
-5 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 1 A[18]\r
-5 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 1 A[18]\r
-5 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 1 RD\r
-5 18\r
-6 1 WR\r
-5 1 REFPOS\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 1 A[18]\r
-5 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 1 A[18]\r
-5 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 1 RD\r
-5 18\r
-6 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 1 A[18]\r
-5 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 A[19]\r
-5 1 A[18]\r
-5 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 1 WR\r
-4 47\r
-5 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 1 A[18]\r
-5 18\r
-6 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 1 A[18]\r
-5 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 1 A[18]\r
-5 1 A[17]\r
-5 1 A[16]\r
-5 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 1 WR\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 351\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 46\r
-4 45\r
-5 1 A[19]\r
-5 1 A[18]\r
-5 1 A[17]\r
-5 1 A[16]\r
-5 18\r
-6 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 1 D0\r
-5 1 REFPOS\r
-4 48\r
-5 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 1 RD\r
-5 18\r
-6 1 WR\r
-5 1 REFPOS\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 1 D0\r
-4 48\r
-5 1 A[19]\r
-5 18\r
-6 1 A[18]\r
-5 1 A[17]\r
-5 18\r
-6 1 A[16]\r
-5 1 STROBE\r
-5 1 RD\r
-5 18\r
-6 1 WR\r
-5 18\r
-6 1 REFPOS\r
-4 47\r
-5 18\r
-6 1 CSPWM\r
-5 18\r
-6 1 ERD\r
-5 18\r
-6 1 EWR\r
-5 18\r
-6 1 CSLATCH\r
-5 18\r
-6 1 D0\r
-4 48\r
-5 18\r
-6 1 STROBE\r
-5 18\r
-6 1 RD\r
-5 18\r
-6 1 WR\r
-4 46\r
-4 45\r
-5 1 CLOCK\r
-5 1 D0\r
-5 1 D1\r
-5 1 BRAKE\r
-5 1 PWMEN\r
-4 48\r
-5 1 D0\r
-5 1 D1\r
-4 42\r
-5 1 CLOCK\r
-4 47\r
-5 1 BRAKE\r
-5 18\r
-6 1 PWMEN\r
-4 48\r
-5 18\r
-6 1 D0\r
-5 1 D1\r
-4 42\r
-5 1 CLOCK\r
-4 47\r
-5 18\r
-6 1 BRAKE\r
-5 18\r
-6 1 PWMEN\r
-4 48\r
-5 1 D0\r
-5 18\r
-6 1 D1\r
-5 18\r
-6 1 PWM\r
-4 42\r
-5 1 CLOCK\r
-4 47\r
-5 18\r
-6 1 BRAKE\r
-5 1 PWMEN\r
-5 1 DRVA\r
-5 18\r
-6 1 DRVB\r
-4 48\r
-5 18\r
-6 1 D0\r
-5 18\r
-6 1 D1\r
-5 18\r
-6 1 PWM\r
-4 42\r
-5 1 CLOCK\r
-4 47\r
-5 18\r
-6 1 BRAKE\r
-5 18\r
-6 1 PWMEN\r
-5 18\r
-6 1 DRVA\r
-5 18\r
-6 1 DRVB\r
-4 46\r
-4 45\r
-5 1 PWMEN\r
-5 1 PWM\r
-5 1 DRVA\r
-5 1 DRVB\r
-4 48\r
-5 18\r
-6 1 PWM\r
-5 18\r
-6 1 D1\r
-5 18\r
-6 1 D0\r
-4 42\r
-5 1 CLOCK\r
-4 47\r
-5 18\r
-6 1 DRVA\r
-5 18\r
-6 1 DRVB\r
-5 18\r
-6 1 PWMEN\r
-4 48\r
-5 1 PWM\r
-4 47\r
-5 18\r
-6 1 DRVA\r
-5 18\r
-6 1 DRVB\r
-5 18\r
-6 1 PWMEN\r
-4 48\r
-5 18\r
-6 1 PWM\r
-5 18\r
-6 1 D1\r
-5 1 D0\r
-4 42\r
-5 1 CLOCK\r
-4 47\r
-5 1 DRVA\r
-5 18\r
-6 1 DRVB\r
-5 1 PWMEN\r
-4 48\r
-5 1 PWM\r
-4 47\r
-5 18\r
-6 1 DRVA\r
-5 1 DRVB\r
-5 1 PWMEN\r
-4 46\r
--6 -6\r
--9 -9\r
--- /dev/null
+AICLIB+=-ldebug
+
+all: serialtest.hex
+
+serialtest.o:serialtest.c
+ $(CC) $(CPU) -x c -c $^ $(CCINCDIR) -I. $(CCFLAGS)
+
+serialtest:serialtest.o
+ $(CC) $(CPU) $^ -o $@ $(CCLIBDIR) $(AICLIBDIR) -Wl $(CCGLDFILE) $(AICLIB)
+
+serialtest.hex:serialtest
+ $(CCBIN2HEX) $^
+clean:
+ rm -f *.o serialtest *~
+
+distclean:clean
+ rm -f serialtest.hex
\ No newline at end of file
--- /dev/null
+/******************************************************************************\r
+\r
+ Actuator Interface Card\r
+ Serial Lib test\r
+ Copyright (C) 2008 Diego Caberlon Santini <diegos@ece.ufrgs.br.\r
+\r
+ This program is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ This program is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with this program; if not, write to the Free Software\r
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
+\r
+ You can also obtain a copy of the GNU General Public License\r
+ at <http://www.gnu.org/licenses>.\r
+\r
+*******************************************************************************\r
+2008.06.13 -> Start test by Diego Caberlon Santini\r
+* Send some string to UART!\r
+*/\r
+\r
+#include <p30f4012.h>\r
+#include "serial.h"\r
+#include <string.h>\r
+\r
+/*---------------------------------------------------------------------------*/\r
+_FOSC(EC_PLL16 & CSW_FSCM_OFF); //Config OSC to internal RC osc 7.37MHz\r
+_FWDT(WDT_OFF);\r
+_FBORPOR(MCLR_EN & RST_IOPIN & PBOR_OFF & PWRT_64);\r
+/*---------------------------------------------------------------------------*/\r
+\r
+int main()\r
+{\r
+ char *name;\r
+ char *name1;\r
+ char *name2;\r
+ \r
+ name="Diego é o cara\n";\r
+ name1="Diego é o cara ******************************************\n\n";\r
+ name2="Diego é o cara &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n\n";\r
+ \r
+ //set PORTE just to check if the program is running\r
+ TRISE=0x0;\r
+ PORTE=0x02;\r
+ \r
+ serial_init();\r
+ \r
+ serial_write(name,strlen(name));\r
+ serial_write(name1,strlen(name1));\r
+ serial_write(name2,strlen(name2));\r
+ \r
+ \r
+ for(;;){\r
+\r
+ }\r
+ \r
+}\r
+++ /dev/null
-all: sputtering
-
-sputtering: sputtering.cpp ../include/aic.h ../lib/libaic.a
- ${CXX} ${CMPFLAGS} -o sputtering sputtering.cpp ${LDFLAGS}
-
-../lib/libaic.a:
- $(MAKE) -C ../lib
-
-clean:
- rm -f *~ *.bak *.o
-
-install:
-
-distclean: clean
- rm -f sputtering *.dat
-
+++ /dev/null
-/******************************************************************************
-
- Actuator Interface Card
- AIC Sputtering Controller
- Copyright (C) 2007 Walter Fetter Lages <w.fetter@ieee.org>
-
- 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 2 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, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- You can also obtain a copy of the GNU General Public License
- at <http://www.gnu.org/licenses>.
-
-*******************************************************************************/
-
-#include <iostream>
-using namespace std;
-#include <math.h>
-
-#include <sputtering.h>
-
-int main(int argc,char *argv[])
-{
-
-/* if(argc != 5)
- {
- cout << "Sputtering Controller\n";
- cout << "Copyright (C) 2007 Walter Fetter Lages <w.fetter@ieee.org>.\n";
- cout << " 2007 Diego Caberlon Santini <diegos@ece.ufrgs.br>.\n";
- cout << "\tor\n\t" << argv[0] << " aic1 status_port1 aic2 status_port2\n";
- return -1;
- }
-*/
- SPUTTERING sputtering0(argv[1],atoi(argv[2]));
-// SPUTTERING sputtering1(argv[3],atoi(argv[4]));
-
- sputtering0.reset();
-// sputtering1.reset();
- cout <<"Reset\n";
- sputtering0.reference(M_PI*300/180);
-// sputtering1.reference(M_PI*300/180);
- cout <<"Positioning at 300 degrees\n";
- sputtering0.shutter(1000000);
-// sputtering1.shutter(1000000);
- cout <<"open for 1s\n";
- sputtering0.reference(M_PI*60/180);
-// sputtering1.reference(M_PI*60/180);
- cout <<"Positioning at 60 degrees\n";
- sputtering0.shutter(2000000);
-// sputtering1.shutter(2000000);
- cout <<"Open for 2s\n";
-
- return 0;
-}