summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--obdlogger/cores/CDC.cpp3
-rw-r--r--obdlogger/cores/HardwareSerial.cpp3
-rw-r--r--obdlogger/cores/Print.cpp1
-rw-r--r--obdlogger/cores/Stream.cpp1
-rw-r--r--obdlogger/cores/USBCore.cpp2
-rw-r--r--obdlogger/cores/WInterrupts.c1
-rw-r--r--obdlogger/cores/WMath.cpp1
-rw-r--r--obdlogger/cores/WString.cpp1
-rw-r--r--obdlogger/cores/main.cpp1
-rw-r--r--obdlogger/cores/new.cpp1
-rw-r--r--obdlogger/cores/wiring.c1
-rw-r--r--obdlogger/cores/wiring_analog.c1
-rw-r--r--obdlogger/cores/wiring_digital.c1
-rw-r--r--obdlogger/cores/wiring_pulse.c1
-rw-r--r--obdlogger/cores/wiring_shift.c1
-rw-r--r--obdlogger/libraries/SD.cpp5
-rw-r--r--obdlogger/libraries/SoftwareSerial.cpp1
-rw-r--r--obdlogger/libraries/Wire.cpp1
-rw-r--r--obdlogger/libraries/twi.c1
-rw-r--r--obdlogger/obdlogger.cbp467
-rw-r--r--obdlogger/obdlogger.hex1336
-rw-r--r--samples/dashboard_oled/dashboard_oled.cbp574
22 files changed, 929 insertions, 1476 deletions
diff --git a/obdlogger/cores/CDC.cpp b/obdlogger/cores/CDC.cpp
deleted file mode 100644
index 1af755e..0000000
--- a/obdlogger/cores/CDC.cpp
+++ /dev/null
@@ -1,3 +0,0 @@
-/* Stub for CDC.cpp */
-
-#include <CDC.cpp> \ No newline at end of file
diff --git a/obdlogger/cores/HardwareSerial.cpp b/obdlogger/cores/HardwareSerial.cpp
deleted file mode 100644
index 33f301e..0000000
--- a/obdlogger/cores/HardwareSerial.cpp
+++ /dev/null
@@ -1,3 +0,0 @@
-/* Stub for HardwareSerial.cpp */
-
-#include <HardwareSerial.cpp> \ No newline at end of file
diff --git a/obdlogger/cores/Print.cpp b/obdlogger/cores/Print.cpp
deleted file mode 100644
index dedc1af..0000000
--- a/obdlogger/cores/Print.cpp
+++ /dev/null
@@ -1 +0,0 @@
-#include <Print.cpp> \ No newline at end of file
diff --git a/obdlogger/cores/Stream.cpp b/obdlogger/cores/Stream.cpp
deleted file mode 100644
index 5e18362..0000000
--- a/obdlogger/cores/Stream.cpp
+++ /dev/null
@@ -1 +0,0 @@
-#include <Stream.cpp> \ No newline at end of file
diff --git a/obdlogger/cores/USBCore.cpp b/obdlogger/cores/USBCore.cpp
deleted file mode 100644
index 76ff084..0000000
--- a/obdlogger/cores/USBCore.cpp
+++ /dev/null
@@ -1,2 +0,0 @@
-#include <HID.cpp>
-#include <USBCore.cpp>
diff --git a/obdlogger/cores/WInterrupts.c b/obdlogger/cores/WInterrupts.c
deleted file mode 100644
index 67e386e..0000000
--- a/obdlogger/cores/WInterrupts.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <WInterrupts.c> \ No newline at end of file
diff --git a/obdlogger/cores/WMath.cpp b/obdlogger/cores/WMath.cpp
deleted file mode 100644
index 22ac58c..0000000
--- a/obdlogger/cores/WMath.cpp
+++ /dev/null
@@ -1 +0,0 @@
-#include <WMath.cpp> \ No newline at end of file
diff --git a/obdlogger/cores/WString.cpp b/obdlogger/cores/WString.cpp
deleted file mode 100644
index 835c753..0000000
--- a/obdlogger/cores/WString.cpp
+++ /dev/null
@@ -1 +0,0 @@
-#include <WString.cpp> \ No newline at end of file
diff --git a/obdlogger/cores/main.cpp b/obdlogger/cores/main.cpp
deleted file mode 100644
index 14a9885..0000000
--- a/obdlogger/cores/main.cpp
+++ /dev/null
@@ -1 +0,0 @@
-#include <main.cpp> \ No newline at end of file
diff --git a/obdlogger/cores/new.cpp b/obdlogger/cores/new.cpp
deleted file mode 100644
index 2ba8b6b..0000000
--- a/obdlogger/cores/new.cpp
+++ /dev/null
@@ -1 +0,0 @@
-#include <new.cpp> \ No newline at end of file
diff --git a/obdlogger/cores/wiring.c b/obdlogger/cores/wiring.c
deleted file mode 100644
index b986fad..0000000
--- a/obdlogger/cores/wiring.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <wiring.c> \ No newline at end of file
diff --git a/obdlogger/cores/wiring_analog.c b/obdlogger/cores/wiring_analog.c
deleted file mode 100644
index 0c23337..0000000
--- a/obdlogger/cores/wiring_analog.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <wiring_analog.c> \ No newline at end of file
diff --git a/obdlogger/cores/wiring_digital.c b/obdlogger/cores/wiring_digital.c
deleted file mode 100644
index 420e9c6..0000000
--- a/obdlogger/cores/wiring_digital.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <wiring_digital.c>
diff --git a/obdlogger/cores/wiring_pulse.c b/obdlogger/cores/wiring_pulse.c
deleted file mode 100644
index 9b11811..0000000
--- a/obdlogger/cores/wiring_pulse.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <wiring_pulse.c>
diff --git a/obdlogger/cores/wiring_shift.c b/obdlogger/cores/wiring_shift.c
deleted file mode 100644
index cd996d4..0000000
--- a/obdlogger/cores/wiring_shift.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <wiring_shift.c>
diff --git a/obdlogger/libraries/SD.cpp b/obdlogger/libraries/SD.cpp
deleted file mode 100644
index d922fc8..0000000
--- a/obdlogger/libraries/SD.cpp
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <SD.cpp>
-#include <Sd2Card.cpp>
-#include <SdFile.cpp>
-#include <SdVolume.cpp>
-#include <File.cpp>
diff --git a/obdlogger/libraries/SoftwareSerial.cpp b/obdlogger/libraries/SoftwareSerial.cpp
deleted file mode 100644
index 4ae6f36..0000000
--- a/obdlogger/libraries/SoftwareSerial.cpp
+++ /dev/null
@@ -1 +0,0 @@
-#include <SoftwareSerial.cpp>
diff --git a/obdlogger/libraries/Wire.cpp b/obdlogger/libraries/Wire.cpp
deleted file mode 100644
index d56e040..0000000
--- a/obdlogger/libraries/Wire.cpp
+++ /dev/null
@@ -1 +0,0 @@
-#include <Wire.cpp>
diff --git a/obdlogger/libraries/twi.c b/obdlogger/libraries/twi.c
deleted file mode 100644
index 4621167..0000000
--- a/obdlogger/libraries/twi.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <twi.c>
diff --git a/obdlogger/obdlogger.cbp b/obdlogger/obdlogger.cbp
index eaab57a..b82383f 100644
--- a/obdlogger/obdlogger.cbp
+++ b/obdlogger/obdlogger.cbp
@@ -6,302 +6,582 @@
<Option pch_mode="2" />
<Option compiler="avrgcc" />
<Build>
- <Target title="Simulator - Release">
- <Option output="obdlogger_sim.exe" prefix_auto="1" extension_auto="0" />
+ <Target title="Simulator">
+ <Option output="bin/Release/obdlogger_sim.exe" prefix_auto="1" extension_auto="0" />
<Option object_output="obj/Release/" />
<Option type="1" />
<Option compiler="GCC" />
<Compiler>
<Add option="-Os" />
+ <Add option="-DF_CPU=16000000L" />
<Add option="-DARDUSIM" />
- <Add option="-DENABLE_API_NAME" />
- <Add option="-D__AVR_ATmega328P__" />
+ <Add option="-D__AVR_ATmega2560__" />
+ <Add option="-x c++" />
<Add directory="$(ARDUINO_DIR)/arduino/cores" />
<Add directory="$(ARDUINO_DIR)/arduino/variants/standard" />
<Add directory="$(ARDUINO_DIR)/include" />
</Compiler>
+ <Linker>
+ <Add option="-lardusim" />
+ </Linker>
<Environment>
<Variable name="ARDUINO_DIR" value="$(APP_PATH)\ardusim" />
</Environment>
</Target>
<Target title="Arduino Uno">
- <Option output="bin/Release/obdlogger_${BOARD_ID}_$(UPLOAD_PORT).elf" prefix_auto="1" extension_auto="0" />
+ <Option output="bin/Release/obdlogger_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
<Option type="1" />
<Option compiler="avrgcc" />
<Compiler>
- <Add option="-Os" />
+ <Add option="-x c++" />
<Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
<Add option="-D__AVR_ATmega328P__" />
+ <Add option="-Os" />
<Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
<Add directory="$(ARDUINO_DIR)/libraries" />
<Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/standard" />
</Compiler>
<Linker>
- <Add option="-s" />
<Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
</Linker>
<ExtraCommands>
- <Add after="avr-objcopy -O ihex -R .eeprom -R .eesafe $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).hex" />
- <Add after="avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).eep.hex" />
- <Add after="avr-size --mcu=$(MCU) --format=avr $(TARGET_OUTPUT_FILE)" />
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
</ExtraCommands>
<Environment>
- <Variable name="ARDUINO_DIR" value="$(APP_PATH)\arduino" />
<Variable name="BOARD" value="Arduino Uno" />
<Variable name="BOARD_ID" value="uno" />
<Variable name="MCU" value="atmega328p" />
+ <Variable name="MCU_CLOCK" value="16" />
<Variable name="UPLOAD_BAUDRATE" value="115200" />
<Variable name="UPLOAD_PORT" value="" />
</Environment>
</Target>
<Target title="Arduino Leonardo">
- <Option output="bin/Release/obdlogger_${BOARD_ID}_$(UPLOAD_PORT).elf" prefix_auto="1" extension_auto="0" />
+ <Option output="bin/Release/obdlogger_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
<Option type="1" />
<Option compiler="avrgcc" />
<Compiler>
- <Add option="-Os" />
+ <Add option="-x c++" />
<Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
<Add option="-D__AVR_ATmega32U4__" />
<Add option="-DUSB_VID=0x2341" />
<Add option="-DUSB_PID=0x8036" />
+ <Add option="-Os" />
<Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
<Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/leonardo" />
</Compiler>
<Linker>
- <Add option="-s" />
<Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
</Linker>
<ExtraCommands>
- <Add after="avr-objcopy -O ihex -R .eeprom -R .eesafe $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).hex" />
- <Add after="avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).eep.hex" />
- <Add after="avr-size --mcu=$(MCU) --format=avr $(TARGET_OUTPUT_FILE)" />
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
</ExtraCommands>
<Environment>
- <Variable name="ARDUINO_DIR" value="$(APP_PATH)\arduino" />
<Variable name="BOARD" value="Arduino Leonardo" />
<Variable name="BOARD_ID" value="leonardo" />
<Variable name="MCU" value="atmega32u4" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="57600" />
+ <Variable name="UPLOAD_PORT" value="" />
+ </Environment>
+ </Target>
+ <Target title="Arduino Esplora">
+ <Option output="bin/Release/obdlogger_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
+ <Add option="-D__AVR_ATmega32U4__" />
+ <Add option="-DUSB_VID=0x2341" />
+ <Add option="-DUSB_PID=0x8037" />
+ <Add option="-Os" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/leonardo" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ </Linker>
+ <ExtraCommands>
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
+ </ExtraCommands>
+ <Environment>
+ <Variable name="BOARD" value="Arduino Esplora" />
+ <Variable name="BOARD_ID" value="esplora" />
+ <Variable name="MCU" value="atmega32u4" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="57600" />
+ <Variable name="UPLOAD_PORT" value="" />
+ </Environment>
+ </Target>
+ <Target title="Arduino Micro">
+ <Option output="bin/Release/obdlogger_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
+ <Add option="-D__AVR_ATmega32U4__" />
+ <Add option="-DUSB_VID=0x2341" />
+ <Add option="-DUSB_PID=0x803C" />
+ <Add option="-Os" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/micro" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ </Linker>
+ <ExtraCommands>
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
+ </ExtraCommands>
+ <Environment>
+ <Variable name="BOARD" value="Arduino Micro" />
+ <Variable name="BOARD_ID" value="micro" />
+ <Variable name="MCU" value="atmega32u4" />
+ <Variable name="MCU_CLOCK" value="16" />
<Variable name="UPLOAD_BAUDRATE" value="57600" />
<Variable name="UPLOAD_PORT" value="" />
</Environment>
</Target>
<Target title="Arduino Duemilanove (328)">
- <Option output="bin/Release/obdlogger_${BOARD_ID}_$(UPLOAD_PORT).elf" prefix_auto="1" extension_auto="0" />
+ <Option output="bin/Release/obdlogger_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
<Option type="1" />
<Option compiler="avrgcc" />
<Compiler>
- <Add option="-O2" />
+ <Add option="-x c++" />
<Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
<Add option="-D__AVR_ATmega328P__" />
+ <Add option="-Os" />
<Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
<Add directory="$(ARDUINO_DIR)/libraries" />
<Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/standard" />
</Compiler>
<Linker>
- <Add option="-s" />
<Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
</Linker>
<ExtraCommands>
- <Add after="avr-objcopy -O ihex -R .eeprom -R .eesafe $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).hex" />
- <Add after="avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).eep.hex" />
- <Add after="avr-size --mcu=$(MCU) --format=avr $(TARGET_OUTPUT_FILE)" />
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
</ExtraCommands>
<Environment>
- <Variable name="ARDUINO_DIR" value="$(APP_PATH)\arduino" />
<Variable name="BOARD" value="Arduino Duemilanove (328)" />
<Variable name="BOARD_ID" value="duemilanove328" />
<Variable name="MCU" value="atmega328p" />
+ <Variable name="MCU_CLOCK" value="16" />
<Variable name="UPLOAD_BAUDRATE" value="57600" />
<Variable name="UPLOAD_PORT" value="" />
</Environment>
</Target>
- <Target title="Arduino Nano (328)">
- <Option output="bin/Release/obdlogger_${BOARD_ID}_$(UPLOAD_PORT).elf" prefix_auto="1" extension_auto="0" />
+ <Target title="Arduino Duemilanove (168)">
+ <Option output="bin/Release/obdlogger_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
<Option type="1" />
<Option compiler="avrgcc" />
<Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
+ <Add option="-D__AVR_ATmega168__" />
<Add option="-Os" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/standard" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ </Linker>
+ <ExtraCommands>
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
+ </ExtraCommands>
+ <Environment>
+ <Variable name="BOARD" value="Arduino Duemilanove (168)" />
+ <Variable name="BOARD_ID" value="duemilanove168" />
+ <Variable name="MCU" value="atmega168" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="19200" />
+ <Variable name="UPLOAD_PORT" value="" />
+ </Environment>
+ </Target>
+ <Target title="Arduino Nano (328)">
+ <Option output="bin/Release/obdlogger_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-x c++" />
<Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
<Add option="-D__AVR_ATmega328P__" />
+ <Add option="-Os" />
<Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
<Add directory="$(ARDUINO_DIR)/libraries" />
<Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/eightanaloginputs" />
</Compiler>
<Linker>
- <Add option="-s" />
<Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
</Linker>
<ExtraCommands>
- <Add after="avr-objcopy -O ihex -R .eeprom -R .eesafe $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).hex" />
- <Add after="avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).eep.hex" />
- <Add after="avr-size --mcu=$(MCU) --format=avr $(TARGET_OUTPUT_FILE)" />
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
</ExtraCommands>
<Environment>
- <Variable name="ARDUINO_DIR" value="$(APP_PATH)\arduino" />
<Variable name="BOARD" value="Arduino Nano (328)" />
<Variable name="BOARD_ID" value="nano328" />
<Variable name="MCU" value="atmega328p" />
+ <Variable name="MCU_CLOCK" value="16" />
<Variable name="UPLOAD_BAUDRATE" value="57600" />
<Variable name="UPLOAD_PORT" value="" />
</Environment>
</Target>
- <Target title="Arduino Mini (328)">
- <Option output="bin/Release/obdlogger_${BOARD_ID}_$(UPLOAD_PORT).elf" prefix_auto="1" extension_auto="0" />
+ <Target title="Arduino Nano (168)">
+ <Option output="bin/Release/obdlogger_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
<Option type="1" />
<Option compiler="avrgcc" />
<Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
+ <Add option="-D__AVR_ATmega168__" />
<Add option="-Os" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/eightanaloginputs" />
+ </Compiler>
+ <Linker>
<Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ </Linker>
+ <ExtraCommands>
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
+ </ExtraCommands>
+ <Environment>
+ <Variable name="BOARD" value="Arduino Nano (168)" />
+ <Variable name="BOARD_ID" value="nano168" />
+ <Variable name="MCU" value="atmega168" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="19200" />
+ <Variable name="UPLOAD_PORT" value="" />
+ </Environment>
+ </Target>
+ <Target title="Arduino Mini (328)">
+ <Option output="bin/Release/obdlogger_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
<Add option="-D__AVR_ATmega328P__" />
+ <Add option="-Os" />
<Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
<Add directory="$(ARDUINO_DIR)/libraries" />
<Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/eightanaloginputs" />
</Compiler>
<Linker>
- <Add option="-s" />
<Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
</Linker>
<ExtraCommands>
- <Add after="avr-objcopy -O ihex -R .eeprom -R .eesafe $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).hex" />
- <Add after="avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).eep.hex" />
- <Add after="avr-size --mcu=$(MCU) --format=avr $(TARGET_OUTPUT_FILE)" />
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
</ExtraCommands>
<Environment>
- <Variable name="ARDUINO_DIR" value="$(APP_PATH)\arduino" />
<Variable name="BOARD" value="Arduino Mini (328)" />
<Variable name="BOARD_ID" value="mini328" />
<Variable name="MCU" value="atmega328p" />
+ <Variable name="MCU_CLOCK" value="16" />
<Variable name="UPLOAD_BAUDRATE" value="57600" />
<Variable name="UPLOAD_PORT" value="" />
</Environment>
</Target>
- <Target title="Arduino Pro Mini (328)">
- <Option output="bin/Release/obdlogger_${BOARD_ID}_$(UPLOAD_PORT).elf" prefix_auto="1" extension_auto="0" />
+ <Target title="Arduino Mini (168)">
+ <Option output="bin/Release/obdlogger_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
<Option type="1" />
<Option compiler="avrgcc" />
<Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
+ <Add option="-D__AVR_ATmega168__" />
<Add option="-Os" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/eightanaloginputs" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ </Linker>
+ <ExtraCommands>
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
+ </ExtraCommands>
+ <Environment>
+ <Variable name="BOARD" value="Arduino Mini (168)" />
+ <Variable name="BOARD_ID" value="mini168" />
+ <Variable name="MCU" value="atmega168" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="19200" />
+ <Variable name="UPLOAD_PORT" value="" />
+ </Environment>
+ </Target>
+ <Target title="Arduino Pro Mini (328)">
+ <Option output="bin/Release/obdlogger_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-x c++" />
<Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
<Add option="-D__AVR_ATmega328P__" />
+ <Add option="-Os" />
<Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
<Add directory="$(ARDUINO_DIR)/libraries" />
<Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/standard" />
</Compiler>
<Linker>
- <Add option="-s" />
<Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
</Linker>
<ExtraCommands>
- <Add after="avr-objcopy -O ihex -R .eeprom -R .eesafe $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).hex" />
- <Add after="avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).eep.hex" />
- <Add after="avr-size --mcu=$(MCU) --format=avr $(TARGET_OUTPUT_FILE)" />
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
</ExtraCommands>
<Environment>
- <Variable name="ARDUINO_DIR" value="$(APP_PATH)\arduino" />
<Variable name="BOARD" value="Arduino Pro Mini (328)" />
<Variable name="BOARD_ID" value="promini328" />
<Variable name="MCU" value="atmega328p" />
+ <Variable name="MCU_CLOCK" value="16" />
<Variable name="UPLOAD_BAUDRATE" value="57600" />
<Variable name="UPLOAD_PORT" value="" />
</Environment>
</Target>
+ <Target title="Arduino Pro Mini (168)">
+ <Option output="bin/Release/obdlogger_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
+ <Add option="-D__AVR_ATmega168__" />
+ <Add option="-Os" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/standard" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ </Linker>
+ <ExtraCommands>
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
+ </ExtraCommands>
+ <Environment>
+ <Variable name="BOARD" value="Arduino Pro Mini (168)" />
+ <Variable name="BOARD_ID" value="promini168" />
+ <Variable name="MCU" value="atmega168" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="19200" />
+ <Variable name="UPLOAD_PORT" value="" />
+ </Environment>
+ </Target>
<Target title="Arduino Mega 2560/ADK">
- <Option output="bin/Release/obdlogger_${BOARD_ID}_$(UPLOAD_PORT).elf" prefix_auto="1" extension_auto="0" />
+ <Option output="bin/Release/obdlogger_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
<Option type="1" />
<Option compiler="avrgcc" />
<Compiler>
- <Add option="-O2" />
+ <Add option="-x c++" />
<Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
<Add option="-D__AVR_ATmega2560__" />
+ <Add option="-O2" />
<Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
<Add directory="$(ARDUINO_DIR)/libraries" />
<Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/mega" />
</Compiler>
<Linker>
- <Add option="-s" />
<Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
</Linker>
<ExtraCommands>
- <Add after="avr-objcopy -O ihex -R .eeprom -R .eesafe $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).hex" />
- <Add after="avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).eep.hex" />
- <Add after="avr-size --mcu=$(MCU) --format=avr $(TARGET_OUTPUT_FILE)" />
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
</ExtraCommands>
<Environment>
- <Variable name="ARDUINO_DIR" value="$(APP_PATH)\arduino" />
<Variable name="BOARD" value="Arduino Mega 2560\ADK" />
<Variable name="BOARD_ID" value="mega2560" />
<Variable name="MCU" value="atmega2560" />
- <Variable name="UPLOAD_BAUDRATE" value="115200" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="57600" />
<Variable name="UPLOAD_PORT" value="" />
</Environment>
</Target>
<Target title="Arduino Mega 1280">
- <Option output="bin/Release/obdlogger_${BOARD_ID}_$(UPLOAD_PORT).elf" prefix_auto="1" extension_auto="0" />
+ <Option output="bin/Release/obdlogger_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
<Option type="1" />
<Option compiler="avrgcc" />
<Compiler>
- <Add option="-O2" />
+ <Add option="-x c++" />
<Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
<Add option="-D__AVR_ATmega1280__" />
+ <Add option="-O2" />
<Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
<Add directory="$(ARDUINO_DIR)/libraries" />
<Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/mega" />
</Compiler>
<Linker>
- <Add option="-s" />
<Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
</Linker>
<ExtraCommands>
- <Add after="avr-objcopy -O ihex -R .eeprom -R .eesafe $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).hex" />
- <Add after="avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).eep.hex" />
- <Add after="avr-size --mcu=$(MCU) --format=avr $(TARGET_OUTPUT_FILE)" />
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
</ExtraCommands>
<Environment>
- <Variable name="ARDUINO_DIR" value="$(APP_PATH)\arduino" />
<Variable name="BOARD" value="Arduino Mega 1280" />
<Variable name="BOARD_ID" value="mega1280" />
<Variable name="MCU" value="atmega1280" />
+ <Variable name="MCU_CLOCK" value="16" />
<Variable name="UPLOAD_BAUDRATE" value="57600" />
<Variable name="UPLOAD_PORT" value="" />
</Environment>
</Target>
+ <Target title="Arduino Mega 8">
+ <Option output="bin/Release/obdlogger_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
+ <Add option="-D__AVR_ATmega328P__" />
+ <Add option="-Os" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/standard" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ </Linker>
+ <ExtraCommands>
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
+ </ExtraCommands>
+ <Environment>
+ <Variable name="BOARD" value="Arduino Mega 8" />
+ <Variable name="BOARD_ID" value="mega8" />
+ <Variable name="MCU" value="atmega8" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="19200" />
+ <Variable name="UPLOAD_PORT" value="" />
+ </Environment>
+ </Target>
<Target title="Microduino Core+ (644P)">
- <Option output="bin/Release/obdlogger_${BOARD_ID}_$(UPLOAD_PORT).elf" prefix_auto="1" extension_auto="0" />
+ <Option output="bin/Release/obdlogger_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
<Option type="1" />
<Option compiler="avrgcc" />
<Compiler>
- <Add option="-O2" />
+ <Add option="-O3" />
+ <Add option="-x c++" />
<Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
<Add option="-D__AVR_ATmega644P__" />
<Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
<Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/plus" />
</Compiler>
<Linker>
<Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
</Linker>
<ExtraCommands>
- <Add after="avr-objcopy -O ihex -R .eeprom -R .eesafe $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).hex" />
- <Add after="avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex $(TARGET_OUTPUT_FILE) $(TARGET_OUTPUT_FILE).eep.hex" />
- <Add after="avr-size --mcu=$(MCU) --format=avr $(TARGET_OUTPUT_FILE)" />
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
</ExtraCommands>
<Environment>
+ <Variable name="BOARD" value="Microduino Core+ (644P)" />
<Variable name="BOARD_ID" value="uduino644p" />
<Variable name="MCU" value="atmega644p" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="115200" />
+ <Variable name="UPLOAD_PORT" value="" />
</Environment>
</Target>
</Build>
<Compiler>
- <Add option="-fno-exceptions" />
- <Add option="-ffunction-sections" />
- <Add option="-fdata-sections" />
- <Add option="-s" />
- <Add option="-DF_CPU=16000000L" />
<Add directory="." />
- <Add directory="include" />
</Compiler>
- <Linker>
- <Add option="-Wl,--gc-sections" />
- </Linker>
<Unit filename="LCD4Bit_mod.cpp" />
<Unit filename="LCD4Bit_mod.h" />
<Unit filename="MPU6050.cpp" />
@@ -316,46 +596,9 @@
<Unit filename="TinyGPS.h" />
<Unit filename="ZtLib.cpp" />
<Unit filename="ZtLib.h" />
- <Unit filename="cores/CDC.cpp" />
- <Unit filename="cores/HardwareSerial.cpp" />
- <Unit filename="cores/Print.cpp" />
- <Unit filename="cores/Stream.cpp" />
- <Unit filename="cores/USBCore.cpp" />
- <Unit filename="cores/WInterrupts.c">
- <Option compilerVar="CC" />
- </Unit>
- <Unit filename="cores/WMath.cpp" />
- <Unit filename="cores/WString.cpp" />
- <Unit filename="cores/main.cpp" />
- <Unit filename="cores/new.cpp" />
- <Unit filename="cores/wiring.c">
- <Option compilerVar="CC" />
- </Unit>
- <Unit filename="cores/wiring_analog.c">
- <Option compilerVar="CC" />
- </Unit>
- <Unit filename="cores/wiring_digital.c">
- <Option compilerVar="CC" />
- </Unit>
- <Unit filename="cores/wiring_pulse.c">
- <Option compilerVar="CC" />
- </Unit>
- <Unit filename="cores/wiring_shift.c">
- <Option compilerVar="CC" />
- </Unit>
- <Unit filename="libraries/SD.cpp" />
- <Unit filename="libraries/SoftwareSerial.cpp">
- <Option compile="0" />
- <Option link="0" />
- </Unit>
- <Unit filename="libraries/Wire.cpp" />
- <Unit filename="libraries/twi.c">
- <Option compilerVar="CC" />
- </Unit>
<Unit filename="obdlogger.ino">
<Option compile="1" />
<Option link="1" />
- <Option compiler="avrgcc" use="1" buildCommand="$compiler $options -x c++ $includes -c $file -o $object" />
</Unit>
<Extensions>
<code_completion />
diff --git a/obdlogger/obdlogger.hex b/obdlogger/obdlogger.hex
deleted file mode 100644
index 0c23f7b..0000000
--- a/obdlogger/obdlogger.hex
+++ /dev/null
@@ -1,1336 +0,0 @@
-:100000000C9493000C94BB000C94BB000C94BB00AC
-:100010000C94BB000C94BB000C94BB000C94BB0074
-:100020000C94BB000C94BB000C94BB000C94BB0064
-:100030000C94BB000C94BB000C94BB000C94BB0054
-:100040000C94E0260C94BB000C946A230C94B82307
-:100050000C94BB000C94BB000C94BB000C94BB0034
-:100060000C94D8210C94BB0041545A0D000041540B
-:1000700045300D0041544C310D004154490D0000F4
-:10008000303130300D00303132300D00303134300D
-:100090000D0061746C700D00534541524348494E48
-:1000A0004700343120002530325825303258203175
-:1000B0000D007C3C3E5E2B3D3F2F5B5D3B2C2A229E
-:1000C0005C0000000000240027002A00000000005F
-:1000D000250028002B000000000023002600290036
-:1000E00004040404040404040202020202020303DE
-:1000F00003030303010204081020408001020408E6
-:100100001020010204081020000000070002010076
-:10011000000304060000000000000000AA08460ECC
-:1001200045212425A30811241FBECFEFD8E0DEBF50
-:10013000CDBF12E0A0E0B1E0E2E3F2E502C005903D
-:100140000D92A432B107D9F716E0A4E2B2E001C0E3
-:100150001D92AC37B107E1F711E0C4E2D1E004C071
-:100160002297FE010E940829CC31D107C9F70E94CD
-:100170007A250C940C290C940000FB01DC010590FD
-:100180000D920020E1F70895FB0155915523A9F048
-:10019000BF01DC014D9145174111E1F759F4CD0143
-:1001A0000590002049F04D9140154111C9F3FB0124
-:1001B0004111EFCF81E090E001970895FB01DC0150
-:1001C00004C08D910190801921F441505040C8F72E
-:1001D000881B990B0895FC018191861721F08823D3
-:1001E000D9F7992708953197CF010895FB01DC01D4
-:1001F0004150504048F001900D920020C9F701C0D5
-:100200001D9241505040E0F70895AEE0B0E0EBE0C1
-:10021000F1E00C94DD280D891E8986E08C831A8319
-:1002200009838FEF9FE79E838D839E01275E3F4F5B
-:10023000CE0101966F89788DA9010E944D012F8111
-:100240003885020F131FF80110822E96E4E00C94FB
-:10025000F928AEE0B0E0EFE2F1E00C94DD280D8982
-:100260001E898EE08C831A8309838FEF9FE79E831C
-:100270008D839E01275E3F4FCE0101966F89788D59
-:10028000A9010E944D012F813885020F131FF8012B
-:1002900010822E96E4E00C94F928ABE0B0E0E3E5A0
-:1002A000F1E00C94CF283C012B015A01FC0117828C
-:1002B0001682838181FD03C06FEF7FEFC6C19AE094
-:1002C000892E1E010894211C311CF3012381F201A7
-:1002D00023FD859123FF81912F01882309F4B2C169
-:1002E000853239F423FD859123FF81912F018532D9
-:1002F00029F490E0B3010E944003E7CF982FFF2438
-:10030000EE249924FFE1FF15D0F09B3269F09C3276
-:1003100028F4903259F0933291F40EC09D3249F096
-:10032000903369F441E024C052E0F52A84E0F82AD1
-:1003300028C098E0F92A25C0E0E1FE2A22C0F7FC97
-:1003400029C0892F80538A3070F4F6FE05C0989C2E
-:10035000902C1124980E15C0E89CE02C1124E80E76
-:10036000F0E2FF2A0EC09E3229F4F6FC6BC140E495
-:10037000F42A07C09C3619F450E8F52A02C09836D2
-:1003800049F4F20123FD959123FF91912F019923C7
-:1003900009F0B8CF892F8554833018F0805283300C
-:1003A00038F444E050E0A40EB51E5FE359830FC05B
-:1003B000933631F0933779F0933509F056C020C069
-:1003C000F5018081898342E050E0A40EB51E6101F1
-:1003D00001E010E012C0F501C080D180F6FC03C03E
-:1003E0006FEF7FEF02C0692D70E042E050E0A40E95
-:1003F000B51EC6010E9435038C015FE7F52214C0CB
-:10040000F501C080D180F6FC03C06FEF7FEF02C022
-:10041000692D70E042E050E0A40EB51EC6010E94B6
-:100420002A038C0150E8F52AF3FE07C01AC080E2C7
-:1004300090E0B3010E944003EA948E2D90E00817EB
-:100440001907A8F30EC0F601F7FC8591F7FE81911C
-:100450006F0190E0B3010E944003E110EA94015063
-:1004600010400115110579F7EAC0943611F099365C
-:1004700069F5F7FE08C0F501208131814281538181
-:1004800084E090E00AC0F501808191819C014427BD
-:1004900037FD4095542F82E090E0A80EB91E9FE6EC
-:1004A000F92257FF09C050954095309521953F4F4F
-:1004B0004F4F5F4FE0E8FE2ACA01B901A1012AE0CF
-:1004C00030E00E946C03D82ED21840C0953729F432
-:1004D0001F2D1F7E2AE030E01DC01F2D197F9F3683
-:1004E00061F0903720F4983509F0ACC00FC0903718
-:1004F00039F0983709F0A6C004C028E030E00AC0FF
-:10050000106114FD146020E130E004C014FD166099
-:1005100020E132E017FF08C0F5016081718182811E
-:10052000938144E050E008C0F50180819181BC01D5
-:1005300080E090E042E050E0A40EB51EA1010E94D0
-:100540006C03D82ED2188FE7F82EF122F6FE0BC0DE
-:100550005EEFF522D91438F4F4FE07C0F2FC05C0B2
-:100560008FEEF82202C01D2D01C0192DF4FE0DC022
-:10057000FE01ED0DF11D8081803319F499EEF92211
-:1005800008C01F5FF2FE05C003C08F2D867809F0FA
-:100590001F5F0F2DF3FC14C0F0FE0FC01E1510F0EE
-:1005A0009D2C0BC09D2C9E0C911A1E2D06C080E226
-:1005B00090E0B3010E9440031F5F1E15C0F304C00A
-:1005C0001E1510F4E11A01C0EE2404FF0FC080E3F1
-:1005D00090E0B3010E94400302FF1DC001FD03C073
-:1005E00088E790E00EC088E590E00BC0802F867809
-:1005F00091F001FF02C08BE201C080E2F7FC8DE2C6
-:1006000090E0B3010E94400306C080E390E0B30194
-:100610000E9440039A94D914C0F3DA94F101ED0DCD
-:10062000F11D808190E0B3010E944003DD20A9F715
-:1006300006C080E290E0B3010E944003EA94EE20FD
-:10064000C1F743CEF30166817781CB012B96E2E1BE
-:100650000C94EB28FC010590615070400110D8F714
-:10066000809590958E0F9F1F0895FC0161507040FA
-:1006700001900110D8F7809590958E0F9F1F0895D7
-:100680000F931F93CF93DF938C01EB018B8181FF3D
-:100690001BC082FF0DC02E813F818C819D81281758
-:1006A000390764F4E881F9810193F983E88306C08E
-:1006B000E885F985802F0995892B31F48E819F81FA
-:1006C00001969F838E8302C00FEF1FEFC801DF9159
-:1006D000CF911F910F910895FA01AA27283051F167
-:1006E000203181F1E8946F936E7F6E5F7F4F8F4F63
-:1006F0009F4FAF4FB1E03ED0B4E03CD0670F781FC2
-:10070000891F9A1FA11D680F791F8A1F911DA11DA6
-:100710006A0F711D811D911DA11D20D009F46894DF
-:100720003F912AE0269F11243019305D3193DEF687
-:10073000CF010895462F4770405D4193B3E00FD03D
-:10074000C9F7F6CF462F4F70405D4A3318F0495D28
-:1007500031FD4052419302D0A9F7EACFB4E0A6950B
-:100760009795879577956795BA95C9F7009761052D
-:10077000710508959B01AC010A2E06945795479583
-:1007800037952795BA95C9F7620F731F841F951F78
-:10079000A01D08950F931F938C01FC01838160E0DD
-:1007A0000E94132881E090E00E948F27F801838146
-:1007B00061E00E94132881E090E00E948F27F801F9
-:1007C000838160E00E94132861E070E080E090E0A7
-:1007D0000E9436271F910F9108950F931F93CF9377
-:1007E000DF93EC01062F0F701C8107C0602F617032
-:1007F000812F0E94132806951F5F8F818117B0F704
-:10080000CE010E94CA03DF91CF911F910F910895ED
-:10081000EF92FF921F937C01162F70E084E0759594
-:1008200067958A95E1F7C7010E94ED031F70C70124
-:10083000612F0E94ED031F91FF90EF9008951F9389
-:10084000CF93DF93EC01162F898160E00E9413287B
-:100850008881882321F08A8160E00E941328CE01DC
-:10086000612F0E94ED03DF91CF911F9108951F9397
-:10087000CF93DF93EC01162F898161E00E9413284A
-:100880008881882321F08A8160E00E941328CE01AC
-:10089000612F0E940804DF91CF911F910895EF927C
-:1008A000FF920F931F93CF93DF937C01FB01019085
-:1008B0000020E9F731970E2F061BEB0110E008C06E
-:1008C000688164311CF0C7010E9437041F5F2196C4
-:1008D0001017B0F3DF91CF911F910F91FF90EF9020
-:1008E00008951F93CF93DF93EC01162F898160E069
-:1008F0000E9413288881882321F08A8160E00E9469
-:100900001328CE01612F0E940804DF91CF911F911F
-:100910000895FF920F931F93CF93DF93EC01F62E70
-:10092000042F62E00E94710488E2089F8001112474
-:10093000F00E00E005C0CE0164E10E9471040F5F7B
-:100940000F15C8F3DF91CF911F910F91FF9008957C
-:10095000CF93DF93EC018B8161E00E94D4278981E2
-:1009600061E00E94D4278881882321F08A8161E098
-:100970000E94D4278C8161E00E94D4278D8161E0A0
-:100980000E94D4278E8161E00E94D4278F8161E08C
-:100990000E94D42762E370E080E090E00E94362756
-:1009A000CE0163E00E941F0465E070E080E090E00B
-:1009B0000E943627CE0163E00E941F0484E690E087
-:1009C0000E948F27CE0163E00E941F0465E070E063
-:1009D00080E090E00E943627CE0162E00E941F0472
-:1009E000CE0162E00E941F0468856150660F660FA9
-:1009F000660FCE010E941F048CE390E00E948F27B7
-:100A0000CE016CE00E9471048CE390E00E948F277D
-:100A1000CE0161E00E94710463E070E080E090E04C
-:100A20000E943627CE0166E00E94710461E070E00A
-:100A300080E090E00E943627DF91CF91089561E039
-:100A40000E94710461E070E080E090E00E9436272F
-:100A50000895FC01408120E030E050E023C0842F65
-:100A60008154863010F447500CC0842F8156863054
-:100A700010F4475206C0403299F0842F80538A30D8
-:100A8000A8F4C90124E0880F991F2A95E1F7242FC3
-:100A9000332727FD30952F703070282B392B5F5F5F
-:100AA00031964081442311F05430CCF2C9010895AD
-:100AB000FC0120819181822F8154863010F42750CF
-:100AC0000AC0822F8156863010F4275204C0822F2C
-:100AD00080538A30B0F4892F8154863010F49750B7
-:100AE0000AC0892F8156863010F4975204C0892F8E
-:100AF00080538A3030F49F70822F8295807F892BBB
-:100B0000089580E00895CF93DF93EA018F3009F4D0
-:100B100040C0803198F48B3009F463C08C3038F4D5
-:100B20008530B9F18A3069F1843009F550C08D30D3
-:100B300009F457C08E3008F05AC01BC08F3209F438
-:100B400046C0803340F4813109F441C08131A8F1BD
-:100B50008F3169F455C0833309F443C0843318F4EA
-:100B6000813329F44DC08334D1F0863491F080E094
-:100B70004DC0CB010E942905959587959595879540
-:100B800042C0CB010E94580593E0899FC001112407
-:100B90003AC0CB010E94580590E0889734C0CB0141
-:100BA0000E94290524E630E0AC01429FC001439F2A
-:100BB000900D529F900D112411C0CB010E94290568
-:100BC00064E670E00E949A28798368831EC0CB0196
-:100BD0000E94580594E6899FC00111246FEF70E0D0
-:100BE000F1CFCB010E945805888319820EC0CB013A
-:100BF0000E94580590E0805890409595879503C0D5
-:100C0000CB010E9429059983888381E0DF91CF91F0
-:100C10000895DF92EF92FF920F931F93DF93CF938C
-:100C2000CDB7DEB7E0970FB6F894DEBF0FBECDBFED
-:100C30008C01D62E7A01DC01ED91FC910190F081BE
-:100C4000E02DAE014F5F5F4F0995BC01009759F44D
-:100C5000D801ED91FC910484F585E02DC8016DE08B
-:100C6000099580E004C08D2DA7010E948305E096C0
-:100C70000FB6F894DEBF0FBECDBFCF91DF911F91AD
-:100C80000F91FF90EF90DF900895CF92DF92EF9257
-:100C9000FF920F931F93DF93CF93CDB7DEB7E0970B
-:100CA0000FB6F894DEBF0FBECDBFFC017B016A0119
-:100CB000A081B1812D913C9160E0AE014F5F5F4F0B
-:100CC000F90109958C01009711F480E009C00397A0
-:100CD0000E945805F7018083B801A6010E94830590
-:100CE000E0960FB6F894DEBF0FBECDBFCF91DF9177
-:100CF0001F910F91FF90EF90DF90CF9008955F923A
-:100D00006F927F928F929F92AF92BF92CF92DF921B
-:100D1000EF92FF920F931F93DF93CF9300D000D0F9
-:100D200000D0CDB7DEB78C01562EEE24FF243E0155
-:100D30000894611C711C5520A9F4B701660F771F38
-:100D40006E0D7F1D660F771F68597F4FC3010E948C
-:100D5000BD00D801ED91FC910284F385E02DC8011E
-:100D6000B30109950E9428274B015C01CC24DD24A6
-:100D7000D801ED91FC910680F781E02DC80109951D
-:100D8000882389F0D801ED91FC910084F185E02D54
-:100D9000C80109958E3311F4D394EACFBEE2BC1595
-:100DA00038F3C394E5CFDD2069F40E942827681941
-:100DB00079098A099B09695B7B4080409040C0F2B9
-:100DC00080E00CC00894E11CF11CF7E0EF16F10480
-:100DD00009F0B1CFD80113961C9281E026960FB688
-:100DE000F894DEBF0FBECDBFCF91DF911F910F9161
-:100DF000FF90EF90DF90CF90BF90AF909F908F903B
-:100E00007F906F905F9008958F929F92AF92BF9264
-:100E1000CF92DF92EF92FF920F931F93CF93DF93C6
-:100E20008C01C62E7A010E9428274B015C01DD242B
-:100E3000D801ED91FC910680F781E02DC80109955C
-:100E4000CD2DD0E08823A9F0D801ED91FC9100844C
-:100E5000F185E02DC8010995CE0DDF1D8883D3945F
-:100E6000BFE2DB1669F18E3319F7E6E0ED1500F706
-:100E700027C0CE0DDF1D1882D80112968C918130CB
-:100E800051F4C70168E970E00E94C400892B19F48D
-:100E9000C0EDD7E002C0C8E5DBE10E942827681951
-:100EA00079098A099B099E0140E050E0261737071F
-:100EB0004807590708F0BCCFF80183818F5F83830F
-:100EC000F701ED0DF11D1082E70114C0EC0123962E
-:100ED000CC2029F0CE010E9458058C1559F4D80178
-:100EE00013961C9222968881803221F4AE014F5FC6
-:100EF0005F4F09C0CE0162EA70E00E94C400009713
-:100F000029F740E050E0CA01DF91CF911F910F9186
-:100F1000FF90EF90DF90CF90BF90AF909F908F9019
-:100F200008956115710591F0DB010D900020E9F73E
-:100F30001197A61BB70BE0914F06F0915006028067
-:100F4000F381E02D8FE496E0AD01099508958FE4DB
-:100F500096E00E94AB2408958FE496E00E947A24E4
-:100F600020E0892B09F021E0822F0895EF92FF9273
-:100F70000F931F93DF93CF93CDB7DEB728970FB6AC
-:100F8000F894DEBF0FBECDBF8C018DB79EB708971A
-:100F90000FB6F8949EBF0FBE8DBFEDB7FEB731966A
-:100FA0007E010894E11CF11CADB7BEB71296FC920D
-:100FB000EE92119786EA90E093838283D80112968D
-:100FC0008C9184831582668317820E9429018DB7D4
-:100FD0009EB708960FB6F8949EBF0FBE8DBFD8017E
-:100FE000ED91FC910284F385E02DC801B7010995CC
-:100FF00028960FB6F894DEBF0FBECDBFCF91DF911C
-:101000001F910F91FF90EF900895BF92CF92DF92C2
-:10101000EF92FF920F931F93CF93DF93EC01B62EC5
-:101020006A012223C9F00E9428277B018C01E881F4
-:10103000F9810680F781E02DCE010995882371F4AE
-:101040000E9428276E197F09800B910B605D774005
-:1010500080409040B0F4EBCF0E94B607E881F98160
-:101060000280F381E02DCE016B2DA6010995DF9161
-:10107000CF911F910F91FF90EF90DF90CF90BF9095
-:1010800008958B818F5F8B8380E0F1CF772767FD99
-:1010900070958FE496E00E94E424089581309105D4
-:1010A00009F047C06F5F7F4F09F04CC08DED91E0B4
-:1010B000909325028093240281E08093260210926F
-:1010C000270210922D0210922E02109231021092DD
-:1010D000330282E090E0A0E0B0E08093340290938D
-:1010E0003502A0933602B093370210924B0282E58C
-:1010F00092E00E94DD0C10926D0288E080936E02F7
-:101100008BE080936F0289E08093700284E080938B
-:10111000710285E08093720286E08093730287E01B
-:101120008093740282E090E090937602809375023F
-:101130000895892B39F46F5F7F4F21F482E592E0A7
-:101140000E94F00C089580E090E06FEF7FEF0E9426
-:101150004E08089581E090E06FEF7FEF0E944E0807
-:1011600008950F931F930DE612E0C8010E941F051A
-:10117000C8016CE540E00E948904C80160E071E0AC
-:101180000E944F04C8016CE541E00E948904C80137
-:1011900064E071E00E944F041F910F910895DF9267
-:1011A000EF92FF920F931F93CF93DF93D82E84E299
-:1011B00092E06D2D0E94B6074091880250918902FD
-:1011C000141615060CF0E7C0CAE8D2E082E592E0FA
-:1011D000BE010E94B30D6091AA027091AB02809192
-:1011E000AC029091AD0224E630E040E050E00E9475
-:1011F000AD286336710581059105D9F582E592E048
-:101200000E94510D00D000D000D0EDB7FEB731964E
-:10121000ADB7BEB71296DC93CE93119788E091E0FC
-:10122000938382838091840290918502A0918602AB
-:10123000B09187022AE0B695A795979587952A954C
-:10124000D1F7958384830E9405012DB73EB72A5FAD
-:101250003F4F0FB6F8943EBF0FBE2DBF8DE692E014
-:1012600068E443E00E9489048DE692E0BE010E949A
-:101270004F043DE0D31681F181E3D81609F454C040
-:101280009CE0D91609F087C000D000D000D0EDB79F
-:10129000FEB731960AE812E0ADB7BEB712961C93BE
-:1012A0000E9311978FE091E0938382838091AE0239
-:1012B0009091AF02958384830E9405012DB73EB7BC
-:1012C0002A5F3F4F0FB6F8943EBF0FBE2DBF8DE68D
-:1012D00092E060E040E058C000D000D000D0EDB710
-:1012E000FEB731960AE812E0ADB7BEB712961C936E
-:1012F0000E93119783E191E0938382838091AE02F4
-:101300009091AF02958384830E9405012DB73EB76B
-:101310002A5F3F4F0FB6F8943EBF0FBE2DBF8DE63C
-:1013200092E060E141E030C02091AE023091AF0226
-:101330004091B0025091B1022417350764F100D0FA
-:1013400000D000D0EDB7FEB731960AE812E0ADB795
-:10135000BEB712961C930E93119787E191E0938389
-:101360008283241B350B358324830E9405012DB70E
-:101370003EB72A5F3F4F0FB6F8943EBF0FBE2DBF5A
-:101380008DE692E060E043E00E9489048DE692E001
-:10139000B8010E944F0484E292E06D2D4EEA52E0C3
-:1013A0000E940906882309F46FC00E9428277B0148
-:1013B0008C018DB79EB70A970FB6F8949EBF0FBEEB
-:1013C0008DBFEDB7FEB731968AE892E0ADB7BEB7F4
-:1013D00012969C938E93119780E291E0938382837F
-:1013E0008091B2029091B3029701281B390B35838B
-:1013F0002483D68217828091AE029091AF029187AA
-:1014000080870E9405019C01909389028093880245
-:10141000442737FD4095542F809184029091850296
-:10142000A0918602B0918702820F931FA41FB51F5F
-:101430008093840290938502A0938602B0938702E2
-:101440008091AA029091AB02A091AC02B091AD0242
-:101450000196A11DB11D8093AA029093AB02A093A7
-:10146000AC02B093AD02E092B202F092B3020093EC
-:10147000B4021093B5028DB79EB70A960FB6F894D2
-:101480009EBF0FBE8DBF04C01092890210928802C9
-:10149000DF91CF911F910F91FF90EF90DF90089512
-:1014A0000F931F93DF93CF93CDB7DEB764970FB63B
-:1014B000F894DEBF0FBECDBF88E292E061E04AE063
-:1014C0000E94DC13882309F4A1C08091330282308A
-:1014D00029F0833049F0813051F403C02AE231E031
-:1014E00008C02EE231E005C022E331E002C027E36C
-:1014F00031E000D000D000D0EDB7FEB731968E01BC
-:101500000F5F1F4FADB7BEB712961C930E93119786
-:101510008BE391E093838283358324830E940501CA
-:101520008DB79EB706960FB6F8949EBF0FBE8DBFBF
-:101530008DE692E060E040E00E9489048DE692E052
-:10154000B8010E944F0484E392E068E272E041E057
-:101550000E94EA1C8823A1F484E392E068E272E02E
-:1015600040E00E94EA1C882359F48DE692E060E096
-:1015700041E00E9489048DE692E067E471E050C08A
-:101580006091380270E080E090E0969587957795BD
-:10159000679520913D0230913E0240913F0250916B
-:1015A00040020E94672800D000D000D0EDB7FEB7FF
-:1015B00031968E010F5F1F4FADB7BEB712961C93C9
-:1015C0000E9311972FE431E0338322833AE096950E
-:1015D0008795779567953A95D1F7758364830E94CF
-:1015E00005018DB79EB706960FB6F8949EBF0FBE45
-:1015F0008DBF8DE692E060E041E00E9489048DE6B7
-:1016000092E0B8010E944F0481E00DC08DE692E0A7
-:1016100060E041E00E9489048DE692E06DE571E0B2
-:101620000E944F0480E064960FB6F894DEBF0FBEB0
-:10163000CDBFCF91DF911F910F910895CF92DF928F
-:10164000EF92FF920F931F93DF93CF93CDB7DEB747
-:10165000A8970FB6F894DEBF0FBECDBF7E010894E9
-:10166000E11CF11C5EE6C52E51E0D52E0E94500A09
-:10167000882339F468EE73E080E090E00E9436271A
-:10168000F5CF86EB92E06AE00E94771101E010E06E
-:1016900000D000D000D0EDB7FEB73196ADB7BEB7E1
-:1016A0001296FC92EE921197D382C2821583048324
-:1016B0000E9405018DB79EB706960FB6F8949EBF9F
-:1016C0000FBE8DBF86EB92E0B7010E94290F8823E1
-:1016D00099F00F5F1F4F9FEF0F3F1907C9F68DE677
-:1016E00092E060E042E00E9489048DE692E06AE7C1
-:1016F00071E00E944F04BACF8DE692E060E042E0D4
-:101700000E9489048DE692E0B7010E944F04109276
-:101710008402109285021092860210928702CE01F6
-:101720000E9666EB72E0A70123E10E9452108889B1
-:10173000998990935502809354028A899B89AC8938
-:10174000BD898093560290935702A0935802B0939C
-:1017500059028E899F89A88DB98D80935A029093E2
-:101760005B02A0935C02B0935D02AEE5B2E0FE01C5
-:101770007A968DE001900D928150E1F78FA198A5A6
-:1017800090936C0280936B02CE010E960E94F00C37
-:1017900082E592E00E94320D882361F48DE692E0AA
-:1017A00060E042E00E9489048DE692E065E871E025
-:1017B0000E944F04A8960FB6F894DEBF0FBECDBFAF
-:1017C000CF91DF911F910F91FF90EF90DF90CF901D
-:1017D0000895CF93DF93809177028823A1F487E760
-:1017E00092E00E94A826892B71F00E94282760931E
-:1017F0007F0270938002809381029093820287E738
-:1018000092E00E94B226809183028F5F80938302D0
-:101810008150843059F085301CF4882329F00BC0A6
-:10182000843131F0803439F481E303C085E001C0B4
-:101830008FE00E94CF088CE00E94CF088DE00E94CC
-:10184000CF08809127028530A8F182E592E00E94BE
-:101850003F0D8DE692E00E941F058DE692E060E963
-:1018600071E00E944F048AE060E00E941328C0E00B
-:10187000D0E008C0CA30D10521F48DE692E00E9484
-:101880001F05219684E292E060E00E947F06882393
-:1018900089F38AE061E00E9413280E941E0B68EE23
-:1018A00073E080E090E00E9436270E94B108109219
-:1018B00083022AC00E9428279B01AC0180917F02ED
-:1018C00090918002A0918102B0918202281B390B75
-:1018D0004A0B5B0B20937F0230938002409381027E
-:1018E00050938202283E83E0380780E0480780E07A
-:1018F000580750F468EE73E080E090E0621B730BD1
-:10190000840B950B0E943627DF91CF9108958FE4C9
-:1019100096E040E056E960E070E00E94F3238DE637
-:1019200092E00E94A8048DE692E00E941F058DE6D9
-:1019300092E060EA71E00E944F048AE061E00E9458
-:10194000D4270E941E0B8DE692E060E043E00E94E7
-:1019500089048DE692E06DEA71E00E944F0484E212
-:1019600092E060E00E947F068823C9F384E292E05F
-:1019700061E340EB52E020E00E9405088DE692E032
-:1019800060E043E00E9489048DE692E06EEB71E036
-:101990000E944F0468EE73E080E090E00E943627DA
-:1019A0000E94B1080E9428276093B2027093B3028C
-:1019B0008093B4029093B5020895FC0113821282C1
-:1019C00088EE93E0A0E0B0E084839583A683B7839C
-:1019D0008FEE91E091838083128E118E148608958C
-:1019E000FC018FEE91E0918380830895DF93CF9384
-:1019F0000F92CDB7DEB7FC016983A081B181129649
-:101A00002D913C911397BE016F5F7F4F41E050E0F5
-:101A1000F90109950F90CF91DF910895DC01599656
-:101A2000ED91FC915A97309719F420E030E018C0FE
-:101A3000238934894589568982859385A485B5850E
-:101A4000281B390B4A0B5B0B2030B0E83B07B0E09A
-:101A50004B07B0E05B0720F02FEF3FE740E050E09E
-:101A6000C9010895DC015996ED91FC915A97309780
-:101A700011F480E008958581811181E00895CF936C
-:101A8000DF93EC01898D9A8D009741F00E9400163A
-:101A9000898D9A8D0E9410261A8E198EDF91CF9112
-:101AA0000895FC01818D928D009711F00E94B6156A
-:101AB0000895DF93CF930F92CDB7DEB7FC01818DF0
-:101AC000928D009749F0BE016F5F7F4F41E050E07B
-:101AD0000E94D716019719F02FEF3FEF03C08981BD
-:101AE000282F30E0C9010F90CF91DF910895EF9238
-:101AF000FF920F931F93DF93CF930F92CDB7DEB773
-:101B00007C01DC0159968D919C915A97009719F4AC
-:101B100000E010E01FC0BE016F5F7F4F41E050E06A
-:101B20000E94D716019719F00FEF1FEF13C089819C
-:101B3000082F10E0D7015996ED91FC915A974285F4
-:101B40005385648575854150504060407040CF0199
-:101B50000E94F014C8010F90CF91DF911F910F9157
-:101B6000FF90EF900895CF93DF93EC01E98DFA8D0C
-:101B7000309761F013821282CF010E941C199C01E0
-:101B8000E98DFA8D82819381892B31F081E090E09B
-:101B90009B838A8320E030E0C901DF91CF910895D3
-:101BA000EF92FF920F931F93CF93DF93EC01F62EEA
-:101BB000E72E8A011B821A8288EE93E0A0E0B0E053
-:101BC0008C839D83AE83BF838FEE91E0998388835E
-:101BD0008DE190E00E9489259A8F898F009791F07E
-:101BE000DC018F2D9E2D9C01F9018DE101900D925C
-:101BF0008150E1F7CE010C96B8014CE050E00E9414
-:101C0000F600188EDF91CF911F910F91FF90EF900A
-:101C100008950F931F93CF93DF938C01FB01C08135
-:101C2000D181FC01EC0FFD1F80818F3209F42196D8
-:101C300098012C0F3D1FA0E0B0E00BC0FA01EA0FA5
-:101C4000FB1F8083119621962F5F3F4FAC30B1056B
-:101C500031F0F90180818F3211F0882379F7A40FD8
-:101C6000B51F1C92F801EC0FFD1F80818F3209F423
-:101C70002196FB01D183C083C00FD11F88818111C0
-:101C800081E0DF91CF911F910F9108951092BB02D7
-:101C90001092BC021092BF021092C10282E090E04A
-:101CA000A0E0B0E08093C2029093C302A093C4026C
-:101CB000B093C5021092D9021092E3021092E20290
-:101CC0008FEF91E09093E1028093E0021092E502A1
-:101CD0000895EF92FF921F93DF93CF93CDB7DEB7B6
-:101CE0006D970FB6F894DEBF0FBECDBF9C01AB0160
-:101CF0001C821B828FEF91E09A8389831E827E0172
-:101D00000894E11CF11CC701B90121E00E94491BA4
-:101D1000182F882319F0C7010E940016812F6D9695
-:101D20000FB6F894DEBF0FBECDBFCF91DF911F91EC
-:101D3000FF90EF9008952F923F924F925F926F9293
-:101D40007F928F929F92BF92CF92DF92EF92FF92FB
-:101D50000F931F93DF93CF93CDB7DEB7C954D04015
-:101D60000FB6F894DEBF0FBECDBF1C017B012A0168
-:101D700039011B8A1A8A8FEF91E0998B888B1D8A13
-:101D800018AA1FA69EA78DA71AAA1A8219828B01CC
-:101D900020E1C22ED12CCC0EDD1E93E0892E912C99
-:101DA0008C0E9D1E03C0C80186016C01C101BE01DD
-:101DB0006F5F7F4FA4010E94090EB82E40E0882378
-:101DC00009F441E0C801B4019301F20109958823A7
-:101DD00039F40E151F0519F1C8010E9400161FC025
-:101DE000BB20A9F0C601B801A40121E00E94491B53
-:101DF000B82E0E151F0519F0C8010E940016BB2051
-:101E000071F00E151F0579F6CE018D96CDCF0E150A
-:101E10001F0519F0C8010E94001681E001C080E092
-:101E2000C75BDF4F0FB6F894DEBF0FBECDBFCF91BB
-:101E3000DF911F910F91FF90EF90DF90CF90BF90B7
-:101E40009F908F907F906F905F904F903F902F90DA
-:101E500008959B01BC01665D7F4FC90149E65EE0C4
-:101E600020E030E00E949B0E08952F923F924F9207
-:101E70005F926F927F928F929F92AF92BF92CF921A
-:101E8000DF92EF92FF920F931F93DF93CF93CDB723
-:101E9000DEB7C754D0400FB6F894DEBF0FBECDBF3B
-:101EA000582E492EFB013A01190184A595A5998B5D
-:101EB000888B2FEF31E03F872E8786A58A8B87A5F9
-:101EC0008B8B80A991A9A2A9B3A98C8B9D8BAE8B7A
-:101ED000BF8B84A995A9A6A9B7A9888F998FAA8F26
-:101EE000BB8F80AD91ADA2ADB3AD8C8F9D8FAE8F0A
-:101EF000BF8F84AD88A3FD9681919191A191B191FD
-:101F000089A39AA3ABA3BCA381919191A191B19113
-:101F10008DA39EA3AFA3B8A7808191819AA789A71B
-:101F20001EA61DA63CA72BA718AA7A018E01025F48
-:101F30001F4F3BE2A32EB12CAC0EBD1E4E010894E8
-:101F4000811C911C35C0D7018C918F3221F40894EB
-:101F5000E11CF11C2DC0422F4E194D3008F04CE011
-:101F6000C42EDD24C401B701A6010E94F600F401CD
-:101F7000EC0DFD1D1082C5010E940016C501B801BF
-:101F8000A40121E00E94491B882351F4E52DF42D82
-:101F9000138212828FEF91E091838083158266C055
-:101FA000EC0CFD1CC8010E940016C50158018C01F3
-:101FB000C7016FE270E00E94EB009C01009719F6E8
-:101FC000E618F708F101F182E082E52DF42DD80141
-:101FD00012968D919C911397938382838FEF91E05A
-:101FE0009183808314968C911497848315968C9199
-:101FF0001597858316962D913D914D915C9119977A
-:1020000026833783408751871A962D913D914D91B4
-:102010005C911D9722873387448755871E962D91A3
-:102020003D914D915C91519726873787408B518B1D
-:1020300052968C915297828B53962D913D914D9152
-:102040005C915697238B348B458B568B57962D91ED
-:102050003D914D915C915A97278B308F418F528FD4
-:102060005B968D919C915C97948F838F852D942D99
-:10207000C95BDF4F0FB6F894DEBF0FBECDBFCF9167
-:10208000DF911F910F91FF90EF90DF90CF90BF9065
-:10209000AF909F908F907F906F905F904F903F9008
-:1020A0002F9008959F92AF92BF92CF92DF92EF92BE
-:1020B000FF920F931F93DF93CF93CDB7DEB7C65731
-:1020C000D0400FB6F894DEBF0FBECDBFC82E992EFC
-:1020D0008A01D22E43E0A42EB12CAC0EBD1EC50148
-:1020E000A8019E012F5F3F4F0E94350FE980FA80C3
-:1020F000E00EF11EF70180814FEF51E02885882323
-:1021000009F03FC08D819E819BA38AA359A348A358
-:102110008F818CA32DA389859A85AB85BC858EA3E1
-:102120009FA3A8A7B9A78D859E85AF85B8898AA7E3
-:102130009BA7ACA7BDA789899A89AB89BC898EA7C3
-:102140009FA7A8ABB9AB8D898AAB8E899F89A88DD3
-:10215000B98D8BAB9CABADABBEAB8A8D9B8DAC8D83
-:10216000BD8D8FAB98AFA9AFBAAF8E8D9F8D9CAF51
-:102170008BAF8C2D992DBE01605E7F4F4FEC51E0EF
-:102180009FC0FE01FF96118210825EAF4DAFFE012F
-:10219000EE5BFF4F10822223A9F02250CE01CD9694
-:1021A000223048F460EE72E0A7012D2D0E94491BF9
-:1021B000882381F407C0B501A7012D2D0E94491B7A
-:1021C000882329F48C2D992D0E94DD0C7BC0C5013C
-:1021D0000E940016F6E0DF2259F0FE01E05BFF4F9F
-:1021E0004081518162817381CE01CD960E94F014AD
-:1021F0009E01265A3F4FFE01FF9680819181F90191
-:10220000938382838FEF91E091838083FE01EF5B64
-:10221000FF4F8081F9018483FE01EE5BFF4F8081D7
-:10222000F9018583FE01ED5BFF4F80819181A281E1
-:10223000B381F90186839783A087B187FE01E95BAB
-:10224000FF4F80819181A281B381F90182879387B9
-:10225000A487B587FE01E55BFF4F80819181A28154
-:10226000B381F90186879787A08BB18BFE01E15B73
-:10227000FF4F8081F901828BFE01E05BFF4F80817F
-:102280009181A281B381F901838B948BA58BB68B4D
-:10229000FE01EC5AFF4F80819181A281B381F90147
-:1022A000878B908FA18FB28FFE01E85AFF4F8081FC
-:1022B0009181F901948F838F8C2D992DB901A701FC
-:1022C0000E94D00D8C2D992DCA58DF4F0FB6F8946F
-:1022D000DEBF0FBECDBFCF91DF911F910F91FF9059
-:1022E000EF90DF90CF90BF90AF909F9008950F93A5
-:1022F0001F93CF93DF93EC01462F61E00E94DC1324
-:102300008823D1F08E01045F1F4FC801BE0141E058
-:102310000E94EA1C882339F4C801BE0140E00E94F3
-:10232000EA1C882349F0CE018A96B8010E9436182B
-:10233000882319F081E001C080E0DF91CF911F91E7
-:102340000F910895FC01673020F086E1858380E0DD
-:102350000895262F30E060FD02C0663019F48DB577
-:102360008E7F02C08DB581608DBD8CB58C7F8CBD9C
-:102370004CB522FD02C090E001C092E03695279551
-:10238000822F8170842B892B8CBD81E00895FF9270
-:102390000F931F93CF93DF938B010E942827EB01AC
-:1023A000FF24FA94FEBC0DB407FEFDCF8EB58F3F1F
-:1023B00011F481E008C00E9428276C1B7D0B601778
-:1023C000710780F380E0DF91CF911F910F91FF9013
-:1023D0000895FC01848160E00E9413280895FC01A7
-:1023E000848161E00E9413280895DC016EBDFA012A
-:1023F00020E030E00DB407FEFDCF80818EBD0DB42E
-:1024000007FEFDCF81818EBD2E5F3F4F329682E069
-:102410002030380779F70DB407FEFDCF8FEF8EBD62
-:102420000DB407FEFDCF8FEF8EBD0DB407FEFDCFBF
-:102430008FEF8EBD0DB407FEFDCF8EB51A968C932F
-:102440001A978F71853011F481E0089581E1159616
-:102450008C931597CD010E94EF1180E00895FF92B3
-:102460000F931F93CF93DF93EC010E9428278B01DA
-:10247000FF24FA9409C00E942827601B710B6D523B
-:10248000714010F08FE00DC0FEBC0DB407FEFDCF13
-:102490008EB58A878F3F79F38E3F11F481E006C0B5
-:1024A0008DE08D83CE010E94EF1180E0DF91CF910E
-:1024B0001F910F91FF900895CF93DF93EC018E81D0
-:1024C0008823D1F08FEF8EBD2F8138854FEF04C068
-:1024D0000DB407FEFDCF4EBD2F5F3F4FC9010197E1
-:1024E00081509240A8F338872F830DB407FEFDCFAB
-:1024F000CE010E94EF111E82DF91CF910895DF92ED
-:10250000EF92FF920F931F93CF93DF93EC01D62EA0
-:1025100079018A010E945C12CE010E94E911CE016C
-:102520006CE271E00E94C7118D2D80648EBD0DB4E8
-:1025300007FEFDCF28E130E0D801C701022E04C01C
-:10254000B695A795979587950A94D2F78EBD0DB449
-:1025500007FEFDCF285030408FEF283F380761F746
-:10256000DD2011F485E906C088E0D81611F487E86B
-:1025700001C08FEF8EBD0DB407FEFDCF90E02FEFB1
-:102580002EBD0DB407FEFDCF8EB587FF02C0915062
-:10259000B9F78A87DF91CF911F910F91FF90EF904C
-:1025A000DF900895CF92DF92EF92FF920F931F93E7
-:1025B000CF93DF93EC017A018B016901411551053D
-:1025C0006105710511F482E137C08B85833039F0E4
-:1025D00029E0EE0CFF1C001F111F2A95D1F7CE0138
-:1025E00068E1A80197010E947F12882311F084E01E
-:1025F00023C0CE016EEFA6010E94F5118823E9F0F9
-:10260000CE0168E572E00E94C711882311F485E1CC
-:1026100013C0CE016DE020E030E040E050E00E94C9
-:102620007F12882341F48FEF8EBD0DB407FEFDCFDE
-:102630008EB5882379F084E18D83CE010E94EF115D
-:1026400080E0DF91CF911F910F91FF90EF90DF908D
-:10265000CF900895CE010E94EF1181E0F2CF8F92CA
-:102660009F92AF92BF92CF92DF92EF92FF920F9321
-:102670001F93CF93DF93EC015A016B0149010115C0
-:10268000110509F47BC0C801820F931F815092404D
-:1026900008F06FC08E81882371F088819981AA81AA
-:1026A000BB81481759076A077B0729F48F819885F2
-:1026B0008816990618F5A882B982CA82DB828B85B2
-:1026C000833039F069E0AA0CBB1CCC1CDD1C6A9578
-:1026D000D1F7CE0161E1A60195010E947F12882306
-:1026E00019F083E08D8345C0CE010E942F1288230C
-:1026F00009F43FC018861F8281E08E838FEF8EBD64
-:102700008F8198852FEF05C00DB407FEFDCF2EBD3C
-:10271000019688159905C0F398878F83D801119782
-:1027200020E030E09FEF0BC00DB407FEFDCF8EB56B
-:10273000F701E20FF31F80839EBD2F5F3F4F2A17E3
-:102740003B0790F30DB407FEFDCF8EB5AE0DBF1D58
-:102750008C932F813885200F311F38872F838985EF
-:10276000882319F02050324048F0CE010E945C12BC
-:1027700005C0CE010E94EF1180E001C081E0DF9131
-:10278000CF911F910F91FF90EF90DF90CF90BF906E
-:10279000AF909F908F900895EF92FF920F931F93A9
-:1027A000790120E030E000E012E00E942F131F9139
-:1027B0000F91FF90EF900895BF92CF92DF92EF922A
-:1027C000FF920F931F93CF93DF93EC01B62E1B86DE
-:1027D00019861E821D824C830E9428276B018C81E2
-:1027E00061E00E94D427CE010E94EF118CE060E0EE
-:1027F0000E94D4278BE061E00E94D4278DE061E045
-:102800000E94D4278AE061E00E94D4278AE061E038
-:102810000E94132883E58CBD8DB58E7F8DBD80E031
-:102820009FEF9EBD0DB407FEFDCF8F5F8A30C9F7C5
-:10283000CE010E94E91109C00E9428276C197D0968
-:10284000615D774010F081E05EC0CE0160E020E085
-:1028500030E040E050E00E947F12182F8A878130DC
-:1028600059F7CE0168E02AEA31E040E050E00E94EA
-:102870007F1282FF02C01B8711C080E02FEF2EBDA8
-:102880000DB407FEFDCF9EB58F5F8430C1F79A87E8
-:102890009A3A11F082E037C082E08B878B858230D4
-:1028A00021F0EE24FF2487010FC0E12CF12C012D33
-:1028B000F0E41F2F09C00E9428276C197D09615D73
-:1028C000774010F088E01FC0CE0167E320E030E0E1
-:1028D00040E050E00E947F12CE0169E2A80197011A
-:1028E0000E947F128A87882331F78B85823031F5E9
-:1028F000CE016AE320E030E040E050E00E947F1229
-:10290000882339F086E08D83CE010E94EF1180E0AC
-:102910001CC08FEF8EBD0DB407FEFDCF8EB5807C41
-:10292000803C11F483E08B8780E09FEF9EBD0DB467
-:1029300007FEFDCF2EB58F5F8330C1F7CE010E9419
-:10294000EF11CE016B2D0E94A211DF91CF911F914B
-:102950000F91FF90EF90DF90CF90BF900895CF93AD
-:10296000DF93EC01DB0180E090E020E2FD01E80F65
-:10297000F91F208301968B309105C1F757E040E0A5
-:1029800021C02E3219F082EB90E007C05A3019F1C5
-:102990005AE048E017C03217F1F0FC01019634917B
-:1029A0003323C9F75417B8F02132A8F02F3798F421
-:1029B000822F81568A3108F42052FD01E40FF11D67
-:1029C00020834F5F29912223E1F690E08C918032A1
-:1029D00019F091E001C090E0892FDF91CF91089527
-:1029E0006F927F928F929F92AF92BF92CF92DF921F
-:1029F000EF92FF920F931F93CF93DF93EC017A0135
-:102A00008B012D81222309F480C08B899C89AD899B
-:102A1000BE8984179507A607B70708F476C085C056
-:102A2000E114F1040105110549F41E821F82188684
-:102A300019861A861B861C861D8665C02A853B85DD
-:102A40004C855D85EB8DFC8D858590E00996215048
-:102A500030404040504039014A01082E04C096944D
-:102A60008794779467940A94D2F72F5F3F4F4F4F24
-:102A70005F4F0894E108F108010911095701680145
-:102A800004C0D694C794B794A7948A95D2F70894B3
-:102A9000E11CF11C011D111DA614B704C804D904C2
-:102AA00028F0211531054105510549F48F89988D8C
-:102AB000A98DBA8D8E839F83A887B98716C0A61863
-:102AC000B708C808D90811C04E815F81688579852B
-:102AD0008B8D9C8D94010E94CB1E0894A108B10897
-:102AE000C108D108882331F410C086E0882E912CCB
-:102AF0008C0E9D1EA114B104C104D10429F7EA86ED
-:102B0000FB860C871D8781E001C080E0DF91CF91BB
-:102B10001F910F91FF90EF90DF90CF90BF90AF90FB
-:102B20009F908F907F906F900895223009F078CF1A
-:102B3000E6CFCF93DF93EC01462F6E857F858889A2
-:102B400099890E94AF1C882319F420E030E00AC064
-:102B50008A89282F30E095E0220F331F9A95E1F7FC
-:102B60002F5F3C4FC901DF91CF9108950F931F93C1
-:102B7000CF93DF938C01FC0185818823D9F1848177
-:102B800087FF35C0C80161E00E949915EC010097EC
-:102B900089F1F8018581823040F483899489A5897F
-:102BA000B6898C8F9D8FAE8FBF8FF8018789908DEE
-:102BB0009B8F8A8F8789908DA18DB28DCD01AA2799
-:102BC000BB279D8B8C8BE091FF02F0910003309727
-:102BD00051F0BE016A5E7F4FCE0148960995888DFF
-:102BE000998D9B8B8A8BF80184818F7784830E94D7
-:102BF000501C01C080E0DF91CF911F910F9108958B
-:102C0000CF93DF93EC010E94B615882311F01D824B
-:102C100081E0DF91CF9108956F927F928F929F9282
-:102C2000AF92BF92CF92DF92EF92FF920F931F93DA
-:102C3000DF93CF9300D000D0CDB7DEB77C015A012F
-:102C40006B01DC0115968C911597813009F08FC0CE
-:102C500014968C9181FF8BC09EC00097A105B10591
-:102C600011F481E085C0F7016284738484849584C3
-:102C7000C701B601A5010E94F014882309F477C0AA
-:102C8000D7015B968D919C915C97A114B104C1040E
-:102C9000D10489F457964D915D916D917C915A972D
-:102CA0000E943E1F882309F462C0F701178A108E24
-:102CB000118E128E3DC0D70116964D915D916D918A
-:102CC0007C9119979E012F5F3F4F0E94CB1E882356
-:102CD00009F44DC0D7015B96ED91FC915C97498159
-:102CE0005A816B817C818789803129F088EF9FEF41
-:102CF000AFEFBFE004C088EF9FEFA0E0B0E048175F
-:102D000059076A077B07A0F4CF010E943E1F882362
-:102D100071F1F7014681578160857185838D948DAE
-:102D20000FEF1FEF2FEF3FE00E942F1E8823F9F0D7
-:102D3000D7015396AD92BD92CD92DC9256971496E0
-:102D40008C911497806814968C93C7010E94B615D5
-:102D5000882369F0B601A5016A147B048C049D04E4
-:102D600010F4B401A301C7010E94F01401C080E077
-:102D70000F900F900F900F90CF91DF911F910F91B7
-:102D8000FF90EF90DF90CF90BF90AF909F908F908B
-:102D90007F906F900895F70183899489A589B689FA
-:102DA00084179507A607B70708F057CFE0CF2F92F3
-:102DB0003F924F925F926F927F928F929F92AF92CB
-:102DC000BF92CF92DF92EF92FF920F931F93CF9318
-:102DD000DF93EC012A018D81882309F4C6C08C8120
-:102DE00080FFC3C0D8C025014E185F084B0176E0B4
-:102DF000272E312C2C0E3D1E3201B1C02A853B8579
-:102E00004C855D856FEFA62E61E0B62EA222B3221F
-:102E10008D8179018A0199E016950795F794E794D9
-:102E20009A95D1F7EB8DFC8D823049F4428D538D0C
-:102E3000648D758D4E0D5F1D601F711F3FC0D48066
-:102E4000DA94DE20A114B104D9F4DD20C9F42115EF
-:102E500031054105510549F48F89988DA98DBA8DA9
-:102E60008E839F83A887B9870BC04E815F81688559
-:102E70007985CF0191010E94CB1E882309F475C08A
-:102E8000EB8DFC8D4E815F81688579854250504085
-:102E900060407040058404C0440F551F661F771FB3
-:102EA0000A94D2F786859785A089B189480F591F62
-:102EB0006A1F7B1F4D0D511D611D711D80E092E049
-:102EC0008A199B0963018615970508F46C018C81AA
-:102ED00086FD06C080E0C81682E0D80609F073C0FF
-:102EE0008091D1019091D201A091D301B091D401F0
-:102EF000481759076A077B0709F465C080910105E7
-:102F0000909102059501860174010E942F13882378
-:102F100061F18C0C9D1C12C095012F5F3C4FA901E3
-:102F20004C0D5D1DD401F90102C081918D93E41710
-:102F3000F507D9F7E21BF30B8E0E9F1E960140E0BA
-:102F400050E08A859B85AC85BD85820F931FA41FA9
-:102F5000B51F8A879B87AC87BD876C187D08611475
-:102F6000710409F04BCFA20102C04FEF5FEFCA011D
-:102F7000DF91CF911F910F91FF90EF90DF90CF9055
-:102F8000BF90AF909F908F907F906F905F904F9089
-:102F90003F902F900895AB88BC88CD88DE88EA8466
-:102FA000FB840C851D859A0140E050E0D601C501E7
-:102FB0008E199F09A00BB10B82179307A407B507C1
-:102FC00008F411CF13CFCB01BA0140E00E94AF1C2F
-:102FD000882309F0A1CFC9CFCF92DF92EF92FF9261
-:102FE0000F931F93DF93CF930F92CDB7DEB76C0192
-:102FF000FC018581823070F0E284F38404851585BC
-:10300000C601BE016F5F7F4F41E050E00E94D716BE
-:10301000019769F020E030E0C9010F90CF91DF9176
-:103020001F910F91FF90EF90DF90CF900895F601E0
-:1030300082859385A485B5854F96A11DB11D828794
-:103040009387A487B587F5E016950795F794E794DD
-:10305000FA95D1F78E2D8F70282F30E0E5E0220F02
-:10306000331FEA95E1F72F5F3C4FD6CF0F931F93A5
-:10307000CF93DF93EC018B018D81882309F041C050
-:10308000FB0187898031B1F482E08D831F8A188E1D
-:10309000198E1A8E808D918DA0E0B0E045E0880FEA
-:1030A000991FAA1FBB1F4A95D1F78B8B9C8BAD8BA9
-:1030B000BE8B15C0803229F583E08D83FB01428DE4
-:1030C000538D648D758D4F8B588F698F7A8F9E01CC
-:1030D0002D5E3F4FC8010E94971F882391F01C8FDF
-:1030E0000B8F81E08C831E821F82188619861A86B8
-:1030F0001B861C861D861E861F86188A198A1A8AB8
-:1031000001C080E0DF91CF911F910F9108951F932F
-:10311000CF93DF93EC01142FE62FF0E075E0EE0F74
-:10312000FF1F7A95E1F7EF5FFC4F8385817121F0F6
-:10313000842F827409F054C06A8B8091D1019091E0
-:10314000D201A091D301B091D4018E879F87A88B23
-:10315000B98B84899589A0E0B0E0BC01552744274C
-:10316000828D938DA0E0B0E0482B592B6A2B7B2BEE
-:103170004F8B588F698F7A8F838590E0887190701C
-:10318000009751F4848D958DA68DB78D8B8B9C8B7C
-:10319000AD8BBE8B81E00CC0409711F59E012D5E7A
-:1031A0003F4F8B8D9C8D0E94971F8823C9F084E030
-:1031B0008D83812F8F708C831E821F8218861986C3
-:1031C0001A861B861C861D8616FD02C081E009C07A
-:1031D000CE0140E050E060E070E00E940C1601C0BB
-:1031E00080E0DF91CF911F910895CF93DF93EC01A1
-:1031F0009C012A5F3F4F8B8D9C8D41E050E060E049
-:1032000070E00E9406208823A1F08F89988DA98DF7
-:10321000BA8D0097A105B10559F48E819F81A885CB
-:10322000B9858F8B988FA98FBA8F8C8180688C839A
-:1032300081E0DF91CF9108952F923F924F925F925C
-:103240007F928F929F92AF92BF92CF92DF92EF9236
-:10325000FF920F931F93DF93CF9300D000D000D045
-:10326000CDB7DEB76C01162F072F5E834D83DC01CF
-:1032700015968C911597813009F070C114968C9138
-:1032800081FF6CC18EC1F6014389548965897689B5
-:1032900082859385A485B58584179507A607B7070A
-:1032A00031F0C6010E94F014882309F457C1812F20
-:1032B000902F9C0129012D803E8017C1D6015B967D
-:1032C000ED91FC915C97DA01C90119E0B695A795DB
-:1032D000979587951A95D1F774807A9478227FEF25
-:1032E000872E71E0972E82229322772009F04EC01C
-:1032F0008114910409F04AC0D60116964D915D9152
-:103300006D917C911997411551056105710581F405
-:1033100057968D919D910D90BC91A02D0097A10580
-:10332000B10549F1F60186839783A087B1872EC046
-:10333000CF019E012F5F3F4F0E94CB1E882309F4CF
-:1033400014C129813A814B815C81D6015B96ED9154
-:10335000FC915C978789803129F088EF9FEFAFEF70
-:10336000BFE004C088EF9FEFA0E0B0E02817390766
-:103370004A075B0730F0C6010E94F518882331F434
-:10338000EDC0F601268337834087518780E092E0C5
-:103390008819990951018215930508F45C01D60139
-:1033A0005B96ED91FC915C971696ED90FD900D91DA
-:1033B0001C9119978EEF9FEFAFEFBFEFE80EF91E4C
-:1033C0000A1F1B1F058404C0EE0CFF1C001F111FE9
-:1033D0000A94D2F786859785A089B189E80EF91EEF
-:1033E0000A1F1B1FE70CF11C011D111D90E0A916FF
-:1033F00092E0B90651F58091D1019091D201A0914E
-:10340000D301B091D4018E159F05A007B10761F4D7
-:103410008FEF9FEFAFEFBFEF8093D1019093D20179
-:10342000A093D301B093D40180910105909102053E
-:10343000B801A70192010E94D212882309F48EC01C
-:10344000A0E0B2E04A0E5B1E3EC08114910409F573
-:10345000F601228533854485558583899489A5891C
-:10346000B689281739074A075B0798F00E94501C55
-:10347000882309F473C0E092D101F092D201009345
-:10348000D3011093D40180910305816080930305DB
-:1034900008C0C801B70141E00E94AF1C882309F4AD
-:1034A0005DC094012F5F3C4FA9014A0D5B1DD20105
-:1034B000F90102C08D918193E417F507D9F7E21B5A
-:1034C000F30B4E0E5F1E2A183B08950140E050E0BA
-:1034D000F60182859385A485B585820F931FA41F6D
-:1034E000B51F82879387A487B587D6011A962D9139
-:1034F0003D914D915C911D972114310409F0DECE70
-:1035000053968D919D910D90BC91A02D821793079C
-:10351000A407B50748F4F601238B348B458B568BF3
-:1035200084818068848311C08091FF0290910003A0
-:10353000892B59F08D819E81892B39F0D601149603
-:103540008C911497806814968C93F601848183FF84
-:103550000EC0C6010E94B615882349F481E090E0B0
-:10356000D60113969C938E9312971E821D828D8195
-:103570009E8126960FB6F894DEBF0FBECDBFCF91C9
-:10358000DF911F910F91FF90EF90DF90CF90BF9050
-:10359000AF909F908F907F905F904F903F902F9033
-:1035A000089582FD70CE83CEDF93CF930F92CDB777
-:1035B000DEB76983BE016F5F7F4F41E050E00E943C
-:1035C0001C190F90CF91DF910895DF92EF92FF9237
-:1035D0000F931F93CF93DF93EC010E94F51888237C
-:1035E00009F44EC0EB8DFC8DEE80FF8008851985B7
-:1035F0008EEF9FEFAFEFBFEFE80EF91E0A1F1B1F04
-:10360000058404C0EE0CFF1C001F111F0A94D2F7A2
-:1036100086859785A089B189E80EF91E0A1F1B1FB0
-:10362000D4800894E108F108010911090BC0C80110
-:10363000B7016D0D711D811D911D0E948B1C88238A
-:10364000F9F0DA94DD2099F7EB8DFC8D20E032E083
-:1036500040E050E0058404C0220F331F441F551F73
-:103660000A94D2F78B899C89AD89BE89820F931FFA
-:10367000A41FB51F8B8B9C8BAD8BBE8B81E001C0D3
-:1036800080E0DF91CF911F910F91FF90EF90DF903D
-:1036900008956F927F928F929F92AF92BF92CF9236
-:1036A000DF92EF92FF920F931F93DF93CF93CDB7EB
-:1036B000DEB72B970FB6F894DEBF0FBECDBF5C010F
-:1036C0006B01822EDC0115968C91882309F0D2C003
-:1036D000CA018E010F5F1F4FB8010E94AF148823EB
-:1036E00009F4C8C0F601838D948DD5015C969C9336
-:1036F0008E935B971682178210861186D6011A96D2
-:103700001D921D921D921C921D979924380141C053
-:10371000C6010E94EC17FC01009709F4ABC085E0DC
-:1037200016950795F794E7948A95D1F71E2D1F708B
-:103730008081882311F0853ED1F4992091F4D50140
-:1037400052961C9352972091D1013091D201409111
-:10375000D3015091D4011E962D933D934D935C93CC
-:1037600051978081882399F49924939421C0C301AF
-:10377000BF014BE050E00E94DE00009751F4882D1D
-:103780008073803309F476C0C501612F6FC099241E
-:103790009394F601E284F3840485158583899489E2
-:1037A000A589B689E816F9060A071B0708F4B0CF01
-:1037B000882D8271823109F05DC0992041F0C501E8
-:1037C00061E00E9499158C01009789F453C0D601DD
-:1037D00015968C91823009F44DC0C6010E94E51AFD
-:1037E000882309F447C0F501128A01E013E080E262
-:1037F000D8011D928A95E9F7D801FE0131968BE038
-:1038000001900D928150E1F7E091FF02F0910003E9
-:10381000309739F0B801625F7F4FC8014096099533
-:1038200009C081E298E2F801918B808B80E098E0FA
-:1038300097878687D80150968D919C915197539682
-:103840009C938E93529759969C938E9358971E965D
-:103850008D919C911F9757969C938E9356970E949B
-:10386000501C882339F0C501F5016289482D0E945A
-:10387000871801C080E02B960FB6F894DEBF0FBE0C
-:10388000CDBFCF91DF911F910F91FF90EF90DF900F
-:10389000CF90BF90AF909F908F907F906F90089542
-:1038A00080910305882399F14091D1015091D20173
-:1038B0006091D3017091D40180910105909102052E
-:1038C00021E033E00E94D212882319F140910405CF
-:1038D0005091050560910605709107054115510548
-:1038E0006105710591F0809101059091020521E03B
-:1038F00033E00E94D212882361F0109204051092E6
-:10390000050510920605109207051092030581E047
-:10391000089580E00895EF92FF920F931F937B012B
-:103920008C010E94501C8823A9F0E1E0F3E0119281
-:1039300085E0E130F807D9F7E092D101F092D201A9
-:103940000093D3011093D40180910305816080938B
-:10395000030581E01F910F91FF90EF900895DF9292
-:10396000EF92FF920F931F937B018C01D42E8091D5
-:10397000D1019091D201A091D301B091D4018E15C3
-:103980009F05A007B107C1F00E94501C8823D9F001
-:103990008091010590910205B801A70121E033E073
-:1039A0000E94CC13882379F0E092D101F092D201E9
-:1039B0000093D3011093D401809103058D29809346
-:1039C000030581E001C080E01F910F91FF90EF900F
-:1039D000DF9008958F929F92AF92BF92CF92DF9225
-:1039E000EF92FF920F931F93CF93DF936C01142FED
-:1039F0007093020560930105442321F488249924DF
-:103A0000540140C0453008F01CC160E070E080E027
-:103A100090E040E00E94AF1C882309F412C1C12F3E
-:103A2000D0E02197FE0174E0EE0FFF1F7A95E1F7D9
-:103A3000EF5FFC4FE254FE4F8081EE5BF14090E07F
-:103A40008F779070892B09F0FCC0E653FE4F808180
-:103A50009181A281B38184369105A105B10508F455
-:103A6000F0C064E0CC0FDD1F6A95E1F7C953DB4F6E
-:103A700088809980AA80BB8081149104A104B1043C
-:103A800009F4DFC0C501B40140E00E94AF1C8823E7
-:103A900009F4D7C080910C0390910D03805092409F
-:103AA00009F0CFC020911103222309F4CAC08091EC
-:103AB0000F0390911003892B09F4C3C080910E036A
-:103AC000882309F4BEC0F601228B80910E03848303
-:103AD000158661E070E007C04F5FF60145874150F1
-:103AE000483008F0AEC0F6014585848190E09B0126
-:103AF000042E02C0220F331F0A94E2F782179307A5
-:103B000059F720911703309118032115310519F049
-:103B100040E050E008C020912503309126034091F9
-:103B2000270350912803F601258336834783508766
-:103B3000E0900F03F090100300E010E0E80CF91C97
-:103B40000A1D1B1DE38AF48A058B168B80911203D4
-:103B500090911303918F808F6091110370E080E04A
-:103B600090E00E9467286E0D7F1D801F911FF60157
-:103B7000628F738F848F958F20911203309113037E
-:103B800055E0220F331F5A95E1F721503E4F232F66
-:103B90003327269540E050E0260F371F481F591F56
-:103BA00026873787408B518B8091140390911503A2
-:103BB000009719F0A0E0B0E008C080912103909137
-:103BC0002203A0912303B091240385017401E21A1A
-:103BD000F30A040B150BA8019701280F391F4A1F80
-:103BE0005B1FF601058404C05695479537952795C8
-:103BF0000A94D2F72187328743875487253FFFE015
-:103C00003F07F0E04F07F0E05F0710F48CE006C0DC
-:103C1000255F3F4F4040504028F480E1F601878BFC
-:103C200081E010C080912D0390912E03A0912F036D
-:103C3000B0913003F601828F938FA48FB58F80E20D
-:103C4000EECF80E0DF91CF911F910F91FF90EF9029
-:103C5000DF90CF90BF90AF909F908F9008954F923C
-:103C60005F926F927F928F929F92AF92BF92CF920C
-:103C7000DF92EF92FF920F931F93CF93DF93EC01AC
-:103C80006A017B0128013901423051056105710546
-:103C900008F46FC089859A85AB85BC850196A11D06
-:103CA000B11D84179507A607B70708F462C02B89D2
-:103CB0003C894D895E898F89803129F499278F2D20
-:103CC0007E2D6D2D09C0C701B60117E09695879529
-:103CD000779567951A95D1F74B015C01820E931E7B
-:103CE000A41EB51E8091D1019091D201A091D30163
-:103CF000B091D40188169906AA06BB0639F0C50111
-:103D0000B40140E00E94AF1C882399F18F89803173
-:103D100049F4F601F070EE0FFF1FEF5FFC4F518288
-:103D200040820DC0F601EF77F070EE0FFF1FEE0F2F
-:103D3000FF1FEF5FFC4F408251826282738280914D
-:103D400003058160809303058A89823080F08D812C
-:103D50009E81AF81B885880E991EAA1EBB1E8092D7
-:103D6000040590920505A0920605B092070581E032
-:103D700001C080E0DF91CF911F910F91FF90EF90F4
-:103D8000DF90CF90BF90AF909F908F907F906F907B
-:103D90005F904F900895CF92DF92EF92FF920F9332
-:103DA0001F93CF93DF93EC017A018B016901898521
-:103DB0009A85AB85BC850196A11DB11D8417950719
-:103DC000A607B70708F450C02B893C894D895E8946
-:103DD0008F89803129F49927812F702F6F2D09C089
-:103DE000C801B701E7E09695879577956795EA95BD
-:103DF000D1F7260F371F481F591F8091D10190918D
-:103E0000D201A091D301B091D401281739074A07F4
-:103E10005B0739F0CA01B90140E00E94AF1C88235A
-:103E200019F18F89803159F4F701F070EE0FFF1FFF
-:103E3000EF5FFC4F80819181A0E0B0E00EC0F70100
-:103E4000EF77F070EE0FFF1FEE0FFF1FEF5FFC4FDD
-:103E500080819181A281B381BF70F60180839183BB
-:103E6000A283B38381E001C080E0DF91CF911F91F5
-:103E70000F91FF90EF90DF90CF900895AF92BF9297
-:103E8000CF92DF92EF92FF920F931F93DF93CF9326
-:103E900000D000D0CDB7DEB76C017A018B0182E093
-:103EA00090E0A0E0B0E0F60180839183A283B38329
-:103EB0005E010894A11CB11CC601B801A7019501BF
-:103EC0000E94CB1E882319F1C601B801A70100E0AA
-:103ED00010E020E030E00E942F1E8823C1F0E9802E
-:103EE000FA800B811C81F6018789803129F088EFE7
-:103EF0009FEFAFEFBFE004C088EF9FEFA0E0B0E01E
-:103F0000E816F9060A071B07B8F281E001C080E055
-:103F10000F900F900F900F90CF91DF911F910F9105
-:103F2000FF90EF90DF90CF90BF90AF9008954F92A9
-:103F30005F926F927F928F929F92AF92BF92CF9239
-:103F4000DF92EF92FF920F931F93DF93CF9300D0F6
-:103F500000D0CDB7DEB76C0149835A836B837C8375
-:103F60003901EE24FF2487012E010894411C511CC5
-:103F7000812CA2E09A2EA12CB12C49815A816B810F
-:103F80007C81C60192010E94CB1E882351F1D5018C
-:103F9000C401F601058404C0880F991FAA1FBB1F26
-:103FA0000A94D2F7E80EF91E0A1F1B1F29813A81D5
-:103FB0004B815C818789803129F088EF9FEFAFEFDB
-:103FC000BFE004C088EF9FEFA0E0B0E028173907FA
-:103FD0004A075B0790F2F301E082F18202831383C8
-:103FE00081E00F900F900F900F90CF91DF911F9174
-:103FF0000F91FF90EF90DF90CF90BF90AF909F9088
-:104000008F907F906F905F904F9008952F923F9286
-:104010004F925F926F927F928F929F92AF92BF92D8
-:10402000CF92DF92EF92FF920F931F93DF93CF9384
-:10403000CDB7DEB72F970FB6F894DEBF0FBECDBF5A
-:104040001C014A875B876C877D873F872E87D90154
-:104050000D911D912D913C91011511052105310501
-:1040600049F0480159010894811C911CA11CB11C04
-:10407000198610C0FC0180809180A280B3801986CF
-:104080008A859B85AC85BD850197A105B10511F495
-:1040900091E09987D10119968D919D910D90BC91D8
-:1040A000A02D0196A11DB11D8D839E83AF83B8877E
-:1040B000750164014424552432018E010F5F1F4FA6
-:1040C000F10181859285A385B485481659066A0653
-:1040D0007B0608F090C08D819E81AF81B8858C15DC
-:1040E0009D05AE05BF0550F482E0882E912CA12CD1
-:1040F000B12CB2E0CB2ED12CE12CF12CC101B701B7
-:10410000A60198010E94CB1E882309F474C08981FE
-:104110009A81AB81BC81A70196012F5F3F4F4F4F22
-:104120005F4F0097A105B10519F049015A010DC073
-:10413000281939094A095B098A859B85AC85BD85A3
-:10414000281739074A075B0759F00894411C511C8E
-:10415000611C711C0894C11CD11CE11CF11CB0CF66
-:10416000C101A601B7010FEF1FEF2FEF3FE00E9443
-:104170002F1E882399F43FC0260137010894410877
-:10418000510861087108C101B301A20197018601BC
-:104190000E942F1E882379F1730162018C149D0403
-:1041A000AE04BF0448F3AE85BF854D915D916D911E
-:1041B0007C91411551056105710539F0C1019501E9
-:1041C00084010E942F1E8823B1F0EE85FF85808236
-:1041D0009182A282B382F985FF2359F00894811C51
-:1041E000911CA11CB11CD1018D929D92AD92BC92EB
-:1041F000139781E001C080E02F960FB6F894DEBFE0
-:104200000FBECDBFCF91DF911F910F91FF90EF9027
-:10421000DF90CF90BF90AF909F908F907F906F90E6
-:104220005F904F903F902F9008952091290530E0A6
-:1042300080912805281B3109C9010895409128055E
-:1042400080912905481718F02FEF3FEF0AC0E42F9F
-:10425000F0E0E85FFA4F8081282F30E04F5F409315
-:104260002805C9010895E091280580912905E817DE
-:1042700018F0EFEFFFEF06C0F0E0E85FFA4F808143
-:10428000E82FF0E0CF0108950895109250051092A4
-:104290004F0588EE93E0A0E0B0E080935105909345
-:1042A0005205A0935305B093540587E092E0909394
-:1042B0004E0580934D050895CF92DF92EF92FF92C5
-:1042C0000F931F93CF93DF937C016B018A01809141
-:1042D0004C058823A1F0C0E0D0E00DC0D701ED91DE
-:1042E000FC91D601AC0FBD1F0190F081E02DC701FC
-:1042F0006C9109952196C017D10780F304C0CB01BA
-:10430000642F0E94BD21C801DF91CF911F910F91B1
-:10431000FF90EF90DF90CF900895DF93CF930F92AF
-:10432000CDB7DEB7FC01698380914C058823C9F0C5
-:1043300080914B05803238F081E090E09383828356
-:1043400020E030E015C080914A05E82FF0E0E65DFE
-:10435000FA4F998190838F5F80934A0580934B0534
-:1043600005C0CE01019661E00E94BD2121E030E050
-:10437000C9010F90CF91DF910895482F613210F05D
-:1043800081E0089580915905843011F082E008950C
-:104390006093A405A3E8B5E0842F9C01F90102C055
-:1043A00081918D938E2F841B8617D0F380E0089522
-:1043B0001F920F920FB60F9211242F933F934F939A
-:1043C0005F936F937F938F939F93AF93BF93EF937D
-:1043D000FF938091B90090E0887F907080369105BE
-:1043E00009F4F2C081369105CCF58832910509F4C3
-:1043F0007BC089329105B4F48031910509F46FC016
-:10440000813191053CF4009709F447C1089709F000
-:104410004FC165C08831910509F466C0809709F0E5
-:1044200047C182C08034910509F4A4C0813491054C
-:1044300044F48033910509F482C0C89709F038C16B
-:1044400089C08035910509F489C08835910509F442
-:1044500096C08834910509F02BC1AEC0883991050A
-:1044600009F413C189399105ECF48837910509F4F1
-:10447000ABC0893791054CF48836910509F4A4C086
-:104480008037910509F014C19FC08838910509F45F
-:10449000FCC08039910509F49DC08038910509F070
-:1044A00007C198C0803B910509F4C6C0813B9105C6
-:1044B0004CF4803A910509F49FC0883A910509F0BF
-:1044C000F7C0BAC0803C910509F4E3C0883C91056F
-:1044D00009F4DFC0883B910509F0EAC0C2C08091B1
-:1044E0005A058093BB00CFC09091810580918205D1
-:1044F000981768F490918105E92FF0E0EF59FA4F91
-:1045000080818093BB009F5F90938105BCC08091A8
-:104510005B05882309F44BC085ED8093BC00809136
-:10452000BC0084FDFCCFC2C080E28093C60585ED4F
-:104530008093BC008091BC0084FDFCCFB7C080E3B9
-:104540008093C60585ED8093BC008091BC0084FDFE
-:10455000FCCFACC088E38093C6059BC080918105E9
-:104560009091BB00E82FF0E0EF59FA4F90838F5FF6
-:1045700080938105909181058091820582C0809110
-:1045800081059091BB00E82FF0E0EF59FA4F90833E
-:104590008F5F8093810580915B05882341F085EDD5
-:1045A0008093BC008091BC0084FDFCCF7FC081E083
-:1045B00080935C0584EA6EC085ED8093BC00809199
-:1045C000BC0084FDFCCF72C083E08093590510923B
-:1045D000C50559C08091C505803208F056C080914C
-:1045E000C5059091BB00E82FF0E0EB55FA4F9083A2
-:1045F0008F5F8093C50547C08091C505803230F438
-:10460000E091C505F0E0EB55FA4F108285ED8093FF
-:10461000BC008091BC0084FDFCCF109259056091D4
-:10462000C505E0915F05F091600585EA95E070E0D1
-:1046300009951092C5052DC084E08093590510920C
-:10464000A3051092A405E0915D05F0915E05099522
-:104650008091A405882329F481E08093A405109219
-:1046600083059091A305E92FF0E0ED57FA4F808183
-:104670008093BB009F5F9093A3059091A3058091C9
-:10468000A405981710F485EC01C085E88093BC0060
-:104690000FC085EC8093BC0009C01092C60585ED63
-:1046A0008093BC008091BC0084FDFCCF1092590522
-:1046B000FF91EF91BF91AF919F918F917F916F91FA
-:1046C0005F914F913F912F910F900FBE0F901F90D0
-:1046D000189508951F920F920FB60F9211242F93E1
-:1046E0003F934F938F939F93EF93FF938091C000DD
-:1046F00082FD1DC04091C60020910706309108063A
-:104700002F5F3F4F2F7330708091090690910A06FA
-:104710002817390771F0E0910706F0910806E95370
-:10472000FA4F4083309308062093070602C0809119
-:10473000C600FF91EF919F918F914F913F912F91E3
-:104740000F900FBE0F901F901895E0915B06F091AF
-:104750005C06E05CFF4F8191919120813181821B49
-:10476000930B8F739070892B11F00E946923089529
-:104770001F920F920FB60F9211242F933F938F9396
-:104780009F93EF93FF9320914B0630914C068091BD
-:104790004D0690914E062817390731F48091C100DB
-:1047A0008F7D8093C10014C0E0914D06F0914E06BC
-:1047B000E55FF94F208180914D0690914E0601965C
-:1047C0008F73907090934E0680934D062093C60091
-:1047D000FF91EF919F918F913F912F910F900FBE7D
-:1047E0000F901F901895AF92BF92DF92EF92FF92B9
-:1047F0000F931F93CF93DF93EC017A018B01DD249C
-:10480000403081EE580780E0680780E0780711F0BB
-:10481000DD24D39491E0A92EB12CEC89FD89DD2013
-:1048200069F0C50108A002C0880F991F0A94E2F739
-:10483000808360E079E08DE390E005C0108260E85D
-:1048400074E88EE190E0A80197010E94AD28215004
-:10485000304040405040569547953795279580E128
-:104860002030380720F0DD2011F0DD24D6CFE88994
-:10487000F9893083EA89FB89208319A2EE89FF89AF
-:10488000408121E030E0C9010C8C02C0880F991FE3
-:104890000A94E2F7482B4083EE89FF894081C901E1
-:1048A0000D8C02C0880F991F0A94E2F7482B4083B1
-:1048B000EE89FF894081C9010E8C02C0880F991FC3
-:1048C0000A94E2F7482B4083EE89FF8980810F8CA0
-:1048D00002C0220F331F0A94E2F720952823208379
-:1048E000DF91CF911F910F91FF90EF90DF90BF90DC
-:1048F000AF900895DC011C96ED91FC911D97E05C52
-:10490000FF4F2191319180819181281B390B2F73A9
-:104910003070C9010895DC011C96ED91FC911D9742
-:10492000E05CFF4F20813181E054F040DF01AE5B5D
-:10493000BF4F8D919C9111972817390719F42FEFCC
-:104940003FEF07C08D919C91E80FF91F8081282FC0
-:1049500030E0C9010895DC011C96ED91FC911D9792
-:10496000E05CFF4F20813181E054F040DF01AE5B1D
-:10497000BF4F8D919C9111972817390719F42FEF8C
-:104980003FEF10C08D919C911197E80FF91F208186
-:104990008D919C91119701968F73907011969C93B5
-:1049A0008E9330E0C9010895DC0191968C91919726
-:1049B000882339F05496ED91FC915597808186FFBC
-:1049C000F9CF91961C920895CF93DF93EC01EE8579
-:1049D000FF85E05CFF4F20813181E054F0402F5F84
-:1049E0003F4F2F733070DF01AE5BBF4F8D919C91B5
-:1049F000119728173907D1F3E05CFF4F808191812F
-:104A0000E054F040E80FF91F6083EE85FF85E05C1D
-:104A1000FF4F31832083EE89FF89208181E090E080
-:104A20000F8C02C0880F991F0A94E2F7282B20836D
-:104A300081E089A3EC89FD8980818064808381E0A5
-:104A400090E0DF91CF910895109252061092510696
-:104A500088EE93E0A0E0B0E0809353069093540674
-:104A6000A0935506B093560687E192E090935006C6
-:104A700080934F0687EC95E090935C0680935B06ED
-:104A80008BE096E090935E0680935D0685EC90E067
-:104A90009093600680935F0684EC90E090936206AA
-:104AA0008093610680EC90E09093640680936306A7
-:104AB00081EC90E0909366068093650682EC90E02E
-:104AC000909368068093670686EC90E090936A0660
-:104AD0008093690684E080936B0683E080936C0684
-:104AE00087E080936D0685E080936E0681E0809379
-:104AF0006F060895CF93DF930E9499270E94870C39
-:104B0000C5EAD3E20E94E90B2097E1F30E94A523B6
-:104B1000F9CF0F931F93CF93DF93BC0182309105A0
-:104B200010F462E070E0E0917A06F0917B06A0E07C
-:104B3000B0E040E050E024C0808191818617970763
-:104B4000D0F08617970771F482819381109729F02E
-:104B500013969C938E9312972CC090937B06809310
-:104B60007A0627C04115510519F08417950718F4E6
-:104B7000EF018D01AC01DF01828193819C01F9017C
-:104B80003097D1F641155105F9F0CA01861B970BF4
-:104B90008430910580F48A819B810115110521F0F3
-:104BA000F8019383828304C090937B0680937A06F6
-:104BB000FE0132962FC0FE01E80FF91F6193719339
-:104BC00002979983888326C08DB79EB788579040F7
-:104BD0002091D5013091D60128173907C8F4AC01CE
-:104BE000421B530B4617570798F0CB010296481704
-:104BF000590770F0820F931F9093D6018093D501CF
-:104C00009093D8018093D701F9016193719302C009
-:104C1000E0E0F0E0CF01DF91CF911F910F91089577
-:104C2000CF93DF939C01009709F48FC0EC0122978A
-:104C30001B821A8260917A0670917B06611571055C
-:104C400081F488819981820F931F2091D501309141
-:104C5000D6012817390739F5D093D601C093D5016D
-:104C600074C0DB0140E050E0AC17BD0708F1BB8326
-:104C7000AA83FE0121913191E20FF31FAE17BF0706
-:104C800079F48D919C911197280F391F2E5F3F4F1A
-:104C90003983288312968D919C9113979B838A83E5
-:104CA0004115510571F4D0937B06C0937A064DC02F
-:104CB00012968D919C911397AD01009711F0DC0134
-:104CC000D3CFDA011396DC93CE931297FA01219198
-:104CD0003191E20FF31FCE17DF0769F488819981C4
-:104CE000280F391F2E5F3F4FFA01318320838A81BD
-:104CF0009B8193838283E0E0F0E0DB0112968D914B
-:104D00009C911397009719F0BC01FD01F6CFAB0100
-:104D10004E5F5F4FDB018D919C91840F951F209119
-:104D2000D5013091D6012817390779F4309729F445
-:104D300010927B0610927A0602C0138212824250B1
-:104D400050405093D6014093D501DF91CF91089503
-:104D5000FC0120E030E08081882311F421E030E084
-:104D6000C9010895FC0181E080830895CF92DF920C
-:104D7000EF92FF920F931F93CF93DF937C016B0110
-:104D80008A01C0E0D0E00FC0D6016D916D01D7015E
-:104D9000ED91FC910190F081E02DC7010995C80FBC
-:104DA000D91F015010400115110571F7CE01DF9197
-:104DB000CF911F910F91FF90EF90DF90CF900895CA
-:104DC0001F920F920FB60F9211242F933F938F9340
-:104DD0009F93AF93BF938091750690917606A091B3
-:104DE0007706B0917806309179060196A11DB11D24
-:104DF000232F2D5F2D3720F02D570196A11DB11DBA
-:104E0000209379068093750690937606A093770693
-:104E1000B09378068091710690917206A091730606
-:104E2000B09174060196A11DB11D809371069093F7
-:104E30007206A0937306B0937406BF91AF919F91D1
-:104E40008F913F912F910F900FBE0F901F9018954B
-:104E50008FB7F894209175063091760640917706C9
-:104E6000509178068FBFB901CA0108959B01AC012A
-:104E70007FB7F8948091710690917206A0917306A5
-:104E8000B091740666B5A89B05C06F3F19F00196F6
-:104E9000A11DB11D7FBFBA2FA92F982F8827860F7C
-:104EA000911DA11DB11D62E0880F991FAA1FBB1F94
-:104EB0006A95D1F7BC012DC0FFB7F89480917106B7
-:104EC00090917206A0917306B0917406E6B5A89B06
-:104ED00005C0EF3F19F00196A11DB11DFFBFBA2F0C
-:104EE000A92F982F88278E0F911DA11DB11DE2E0DB
-:104EF000880F991FAA1FBB1FEA95D1F7861B970B36
-:104F0000885E9340C8F22150304040405040685184
-:104F10007C4F211531054105510571F60895019722
-:104F200039F0880F991F880F991F02970197F1F7A1
-:104F30000895789484B5826084BD84B5816084BD11
-:104F400085B5826085BD85B5816085BDEEE6F0E002
-:104F5000808181608083E1E8F0E01082808182605E
-:104F60008083808181608083E0E8F0E080818160DF
-:104F70008083E1EBF0E0808184608083E0EBF0E00F
-:104F8000808181608083EAE7F0E0808184608083B3
-:104F9000808182608083808181608083808180685D
-:104FA00080831092C1000895CF93DF93482F50E083
-:104FB000CA018C509F4FFC01349140525F4FFA015F
-:104FC0008491882369F190E0880F991FFC01EE53CA
-:104FD000FF4FA591B491FC01E453FF4FC591D491CB
-:104FE000662351F42FB7F8948C91932F90958923D1
-:104FF0008C93888189230BC0623061F42FB7F894B9
-:105000008C91932F909589238C938881832B88830F
-:105010002FBF06C09FB7F8948C91832B8C939FBFB2
-:10502000DF91CF910895482F50E0CA01885F9E4FCD
-:10503000FC012491CA018C509F4FFC019491405275
-:105040005F4FFA013491332309F440C0222351F118
-:10505000233071F0243028F42130A1F0223011F5F2
-:1050600014C02630B1F02730C1F02430D9F404C088
-:10507000809180008F7703C0809180008F7D809326
-:10508000800010C084B58F7702C084B58F7D84BD49
-:1050900009C08091B0008F7703C08091B0008F7DF0
-:1050A0008093B000E32FF0E0EE0FFF1FE453FF4FBB
-:1050B000A591B4912FB7F894662321F48C91909523
-:1050C000892302C08C91892B8C932FBF0895629FF6
-:1050D000D001739FF001829FE00DF11D649FE00DF0
-:1050E000F11D929FF00D839FF00D749FF00D659F51
-:1050F000F00D9927729FB00DE11DF91F639FB00D50
-:10510000E11DF91FBD01CF0111240895AA1BBB1B8E
-:1051100051E107C0AA1FBB1FA617B70710F0A61BB7
-:10512000B70B881F991F5A95A9F780959095BC01D8
-:10513000CD01089597FB092E07260AD077FD04D0EC
-:10514000E5DF06D000201AF4709561957F4F089531
-:10515000F6F7909581959F4F0895A1E21A2EAA1B0C
-:10516000BB1BFD010DC0AA1FBB1FEE1FFF1FA21717
-:10517000B307E407F50720F0A21BB30BE40BF50B14
-:10518000661F771F881F991F1A9469F7609570959D
-:10519000809590959B01AC01BD01CF0108952F92A0
-:1051A0003F924F925F926F927F928F929F92AF92B7
-:1051B000BF92CF92DF92EF92FF920F931F93CF9304
-:1051C000DF93CDB7DEB7CA1BDB0B0FB6F894DEBF9B
-:1051D0000FBECDBF09942A88398848885F846E84C1
-:1051E0007D848C849B84AA84B984C884DF80EE800B
-:1051F000FD800C811B81AA81B981CE0FD11D0FB614
-:10520000F894DEBF0FBECDBFED010895EE0FFF1F76
-:105210000590F491E02D099411E0C4E2D1E004C0BE
-:10522000FE010E9408292296C632D107C9F7F894D8
-:02523000FFCFAE
-:105232006B70680072706D00253475204B4200253A
-:10524200346400253364002564206B6D2020200027
-:1052520025642C25582C25640A00534432005344FB
-:10526200310053444843004E2F41005344205479A7
-:1052720070653A202573004E6F2046415421005339
-:10528200442053697A653A2025644D42004E6F20CE
-:1052920053442043617264202020202020004F428A
-:1052A20044253035642E43535600534420657272B0
-:1052B2006F7220200046696C65206572726F720001
-:1052C2005265636F6E6E656374696E672E2E2E0073
-:1052D200496E697469616C697A696E6700576169C0
-:1052E20074696E67204F42442044617461004F42EA
-:1052F2004420436F6E6E6563746564212020002F25
-:1053020000FFFFFFFF7C06640000000000040709A5
-:10531200064506AC07A7079107460800000000F6FD
-:105322000CB30D0E0D590D770D510D00000000D478
-:105332001AB626000000008D215C2115211E2133A2
-:1053420021442100000000E424B6267A24AB248BF9
-:0453520024D424003B
-:00000001FF
diff --git a/samples/dashboard_oled/dashboard_oled.cbp b/samples/dashboard_oled/dashboard_oled.cbp
new file mode 100644
index 0000000..67c6456
--- /dev/null
+++ b/samples/dashboard_oled/dashboard_oled.cbp
@@ -0,0 +1,574 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<CodeBlocks_project_file>
+ <FileVersion major="1" minor="6" />
+ <Project>
+ <Option title="dashboard_oled" />
+ <Option pch_mode="2" />
+ <Option compiler="avrgcc" />
+ <Build>
+ <Target title="Arduino Uno">
+ <Option output="bin/Release/dashboard_oled_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
+ <Add option="-D__AVR_ATmega328P__" />
+ <Add option="-Os" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/standard" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ </Linker>
+ <ExtraCommands>
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
+ </ExtraCommands>
+ <Environment>
+ <Variable name="BOARD" value="Arduino Uno" />
+ <Variable name="BOARD_ID" value="uno" />
+ <Variable name="MCU" value="atmega328p" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="115200" />
+ <Variable name="UPLOAD_PORT" value="" />
+ </Environment>
+ </Target>
+ <Target title="Arduino Leonardo">
+ <Option output="bin/Release/dashboard_oled_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
+ <Add option="-D__AVR_ATmega32U4__" />
+ <Add option="-DUSB_VID=0x2341" />
+ <Add option="-DUSB_PID=0x8036" />
+ <Add option="-Os" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/leonardo" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ </Linker>
+ <ExtraCommands>
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
+ </ExtraCommands>
+ <Environment>
+ <Variable name="BOARD" value="Arduino Leonardo" />
+ <Variable name="BOARD_ID" value="leonardo" />
+ <Variable name="MCU" value="atmega32u4" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="57600" />
+ <Variable name="UPLOAD_PORT" value="" />
+ </Environment>
+ </Target>
+ <Target title="Arduino Esplora">
+ <Option output="bin/Release/dashboard_oled_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
+ <Add option="-D__AVR_ATmega32U4__" />
+ <Add option="-DUSB_VID=0x2341" />
+ <Add option="-DUSB_PID=0x8037" />
+ <Add option="-Os" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/leonardo" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ </Linker>
+ <ExtraCommands>
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
+ </ExtraCommands>
+ <Environment>
+ <Variable name="BOARD" value="Arduino Esplora" />
+ <Variable name="BOARD_ID" value="esplora" />
+ <Variable name="MCU" value="atmega32u4" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="57600" />
+ <Variable name="UPLOAD_PORT" value="" />
+ </Environment>
+ </Target>
+ <Target title="Arduino Micro">
+ <Option output="bin/Release/dashboard_oled_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
+ <Add option="-D__AVR_ATmega32U4__" />
+ <Add option="-DUSB_VID=0x2341" />
+ <Add option="-DUSB_PID=0x803C" />
+ <Add option="-Os" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/micro" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ </Linker>
+ <ExtraCommands>
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
+ </ExtraCommands>
+ <Environment>
+ <Variable name="BOARD" value="Arduino Micro" />
+ <Variable name="BOARD_ID" value="micro" />
+ <Variable name="MCU" value="atmega32u4" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="57600" />
+ <Variable name="UPLOAD_PORT" value="" />
+ </Environment>
+ </Target>
+ <Target title="Arduino Duemilanove (328)">
+ <Option output="bin/Release/dashboard_oled_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
+ <Add option="-D__AVR_ATmega328P__" />
+ <Add option="-Os" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/standard" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ </Linker>
+ <ExtraCommands>
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
+ </ExtraCommands>
+ <Environment>
+ <Variable name="BOARD" value="Arduino Duemilanove (328)" />
+ <Variable name="BOARD_ID" value="duemilanove328" />
+ <Variable name="MCU" value="atmega328p" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="57600" />
+ <Variable name="UPLOAD_PORT" value="" />
+ </Environment>
+ </Target>
+ <Target title="Arduino Duemilanove (168)">
+ <Option output="bin/Release/dashboard_oled_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
+ <Add option="-D__AVR_ATmega168__" />
+ <Add option="-Os" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/standard" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ </Linker>
+ <ExtraCommands>
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
+ </ExtraCommands>
+ <Environment>
+ <Variable name="BOARD" value="Arduino Duemilanove (168)" />
+ <Variable name="BOARD_ID" value="duemilanove168" />
+ <Variable name="MCU" value="atmega168" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="19200" />
+ <Variable name="UPLOAD_PORT" value="" />
+ </Environment>
+ </Target>
+ <Target title="Arduino Nano (328)">
+ <Option output="bin/Release/dashboard_oled_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
+ <Add option="-D__AVR_ATmega328P__" />
+ <Add option="-Os" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/eightanaloginputs" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ </Linker>
+ <ExtraCommands>
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
+ </ExtraCommands>
+ <Environment>
+ <Variable name="BOARD" value="Arduino Nano (328)" />
+ <Variable name="BOARD_ID" value="nano328" />
+ <Variable name="MCU" value="atmega328p" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="57600" />
+ <Variable name="UPLOAD_PORT" value="" />
+ </Environment>
+ </Target>
+ <Target title="Arduino Nano (168)">
+ <Option output="bin/Release/dashboard_oled_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
+ <Add option="-D__AVR_ATmega168__" />
+ <Add option="-Os" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/eightanaloginputs" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ </Linker>
+ <ExtraCommands>
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
+ </ExtraCommands>
+ <Environment>
+ <Variable name="BOARD" value="Arduino Nano (168)" />
+ <Variable name="BOARD_ID" value="nano168" />
+ <Variable name="MCU" value="atmega168" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="19200" />
+ <Variable name="UPLOAD_PORT" value="" />
+ </Environment>
+ </Target>
+ <Target title="Arduino Mini (328)">
+ <Option output="bin/Release/dashboard_oled_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
+ <Add option="-D__AVR_ATmega328P__" />
+ <Add option="-Os" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/eightanaloginputs" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ </Linker>
+ <ExtraCommands>
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
+ </ExtraCommands>
+ <Environment>
+ <Variable name="BOARD" value="Arduino Mini (328)" />
+ <Variable name="BOARD_ID" value="mini328" />
+ <Variable name="MCU" value="atmega328p" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="57600" />
+ <Variable name="UPLOAD_PORT" value="" />
+ </Environment>
+ </Target>
+ <Target title="Arduino Mini (168)">
+ <Option output="bin/Release/dashboard_oled_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
+ <Add option="-D__AVR_ATmega168__" />
+ <Add option="-Os" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/eightanaloginputs" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ </Linker>
+ <ExtraCommands>
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
+ </ExtraCommands>
+ <Environment>
+ <Variable name="BOARD" value="Arduino Mini (168)" />
+ <Variable name="BOARD_ID" value="mini168" />
+ <Variable name="MCU" value="atmega168" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="19200" />
+ <Variable name="UPLOAD_PORT" value="" />
+ </Environment>
+ </Target>
+ <Target title="Arduino Pro Mini (328)">
+ <Option output="bin/Release/dashboard_oled_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
+ <Add option="-D__AVR_ATmega328P__" />
+ <Add option="-Os" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/standard" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ </Linker>
+ <ExtraCommands>
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
+ </ExtraCommands>
+ <Environment>
+ <Variable name="BOARD" value="Arduino Pro Mini (328)" />
+ <Variable name="BOARD_ID" value="promini328" />
+ <Variable name="MCU" value="atmega328p" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="57600" />
+ <Variable name="UPLOAD_PORT" value="" />
+ </Environment>
+ </Target>
+ <Target title="Arduino Pro Mini (168)">
+ <Option output="bin/Release/dashboard_oled_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
+ <Add option="-D__AVR_ATmega168__" />
+ <Add option="-Os" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/standard" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ </Linker>
+ <ExtraCommands>
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
+ </ExtraCommands>
+ <Environment>
+ <Variable name="BOARD" value="Arduino Pro Mini (168)" />
+ <Variable name="BOARD_ID" value="promini168" />
+ <Variable name="MCU" value="atmega168" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="19200" />
+ <Variable name="UPLOAD_PORT" value="" />
+ </Environment>
+ </Target>
+ <Target title="Arduino Mega 2560/ADK">
+ <Option output="bin/Release/dashboard_oled_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
+ <Add option="-D__AVR_ATmega2560__" />
+ <Add option="-O2" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/mega" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ </Linker>
+ <ExtraCommands>
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
+ </ExtraCommands>
+ <Environment>
+ <Variable name="BOARD" value="Arduino Mega 2560\ADK" />
+ <Variable name="BOARD_ID" value="mega2560" />
+ <Variable name="MCU" value="atmega2560" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="57600" />
+ <Variable name="UPLOAD_PORT" value="" />
+ </Environment>
+ </Target>
+ <Target title="Arduino Mega 1280">
+ <Option output="bin/Release/dashboard_oled_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
+ <Add option="-D__AVR_ATmega1280__" />
+ <Add option="-O2" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/mega" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ </Linker>
+ <ExtraCommands>
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
+ </ExtraCommands>
+ <Environment>
+ <Variable name="BOARD" value="Arduino Mega 1280" />
+ <Variable name="BOARD_ID" value="mega1280" />
+ <Variable name="MCU" value="atmega1280" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="57600" />
+ <Variable name="UPLOAD_PORT" value="" />
+ </Environment>
+ </Target>
+ <Target title="Arduino Mega 8">
+ <Option output="bin/Release/dashboard_oled_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
+ <Add option="-D__AVR_ATmega328P__" />
+ <Add option="-Os" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/standard" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ </Linker>
+ <ExtraCommands>
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
+ </ExtraCommands>
+ <Environment>
+ <Variable name="BOARD" value="Arduino Mega 8" />
+ <Variable name="BOARD_ID" value="mega8" />
+ <Variable name="MCU" value="atmega8" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="19200" />
+ <Variable name="UPLOAD_PORT" value="" />
+ </Environment>
+ </Target>
+ <Target title="Microduino Core+ (644P)">
+ <Option output="bin/Release/dashboard_oled_${BOARD_ID}.elf" prefix_auto="1" extension_auto="0" />
+ <Option type="1" />
+ <Option compiler="avrgcc" />
+ <Compiler>
+ <Add option="-x c++" />
+ <Add option="-mmcu=$(MCU)" />
+ <Add option="-DF_CPU=16000000L" />
+ <Add option="-D__AVR_ATmega644P__" />
+ <Add option="-Os" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/cores/arduino" />
+ <Add directory="$(ARDUINO_DIR)/libraries" />
+ <Add directory="$(ARDUINO_DIR)/hardware/arduino/variants/plus" />
+ </Compiler>
+ <Linker>
+ <Add option="-mmcu=$(MCU)" />
+ <Add option='&quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add option='&quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ </Linker>
+ <ExtraCommands>
+ <Add before='$(TARGET_COMPILER_DIR)ArduinoUploader &quot;$(PROJECT_DIR).&quot; $(BOARD_ID) - $(MCU_CLOCK) 0 &quot;$(PROJECT_DIR)bin/lib_${BOARD_ID}_${MCU_CLOCK}.a&quot; &quot;$(PROJECT_DIR)bin/core_${BOARD_ID}_${MCU_CLOCK}.a&quot;' />
+ <Add after='avr-objcopy -O ihex -R .eeprom -R .eesafe &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).hex&quot;' />
+ <Add after='avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex &quot;$(TARGET_OUTPUT_FILE)&quot; &quot;$(TARGET_OUTPUT_FILE).eep.hex&quot;' />
+ <Add after='avr-size --mcu=$(MCU) --format=avr &quot;$(TARGET_OUTPUT_FILE)&quot;' />
+ </ExtraCommands>
+ <Environment>
+ <Variable name="BOARD" value="Microduino Core+ (644P)" />
+ <Variable name="BOARD_ID" value="uduino644p" />
+ <Variable name="MCU" value="atmega644p" />
+ <Variable name="MCU_CLOCK" value="16" />
+ <Variable name="UPLOAD_BAUDRATE" value="115200" />
+ <Variable name="UPLOAD_PORT" value="" />
+ </Environment>
+ </Target>
+ </Build>
+ <Compiler>
+ <Add directory="." />
+ </Compiler>
+ <Unit filename="ZtLib.cpp" />
+ <Unit filename="ZtLib.h" />
+ <Unit filename="dashboard_oled.ino">
+ <Option compile="1" />
+ <Option link="1" />
+ </Unit>
+ <Extensions>
+ <code_completion />
+ <debugger />
+ </Extensions>
+ </Project>
+</CodeBlocks_project_file>